From dd701925088536d7c536a823b99baf9ac35954c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Mon, 9 Sep 2024 11:21:57 +0200 Subject: [PATCH] Create nym-repo-setup debian package and nym-vpn meta package (#4837) * Create nym-repo-setup * update * Add postrm * Add README * Add Makefile * Move to subdir * Bundle the list file instead * Create nym-vpn metapackage * Rename top-level dir * Set version of meta package to 0.1 * Add dpkg-name * Create workflow for creating the debs * Restrict to amd64 only * Rename to build-deb-meta.yml * name to upload-artifact * Set names * typo * Extend version and set amd64 only * Bump to 1.0.1 --- .github/workflows/build-deb-meta.yml | 32 +++++++++++++++++- ppa/packages/Makefile | 22 ++++++++++++ ppa/packages/README.md | 13 +++++++ ppa/packages/nym-repo-setup/DEBIAN/control | 9 +++++ ppa/packages/nym-repo-setup/DEBIAN/postinst | 4 +++ ppa/packages/nym-repo-setup/DEBIAN/preinst | 18 ++++++++++ .../etc/apt/sources.list.d/nymtech.list | 3 ++ .../usr/share/keyrings/nymtech.gpg | Bin 0 -> 2272 bytes ppa/packages/nym-vpn/DEBIAN/control | 9 +++++ 9 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 ppa/packages/Makefile create mode 100644 ppa/packages/README.md create mode 100644 ppa/packages/nym-repo-setup/DEBIAN/control create mode 100755 ppa/packages/nym-repo-setup/DEBIAN/postinst create mode 100755 ppa/packages/nym-repo-setup/DEBIAN/preinst create mode 100644 ppa/packages/nym-repo-setup/etc/apt/sources.list.d/nymtech.list create mode 100644 ppa/packages/nym-repo-setup/usr/share/keyrings/nymtech.gpg create mode 100644 ppa/packages/nym-vpn/DEBIAN/control diff --git a/.github/workflows/build-deb-meta.yml b/.github/workflows/build-deb-meta.yml index 52618e57ce..29fb29e631 100644 --- a/.github/workflows/build-deb-meta.yml +++ b/.github/workflows/build-deb-meta.yml @@ -5,5 +5,35 @@ on: jobs: build: + runs-on: arc-ubuntu-22.04 + steps: - run: "echo hello" + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up Build Environment + run: sudo apt-get update && sudo apt-get install -y make dpkg-dev + + - name: Build Debian Packages + working-directory: ppa/packages + run: make + + - name: Find .deb files + working-directory: ppa/packages + run: | + echo "file1=$(ls nym-repo-setup*.deb)" >> $GITHUB_ENV + echo "file2=$(ls nym-vpn*.deb)" >> $GITHUB_ENV + + - name: Upload nym-repo-setup + uses: actions/upload-artifact@v4 + with: + name: ${{ env.file1 }} + path: ppa/packages/nym-repo-setup*.deb + retention-days: 10 + + - name: Upload nym-vpn + uses: actions/upload-artifact@v4 + with: + name: ${{ env.file2 }} + path: ppa/packages/nym-vpn*.deb + retention-days: 10 diff --git a/ppa/packages/Makefile b/ppa/packages/Makefile new file mode 100644 index 0000000000..04ec2d0320 --- /dev/null +++ b/ppa/packages/Makefile @@ -0,0 +1,22 @@ +all: deb + +REPO_DEB=nym-repo-setup.deb +REPO_SRC=nym-repo-setup + +META_DEB=nym-vpn.deb +META_SRC=nym-vpn + +ALL_DEB=$(REPO_DEB) $(META_DEB) + +deb: $(ALL_DEB) + +$(REPO_DEB): + dpkg-deb --build $(REPO_SRC) $(REPO_DEB) + dpkg-name -o $(REPO_DEB) + +$(META_DEB): + dpkg-deb --build $(META_SRC) $(META_DEB) + dpkg-name -o $(META_DEB) + +clean: + rm $(ALL_DEB) diff --git a/ppa/packages/README.md b/ppa/packages/README.md new file mode 100644 index 0000000000..ba64922e7a --- /dev/null +++ b/ppa/packages/README.md @@ -0,0 +1,13 @@ +# Nym deb meta packages + +## Nymtech repo setup + +`nym-repo-setup.deb` is a debian package that sets up the nymtech debian repo by copying the keyring file and adding `nymtech.list` to `/etc/apt/sources.list.d`. + +## Nym VPN meta package + +A basic meta package which only purpose is to depend on the daemon and UI. + +# Build + +They can all be built by running `make`. diff --git a/ppa/packages/nym-repo-setup/DEBIAN/control b/ppa/packages/nym-repo-setup/DEBIAN/control new file mode 100644 index 0000000000..e098728bad --- /dev/null +++ b/ppa/packages/nym-repo-setup/DEBIAN/control @@ -0,0 +1,9 @@ +Package: nym-repo-setup +Version: 1.0.1 +Section: base +Priority: optional +Architecture: amd64 +Depends: apt (>= 1.0.0) +Maintainer: Nym Technologies SA +Description: Setup script to add the Nym repository + This package adds the Nym repository and installs the GPG key for verifying package signatures. diff --git a/ppa/packages/nym-repo-setup/DEBIAN/postinst b/ppa/packages/nym-repo-setup/DEBIAN/postinst new file mode 100755 index 0000000000..5eb21e1566 --- /dev/null +++ b/ppa/packages/nym-repo-setup/DEBIAN/postinst @@ -0,0 +1,4 @@ +#!/bin/bash + +# Updating package list +apt-get update diff --git a/ppa/packages/nym-repo-setup/DEBIAN/preinst b/ppa/packages/nym-repo-setup/DEBIAN/preinst new file mode 100755 index 0000000000..7755dd31be --- /dev/null +++ b/ppa/packages/nym-repo-setup/DEBIAN/preinst @@ -0,0 +1,18 @@ +#!/bin/bash + +# Path to the repository list file +REPO_LIST_FILE="/etc/apt/sources.list.d/nymtech.list" + +# Check if the repository list file already exists +if [ -f "$REPO_LIST_FILE" ]; then + # Generate a backup file name with a timestamp + TIMESTAMP=$(date +%Y%m%d%H%M%S) + BACKUP_FILE="/etc/apt/sources.list.d/nymtech.list.${TIMESTAMP}.bak" + + # Rename the existing list file to the backup file + echo "Backing up existing nymtech.list to $BACKUP_FILE" + mv "$REPO_LIST_FILE" "$BACKUP_FILE" +fi + +# Continue with the installation +exit 0 diff --git a/ppa/packages/nym-repo-setup/etc/apt/sources.list.d/nymtech.list b/ppa/packages/nym-repo-setup/etc/apt/sources.list.d/nymtech.list new file mode 100644 index 0000000000..7a9b95332a --- /dev/null +++ b/ppa/packages/nym-repo-setup/etc/apt/sources.list.d/nymtech.list @@ -0,0 +1,3 @@ +# This file is provided by the nym-repo-setup package + +deb [arch=amd64 signed-by=/usr/share/keyrings/nymtech.gpg] https://apt.nymtech.net/ jammy main diff --git a/ppa/packages/nym-repo-setup/usr/share/keyrings/nymtech.gpg b/ppa/packages/nym-repo-setup/usr/share/keyrings/nymtech.gpg new file mode 100644 index 0000000000000000000000000000000000000000..46d69640e5619fbb0adc40cc214302b9bab57ac8 GIT binary patch literal 2272 zcmV<62p{*E0u2OZTw+)O5CFA*vbIP?MO_`-PR=mK9-(H~uwR$HG(4Zf`(5E9pxYxi zheQX#aB!zYMk*;^a(fH$TcIJkhBSW!B59CYe9^rp;rjtF`P_wHNZN5=#PhmJN*22Y zXv;uTC`O!bNL2UFWdvwE8F24#1NkxB#(G)F0Fo5;E(sC&7>aI4)?G4@x-Uv$MXs32 z!*d}WDz*o@ck_RsV^b5_xBg)zV;v{r)X%QnO|U9ld4pd4+h}RYL}o0f@z+}vtMe#& zUT4R{n0FvcoZ>A~+>s&r&Fe8qcI^%z*47(#`b%If9>=(jI;+ai#JJa?dZrb*33kK4 zcwz}=!Eo|ADDoD48_+%S19=TudOS*&KD{m;^$kFb$d2zC1% zE~}MUJLQrPjX0W%Pm?>Wjqi8`itmy1#avgSZV8m#B?;?&a|!LX;vsG%oe3hSr(f1CP(dJbX=iR}Zf78CWqBze zJZ^byKyG<$bY){`E^cLXK8XTO1QP)Y05}#Q1kGaW0~q7hG^lS5S%D8k*I$Wd0tEtP zTw+)P8v_Lk2?z%Q1{Dek2nzxP76JnS0v-VZ7k~f?2@rt~MAu)5W&%f45B(BD=2XXv z9BpibO|8n{F44$R_*=cF6NWRietp9k=vR?MRz~iN#oo?!wytE#dU0TCr$|8qY(-?c z?cVj%tA8Rh3?$Ixr~Ie)kJ?MUR1im~hM6X<-ATpT3{1My53NU{spXHeQc20L5V=Ja zS(fmlif5tZ>zI?FquUgrJLjcJqu}muH#)9rlZxW4e^&+cTx;H|>Mjg?Ar4W~j)%c2 z3O`T}(of>EjK;+=RNWYCTMsJ4@@bO)O6Q6=#kAm0L4e#;o#jtT8Sb{e)IIpsWdfD4 zZ*%Zy^A>0XQ|Ax+r6gI|hHt&b{vLB@u4xU}OV1*`*-Ru^O#MZvIXf{nD%||&wiyM6 z30))rl}^RvN*iDKQ&(!B0!%rYJZMwWO zIkW}TN69o-(jXzt6T0NC{Z0J{fpS>-zz})!bcIeQ(LOw}gEASyqH^BU@=7 z1?<}jG8BP z4F1!erPB`@>GwQ$EhbFtq*r)X07uK5n&000Zlo5_M?;+757G{NQ<0e*z?9x*6Q#-Q z+kNN|0Z3o)TiB9Bna#J!jNi4e4+9xSI2mfZiebqv1n?Uvk-Z0*;t?)k@Q9tYNUW3d*C8O6Mge;1AYE$<3Y%4Z z%qhp!*IyuZcK{p(n)!h{ZuYZOIz@jwho|I5i_uTCpzG78EBq9!U`r2(LoxA_iKWE9 zZhbTb?YU`N*EDov^WKLzRO2m7E8D}*of=cA1m;fR-l-CvW4#R=-g}Hj60YkG7EMT% zJ-~wRA>b+CVvX|5;k1(t9?ZoqNA{FK=i23F07=LWt);l&lCWp5zTq?0EI{_2cat0E zcuwk5y{(C2#S#!M49w7D0UU-m>_y_sxo+ifm%UQXGAHV@ZsXjN0$)-m{SMGwj<87ieuNF;6^QPx7H)Cp6a5>ID`7}3`V560 z?*^iR<{?_97Q8b%t25nm>{c&b-krB5S4~?*d~t7#$rv^bc8*jCX;YIU<-2`k!p?~Z zze;iXDZm!*4vHCDl{esXmXN0{?R#XmSwCLhzL;GXVrUkog^o+42zYREBSKo5$piG& zz=eN-s=~^Bp>sS#=gH7N5=-(Qm^Zs_LF<^K}JF(AXmUz|lZ7b@4W*P5d zXN7oS3#7gp5}CWsxFmAGXrsV^XU*;=431N4HI@70+^Crq>SuGL`O$4m#m~?Fn?poH zd%3A$v9AUC&6ULsr|$ixxOp#AE%}^8-NRPI3}-=D6-_iH&16uwLTw)NQScrSXr0f{ z^x9LKRyt`BqM2cgSmI&DHgVM{37^Gn0GJdG-6UAWh)y5Z*{fQAio|%*1vxKx5NQP! zSljzlFxbzc_Mp&(h@%N4Z4v(g(Jwav0L{%H6ixf$vCxXcC=X1q>JvjL8bupi!H9BjyFyK literal 0 HcmV?d00001 diff --git a/ppa/packages/nym-vpn/DEBIAN/control b/ppa/packages/nym-vpn/DEBIAN/control new file mode 100644 index 0000000000..b51ba7d75f --- /dev/null +++ b/ppa/packages/nym-vpn/DEBIAN/control @@ -0,0 +1,9 @@ +Package: nym-vpn +Version: 0.1.0 +Section: metapackages +Priority: optional +Architecture: amd64 +Depends: nym-vpnd, nymvpn-x +Maintainer: Nym Technologies SA +Description: Nym Metapackage + This is a metapackage that depends on nym-vpnd and nymvpn-x. Installing this package will also install both nym-vpnd and nymvpn-x.