#!/bin/bash # Maintainer: Olivier Medoc # shellcheck disable=SC2034 pkgname=(qubes-vm-core qubes-vm-networking qubes-vm-keyring) pkgver=$(cat version) pkgrel=14 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>=3.1.3" qubes-libvchan qubes-db-vm qubes-vm-xen libx11 python2 python3 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-3.2.conf PKGBUILD-qubes-repo-4.0.conf PKGBUILD-keyring-keys PKGBUILD-keyring-trusted PKGBUILD-keyring-revoked ) noextract=() md5sums=(SKIP) build() { for source in autostart-dropins qubes-rpc qrexec misc Makefile vm-init.d vm-systemd network init version doc setup.py qubesagent post-install.d; do # shellcheck disable=SC2154 (ln -s "$srcdir/../$source" "$srcdir/$source") 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/* # Force running all scripts with python2 sed 's:^#!/usr/bin/python.*:#!/usr/bin/python2:' -i misc/* sed 's:^#!/usr/bin/env python.*:#!/usr/bin/env python2:' -i misc/* sed 's:^#!/usr/bin/python.*:#!/usr/bin/python2:' -i qubes-rpc/* sed 's:^#!/usr/bin/env python.*:#!/usr/bin/env python2:' -i qubes-rpc/* # Fix for archlinux sbindir sed 's:/usr/sbin/ntpdate:/usr/bin/ntpdate:g' -i qubes-rpc/sync-ntp-clock sed 's:/usr/sbin/qubes-firewall:/usr/bin/qubes-firewall:g' -i vm-systemd/qubes-firewall.service for dir in qubes-rpc qrexec misc; do make -C "$dir" done } package_qubes-vm-core() { depends=("qubes-vm-utils>=3.1.3" python2 python2-xdg ethtool ntp net-tools gnome-packagekit imagemagick fakeroot notification-daemon dconf zenity qubes-libvchan "qubes-db-vm>=3.2.1" haveged python2-gobject python2-dbus xdg-utils notification-daemon gawk sed procps-ng librsvg socat ) optdepends=(gnome-keyring gnome-settings-daemon python2-nautilus gpk-update-viewer) install=PKGBUILD.install # Note: Archlinux removed use of directory such as /sbin /bin /usr/sbin (https://mailman.archlinux.org/pipermail/arch-dev-public/2012-March/022625.html) # shellcheck disable=SC2154 make -C qrexec install DESTDIR="$pkgdir" SBINDIR=/usr/bin LIBDIR=/usr/lib SYSLIBDIR=/usr/lib PYTHON=python2 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 # Remove things non wanted in archlinux rm -r "$pkgdir/etc/yum"* rm -r "$pkgdir/etc/dnf"* rm -r "$pkgdir/etc/init.d" # Remove fedora specific scripts rm "$pkgdir/etc/fstab" # 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 "${pkgdir}/etc/pacman.d" install -m 644 "$srcdir/PKGBUILD-qubes-pacman-options.conf" "${pkgdir}/etc/pacman.d/10-qubes-options.conf" # Install pacman repository release=$(echo "$pkgver" | cut -d '.' -f 1,2) 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 -r "$pkgdir/var/run" } #This package provides: # * basic network functionality (setting IP address, DNS, default gateway) # * 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() { depends=(qubes-vm-core "qubes-vm-utils>=3.1.3" python2 ethtool net-tools "qubes-db-vm>=3.2.1" networkmanager iptables tinyproxy nftables ) install=PKGBUILD-networking.install # shellcheck disable=SC2154 PYTHON=python2 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" } # vim:set ts=2 sw=2 et: