FWIW I put your last diff in a bulk build on arm64 (clang 19), looks mostly good so far:
I=10372 B=144 Q=3229 T=596 F=0 !=263 L=net/icinga/core2 E=games/zelda3-ro More input below, On Fri, Feb 28, 2025 at 07:11:13PM +0100, Volker Schlecht wrote: > Alright, so here goes my next attempt, addressing > > On 2025-02-28 18:11, Jeremie Courreges-Anglas wrote: > [...] > > I'd rather patch out the hidden dep so that the build is > > deterministic, even on a machine where jimtcl is already installed. ok so it's not just about jimtcl, as confirmed by the context of the patch. Please see inline comments. > > I know you're not responsible for the current situation, but IMHO > > those "for this" "andinitially for that" comments don't bring much > > value . One can look at cvs blame/log to understand why we enabled an > > option. I don't feel too strongly about it but the Makefile would be > > more readable if we merged CONFIGURE_ARGS in a single block. > > More than happy to do that. I just noticed after the commit that I added the > flag enabling the session extension into the block marked "for mozilla", which > just proves your point. > > In the same spirit, I took out "--enable-fts3", which is a no-op.FTS3 is a > subset of FTS4. Confirmed. I checked that the same -D/#defines set was used before and after. In the new version some are passed on the cli and some end up in sqlite_cfg.h. Looks mostly good, fts3 is indeed implied by fts4, but geopoly is no longer implied by --enable-rtree. So unless you have a good reason to leave it out, I suggest you add --enable-geopoly to match the current feature set. https://wxcvbn.org/~jca/tmp/sqlite-defines.diff > > This lacks ${SETENV}, but instead of creating your own do-configure > > I'd prefer that you use CONFIGURE_STYLE=simple which seems to work > > just as fine. > > D'oh :-) > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/databases/sqlite3/Makefile,v > diff -u -p -r1.135 Makefile > --- Makefile 27 Feb 2025 15:44:32 -0000 1.135 > +++ Makefile 28 Feb 2025 18:02:44 -0000 > @@ -1,11 +1,10 @@ > COMMENT= embedded SQL implementation > > -DISTNAME = sqlite-autoconf-3480000 > -PKGNAME= sqlite3-3.48.0 > -REVISION= 1 > +DISTNAME = sqlite-autoconf-3490100 > +PKGNAME= sqlite3-3.49.1 > > # XXX needs bumps every time :- > -SHARED_LIBS += sqlite3 37.31 # 8.6 > +SHARED_LIBS += sqlite3 37.32 # 8.6 > # sqlite suggests that users might like to assert() that library and header > # versions match, so bumps are needed even if function signatures don't > change. > # ... at the current time the only one noticed is a < check (in subversion) > @@ -25,22 +24,31 @@ SITES = ${HOMEPAGE}2025/ > > DEBUG_PACKAGES= ${BUILD_PACKAGES} > > -CONFIGURE_STYLE= gnu > -CONFIGURE_ARGS= --disable-static-shell > +CONFIGURE_STYLE= simple > > -# for x11/gnome/tracker > -CONFIGURE_ARGS += --enable-fts5 > +CONFIGURE_ARGS= --disable-static-shell \ > + --soname=${LIBsqlite3_VERSION} \ > + --prefix=${PREFIX} \ > + --sysconfdir=${SYSCONFDIR} \ > + --mandir=${PREFIX}/man \ > + --localstatedir=${LOCALSTATEDIR} \ > + --enable-rtree \ > + --enable-fts4 \ > + --enable-fts5 \ > + --enable-session > + > +CONFIGURE_ENV = CCACHE=None \ > + CFLAGS='${CFLAGS}' > > -# for mozilla > CFLAGS+= -DSQLITE_ENABLE_UNLOCK_NOTIFY \ > - -DSQLITE_ENABLE_FTS3 \ > -DSQLITE_ENABLE_DBSTAT_VTAB \ > - -DSQLITE_ENABLE_COLUMN_METADATA=1 \ > - -DSQLITE_ENABLE_SESSION \ > - -DSQLITE_ENABLE_PREUPDATE_HOOK > + -DSQLITE_ENABLE_COLUMN_METADATA > > BUILD_DEPENDS = converters/sqlite2mdoc > + > post-install: > + rm ${PREFIX}/lib/libsqlite3.so{,.0} > + mv ${PREFIX}/lib/libsqlite3.so.* > ${PREFIX}/lib/libsqlite3.so.${LIBsqlite3_VERSION} > ${INSTALL_DATA_DIR} ${PREFIX}/man/man3 > ${LOCALBASE}/bin/sqlite2mdoc -p ${PREFIX}/man/man3 > ${PREFIX}/include/sqlite3.h > # fix the .pc file > Index: distinfo > =================================================================== > RCS file: /cvs/ports/databases/sqlite3/distinfo,v > diff -u -p -r1.78 distinfo > --- distinfo 29 Jan 2025 17:34:14 -0000 1.78 > +++ distinfo 28 Feb 2025 18:02:44 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (sqlite-autoconf-3480000.tar.gz) = > rJkvf8o5id5+0f6ZwWNj+Eh5TIwyoVja/U65J6LgL9U= > -SIZE (sqlite-autoconf-3480000.tar.gz) = 3337615 > +SHA256 (sqlite-autoconf-3490100.tar.gz) = > EGZC2MyzbF9zI7ZOQVLptxn3wCFaz1v+rD1ef5e1klQ= > +SIZE (sqlite-autoconf-3490100.tar.gz) = 3226385 > Index: patches/patch-autosetup_autosetup-find-tclsh > =================================================================== > RCS file: patches/patch-autosetup_autosetup-find-tclsh > diff -N patches/patch-autosetup_autosetup-find-tclsh > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-autosetup_autosetup-find-tclsh 28 Feb 2025 18:02:44 > -0000 > @@ -0,0 +1,14 @@ > +Prevent accidental detection of a jimtcl installation > + > +Index: autosetup/autosetup-find-tclsh > +--- autosetup/autosetup-find-tclsh.orig > ++++ autosetup/autosetup-find-tclsh > +@@ -4,7 +4,7 @@ > + # Prefer $autosetup_tclsh if is set in the environment (unless ./jimsh0 > works) > + # If an argument is given, use that as the test instead of > autosetup-test-tclsh > + d="`dirname "$0"`" > +-for tclsh in ./jimsh0 $autosetup_tclsh jimsh tclsh tclsh8.5 tclsh8.6 > tclsh8.7; do > ++for tclsh in $autosetup_tclsh tclsh tclsh8.5 tclsh8.6 tclsh8.7; do > + { $tclsh "$d/${1-autosetup-test-tclsh}"; } 2>/dev/null && exit 0 > + done > + echo 1>&2 "No installed jimsh or tclsh, building local bootstrap jimsh0" The "./jimsh0" case above is actually the executable name of a stripped version of jimtcl shipped as autosetup/jimsh0.c in the sqlite tarball. The first other tclsh executable in the list is going to be used if present, with a fallback on compiling and using jimsh0. IMO we always want to use the same interpreter, and can't take the risk of a picked up version being junked by dpb(1) in bulk builds, no matter the length of the race window. You could patch out the alternatives and always use the jimsh0.c fallback. But adding a BUILD_DEPENDS on lang/tcl looks sane. It doesn't bring any other BUILD_DEPENDS/LIB_DEPENDS and would be the usual thing to do. Updated diff below: - add --enable-geopoly - add bdep on lang/tcl, let the tcl module decide which version to use but force the picked up version to be used in autosetup. Alternately we could choose the tcl version independently of the defaults in tcl.port.mk - tweak SHARED_LIBS comment, not sure what was was initially intended :) - reorder Makefile a bit to have MODULES/BUILD_DEPENDS and following bits in the usual order - added a comment about renaming a shared library being usually incorrect, as discussed with sthen cc'ing the Stuarts. If you agree with those changes, ok jca@ for the diff below. Index: Makefile =================================================================== RCS file: /home/cvs/ports/databases/sqlite3/Makefile,v diff -u -p -r1.135 Makefile --- Makefile 27 Feb 2025 15:44:32 -0000 1.135 +++ Makefile 2 Mar 2025 16:30:23 -0000 @@ -1,11 +1,10 @@ COMMENT= embedded SQL implementation -DISTNAME = sqlite-autoconf-3480000 -PKGNAME= sqlite3-3.48.0 -REVISION= 1 +DISTNAME = sqlite-autoconf-3490100 +PKGNAME= sqlite3-3.49.1 -# XXX needs bumps every time :- -SHARED_LIBS += sqlite3 37.31 # 8.6 +# XXX needs bumps every time :-/ +SHARED_LIBS += sqlite3 37.32 # 8.6 # sqlite suggests that users might like to assert() that library and header # versions match, so bumps are needed even if function signatures don't change. # ... at the current time the only one noticed is a < check (in subversion) @@ -25,22 +24,36 @@ SITES = ${HOMEPAGE}2025/ DEBUG_PACKAGES= ${BUILD_PACKAGES} -CONFIGURE_STYLE= gnu -CONFIGURE_ARGS= --disable-static-shell +MODULES = lang/tcl +BUILD_DEPENDS = converters/sqlite2mdoc \ + ${MODTCL_BUILD_DEPENDS} + +CONFIGURE_STYLE= simple +CONFIGURE_ARGS= --disable-static-shell \ + --soname=${LIBsqlite3_VERSION} \ + --prefix=${PREFIX} \ + --sysconfdir=${SYSCONFDIR} \ + --mandir=${PREFIX}/man \ + --localstatedir=${LOCALSTATEDIR} \ + --enable-rtree \ + --enable-geopoly \ + --enable-fts4 \ + --enable-fts5 \ + --enable-session + +CONFIGURE_ENV = CCACHE=None \ + CFLAGS='${CFLAGS}' \ + autosetup_tclsh={MODTCL_BIN} -# for x11/gnome/tracker -CONFIGURE_ARGS += --enable-fts5 - -# for mozilla CFLAGS+= -DSQLITE_ENABLE_UNLOCK_NOTIFY \ - -DSQLITE_ENABLE_FTS3 \ -DSQLITE_ENABLE_DBSTAT_VTAB \ - -DSQLITE_ENABLE_COLUMN_METADATA=1 \ - -DSQLITE_ENABLE_SESSION \ - -DSQLITE_ENABLE_PREUPDATE_HOOK + -DSQLITE_ENABLE_COLUMN_METADATA -BUILD_DEPENDS = converters/sqlite2mdoc post-install: + rm ${PREFIX}/lib/libsqlite3.so{,.0} + # This is usually incorrect, but here the build sets the library soname + # so renaming the file after the fact is ok. + mv ${PREFIX}/lib/libsqlite3.so.* ${PREFIX}/lib/libsqlite3.so.${LIBsqlite3_VERSION} ${INSTALL_DATA_DIR} ${PREFIX}/man/man3 ${LOCALBASE}/bin/sqlite2mdoc -p ${PREFIX}/man/man3 ${PREFIX}/include/sqlite3.h # fix the .pc file Index: distinfo =================================================================== RCS file: /home/cvs/ports/databases/sqlite3/distinfo,v diff -u -p -r1.78 distinfo --- distinfo 29 Jan 2025 17:34:14 -0000 1.78 +++ distinfo 2 Mar 2025 15:28:49 -0000 @@ -1,2 +1,2 @@ -SHA256 (sqlite-autoconf-3480000.tar.gz) = rJkvf8o5id5+0f6ZwWNj+Eh5TIwyoVja/U65J6LgL9U= -SIZE (sqlite-autoconf-3480000.tar.gz) = 3337615 +SHA256 (sqlite-autoconf-3490100.tar.gz) = EGZC2MyzbF9zI7ZOQVLptxn3wCFaz1v+rD1ef5e1klQ= +SIZE (sqlite-autoconf-3490100.tar.gz) = 3226385 Index: pkg/PLIST =================================================================== RCS file: /home/cvs/ports/databases/sqlite3/pkg/PLIST,v diff -u -p -r1.16 PLIST --- pkg/PLIST 27 Oct 2024 16:09:03 -0000 1.16 +++ pkg/PLIST 2 Mar 2025 15:28:49 -0000 @@ -3,7 +3,6 @@ include/sqlite3.h include/sqlite3ext.h @static-lib lib/libsqlite3.a -lib/libsqlite3.la @lib lib/libsqlite3.so.${LIBsqlite3_VERSION} lib/pkgconfig/sqlite3.pc @man man/man1/sqlite3.1 -- jca
Index: Makefile =================================================================== RCS file: /home/cvs/ports/databases/sqlite3/Makefile,v diff -u -p -r1.135 Makefile --- Makefile 27 Feb 2025 15:44:32 -0000 1.135 +++ Makefile 2 Mar 2025 16:30:23 -0000 @@ -1,11 +1,10 @@ COMMENT= embedded SQL implementation -DISTNAME = sqlite-autoconf-3480000 -PKGNAME= sqlite3-3.48.0 -REVISION= 1 +DISTNAME = sqlite-autoconf-3490100 +PKGNAME= sqlite3-3.49.1 -# XXX needs bumps every time :- -SHARED_LIBS += sqlite3 37.31 # 8.6 +# XXX needs bumps every time :-/ +SHARED_LIBS += sqlite3 37.32 # 8.6 # sqlite suggests that users might like to assert() that library and header # versions match, so bumps are needed even if function signatures don't change. # ... at the current time the only one noticed is a < check (in subversion) @@ -25,22 +24,36 @@ SITES = ${HOMEPAGE}2025/ DEBUG_PACKAGES= ${BUILD_PACKAGES} -CONFIGURE_STYLE= gnu -CONFIGURE_ARGS= --disable-static-shell +MODULES = lang/tcl +BUILD_DEPENDS = converters/sqlite2mdoc \ + ${MODTCL_BUILD_DEPENDS} + +CONFIGURE_STYLE= simple +CONFIGURE_ARGS= --disable-static-shell \ + --soname=${LIBsqlite3_VERSION} \ + --prefix=${PREFIX} \ + --sysconfdir=${SYSCONFDIR} \ + --mandir=${PREFIX}/man \ + --localstatedir=${LOCALSTATEDIR} \ + --enable-rtree \ + --enable-geopoly \ + --enable-fts4 \ + --enable-fts5 \ + --enable-session + +CONFIGURE_ENV = CCACHE=None \ + CFLAGS='${CFLAGS}' \ + autosetup_tclsh={MODTCL_BIN} -# for x11/gnome/tracker -CONFIGURE_ARGS += --enable-fts5 - -# for mozilla CFLAGS+= -DSQLITE_ENABLE_UNLOCK_NOTIFY \ - -DSQLITE_ENABLE_FTS3 \ -DSQLITE_ENABLE_DBSTAT_VTAB \ - -DSQLITE_ENABLE_COLUMN_METADATA=1 \ - -DSQLITE_ENABLE_SESSION \ - -DSQLITE_ENABLE_PREUPDATE_HOOK + -DSQLITE_ENABLE_COLUMN_METADATA -BUILD_DEPENDS = converters/sqlite2mdoc post-install: + rm ${PREFIX}/lib/libsqlite3.so{,.0} + # This is usually incorrect, but here the build sets the library soname + # so renaming the file after the fact is ok. + mv ${PREFIX}/lib/libsqlite3.so.* ${PREFIX}/lib/libsqlite3.so.${LIBsqlite3_VERSION} ${INSTALL_DATA_DIR} ${PREFIX}/man/man3 ${LOCALBASE}/bin/sqlite2mdoc -p ${PREFIX}/man/man3 ${PREFIX}/include/sqlite3.h # fix the .pc file Index: distinfo =================================================================== RCS file: /home/cvs/ports/databases/sqlite3/distinfo,v diff -u -p -r1.78 distinfo --- distinfo 29 Jan 2025 17:34:14 -0000 1.78 +++ distinfo 2 Mar 2025 15:28:49 -0000 @@ -1,2 +1,2 @@ -SHA256 (sqlite-autoconf-3480000.tar.gz) = rJkvf8o5id5+0f6ZwWNj+Eh5TIwyoVja/U65J6LgL9U= -SIZE (sqlite-autoconf-3480000.tar.gz) = 3337615 +SHA256 (sqlite-autoconf-3490100.tar.gz) = EGZC2MyzbF9zI7ZOQVLptxn3wCFaz1v+rD1ef5e1klQ= +SIZE (sqlite-autoconf-3490100.tar.gz) = 3226385 Index: pkg/PLIST =================================================================== RCS file: /home/cvs/ports/databases/sqlite3/pkg/PLIST,v diff -u -p -r1.16 PLIST --- pkg/PLIST 27 Oct 2024 16:09:03 -0000 1.16 +++ pkg/PLIST 2 Mar 2025 15:28:49 -0000 @@ -3,7 +3,6 @@ include/sqlite3.h include/sqlite3ext.h @static-lib lib/libsqlite3.a -lib/libsqlite3.la @lib lib/libsqlite3.so.${LIBsqlite3_VERSION} lib/pkgconfig/sqlite3.pc @man man/man1/sqlite3.1