Index | Thread | Search

From:
Jeremie Courreges-Anglas <jca@wxcvbn.org>
Subject:
Re: [Update] databases/sqlite3 3.49.1
To:
Volker Schlecht <openbsd-ports@schlecht.dev>
Cc:
ports@openbsd.org, stu@spacehopper.org
Date:
Fri, 28 Feb 2025 18:11:04 +0100

Download raw body.

Thread
On Thu, Feb 27, 2025 at 08:07:40PM +0100, Volker Schlecht wrote:
> On 2025-02-27 18:43, Stuart Henderson wrote:
> > two things definitely need changing:
> > 
> > - two symbols were removed; -DSQLITE_ENABLE_RTREE brings them back
> 
> Right, so does --enable-rtree - would that be ok as well?
> 
> > please add a BUILD_DEPENDS on lang/jimtcl so that the build environment

Erm, lang/jimtcl itself depends on databases/sqlite3 so it can't be
available in bulk builds started on clean machines, and we can't add
a build dep on it either.

I'd rather patch out the hidden dep so that the build is
deterministic, even on a machine where jimtcl is already installed.

> done
> 
> > personally I'd do these the other way round and get rid of ${VERSION} :
> > 
> > 	rm ${PREFIX}/lib/libsqlite3.so{,.0}
> > 	mv ${PREFIX}/lib/libsqlite3.so.* ${PREFIX}/lib/libsqlite3.so.${LIBsqlite3_VERSION}

I usually find this kind of construct suspicious, but indeed soname is
correctly passed and the resulting libsqlite.so.X.Y looks sane.

> Yup, done.

I'd suggest some tweaks below,

> 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	27 Feb 2025 19:02:19 -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,43 @@ SITES =		${HOMEPAGE}2025/
>  
>  DEBUG_PACKAGES=	${BUILD_PACKAGES}
>  
> -CONFIGURE_STYLE= gnu
> -CONFIGURE_ARGS=	--disable-static-shell
> +CONFIGURE_ARGS=	--disable-static-shell \
> +		--soname=${LIBsqlite3_VERSION} \
> +		--prefix=${PREFIX} \
> +		--sysconfdir=${SYSCONFDIR} \
> +		--mandir=${PREFIX}/man \
> +		--localstatedir=${LOCALSTATEDIR}
> +
> +CONFIGURE_ENV =	CCACHE=None \
> +		CFLAGS='${CFLAGS}'
>  
> -# for x11/gnome/tracker
> +
> +CONFIGURE_ARGS +=	--enable-rtree
> + 
> +# originally 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
> +
> +CONFIGURE_ARGS +=	--enable-fts4 \
> +			--enable-fts3
> +
> +# for deno
> +CONFIGURE_ARGS +=	--enable-session

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.

> +BUILD_DEPENDS =	converters/sqlite2mdoc \
> +		lang/jimtcl
> +
> +do-configure:
> +		cd ${WRKSRC} && \
> +		${CONFIGURE_ENV} ./configure ${CONFIGURE_ARGS}

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.

> -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	27 Feb 2025 19:02:19 -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: /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	27 Feb 2025 19:02:19 -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