Created attachment 519410 [details] build.log > 96% tests passed, 4 tests failed out of 98 > > Total Test time (real) = 40.88 sec > > The following tests FAILED: > 24 - test-userdata-dir-invalid-home (Failed) > 32 - test-qof (OTHER_FAULT) > 55 - test-gnc-numeric (Failed) > 56 - test-gnc-timezone (Failed) > Errors while running CTest Portage 2.3.19 (python 3.5.4-final-0, default/linux/x86/17.0, gcc-6.4.0, glibc-2.25-r10, 4.9.76-gentoo-r1 i686) ================================================================= System uname: Linux-4.9.76-gentoo-r1-i686-Intel-R-_Core-TM-_i7-3770K_CPU_@_3.50GHz-with-gentoo-2.4.1 KiB Mem: 3108324 total, 1567084 free KiB Swap: 488276 total, 487556 free Timestamp of repository gentoo: Wed, 14 Feb 2018 11:06:21 +0000 Head commit of repository gentoo: 89bdcd2ad7ba7cf6229eeadec42f903d1dfdc620 sh bash 4.4_p12 ld GNU ld (Gentoo 2.29.1 p3) 2.29.1 app-shells/bash: 4.4_p12::gentoo dev-java/java-config: 2.2.0-r3::gentoo dev-lang/perl: 5.24.3::gentoo dev-lang/python: 2.7.14-r1::gentoo, 3.5.4-r1::gentoo dev-util/cmake: 3.9.6::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.4.1-r2::gentoo sys-apps/openrc: 0.34.11::gentoo sys-apps/sandbox: 2.12::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.9.6-r4::gentoo, 1.11.6-r2::gentoo, 1.15.1-r1::gentoo sys-devel/binutils: 2.29.1-r1::gentoo sys-devel/gcc: 6.4.0-r1::gentoo sys-devel/gcc-config: 1.8-r1::gentoo sys-devel/libtool: 2.4.6-r3::gentoo sys-devel/make: 4.2.1::gentoo sys-kernel/linux-headers: 4.13::gentoo (virtual/os-headers) sys-libs/glibc: 2.25-r10::gentoo Repositories: gentoo location: /usr/portage sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo.git priority: -1000 ABI="x86" ABI_X86="32" ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA" ACCEPT_PROPERTIES="*" ACCEPT_RESTRICT="*" ARCH="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -pipe -march=pentium4m -mtune=pentium4m" CHOST="i686-pc-linux-gnu" CHOST_x86="i686-pc-linux-gnu" COLLISION_IGNORE="/lib/modules/* *.py[co] *$py.class */dropin.cache" CONFIG_PROTECT="/etc /etc/stunnel/stunnel.conf /usr/lib/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt" CPU_FLAGS_X86="mmx mmxext sse sse2" CXXFLAGS="-O2 -pipe -march=pentium4m -mtune=pentium4m" DEFAULT_ABI="x86" EDITOR="/usr/bin/mcedit" ELIBC="glibc" EPREFIX="" EROOT="/" FCFLAGS="-O2 -march=i686 -pipe" FEATURES="assume-digests binpkg-logs cgroup config-protect-if-modified distlocks downgrade-backup ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -march=i686 -pipe" GCC_SPECS="" GRUB_PLATFORMS="efi-32 pc" GSETTINGS_BACKEND="dconf" HOME="/root" INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/6.4.0/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.29.1/info:/usr/share/info:/usr/share/info/emacs-25" INPUT_DEVICES="libinput keyboard mouse" IUSE_IMPLICIT="abi_x86_32 prefix prefix-chain prefix-guest" JAVAC="/etc/java-config-2/current-system-vm/bin/javac" JAVA_HOME="/etc/java-config-2/current-system-vm" JDK_HOME="/etc/java-config-2/current-system-vm" KERNEL="linux" L10N="en en-US de de-DE" LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" LC_MESSAGES="C" LC_PAPER="de_DE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LIBDIR_x86="lib" LINGUAS="en de" LOGNAME="root" MAIL="/var/mail/root" MAKEOPTS="--jobs 5 --load-average 7.95" MANPAGER="manpager" MULTILIB_ABIS="x86" NOCOLOR="true" OFFICE_IMPLEMENTATION="libreoffice" OLDPWD="/root" OPENGL_PROFILE="xorg-x11" PAGER="/usr/bin/less" PATH="/usr/i686-pc-linux-gnu/gcc-bin/6.4.0:/usr/lib/llvm/5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin" PHP_TARGETS="php5-6 php7-0" POSTGRES_TARGETS="postgres9_5" PWD="/tmp/stable" PYTHONDONTWRITEBYTECODE="1" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python2_7 python3_5" QT_GRAPHICSSYSTEM="raster" ROOT="/" ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/6.4.0:/usr/lib/llvm/5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin" RUBY_TARGETS="ruby22 ruby23" SHELL="/bin/bash" SHLVL="2" SSH_TTY="/dev/pts/0" TERM="screen" TMUX="/tmp/tmux-0/default,4903,0" TMUX_PANE="%0" TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE="1" USER="root" USERLAND="GNU" VIDEO_CARDS="vmware" XDG_CONFIG_DIRS="/etc/xdg" XDG_DATA_DIRS="/usr/local/share:/usr/share"
Created attachment 519412 [details] LastTest.log
(In reply to Thomas Deutschmann from comment #0) > The following tests FAILED: > 24 - test-userdata-dir-invalid-home (Failed) > 32 - test-qof (OTHER_FAULT) > 55 - test-gnc-numeric (Failed) > 56 - test-gnc-timezone (Failed) > Errors while running CTest I'm working on figuring out the failures. These seem to be Gentoo-specific failures. test-qof is resolved by having the following in /etc/locale.gen: en_GB.UTF-8 UTF-8 en_US.UTF-8 UTF-8 fr_FR.UTF-8 UTF-8
Okay, so adding those locales took care of the other tests, I think. At least, numeric and timezone aren't failing for me. However, I'm now getting an invalid pointer error from test-userdata-dir which in turn means test-userdata-dir-invalid-home fails. Further still, if I just navigate to the build directory and invoke "make check", everything passes.
Portage does various environment var setup that you aren't getting by manually going in that dir and running it. Additionally it runs it all under sandbox, which you can partially emulate via /usr/bin/sandbox, but not fully I think (portage sets some things up for further restrictions or allowances iirc). Tests shouldn't depend on locales I think; For upstream the test should automatically skip if the locale isn't present, I believe. Might be easier to skip it for all downstream though until it's fixed fully upstream. Though given the urgency of all this for webkit-gtk/icu, I think it'd be fine to require the locales for current fast stabling and fix it up later on properly. Though you have some other failures still I guess.
(In reply to Mart Raudsepp from comment #4) > Might be easier > to skip it for all downstream though until it's fixed fully upstream. Just to be clear - here I meant only disabling these specific tests, not a full RESTRICT=test
I understood what you meant. I've figured out all the problems. In addition to the locale.gen changes and a patch to take care of a double-free, src_test() needs: cp common/test-core/unittest_support.py \ "${BUILD_DIR}"/common/test-core/ || die; cd "${BUILD_DIR}" || die; XDG_DATA_HOME="${T}/$(whoami)" emake check I haven't figured out how to skip particular tests, yet. Is this acceptable for now? I'm going to raise the missing locale causes test failure issue upstream.
(In reply to Aaron W. Swenson from comment #6) > I understood what you meant. > > I've figured out all the problems. > > In addition to the locale.gen changes and a patch to take care of a > double-free, src_test() needs: > > cp common/test-core/unittest_support.py \ > "${BUILD_DIR}"/common/test-core/ || die; > cd "${BUILD_DIR}" || die; > XDG_DATA_HOME="${T}/$(whoami)" emake check Odd, doesn't it work with xdg_environment_reset already from pkg_setup that sets XDG_DATA_HOME to "${HOME}/.local/share" (HOME is in $PORTAGE_BUILDDIR/homedir)? Is that for some reason ineffective in src_test or it needs $(whoami) as the subdir name for some odd reason? If that's the case, I'd try to use ${USER} for now instead of $(whoami), or whatever is appropriate from bash and the env. > I haven't figured out how to skip particular tests, yet. > > Is this acceptable for now? I'm going to raise the missing locale causes > test failure issue upstream. I'd say it's not ideal, but if you state clearly what locales need to be present for the tests to pass, it ought to be fine for getting it done for webkit-gtk riddance needs (and stable really being broken as-is).
(In reply to Mart Raudsepp from comment #7) > (In reply to Aaron W. Swenson from comment #6) > > I understood what you meant. > > > > I've figured out all the problems. > > > > In addition to the locale.gen changes and a patch to take care of a > > double-free, src_test() needs: > > > > cp common/test-core/unittest_support.py \ > > "${BUILD_DIR}"/common/test-core/ || die; > > cd "${BUILD_DIR}" || die; > > XDG_DATA_HOME="${T}/$(whoami)" emake check > > Odd, doesn't it work with xdg_environment_reset already from pkg_setup that > sets XDG_DATA_HOME to "${HOME}/.local/share" (HOME is in > $PORTAGE_BUILDDIR/homedir)? Is that for some reason ineffective in src_test > or it needs $(whoami) as the subdir name for some odd reason? If that's the > case, I'd try to use ${USER} for now instead of $(whoami), or whatever is > appropriate from bash and the env. I don't know what the test is trying to achieve, but it's checking if gnc_build_userdata_dir (or something like that) is equal to g_tmpdir (or something like that). Naturally, they aren't because gnc_build_userdata_dir (or something like that) will check if XDG_DATA_HOME is defined, or default to something else. g_tmpdir will use the value of TMPDIR if it's defined, or default to something else. The test assumes that neither is defined and sets them to the same place or something. There's some silliness that's going on that I don't grok. I'm going to bring this upstream, too. > > I haven't figured out how to skip particular tests, yet. > > > > Is this acceptable for now? I'm going to raise the missing locale causes > > test failure issue upstream. > > I'd say it's not ideal, but if you state clearly what locales need to be > present for the tests to pass, it ought to be fine for getting it done for > webkit-gtk riddance needs (and stable really being broken as-is). Great. I'll get this done soon.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abd6bba4c31bb6e546bb8e1da37fa971ffa55746 commit abd6bba4c31bb6e546bb8e1da37fa971ffa55746 Author: Aaron W. Swenson <titanofold@gentoo.org> AuthorDate: 2018-02-18 12:31:26 +0000 Commit: Aaron W. Swenson <titanofold@gentoo.org> CommitDate: 2018-02-18 12:31:44 +0000 app-office/gnucash: Fix 2.7.4 test failures Fix a double-free bug in test-userdata-dir.c. Copy over common/test-core/unittest_support.py to the BUILDDIR so that it can be sourced by the python-bindings test. Set XDG_DATA_HOME so that itβs pointing to the same place as TMPDIR. Not fixed: Locale dependent tests. /etc/locale.gen needs the following: en_GB.UTF-8 UTF-8 en_US.UTF-8 UTF-8 fr_FR.UTF-8 UTF-8 Bug: https://bugs.gentoo.org/647596 Package-Manager: Portage-2.3.19, Repoman-2.3.6 .../gnucash/files/gnucash-2.7.4-double_free.patch | 12 ++ app-office/gnucash/gnucash-2.7.4-r1.ebuild | 162 +++++++++++++++++++++ 2 files changed, 174 insertions(+)}
Created attachment 520072 [details] LastTest.log -r1 > 56 - test-gnc-timezone (Failed) > > 99% tests passed, 1 tests failed out of 98
Created attachment 520078 [details, diff] skip test-gnc-timezone test for now If we decide to just disable the timezone test for now, then hopefully this patch works. Completely untested by me.
ping, I still can't last rite security vulnerable stuff; and stable x86 users still can not build current stable gnucash deptree. Please apply the workaround and push keywords, just push keywords or whatnot. We shouldn't be waiting for days here - the stable x86 tree is broken right now.
(In reply to Mart Raudsepp from comment #12) > ping, I still can't last rite security vulnerable stuff; and stable x86 > users still can not build current stable gnucash deptree. Please apply the > workaround and push keywords, just push keywords or whatnot. We shouldn't be > waiting for days here - the stable x86 tree is broken right now. Sorry, school and work are both being quite demanding on my time, and solving GnuCash things are nontrivial for me.(In reply to Mart Raudsepp from comment #11) > Created attachment 520078 [details, diff] [details, diff] > skip test-gnc-timezone test for now > > If we decide to just disable the timezone test for now, then hopefully this > patch works. Completely untested by me. This is probably not a good thing to do. There's a section of the test in which the behavior is modified by the value of __LP64__. __LP64__ isn't being set to 1 by GCC when apparently it should be? At any rate, __LP64__ has some usefulness elsewhere in the code for something that has nothing to do with timezones: libgnucash/backend/sql/gnc-sql-column-table-entry.cpp I don't know how important that is, or how to test it. (I only had 20 minutes to spare for now.) Or, maybe the test is wrong and it shouldn't be excluding the LMT zone just because it's on a 32 bit system. Is there an expert on opinions that can give us an opinion that's close enough to expert level?
We have 8 errors of > /var/tmp/portage/app-office/gnucash-2.7.4-r1/work/gnucash-2.7.4/libgnucash/engine/test/gtest-gnc-timezone.cpp:162: Failure > Expected: tz->base_utc_offset().total_seconds() > Which is: 27804 > To be equal to: 28800 Which make sense: GnuCash is testing from year 1893 onwards in test_IANA_Perth_tz ( https://github.com/Gnucash/gnucash/blob/master/libgnucash/engine/test/gtest-gnc-timezone.cpp#L145), however, the earliest UNIX timestamp which can be used on a real 32-bit system is "1901-12-13 20:45:52". And 1901-1893 = 8... tests for year 1902 until 2048 seems to pass. Same problem in test_IANA_Minsk_tz. For testing I applied > --- a/libgnucash/engine/test/gtest-gnc-timezone.cpp > +++ b/libgnucash/engine/test/gtest-gnc-timezone.cpp > @@ -142,7 +142,7 @@ TEST(gnc_timezone_constructors, test_IANA_Belize_tz) > TEST(gnc_timezone_constructors, test_IANA_Perth_tz) > { > TimeZoneProvider tzp("Australia/Perth"); > - for (int year = 1893; year < 2048; ++year) > + for (int year = 1902; year < 2048; ++year) > { > auto tz = tzp.get(year); > #ifdef __LP64__ > @@ -204,7 +204,7 @@ TEST(gnc_timezone_constructors, test_IANA_Perth_tz) > TEST(gnc_timezone_constructors, test_IANA_Minsk_tz) > { > TimeZoneProvider tzp("Europe/Minsk"); > - for (int year = 1870; year < 2020; ++year) > + for (int year = 1902; year < 2020; ++year) > { > auto tz = tzp.get(year); > #ifdef __LP64__ > and tests passed. My suggestion: Apply this patch/skip this test only for x86 and report upstream. Once upstream has adjusted the test to respect 32-bit capabilities, we can re-enable.
Created attachment 520520 [details, diff] gnucash-x86-tests-fix.patch
Please proceed Whissi as you see fit; we need to get this stabled finally :) Leave this bug open (Bug: not Closes: tag) to track proper upstream fix for timezones and the locale workaround.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=432f3f5e66e510ae29429064071ce83465ad6bb5 commit 432f3f5e66e510ae29429064071ce83465ad6bb5 Author: Thomas Deutschmann <whissi@gentoo.org> AuthorDate: 2018-02-22 11:44:00 +0000 Commit: Thomas Deutschmann <whissi@gentoo.org> CommitDate: 2018-02-22 11:44:00 +0000 app-office/gnucash: Add patch to address test failures on 32-bit platforms Bug: https://bugs.gentoo.org/647596 Package-Manager: Portage-2.3.24, Repoman-2.3.6 ...ucash-2.7.4-fix-tests-for-32bit-platforms.patch | 56 ++++++++++++++++++++++ app-office/gnucash/gnucash-2.7.4-r1.ebuild | 5 +- 2 files changed, 60 insertions(+), 1 deletion(-)}
Any updates on this? Did it get an issue made as requested in the PR? Can the URL be changed to that, if so?
Upstream closed my PR. Issue with LP64 should be brought to GnuCash's dedicated bug tracker. As I don't have an account for GnuCash's bug tracker and I don't use that program I am asking the maintainer to take care of that. Thanks.
This has been fixed upstream, and should have been considered fixed when we stabled 2.7.4-r1 with the patches. https://github.com/Gnucash/gnucash/commit/5520fae838bfddc92385c85706e741a753458c5d#diff-a08895af7b8368e8ea409efc29e1e64e