From 8e38a962d28713510039dc2ece93e799e9d78008 Mon Sep 17 00:00:00 2001 From: TC Date: Sun, 2 Jul 2023 19:12:42 -0500 Subject: [PATCH] hacking on rpm building --- Earthfile | 24 +++++++++++++++---- .../earthly_make_veilid_server_rpm.sh | 10 ++++++++ .../{ => veilid-server}/veilid-server.spec | 8 +++---- 3 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 package/rpm/veilid-server/earthly_make_veilid_server_rpm.sh rename package/rpm/{ => veilid-server}/veilid-server.spec (78%) diff --git a/Earthfile b/Earthfile index 1a7c97d9..939e21a0 100644 --- a/Earthfile +++ b/Earthfile @@ -118,7 +118,7 @@ unit-tests-linux-arm64: RUN cargo test --target aarch64-unknown-linux-gnu --release -p veilid-server -p veilid-cli -p veilid-tools -p veilid-core # Package -package-linux-amd64: +package-linux-amd64-deb: FROM +build-linux-amd64 ################################# ### DEBIAN DPKG .DEB FILES @@ -132,12 +132,26 @@ package-linux-amd64: # save artifacts SAVE ARTIFACT --keep-ts /dpkg/out/*.deb AS LOCAL ./target/packages/ - ################################ +package-linux-amd64-rpm: + FROM --platform amd64 centos:8 + RUN yum install -y createrepo rpm-build rpm-sign wget gcc python3 yum-utils rpmdevtools + RUN rpmdev-setuptree + ################################# ### RPMBUILD .RPM FILES - ################################ + ################################# + COPY --dir package /veilid + RUN mkdir /veilid/target + COPY --dir +build-linux-amd64/target/x86_64-unknown-linux-gnu /target/x86_64-unknown-linux-gnu + RUN mkdir -p /rpm-work-dir/veilid-server + # veilid-server + RUN /veilid/package/rpm/earthly_make_veilid_server_rpm.sh amd64 x86_64-unknown-linux-gnu + SAVE ARTIFACT --keep-ts /rpmbuild/RPMS/x86_64/.rpm AS LOCAL ./target/packages/ + # veilid-cli + #RUN /veilid/package/debian/earthly_make_veilid_cli_deb.sh amd64 x86_64-unknown-linux-gnu + # save artifacts + #SAVE ARTIFACT --keep-ts /dpkg/out/*.deb AS LOCAL ./target/packages/ - -package-linux-arm64: +package-linux-arm64-deb: FROM +build-linux-arm64 ################################# ### DEBIAN DPKG .DEB FILES diff --git a/package/rpm/veilid-server/earthly_make_veilid_server_rpm.sh b/package/rpm/veilid-server/earthly_make_veilid_server_rpm.sh new file mode 100644 index 00000000..a496d72d --- /dev/null +++ b/package/rpm/veilid-server/earthly_make_veilid_server_rpm.sh @@ -0,0 +1,10 @@ +#!/bin/bash +ARCH=$1 +CARGO_ARCH=$2 +CARGO_VERSION="$(/veilid/package/cargo_version.sh /veilid/veilid-server/Cargo.toml)" + +# veilid-server spec file +cp -rf /veilid/package/rpm/veilid-server/veilid-server.spec /rpmbuild/specs/ +/veilid/package/replace_variable.sh /veilid/package/rpm/veilid-server/veilid-server.spec CARGO_VERSION $CARGO_VERSION +/veilid/package/replace_variable.sh /veilid/package/rpm/veilid-server/veilid-server.spec ARCH $ARCH +/veilid/package/replace_variable.sh /veilid/package/rpm/veilid-server/veilid-server.spec CARGO_ARCH $CARGO_ARCH diff --git a/package/rpm/veilid-server.spec b/package/rpm/veilid-server/veilid-server.spec similarity index 78% rename from package/rpm/veilid-server.spec rename to package/rpm/veilid-server/veilid-server.spec index ffe0f384..e5ff6c9b 100644 --- a/package/rpm/veilid-server.spec +++ b/package/rpm/veilid-server/veilid-server.spec @@ -7,7 +7,7 @@ Group: System License: MPL 2.0 Packager: Veilid Foundation, Inc. Requires: glibc-common >= 2.23 -BuildRoot: ~/rpm-work-dir/veilid-server +BuildRoot: /rpm-work-dir/veilid-server BuildArch: $ARCH %description @@ -15,13 +15,13 @@ A server grade, headless Veilid node %install mkdir -p %{buildroot}/usr/bin/ -cp ~/veilid-binaries/server/veilid-server %{buildroot}/usr/bin/veilid-server +cp /veilid/target/$CARGO_ARCH/release/veilid-server %{buildroot}/usr/bin/veilid-server mkdir -p %{buildroot}/etc/systemd/system -cp ~/veilid-binaries/server/veilid-server.service %{buildroot}/etc/systemd/system/veilid-server.service +cp /veilid/package/systemd/veilid-server.service %{buildroot}/etc/systemd/system/veilid-server.service mkdir -p %{buildroot}/etc/veilid-server -cp ~/veilid-binaries/server/veilid-server.conf %{buildroot}/etc/veilid-server/veilid-server.conf +cp /veilid/package/linux/veilid-server.conf %{buildroot}/etc/veilid-server/veilid-server.conf %files /usr/bin/veilid-server