summaryrefslogtreecommitdiff
path: root/src/backend/f_makepkg.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/f_makepkg.sh')
-rw-r--r--src/backend/f_makepkg.sh68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/backend/f_makepkg.sh b/src/backend/f_makepkg.sh
new file mode 100644
index 0000000..1c16d45
--- /dev/null
+++ b/src/backend/f_makepkg.sh
@@ -0,0 +1,68 @@
+#!/usr/bin/env bash
+
+jailpkgprep () {
+ while : true ; do
+ if [[ ! -d "$ropath" || ! -d "$rwpath" || ! -d "$workpath" || ! -d "$overlaypath" ]] ; then
+ export local i
+ for i in "$ropath" "$rwpath" "$workpath" "$overlaypath" ; do
+ mkdir "$i"
+ done
+ jailpkgmnt
+ break
+ elif [[ -d "$ropath" || -d "$rwpath" || -d "$workpath" || -d "$overlaypath" ]] ; then
+ jailpkgdmnt
+ export local j
+ for j in "$ropath" "$rwpath" "$workpath" "$overlaypath" ; do
+ rm -rf "$j"
+ done
+ continue
+ fi
+ done
+}
+
+jailpkgmnt () {
+ mount -t squashfs "$jailx64" "$ropath"
+ mount -t overlay -o lowerdir="$ropath",upperdir="$rwpath",workdir="$workpath" overlay "$overlaypath"
+ mount -o bind packages "$overlaypath"/var/cache/packages
+ mount -o bind distfiles "$overlaypath"/var/cache/distfiles
+ mount -t proc proc "$overlaypath"/proc
+ mount -t sysfs sysfs "$overlaypath"/sys
+ mount -t devtmpfs -o relatime,size=3055348k,nr_inodes=763837,mode=755 none "$overlaypath"/dev
+ mount -t devpts -o nosuid,noexec,relatime,gid=5,mode=620 none "$overlaypath"/dev/pts
+ mount -t tmpfs -o nosuid,nodev none "$overlaypath"/dev/shm
+}
+
+jailpkgdmnt () {
+ umount -l "$overlaypath"/proc > /dev/null 2>&1
+ umount -l "$overlaypath"/sys > /dev/null 2>&1
+ umount -l "$overlaypath"/dev/pts > /dev/null 2>&1
+ umount -l "$overlaypath"/dev/shm > /dev/null 2>&1
+ umount -l "$overlaypath"/dev > /dev/null 2>&1
+ umount -l "$overlaypath"/var/cache/packages > /dev/null 2>&1
+ umount -l "$overlaypath"/var/cache/distfiles > /dev/null 2>&1
+ umount -l "$overlaypath" > /dev/null 2>&1
+ umount -l "$ropath" > /dev/null 2>&1
+}
+
+jailpkgsrcmode () {
+ chroot "$overlaypath" su - "$jailuser" -c "$jailsrcmodecmd"
+}
+
+jailpkgbuild () {
+ chroot "$overlaypath" su - "$jailuser" -c "$jailportagecmd"
+}
+
+jailpkgstart () {
+ einfo "Oh no, I'm in jail!"
+ chroot "$overlaypath" su - "$jailuser"
+}
+
+makepkg () {
+ checkifroot
+ checkjailsum
+ jailpkgprep
+ jailpkgsrcmode
+ jailpkgbuild
+ jailpkgstart
+ jailpkgdmnt
+}