On 2024/06/04 21:05, Christopher Zimmermann wrote: > It's been some time... Opam really needs an update. > > On Fri, Dec 31, 2021 at 01:41:44PM -0500, Daniel Dickman wrote: > > On Fri, Dec 31, 2021 at 2:36 AM Christopher Zimmermann > > <chr...@openbsd.org> wrote: > > > > > > Hi, > > > > > > this update of opam changes to the build-utils shipped with opam and > > > drops dependencies on our ports utils. This makes ports dune version > > > independent of opam. OK? > > > > > > Christopher > > > > 1) I get a bunch of failures like this when running "make test". we > > probably have to neuter "-- strip-trailing-cr" usage? > > > > var-option diff: unknown option -- strip-trailing-cr > > usage: diff [-abdipTtw] [-c | -e | -f | -n | -q | -u] [-I pattern] [-L > > label] > > file1 file2 > > diff [-abdipTtw] [-I pattern] [-L label] -C number file1 file2 > > diff [-abditw] [-I pattern] -D string file1 file2 > > diff [-abdipTtw] [-I pattern] [-L label] -U number file1 file2 > > diff [-abdiNPprsTtw] [-c | -e | -f | -n | -q | -u] [-I pattern] > > [-L label] [-S name] [-X file] [-x pattern] dir1 dir2 > > [FAIL] > > This is now dealt with by using gdiff for tests. > > > 2) Running portcheck resulted in: > > > > C++ libraries in WANTLIB with default COMPILER (most ports need > > 'COMPILER=base-clang ports-gcc' or 'COMPILER=base-clang ports-gcc > > base-gcc') > > I also made some tests more posix compliant, which helps them to succeed on > OpenBSD. I will try to get those fixes upstream. > > OK? > > Christopher > > > ... and here is the diff: > > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/sysutils/opam/Makefile,v > retrieving revision 1.28 > diff -u -p -r1.28 Makefile > --- Makefile 24 Apr 2024 17:10:39 -0000 1.28 > +++ Makefile 4 Jun 2024 19:01:12 -0000 > @@ -2,10 +2,9 @@ COMMENT = OCaml source-based package ma > CATEGORIES = sysutils devel > -V = 2.0.10 > +V = 2.1.6 > PKGNAME = opam-${V} > DISTNAME = opam-full-${V} > -REVISION = 1 > SITES = > https://github.com/ocaml/opam/releases/download/${V}/ > @@ -16,14 +15,12 @@ MAINTAINER = Christopher Zimmermann <ch > # LGPLv3 > PERMIT_PACKAGE = Yes > -WANTLIB = ${COMPILER_LIBCXX} c m > +WANTLIB = ${LIBCXX} c m
${COMPILER_LIBCXX} was already correct. > + > +COMPILER = base-clang base-gcc C++ programs in ports should all prefer ports-gcc over base-gcc except in special cases. Basically you can't have a mix of C++ programs and libraries using base-gcc and ports-gcc otherwise there are library conflicts, and on those archs which still use gcc in base the majority of C++ things in ports require more recent GCC. So: this should use "base-clang ports-gcc", or possibly "base-clang ports-gcc base-gcc". > BUILD_DEPENDS = lang/ocaml \ > - sysutils/findlib \ > - devel/dune \ > - devel/ocaml-cppo \ > - archivers/bzip2 \ > - net/curl > + archivers/bzip2 > RUN_DEPENDS = archivers/unzip \ > archivers/bzip2 \ > @@ -32,11 +29,16 @@ RUN_DEPENDS = archivers/unzip \ > devel/gmake \ > net/curl > +TEST_DEPENDS = textproc/gdiff \ > + net/wget > + > USE_GMAKE = Yes > CONFIGURE_ENV += CFLAGS="${CFLAGS}" \ > LDFLAGS="${LDFLAGS}" > -CONFIGURE_STYLE = gnu > +CONFIGURE_STYLE = gnu autoreconf no-autoheader > +AUTOCONF_VERSION = 2.69 > +AUTOMAKE_VERSION = 1.16 > ALL_TARGET = lib-ext all > INSTALL_TARGET = install > @@ -52,5 +54,8 @@ post-install: > ${docdir}/ > ${INSTALL_DATA_DIR} ${docdir}/pages > ${INSTALL_DATA} ${WRKSRC}/doc/pages/*.md ${docdir}/pages > + > +pre-test: > + ln -fs ${LOCALBASE}/bin/gdiff ${WRKDIR}/bin/diff > .include <bsd.port.mk> > Index: distinfo > =================================================================== > RCS file: /cvs/ports/sysutils/opam/distinfo,v > retrieving revision 1.9 > diff -u -p -r1.9 distinfo > --- distinfo 16 Jan 2023 19:03:18 -0000 1.9 > +++ distinfo 4 Jun 2024 19:01:12 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (opam-full-2.0.10.tar.gz) = > O1dAuOHBvGXc+KohxOjNgc1qv+G/UuosxDZ8P4nVvkA= > -SIZE (opam-full-2.0.10.tar.gz) = 8173617 > +SHA256 (opam-full-2.1.6.tar.gz) = > 0q9e3IX1UuDPXsDdzJSdlPLcVQ3F31lRdKBqTq+K9ig= > +SIZE (opam-full-2.1.6.tar.gz) = 11704198 > Index: patches/patch-Makefile_config_in > =================================================================== > RCS file: patches/patch-Makefile_config_in > diff -N patches/patch-Makefile_config_in > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-Makefile_config_in 4 Jun 2024 19:01:12 -0000 > @@ -0,0 +1,13 @@ > +don't use system wide installed ocaml packages > + > +Index: Makefile.config.in > +--- Makefile.config.in.orig > ++++ Makefile.config.in > +@@ -17,7 +17,6 @@ OCAMLFIND = @OCAMLFIND@ > + OCAML = @OCAML@ > + OCAMLC = @OCAMLC@ > + OCAMLOPT = @OCAMLOPT@ > +-DUNE = @DUNE@ > + DUNE_SECONDARY = @DUNE_SECONDARY@ > + LN_S = @LN_S@ > + Index: patches/patch-configure_ac > =================================================================== > RCS file: patches/patch-configure_ac > diff -N patches/patch-configure_ac > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-configure_ac 4 Jun 2024 19:01:12 -0000 > @@ -0,0 +1,14 @@ > +don't use system wide installed ocaml packages > + > +Index: configure.ac > +--- configure.ac.orig > ++++ configure.ac > +@@ -255,8 +255,6 @@ AS_IF([test "x${enable_certificate_check}" = "xno"], [ > + + AC_CHECK_PROGS(FETCH,[curl wget],no) > + +-AC_CHECK_TOOL(DUNE,dune) > +-AC_CHECK_TOOL(CPPO,cppo) > + AC_CHECK_TOOL(PATCH,patch) > + AC_CHECK_TOOL(BUNZIP2,bunzip2) > + Index: patches/patch-tests_reftests_legacy-git_test > =================================================================== > RCS file: patches/patch-tests_reftests_legacy-git_test > diff -N patches/patch-tests_reftests_legacy-git_test > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-tests_reftests_legacy-git_test 4 Jun 2024 19:01:12 > -0000 > @@ -0,0 +1,12 @@ > +Index: tests/reftests/legacy-git.test > +--- tests/reftests/legacy-git.test.orig > ++++ tests/reftests/legacy-git.test > +@@ -19,7 +19,7 @@ ARCHIVE=$1; shift > + if [ ! -e "packages/${ARCHIVE}" ]; then ( cd packages && tar czf ${ARCHIVE} > ${ARCHIVE%.tar.gz}; ) fi > + MD5=$(openssl md5 packages/${ARCHIVE} | cut -d' ' -f2) > + echo 'src: "http://dev.null" checksum: "'$MD5'"' > REPO/packages/${PKG}/url > +-CACHEDIR=REPO/cache/md5/$(echo $MD5 |head -c2) > ++CACHEDIR=REPO/cache/md5/$(echo $MD5 |cut -b -2) > + mkdir -p $CACHEDIR > + cp "packages/$ARCHIVE" "$CACHEDIR/$MD5" > + ### : INIT : > Index: patches/patch-tests_reftests_legacy-local_test > =================================================================== > RCS file: patches/patch-tests_reftests_legacy-local_test > diff -N patches/patch-tests_reftests_legacy-local_test > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-tests_reftests_legacy-local_test 4 Jun 2024 19:01:12 > -0000 > @@ -0,0 +1,12 @@ > +Index: tests/reftests/legacy-local.test > +--- tests/reftests/legacy-local.test.orig > ++++ tests/reftests/legacy-local.test > +@@ -7,7 +7,7 @@ ARCHIVE=$1; shift > + if [ ! -e "packages/${ARCHIVE}" ]; then ( cd packages && tar czf ${ARCHIVE} > ${ARCHIVE%.tar.gz}; ) fi > + MD5=$(openssl md5 packages/${ARCHIVE} | cut -d' ' -f2) > + echo 'src: "http://dev.null" checksum: "'$MD5'"' > REPO/packages/${PKG}/url > +-CACHEDIR=REPO/cache/md5/$(echo $MD5 |head -c2) > ++CACHEDIR=REPO/cache/md5/$(echo $MD5 |cut -b -2) > + mkdir -p $CACHEDIR > + cp "packages/$ARCHIVE" "$CACHEDIR/$MD5" > + ### : INIT : > Index: patches/patch-tests_reftests_local-cache_test > =================================================================== > RCS file: patches/patch-tests_reftests_local-cache_test > diff -N patches/patch-tests_reftests_local-cache_test > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-tests_reftests_local-cache_test 4 Jun 2024 19:01:12 > -0000 > @@ -0,0 +1,24 @@ > +Index: tests/reftests/local-cache.test > +--- tests/reftests/local-cache.test.orig > ++++ tests/reftests/local-cache.test > +@@ -73,16 +73,16 @@ hsh=$3 > + case "$hsh-$kind" in > + md5-archive) > + HSH=$ARCHIVE_MD5 > +- break;; > ++ ;; > + sha256-archive) > + HSH=$ARCHIVE_SHA256 > +- break;; > ++ ;; > + md5-patch) > + HSH=$PATCH_MD5 > +- break;; > ++ ;; > + sha256-patch) > + HSH=$PATCH_SHA256 > +- break;; > ++ ;; > + esac > + pkgpath="REPO/packages/${pkg%.*}/$pkg" > + sed -i.bak "s/good-$hsh/$HSH/" "$pkgpath/opam" > Index: patches/patch-tests_reftests_pin_unix_test > =================================================================== > RCS file: patches/patch-tests_reftests_pin_unix_test > diff -N patches/patch-tests_reftests_pin_unix_test > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-tests_reftests_pin_unix_test 4 Jun 2024 19:01:12 > -0000 > @@ -0,0 +1,21 @@ > +Index: tests/reftests/pin.unix.test > +--- tests/reftests/pin.unix.test.orig > ++++ tests/reftests/pin.unix.test > +@@ -14,7 +14,7 @@ echo "pin-depends: [ \"qux.dev\" \"file://$BASEDIR/qux > + opam-version: "2.0" > + depexts: [ "another-inexistant" ] > + ### opam switch create pinning --empty > +-### opam pin ./bar | '(apt-get|brew|port)' -> 'syspkgmanager' > ++### opam pin ./bar | '(apt-get|brew|port)' -> 'syspkgmanager' | 'pkg_add > -i' -> 'syspkgmanager install' > + Package bar does not exist, create as a NEW package? [Y/n] y > + The following additional pinnings are required by bar.~dev: > + - qux.dev at file://${BASEDIR}/qux > +@@ -45,7 +45,7 @@ Ok, qux is no longer pinned to file://${BASEDIR}/qux ( > + Ok, bar is no longer pinned to file://${BASEDIR}/bar (version ~dev) > + ### opam option 'depext-bypass-=["another-inexistant" "inexistant"]' > + No modification in switch pinning > +-### opam install ./bar | '(apt-get|brew|port)' -> 'syspkgmanager' > ++### opam install ./bar | '(apt-get|brew|port)' -> 'syspkgmanager' | > 'pkg_add -i' -> 'syspkgmanager install' > + Package bar does not exist, create as a NEW package? [Y/n] y > + The following additional pinnings are required by bar.~dev: > + - qux.dev at file://${BASEDIR}/qux > Index: pkg/PLIST > =================================================================== > RCS file: /cvs/ports/sysutils/opam/pkg/PLIST,v > retrieving revision 1.3 > diff -u -p -r1.3 PLIST > --- pkg/PLIST 11 Mar 2022 19:57:44 -0000 1.3 > +++ pkg/PLIST 4 Jun 2024 19:01:12 -0000 > @@ -24,6 +24,8 @@ > @man man/man1/opam-installer.1 > @man man/man1/opam-lint.1 > @man man/man1/opam-list.1 > +@man man/man1/opam-lock.1 > +@man man/man1/opam-option.1 > @man man/man1/opam-pin.1 > @man man/man1/opam-reinstall.1 > @man man/man1/opam-remote.1 > @@ -46,6 +48,7 @@ share/doc/opam/depexts-plugins > share/doc/opam/depopts-and-features > share/doc/opam/pages/ > share/doc/opam/pages/About.md > +share/doc/opam/pages/Distribution.md > share/doc/opam/pages/External_solvers.md > share/doc/opam/pages/FAQ.md > share/doc/opam/pages/Install.md >