Hello community, here is the log from the commit of package libkkc for openSUSE:Leap:15.2 checked in at 2020-02-25 12:17:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/libkkc (Old) and /work/SRC/openSUSE:Leap:15.2/.libkkc.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkkc" Tue Feb 25 12:17:51 2020 rev:17 rq:778881 version:0.3.5+git20190809.b2e5a15 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/libkkc/libkkc.changes 2020-01-15 15:21:46.670454511 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.libkkc.new.26092/libkkc.changes 2020-02-25 12:17:55.604524928 +0100 @@ -1,0 +2,16 @@ +Sat Oct 26 11:55:08 UTC 2019 - fst...@suse.com + +- Update to version 0.3.5+git20190809.b2e5a15: + * travis: Use python3 in coverage build + * build: Bump valadoc pkgconfig name + * build: Declare creation methods of abstract classes as protected + * build: Enable python3 + * README.md: Link to the API references + * travis: Deploy documentation + * user-sentence-dictionary: Fix memleak + * tests: Fix memleaks in tests + * Fix memory leak caused by hacking strv length. + * travis: Make coveralls work again under docker + * Fix boo#1163932 + +------------------------------------------------------------------- Old: ---- libkkc-0.3.5+git20171220.7d365e1.tar.xz New: ---- libkkc-0.3.5+git20190809.b2e5a15.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkkc.spec ++++++ --- /var/tmp/diff_new_pack.TQtZC3/_old 2020-02-25 12:17:56.984527787 +0100 +++ /var/tmp/diff_new_pack.TQtZC3/_new 2020-02-25 12:17:56.984527787 +0100 @@ -1,7 +1,7 @@ # # spec file for package libkkc # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,17 +12,17 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define soname 2 %define data_version 0.2.7 Name: libkkc -Version: 0.3.5+git20171220.7d365e1 +Version: 0.3.5+git20190809.b2e5a15 Release: 0 Summary: Japanese Kana-string to Kana-Kanji-mixed-string converter -License: GPL-3.0 +License: GPL-3.0-only Group: System/I18n/Japanese Url: https://github.com/ueno/libkkc Source: %{name}-%{version}.tar.xz ++++++ libkkc-0.3.5+git20171220.7d365e1.tar.xz -> libkkc-0.3.5+git20190809.b2e5a15.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/.travis.yml new/libkkc-0.3.5+git20190809.b2e5a15/.travis.yml --- old/libkkc-0.3.5+git20171220.7d365e1/.travis.yml 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/.travis.yml 2019-08-09 12:40:47.000000000 +0200 @@ -4,13 +4,10 @@ env: - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64" - - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 --enable-code-coverage" COVERAGE=yes - - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 CFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LIBS='-ldl -lpthread'" - - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 CFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LIBS='-ldl -lpthread'" - -matrix: - allow_failures: - - env: BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 CFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LIBS='-ldl -lpthread'" + - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 --enable-docs" DOCS=yes EXTRA_PKGS="gtk-doc valadoc valadoc-devel" + - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 --enable-code-coverage PYTHON=python3" COVERAGE=yes EXTRA_PKGS="python3-marisa python3-pip" + - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 CFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LIBS='-ldl -lpthread'" EXTRA_PKGS="libasan" + - BUILD_OPTS="--prefix=/usr --libdir=/usr/lib64 CFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LIBS='-ldl -lpthread'" EXTRA_PKGS="libubsan" services: - docker @@ -20,13 +17,7 @@ - export CONTAINER=$(docker run -d fedora sleep 1800) - docker exec $CONTAINER dnf -y install 'dnf-command(builddep)' - docker exec $CONTAINER dnf -y builddep libkkc - - docker exec $CONTAINER dnf -y install gettext-devel libtool make which - - docker exec $CONTAINER dnf -y install gcc-c++ redhat-rpm-config - - docker exec $CONTAINER dnf -y install libasan libubsan - - docker exec $CONTAINER dnf -y install vala vala-devel - - docker exec $CONTAINER dnf -y install gnome-common - - docker exec $CONTAINER dnf -y install python-pip - - docker exec $CONTAINER dnf -y install git + - docker exec $CONTAINER dnf -y install libtool make which gcc-c++ vala vala-devel git $EXTRA_PKGS - docker exec $CONTAINER useradd user install: @@ -35,11 +26,30 @@ script: - docker exec $CONTAINER su - user sh -c "cd /srcdir && NOCONFIGURE=1 ./autogen.sh" - - docker exec $CONTAINER su - user sh -c "cd /srcdir && ./configure --enable-code-coverage $BUILD_OPTS" + - docker exec $CONTAINER su - user sh -c "cd /srcdir && ./configure $BUILD_OPTS" - docker exec $CONTAINER su - user sh -c "cd /srcdir && make V=1 && touch po/libkkc.pot && make check V=1" after_failure: - docker exec $CONTAINER su - user sh -c "cd /srcdir && cat tests/test-suite.log" after_success: - - if test x"$COVERAGE" = xyes; then docker exec $CONTAINER pip install cpp-coveralls; docker exec -e TRAVIS_JOB_ID="$TRAVIS_JOB_ID" -e TRAVIS_BRANCH="$TRAVIS_BRANCH" $CONTAINER sh -c "cd /srcdir && coveralls --exclude tools --exclude tests --gcov-options '\-lp'"; fi + - | + if test x"$COVERAGE" = xyes; then + docker exec $CONTAINER pip install cpp-coveralls + docker exec -e TRAVIS_JOB_ID="$TRAVIS_JOB_ID" -e TRAVIS_BRANCH="$TRAVIS_BRANCH" $CONTAINER sh -c "cd /srcdir && coveralls --exclude tools --exclude tests --gcov-options '\-lp'" + fi + - | + if test x"$DOCS" = xyes; then + mkdir dist + docker cp $CONTAINER:/srcdir/docs/libkkc/libkkc dist/vala + docker cp $CONTAINER:/srcdir/docs/gtk-doc/libkkc/html dist/c + fi + +deploy: + provider: pages + skip_cleanup: true + github_token: $GITHUB_TOKEN + local_dir: dist + on: + branch: master + condition: $DOCS = yes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/README.md new/libkkc-0.3.5+git20190809.b2e5a15/README.md --- old/libkkc-0.3.5+git20171220.7d365e1/README.md 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/README.md 2019-08-09 12:40:47.000000000 +0200 @@ -23,8 +23,14 @@ $ make install ``` -3. run kkc program +Documentation +------ +* [Vala binding reference](https://ueno.github.io/libkkc/vala/) +* [C binding reference](https://ueno.github.io/libkkc/c/) + +Test +------ ``` $ kkc Type kana sentence in the following form: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/configure.ac new/libkkc-0.3.5+git20190809.b2e5a15/configure.ac --- old/libkkc-0.3.5+git20171220.7d365e1/configure.ac 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/configure.ac 2019-08-09 12:40:47.000000000 +0200 @@ -125,7 +125,7 @@ have_valadoc=no if test x$enable_docs = xyes; then # make sure the library is new enough and the program exists - PKG_CHECK_MODULES([VALADOC], [valadoc-0.40 >= $VALADOC_REQUIRED]) + PKG_CHECK_MODULES([VALADOC], [valadoc-0.44 >= $VALADOC_REQUIRED]) AC_PATH_PROG([VALADOC], [valadoc], [:]) AS_IF([test "$VALADOC" != :], have_valadoc=yes) fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/data/templates/libkkc-data/tools/genfilter.py new/libkkc-0.3.5+git20190809.b2e5a15/data/templates/libkkc-data/tools/genfilter.py --- old/libkkc-0.3.5+git20171220.7d365e1/data/templates/libkkc-data/tools/genfilter.py 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/data/templates/libkkc-data/tools/genfilter.py 2019-08-09 12:40:47.000000000 +0200 @@ -84,24 +84,24 @@ def generate(self): size = os.fstat(self.infile.fileno()).st_size - n = size / self.record_size + n = size // self.record_size m = int(math.ceil(-n*math.log10(ERROR_RATE) / math.pow(math.log10(2), 2))) - m = (m/8 + 1)*8 + m = (m//8 + 1)*8 inmem = mmap.mmap(self.infile.fileno(), size, access=mmap.ACCESS_READ) - outmem = bytearray(m/8) - for i in xrange(0, n): + outmem = bytearray(m//8) + for i in range(0, n): offset = i*self.record_size b0, b1 = struct.unpack("=LL", inmem[offset:offset+8]) - for k in xrange(0, 4): + for k in range(0, 4): h = murmur_hash3_32(b0, b1, k) h = int(h * (m / float(0xFFFFFFFF))) - outmem[h/8] |= (1 << (h%8)) + outmem[h//8] |= (1 << (h%8)) inmem.close() - # Convert bytearray to str, for Python 2.6 compatibility. - self.outfile.write(str(outmem)) + # Convert bytearray to bytes, for Python 3 compatibility. + self.outfile.write(bytes(outmem)) if __name__ == '__main__': import sys @@ -110,7 +110,7 @@ parser = argparse.ArgumentParser(description='filter') parser.add_argument('infile', type=argparse.FileType('r'), help='input file') - parser.add_argument('outfile', type=argparse.FileType('w'), + parser.add_argument('outfile', type=argparse.FileType('wb'), help='output file') parser.add_argument('record_size', type=int, help='record size') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/data/templates/libkkc-data/tools/sortlm.py new/libkkc-0.3.5+git20190809.b2e5a15/data/templates/libkkc-data/tools/sortlm.py --- old/libkkc-0.3.5+git20171220.7d365e1/data/templates/libkkc-data/tools/sortlm.py 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/data/templates/libkkc-data/tools/sortlm.py 2019-08-09 12:40:47.000000000 +0200 @@ -40,10 +40,10 @@ self.__min_cost = 0.0 def read(self): - print "reading N-grams" + print("reading N-grams") self.__read_tries() self.__read_ngrams() - print "min cost = %lf" % self.__min_cost + print("min cost = %lf" % self.__min_cost) def __read_tries(self): while True: @@ -58,7 +58,7 @@ line = self.__infile.readline() if line == "": break - line = line.strip() + line = line.strip('\n') if line == "": break match = self.__ngram_line_regex.match(line) @@ -89,7 +89,7 @@ line = self.__infile.readline() if line == "": break - line = line.strip() + line = line.strip('\n') if line == "": break match = self.__ngram_line_regex.match(line) @@ -125,14 +125,11 @@ def quantize(cost, min_cost): return max(0, min(65535, int(cost * 65535 / min_cost))) - def cmp_header(a, b): - return cmp(a[0], b[0]) - - print "writing 1-gram file" + print("writing 1-gram file") unigram_offsets = {} unigram_file = open("%s.1gram" % self.__output_prefix, "wb") offset = 0 - for ids, value in sorted(self.__ngram_entries[0].iteritems()): + for ids, value in sorted(self.__ngram_entries[0].items()): unigram_offsets[ids[0]] = offset s = struct.pack("=HHH", quantize(value[0], self.__min_cost), @@ -143,13 +140,13 @@ offset += 1 unigram_file.close() - print "writing 2-gram file" + print("writing 2-gram file") bigram_offsets = {} bigram_file = open("%s.2gram" % self.__output_prefix, "wb") keys = self.__ngram_entries[1].keys() items = [(struct.pack("=LL", ids[1], unigram_offsets[ids[0]]), ids) for ids in keys] offset = 0 - for header, ids in sorted(items, cmp=cmp_header): + for header, ids in sorted(items, key=lambda x: x[0]): value = self.__ngram_entries[1][ids] bigram_offsets[ids] = offset s = struct.pack("=HH", @@ -160,11 +157,11 @@ bigram_file.close() if len(self.__ngram_entries[2]) > 0: - print "writing 3-gram file" + print("writing 3-gram file") trigram_file = open("%s.3gram" % self.__output_prefix, "wb") keys = self.__ngram_entries[2].keys() items = [(struct.pack("=LL", ids[2], bigram_offsets[(ids[0], ids[1])]), ids) for ids in keys] - for header, ids in sorted(items, cmp=cmp_header): + for header, ids in sorted(items, key=lambda x: x[0]): value = self.__ngram_entries[2][ids] s = struct.pack("=H", quantize(value[0], self.__min_cost)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/libkkc/language-model.vala new/libkkc-0.3.5+git20190809.b2e5a15/libkkc/language-model.vala --- old/libkkc-0.3.5+git20171220.7d365e1/libkkc/language-model.vala 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/libkkc/language-model.vala 2019-08-09 12:40:47.000000000 +0200 @@ -101,7 +101,7 @@ public abstract new LanguageModelEntry? @get (string input, string output); - public LanguageModel (LanguageModelMetadata metadata) throws Error { + protected LanguageModel (LanguageModelMetadata metadata) throws Error { Object (metadata: metadata); init (null); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/libkkc/metadata-file.vala new/libkkc-0.3.5+git20190809.b2e5a15/libkkc/metadata-file.vala --- old/libkkc-0.3.5+git20171220.7d365e1/libkkc/metadata-file.vala 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/libkkc/metadata-file.vala 2019-08-09 12:40:47.000000000 +0200 @@ -43,7 +43,7 @@ */ public string filename { get; construct set; } - public MetadataFile (string name, string filename) throws Error { + protected MetadataFile (string name, string filename) throws Error { Object (name: name, filename: filename); init (null); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/libkkc/user-sentence-dictionary.vala new/libkkc-0.3.5+git20190809.b2e5a15/libkkc/user-sentence-dictionary.vala --- old/libkkc-0.3.5+git20171220.7d365e1/libkkc/user-sentence-dictionary.vala 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/libkkc/user-sentence-dictionary.vala 2019-08-09 12:40:47.000000000 +0200 @@ -258,9 +258,13 @@ // Newer valac thinks null in a fixed length array as an // empty string. var array = input.to_array (); + // Change length of strv may make vala no able to free it + // correctly. Save the length and restore it later. + var old_length = array.length; array.length = -1; constraint_entries.set (string.joinv ("", array), constraint); phrase_entries.set (string.joinv (" ", array), phrase); + array.length = old_length; is_dirty = true; return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/tests/context.vala new/libkkc-0.3.5+git20190809.b2e5a15/tests/context.vala --- old/libkkc-0.3.5+git20171220.7d365e1/tests/context.vala 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/tests/context.vala 2019-08-09 12:40:47.000000000 +0200 @@ -47,6 +47,12 @@ string input; Kkc.KeyEventFilter filter; + dictionaries = null; + candidates = null; + segments = null; + input = null; + rule = null; + filter = null; context.get ("dictionaries", out dictionaries, "candidates", out candidates, "segments", out segments, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/tests/lib/test-case.vala new/libkkc-0.3.5+git20190809.b2e5a15/tests/lib/test-case.vala --- old/libkkc-0.3.5+git20171220.7d365e1/tests/lib/test-case.vala 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/tests/lib/test-case.vala 2019-08-09 12:40:47.000000000 +0200 @@ -29,7 +29,7 @@ public delegate void TestMethod (); - public TestCase (string name) + protected TestCase (string name) { this._suite = new GLib.TestSuite (name); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/tests/rom-kana.vala new/libkkc-0.3.5+git20190809.b2e5a15/tests/rom-kana.vala --- old/libkkc-0.3.5+git20171220.7d365e1/tests/rom-kana.vala 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/tests/rom-kana.vala 2019-08-09 12:40:47.000000000 +0200 @@ -18,6 +18,7 @@ string pending_output; string pending_input; Kkc.RomKanaCharacterList produced; + rule = null; converter.get ("rule", out rule, "kana-mode", out mode, "punctuation-style", out style, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkkc-0.3.5+git20171220.7d365e1/tests/template.vala new/libkkc-0.3.5+git20190809.b2e5a15/tests/template.vala --- old/libkkc-0.3.5+git20171220.7d365e1/tests/template.vala 2017-12-20 08:09:09.000000000 +0100 +++ new/libkkc-0.3.5+git20190809.b2e5a15/tests/template.vala 2019-08-09 12:40:47.000000000 +0200 @@ -7,7 +7,7 @@ void test_properties () { Kkc.Template template; - string source; + string? source = null; bool okuri; template = new Kkc.SimpleTemplate ("source"); @@ -17,6 +17,7 @@ assert (!okuri); template = new Kkc.OkuriganaTemplate ("かう", 1); + source = null; template.get ("source", out source, "okuri", out okuri); @@ -24,6 +25,7 @@ assert (okuri); template = new Kkc.NumericTemplate ("だい11かい"); + source = null; template.get ("source", out source, "okuri", out okuri);