Hello,
On 10 Jan 2025, at 14:35, Adolf Belka adolf.belka@ipfire.org wrote:
Hi Michael,
On 10/01/2025 15:00, Michael Tremer wrote:
Hello Adolf, Thank you for giving this a test.
On 10 Jan 2025, at 13:51, Adolf Belka adolf.belka@ipfire.org wrote:
Hi Michael,
I did a fresh git clone of the pakfire repo and built it.
Then ran builds of beep, libxcrypt and openssl. All completed successfully.
That is good news.
beep took 15 secs, libxcrypt 50 secs and openssl 13 mins.
Cool. This sounds about right. The first build should have created a snapshot may so that running the second would have started much faster?
In the autogen.sh part of the pakfire build I did see a couple of warnings but it didn't stop the pakfire build from completing successfully.
You should update your 'aclocal.m4' by running aclocal. configure.ac:191: warning: AC_PROG_LEX without either yywrap or noyywrap is obsolete
parallel-tests: installing 'build-aux/test-driver' Makefile.am:1175: warning: variable 'TESTSUITE_LDFLAGS' is defined but no program or Makefile.am:1175: library has 'TESTSUITE' as canonical name (possible typo)
Yes, the first one I have no idea how to get rid of, the second is probably just renaming the variable.
8 from 30 tests in the make check section failed.
That is not right. Could you check the *.log files of the individual ones and see what is going wrong?
Here is the fail message for each of the 8 - does make check need to be run as root? I haven't been, only the make install.
Yes, some tests require root. It would be better to automatically disable them if they are not being run as root, but I didn’t have time to implement this, yet.
main pakfire: pakfire_create: Could not mount tmpfs: Operation not permitted pakfire: pakfire_free: Destroying TESTS: ERROR: Failed assertion: pakfire_create(&pakfire, t->ctx, NULL, NULL, NULL, 0) == -EINVAL tests/libpakfire/main.c:41 test_fail
build pakfire: pakfire_create: Could not mount tmpfs: Operation not permitted pakfire: pakfire_free: Destroying TESTS: ERROR: Failed assertion: pakfire_build_create(&build, t->ctx, t->config, NULL, NULL, 0) (r = -1 - Operation not permitted, errno = Operation not permitted) at tests/libpakfire/build.c:31 test_create_and_free
cgroup pakfire: pakfire_cgroup_open: Created cgroup (root) pakfire: __pakfire_cgroup_open: Could not create cgroup 'pakfire-test': Permission denied TESTS: ERROR: Failed assertion: pakfire_cgroup_create(&cgroup, t->ctx, NULL, "pakfire-test", 0) (r = -13 - Permission denied, errno = Permission denied) at tests/libpakfire/cgroup.c:34 test_create_and_destroy
jail pakfire: pakfire_jail_setup_uid_mapping: Could not map UIDs: Invalid argument TESTS: ERROR: Failed assertion: pakfire_jail_exec_command(jail, argv, NULL, 0) == 123 tests/libpakfire/jail.c:71 test_exit_code pakfire: pakfire_jail_free: Freeing jail at 0x590fa3a18c50
makefile pakfire: pakfire_parser_create_package: Building package from namespace '(null)' pakfire: pakfire_parser_create_package: EVR is empty pakfire: pakfire_parser_create_package: Could not create package: No such file or directory TESTS: ERROR: Failed assertion: r == 0 tests/libpakfire/makefile.c:140 test_packages
os TESTS: running test_distro TESTS: ERROR: Failed assertion: *distro.version || *distro.version_id tests/libpakfire/os.c:109 test_distro
util pakfire: pakfire_create: vendor = Test Project pakfire: pakfire_create: slogan = Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live pakfire: pakfire_rlimit_set: RLIMIT_NOFILE set to 524288 TESTS: ERROR: Failed assertion: pakfire_mkparentdir("/test/1/file.txt", 0755) (r = -1 - Operation not permitted, errno = Permission denied) at tests/libpakfire/util.c:43 test_mkdir
package.py DEBUG:pakfire: vendor = Test Project DEBUG:pakfire: slogan = Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live DEBUG:pakfire:RLIMIT_NOFILE set to 524288 F ====================================================================== FAIL: test_open (__main__.PackageTest.test_open)
Traceback (most recent call last): File "/home/source/pakfire/./tests/python/package.py", line 39, in test_open self.assertEqual(p.groups, "Applications/System")
AssertionError: [] != 'Applications/System' ---------------------------------------------------------------------- Ran 1 test in 0.003s
This is an actual error.
In the package build stage for all three packages that I tested I got the following:-
sudo pakfire-builder build beep/beep.nm Scanning local 00:00 60/60 Could not retrieve uname for 1000: No such file or directory Could not retrieve gname for 1000: No such file or directory Could not retrieve uname for 1000: No such file or directory Could not retrieve gname for 1000: No such file or directory Could not retrieve uname for 1000: No such file or directory Could not retrieve gname for 1000: No such file or directory
Hmm, this is not right… As the files checked out by another user with ID 1000?
I forgot to mention. uid and gid 1000 is my user that is logged in running the pakfire-builder process. It is just my normal user, nothing special.
Okay, but we can fix this. We don’t care about the owner of the file in a source package at all.
beep-1.4.12.tar.gz 87k 87kB/s 00:01 0% beep-1.4.12-1.ipfire3.src 88k 0B/s 100% Building beep-1.4.12-1.ipfire3.src (eed8a645-191c-46d4-91a5-dfc82aec9829)...
python3-gobject3-3.46.0-1.ipfire3.x86_64 100% # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version.
# The superuser g root 0 - - u root 0:0 "Super User" /root
# The nobody user/group for NFS file systems g nobody 65534 - - u nobody 65534:65534 "Kernel Overflow User" -
# Administrator group: can *see* more than normal users g adm 4 - -
# Administrator group: can *do* more than normal users g wheel 10 - -
# Access to shared database of users on the system g utmp 22 - -
# Physical and virtual hardware access groups g audio 63 - - g cdrom 11 - - g dialout 18 - - g disk 6 - - g input 104 - - g kmem 9 - - g kvm 36 - - g lp 7 - - g render 105 - - g sgx 106 - - g tape 33 - - g tty 5 - - g video 39 - -
# Default group for normal users g users 100 - - # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version.
u systemd-coredump - "systemd Core Dumper" # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version.
g systemd-journal 190 - # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version.
u systemd-oom - "systemd Userspace OOM Killer"
This is from a systemd feature that currently seems to be very broken, I will put this on my TODO list.
systemd-254-3.ipfire3.x86_64 100% *** buffer overflow detected ***: terminated
This is also a problem inside the build environment and I believe rebuilding systemd fixes it.
The child process terminated abnormally with status code 11 dbus-broker-32-1.ipfire3.x86_64 100% uuidd-2.39.2-3.ipfire3.x86_64 100% setup-3.0-19.ipfire3.noarch 100% *** buffer overflow detected ***: terminated The child process terminated abnormally with status code 11 sudo-1.9.14p3-2.ipfire3.x86_64 100% *** buffer overflow detected ***: terminated The child process terminated abnormally with status code 11 bash-completion-2.11-1.ipfire3.noarch 100% filesystem-002-5.ipfire3.x86_64 0% groff-1.22.4-1.ipfire3.x86_64 100% openssh-9.4p1-1.ipfire3.x86_64 100% smartmontools-7.4-1.ipfire3.x86_64 100% mc-4.8.29-3.ipfire3.x86_64 100% libtool-2.4.7-2.ipfire3.x86_64 100% gettext-0.21.1-5.1.ipfire3.x86_64 100% gettext-libs-0.21.1-5.1.ipfire3.x86_64 100% findutils-4.9.0-1.ipfire3.x86_64 100% gcc-12.3.0-1.ipfire3.x86_64 100% gcc-c++-12.3.0-1.ipfire3.x86_64 100% cpp-12.3.0-1.ipfire3.x86_64 100% man-db-2.11.2-1.ipfire3.x86_64 100% *** buffer overflow detected ***: terminated The child process terminated abnormally with status code 11 ipfire-release-build-3.0-alpha2-10.ipfire3.noarch 0% pakfire-0.9.29-1.ipfire3.x86_64 100% ipfire-release-3.0-alpha2-10.ipfire3.noarch 100% *** buffer overflow detected ***: terminated The child process terminated abnormally with status code 11 Running in chroot, ignoring command 'start' Running build stage 'prepare'
I recall you saying that running a repeat of the build should result in a quicker build. I have not found that. It has stayed very similar in time in all three cases.
Can you run “pakfire-build snapshot update” and see if that creates the snapshot? Maybe I didn’t fully think this through when it is being created.
That made the improvement. Now beep built in 2 seconds and libxcrypt in 35 seconds.
2 seconds is what I am aiming for :)
Regards, Adolf.
-Michael
Regards,
Adolf.