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

Reply via email to