summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorshadichy2022-08-15 11:01:33 +0700
committershadichy2022-08-15 11:01:33 +0700
commit113732990bdee4393e730b9b68738fbcd19d26b3 (patch)
treed9e9d19a7ef624175f3ad3b9267d1a15cc2fa38f
parentbb128b53929ce8ba82435bc20f7c622a1f65801b (diff)
downloadaur-113732990bdee4393e730b9b68738fbcd19d26b3.tar.gz
init
-rw-r--r--PKGBUILD178
1 files changed, 143 insertions, 35 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 4a7962f0f8a4..2ac4a603f6e7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,28 +1,134 @@
- # Maintainer: shadichy <shadichy.dev@gmail.com>
- pkgname=("systemback")
- pkgver=1.8.9
- pkgrel=2
- pkgdesc='Simple system backup and restore application with extra features'
- arch=('x86_64')
- url='https://github.com/shadichy/systemback-archlinux'
- license=('GPL')
- depends=('util-linux' 'util-linux-libs' 'parted' 'qt5-base>=5.5.0' 'gcc-libs' 'procps-ng' 'gnu-free-fonts' 'dosfstools' 'libisoburn' 'squashfs-tools' 'syslinux' 'xterm' 'xz' 'mkinitcpio-live-boot' 'libx11' 'zenity' 'libsystemback' 'systemback-efiboot-amd64' 'systemback-locales' 'systemback-scheduler')
- optdepends=('grub' 'btrfs-progs' 'jfsutils' 'reiserfsprogs' 'xfsprogs' 'unionfs-fuse' 'kdialog')
- makedepends=('ncurses' 'qt5-tools' 'make' 'gcc11' 'dpkg' 'debhelper' 'util-linux' 'util-linux-libs' 'qt5-base>=5.5.0' 'gcc-libs' 'procps-ng')
- source=(systemback-archlinux::git+https://github.com/shadichy/systemback-archlinux.git)
- md5sums=('SKIP')
-
- build() {
- cd "${srcdir}/systemback-archlinux/systemback"
- dpkg-buildpackage -d -us -uc
- }
-
- package() {
- dpkg-deb -xv "${srcdir}/systemback-archlinux/systemback_${pkgver}_amd64.deb" "${srcdir}/systemback-archlinux/systemback"
- cp -dr --no-preserve=ownership "${srcdir}/systemback-archlinux/systemback/usr" "${pkgdir}/usr"
- cp "${pkgdir}/usr/share/applications/systemback.desktop" "${pkgdir}/usr/share/applications/org.systemback.systemback.desktop"
- mv "${pkgdir}/usr/bin/systemback" "${pkgdir}/usr/lib/systemback/sbbin"
- cat <<EOF >"${pkgdir}/usr/bin/systemback"
+# Maintainer: shadichy <shadichy.dev@gmail.com>
+pkgbase=systemback
+pkgname=("lib${pkgbase}" "${pkgbase}-cli" "${pkgbase}-efiboot-amd64" "${pkgbase}-locales" "${pkgbase}-scheduler" "${pkgbase}")
+pkgver=1.8.9
+pkgrel=2
+pkgdesc='Simple system backup and restore application with extra features'
+arch=(any)
+march=""
+url='https://github.com/shadichy/systemback-archlinux'
+license=('GPL')
+depends=('util-linux' 'util-linux-libs' 'parted' 'qt5-base>=5.5.0' 'procps-ng' 'gnu-free-fonts' 'dosfstools' 'libisoburn' 'squashfs-tools' 'syslinux' 'xterm' 'xz' 'mkinitcpio-live-boot')
+optdepends=('btrfs-progs' 'jfsutils' 'reiserfsprogs' 'xfsprogs' 'unionfs-fuse' 'update-grub' 'cdrtools')
+makedepends=('ncurses' 'qt5-tools' 'make' 'gcc11' 'dpkg' 'debhelper' 'util-linux' 'util-linux-libs' 'qt5-base>=5.5.0' 'gcc11-libs' 'procps-ng')
+# source=()
+# md5sums=('SKIP')
+
+case $(uname -m) in
+ x86_64)
+ march="amd64"
+ ;;
+ i686)
+ march="i386"
+ depends+=( 'libxcrypt-compat' 'llvm13-libs')
+ ;;
+ *)
+ echo "Unsupported architecture: $(uname -m)"
+ exit 1
+ ;;
+esac
+
+build() {
+ cd "../${pkgbase}"
+ dpkg-buildpackage -d -us -uc
+}
+
+package_libsystemback() {
+ pkgdesc='Libary for Systemback'
+ dpkg-deb -xv "../lib${pkgbase}_${pkgver}_${march}.deb" "${pkgdir}"
+ install -dm755 "${pkgdir}/usr"
+}
+package_systemback-cli() {
+ depends+=('ncurses' 'libsystemback' 'systemback-efiboot-amd64')
+ optdepends+=('amd-ucode' 'intel-ucode')
+ dpkg-deb -xv "../${pkgbase}-cli_${pkgver}_${march}.deb" "${pkgdir}"
+ install -dm755 "${pkgdir}/usr"
+}
+package_systemback-efiboot-amd64() {
+ pkgdesc='Systemback EFI bootloader support'
+ depends=('syslinux' 'libsystemback')
+ optdepends=('grub' 'systemback')
+ dpkg-deb -xv "../${pkgbase}-efiboot-amd64_${pkgver}_all.deb" "${pkgdir}"
+ install -dm755 "${pkgdir}/usr"
+}
+package_systemback-locales() {
+ pkgdesc='Systemback language support'
+ depends=('libsystemback')
+ optdepends=('systemback')
+ dpkg-deb -xv "../${pkgbase}-locales_${pkgver}_all.deb" "${pkgdir}"
+ install -dm755 "${pkgdir}/usr"
+}
+package_systemback-scheduler() {
+ pkgdesc='Systemback scheduler'
+ depends+=('libsystemback')
+ optdepends=('systemback')
+ dpkg-deb -xv "../${pkgbase}-scheduler_${pkgver}_${march}.deb" "${pkgdir}"
+ mkdir -p "${pkgdir}/usr/share/applications"
+ cp "../${pkgbase}/systemback.desktop" "${pkgdir}/usr/share/applications/org.systemback.sbsustart.desktop"
+ mkdir -p "${pkgdir}/usr/bin"
+ cat << EOF > "${pkgdir}/usr/bin/sbsustart"
+#!/bin/bash
+
+BASE_CMD="/usr/lib/systemback/sbsustart \$@"
+
+if test "x\`id -u\`" != "x0"; then
+ if test "xpkexec --disable-internal-agent" = "x"; then
+ echo "Root privileges are required for running systemback."
+ \$BASE_CMD
+ exit 1
+ fi
+
+ ENABLE_XHOST_ROOT=yes
+ GRANTED_XHOST_ROOT=no
+ if test "x\$ENABLE_XHOST_ROOT" = 'xyes' && xhost 1> /dev/null 2>&1; then
+ if ! xhost | grep -qi 'SI:localuser:root$'; then
+ xhost +SI:localuser:root
+ GRANTED_XHOST_ROOT=yes
+ fi
+ fi
+
+ pkexec --disable-internal-agent '/usr/bin/sbsustart' "\$@"
+ status=\$?
+
+ if test "x\$GRANTED_XHOST_ROOT" = 'xyes'; then
+ xhost -SI:localuser:root
+ fi
+ exit \$status
+fi
+
+\$BASE_CMD
+EOF
+ chmod +755 "${pkgdir}/usr/bin/sbsustart"
+ mkdir -p "${pkgdir}/usr/share/polkit-1/actions/"
+ cat << EOF > "${pkgdir}/usr/share/polkit-1/actions/org.systemback.sbsustart.policy"
+<?xml version="1.0"?>
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+ <vendor>systemback</vendor>
+ <vendor_url>https://github.com/shadichy/systemback-archlinux</vendor_url>
+ <action id="org.systemback.sbsustart">
+ <description>Run Systemback Scheduler</description>
+ <Message>Authorize Systemback Scheduler to run</Message>
+ <icon_name>systemback</icon_name>
+ <defaults>
+ <allow_any>auth_admin</allow_any>
+ <allow_active>auth_admin</allow_active>
+ <allow_inactive>auth_admin</allow_inactive>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/sbsustart</annotate>
+ <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
+ </action>
+</policyconfig>
+EOF
+ install -dm755 "${pkgdir}/usr"
+}
+package_systemback() {
+ depends+=( 'libx11' 'zenity' 'libsystemback' 'systemback-efiboot-amd64' 'systemback-locales' 'systemback-scheduler' 'grub' 'mtools')
+ optdepends+=('kdialog' 'amd-ucode' 'intel-ucode')
+ dpkg-deb -xv "../${pkgbase}_${pkgver}_${march}.deb" "${pkgdir}"
+ cp "${pkgdir}/usr/share/applications/systemback.desktop" "${pkgdir}/usr/share/applications/org.systemback.systemback.desktop"
+ mv "${pkgdir}/usr/bin/systemback" "${pkgdir}/usr/lib/systemback/sbbin"
+ cat <<EOF >"${pkgdir}/usr/bin/systemback"
#!/bin/bash
BASE_CMD="/usr/lib/systemback/sbbin \$@"
@@ -53,9 +159,11 @@ fi
\$BASE_CMD
EOF
- chmod +755 "${pkgdir}/usr/bin/systemback"
- mkdir -p "${pkgdir}/usr/share/polkit-1/actions/"
- cat << EOF > "${pkgdir}/usr/share/polkit-1/actions/org.systemback.systemback.policy"
+ chmod +755 "${pkgdir}/usr/bin/systemback"
+ cp "../${pkgbase}/reserved_usernames" "${pkgdir}/usr/share/systemback/reserved_usernames"
+ mkdir -p "${pkgdir}/usr/share/systemback/scripts"
+ mkdir -p "${pkgdir}/usr/share/polkit-1/actions/"
+ cat << EOF > "${pkgdir}/usr/share/polkit-1/actions/org.systemback.systemback.policy"
<?xml version="1.0"?>
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
@@ -75,8 +183,8 @@ EOF
</action>
</policyconfig>
EOF
- mkdir -p "${pkgdir}/etc/systemback"
- cat << EOF > "${pkgdir}/etc/systemback/systemback.conf"
+ mkdir -p "${pkgdir}/etc/systemback"
+ cat << EOF > "${pkgdir}/etc/systemback/systemback.conf"
### Restore points settings
# storage_directory=<path>
@@ -125,8 +233,8 @@ EOF
EOF
- touch "${pkgdir}/etc/systemback/systemback.includes"
- touch "${pkgdir}/etc/systemback/systemback.excludes"
- install -dm755 "${pkgdir}/usr"
- install -dm755 "${pkgdir}/etc"
- }
+ touch "${pkgdir}/etc/systemback/systemback.includes"
+ touch "${pkgdir}/etc/systemback/systemback.excludes"
+ install -dm755 "${pkgdir}/usr"
+ install -dm755 "${pkgdir}/etc"
+}