pkgname=(qubes-vm-core qubes-vm-networking qubes-vm-keyring qubes-vm-passwordless-root) pkgver=$(cat version) || exit 1 pkgrel=15 epoch= pkgdesc="The Qubes core files for installation inside a Qubes VM." arch=("x86_64") url="http://qubes-os.org/" license=('GPL') groups=() makedepends=(gcc make pkg-config qubes-vm-utils qubes-libvchan qubes-db-vm qubes-vm-xen libx11 python python-setuptools lsb-release pandoc) checkdepends=() provides=() conflicts=() replaces=() backup=() options=() changelog= source=( PKGBUILD.qubes-ensure-lib-modules.service PKGBUILD.qubes-update-desktop-icons.hook PKGBUILD-qubes-pacman-options.conf PKGBUILD-qubes-repo-4.1.conf PKGBUILD-keyring-keys PKGBUILD-keyring-trusted PKGBUILD-keyring-revoked ) noextract=() md5sums=(SKIP) build() { for source in autostart-dropins applications-dropins app-menu qubes-rpc misc passwordless-root Makefile vm-init.d vm-systemd network init version doc setup.py qubesagent boot; do # shellcheck disable=SC2154 ln -sf "../$source" "$srcdir" done # Fix for network tools paths sed 's:/sbin/ifconfig:ifconfig:g' -i network/* sed 's:/sbin/route:route:g' -i network/* sed 's:/sbin/ethtool:ethtool:g' -i network/* sed 's:/sbin/ip:ip:g' -i network/* sed 's:/bin/grep:grep:g' -i network/* # Fix for archlinux sbindir sed 's:/usr/sbin/ntpdate:/usr/bin/ntpdate:g' -i qubes-rpc/sync-ntp-clock for dir in qubes-rpc misc; do make -C "$dir" done } #This package provides: # * qubes rpc scripts # * core linux tools and scripts # * core systemd services and drop-ins # * basic network functionality (setting IP address, DNS, default gateway) package_qubes-vm-core() { local release [[ "$pkgver" =~ ^([0-9]+)\.([0-9]+)($|\.) ]] || { echo 'invalid $pkgver'>&2 exit 1 } release=${BASH_REMATCH[1]}.${BASH_REMATCH[2]} depends=(qubes-vm-utils python python-xdg ethtool ntp net-tools gnome-packagekit imagemagick fakeroot notification-daemon dconf zenity qubes-libvchan qubes-db-vm haveged python-gobject python-dbus xdg-utils notification-daemon gawk sed procps-ng librsvg socat pacman-contrib # Block updating if there is a major python update as the python API will be in the wrong PYTHONPATH 'python<3.10' ) optdepends=(gnome-keyring gnome-settings-daemon python-nautilus gpk-update-viewer qubes-vm-networking qubes-vm-keyring) install=PKGBUILD.install install -D -m 0644 -- boot/grub.qubes "$pkgdir/etc/default/grub.qubes" # shellcheck disable=SC2154 make install-corevm DESTDIR="$pkgdir" SBINDIR=/usr/bin LIBDIR=/usr/lib SYSLIBDIR=/usr/lib SYSTEM_DROPIN_DIR=/usr/lib/systemd/system USER_DROPIN_DIR=/usr/lib/systemd/user DIST=archlinux make -C app-menu install DESTDIR="$pkgdir" install LIBDIR=/usr/lib SYSLIBDIR=/usr/lib make -C misc install DESTDIR="$pkgdir" install LIBDIR=/usr/lib SYSLIBDIR=/usr/lib make -C qubes-rpc DESTDIR="$pkgdir" install make -C qubes-rpc/kde DESTDIR="$pkgdir" install make -C qubes-rpc/nautilus DESTDIR="$pkgdir" install make -C qubes-rpc/thunar DESTDIR="$pkgdir" install # Install systemd script allowing to automount /lib/modules install -m 644 "$srcdir/PKGBUILD.qubes-ensure-lib-modules.service" "${pkgdir}/usr/lib/systemd/system/qubes-ensure-lib-modules.service" # Install pacman hook to update desktop icons mkdir -p "${pkgdir}/usr/share/libalpm/hooks/" install -m 644 "$srcdir/PKGBUILD.qubes-update-desktop-icons.hook" "${pkgdir}/usr/share/libalpm/hooks/qubes-update-desktop-icons.hook" # Install pacman.d drop-ins (at least 1 drop-in must be installed or pacman will fail) mkdir -p -m 0755 "${pkgdir}/etc/pacman.d" install -m 644 "$srcdir/PKGBUILD-qubes-pacman-options.conf" "${pkgdir}/etc/pacman.d/10-qubes-options.conf" echo "Installing repository for release ${release}" install -m 644 "$srcdir/PKGBUILD-qubes-repo-${release}.conf" "${pkgdir}/etc/pacman.d/99-qubes-repository-${release}.conf.disabled" # Archlinux specific: enable autologin on tty1 mkdir -p "$pkgdir/etc/systemd/system/getty@tty1.service.d/" cat < "$pkgdir/etc/systemd/system/getty@tty1.service.d/autologin.conf" [Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin user --noclear %I 38400 linux EOF # Archlinux packaging guidelines: /var/run is a symlink to a tmpfs. Don't create it rm -rf "$pkgdir/var/run" } #This package provides: # * proxy service used by TemplateVMs to download updates # * qubes-firewall service (FirewallVM) # #Integration of NetworkManager for Qubes VM: # * make connections config persistent # * adjust DNS redirections when needed # * show/hide NetworkManager applet icon # package_qubes-vm-networking() { pkgdesc="Qubes OS tools allowing to use a Qubes VM as a NetVM/ProxyVM" depends=(qubes-vm-core qubes-vm-utils python ethtool net-tools qubes-db-vm networkmanager iptables tinyproxy nftables conntrack-tools ) install=PKGBUILD-networking.install # shellcheck disable=SC2154 make -C network install DESTDIR="$pkgdir" SBINDIR=/usr/bin LIBDIR=/usr/lib SYSLIBDIR=/usr/lib SYSTEM_DROPIN_DIR=/usr/lib/systemd/system USER_DROPIN_DIR=/usr/lib/systemd/user DIST=archlinux make install-netvm DESTDIR="$pkgdir" SBINDIR=/usr/bin LIBDIR=/usr/lib SYSLIBDIR=/usr/lib SYSTEM_DROPIN_DIR=/usr/lib/systemd/system USER_DROPIN_DIR=/usr/lib/systemd/user DIST=archlinux } package_qubes-vm-keyring() { pkgdesc="Qubes OS Binary Repository Activation package and Keyring" install=PKGBUILD-keyring.install # Install keyring (will be activated through the .install file) install -dm755 "${pkgdir}/usr/share/pacman/keyrings/" install -m0644 PKGBUILD-keyring-keys "${pkgdir}/usr/share/pacman/keyrings/qubesos-vm.gpg" install -m0644 PKGBUILD-keyring-trusted "${pkgdir}/usr/share/pacman/keyrings/qubesos-vm-trusted" install -m0644 PKGBUILD-keyring-revoked "${pkgdir}/usr/share/pacman/keyrings/qubesos-vm-revoked" } package_qubes-vm-passwordless-root() { pkgdesc="Qubes OS Passwordless root access from normal user" make -C passwordless-root install DESTDIR="$pkgdir" SBINDIR=/usr/bin LIBDIR=/usr/lib SYSLIBDIR=/usr/lib SYSTEM_DROPIN_DIR=/usr/lib/systemd/system USER_DROPIN_DIR=/usr/lib/systemd/user DIST=archlinux } # vim:set ts=2 sw=2 et: