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 0000000000..46d69640e5 Binary files /dev/null and b/ppa/packages/nym-repo-setup/usr/share/keyrings/nymtech.gpg differ 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.