From 000a58d5a2be074567918229b39748e2dec06912 Mon Sep 17 00:00:00 2001 From: Lars Erik Wik Date: Mon, 1 Jun 2026 18:28:35 +0200 Subject: [PATCH] Replace leech with leech2 dependency Ticket: ENT-14099 Changelog: Title Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Lars Erik Wik --- README.md | 3 +- build-in-container.py | 4 + build-scripts/compile-options | 4 +- build-scripts/configure | 2 +- ci/cfengine-build-host-setup.cf | 4 +- ci/fix-buildhost.sh | 4 +- container/Dockerfile.debian | 9 +- deps-packaging/leech/cfbuild-leech.spec | 63 -------------- .../leech/debian/cfbuild-leech.install | 1 - deps-packaging/leech/debian/control | 18 ---- deps-packaging/leech/debian/rules | 44 ---------- deps-packaging/leech/distfiles | 1 - deps-packaging/leech/hpux/build | 25 ------ deps-packaging/leech/hpux/packages | 1 - .../debian/cfbuild-leech-mingw64.install | 1 - deps-packaging/leech/mingw/debian/control | 18 ---- deps-packaging/leech/mingw/debian/rules | 48 ----------- deps-packaging/leech/solaris/build | 30 ------- deps-packaging/leech/solaris/packages | 1 - deps-packaging/leech/source | 1 - deps-packaging/leech2/cfbuild-leech2.spec | 83 +++++++++++++++++++ .../debian/cfbuild-leech2-devel.install | 2 + .../debian/cfbuild-leech2.install} | 2 +- .../{leech => leech2}/debian/compat | 0 deps-packaging/leech2/debian/control | 18 ++++ .../{leech => leech2}/debian/copyright | 0 deps-packaging/leech2/debian/rules | 65 +++++++++++++++ deps-packaging/leech2/distfiles | 1 + .../cfbuild-leech2-mingw64-devel.install} | 0 .../debian/cfbuild-leech2-mingw64.install | 2 + .../{leech => leech2}/mingw/debian/compat | 0 deps-packaging/leech2/mingw/debian/control | 18 ++++ .../{leech => leech2}/mingw/debian/copyright | 0 deps-packaging/leech2/mingw/debian/rules | 61 ++++++++++++++ deps-packaging/leech2/source | 1 + deps-packaging/release-monitoring.json | 2 +- .../cfengine-nova-hub.spec.in | 2 + .../debian/cfengine-nova-hub.install | 2 + packaging/cfengine-nova/cfengine-nova.spec.in | 2 + packaging/cfengine-nova/cfengine-nova.wxs | 10 ++- .../debian/cfengine-nova.install | 2 + 41 files changed, 289 insertions(+), 266 deletions(-) delete mode 100644 deps-packaging/leech/cfbuild-leech.spec delete mode 100644 deps-packaging/leech/debian/cfbuild-leech.install delete mode 100644 deps-packaging/leech/debian/control delete mode 100644 deps-packaging/leech/debian/rules delete mode 100644 deps-packaging/leech/distfiles delete mode 100755 deps-packaging/leech/hpux/build delete mode 100644 deps-packaging/leech/hpux/packages delete mode 100644 deps-packaging/leech/mingw/debian/cfbuild-leech-mingw64.install delete mode 100644 deps-packaging/leech/mingw/debian/control delete mode 100644 deps-packaging/leech/mingw/debian/rules delete mode 100755 deps-packaging/leech/solaris/build delete mode 100644 deps-packaging/leech/solaris/packages delete mode 100644 deps-packaging/leech/source create mode 100644 deps-packaging/leech2/cfbuild-leech2.spec create mode 100644 deps-packaging/leech2/debian/cfbuild-leech2-devel.install rename deps-packaging/{leech/debian/cfbuild-leech-devel.install => leech2/debian/cfbuild-leech2.install} (51%) rename deps-packaging/{leech => leech2}/debian/compat (100%) create mode 100644 deps-packaging/leech2/debian/control rename deps-packaging/{leech => leech2}/debian/copyright (100%) create mode 100755 deps-packaging/leech2/debian/rules create mode 100644 deps-packaging/leech2/distfiles rename deps-packaging/{leech/mingw/debian/cfbuild-leech-mingw64-devel.install => leech2/mingw/debian/cfbuild-leech2-mingw64-devel.install} (100%) create mode 100644 deps-packaging/leech2/mingw/debian/cfbuild-leech2-mingw64.install rename deps-packaging/{leech => leech2}/mingw/debian/compat (100%) create mode 100644 deps-packaging/leech2/mingw/debian/control rename deps-packaging/{leech => leech2}/mingw/debian/copyright (100%) create mode 100755 deps-packaging/leech2/mingw/debian/rules create mode 100644 deps-packaging/leech2/source diff --git a/README.md b/README.md index e6b62202a..5ecab199f 100644 --- a/README.md +++ b/README.md @@ -146,7 +146,8 @@ File `install-dependencies` and the relevant subdirectories in `deps-packaging` | [SASL2](https://www.cyrusimap.org/sasl/) | 2.1.28 | 2.1.28 | 2.1.28 | Solaris Enterprise agent | | [zlib](https://www.zlib.net/) | 1.3.2 | 1.3.2 | 1.3.2 | | | [librsync](https://github.com/librsync/librsync/releases) | - | 2.3.4 | 2.3.4 | | -| [leech](https://github.com/larsewi/leech/releases) | - | 0.2.0 | 0.2.0 | | +| [leech](https://github.com/larsewi/leech/releases) | - | 0.2.0 | - | | +| [leech2](https://github.com/larsewi/leech2/releases) | - | - | 5.0.1 | | ### Enterprise Hub dependencies diff --git a/build-in-container.py b/build-in-container.py index adc21fe68..4484efd22 100755 --- a/build-in-container.py +++ b/build-in-container.py @@ -96,6 +96,10 @@ def build_image(platform_name, platform_config, script_dir, rebuild=False): cmd.extend(["--network", "host"]) + # Expose ci/ as a named build context so the Dockerfile can COPY --from=ci + # the shared toolchain installers without widening the main build context. + cmd.extend(["--build-context", f"ci={script_dir / 'ci'}"]) + # Build context is the container/ directory cmd.append(str(script_dir / "container")) diff --git a/build-scripts/compile-options b/build-scripts/compile-options index 4206536d1..f73cacf46 100644 --- a/build-scripts/compile-options +++ b/build-scripts/compile-options @@ -155,10 +155,10 @@ nova) # - Mission Portal uses LDAP for authentication functionality var_append DEPS "openldap" - # leech is used for efficient synchronization of tabular data. + # leech2 is used for efficient synchronization of tabular data. # - cf-hub requests state changes from cf-serverd # - state changes are recorded by cf-agent - var_append DEPS "leech" + var_append DEPS "leech2" ;; esac diff --git a/build-scripts/configure b/build-scripts/configure index c54b7b64f..ba88698e3 100755 --- a/build-scripts/configure +++ b/build-scripts/configure @@ -42,7 +42,7 @@ P=$BUILDPREFIX ARGS="--prefix=$P --libdir=$P/lib --with-workdir=$P --sysconfdir=/etc --with-openssl=$P --with-pcre2=$P --with-librsync=$P --with-init-script --with-lmdb=$P" -for dep in ldap libxml2 libyaml librsync leech libacl libvirt libcurl; do +for dep in ldap libxml2 libyaml librsync leech2 libacl libvirt libcurl; do case "$DEPS" in *"$dep"*) var_append ARGS "--with-$dep=$P" diff --git a/ci/cfengine-build-host-setup.cf b/ci/cfengine-build-host-setup.cf index 1c236e228..b9c4eb542 100644 --- a/ci/cfengine-build-host-setup.cf +++ b/ci/cfengine-build-host-setup.cf @@ -269,7 +269,7 @@ bundle agent cfengine_build_host_setup expression => not(fileexists("/etc/cfengine-in-container.flag")), comment => "We use an explicit flag file that we control to avoid ambiguity about whether we are in a container or not."; - # Rust is build dependency for leech2 (gate on ubuntu>=20, debian>=12, redhat>=8) + # Rust is build dependency for leech2 (gate on ubuntu>=20, debian>=12, redhat>=7) ubuntu:: "leech2_build_toolchain_host" expression => version_compare("$(sys.os_version_major)", ">=", "20"); @@ -280,7 +280,7 @@ bundle agent cfengine_build_host_setup (redhat|centos):: "leech2_build_toolchain_host" - expression => version_compare("$(sys.os_version_major)", ">=", "8"); + expression => version_compare("$(sys.os_version_major)", ">=", "7"); any:: "have_rust" diff --git a/ci/fix-buildhost.sh b/ci/fix-buildhost.sh index 5b94bcf9d..1a35098a7 100755 --- a/ci/fix-buildhost.sh +++ b/ci/fix-buildhost.sh @@ -49,14 +49,14 @@ fi # not-yet-reimaged hosts (and branches that change these deps) get what they # need without a reimage. Each call is guarded by an already-installed check, # and gated to the same platforms as the policy (ubuntu>=20, debian>=12, -# rhel/centos>=8). +# rhel/centos>=7). if [ -f /etc/os-release ]; then . /etc/os-release os_major="${VERSION_ID%%.*}" case "$ID" in ubuntu) min_major=20 ;; debian) min_major=12 ;; - rhel | centos) min_major=8 ;; + rhel | centos) min_major=7 ;; *) min_major="" ;; esac if [ -n "$min_major" ] && [ "${os_major:-0}" -ge "$min_major" ]; then diff --git a/container/Dockerfile.debian b/container/Dockerfile.debian index 5b2abdcf3..3df1c5c25 100644 --- a/container/Dockerfile.debian +++ b/container/Dockerfile.debian @@ -8,7 +8,7 @@ RUN apt-get update && apt-get install -y \ autoconf automake binutils bison build-essential curl debhelper \ dpkg-dev expat fakeroot flex gdb git libexpat1-dev \ libmodule-load-conditional-perl libpam0g-dev libtool \ - pkg-config psmisc python3-pip rsync sudo systemd-coredump wget \ + pkg-config psmisc python3-pip rsync sudo systemd-coredump unzip wget \ && rm -rf /var/lib/apt/lists/* # ncurses: ubuntu-20 uses libncurses5/libncurses5-dev, newer use libncurses6/libncurses-dev @@ -30,6 +30,13 @@ RUN apt-get purge -y \ libattr1-dev libssl-dev libpcre2-dev libacl1-dev \ libyaml-dev libxml2-dev librsync-dev 2>/dev/null || true +# Rust toolchain and protobuf compiler for building the cargo-based leech2 +# dependency. +COPY --from=ci linux-install-protobuf.sh linux-install-rust.sh /tmp/ +RUN /tmp/linux-install-protobuf.sh +RUN /tmp/linux-install-rust.sh +RUN rm -f /tmp/linux-install-protobuf.sh /tmp/linux-install-rust.sh + # Create build user with passwordless sudo (needed by install-dependencies, package, etc.) RUN useradd -m -s /bin/bash builder \ && echo "builder ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/builder diff --git a/deps-packaging/leech/cfbuild-leech.spec b/deps-packaging/leech/cfbuild-leech.spec deleted file mode 100644 index a437def74..000000000 --- a/deps-packaging/leech/cfbuild-leech.spec +++ /dev/null @@ -1,63 +0,0 @@ -%define leech_version 0.2.0 - -Summary: CFEngine Build Automation -- leech -Name: cfbuild-leech -Version: %{version} -Release: 1 -Source0: leech-%{leech_version}.tar.gz -License: LGPL -Group: Other -Url: https://cfengine.com -BuildRoot: %{_topdir}/BUILD/%{name}-%{version}-%{release}-buildroot - -AutoReqProv: no - -%define prefix %{buildprefix} - -%prep -mkdir -p %{_builddir} -%setup -q -n leech-%{leech_version} - -./configure --prefix=%{prefix} --enable-shared --disable-static - -rm -f ${RPM_BUILD_ROOT}%{prefix}/lib/libleech.a - -%build - -make - -%install -rm -rf ${RPM_BUILD_ROOT} - -make install DESTDIR=${RPM_BUILD_ROOT} -rm -f ${RPM_BUILD_ROOT}%{prefix}/lib/libleech.la - -%clean -rm -rf $RPM_BUILD_ROOT - -%package devel -Summary: CFEngine Build Automation -- leech -- development files -Group: Other -AutoReqProv: no - -%description -CFEngine Build Automation -- leech - -%description devel -CFEngine Build Automation -- leech -- development files - -%files -%defattr(-,root,root) - -%dir %{prefix}/lib -%{prefix}/lib/*.so* - -%files devel -%defattr(-,root,root) - -%dir %{prefix}/include -%{prefix}/include/*.h - -%dir %{prefix}/lib - -%changelog diff --git a/deps-packaging/leech/debian/cfbuild-leech.install b/deps-packaging/leech/debian/cfbuild-leech.install deleted file mode 100644 index 808bf7945..000000000 --- a/deps-packaging/leech/debian/cfbuild-leech.install +++ /dev/null @@ -1 +0,0 @@ -/var/cfengine/lib/*.so.* diff --git a/deps-packaging/leech/debian/control b/deps-packaging/leech/debian/control deleted file mode 100644 index 90f1a3ddc..000000000 --- a/deps-packaging/leech/debian/control +++ /dev/null @@ -1,18 +0,0 @@ -Source: cfbuild-leech -Section: libs -Priority: optional -Maintainer: CFEngine Packager -Build-Depends: debhelper -Standards-Version: 3.8.4 - -Package: cfbuild-leech -Section: libs -Architecture: any -Description: CFEngine Build Automation -- leech - CFEngine Build Automation -- leech - -Package: cfbuild-leech-devel -Section: libdevel -Architecture: any -Description: CFEngine Build Automation -- leech -- development files - CFEngine Build Automation -- leech -- development files diff --git a/deps-packaging/leech/debian/rules b/deps-packaging/leech/debian/rules deleted file mode 100644 index f8eda321c..000000000 --- a/deps-packaging/leech/debian/rules +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/make -f - -PREFIX=$(BUILDPREFIX) - -clean: - dh_testdir - dh_testroot - - dh_clean - -build: build-stamp -build-stamp: - dh_testdir - - ./configure --prefix=$(PREFIX) --enable-shared --disable-static - make - - touch build-stamp - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp - -binary-indep: build install - -binary-arch: build install - dh_testdir - dh_testroot - dh_install --sourcedir=debian/tmp - dh_link - dh_strip - dh_compress - dh_fixperms - dh_installdeb - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/deps-packaging/leech/distfiles b/deps-packaging/leech/distfiles deleted file mode 100644 index 7f69c2897..000000000 --- a/deps-packaging/leech/distfiles +++ /dev/null @@ -1 +0,0 @@ -9c86f1a12ca696c32a3b9413e3f6344c965d9ee6b307adf916f9a50ff0d288ce leech-0.2.0.tar.gz diff --git a/deps-packaging/leech/hpux/build b/deps-packaging/leech/hpux/build deleted file mode 100755 index ec63ceb8e..000000000 --- a/deps-packaging/leech/hpux/build +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -e - -# Options - -PREFIX=${BUILDPREFIX} - -TT=${BUILD_ROOT}/cfbuild-leech${PREFIX} -TTD=${BUILD_ROOT}/cfbuild-leech-devel${PREFIX} - -# Build -./configure --prefix=$PREFIX -gmake - -# Test - -# Install - -mkdir -p $TTD/lib -mkdir -p $TTD/include -gmake install prefix=${TTD} - -# Package - -mkdir -p ${TT}/lib -mv ${TTD}/lib/*.so* ${TT}/lib diff --git a/deps-packaging/leech/hpux/packages b/deps-packaging/leech/hpux/packages deleted file mode 100644 index 3dffeb671..000000000 --- a/deps-packaging/leech/hpux/packages +++ /dev/null @@ -1 +0,0 @@ -cfbuild-leech cfbuild-leech-devel diff --git a/deps-packaging/leech/mingw/debian/cfbuild-leech-mingw64.install b/deps-packaging/leech/mingw/debian/cfbuild-leech-mingw64.install deleted file mode 100644 index 82b4f10bd..000000000 --- a/deps-packaging/leech/mingw/debian/cfbuild-leech-mingw64.install +++ /dev/null @@ -1 +0,0 @@ -/var/cfengine/bin/*.dll diff --git a/deps-packaging/leech/mingw/debian/control b/deps-packaging/leech/mingw/debian/control deleted file mode 100644 index 69324a823..000000000 --- a/deps-packaging/leech/mingw/debian/control +++ /dev/null @@ -1,18 +0,0 @@ -Source: cfbuild-leech -Section: libs -Priority: optional -Maintainer: CFEngine Packager -Build-Depends: debhelper -Standards-Version: 3.8.4 - -Package: cfbuild-leech-mingw64 -Section: libs -Architecture: any -Description: CFEngine Build Automation -- leech -- mingw64 - CFEngine Build Automation -- leech -- mingw64 - -Package: cfbuild-leech-mingw64-devel -Section: libdevel -Architecture: any -Description: CFEngine Build Automation -- leech -- mingw64 -- development files - CFEngine Build Automation -- leech -- mingw64 -- development files diff --git a/deps-packaging/leech/mingw/debian/rules b/deps-packaging/leech/mingw/debian/rules deleted file mode 100644 index 01cfc4fee..000000000 --- a/deps-packaging/leech/mingw/debian/rules +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/make -f - -PREFIX=$(BUILDPREFIX) - -clean: - dh_testdir - dh_testroot - - dh_clean - -build: build-stamp -build-stamp: - dh_testdir - - ./configure LDFLAGS="-Wl,-no-undefined" --host=$(DEB_HOST_GNU_TYPE) --prefix=$(PREFIX) \ - --enable-shared \ - --disable-static - make - - touch build-stamp - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - make install DESTDIR=$(CURDIR)/debian/tmp - - rm -f $(CURDIR)/debian/tmp$(PREFIX)/lib/leech.la - -binary-indep: build install - -binary-arch: build install - dh_testdir - dh_testroot - dh_install --sourcedir=debian/tmp - dh_link - dh_strip - dh_compress - dh_fixperms - dh_installdeb - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/deps-packaging/leech/solaris/build b/deps-packaging/leech/solaris/build deleted file mode 100755 index 4b1a32b32..000000000 --- a/deps-packaging/leech/solaris/build +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/xpg4/bin/sh -e - -# Options - -PREFIX=${BUILDPREFIX} - -TT=${BUILD_ROOT}/cfbuild-leech${PREFIX} -TTD=${BUILD_ROOT}/cfbuild-leech-devel${PREFIX} - -# Patch -# Solaris 8 - -# Build -./configure --prefix=$PREFIX - -$MAKE - -# Test - -# Install - -mkdir -p $TTD/lib -mkdir -p $TTD/include -$MAKE install prefix=${TTD} - -# Package - - -mkdir -p ${TT}/lib -mv ${TTD}/lib/*.so* ${TT}/lib diff --git a/deps-packaging/leech/solaris/packages b/deps-packaging/leech/solaris/packages deleted file mode 100644 index 3dffeb671..000000000 --- a/deps-packaging/leech/solaris/packages +++ /dev/null @@ -1 +0,0 @@ -cfbuild-leech cfbuild-leech-devel diff --git a/deps-packaging/leech/source b/deps-packaging/leech/source deleted file mode 100644 index ba03708e2..000000000 --- a/deps-packaging/leech/source +++ /dev/null @@ -1 +0,0 @@ -https://github.com/larsewi/leech/releases/download/v0.2.0/ diff --git a/deps-packaging/leech2/cfbuild-leech2.spec b/deps-packaging/leech2/cfbuild-leech2.spec new file mode 100644 index 000000000..da3a9785a --- /dev/null +++ b/deps-packaging/leech2/cfbuild-leech2.spec @@ -0,0 +1,83 @@ +%define leech2_version 5.0.1 + +Summary: CFEngine Build Automation -- leech2 +Name: cfbuild-leech2 +Version: %{version} +Release: 1 +Source0: leech2-%{leech2_version}.tar.gz +License: MIT +Group: Other +Url: https://cfengine.com +BuildRoot: %{_topdir}/BUILD/%{name}-%{version}-%{release}-buildroot + +AutoReqProv: no + +%define prefix %{buildprefix} + +%prep +mkdir -p %{_builddir} +%setup -q -n leech2-%{leech2_version} + +%build + +# Use the system-wide Rust toolchain installed by the build host setup. PATH +# finds the cargo proxy; RUSTUP_HOME lets it locate the toolchain. +export RUSTUP_HOME=/opt/rust +export PATH=/opt/rust/bin:$PATH + +# Embed an rpath of %{prefix}/lib in libleech2.so so it resolves co-bundled +# CFEngine libraries at runtime, matching the other bundled deps (enterprise's +# rpath_test.sh requires every /var/cfengine/lib/lib*.so to carry this rpath). +export RUSTFLAGS="-C link-arg=-Wl,-rpath,%{prefix}/lib" +cargo build --release + +%install +rm -rf ${RPM_BUILD_ROOT} + +mkdir -p ${RPM_BUILD_ROOT}%{prefix}/bin +mkdir -p ${RPM_BUILD_ROOT}%{prefix}/lib/pkgconfig +mkdir -p ${RPM_BUILD_ROOT}%{prefix}/include + +install -m 755 target/release/libleech2.so ${RPM_BUILD_ROOT}%{prefix}/lib/ +install -m 755 target/release/lch ${RPM_BUILD_ROOT}%{prefix}/bin/ +install -m 644 include/leech2.h ${RPM_BUILD_ROOT}%{prefix}/include/ + +sed -e 's|^prefix=.*|prefix=%{prefix}|' \ + -e 's|@LIBDIR@|lib|' \ + -e 's|@VERSION@|%{leech2_version}|' \ + leech2.pc.in > ${RPM_BUILD_ROOT}%{prefix}/lib/pkgconfig/leech2.pc + +%clean +rm -rf $RPM_BUILD_ROOT + +%package devel +Summary: CFEngine Build Automation -- leech2 -- development files +Group: Other +AutoReqProv: no + +%description +CFEngine Build Automation -- leech2 + +%description devel +CFEngine Build Automation -- leech2 -- development files + +%files +%defattr(-,root,root) + +%dir %{prefix}/bin +%{prefix}/bin/lch + +%dir %{prefix}/lib +%{prefix}/lib/*.so + +%files devel +%defattr(-,root,root) + +%dir %{prefix}/include +%{prefix}/include/*.h + +%dir %{prefix}/lib +%dir %{prefix}/lib/pkgconfig +%{prefix}/lib/pkgconfig/*.pc + +%changelog diff --git a/deps-packaging/leech2/debian/cfbuild-leech2-devel.install b/deps-packaging/leech2/debian/cfbuild-leech2-devel.install new file mode 100644 index 000000000..96c4b3019 --- /dev/null +++ b/deps-packaging/leech2/debian/cfbuild-leech2-devel.install @@ -0,0 +1,2 @@ +/var/cfengine/include +/var/cfengine/lib/pkgconfig diff --git a/deps-packaging/leech/debian/cfbuild-leech-devel.install b/deps-packaging/leech2/debian/cfbuild-leech2.install similarity index 51% rename from deps-packaging/leech/debian/cfbuild-leech-devel.install rename to deps-packaging/leech2/debian/cfbuild-leech2.install index fcabb82f2..22d74c3a4 100644 --- a/deps-packaging/leech/debian/cfbuild-leech-devel.install +++ b/deps-packaging/leech2/debian/cfbuild-leech2.install @@ -1,2 +1,2 @@ -/var/cfengine/include +/var/cfengine/bin/lch /var/cfengine/lib/*.so diff --git a/deps-packaging/leech/debian/compat b/deps-packaging/leech2/debian/compat similarity index 100% rename from deps-packaging/leech/debian/compat rename to deps-packaging/leech2/debian/compat diff --git a/deps-packaging/leech2/debian/control b/deps-packaging/leech2/debian/control new file mode 100644 index 000000000..fcb2e92c9 --- /dev/null +++ b/deps-packaging/leech2/debian/control @@ -0,0 +1,18 @@ +Source: cfbuild-leech2 +Section: libs +Priority: optional +Maintainer: CFEngine Packager +Build-Depends: debhelper +Standards-Version: 3.8.4 + +Package: cfbuild-leech2 +Section: libs +Architecture: any +Description: CFEngine Build Automation -- leech2 + CFEngine Build Automation -- leech2 + +Package: cfbuild-leech2-devel +Section: libdevel +Architecture: any +Description: CFEngine Build Automation -- leech2 -- development files + CFEngine Build Automation -- leech2 -- development files diff --git a/deps-packaging/leech/debian/copyright b/deps-packaging/leech2/debian/copyright similarity index 100% rename from deps-packaging/leech/debian/copyright rename to deps-packaging/leech2/debian/copyright diff --git a/deps-packaging/leech2/debian/rules b/deps-packaging/leech2/debian/rules new file mode 100755 index 000000000..6fd0cea31 --- /dev/null +++ b/deps-packaging/leech2/debian/rules @@ -0,0 +1,65 @@ +#!/usr/bin/make -f + +PREFIX=$(BUILDPREFIX) +VERSION=$(shell sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -1) + +# Use the system-wide Rust toolchain installed by the build host setup. PATH +# finds the cargo proxy; RUSTUP_HOME lets it locate the toolchain. +export RUSTUP_HOME = /opt/rust +export PATH := /opt/rust/bin:$(PATH) + +# Embed an rpath of $(PREFIX)/lib in libleech2.so so it resolves co-bundled +# CFEngine libraries at runtime, matching the other bundled deps (enterprise's +# rpath_test.sh requires every /var/cfengine/lib/lib*.so to carry this rpath). +export RUSTFLAGS = -C link-arg=-Wl,-rpath,$(PREFIX)/lib + +clean: + dh_testdir + dh_testroot + + dh_clean + +build: build-stamp +build-stamp: + dh_testdir + + cargo build --release + + touch build-stamp + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/bin + mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/lib/pkgconfig + mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/include + + install -m 755 target/release/libleech2.so $(CURDIR)/debian/tmp$(PREFIX)/lib/ + install -m 755 target/release/lch $(CURDIR)/debian/tmp$(PREFIX)/bin/ + install -m 644 include/leech2.h $(CURDIR)/debian/tmp$(PREFIX)/include/ + + sed -e 's|^prefix=.*|prefix=$(PREFIX)|' \ + -e 's|@LIBDIR@|lib|' \ + -e 's|@VERSION@|$(VERSION)|' \ + leech2.pc.in > $(CURDIR)/debian/tmp$(PREFIX)/lib/pkgconfig/leech2.pc + +binary-indep: build install + +binary-arch: build install + dh_testdir + dh_testroot + dh_install --sourcedir=debian/tmp + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/deps-packaging/leech2/distfiles b/deps-packaging/leech2/distfiles new file mode 100644 index 000000000..593726f6c --- /dev/null +++ b/deps-packaging/leech2/distfiles @@ -0,0 +1 @@ +a425cc66f34a9da7cef296d9b693f6823734f1df0e2b1cd95070314843d0caa1 leech2-5.0.1.tar.gz diff --git a/deps-packaging/leech/mingw/debian/cfbuild-leech-mingw64-devel.install b/deps-packaging/leech2/mingw/debian/cfbuild-leech2-mingw64-devel.install similarity index 100% rename from deps-packaging/leech/mingw/debian/cfbuild-leech-mingw64-devel.install rename to deps-packaging/leech2/mingw/debian/cfbuild-leech2-mingw64-devel.install diff --git a/deps-packaging/leech2/mingw/debian/cfbuild-leech2-mingw64.install b/deps-packaging/leech2/mingw/debian/cfbuild-leech2-mingw64.install new file mode 100644 index 000000000..30297ad87 --- /dev/null +++ b/deps-packaging/leech2/mingw/debian/cfbuild-leech2-mingw64.install @@ -0,0 +1,2 @@ +/var/cfengine/bin/*.dll +/var/cfengine/bin/lch.exe diff --git a/deps-packaging/leech/mingw/debian/compat b/deps-packaging/leech2/mingw/debian/compat similarity index 100% rename from deps-packaging/leech/mingw/debian/compat rename to deps-packaging/leech2/mingw/debian/compat diff --git a/deps-packaging/leech2/mingw/debian/control b/deps-packaging/leech2/mingw/debian/control new file mode 100644 index 000000000..e1124a715 --- /dev/null +++ b/deps-packaging/leech2/mingw/debian/control @@ -0,0 +1,18 @@ +Source: cfbuild-leech2 +Section: libs +Priority: optional +Maintainer: CFEngine Packager +Build-Depends: debhelper +Standards-Version: 3.8.4 + +Package: cfbuild-leech2-mingw64 +Section: libs +Architecture: any +Description: CFEngine Build Automation -- leech2 -- mingw64 + CFEngine Build Automation -- leech2 -- mingw64 + +Package: cfbuild-leech2-mingw64-devel +Section: libdevel +Architecture: any +Description: CFEngine Build Automation -- leech2 -- mingw64 -- development files + CFEngine Build Automation -- leech2 -- mingw64 -- development files diff --git a/deps-packaging/leech/mingw/debian/copyright b/deps-packaging/leech2/mingw/debian/copyright similarity index 100% rename from deps-packaging/leech/mingw/debian/copyright rename to deps-packaging/leech2/mingw/debian/copyright diff --git a/deps-packaging/leech2/mingw/debian/rules b/deps-packaging/leech2/mingw/debian/rules new file mode 100755 index 000000000..b1cedbd87 --- /dev/null +++ b/deps-packaging/leech2/mingw/debian/rules @@ -0,0 +1,61 @@ +#!/usr/bin/make -f + +PREFIX=$(BUILDPREFIX) +TARGET=x86_64-pc-windows-gnu + +# Use the system-wide Rust toolchain installed by the build host setup. PATH +# finds the cargo proxy; RUSTUP_HOME lets it locate the toolchain. +export RUSTUP_HOME = /opt/rust +export PATH := /opt/rust/bin:$(PATH) + +clean: + dh_testdir + dh_testroot + + dh_clean + +build: build-stamp +build-stamp: + dh_testdir + + cargo build --release --target $(TARGET) + + touch build-stamp + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/bin + mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/include + mkdir -p $(CURDIR)/debian/tmp$(PREFIX)/lib + + install -m 755 target/$(TARGET)/release/leech2.dll $(CURDIR)/debian/tmp$(PREFIX)/bin/ + install -m 755 target/$(TARGET)/release/lch.exe $(CURDIR)/debian/tmp$(PREFIX)/bin/ + install -m 644 include/leech2.h $(CURDIR)/debian/tmp$(PREFIX)/include/ + + # When cross-compiling the cdylib for *-pc-windows-gnu, rustc emits the + # import library alongside the DLL as libleech2.dll.a (note the lib prefix: + # rustc passes -Wl,--out-implib=libleech2.dll.a). cf-hub/enterprise link + # against it via -lleech2 at configure time (AC_CHECK_LIB in configure.ac). + install -m 644 target/$(TARGET)/release/libleech2.dll.a $(CURDIR)/debian/tmp$(PREFIX)/lib/ + +binary-indep: build install + +binary-arch: build install + dh_testdir + dh_testroot + dh_install --sourcedir=debian/tmp + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/deps-packaging/leech2/source b/deps-packaging/leech2/source new file mode 100644 index 000000000..172b76d99 --- /dev/null +++ b/deps-packaging/leech2/source @@ -0,0 +1 @@ +https://github.com/larsewi/leech2/releases/download/v5.0.1/ diff --git a/deps-packaging/release-monitoring.json b/deps-packaging/release-monitoring.json index 6c9cef02e..1490ca6f2 100644 --- a/deps-packaging/release-monitoring.json +++ b/deps-packaging/release-monitoring.json @@ -25,5 +25,5 @@ "sasl2": "13280", "zlib": "5303", "librsync": "6309", - "leech": "376789" + "leech2": "389516" } diff --git a/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in b/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in index 9b13166c3..f60ce716a 100644 --- a/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in +++ b/packaging/cfengine-nova-hub/cfengine-nova-hub.spec.in @@ -298,6 +298,8 @@ exit 0 %prefix/bin/diff3 # Auxiliary programs %prefix/bin/rpmvercmp +# leech2 CLI +%prefix/bin/lch #libexec of git %prefix/lib/git-core/* diff --git a/packaging/cfengine-nova-hub/debian/cfengine-nova-hub.install b/packaging/cfengine-nova-hub/debian/cfengine-nova-hub.install index 680b140a5..7088cda9a 100644 --- a/packaging/cfengine-nova-hub/debian/cfengine-nova-hub.install +++ b/packaging/cfengine-nova-hub/debian/cfengine-nova-hub.install @@ -35,6 +35,8 @@ /var/cfengine/lib/liblmdb.so /var/cfengine/lib/libpq.so /var/cfengine/lib/libecpg.so +/var/cfengine/lib/libleech2.so +/var/cfengine/bin/lch /var/cfengine/lib/cfengine-*.so /var/cfengine/lib/apr-util-1 /var/cfengine/lib/git-core diff --git a/packaging/cfengine-nova/cfengine-nova.spec.in b/packaging/cfengine-nova/cfengine-nova.spec.in index 81b018910..a82bdee03 100644 --- a/packaging/cfengine-nova/cfengine-nova.spec.in +++ b/packaging/cfengine-nova/cfengine-nova.spec.in @@ -132,6 +132,8 @@ exit 0 %dir %prefix/lib %prefix/lib/lib*.so* %prefix/lib/cfengine-enterprise.so +# leech2 CLI +%prefix/bin/lch # Auxiliary programs %prefix/bin/rpmvercmp # LMDB utilities diff --git a/packaging/cfengine-nova/cfengine-nova.wxs b/packaging/cfengine-nova/cfengine-nova.wxs index a39117727..1006e6e8f 100644 --- a/packaging/cfengine-nova/cfengine-nova.wxs +++ b/packaging/cfengine-nova/cfengine-nova.wxs @@ -156,8 +156,11 @@ - - + + + + + @@ -212,7 +215,8 @@ - + + diff --git a/packaging/cfengine-nova/debian/cfengine-nova.install b/packaging/cfengine-nova/debian/cfengine-nova.install index 2012a4485..a3b437c75 100644 --- a/packaging/cfengine-nova/debian/cfengine-nova.install +++ b/packaging/cfengine-nova/debian/cfengine-nova.install @@ -21,6 +21,8 @@ /var/cfengine/lib/python/* /var/cfengine/lib/cfengine-enterprise.so /var/cfengine/lib/liblmdb.so +/var/cfengine/lib/libleech2.so +/var/cfengine/bin/lch /var/cfengine/share/doc /var/cfengine/modules /var/cfengine/inputs