On Wed, 05 Feb 2025 09:26:24 +0100 Sebastien Marie <sema...@kapouay.eu.org> wrote:
> Sebastien Marie <sema...@kapouay.eu.org> writes: > > > Hi, > > > > So I wrote a module for > > managing dependencies via sysutils/opam (lang/haxe work by thfr@ was > > also a reason for it). > > Below is lang/haxe converted to use sysutils/opam (tarball attached, > and diff from your previous work). I tried to limit the change to > sysutils/opam usage. > > Please note that I am not pushing lang/haxe to use (new and > hypothetic) sysutils/opam module. It was mostly an exercice for me to > see how the module would copte with lang/haxe. So comments would be > helpful. I ... love it! Got a slightly different tarball size/checksum so that's the only thing that I had to regenerate. I haven't tested every nook and cranny of the module, but from how I see it working and from looking over it, the opam module is ok thfr@ I'm attaching the updated tarball, which really only changes the distinfo for the haxe-opam-4.3.6 tarball which is now hosted at SITES.opam. > > > To be noticed: > - the patching of luv-0.5.12 is explicit. the upstream tarball is > fetched and patched by ports infrastructure > > - sysutils/opam added to MODULES > > - pre-build dance is replaced by CONFIGURE_STYLE += opam > > - the opam repository used for dependencies resolution is > MODOPAM_REPO_COMMIT = > e25af452e64b0bd6672dce5f38d878780362341d MODOPAM_REPO_NAME = > haxe-opam-${V} > > MODOPAM_REPO_COMMIT is mostly cosmetic (it could be removed), but > ensure reproductibility across "make modopam-repository" usages. > > MODOPAM_REPO_NAME is used for the directory name. I kept the same as > original diff (with tar.bz2 in distfiles). > > - the size of the tarball of opam repository vs opamroot is 37Mo -> 8 > Mo > > - the opamroot helper is replaced by "modopam-repository" target from > the module. > > - "opam install" time is lot more quick to start. it is due that opam > repository is a stripped version (to only contains the required > dependencies). so opam took almost no time to resolve the dependency > chain and decide which version to build and in which order. > > > diff --git a/lang/haxe/Makefile b/lang/haxe/Makefile > index cd62211d81..22b23739a8 100644 > --- a/lang/haxe/Makefile > +++ b/lang/haxe/Makefile > @@ -9,8 +9,12 @@ > f1f18201e5c0479cb5adf5f6028788b37f37b730 \ > extra/haxelib_src/hx3compat #MIT > > +LUV_V = 0.5.12 > +SITES.luv > = https://github.com/aantron/luv/releases/download/${LUV_V}/ > +DISTFILES.luv = luv-${LUV_V}.tar.gz > + > SITES.opamroot = https://thfr.info/distfiles/ > -DISTFILES.opamroot = haxe-opamroot-${V}.tar.bz2 > +DISTFILES.opamroot = haxe-opam-${V}.tar.bz2 > > CATEGORIES = lang devel > HOMEPAGE = https://haxe.org > @@ -22,7 +26,8 @@ > > WANTLIB += c m mbedcrypto mbedtls mbedx509 neko pcre2-8 pthread uv z > > -MODULES = lang/ocaml > +MODULES = lang/ocaml \ > + sysutils/opam > > BUILD_DEPENDS = devel/dune \ > devel/p5-IPC-System-Simple \ > @@ -37,37 +42,19 @@ > lang/nekovm \ > security/polarssl > > -MAKE_ENV += OPAMROOT=${WRKDIR}/opamroot > USE_GMAKE = Yes > > CFLAGS += -I${LOCALBASE}/include \ > -L${LOCALBASE}/lib > > -pre-build: > - env OPAMROOT=${WRKDIR}/opamroot opam pin add haxe ${WRKSRC} \ > - --kind=path --no-action > - env OPAMROOT=${WRKDIR}/opamroot opam pin add luv.0.5.12 \ > - > ${WRKDIR}/opamroot/default/.opam-switch/sources/luv.0.5.12 \ > - --kind=path --no-action > - env OPAMROOT=${WRKDIR}/opamroot LUV_USE_SYSTEM_LIBUV=yes > opam \ > - install --deps-only --yes --inplace-build -v haxe > - > -# opamroot-helper: > -# Helper target to get initial ocaml dependencies and package > in -# /tmp/haxe-opamroot-${V}.tar.bz2. May need to add > additional missing -# packages. See `$ opam help install` for > syntax. Any patched opam -# packages need to be pinned to > their source directory, otherwise they -# will be overwritten > (see `$ opam help pin`). -# Needs opam and bzip2; run after > `make patch`. Press `5` when prompted -# to skip adjusting > ~/.profile. - > -opamroot-helper: > - mkdir /tmp/opamroot > - env OPAMROOT=/tmp/opamroot opam init > - env OPAMROOT=/tmp/opamroot opam pin add haxe ${WRKSRC} \ > - --kind=path --no-action > - OPAMROOT=/tmp/opamroot opam install haxe --deps-only \ > - --download-only --recursive --verbose > - tar jcf /tmp/haxe-opamroot-${V}.tar.bz2 -C /tmp opamroot > +MODOPAM_REPO_COMMIT = e25af452e64b0bd6672dce5f38d878780362341d > +MODOPAM_REPO_NAME = haxe-opam-${V} > + > +CONFIGURE_STYLE += opam > + > +MAKE_ENV += LUV_USE_SYSTEM_LIBUV=yes > + > +post-extract: > + mv ${WRKDIR}/luv-${LUV_V}/ ${WRKSRC} > > .include <bsd.port.mk> > diff --git a/lang/haxe/distinfo b/lang/haxe/distinfo > index 3c3406d35c..e967f19460 100644 > --- a/lang/haxe/distinfo > +++ b/lang/haxe/distinfo > @@ -1,8 +1,10 @@ > SHA256 (HaxeFoundation-haxe-4.3.6.tar.gz) = > 0WkLbQQxKl+yBdksqi9IyWDLfwhKGCVN7kIic+vWrac= SHA256 > (HaxeFoundation-haxelib-f17fffa97554b1bdba37750e3418051f017a5bc2.tar.gz) > = sGk8vw0KpX7/3VaqdZeS4BSFn4Q8o9Kkq8jxnYo2yb4= -SHA256 > (haxe-opamroot-4.3.6.tar.bz2) = > XuN6dbrQ9pmrVb4TPhcsfViSwyzUx/ts1zC6J1TfW00= +SHA256 > (haxe-opam-4.3.6.tar.bz2) = > S38y/GyxXcIaRvJKonCZdPGHT66jqpf5k5S+5fYEn6Y= SHA256 > (haxefoundation-hx3compat-f1f18201e5c0479cb5adf5f6028788b37f37b730.tar.gz) > = 0QDeX2BsGFMDce7YOrrMHCCCZtslz+L6w4d0MDU6by4= +SHA256 > (luv-0.5.12.tar.gz) = dp9qCIYqSdROIAQ+Jw73F3vMe7hnkDe8BgZWImNMVsA= > SIZE (HaxeFoundation-haxe-4.3.6.tar.gz) = 8027390 SIZE > (HaxeFoundation-haxelib-f17fffa97554b1bdba37750e3418051f017a5bc2.tar.gz) > = 365126 -SIZE (haxe-opamroot-4.3.6.tar.bz2) = 36884113 +SIZE > (haxe-opam-4.3.6.tar.bz2) = 8158746 SIZE > (haxefoundation-hx3compat-f1f18201e5c0479cb5adf5f6028788b37f37b730.tar.gz) > = 26695 +SIZE (luv-0.5.12.tar.gz) = 817528 diff --git > a/lang/haxe/patches/patch-luv-0_5_12_src_c_luv_c_type_descriptions_ml > b/lang/haxe/patches/patch-luv-0_5_12_src_c_luv_c_type_descriptions_ml > new file mode 100644 index 0000000000..61b4484b53 --- /dev/null +++ > b/lang/haxe/patches/patch-luv-0_5_12_src_c_luv_c_type_descriptions_ml > @@ -0,0 +1,14 @@ +Index: luv-0.5.12/src/c/luv_c_type_descriptions.ml > +--- luv-0.5.12/src/c/luv_c_type_descriptions.ml.orig ++++ > luv-0.5.12/src/c/luv_c_type_descriptions.ml +@@ -736,8 +736,8 @@ > struct > + let canonname = constant "AI_CANONNAME" int > + let numerichost = constant "AI_NUMERICHOST" int > + let numericserv = constant "AI_NUMERICSERV" int > +- let v4mapped = constant "AI_V4MAPPED" int > +- let all = constant "AI_ALL" int > ++ let v4mapped = constant "0" int > ++ let all = constant "0" int > + let addrconfig = constant "AI_ADDRCONFIG" int > + end > + end > > > Regards.
haxe.tgz
Description: application/compressed-tar