On Sun, Mar 02, 2025 at 05:47:02PM +0100, Jeremie Courreges-Anglas wrote: > > 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. >
This diff looks pretty good to me. ok jturner@ > > 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