public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: app-text/sdcv/files/, app-text/sdcv/
@ 2021-04-03 19:18 Andrew Savchenko
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Savchenko @ 2021-04-03 19:18 UTC (permalink / raw
  To: gentoo-commits

commit:     beb002c292228709cf437afc2c31f2b1af1be71b
Author:     Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  3 19:14:53 2021 +0000
Commit:     Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
CommitDate: Sat Apr  3 19:18:43 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=beb002c2

app-text/sdcv: version bump

- Update to 0.5.3
- Bump to EAPI 7
- Migrate to cmake.eclass
- Pick up upstream patchset for binsearch speedup

Closes: https://bugs.gentoo.org/774510
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Andrew Savchenko <bircoph <AT> gentoo.org>

 app-text/sdcv/Manifest                             |   1 +
 app-text/sdcv/files/sdcv-0.5.3-t_list.patch        |  19 ++++
 app-text/sdcv/files/sdcv-synonyms-bin-search.patch | 112 +++++++++++++++++++++
 app-text/sdcv/sdcv-0.5.3.ebuild                    |  74 ++++++++++++++
 4 files changed, 206 insertions(+)

diff --git a/app-text/sdcv/Manifest b/app-text/sdcv/Manifest
index c30f650ef31..3800567f539 100644
--- a/app-text/sdcv/Manifest
+++ b/app-text/sdcv/Manifest
@@ -1 +1,2 @@
 DIST sdcv-0.5.2.tar.gz 61541 BLAKE2B 3b86b69c1e781c311ebbd427d09f8e1c8f97a9fc7b72e22f812ec4619fb4f3cd673ea5548cfdd89554e1613877d20676b8830fd5921082d7a13facb761001c00 SHA512 8752a225aebcc28cd8911591333410a0da94db9a7718cee744f8fbc6ceeae14bbf13c6d5a02a05652ff032276765537573e216acd49980f80c06319dac7075fb
+DIST sdcv-0.5.3.tar.gz 62105 BLAKE2B 1424510cff2fa355d17884a31f8136f4c8a7bde071f387dd8a69b1d2d6b9c8e52869cd602b27b9966725370cf128fb62b8628e735f1faa92b78f75215462804f SHA512 73a305baad74d0584912e115d3de7395c8e88745fb69b4e5f1a345061629b0d4e05898bd589e96ce07948d52ba7c508ec4ab77862c8fadca5a2f19c5244e1442

diff --git a/app-text/sdcv/files/sdcv-0.5.3-t_list.patch b/app-text/sdcv/files/sdcv-0.5.3-t_list.patch
new file mode 100644
index 00000000000..c26a93522bd
--- /dev/null
+++ b/app-text/sdcv/files/sdcv-0.5.3-t_list.patch
@@ -0,0 +1,19 @@
+diff --git a/tests/t_list b/tests/t_list
+index a8c92c4..c410cf2 100755
+--- a/tests/t_list
++++ b/tests/t_list
+@@ -1,11 +1,10 @@
+ #!/bin/sh
+ 
+ PATH_TO_SDCV="$1"
+-ndicts=`"$PATH_TO_SDCV" -l | wc -l`
++TEST_DIR="$2"
++ndicts=`"$PATH_TO_SDCV" --data-dir "${TEST_DIR}" -l | wc -l`
+ ndicts=$(($ndicts-1))
+-ncom=`find /usr/share/stardict/dic -name "*.ifo" | wc -l`
+-nspe=`find "${XDG_DATA_HOME:-$HOME/.local/share}"/stardict/dic -name "*.ifo" | wc -l`
+-nmy=$(($ncom+$nspe))
++nmy=`find "${TEST_DIR}" -name "*.ifo" | wc -l`
+ 
+ if [ $nmy -ne $ndicts ]; then
+ 	echo "should be: $nmy, we have: $ndicts" >&2

diff --git a/app-text/sdcv/files/sdcv-synonyms-bin-search.patch b/app-text/sdcv/files/sdcv-synonyms-bin-search.patch
new file mode 100644
index 00000000000..e3583b1a5fb
--- /dev/null
+++ b/app-text/sdcv/files/sdcv-synonyms-bin-search.patch
@@ -0,0 +1,112 @@
+ommit 4ae420734990ab9f5ccc038262368256b9323f4a
+Merge: b66799f 994c1c7
+Author: Evgeniy Dushistov <dushistov@mail.ru>
+Date:   Wed Dec 23 04:30:13 2020 +0300
+
+    Merge pull request #67 from doozan/master
+
+    Use binary search for synonyms, fixes #31
+
+diff --git a/src/stardict_lib.cpp b/src/stardict_lib.cpp
+index 0af4304..6b1f92b 100644
+--- a/src/stardict_lib.cpp
++++ b/src/stardict_lib.cpp
+@@ -833,21 +833,23 @@ bool SynFile::load(const std::string &url, gulong wc)
+ {
+     struct stat stat_buf;
+     if (!stat(url.c_str(), &stat_buf)) {
+-        MapFile syn;
+-        if (!syn.open(url.c_str(), stat_buf.st_size))
++
++        if (!synfile.open(url.c_str(), stat_buf.st_size))
+             return false;
+-        const gchar *current = syn.begin();
++
++        synlist.resize(wc + 1);
++        gchar *p1 = synfile.begin();
++
+         for (unsigned long i = 0; i < wc; i++) {
+             // each entry in a syn-file is:
+             // - 0-terminated string
+             // 4-byte index into .dict file in network byte order
+-            glib::CharStr lower_string{ g_utf8_casefold(current, -1) };
+-            std::string synonym{ get_impl(lower_string) };
+-            current += synonym.length() + 1;
+-            const guint32 idx = g_ntohl(get_uint32(current));
+-            current += sizeof(idx);
+-            synonyms[synonym] = idx;
++
++            synlist[i] = p1;
++            p1 += strlen(p1) + 1 + 4;
+         }
++        synlist[wc] = p1;
++
+         return true;
+     } else {
+         return false;
+@@ -856,13 +858,38 @@ bool SynFile::load(const std::string &url, gulong wc)
+ 
+ bool SynFile::lookup(const char *str, glong &idx)
+ {
+-    glib::CharStr lower_string{ g_utf8_casefold(str, -1) };
+-    auto it = synonyms.find(get_impl(lower_string));
+-    if (it != synonyms.end()) {
+-        idx = it->second;
+-        return true;
++    bool bFound = false;
++    glong iTo = synlist.size() - 2;
++    if (iTo <0) return false;
++
++    if (stardict_strcmp(str, get_key(0)) < 0) {
++        idx = 0;
++    } else if (stardict_strcmp(str, get_key(iTo)) > 0) {
++        idx = INVALID_INDEX;
++    } else {
++        glong iThisIndex = 0;
++        glong iFrom = 0;
++        gint cmpint;
++        while (iFrom <= iTo) {
++            iThisIndex = (iFrom + iTo) / 2;
++            cmpint = stardict_strcmp(str, get_key(iThisIndex));
++            if (cmpint > 0)
++                iFrom = iThisIndex + 1;
++            else if (cmpint < 0)
++                iTo = iThisIndex - 1;
++            else {
++                bFound = true;
++                break;
++            }
++        }
++        if (!bFound)
++            idx = iFrom; //next
++        else {
++            const gchar *key = get_key(iThisIndex);
++            idx = g_ntohl(get_uint32(key+strlen(key)+1));
++        }
+     }
+-    return false;
++    return bFound;
+ }
+ 
+ bool Dict::Lookup(const char *str, glong &idx)
+diff --git a/src/stardict_lib.hpp b/src/stardict_lib.hpp
+index a629cbe..38f76f4 100644
+--- a/src/stardict_lib.hpp
++++ b/src/stardict_lib.hpp
+@@ -102,11 +102,15 @@ public:
+ class SynFile
+ {
+ public:
++    SynFile() {}
++    ~SynFile() {}
+     bool load(const std::string &url, gulong wc);
+     bool lookup(const char *str, glong &idx);
++    const gchar *get_key(glong idx) { return synlist[idx]; }
+ 
+ private:
+-    std::map<std::string, gulong> synonyms;
++    MapFile synfile;
++    std::vector<gchar *> synlist;
+ };
+ 
+ class Dict : public DictBase

diff --git a/app-text/sdcv/sdcv-0.5.3.ebuild b/app-text/sdcv/sdcv-0.5.3.ebuild
new file mode 100644
index 00000000000..8b7225b3c9d
--- /dev/null
+++ b/app-text/sdcv/sdcv-0.5.3.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PLOCALES="cs fr ru sk uk zh_CN zh_TW"
+inherit cmake l10n
+
+DESCRIPTION="Console version of Stardict program"
+HOMEPAGE="https://dushistov.github.io/sdcv/"
+SRC_URI="https://github.com/Dushistov/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="darkterm nls readline test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	>=dev-libs/glib-2.36
+	sys-libs/zlib
+	readline? ( sys-libs/readline:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	nls? ( >=sys-devel/gettext-0.14.1 )
+	test? ( app-misc/jq )
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.5.3-t_list.patch"
+	"${FILESDIR}/${PN}-t_interactive.patch"
+	"${FILESDIR}/${PN}-synonyms-bin-search.patch"
+)
+
+src_prepare() {
+	if use darkterm; then
+		sed -i 's/;34m/;36m/' src/libwrapper.cpp || die
+	fi
+
+	rm_loc() {
+		rm "po/${1}.po" || die
+	}
+	l10n_for_each_disabled_locale_do rm_loc
+
+	# do not install locale-specific man pages unless asked to
+	if ! has uk ${LINGUAS-uk}; then
+		sed -ni '/share\/man\/uk/!p' CMakeLists.txt || die
+	fi
+
+	cmake_src_prepare
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DENABLE_NLS="$(usex nls)"
+		-DWITH_READLINE="$(usex readline)"
+		-DBUILD_TESTS="$(usex test ON OFF)"
+	)
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+	use nls && cmake_src_compile lang
+}
+
+src_install() {
+	# with USE=nls, but empty intersection of LINGUAS and list of
+	# supported translations, this directory is required, see bug 583386
+	mkdir -p "${BUILD_DIR}/locale"
+	cmake_src_install
+	dodoc doc/DICTFILE_FORMAT
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: app-text/sdcv/files/, app-text/sdcv/
@ 2021-05-06 11:09 Andrew Savchenko
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Savchenko @ 2021-05-06 11:09 UTC (permalink / raw
  To: gentoo-commits

commit:     8d48c7d979da991bcdb9abf10fccd3672ec6c8dc
Author:     Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
AuthorDate: Thu May  6 11:06:43 2021 +0000
Commit:     Andrew Savchenko <bircoph <AT> gentoo <DOT> org>
CommitDate: Thu May  6 11:09:03 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d48c7d9

app-text/sdcv: drop old

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Andrew Savchenko <bircoph <AT> gentoo.org>

 app-text/sdcv/Manifest                |  1 -
 app-text/sdcv/files/sdcv-t_list.patch | 17 --------
 app-text/sdcv/sdcv-0.5.2.ebuild       | 74 -----------------------------------
 3 files changed, 92 deletions(-)

diff --git a/app-text/sdcv/Manifest b/app-text/sdcv/Manifest
index 3800567f539..a57a7f83880 100644
--- a/app-text/sdcv/Manifest
+++ b/app-text/sdcv/Manifest
@@ -1,2 +1 @@
-DIST sdcv-0.5.2.tar.gz 61541 BLAKE2B 3b86b69c1e781c311ebbd427d09f8e1c8f97a9fc7b72e22f812ec4619fb4f3cd673ea5548cfdd89554e1613877d20676b8830fd5921082d7a13facb761001c00 SHA512 8752a225aebcc28cd8911591333410a0da94db9a7718cee744f8fbc6ceeae14bbf13c6d5a02a05652ff032276765537573e216acd49980f80c06319dac7075fb
 DIST sdcv-0.5.3.tar.gz 62105 BLAKE2B 1424510cff2fa355d17884a31f8136f4c8a7bde071f387dd8a69b1d2d6b9c8e52869cd602b27b9966725370cf128fb62b8628e735f1faa92b78f75215462804f SHA512 73a305baad74d0584912e115d3de7395c8e88745fb69b4e5f1a345061629b0d4e05898bd589e96ce07948d52ba7c508ec4ab77862c8fadca5a2f19c5244e1442

diff --git a/app-text/sdcv/files/sdcv-t_list.patch b/app-text/sdcv/files/sdcv-t_list.patch
deleted file mode 100644
index 8bd23892fc7..00000000000
--- a/app-text/sdcv/files/sdcv-t_list.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- sdcv-0.5.2/tests/t_list.orig	2017-08-16 10:14:23.000000000 +0300
-+++ sdcv-0.5.2/tests/t_list	2018-08-26 15:12:31.501052398 +0300
-@@ -1,11 +1,10 @@
- #!/bin/sh
- 
- PATH_TO_SDCV="$1"
--ndicts=`"$PATH_TO_SDCV" -l | wc -l`
-+TEST_DIR="$2"
-+ndicts=`"$PATH_TO_SDCV" --data-dir "${TEST_DIR}" -l | wc -l`
- ndicts=$(($ndicts-1))
--ncom=`find /usr/share/stardict/dic -name "*.ifo" | wc -l`
--nspe=`find "${HOME}"/.stardict/dic -name "*.ifo" | wc -l`
--nmy=$(($ncom+$nspe))
-+nmy=`find "${TEST_DIR}" -name "*.ifo" | wc -l`
- 
- if [ $nmy -ne $ndicts ]; then
- 	echo "should be: $nmy, we have: $ndicts" >&2

diff --git a/app-text/sdcv/sdcv-0.5.2.ebuild b/app-text/sdcv/sdcv-0.5.2.ebuild
deleted file mode 100644
index fad5dbbdeee..00000000000
--- a/app-text/sdcv/sdcv-0.5.2.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="cs fr ru sk uk zh_CN zh_TW"
-: ${CMAKE_MAKEFILE_GENERATOR:="ninja"}
-
-inherit cmake-utils l10n
-
-DESCRIPTION="Console version of Stardict program"
-HOMEPAGE="https://dushistov.github.io/sdcv/"
-SRC_URI="https://github.com/Dushistov/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="darkterm nls readline test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	>=dev-libs/glib-2.6.1
-	sys-libs/zlib
-	readline? ( sys-libs/readline:= )
-"
-DEPEND="${RDEPEND}
-	nls? ( >=sys-devel/gettext-0.14.1 )
-	test? ( app-misc/jq )
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-t_list.patch"
-	"${FILESDIR}/${PN}-t_interactive.patch"
-)
-
-src_prepare() {
-	if use darkterm; then
-		sed -i 's/;34m/;36m/' src/libwrapper.cpp || die
-	fi
-
-	rm_loc() {
-		rm "po/${1}.po" || die
-	}
-	l10n_for_each_disabled_locale_do rm_loc
-
-	# do not install locale-specific man pages unless asked to
-	if ! has uk ${LINGUAS-uk}; then
-		sed -ni '/share\/man\/uk/!p' CMakeLists.txt || die
-	fi
-
-	cmake-utils_src_prepare
-}
-
-src_configure() {
-	local mycmakeargs=(
-		-DENABLE_NLS="$(usex nls)"
-		-DWITH_READLINE="$(usex readline)"
-		-DBUILD_TESTS="$(usex test ON OFF)"
-	)
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	cmake-utils_src_compile
-	use nls && cmake-utils_src_compile lang
-}
-
-src_install() {
-	# with USE=nls, but empty intersection of LINGUAS and list of
-	# supported translations, this directory is required, see bug 583386
-	mkdir -p "${BUILD_DIR}/locale"
-	cmake-utils_src_install
-	dodoc doc/DICTFILE_FORMAT
-}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-05-06 11:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-03 19:18 [gentoo-commits] repo/gentoo:master commit in: app-text/sdcv/files/, app-text/sdcv/ Andrew Savchenko
  -- strict thread matches above, loose matches on Subject: below --
2021-05-06 11:09 Andrew Savchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox