133 lines
5.2 KiB
Bash
133 lines
5.2 KiB
Bash
#!/bin/bash
|
|
# Maintainer: Olivier Medoc <o_medoc@yahoo.fr>
|
|
# shellcheck disable=SC2034
|
|
pkgname=(qubes-vm-core qubes-vm-networking)
|
|
pkgver=$(cat version)
|
|
pkgrel=13
|
|
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
|
|
)
|
|
|
|
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 <<EOF > "$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
|
|
|
|
}
|
|
|
|
# vim:set ts=2 sw=2 et:
|