We already deviate from upstream.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Apr 23 2023
Apr 5 2023
In D39377#897306, @kib wrote:Because it did not include kqueue1(), it only renamed it to kqueuex(). If you take the current patch from the review, and rebuild libepoll-shim with it, starting using libc-provided kqueue1, does the problem reproduce?
Apr 4 2023
rebase after and to include:
- Revert "USE_PYTHON=pep517: package python bytecode"
The version that was committed no longer has any problems with libepoll-shim.
In D34739#896901, @bapt wrote:Anyway if we want to generate those pyc files in target via a trigger, have you checked what debian is doing? imho their approach look sane (at least at quick read) and if we are not planning on doing the same kind of thing, then when pushing our own trigger we should state explicitly why we took a different path.
(The have 2 python scripts which are called by their trigger), it means our trigger will be stripped down to only calling those scripts. (except for the "cleanup" section, which we don't have here).
(gdb) catch syscall 583 Catchpoint 1 (syscall 583) (gdb) r Starting program: /usr/local/bin/libinput list-devices warning: Could not load shared library symbols for [vdso]. Do you need "set solib-search-path" or "set sysroot"? process 28905 is executing new program: /usr/local/libexec/libinput/libinput-list-devices warning: Could not load shared library symbols for [vdso]. Do you need "set solib-search-path" or "set sysroot"?
% kdump 91138 ktrace RET ktrace 0 91138 ktrace CALL execve(0x3bd33a692700,0x3bd33a692d30,0x3bd33a692d48) 91138 ktrace NAMI "/sbin/libinput" 91138 ktrace RET execve -1 errno 2 No such file or directory 91138 ktrace CALL execve(0x3bd33a692700,0x3bd33a692d30,0x3bd33a692d48) 91138 ktrace NAMI "/bin/libinput" 91138 ktrace RET execve -1 errno 2 No such file or directory 91138 ktrace CALL execve(0x3bd33a692700,0x3bd33a692d30,0x3bd33a692d48) 91138 ktrace NAMI "/usr/sbin/libinput" 91138 ktrace RET execve -1 errno 2 No such file or directory 91138 ktrace CALL execve(0x3bd33a692700,0x3bd33a692d30,0x3bd33a692d48) 91138 ktrace NAMI "/usr/bin/libinput" 91138 ktrace RET execve -1 errno 2 No such file or directory 91138 ktrace CALL execve(0x3bd33a692700,0x3bd33a692d30,0x3bd33a692d48) 91138 ktrace NAMI "/usr/local/sbin/libinput" 91138 ktrace RET execve -1 errno 2 No such file or directory 91138 ktrace CALL execve(0x3bd33a692700,0x3bd33a692d30,0x3bd33a692d48) 91138 ktrace NAMI "/usr/local/bin/libinput" 91138 ktrace NAMI "/libexec/ld-elf.so.1" 91138 libinput RET execve JUSTRETURN 91138 libinput CALL mmap(0,0x21000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_PRIVATE|MAP_ANON>,0xffffffff,0) 91138 libinput RET mmap 34917736448/0x821426000 91138 libinput CALL mprotect(0x136a4831d000,0x1000,0x1<PROT_READ>) 91138 libinput RET mprotect 0 91138 libinput CALL issetugid 91138 libinput RET issetugid 0 91138 libinput CALL sigfastblock(0x1,0x136a48320370) 91138 libinput RET sigfastblock 0 91138 libinput CALL open(0x136a48303a49,0x100000<O_RDONLY|O_CLOEXEC>) 91138 libinput NAMI "/etc/libmap.conf" 91138 libinput RET open 3 91138 libinput CALL fstat(0x3,0x8207dd938) 91138 libinput STRU struct stat {dev=11333425968201311618, ino=13560, mode=0100644, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=1628187309, mtime=1628184289, ctime=1628187335.005951000, birthtime=1628184289, size=47, blksize=4096, blocks=1, flags=0x800 } 91138 libinput RET fstat 0 91138 libinput CALL read(0x3,0x82142a008,0x2f) 91138 libinput GIO fd 3 read 47 bytes "# $FreeBSD$ includedir /usr/local/etc/libmap.d " 91138 libinput RET read 47/0x2f 91138 libinput CALL close(0x3) 91138 libinput RET close 0 91138 libinput CALL open(0x8207dd4db,0x120004<O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC>) 91138 libinput NAMI "/usr/local/etc/libmap.d" 91138 libinput RET open 3 91138 libinput CALL fcntl(0x3,F_ISUNIONSTACK,0x0) 91138 libinput RET fcntl 0 91138 libinput CALL getdirentries(0x3,0x82142b008,0x1000,0x821427030) 91138 libinput RET getdirentries 104/0x68 91138 libinput CALL open(0x8207dd0d0,0x100000<O_RDONLY|O_CLOEXEC>) 91138 libinput NAMI "/usr/local/etc/libmap.d/mesa.conf" 91138 libinput RET open 4 91138 libinput CALL fstat(0x4,0x8207dcbb8) 91138 libinput STRU struct stat {dev=2038501010409812323, ino=86894, mode=0100644, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=0, mtime=1680041585, ctime=1680109141.926258000, birthtime=1680041585, size=38, blksize=4096, blocks=1, flags=0x800 } 91138 libinput RET fstat 0 91138 libinput CALL read(0x4,0x82142a0c8,0x26) 91138 libinput GIO fd 4 read 38 bytes "libGLX_indirect.so.0 libGLX_mesa.so.0 " 91138 libinput RET read 38/0x26 91138 libinput CALL close(0x4) 91138 libinput RET close 0 91138 libinput CALL getdirentries(0x3,0x82142b008,0x1000,0x821427030) 91138 libinput RET getdirentries 0 91138 libinput CALL close(0x3) 91138 libinput RET close 0 91138 libinput CALL open(0x136a4830356c,0x100000<O_RDONLY|O_CLOEXEC>) 91138 libinput NAMI "/var/run/ld-elf.so.hints" 91138 libinput RET open 3 91138 libinput CALL read(0x3,0x136a483201f8,0x80) 91138 libinput GIO fd 3 read 128 bytes 0x0000 4568 6e74 0100 0000 8000 0000 ac00 0000 0000 0000 ab00 0000 0000 0000 0000 0000 0000 0000 0000 0000 |Ehnt....................................| 0x0028 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 |........................................| 0x0050 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 |........................................| 0x0078 0000 0000 0000 0000 |........|
In D39377#896822, @kib wrote:So did you tried the latest patch?
Apr 3 2023
In D39377#896698, @mjg wrote:that's even more reason to just remove kqueue1, ask portmgr to rebuild affected ports and be done with it
exp-run won't catch this since the builds succeed
Apr 2 2023
In D39377#896574, @kib wrote:Did you forgot to make sysent?
In D39377#896562, @kib wrote:Remove your obj directory before the build. make clean is not enough
This fails to build:
building static c library Building /usr/obj/usr/src/amd64.amd64/lib/libc/libc.so.7.full building shared library libc.so.7 ld: error: duplicate symbol: kqueue1 >>> defined at kqueue1.c:43 (/usr/src/lib/libc/gen/kqueue1.c:43) >>> kqueue1.pico:(kqueue1) >>> defined at kqueue1.c:43 (/usr/src/lib/libc/gen/kqueue1.c:43) >>> kqueue1.pico:(.text+0x0) cc: error: linker command failed with exit code 1 (use -v to see invocation) *** [libc.so.7.full] Error code 1
Apr 1 2023
Using testport with the following EXTRA_PATCHES_OFF (since compileall runs unconditionally during stage):
--- Makefile.pre.in.orig 2023-02-07 12:05:45 UTC +++ Makefile.pre.in @@ -1601,33 +1601,6 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ $(DESTDIR)$(LIBDEST)/distutils/tests ; \ fi - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ - -j0 -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -j0 -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -j0 -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ - -j0 -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
port | size with pyc | size without pyc |
python3.7 | 111 MiB flat, 18 MiB tzst | 49 MiB flat, 11 MiB tzst |
python3.8 | 116 MiB flat, 19 MiB tzst | 52 MiB flat, 11 MiB tzst |
python3.9 | 119 MiB flat, 19 MiB tzst | 51 MiB flat, 11 MiB tzst |
python3.10 | 121 MiB flat, 19 MiB tzst | 52 MiB flat, 12 MiB tzst |
python3.11 | 194 MiB flat, 24 MiB tzst | 58 MiB flat, 12 MiB tzst |
Mar 30 2023
In D34739#895772, @bapt wrote:As far as I know from the time when I participated to the events about reproducible build the issues has been fixed, at least instead of claiming it is not deterministic, can you state what makes it non deterministic?
In D34739#895737, @mandree wrote:
- the current python.mk ports stuff does not package __pycache__ properly for all Python versions, but should
- you hack files after pkg knows them, either you get checksum mismatches, or pkg which $PREFIX/some/file does not know about it. Both are inacceptable.
When bytecode does not pass checks, they are recompiled on import. If a user with write privileges to locations of imported modules performs execution (usually root), those results overwrite any existing bytecode, causing checksum mismatches anyway.
- poudriere, if it needs to RUN a requisite Python package that creates __pycache__ entries newly, will make the *USER* look bad although it's not that *USER* package that caused extra __pycache__ dirs and files to be created, but the lack of them being installed in the first place.
D39306 eliminates that. Otherwise, only happens when building as root (which has not been poudriere's default setting for years) or another user with write privileges to the locations of imported modules.
In D34739#895706, @bapt wrote:To be honnest I am not convinced we should pursue in that direction, only debian seems to be doing something like that and they use a python script to compile and cleanup called by a trigger. All other OSes I have checked are not at all doing anything in that direction.
Because nearly nobody else has a trigger functionality like we do.
I am personnally not seeing what problem does this approarch solves vs the complexity it adds, at least this needs to be clarified.
CPython bytecode is not deterministic at all, even with every attempt to mitigate such. The whole point of bytecode is to serve as instruction caching, but there is absolutely no guarantee that any pre-packaged bytecode gets used as intended (just run compileall on stuff that comes with bytecode and see how much gets rebuilt). Furthermore, bytecode file sizes in Python 3.12 have only gotten bigger.
Mar 29 2023
Mar 27 2023
Mar 26 2023
Mar 22 2023
% git grep -B 5 DIST_SUBDIR= -- `git grep --max-depth=2 -l cargo` graphics/librsvg2-rust/Makefile-PORTVERSION= 2.54.5 graphics/librsvg2-rust/Makefile-PORTREVISION= 6 graphics/librsvg2-rust/Makefile-CATEGORIES= graphics gnome graphics/librsvg2-rust/Makefile-MASTER_SITES= GNOME graphics/librsvg2-rust/Makefile-PKGNAMESUFFIX= 2-rust graphics/librsvg2-rust/Makefile:DIST_SUBDIR= gnome2 -- lang/rust-bootstrap/Makefile-CATEGORIES= lang lang/rust-bootstrap/Makefile-MASTER_SITES= https://static.rust-lang.org/dist/ lang/rust-bootstrap/Makefile-PKGNAMEPREFIX= ${FLAVOR:S/_/-/g}- lang/rust-bootstrap/Makefile-PKGNAMESUFFIX= -bootstrap lang/rust-bootstrap/Makefile-DISTNAME= ${PORTNAME}c-${PORTVERSION}-src lang/rust-bootstrap/Makefile:DIST_SUBDIR= rust
Neither of these currently use USES=cargo.
Mar 16 2023
We're safe, no exp-run needed:
% git grep -B 5 PORTVERSION= -- `git grep --max-depth=2 -l pep517` CHANGES- with EXTRACT_ONLY. CHANGES- CHANGES- A simple example: CHANGES- CHANGES- PORTNAME= bar CHANGES: PORTVERSION= 1.0 -- databases/py-aiosqlite/Makefile-PORTNAME= aiosqlite databases/py-aiosqlite/Makefile:PORTVERSION= 0.18.0 -- devel/mercurial/Makefile-PORTNAME= mercurial devel/mercurial/Makefile:PORTVERSION= 6.3.2 -- devel/nox/Makefile-PORTNAME= nox devel/nox/Makefile:PORTVERSION= 2022.11.21 -- devel/py-RPyC/Makefile-PORTNAME= rpyc devel/py-RPyC/Makefile:PORTVERSION= 5.3.1 -- devel/py-argh/Makefile-PORTNAME= argh devel/py-argh/Makefile:PORTVERSION= 0.28.1 -- devel/py-build/Makefile-PORTNAME= build devel/py-build/Makefile:PORTVERSION= 0.10.0 -- devel/py-find-libpython/Makefile-PORTNAME= find-libpython devel/py-find-libpython/Makefile:PORTVERSION= 0.3.0 -- devel/py-flit-core/Makefile-PORTNAME= flit-core devel/py-flit-core/Makefile:PORTVERSION= 3.8.0 -- devel/py-flit/Makefile-PORTNAME= flit devel/py-flit/Makefile:PORTVERSION= 3.8.0 -- devel/py-installer/Makefile-PORTNAME= installer devel/py-installer/Makefile:PORTVERSION= 0.6.0 -- devel/py-interface-meta/Makefile-PORTNAME= interface-meta devel/py-interface-meta/Makefile:PORTVERSION= 1.3.0 -- devel/py-jsonschema/Makefile-PORTNAME= jsonschema devel/py-jsonschema/Makefile:PORTVERSION= 4.17.3 -- devel/py-lazy_loader/Makefile-PORTNAME= lazy_loader devel/py-lazy_loader/Makefile:PORTVERSION= 0.1 -- devel/py-packaging/Makefile-PORTNAME= packaging devel/py-packaging/Makefile:PORTVERSION= 23.0 -- devel/py-pathspec/Makefile-PORTNAME= pathspec devel/py-pathspec/Makefile:PORTVERSION= 0.11.1 -- devel/py-pdm-pep517/Makefile-PORTNAME= pdm-pep517 devel/py-pdm-pep517/Makefile:PORTVERSION= 1.1.0 -- devel/py-pdm/Makefile-PORTNAME= pdm devel/py-pdm/Makefile:PORTVERSION= 2.2.1 -- devel/py-pep517/Makefile-PORTNAME= pep517 devel/py-pep517/Makefile:PORTVERSION= 0.13.0 -- devel/py-pyls-black/Makefile-PORTNAME= pyls-black devel/py-pyls-black/Makefile:PORTVERSION= 0.4.7 -- devel/py-pyproject_hooks/Makefile-PORTNAME= pyproject_hooks devel/py-pyproject_hooks/Makefile:PORTVERSION= 1.0.0 -- devel/py-pytest-metadata/Makefile-PORTNAME= pytest-metadata devel/py-pytest-metadata/Makefile:PORTVERSION= 2.0.4 -- devel/py-pytoolconfig/Makefile-PORTNAME= pytoolconfig devel/py-pytoolconfig/Makefile:PORTVERSION= 1.2.5 -- devel/py-requirementslib/Makefile-PORTNAME= requirementslib devel/py-requirementslib/Makefile:PORTVERSION= 2.2.3 -- devel/py-typing-extensions/Makefile-PORTNAME= typing-extensions devel/py-typing-extensions/Makefile:PORTVERSION= 4.4.0 -- devel/py-virtualenv/Makefile-PORTNAME= virtualenv devel/py-virtualenv/Makefile:PORTVERSION= 20.20.0 -- finance/py-financedatabase/Makefile-PORTNAME= financedatabase finance/py-financedatabase/Makefile:PORTVERSION= 2.0.9 -- print/py-pydyf/Makefile-PORTNAME= pydyf print/py-pydyf/Makefile:PORTVERSION= 0.5.0 -- print/py-weasyprint/Makefile-PORTNAME= weasyprint print/py-weasyprint/Makefile:PORTVERSION= 58.0 -- security/py-securesystemslib/Makefile-PORTNAME= securesystemslib security/py-securesystemslib/Makefile:PORTVERSION= 0.26.0 -- security/py-tuf/Makefile-PORTNAME= tuf security/py-tuf/Makefile:PORTVERSION= 2.1.0 -- sysutils/py-docker/Makefile-PORTNAME= docker sysutils/py-docker/Makefile:PORTVERSION= 6.0.1 -- textproc/py-pyphen/Makefile-PORTNAME= pyphen textproc/py-pyphen/Makefile:PORTVERSION= 0.13.0 -- textproc/py-sphinx/Makefile-PORTNAME= sphinx textproc/py-sphinx/Makefile:PORTVERSION= 5.3.0 -- textproc/py-tomli/Makefile-PORTNAME= tomli textproc/py-tomli/Makefile:PORTVERSION= 2.0.1 -- www/py-dj40-django-auth-ldap/Makefile-PORTNAME= django-auth-ldap www/py-dj40-django-auth-ldap/Makefile:PORTVERSION= 4.1.0 -- www/py-dj41-django-auth-ldap/Makefile-PORTNAME= django-auth-ldap www/py-dj41-django-auth-ldap/Makefile:PORTVERSION= 4.1.0 -- www/py-dj41-django-cors-headers/Makefile-PORTNAME= django-cors-headers www/py-dj41-django-cors-headers/Makefile:PORTVERSION= 3.14.0 -- www/py-dj41-django-rich/Makefile-PORTNAME= django-rich www/py-dj41-django-rich/Makefile:PORTVERSION= 1.5.0 -- www/py-django-auth-ldap/Makefile-PORTNAME= django-auth-ldap www/py-django-auth-ldap/Makefile:PORTVERSION= 4.1.0 -- www/py-fastapi/Makefile-PORTNAME= fastapi www/py-fastapi/Makefile:PORTVERSION= 0.92.0
Haha beat me to it! Also had this sitting locally, checking that existing PORTREVISION uses didn't break (all good there).
Mar 15 2023
Mar 13 2023
In D38802#889186, @fuz wrote:Auto-generating pycode files is off the cards, so this change is no longer needed.
Mar 12 2023
In D39004#888542, @jbeich wrote:Looks incomplete. patch-setup.py was adjusting manpage location, obsoleted by 003a571d1d65. To fix polkit action may require either expanding USES=uniquefiles:dirs (implied by USE_PYTHON=concurrent) to handle the conflicting file/directory or adjusting ${TMPPLIST} from post-patch gated by PKGNAMESUFFIX.
In D39004#888526, @mandree wrote:So the default-python based package can additionally install everything under plain names, or there can be another package that depends on the default python's and adds symlinks to the relevant entry points, commands, documentation, without all those 39 and -3.9 names.
devel/meson-python: patch out hardcoded meson invocations
devel/meson-python: add BINARY_ALIAS
Doing it this way, when building meson-python on a non-default Python, fails because literally bin/meson is expected, not bin/meson-${PYTHON_VER}.
devel/meson: bump PORTREVISION for package change
add USE_PYTHON=concurrent and remove polkit action, as it file conflicts and doesn't work properly here anyway
Mar 11 2023
Mar 9 2023
devel/meson-python: adjust dependency lines
meson.mk: use entry point in dependency specifier, PKGNAME changes when not default FLAVOR
meson.mk: FLAVOR was apparently not needed here
Feb 28 2023
In D34739#883877, @mandree wrote:You are distracting again, and your arguments are not relevant. Functions can have arguments, so you can cater for the few differences. A Python port that isn't CPython need not call the refactored function at all.
In D34739#883869, @mandree wrote:So, the trigger is redundantly duplicated across all Python versions. This is bad style and error-prone.
Please refactor this to a common script (either we keep it in Tools/ or else in a separate port), and just run it from the trigger (which has the port-specific %%PYTHON_*%% variables, with the necessary arguments.
That also makes it amenable to separate testing and maintenance independent of the Python package.
yeet bytecode from USE_PYTHON=distutils because to hell with them
now that we apparently have to appease non-fatal errors not part of the build, as if package builders are sentient beings
Feb 27 2023
For those who've lived under a rock, I'm not under mentorship.
Feb 26 2023
only allow select directories under hier(7)