From 5eedef80d1e25ddee799302daf4b5d893643f392 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sun, 9 Jan 2022 16:06:20 -0600 Subject: [PATCH] artools:update --- artools/0.26.1/artools/.gitignore | 8 - artools/0.26.1/artools/Makefile | 179 --- artools/0.26.1/artools/README.md | 69 - artools/0.26.1/artools/bin/base/artix-chroot | 381 ----- .../0.26.1/artools/bin/base/artix-chroot.in | 151 -- artools/0.26.1/artools/bin/base/basestrap | 356 ----- artools/0.26.1/artools/bin/base/basestrap.in | 126 -- artools/0.26.1/artools/bin/base/chroot-run | 414 ----- artools/0.26.1/artools/bin/base/chroot-run.in | 181 --- artools/0.26.1/artools/bin/base/fstabgen | 529 ------- artools/0.26.1/artools/bin/base/fstabgen.in | 432 ------ artools/0.26.1/artools/bin/base/mkchroot | 255 ---- artools/0.26.1/artools/bin/base/mkchroot.in | 106 -- artools/0.26.1/artools/bin/iso/buildiso | 1327 ----------------- artools/0.26.1/artools/bin/iso/buildiso.in | 389 ----- artools/0.26.1/artools/bin/pkg/batchpkg | 328 ---- artools/0.26.1/artools/bin/pkg/batchpkg.in | 115 -- artools/0.26.1/artools/bin/pkg/buildpkg | 324 ---- artools/0.26.1/artools/bin/pkg/buildpkg.in | 121 -- artools/0.26.1/artools/bin/pkg/buildtree | 741 --------- artools/0.26.1/artools/bin/pkg/buildtree.in | 332 ----- artools/0.26.1/artools/bin/pkg/checkpkg | 303 ---- artools/0.26.1/artools/bin/pkg/checkpkg.in | 206 --- artools/0.26.1/artools/bin/pkg/checkrepo | 550 ------- artools/0.26.1/artools/bin/pkg/checkrepo.in | 251 ---- artools/0.26.1/artools/bin/pkg/commitpkg | 596 -------- artools/0.26.1/artools/bin/pkg/commitpkg.in | 230 --- artools/0.26.1/artools/bin/pkg/comparepkg | 506 ------- artools/0.26.1/artools/bin/pkg/comparepkg.in | 207 --- artools/0.26.1/artools/bin/pkg/deploypkg | 351 ----- artools/0.26.1/artools/bin/pkg/deploypkg.in | 101 -- artools/0.26.1/artools/bin/pkg/find-libdeps | 196 --- .../0.26.1/artools/bin/pkg/find-libdeps.in | 99 -- artools/0.26.1/artools/bin/pkg/finddeps | 147 -- artools/0.26.1/artools/bin/pkg/finddeps.in | 50 - artools/0.26.1/artools/bin/pkg/gitearepo | 338 ----- artools/0.26.1/artools/bin/pkg/gitearepo.in | 89 -- artools/0.26.1/artools/bin/pkg/lddd | 154 -- artools/0.26.1/artools/bin/pkg/lddd.in | 57 - artools/0.26.1/artools/bin/pkg/links-add | 609 -------- artools/0.26.1/artools/bin/pkg/links-add.in | 512 ------- artools/0.26.1/artools/bin/pkg/mkchrootpkg | 578 ------- artools/0.26.1/artools/bin/pkg/mkchrootpkg.in | 432 ------ artools/0.26.1/artools/bin/pkg/pkg2yaml | 287 ---- artools/0.26.1/artools/bin/pkg/pkg2yaml.in | 162 -- artools/0.26.1/artools/bin/pkg/signpkg | 180 --- artools/0.26.1/artools/bin/pkg/signpkg.in | 46 - .../artools/data/conf/artools-base.conf | 9 - .../0.26.1/artools/data/conf/artools-iso.conf | 21 - .../0.26.1/artools/data/conf/artools-pkg.conf | 59 - .../0.26.1/artools/data/pacman/makepkg.conf | 161 -- .../artools/data/pacman/pacman-default.conf | 92 -- .../artools/data/pacman/pacman-docker.conf | 99 -- .../data/pacman/pacman-gnome-wobble.conf | 101 -- .../artools/data/pacman/pacman-goblins.conf | 98 -- .../artools/data/pacman/pacman-gremlins.conf | 92 -- .../data/pacman/pacman-kde-wobble.conf | 101 -- .../data/pacman/pacman-lib32-goblins.conf | 110 -- .../data/pacman/pacman-lib32-gremlins.conf | 101 -- .../artools/data/pacman/pacman-lib32.conf | 101 -- .../artools/data/patches/artix-bash.patch | 87 -- artools/0.26.1/artools/data/valid-names.conf | 42 - .../artools/installed-by-dh_installdocs | 0 .../0.26.1/artools/debian/artools.substvars | 2 - .../artools/debian/artools/DEBIAN/conffiles | 3 - .../artools/debian/artools/DEBIAN/control | 11 - .../artools/debian/artools/DEBIAN/md5sums | 36 - .../artools/etc/artools/artools-base.conf | 9 - .../artools/etc/artools/artools-iso.conf | 21 - .../artools/etc/artools/artools-pkg.conf | 59 - .../debian/artools/usr/bin/artix-chroot | 381 ----- .../debian/artools/usr/bin/artools-chroot | 1 - .../artools/debian/artools/usr/bin/basestrap | 356 ----- .../artools/debian/artools/usr/bin/batchpkg | 328 ---- .../artools/debian/artools/usr/bin/buildiso | 1327 ----------------- .../debian/artools/usr/bin/buildiso-goblins | 1 - .../debian/artools/usr/bin/buildiso-gremlins | 1 - .../artools/debian/artools/usr/bin/buildpkg | 324 ---- .../debian/artools/usr/bin/buildpkg-galaxy | 1 - .../artools/usr/bin/buildpkg-galaxy-goblins | 1 - .../artools/usr/bin/buildpkg-galaxy-gremlins | 1 - .../artools/usr/bin/buildpkg-gnome-wobble | 1 - .../debian/artools/usr/bin/buildpkg-goblins | 1 - .../debian/artools/usr/bin/buildpkg-gremlins | 1 - .../artools/usr/bin/buildpkg-kde-wobble | 1 - .../debian/artools/usr/bin/buildpkg-lib32 | 1 - .../artools/usr/bin/buildpkg-lib32-goblins | 1 - .../artools/usr/bin/buildpkg-lib32-gremlins | 1 - .../debian/artools/usr/bin/buildpkg-system | 1 - .../debian/artools/usr/bin/buildpkg-world | 1 - .../artools/debian/artools/usr/bin/buildtree | 741 --------- .../artools/debian/artools/usr/bin/checkpkg | 303 ---- .../artools/debian/artools/usr/bin/checkrepo | 550 ------- .../artools/debian/artools/usr/bin/chroot-run | 414 ----- .../artools/debian/artools/usr/bin/commitpkg | 596 -------- .../artools/usr/bin/community-stagingpkg | 1 - .../artools/usr/bin/community-testingpkg | 1 - .../debian/artools/usr/bin/communitypkg | 1 - .../artools/debian/artools/usr/bin/comparepkg | 506 ------- .../artools/debian/artools/usr/bin/corepkg | 1 - .../artools/debian/artools/usr/bin/deploypkg | 351 ----- .../debian/artools/usr/bin/deploypkg-galaxy | 1 - .../artools/usr/bin/deploypkg-galaxy-goblins | 1 - .../artools/usr/bin/deploypkg-galaxy-gremlins | 1 - .../artools/usr/bin/deploypkg-gnome-wobble | 1 - .../debian/artools/usr/bin/deploypkg-goblins | 1 - .../debian/artools/usr/bin/deploypkg-gremlins | 1 - .../artools/usr/bin/deploypkg-kde-wobble | 1 - .../debian/artools/usr/bin/deploypkg-lib32 | 1 - .../artools/usr/bin/deploypkg-lib32-goblins | 1 - .../artools/usr/bin/deploypkg-lib32-gremlins | 1 - .../debian/artools/usr/bin/deploypkg-system | 1 - .../debian/artools/usr/bin/deploypkg-world | 1 - .../artools/debian/artools/usr/bin/extrapkg | 1 - .../debian/artools/usr/bin/find-libdeps | 196 --- .../debian/artools/usr/bin/find-libprovides | 1 - .../artools/debian/artools/usr/bin/finddeps | 147 -- .../artools/debian/artools/usr/bin/fstabgen | 529 ------- .../artools/debian/artools/usr/bin/gitearepo | 338 ----- .../debian/artools/usr/bin/gnome-unstablepkg | 1 - .../debian/artools/usr/bin/kde-unstablepkg | 1 - .../artools/debian/artools/usr/bin/lddd | 154 -- .../artools/debian/artools/usr/bin/links-add | 609 -------- .../debian/artools/usr/bin/links-remove | 1 - .../artools/debian/artools/usr/bin/mkchroot | 255 ---- .../debian/artools/usr/bin/mkchrootpkg | 578 ------- .../artools/usr/bin/multilib-stagingpkg | 1 - .../artools/usr/bin/multilib-testingpkg | 1 - .../debian/artools/usr/bin/multilibpkg | 1 - .../artools/debian/artools/usr/bin/pkg2yaml | 287 ---- .../artools/debian/artools/usr/bin/rebuildpkg | 1 - .../artools/debian/artools/usr/bin/signpkg | 180 --- .../artools/debian/artools/usr/bin/stagingpkg | 1 - .../artools/debian/artools/usr/bin/testingpkg | 1 - .../artools/usr/share/artools/makepkg.conf | 161 -- .../usr/share/artools/pacman-default.conf | 92 -- .../usr/share/artools/pacman-docker.conf | 99 -- .../share/artools/pacman-gnome-wobble.conf | 101 -- .../usr/share/artools/pacman-goblins.conf | 98 -- .../usr/share/artools/pacman-gremlins.conf | 92 -- .../usr/share/artools/pacman-kde-wobble.conf | 101 -- .../share/artools/pacman-lib32-goblins.conf | 110 -- .../share/artools/pacman-lib32-gremlins.conf | 101 -- .../usr/share/artools/pacman-lib32.conf | 101 -- .../share/artools/patches/artix-bash.patch | 87 -- .../usr/share/artools/valid-names.conf | 42 - .../usr/share/doc/artools/changelog.Debian.gz | Bin 146 -> 0 bytes .../artools/usr/share/doc/artools/copyright | 35 - artools/0.26.1/artools/debian/changelog | 5 - artools/0.26.1/artools/debian/control | 16 - artools/0.26.1/artools/debian/copyright | 35 - .../artools/debian/debhelper-build-stamp | 1 - artools/0.26.1/artools/debian/files | 2 - artools/0.26.1/artools/debian/patches/1 | 37 - .../add-flto-to-LDFLAGS-for-clang.patch | 24 - .../debian/patches/comparepkg-fix.patch | 16 - artools/0.26.1/artools/debian/patches/series | 2 - artools/0.26.1/artools/debian/rules | 26 - artools/0.26.1/artools/debian/source/format | 1 - .../0.26.1/artools/lib/base/chroot-version.sh | 3 - artools/0.26.1/artools/lib/base/chroot.sh | 49 - artools/0.26.1/artools/lib/base/common.sh | 16 - artools/0.26.1/artools/lib/base/message.sh | 97 -- artools/0.26.1/artools/lib/base/mount.sh | 84 -- artools/0.26.1/artools/lib/base/yaml.sh | 28 - artools/0.26.1/artools/lib/iso/calamares.sh | 54 - artools/0.26.1/artools/lib/iso/config.sh | 30 - artools/0.26.1/artools/lib/iso/dracut.sh | 42 - artools/0.26.1/artools/lib/iso/firmware.sh | 17 - artools/0.26.1/artools/lib/iso/grub.sh | 61 - artools/0.26.1/artools/lib/iso/initcpio.sh | 72 - artools/0.26.1/artools/lib/iso/iso.sh | 50 - artools/0.26.1/artools/lib/iso/mount.sh | 55 - artools/0.26.1/artools/lib/iso/profile.sh | 85 -- artools/0.26.1/artools/lib/iso/services.sh | 66 - artools/0.26.1/artools/lib/iso/squash.sh | 86 -- artools/0.26.1/artools/lib/iso/trap.sh | 48 - artools/0.26.1/artools/lib/pkg/common.sh | 36 - artools/0.26.1/artools/lib/pkg/deploy.sh | 37 - artools/0.26.1/artools/lib/pkg/git.sh | 35 - artools/0.26.1/artools/lib/pkg/gitea.sh | 31 - artools/0.26.1/artools/lib/pkg/jenkins.sh | 43 - artools/0.26.1/artools/lib/pkg/repo.sh | 51 - artools/0.26.1/artools/lib/pkg/table.sh | 35 - artools/0.26.1/artools/lib/util-base.sh | 41 - artools/0.26.1/artools/lib/util-iso.sh | 41 - artools/0.26.1/artools/lib/util-pkg.sh | 75 - artools/0.26.1/artools_0.26.1-1.dsc | 21 - .../0.26.1/artools_0.26.1-1_amd64.buildinfo | 199 --- artools/0.26.1/artools_0.26.1-1_amd64.changes | 56 - 190 files changed, 28037 deletions(-) delete mode 100644 artools/0.26.1/artools/.gitignore delete mode 100644 artools/0.26.1/artools/Makefile delete mode 100644 artools/0.26.1/artools/README.md delete mode 100755 artools/0.26.1/artools/bin/base/artix-chroot delete mode 100644 artools/0.26.1/artools/bin/base/artix-chroot.in delete mode 100755 artools/0.26.1/artools/bin/base/basestrap delete mode 100644 artools/0.26.1/artools/bin/base/basestrap.in delete mode 100755 artools/0.26.1/artools/bin/base/chroot-run delete mode 100644 artools/0.26.1/artools/bin/base/chroot-run.in delete mode 100755 artools/0.26.1/artools/bin/base/fstabgen delete mode 100644 artools/0.26.1/artools/bin/base/fstabgen.in delete mode 100755 artools/0.26.1/artools/bin/base/mkchroot delete mode 100644 artools/0.26.1/artools/bin/base/mkchroot.in delete mode 100755 artools/0.26.1/artools/bin/iso/buildiso delete mode 100755 artools/0.26.1/artools/bin/iso/buildiso.in delete mode 100755 artools/0.26.1/artools/bin/pkg/batchpkg delete mode 100644 artools/0.26.1/artools/bin/pkg/batchpkg.in delete mode 100755 artools/0.26.1/artools/bin/pkg/buildpkg delete mode 100644 artools/0.26.1/artools/bin/pkg/buildpkg.in delete mode 100755 artools/0.26.1/artools/bin/pkg/buildtree delete mode 100644 artools/0.26.1/artools/bin/pkg/buildtree.in delete mode 100755 artools/0.26.1/artools/bin/pkg/checkpkg delete mode 100644 artools/0.26.1/artools/bin/pkg/checkpkg.in delete mode 100755 artools/0.26.1/artools/bin/pkg/checkrepo delete mode 100644 artools/0.26.1/artools/bin/pkg/checkrepo.in delete mode 100755 artools/0.26.1/artools/bin/pkg/commitpkg delete mode 100644 artools/0.26.1/artools/bin/pkg/commitpkg.in delete mode 100755 artools/0.26.1/artools/bin/pkg/comparepkg delete mode 100644 artools/0.26.1/artools/bin/pkg/comparepkg.in delete mode 100755 artools/0.26.1/artools/bin/pkg/deploypkg delete mode 100644 artools/0.26.1/artools/bin/pkg/deploypkg.in delete mode 100755 artools/0.26.1/artools/bin/pkg/find-libdeps delete mode 100644 artools/0.26.1/artools/bin/pkg/find-libdeps.in delete mode 100755 artools/0.26.1/artools/bin/pkg/finddeps delete mode 100644 artools/0.26.1/artools/bin/pkg/finddeps.in delete mode 100755 artools/0.26.1/artools/bin/pkg/gitearepo delete mode 100644 artools/0.26.1/artools/bin/pkg/gitearepo.in delete mode 100755 artools/0.26.1/artools/bin/pkg/lddd delete mode 100644 artools/0.26.1/artools/bin/pkg/lddd.in delete mode 100755 artools/0.26.1/artools/bin/pkg/links-add delete mode 100644 artools/0.26.1/artools/bin/pkg/links-add.in delete mode 100755 artools/0.26.1/artools/bin/pkg/mkchrootpkg delete mode 100644 artools/0.26.1/artools/bin/pkg/mkchrootpkg.in delete mode 100755 artools/0.26.1/artools/bin/pkg/pkg2yaml delete mode 100644 artools/0.26.1/artools/bin/pkg/pkg2yaml.in delete mode 100755 artools/0.26.1/artools/bin/pkg/signpkg delete mode 100644 artools/0.26.1/artools/bin/pkg/signpkg.in delete mode 100644 artools/0.26.1/artools/data/conf/artools-base.conf delete mode 100644 artools/0.26.1/artools/data/conf/artools-iso.conf delete mode 100644 artools/0.26.1/artools/data/conf/artools-pkg.conf delete mode 100644 artools/0.26.1/artools/data/pacman/makepkg.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-default.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-docker.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-gnome-wobble.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-goblins.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-gremlins.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-kde-wobble.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-lib32-goblins.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-lib32-gremlins.conf delete mode 100644 artools/0.26.1/artools/data/pacman/pacman-lib32.conf delete mode 100644 artools/0.26.1/artools/data/patches/artix-bash.patch delete mode 100644 artools/0.26.1/artools/data/valid-names.conf delete mode 100644 artools/0.26.1/artools/debian/.debhelper/generated/artools/installed-by-dh_installdocs delete mode 100644 artools/0.26.1/artools/debian/artools.substvars delete mode 100644 artools/0.26.1/artools/debian/artools/DEBIAN/conffiles delete mode 100644 artools/0.26.1/artools/debian/artools/DEBIAN/control delete mode 100644 artools/0.26.1/artools/debian/artools/DEBIAN/md5sums delete mode 100644 artools/0.26.1/artools/debian/artools/etc/artools/artools-base.conf delete mode 100644 artools/0.26.1/artools/debian/artools/etc/artools/artools-iso.conf delete mode 100644 artools/0.26.1/artools/debian/artools/etc/artools/artools-pkg.conf delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/artix-chroot delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/artools-chroot delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/basestrap delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/batchpkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/buildiso delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildiso-goblins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildiso-gremlins delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-goblins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-gremlins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gnome-wobble delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-goblins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gremlins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-kde-wobble delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32 delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-goblins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-gremlins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-system delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-world delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/buildtree delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/checkpkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/checkrepo delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/chroot-run delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/commitpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/community-stagingpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/community-testingpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/communitypkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/comparepkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/corepkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-goblins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-gremlins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gnome-wobble delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-goblins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gremlins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-kde-wobble delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32 delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-goblins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-gremlins delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-system delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-world delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/extrapkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/find-libdeps delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/find-libprovides delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/finddeps delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/fstabgen delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/gitearepo delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/gnome-unstablepkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/kde-unstablepkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/lddd delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/links-add delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/links-remove delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/mkchroot delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/mkchrootpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/multilib-stagingpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/multilib-testingpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/multilibpkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/pkg2yaml delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/rebuildpkg delete mode 100755 artools/0.26.1/artools/debian/artools/usr/bin/signpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/stagingpkg delete mode 120000 artools/0.26.1/artools/debian/artools/usr/bin/testingpkg delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/makepkg.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-default.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-docker.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gnome-wobble.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-goblins.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gremlins.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-kde-wobble.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-goblins.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-gremlins.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/patches/artix-bash.patch delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/artools/valid-names.conf delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/doc/artools/changelog.Debian.gz delete mode 100644 artools/0.26.1/artools/debian/artools/usr/share/doc/artools/copyright delete mode 100644 artools/0.26.1/artools/debian/changelog delete mode 100644 artools/0.26.1/artools/debian/control delete mode 100644 artools/0.26.1/artools/debian/copyright delete mode 100644 artools/0.26.1/artools/debian/debhelper-build-stamp delete mode 100644 artools/0.26.1/artools/debian/files delete mode 100644 artools/0.26.1/artools/debian/patches/1 delete mode 100644 artools/0.26.1/artools/debian/patches/add-flto-to-LDFLAGS-for-clang.patch delete mode 100644 artools/0.26.1/artools/debian/patches/comparepkg-fix.patch delete mode 100644 artools/0.26.1/artools/debian/patches/series delete mode 100755 artools/0.26.1/artools/debian/rules delete mode 100644 artools/0.26.1/artools/debian/source/format delete mode 100644 artools/0.26.1/artools/lib/base/chroot-version.sh delete mode 100644 artools/0.26.1/artools/lib/base/chroot.sh delete mode 100644 artools/0.26.1/artools/lib/base/common.sh delete mode 100644 artools/0.26.1/artools/lib/base/message.sh delete mode 100644 artools/0.26.1/artools/lib/base/mount.sh delete mode 100644 artools/0.26.1/artools/lib/base/yaml.sh delete mode 100644 artools/0.26.1/artools/lib/iso/calamares.sh delete mode 100644 artools/0.26.1/artools/lib/iso/config.sh delete mode 100644 artools/0.26.1/artools/lib/iso/dracut.sh delete mode 100644 artools/0.26.1/artools/lib/iso/firmware.sh delete mode 100644 artools/0.26.1/artools/lib/iso/grub.sh delete mode 100644 artools/0.26.1/artools/lib/iso/initcpio.sh delete mode 100644 artools/0.26.1/artools/lib/iso/iso.sh delete mode 100644 artools/0.26.1/artools/lib/iso/mount.sh delete mode 100644 artools/0.26.1/artools/lib/iso/profile.sh delete mode 100644 artools/0.26.1/artools/lib/iso/services.sh delete mode 100644 artools/0.26.1/artools/lib/iso/squash.sh delete mode 100644 artools/0.26.1/artools/lib/iso/trap.sh delete mode 100644 artools/0.26.1/artools/lib/pkg/common.sh delete mode 100644 artools/0.26.1/artools/lib/pkg/deploy.sh delete mode 100644 artools/0.26.1/artools/lib/pkg/git.sh delete mode 100644 artools/0.26.1/artools/lib/pkg/gitea.sh delete mode 100644 artools/0.26.1/artools/lib/pkg/jenkins.sh delete mode 100644 artools/0.26.1/artools/lib/pkg/repo.sh delete mode 100644 artools/0.26.1/artools/lib/pkg/table.sh delete mode 100644 artools/0.26.1/artools/lib/util-base.sh delete mode 100644 artools/0.26.1/artools/lib/util-iso.sh delete mode 100644 artools/0.26.1/artools/lib/util-pkg.sh delete mode 100644 artools/0.26.1/artools_0.26.1-1_amd64.buildinfo delete mode 100644 artools/0.26.1/artools_0.26.1-1_amd64.changes diff --git a/artools/0.26.1/artools/.gitignore b/artools/0.26.1/artools/.gitignore deleted file mode 100644 index 891f417..0000000 --- a/artools/0.26.1/artools/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*~ -*.tar.gz -*.tar.xz -.kateproject.d -data/schemas/*.conf -.project -iso-profiles -live-services diff --git a/artools/0.26.1/artools/Makefile b/artools/0.26.1/artools/Makefile deleted file mode 100644 index fbcaa70..0000000 --- a/artools/0.26.1/artools/Makefile +++ /dev/null @@ -1,179 +0,0 @@ -V=0.26 - -TOOLS = artools -PREFIX ?= /usr -SYSCONFDIR = /etc -BINDIR = $(PREFIX)/bin -DATADIR = $(PREFIX)/share - -BASE_CONF = \ - data/conf/artools-base.conf - -BASE_BIN = \ - bin/base/chroot-run \ - bin/base/mkchroot \ - bin/base/basestrap \ - bin/base/artix-chroot \ - bin/base/fstabgen - -BASE_DATA = \ - $(wildcard data/pacman/pacman*.conf) - -PKG_CONF = \ - data/conf/artools-pkg.conf - -SETARCH_ALIASES = \ - -PKG_BIN = \ - bin/pkg/buildpkg \ - bin/pkg/deploypkg \ - bin/pkg/commitpkg \ - bin/pkg/comparepkg \ - bin/pkg/mkchrootpkg \ - bin/pkg/pkg2yaml \ - bin/pkg/buildtree \ - bin/pkg/lddd \ - bin/pkg/links-add \ - bin/pkg/checkpkg \ - bin/pkg/finddeps \ - bin/pkg/find-libdeps \ - bin/pkg/batchpkg \ - bin/pkg/signpkg \ - bin/pkg/checkrepo \ - bin/pkg/gitearepo - -LN_COMMITPKG = \ - extrapkg \ - corepkg \ - testingpkg \ - stagingpkg \ - communitypkg \ - community-testingpkg \ - community-stagingpkg \ - multilibpkg \ - multilib-testingpkg \ - multilib-stagingpkg \ - kde-unstablepkg \ - gnome-unstablepkg \ - rebuildpkg - -LN_BUILDPKG = \ - buildpkg-system \ - buildpkg-world \ - buildpkg-gremlins \ - buildpkg-goblins \ - buildpkg-galaxy \ - buildpkg-galaxy-gremlins \ - buildpkg-galaxy-goblins \ - buildpkg-lib32 \ - buildpkg-lib32-gremlins \ - buildpkg-lib32-goblins \ - buildpkg-kde-wobble \ - buildpkg-gnome-wobble - -LN_DEPLOYPKG = \ - deploypkg-system \ - deploypkg-world \ - deploypkg-gremlins \ - deploypkg-goblins \ - deploypkg-galaxy \ - deploypkg-galaxy-gremlins \ - deploypkg-galaxy-goblins \ - deploypkg-lib32 \ - deploypkg-lib32-gremlins \ - deploypkg-lib32-goblins \ - deploypkg-kde-wobble \ - deploypkg-gnome-wobble - -PKG_DATA = \ - data/pacman/makepkg.conf \ - data/valid-names.conf - -PATCHES = \ - $(wildcard data/patches/*.patch) - -ISO_CONF = \ - data/conf/artools-iso.conf - -ISO_BIN = \ - bin/iso/buildiso - -LN_BUILDISO = \ - buildiso-gremlins \ - buildiso-goblins - -DIRMODE = -dm0755 -FILEMODE = -m0644 -MODE = -m0755 -LN = ln -sf -RM = rm -f -M4 = m4 -P --define=m4_artools_pkg_version=$V -CHMODAW = chmod a-w -CHMODX = chmod +x - -BIN = $(BASE_BIN) $(PKG_BIN) $(ISO_BIN) - -all: $(BIN) - -EDIT = sed -e "s|@datadir[@]|$(DATADIR)|g" \ - -e "s|@sysconfdir[@]|$(SYSCONFDIR)|g" - -%: %.in Makefile lib/util-base.sh - @echo "GEN $@" - @$(RM) "$@" - @{ echo -n 'm4_changequote([[[,]]])'; cat $@.in; } | $(M4) | $(EDIT) >$@ - @$(CHMODAW) "$@" - @$(CHMODX) "$@" - @bash -O extglob -n "$@" - -clean: - $(RM) $(BIN) - -install_base: - install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) - install $(FILEMODE) $(BASE_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) - - install $(DIRMODE) $(DESTDIR)$(BINDIR) - install $(MODE) $(BASE_BIN) $(DESTDIR)$(BINDIR) - - install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS) - install $(FILEMODE) $(BASE_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS) - - install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)/setarch-aliases.d - for a in ${SETARCH_ALIASES}; do install $(FILEMODE) setarch-aliases.d/$$a $(DESTDIR)$(DATADIR)/$(TOOLS)/setarch-aliases.d; done - -install_pkg: - install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) - install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) - - install $(DIRMODE) $(DESTDIR)$(BINDIR) - install $(MODE) $(PKG_BIN) $(DESTDIR)$(BINDIR) - - $(LN) find-libdeps $(DESTDIR)$(BINDIR)/find-libprovides - - $(LN) links-add $(DESTDIR)$(BINDIR)/links-remove - - for l in $(LN_COMMITPKG); do $(LN) commitpkg $(DESTDIR)$(BINDIR)/$$l; done - for l in $(LN_BUILDPKG); do $(LN) buildpkg $(DESTDIR)$(BINDIR)/$$l; done - for l in $(LN_DEPLOYPKG); do $(LN) deploypkg $(DESTDIR)$(BINDIR)/$$l; done - - $(LN) artix-chroot $(DESTDIR)$(BINDIR)/artools-chroot - - install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS) - install $(FILEMODE) $(PKG_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS) - - install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)/patches - install $(FILEMODE) $(PATCHES) $(DESTDIR)$(DATADIR)/$(TOOLS)/patches - -install_iso: - install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) - install $(FILEMODE) $(ISO_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) - - install $(DIRMODE) $(DESTDIR)$(BINDIR) - install $(MODE) $(ISO_BIN) $(DESTDIR)$(BINDIR) - - for l in $(LN_BUILDISO); do $(LN) buildiso $(DESTDIR)$(BINDIR)/$$l; done - -install: install_base install_pkg install_iso - -.PHONY: all clean install install_base install_pkg install_iso diff --git a/artools/0.26.1/artools/README.md b/artools/0.26.1/artools/README.md deleted file mode 100644 index f5bccd5..0000000 --- a/artools/0.26.1/artools/README.md +++ /dev/null @@ -1,69 +0,0 @@ -artools -============= - -#### Make flags - - -* PREFIX=/usr -* SYSCONFDIR=/etc - -#### Dependencies - -##### Buildtime: - -* make -* git -* m4 - -##### Runtime: - -- base: - * os-prober - * pacman - -- pkg: - * namcap - * git-subrepo - * rsync - -- iso: - * dosfstools - * libisoburn - * squashfs-tools - * grub - -#### Configuration - -artools-{base,pkg,iso}.conf are the configuration files for artools. -By default, the config files are installed in - -```bash -/etc/artools/artools-{base,pkg,iso}.conf -``` - -A user artools-{base,pkg,iso}.conf can be placed in - -```bash -$HOME/.config/artools/artools-{base,pkg,iso}.conf -``` - -If the userconfig is present, artools will load the userconfig values, however, if variables have been set in the systemwide - -These values take precedence over the userconfig. -Best practise is to leave systemwide file untouched. -By default it is commented and shows just initialization values done in code. - -Tools configuration is done in artools-{base,pkg,iso}.conf or by args. -Specifying args will override artools-{base,pkg,iso}.conf settings. - -Both, pacman.conf and makepkg.conf for chroots are loaded from - -```bash -usr/share/artools/{makepkg,pacman-*}.conf -``` - -and can be overridden dropping them in - -```bash -$HOME/.config/artools/ -``` diff --git a/artools/0.26.1/artools/bin/base/artix-chroot b/artools/0.26.1/artools/bin/base/artix-chroot deleted file mode 100755 index 54dd3a2..0000000 --- a/artools/0.26.1/artools/bin/base/artix-chroot +++ /dev/null @@ -1,381 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -shopt -s extglob - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -#{{{ mount - -ignore_error() { - "$@" 2>/dev/null - return 0 -} - -trap_setup(){ - [[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap' - trap "$1" EXIT -} - -chroot_mount() { -# msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") -} - -chroot_add_resolv_conf() { - local chrootdir=$1 resolv_conf=$1/etc/resolv.conf - - [[ -e /etc/resolv.conf ]] || return 0 - - # Handle resolv.conf as a symlink to somewhere else. - if [[ -L $chrootdir/etc/resolv.conf ]]; then - # readlink(1) should always give us *something* since we know at this point - # it's a symlink. For simplicity, ignore the case of nested symlinks. - resolv_conf=$(readlink "$chrootdir/etc/resolv.conf") - if [[ $resolv_conf = /* ]]; then - resolv_conf=$chrootdir$resolv_conf - else - resolv_conf=$chrootdir/etc/$resolv_conf - fi - - # ensure file exists to bind mount over - if [[ ! -f $resolv_conf ]]; then - install -Dm644 /dev/null "$resolv_conf" || return 1 - fi - elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then - # The chroot might not have a resolv.conf. - return 0 - fi - - chroot_mount /etc/resolv.conf "$resolv_conf" --bind -} - -chroot_mount_conditional() { - local cond=$1; shift - if eval "$cond"; then - chroot_mount "$@" - fi -} - -chroot_setup(){ - local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755' - $os && args='--bind' - chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind && - chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev && - chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro && - ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \ - efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && - chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid && - chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && - chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && - chroot_mount /run "$mnt/run" ${args} && - chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid -} - -chroot_api_mount() { - CHROOT_ACTIVE_MOUNTS=() - trap_setup chroot_api_umount - chroot_setup "$1" false -} - -chroot_api_umount() { - if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then -# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_MOUNTS[@]}" - fi - unset CHROOT_ACTIVE_MOUNTS -} - -#}}} - - -#{{{ functions - -chroot_part_mount() { - msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}") -} - -chroot_part_umount() { - chroot_api_umount - msg2 "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}" - unset CHROOT_ACTIVE_PART_MOUNTS -} - -detect(){ - local detected - detected="$(os-prober | tr ' ' '_' | paste -s -d ' ')" - echo "${detected}" -} - -# $1: os-prober array -get_os_name(){ - local str=$1 - str="${str#*:}" - str="${str#*:}" - str="${str%:*}" - echo "$str" -} - -mount_os(){ - CHROOT_ACTIVE_PART_MOUNTS=() - CHROOT_ACTIVE_MOUNTS=() - - trap_setup chroot_part_umount - - chroot_part_mount "$2" "$1" - - local mounts - mounts=$(perl -ane 'printf("%s:%s\n", @F[0,1]) if $F[0] =~ m#^UUID=#;' "$1"/etc/fstab) - - for entry in ${mounts}; do - entry=${entry//UUID=} - local dev=${entry%:*} mp=${entry#*:} - case "${entry#*:}" in - '/'|'swap'|'none') continue ;; - *) chroot_part_mount "/dev/disk/by-uuid/${dev}" "$1${mp}" ;; - esac - done - - chroot_setup "$1" true - chroot_add_resolv_conf "$1" -} - -select_os(){ - local os_list=( "$(detect)" ) count=${#os_list[@]} - if [[ ${count} -gt 1 ]];then - msg "Detected systems:" - local i=0 - for os in "${os_list[@]}"; do - local last=${os##*:} - case $last in - 'efi') count=$((count-1)) ;; - *) msg2 "$i) $(get_os_name "$os")"; i=$((i+1)) ;; - esac - done - i=0 - msg "Select system to mount [0-%s] : " "$((count-1))" - read -r select - else - select=0 - fi - local os_str=${os_list[$select]} type - type=$os_str - root=${os_str%%:*} - type=${type##*:} - if [[ "${type##*:}" == 'linux' ]];then - msg "Mounting (%s) [%s]" "$(get_os_name "$os_str")" "$root" - mount_os "$1" "$root" - else - die "You can't mount %s!" "$select" - fi -} - -#}}} - -automount=false - -usage() { - echo "usage: ${0##*/} -a [or] ${0##*/} chroot-dir [command]" - echo ' -a Automount detected linux system' - echo ' -h Print this help message' - echo '' - echo " If 'command' is unspecified, ${0##*/} will launch /bin/sh." - echo '' - echo " If 'automount' is true, ${0##*/} will launch /bin/bash" - echo " and ${chrootdir}." - echo '' - echo '' - exit "$1" -} - -opts=':ha' - -while getopts ${opts} arg; do - case "${arg}" in - a) automount=true ;; - h|?) usage 0 ;; - *) echo "invalid argument ${arg}"; usage 1 ;; - esac -done -shift $(( OPTIND - 1 )) - -check_root - -if ${automount};then - chrootdir=/mnt - run_args=(/bin/bash) - - select_os "${chrootdir}" -else - chrootdir=$1 - shift - run_args=("$@") - - [[ -d ${chrootdir} ]] || die "Can't create chroot on non-directory %s" "${chrootdir}" - - chroot_api_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}" - chroot_add_resolv_conf "${chrootdir}" -fi - -SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "${run_args[@]}" diff --git a/artools/0.26.1/artools/bin/base/artix-chroot.in b/artools/0.26.1/artools/bin/base/artix-chroot.in deleted file mode 100644 index c6ad55f..0000000 --- a/artools/0.26.1/artools/bin/base/artix-chroot.in +++ /dev/null @@ -1,151 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -shopt -s extglob - -m4_include(lib/base/message.sh) -m4_include(lib/base/chroot.sh) -m4_include(lib/base/mount.sh) - -#{{{ functions - -chroot_part_mount() { - msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}") -} - -chroot_part_umount() { - chroot_api_umount - msg2 "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}" - unset CHROOT_ACTIVE_PART_MOUNTS -} - -detect(){ - local detected - detected="$(os-prober | tr ' ' '_' | paste -s -d ' ')" - echo "${detected}" -} - -# $1: os-prober array -get_os_name(){ - local str=$1 - str="${str#*:}" - str="${str#*:}" - str="${str%:*}" - echo "$str" -} - -mount_os(){ - CHROOT_ACTIVE_PART_MOUNTS=() - CHROOT_ACTIVE_MOUNTS=() - - trap_setup chroot_part_umount - - chroot_part_mount "$2" "$1" - - local mounts - mounts=$(perl -ane 'printf("%s:%s\n", @F[0,1]) if $F[0] =~ m#^UUID=#;' "$1"/etc/fstab) - - for entry in ${mounts}; do - entry=${entry//UUID=} - local dev=${entry%:*} mp=${entry#*:} - case "${entry#*:}" in - '/'|'swap'|'none') continue ;; - *) chroot_part_mount "/dev/disk/by-uuid/${dev}" "$1${mp}" ;; - esac - done - - chroot_setup "$1" true - chroot_add_resolv_conf "$1" -} - -select_os(){ - local os_list=( "$(detect)" ) count=${#os_list[@]} - if [[ ${count} -gt 1 ]];then - msg "Detected systems:" - local i=0 - for os in "${os_list[@]}"; do - local last=${os##*:} - case $last in - 'efi') count=$((count-1)) ;; - *) msg2 "$i) $(get_os_name "$os")"; i=$((i+1)) ;; - esac - done - i=0 - msg "Select system to mount [0-%s] : " "$((count-1))" - read -r select - else - select=0 - fi - local os_str=${os_list[$select]} type - type=$os_str - root=${os_str%%:*} - type=${type##*:} - if [[ "${type##*:}" == 'linux' ]];then - msg "Mounting (%s) [%s]" "$(get_os_name "$os_str")" "$root" - mount_os "$1" "$root" - else - die "You can't mount %s!" "$select" - fi -} - -#}}} - -automount=false - -usage() { - echo "usage: ${0##*/} -a [or] ${0##*/} chroot-dir [command]" - echo ' -a Automount detected linux system' - echo ' -h Print this help message' - echo '' - echo " If 'command' is unspecified, ${0##*/} will launch /bin/sh." - echo '' - echo " If 'automount' is true, ${0##*/} will launch /bin/bash" - echo " and ${chrootdir}." - echo '' - echo '' - exit "$1" -} - -opts=':ha' - -while getopts ${opts} arg; do - case "${arg}" in - a) automount=true ;; - h|?) usage 0 ;; - *) echo "invalid argument ${arg}"; usage 1 ;; - esac -done -shift $(( OPTIND - 1 )) - -check_root - -if ${automount};then - chrootdir=/mnt - run_args=(/bin/bash) - - select_os "${chrootdir}" -else - chrootdir=$1 - shift - run_args=("$@") - - [[ -d ${chrootdir} ]] || die "Can't create chroot on non-directory %s" "${chrootdir}" - - chroot_api_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}" - chroot_add_resolv_conf "${chrootdir}" -fi - -SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "${run_args[@]}" diff --git a/artools/0.26.1/artools/bin/base/basestrap b/artools/0.26.1/artools/bin/base/basestrap deleted file mode 100755 index 611bd60..0000000 --- a/artools/0.26.1/artools/bin/base/basestrap +++ /dev/null @@ -1,356 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# -# Assumptions: -# 1) User has partitioned, formatted, and mounted partitions on /mnt -# 2) Network is functional -# 3) Arguments passed to the script are valid pacman targets -# 4) A valid mirror appears in /etc/pacman.d/mirrorlist -# - -shopt -s extglob - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ mount - -ignore_error() { - "$@" 2>/dev/null - return 0 -} - -trap_setup(){ - [[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap' - trap "$1" EXIT -} - -chroot_mount() { -# msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") -} - -chroot_add_resolv_conf() { - local chrootdir=$1 resolv_conf=$1/etc/resolv.conf - - [[ -e /etc/resolv.conf ]] || return 0 - - # Handle resolv.conf as a symlink to somewhere else. - if [[ -L $chrootdir/etc/resolv.conf ]]; then - # readlink(1) should always give us *something* since we know at this point - # it's a symlink. For simplicity, ignore the case of nested symlinks. - resolv_conf=$(readlink "$chrootdir/etc/resolv.conf") - if [[ $resolv_conf = /* ]]; then - resolv_conf=$chrootdir$resolv_conf - else - resolv_conf=$chrootdir/etc/$resolv_conf - fi - - # ensure file exists to bind mount over - if [[ ! -f $resolv_conf ]]; then - install -Dm644 /dev/null "$resolv_conf" || return 1 - fi - elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then - # The chroot might not have a resolv.conf. - return 0 - fi - - chroot_mount /etc/resolv.conf "$resolv_conf" --bind -} - -chroot_mount_conditional() { - local cond=$1; shift - if eval "$cond"; then - chroot_mount "$@" - fi -} - -chroot_setup(){ - local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755' - $os && args='--bind' - chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind && - chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev && - chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro && - ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \ - efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && - chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid && - chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && - chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && - chroot_mount /run "$mnt/run" ${args} && - chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid -} - -chroot_api_mount() { - CHROOT_ACTIVE_MOUNTS=() - trap_setup chroot_api_umount - chroot_setup "$1" false -} - -chroot_api_umount() { - if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then -# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_MOUNTS[@]}" - fi - unset CHROOT_ACTIVE_MOUNTS -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - - -#{{{ functions - -copy_mirrorlist(){ - cp -a /etc/pacman.d/mirrorlist "$1/etc/pacman.d/" -} - -copy_keyring(){ - if [[ -d /etc/pacman.d/gnupg ]] && [[ ! -d $1/etc/pacman.d/gnupg ]]; then - cp -a /etc/pacman.d/gnupg "$1/etc/pacman.d/" - fi -} - -create_min_fs(){ - msg "Creating install root at %s" "$1" - mkdir -m 0755 -p "$1"/var/{cache/pacman/pkg,lib/pacman,log} "$1"/{dev,run,etc/pacman.d} - mkdir -m 1777 -p "$1"/tmp - mkdir -m 0555 -p "$1"/{sys,proc} -} - -#}}} - -newroot=/mnt - -hostcache=0 -copykeyring=1 -copymirrorlist=1 -pacmode=-Sy - -usage() { - echo "usage: ${0##*/} [options] root [packages...]" - echo " -C Use an alternate config file for pacman" - echo " -c Use the package cache on the host, rather than the target" - echo " -G Avoid copying the host's pacman keyring to the target" - echo " -i Avoid auto-confirmation of package selections" - echo " -M Avoid copying the host's mirrorlist to the target" - echo ' -U Use pacman -U to install packages' - echo " -h Print this help message" - echo '' - echo ' basestrap installs packages to the specified new root directory.' - echo ' If no packages are given, basestrap defaults to the "base" group.' - echo '' - echo '' - exit "$1" -} - -opts=':C:cGiMU' - -while getopts ${opts} arg; do - case "${arg}" in - C) pacman_conf=$OPTARG ;; - c) hostcache=1 ;; - i) interactive=1 ;; - G) copykeyring=0 ;; - M) copymirrorlist=0 ;; - U) pacmode=-U ;; - :) echo "invalid argument ${arg}:$OPTARG"; usage 1;; - ?) usage 0 ;; - esac -done -shift $(( OPTIND - 1 )) - -check_root - -(( $# )) || die "No root directory specified" -newroot=$1; shift -pacman_args=("${@:-base}") - -if (( ! hostcache ));then - pacman_args+=(--cachedir="$newroot/var/cache/pacman/pkg") -fi - -if (( ! interactive )); then - pacman_args+=(--noconfirm) -fi - -[[ -n $pacman_conf ]] && pacman_args+=(--config="$pacman_conf") - -[[ -d $newroot ]] || die "%s is not a directory" "$newroot" - -# create obligatory directories -create_min_fs "$newroot" - -# mount API filesystems -chroot_api_mount "$newroot" || die "failed to setup API filesystems in new root" - -if (( copykeyring ));then - copy_keyring "$newroot" -fi - -msg2 'Installing packages to %s' "$newroot" -if ! unshare --fork --pid pacman -r "$newroot" $pacmode "${pacman_args[@]}"; then - die 'Failed to install packages to new root' -fi - - -if (( copymirrorlist ));then - copy_mirrorlist "$newroot" -fi diff --git a/artools/0.26.1/artools/bin/base/basestrap.in b/artools/0.26.1/artools/bin/base/basestrap.in deleted file mode 100644 index b2259bc..0000000 --- a/artools/0.26.1/artools/bin/base/basestrap.in +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# -# Assumptions: -# 1) User has partitioned, formatted, and mounted partitions on /mnt -# 2) Network is functional -# 3) Arguments passed to the script are valid pacman targets -# 4) A valid mirror appears in /etc/pacman.d/mirrorlist -# - -shopt -s extglob - -m4_include(lib/base/message.sh) -m4_include(lib/base/mount.sh) -m4_include(lib/base/chroot.sh) - -#{{{ functions - -copy_mirrorlist(){ - cp -a /etc/pacman.d/mirrorlist "$1/etc/pacman.d/" -} - -copy_keyring(){ - if [[ -d /etc/pacman.d/gnupg ]] && [[ ! -d $1/etc/pacman.d/gnupg ]]; then - cp -a /etc/pacman.d/gnupg "$1/etc/pacman.d/" - fi -} - -create_min_fs(){ - msg "Creating install root at %s" "$1" - mkdir -m 0755 -p "$1"/var/{cache/pacman/pkg,lib/pacman,log} "$1"/{dev,run,etc/pacman.d} - mkdir -m 1777 -p "$1"/tmp - mkdir -m 0555 -p "$1"/{sys,proc} -} - -#}}} - -newroot=/mnt - -hostcache=0 -copykeyring=1 -copymirrorlist=1 -pacmode=-Sy - -usage() { - echo "usage: ${0##*/} [options] root [packages...]" - echo " -C Use an alternate config file for pacman" - echo " -c Use the package cache on the host, rather than the target" - echo " -G Avoid copying the host's pacman keyring to the target" - echo " -i Avoid auto-confirmation of package selections" - echo " -M Avoid copying the host's mirrorlist to the target" - echo ' -U Use pacman -U to install packages' - echo " -h Print this help message" - echo '' - echo ' basestrap installs packages to the specified new root directory.' - echo ' If no packages are given, basestrap defaults to the "base" group.' - echo '' - echo '' - exit "$1" -} - -opts=':C:cGiMU' - -while getopts ${opts} arg; do - case "${arg}" in - C) pacman_conf=$OPTARG ;; - c) hostcache=1 ;; - i) interactive=1 ;; - G) copykeyring=0 ;; - M) copymirrorlist=0 ;; - U) pacmode=-U ;; - :) echo "invalid argument ${arg}:$OPTARG"; usage 1;; - ?) usage 0 ;; - esac -done -shift $(( OPTIND - 1 )) - -check_root - -(( $# )) || die "No root directory specified" -newroot=$1; shift -pacman_args=("${@:-base}") - -if (( ! hostcache ));then - pacman_args+=(--cachedir="$newroot/var/cache/pacman/pkg") -fi - -if (( ! interactive )); then - pacman_args+=(--noconfirm) -fi - -[[ -n $pacman_conf ]] && pacman_args+=(--config="$pacman_conf") - -[[ -d $newroot ]] || die "%s is not a directory" "$newroot" - -# create obligatory directories -create_min_fs "$newroot" - -# mount API filesystems -chroot_api_mount "$newroot" || die "failed to setup API filesystems in new root" - -if (( copykeyring ));then - copy_keyring "$newroot" -fi - -msg2 'Installing packages to %s' "$newroot" -if ! unshare --fork --pid pacman -r "$newroot" $pacmode "${pacman_args[@]}"; then - die 'Failed to install packages to new root' -fi - - -if (( copymirrorlist ));then - copy_mirrorlist "$newroot" -fi diff --git a/artools/0.26.1/artools/bin/base/chroot-run b/artools/0.26.1/artools/bin/base/chroot-run deleted file mode 100755 index 3438224..0000000 --- a/artools/0.26.1/artools/bin/base/chroot-run +++ /dev/null @@ -1,414 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ mount - -ignore_error() { - "$@" 2>/dev/null - return 0 -} - -trap_setup(){ - [[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap' - trap "$1" EXIT -} - -chroot_mount() { -# msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") -} - -chroot_add_resolv_conf() { - local chrootdir=$1 resolv_conf=$1/etc/resolv.conf - - [[ -e /etc/resolv.conf ]] || return 0 - - # Handle resolv.conf as a symlink to somewhere else. - if [[ -L $chrootdir/etc/resolv.conf ]]; then - # readlink(1) should always give us *something* since we know at this point - # it's a symlink. For simplicity, ignore the case of nested symlinks. - resolv_conf=$(readlink "$chrootdir/etc/resolv.conf") - if [[ $resolv_conf = /* ]]; then - resolv_conf=$chrootdir$resolv_conf - else - resolv_conf=$chrootdir/etc/$resolv_conf - fi - - # ensure file exists to bind mount over - if [[ ! -f $resolv_conf ]]; then - install -Dm644 /dev/null "$resolv_conf" || return 1 - fi - elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then - # The chroot might not have a resolv.conf. - return 0 - fi - - chroot_mount /etc/resolv.conf "$resolv_conf" --bind -} - -chroot_mount_conditional() { - local cond=$1; shift - if eval "$cond"; then - chroot_mount "$@" - fi -} - -chroot_setup(){ - local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755' - $os && args='--bind' - chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind && - chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev && - chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro && - ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \ - efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && - chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid && - chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && - chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && - chroot_mount /run "$mnt/run" ${args} && - chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid -} - -chroot_api_mount() { - CHROOT_ACTIVE_MOUNTS=() - trap_setup chroot_api_umount - chroot_setup "$1" false -} - -chroot_api_umount() { - if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then -# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_MOUNTS[@]}" - fi - unset CHROOT_ACTIVE_MOUNTS -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -CHROOTVERSION=0.10 - - -# $1: chroot -kill_chroot_process(){ - local prefix="$1" flink pid name - for root_dir in /proc/*/root; do - flink=$(readlink "$root_dir") - if [ "x$flink" != "x" ]; then - if [ "x${flink:0:${#prefix}}" = "x$prefix" ]; then - # this process is in the chroot... - pid=$(basename "$(dirname "$root_dir")") - name=$(ps -p "$pid" -o comm=) - msg2 "Killing chroot process: %s (%s)" "$name" "$pid" - kill -9 "$pid" - fi - fi - done - sleep 1 -} - -# umask might have been changed in /etc/profile -# ensure that sane default is set again -umask 0022 - -working_dir='' -files=() - -mount_args=("-B:/etc/hosts:/etc/hosts") - -usage() { - echo "Usage: ${0##*/} [options] working-dir [run arguments]" - echo "A wrapper around chroot. Provides support for pacman." - echo - echo ' options:' - echo ' -C Location of a pacman config file' - echo ' -M Location of a makepkg config file' - echo ' -c Set pacman cache' - echo ' -f Copy file from the host to the chroot' - echo ' -s Do not run setarch' - echo ' -b Bind mountargs' - echo ' List format [mntarg1:src1:dest1 ... mntargN:srcN:destN]' - echo ' -h This message' - exit 1 -} - -opts='hC:M:c:b:f:s' - -while getopts ${opts} arg; do - case "${arg}" in - C) pacman_conf="$OPTARG" ;; - M) makepkg_conf="$OPTARG" ;; - c) cache_dirs+=("$OPTARG") ;; - f) files+=("$OPTARG") ;; - s) nosetarch=1 ;; - b) bindmounts+=("$OPTARG"); mount_args+=(${bindmounts[@]}) ;; - h|?) usage ;; - *) error "invalid argument '$arg'"; usage ;; - esac -done -shift $(( OPTIND - 1 )) - -(( $# < 1 )) && die 'You must specify a directory.' - -check_root - -working_dir=$(readlink -f "$1") -shift 1 - -[[ -z $working_dir ]] && die 'Please specify a working directory.' - -if (( ${#cache_dirs[@]} == 0 )); then - mapfile -t cache_dirs < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" CacheDir) -fi - -# shellcheck disable=2016 -host_mirrors=($(pacman-conf --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#')) - -for host_mirror in "${host_mirrors[@]}"; do - if [[ $host_mirror == *file://* ]]; then - # shellcheck disable=2016 - host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g') - in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror") - fi -done - -while read -r line; do - # shellcheck disable=2016 - mapfile -t lines < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" \ - --repo "$line" Server | sed -r 's#(.*/)[^/]+/os/.+#\1#') - for line in "${lines[@]}"; do - if [[ $line = file://* ]]; then - line=${line#file://} - in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line") - fi - done -done < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" --repo-list) - -copy_hostconf () { - unshare --fork --pid gpg --homedir "$working_dir"/etc/pacman.d/gnupg/ --no-permission-warning --quiet --batch --import --import-options import-local-sigs "$(pacman-conf GpgDir)"/pubring.gpg >/dev/null 2>&1 - pacman-key --gpgdir "$working_dir"/etc/pacman.d/gnupg/ --import-trustdb "$(pacman-conf GpgDir)" >/dev/null 2>&1 - - printf 'Server = %s\n' "${host_mirrors[@]}" >"$working_dir/etc/pacman.d/mirrorlist" - - [[ -n $pacman_conf ]] && cp "$pacman_conf" "${working_dir}/etc/pacman.conf" - - [[ -n $makepkg_conf ]] && cp "$makepkg_conf" "${working_dir}/etc/makepkg.conf" - - local file - for file in "${files[@]}"; do - mkdir -p "$(dirname "$working_dir$file")" - cp -T "$file" "$working_dir$file" - done - - sed -r "s|^#?\\s*CacheDir.+|CacheDir = ${cache_dirs[*]}|g" -i "${working_dir}/etc/pacman.conf" -} - -mount_args+=("-B:${cache_dirs[0]//:/\\:}:${cache_dirs[0]//:/\\:}") - -for cache_dir in "${cache_dirs[@]:1}"; do - mount_args+=("-Br:${cache_dir//:/\\:}:${cache_dir//:/\\:}") -done - -chroot_extra_mount() { - chroot_add_resolv_conf "${working_dir}" - - for arg in "${mount_args[@]}"; do - local flag=${arg%%:*} dest=${arg##*:} src=${arg%:*} - src=${src#*:} - chroot_mount "${src}" "${working_dir}${dest}" "${flag}" - done -} - -umask 0022 - -# Sanity check -if [[ ! -f "$working_dir/.artools" ]]; then - die "'%s' does not appear to be an artix chroot." "$working_dir" -elif [[ $(cat "$working_dir/.artools") != "${CHROOTVERSION}" ]]; then - die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}" -fi - -chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" - -chroot_extra_mount - -copy_hostconf - -eval "$(grep '^CARCH=' "$working_dir/etc/makepkg.conf")" - -[[ -z $nosetarch ]] || unset CARCH - -if [[ -f "/usr/share/artools/setarch-aliases.d/${CARCH}" ]]; then - read -r set_arch < "/usr/share/artools/setarch-aliases.d/${CARCH}" -else - set_arch="${CARCH}" -fi - -${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "$@" - -ret=$? - -kill_chroot_process "${working_dir}" - -exit $ret diff --git a/artools/0.26.1/artools/bin/base/chroot-run.in b/artools/0.26.1/artools/bin/base/chroot-run.in deleted file mode 100644 index fcd912d..0000000 --- a/artools/0.26.1/artools/bin/base/chroot-run.in +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) -m4_include(lib/base/mount.sh) -m4_include(lib/base/chroot.sh) -m4_include(lib/base/chroot-version.sh) - -# $1: chroot -kill_chroot_process(){ - local prefix="$1" flink pid name - for root_dir in /proc/*/root; do - flink=$(readlink "$root_dir") - if [ "x$flink" != "x" ]; then - if [ "x${flink:0:${#prefix}}" = "x$prefix" ]; then - # this process is in the chroot... - pid=$(basename "$(dirname "$root_dir")") - name=$(ps -p "$pid" -o comm=) - msg2 "Killing chroot process: %s (%s)" "$name" "$pid" - kill -9 "$pid" - fi - fi - done - sleep 1 -} - -# umask might have been changed in /etc/profile -# ensure that sane default is set again -umask 0022 - -working_dir='' -files=() - -mount_args=("-B:/etc/hosts:/etc/hosts") - -usage() { - echo "Usage: ${0##*/} [options] working-dir [run arguments]" - echo "A wrapper around chroot. Provides support for pacman." - echo - echo ' options:' - echo ' -C Location of a pacman config file' - echo ' -M Location of a makepkg config file' - echo ' -c Set pacman cache' - echo ' -f Copy file from the host to the chroot' - echo ' -s Do not run setarch' - echo ' -b Bind mountargs' - echo ' List format [mntarg1:src1:dest1 ... mntargN:srcN:destN]' - echo ' -h This message' - exit 1 -} - -opts='hC:M:c:b:f:s' - -while getopts ${opts} arg; do - case "${arg}" in - C) pacman_conf="$OPTARG" ;; - M) makepkg_conf="$OPTARG" ;; - c) cache_dirs+=("$OPTARG") ;; - f) files+=("$OPTARG") ;; - s) nosetarch=1 ;; - b) bindmounts+=("$OPTARG"); mount_args+=(${bindmounts[@]}) ;; - h|?) usage ;; - *) error "invalid argument '$arg'"; usage ;; - esac -done -shift $(( OPTIND - 1 )) - -(( $# < 1 )) && die 'You must specify a directory.' - -check_root - -working_dir=$(readlink -f "$1") -shift 1 - -[[ -z $working_dir ]] && die 'Please specify a working directory.' - -if (( ${#cache_dirs[@]} == 0 )); then - mapfile -t cache_dirs < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" CacheDir) -fi - -# shellcheck disable=2016 -host_mirrors=($(pacman-conf --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#')) - -for host_mirror in "${host_mirrors[@]}"; do - if [[ $host_mirror == *file://* ]]; then - # shellcheck disable=2016 - host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g') - in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror") - fi -done - -while read -r line; do - # shellcheck disable=2016 - mapfile -t lines < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" \ - --repo "$line" Server | sed -r 's#(.*/)[^/]+/os/.+#\1#') - for line in "${lines[@]}"; do - if [[ $line = file://* ]]; then - line=${line#file://} - in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line") - fi - done -done < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" --repo-list) - -copy_hostconf () { - unshare --fork --pid gpg --homedir "$working_dir"/etc/pacman.d/gnupg/ --no-permission-warning --quiet --batch --import --import-options import-local-sigs "$(pacman-conf GpgDir)"/pubring.gpg >/dev/null 2>&1 - pacman-key --gpgdir "$working_dir"/etc/pacman.d/gnupg/ --import-trustdb "$(pacman-conf GpgDir)" >/dev/null 2>&1 - - printf 'Server = %s\n' "${host_mirrors[@]}" >"$working_dir/etc/pacman.d/mirrorlist" - - [[ -n $pacman_conf ]] && cp "$pacman_conf" "${working_dir}/etc/pacman.conf" - - [[ -n $makepkg_conf ]] && cp "$makepkg_conf" "${working_dir}/etc/makepkg.conf" - - local file - for file in "${files[@]}"; do - mkdir -p "$(dirname "$working_dir$file")" - cp -T "$file" "$working_dir$file" - done - - sed -r "s|^#?\\s*CacheDir.+|CacheDir = ${cache_dirs[*]}|g" -i "${working_dir}/etc/pacman.conf" -} - -mount_args+=("-B:${cache_dirs[0]//:/\\:}:${cache_dirs[0]//:/\\:}") - -for cache_dir in "${cache_dirs[@]:1}"; do - mount_args+=("-Br:${cache_dir//:/\\:}:${cache_dir//:/\\:}") -done - -chroot_extra_mount() { - chroot_add_resolv_conf "${working_dir}" - - for arg in "${mount_args[@]}"; do - local flag=${arg%%:*} dest=${arg##*:} src=${arg%:*} - src=${src#*:} - chroot_mount "${src}" "${working_dir}${dest}" "${flag}" - done -} - -umask 0022 - -# Sanity check -if [[ ! -f "$working_dir/.artools" ]]; then - die "'%s' does not appear to be an artix chroot." "$working_dir" -elif [[ $(cat "$working_dir/.artools") != "${CHROOTVERSION}" ]]; then - die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}" -fi - -chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" - -chroot_extra_mount - -copy_hostconf - -eval "$(grep '^CARCH=' "$working_dir/etc/makepkg.conf")" - -[[ -z $nosetarch ]] || unset CARCH - -if [[ -f "@datadir@/artools/setarch-aliases.d/${CARCH}" ]]; then - read -r set_arch < "@datadir@/artools/setarch-aliases.d/${CARCH}" -else - set_arch="${CARCH}" -fi - -${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "$@" - -ret=$? - -kill_chroot_process "${working_dir}" - -exit $ret diff --git a/artools/0.26.1/artools/bin/base/fstabgen b/artools/0.26.1/artools/bin/base/fstabgen deleted file mode 100755 index 0bff558..0000000 --- a/artools/0.26.1/artools/bin/base/fstabgen +++ /dev/null @@ -1,529 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -shopt -s extglob - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -#{{{ filesystems - -declare -A pseudofs_types=([anon_inodefs]=1 - [autofs]=1 - [bdev]=1 - [bpf]=1 - [binfmt_misc]=1 - [cgroup]=1 - [cgroup2]=1 - [configfs]=1 - [cpuset]=1 - [debugfs]=1 - [devfs]=1 - [devpts]=1 - [devtmpfs]=1 - [dlmfs]=1 - [efivarfs]=1 - [fuse.gvfs-fuse-daemon]=1 - [fusectl]=1 - [hugetlbfs]=1 - [mqueue]=1 - [nfsd]=1 - [none]=1 - [pipefs]=1 - [proc]=1 - [pstore]=1 - [ramfs]=1 - [rootfs]=1 - [rpc_pipefs]=1 - [securityfs]=1 - [sockfs]=1 - [spufs]=1 - [sysfs]=1 - [tmpfs]=1) - -declare -A fsck_types=([cramfs]=1 - [exfat]=1 - [ext2]=1 - [ext3]=1 - [ext4]=1 - [ext4dev]=1 - [jfs]=1 - [minix]=1 - [msdos]=1 - [reiserfs]=1 - [vfat]=1 - [xfs]=1) - -#}}} - -#{{{ functions - -fstype_is_pseudofs() { - (( pseudofs_types["$1"] )) -} - -fstype_has_fsck() { - (( fsck_types["$1"] )) -} - -valid_number_of_base() { - local base=$1 len=${#2} i - - for (( i = 0; i < len; i++ )); do - { _=$(( $base#${2:i:1} )) || return 1; } 2>/dev/null - done - - return 0 -} - -mangle() { - local i chr out - - local {a..f}= {A..F}= - - for (( i = 0; i < ${#1}; i++ )); do - chr=${1:i:1} - case $chr in - [[:space:]\\]) - printf -v chr '%03o' "'$chr" - out+=\\ - ;; - esac - out+=$chr - done - - printf '%s' "$out" -} - -unmangle() { - local i chr out len=$(( ${#1} - 4 )) - - local {a..f}= {A..F}= - - for (( i = 0; i < len; i++ )); do - chr=${1:i:1} - case $chr in - \\) - if valid_number_of_base 8 "${1:i+1:3}" || - valid_number_of_base 16 "${1:i+1:3}"; then - printf -v chr '%b' "${1:i:4}" - (( i += 3 )) - fi - ;; - esac - out+=$chr - done - - printf '%s' "$out${1:i}" -} - -dm_name_for_devnode() { - read -r dm_name <"/sys/class/block/${1#/dev/}/dm/name" - if [[ $dm_name ]]; then - printf '/dev/mapper/%s' "$dm_name" - else - # don't leave the caller hanging, just print the original name - # along with the failure. - print '%s' "$1" - error 'Failed to resolve device mapper name for: %s' "$1" - fi -} - -optstring_match_option() { - local candidate pat patterns - - IFS=, read -ra patterns <<<"$1" - for pat in "${patterns[@]}"; do - if [[ $pat = *=* ]]; then - # "key=val" will only ever match "key=val" - candidate=$2 - else - # "key" will match "key", but also "key=anyval" - candidate=${2%%=*} - fi - - [[ $pat = "$candidate" ]] && return 0 - done - - return 1 -} - -optstring_remove_option() { - local o options_ remove=$2 IFS=, - - read -ra options_ <<<"${!1}" - - for o in "${!options_[@]}"; do - optstring_match_option "$remove" "${options_[o]}" && unset 'options_[o]' - done - - declare -g "$1=${options_[*]}" -} - -optstring_normalize() { - local o options_ norm IFS=, - - read -ra options_ <<<"${!1}" - - # remove empty fields - for o in "${options_[@]}"; do - [[ $o ]] && norm+=("$o") - done - - # avoid empty strings, reset to "defaults" - declare -g "$1=${norm[*]:-defaults}" -} - -optstring_append_option() { - if ! optstring_has_option "$1" "$2"; then - declare -g "$1=${!1},$2" - fi - - optstring_normalize "$1" -} - -optstring_prepend_option() { - if ! optstring_has_option "$1" "$2"; then - declare -g "$1=$2,${!1}" - fi - - optstring_normalize "$1" -} - -optstring_get_option() { - local opts o - - IFS=, read -ra opts <<<"${!1}" - for o in "${opts[@]}"; do - if optstring_match_option "$2" "$o"; then - declare -g "$o" - return 0 - fi - done - - return 1 -} - -optstring_has_option() { - local "${2%%=*}" - - optstring_get_option "$1" "$2" -} - -write_source() { - local src=$1 spec label uuid comment=() - - label=$(lsblk -rno LABEL "$1" 2>/dev/null) - uuid=$(lsblk -rno UUID "$1" 2>/dev/null) - - # bind mounts do not have a UUID! - - case $bytag in - '') - [[ $uuid ]] && comment=("UUID=$uuid") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - ;; - LABEL) - spec=$label - [[ $uuid ]] && comment=("$src" "UUID=$uuid") - ;; - UUID) - spec=$uuid - comment=("$src") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - ;; - *) - [[ $uuid ]] && comment=("$1" "UUID=$uuid") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - [[ $bytag ]] && spec=$(lsblk -rno "$bytag" "$1" 2>/dev/null) - ;; - esac - - [[ -n "${comment[*]}" ]] && printf '# %s\n' "${comment[*]}" - - if [[ $spec ]]; then - printf '%-20s' "$bytag=$(mangle "$spec")" - else - printf '%-20s' "$(mangle "$src")" - fi -} - -optstring_apply_quirks() { - local varname="$1" fstype="$2" - - # SELinux displays a 'seclabel' option in /proc/self/mountinfo. We can't know - # if the system we're generating the fstab for has any support for SELinux (as - # one might install Arch from a Fedora environment), so let's remove it. - optstring_remove_option "$varname" seclabel - - # Prune 'relatime' option for any pseudofs. This seems to be a rampant - # default which the kernel often exports even if the underlying filesystem - # doesn't support it. Example: https://bugs.archlinux.org/task/54554. - if awk -v fstype="$fstype" '$1 == fstype { exit 1 }' /proc/filesystems; then - optstring_remove_option "$varname" relatime - fi - - case $fstype in - f2fs) - # These are Kconfig options for f2fs. Kernels supporting the options will - # only provide the negative versions of these (e.g. noacl), and vice versa - # for kernels without support. - optstring_remove_option "$varname" noacl,acl,nouser_xattr,user_xattr - ;; - vfat) - # Before Linux v3.8, "cp" is prepended to the value of the codepage. - if optstring_get_option "$varname" codepage && [[ "$codepage" = cp* ]]; then - optstring_remove_option "$varname" codepage - optstring_append_option "$varname" "codepage=${codepage#cp}" - fi - ;; - esac -} - -#}}} - -usage() { - cat </dev/null; then - # this is root. we can't possibly have more than one... - pass=1 foundroot=1 - fi - - # if there's no fsck tool available, then only pass=0 makes sense. - if ! fstype_has_fsck "$fstype"; then - pass=0 - fi - - if [[ $fsroot != / && $fstype != btrfs ]]; then - # it's a bind mount - src=$(findmnt -funcevo TARGET "$src")$fsroot - if [[ $src -ef $target ]]; then - # hrmm, this is weird. we're probably looking at a file or directory - # that was bound into a chroot from the host machine. Ignore it, - # because this won't actually be a valid mount. Worst case, the user - # just re-adds it. - continue - fi - fstype=none - opts+=,bind - pass=0 - fi - - # filesystem quirks - case $fstype in - fuseblk) - # well-behaved FUSE filesystems will report themselves as fuse.$fstype. - # this is probably NTFS-3g, but let's just make sure. - if ! newtype=$(lsblk -no FSTYPE "$src") || [[ -z $newtype ]]; then - # avoid blanking out fstype, leading to an invalid fstab - error 'Failed to derive real filesystem type for FUSE device on %s' "$target" - else - fstype=$newtype - fi - ;; - esac - - optstring_apply_quirks "opts" "$fstype" - - # write one line - write_source "$src" - printf '\t%-10s' "/$(mangle "${target#/}")" "$fstype" "$opts" - printf '\t%s %s' "$dump" "$pass" - printf '\n\n' -done - -# handle swaps devices -{ - # ignore header - read -r - - while read -r device type _ _ prio; do - options=defaults - if (( prio >= 0 )); then - options+=,pri=$prio - fi - - # skip files marked deleted by the kernel - [[ $device = *'\040(deleted)' ]] && continue - - if [[ $type = file ]]; then - printf '%-20s' "${device#${root%/}}" - elif [[ $device = /dev/dm-+([0-9]) ]]; then - # device mapper doesn't allow characters we need to worry - # about being mangled, and it does the escaping of dashes - # for us in sysfs. - write_source "$(dm_name_for_devnode "$device")" - else - write_source "$(unmangle "$device")" - fi - - printf '\t%-10s\t%-10s\t%-10s\t0 0\n\n' 'none' 'swap' "$options" - done -} /dev/null - done - - return 0 -} - -mangle() { - local i chr out - - local {a..f}= {A..F}= - - for (( i = 0; i < ${#1}; i++ )); do - chr=${1:i:1} - case $chr in - [[:space:]\\]) - printf -v chr '%03o' "'$chr" - out+=\\ - ;; - esac - out+=$chr - done - - printf '%s' "$out" -} - -unmangle() { - local i chr out len=$(( ${#1} - 4 )) - - local {a..f}= {A..F}= - - for (( i = 0; i < len; i++ )); do - chr=${1:i:1} - case $chr in - \\) - if valid_number_of_base 8 "${1:i+1:3}" || - valid_number_of_base 16 "${1:i+1:3}"; then - printf -v chr '%b' "${1:i:4}" - (( i += 3 )) - fi - ;; - esac - out+=$chr - done - - printf '%s' "$out${1:i}" -} - -dm_name_for_devnode() { - read -r dm_name <"/sys/class/block/${1#/dev/}/dm/name" - if [[ $dm_name ]]; then - printf '/dev/mapper/%s' "$dm_name" - else - # don't leave the caller hanging, just print the original name - # along with the failure. - print '%s' "$1" - error 'Failed to resolve device mapper name for: %s' "$1" - fi -} - -optstring_match_option() { - local candidate pat patterns - - IFS=, read -ra patterns <<<"$1" - for pat in "${patterns[@]}"; do - if [[ $pat = *=* ]]; then - # "key=val" will only ever match "key=val" - candidate=$2 - else - # "key" will match "key", but also "key=anyval" - candidate=${2%%=*} - fi - - [[ $pat = "$candidate" ]] && return 0 - done - - return 1 -} - -optstring_remove_option() { - local o options_ remove=$2 IFS=, - - read -ra options_ <<<"${!1}" - - for o in "${!options_[@]}"; do - optstring_match_option "$remove" "${options_[o]}" && unset 'options_[o]' - done - - declare -g "$1=${options_[*]}" -} - -optstring_normalize() { - local o options_ norm IFS=, - - read -ra options_ <<<"${!1}" - - # remove empty fields - for o in "${options_[@]}"; do - [[ $o ]] && norm+=("$o") - done - - # avoid empty strings, reset to "defaults" - declare -g "$1=${norm[*]:-defaults}" -} - -optstring_append_option() { - if ! optstring_has_option "$1" "$2"; then - declare -g "$1=${!1},$2" - fi - - optstring_normalize "$1" -} - -optstring_prepend_option() { - if ! optstring_has_option "$1" "$2"; then - declare -g "$1=$2,${!1}" - fi - - optstring_normalize "$1" -} - -optstring_get_option() { - local opts o - - IFS=, read -ra opts <<<"${!1}" - for o in "${opts[@]}"; do - if optstring_match_option "$2" "$o"; then - declare -g "$o" - return 0 - fi - done - - return 1 -} - -optstring_has_option() { - local "${2%%=*}" - - optstring_get_option "$1" "$2" -} - -write_source() { - local src=$1 spec label uuid comment=() - - label=$(lsblk -rno LABEL "$1" 2>/dev/null) - uuid=$(lsblk -rno UUID "$1" 2>/dev/null) - - # bind mounts do not have a UUID! - - case $bytag in - '') - [[ $uuid ]] && comment=("UUID=$uuid") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - ;; - LABEL) - spec=$label - [[ $uuid ]] && comment=("$src" "UUID=$uuid") - ;; - UUID) - spec=$uuid - comment=("$src") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - ;; - *) - [[ $uuid ]] && comment=("$1" "UUID=$uuid") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - [[ $bytag ]] && spec=$(lsblk -rno "$bytag" "$1" 2>/dev/null) - ;; - esac - - [[ -n "${comment[*]}" ]] && printf '# %s\n' "${comment[*]}" - - if [[ $spec ]]; then - printf '%-20s' "$bytag=$(mangle "$spec")" - else - printf '%-20s' "$(mangle "$src")" - fi -} - -optstring_apply_quirks() { - local varname="$1" fstype="$2" - - # SELinux displays a 'seclabel' option in /proc/self/mountinfo. We can't know - # if the system we're generating the fstab for has any support for SELinux (as - # one might install Arch from a Fedora environment), so let's remove it. - optstring_remove_option "$varname" seclabel - - # Prune 'relatime' option for any pseudofs. This seems to be a rampant - # default which the kernel often exports even if the underlying filesystem - # doesn't support it. Example: https://bugs.archlinux.org/task/54554. - if awk -v fstype="$fstype" '$1 == fstype { exit 1 }' /proc/filesystems; then - optstring_remove_option "$varname" relatime - fi - - case $fstype in - f2fs) - # These are Kconfig options for f2fs. Kernels supporting the options will - # only provide the negative versions of these (e.g. noacl), and vice versa - # for kernels without support. - optstring_remove_option "$varname" noacl,acl,nouser_xattr,user_xattr - ;; - vfat) - # Before Linux v3.8, "cp" is prepended to the value of the codepage. - if optstring_get_option "$varname" codepage && [[ "$codepage" = cp* ]]; then - optstring_remove_option "$varname" codepage - optstring_append_option "$varname" "codepage=${codepage#cp}" - fi - ;; - esac -} - -#}}} - -usage() { - cat </dev/null; then - # this is root. we can't possibly have more than one... - pass=1 foundroot=1 - fi - - # if there's no fsck tool available, then only pass=0 makes sense. - if ! fstype_has_fsck "$fstype"; then - pass=0 - fi - - if [[ $fsroot != / && $fstype != btrfs ]]; then - # it's a bind mount - src=$(findmnt -funcevo TARGET "$src")$fsroot - if [[ $src -ef $target ]]; then - # hrmm, this is weird. we're probably looking at a file or directory - # that was bound into a chroot from the host machine. Ignore it, - # because this won't actually be a valid mount. Worst case, the user - # just re-adds it. - continue - fi - fstype=none - opts+=,bind - pass=0 - fi - - # filesystem quirks - case $fstype in - fuseblk) - # well-behaved FUSE filesystems will report themselves as fuse.$fstype. - # this is probably NTFS-3g, but let's just make sure. - if ! newtype=$(lsblk -no FSTYPE "$src") || [[ -z $newtype ]]; then - # avoid blanking out fstype, leading to an invalid fstab - error 'Failed to derive real filesystem type for FUSE device on %s' "$target" - else - fstype=$newtype - fi - ;; - esac - - optstring_apply_quirks "opts" "$fstype" - - # write one line - write_source "$src" - printf '\t%-10s' "/$(mangle "${target#/}")" "$fstype" "$opts" - printf '\t%s %s' "$dump" "$pass" - printf '\n\n' -done - -# handle swaps devices -{ - # ignore header - read -r - - while read -r device type _ _ prio; do - options=defaults - if (( prio >= 0 )); then - options+=,pri=$prio - fi - - # skip files marked deleted by the kernel - [[ $device = *'\040(deleted)' ]] && continue - - if [[ $type = file ]]; then - printf '%-20s' "${device#${root%/}}" - elif [[ $device = /dev/dm-+([0-9]) ]]; then - # device mapper doesn't allow characters we need to worry - # about being mangled, and it does the escaping of dashes - # for us in sysfs. - write_source "$(dm_name_for_devnode "$device")" - else - write_source "$(unmangle "$device")" - fi - - printf '\t%-10s\t%-10s\t%-10s\t0 0\n\n' 'none' 'swap' "$options" - done -} ${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -CHROOTVERSION=0.10 - - -working_dir='' -umode='' - -files=() -chroot_args=() - -usage() { - echo "Usage: ${0##*/} [options] working-dir package-list..." - echo ' options:' - echo ' -U Use pacman -U to install packages' - echo ' -C Location of a pacman config file' - echo ' -M Location of a makepkg config file' - echo ' -c Set pacman cache' - echo ' -f Copy file from the host to the chroot' - echo ' -s Do not run setarch' - echo ' -h This message' - exit 1 -} - -opts='hUC:M:c:f:s' - -while getopts ${opts} arg; do - case "${arg}" in - U) umode=U ;; - C) pacman_conf="$OPTARG" ;; - M) makepkg_conf="$OPTARG" ;; - c) cache_dir="$OPTARG" ;; - f) files+=("$OPTARG") ;; - s) nosetarch=1 ;; - h|?) usage ;; - *) error "invalid argument '%s'" "$arg"; usage ;; - esac - if [[ $arg != U ]]; then - chroot_args+=("-$arg") - [[ -v OPTARG ]] && chroot_args+=("$OPTARG") - fi -done -shift $(( OPTIND - 1 )) - -(( $# < 2 )) && die 'You must specify a directory and one or more packages.' - -check_root - -working_dir="$(readlink -f "$1")" -shift 1 - -[[ -z $working_dir ]] && die 'Please specify a working directory.' - -if (( ${#cache_dirs[@]} == 0 )); then - mapfile -t cache_dirs < <(pacman-conf CacheDir) -fi - -umask 0022 - -[[ -e $working_dir ]] && die "Working directory '%s' already exists" "$working_dir" - -mkdir -p "$working_dir" - -[[ ! -d $working_dir ]] && mkdir -p "$working_dir" - -lock 9 "${working_dir}.lock" "Locking chroot" - -if is_btrfs "$working_dir"; then - rmdir "$working_dir" - if ! btrfs subvolume create "$working_dir"; then - die "Couldn't create subvolume for '%s'" "$working_dir" - fi - chmod 0755 "$working_dir" -fi - -for f in "${files[@]}"; do - mkdir -p "$(dirname "$working_dir$f")" - cp "$f" "$working_dir$f" -done - -basestrap -${umode}Mc ${pacman_conf:+-C "$pacman_conf"} "$working_dir" \ - "${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages' - -printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$working_dir/etc/locale.gen" -echo 'LANG=en_US.UTF-8' > "$working_dir/etc/locale.conf" -# echo 'KEYMAP=en' > "$working_dir/etc/vconsole.conf" -echo "${CHROOTVERSION}" > "$working_dir/.artools" - -dbus-uuidgen --ensure="$working_dir"/etc/machine-id - -exec chroot-run \ - "${chroot_args[@]}" \ - "$working_dir" locale-gen diff --git a/artools/0.26.1/artools/bin/base/mkchroot.in b/artools/0.26.1/artools/bin/base/mkchroot.in deleted file mode 100644 index 3657e28..0000000 --- a/artools/0.26.1/artools/bin/base/mkchroot.in +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) -m4_include(lib/base/chroot.sh) -m4_include(lib/base/chroot-version.sh) - -working_dir='' -umode='' - -files=() -chroot_args=() - -usage() { - echo "Usage: ${0##*/} [options] working-dir package-list..." - echo ' options:' - echo ' -U Use pacman -U to install packages' - echo ' -C Location of a pacman config file' - echo ' -M Location of a makepkg config file' - echo ' -c Set pacman cache' - echo ' -f Copy file from the host to the chroot' - echo ' -s Do not run setarch' - echo ' -h This message' - exit 1 -} - -opts='hUC:M:c:f:s' - -while getopts ${opts} arg; do - case "${arg}" in - U) umode=U ;; - C) pacman_conf="$OPTARG" ;; - M) makepkg_conf="$OPTARG" ;; - c) cache_dir="$OPTARG" ;; - f) files+=("$OPTARG") ;; - s) nosetarch=1 ;; - h|?) usage ;; - *) error "invalid argument '%s'" "$arg"; usage ;; - esac - if [[ $arg != U ]]; then - chroot_args+=("-$arg") - [[ -v OPTARG ]] && chroot_args+=("$OPTARG") - fi -done -shift $(( OPTIND - 1 )) - -(( $# < 2 )) && die 'You must specify a directory and one or more packages.' - -check_root - -working_dir="$(readlink -f "$1")" -shift 1 - -[[ -z $working_dir ]] && die 'Please specify a working directory.' - -if (( ${#cache_dirs[@]} == 0 )); then - mapfile -t cache_dirs < <(pacman-conf CacheDir) -fi - -umask 0022 - -[[ -e $working_dir ]] && die "Working directory '%s' already exists" "$working_dir" - -mkdir -p "$working_dir" - -[[ ! -d $working_dir ]] && mkdir -p "$working_dir" - -lock 9 "${working_dir}.lock" "Locking chroot" - -if is_btrfs "$working_dir"; then - rmdir "$working_dir" - if ! btrfs subvolume create "$working_dir"; then - die "Couldn't create subvolume for '%s'" "$working_dir" - fi - chmod 0755 "$working_dir" -fi - -for f in "${files[@]}"; do - mkdir -p "$(dirname "$working_dir$f")" - cp "$f" "$working_dir$f" -done - -basestrap -${umode}Mc ${pacman_conf:+-C "$pacman_conf"} "$working_dir" \ - "${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages' - -printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$working_dir/etc/locale.gen" -echo 'LANG=en_US.UTF-8' > "$working_dir/etc/locale.conf" -# echo 'KEYMAP=en' > "$working_dir/etc/vconsole.conf" -echo "${CHROOTVERSION}" > "$working_dir/.artools" - -dbus-uuidgen --ensure="$working_dir"/etc/machine-id - -exec chroot-run \ - "${chroot_args[@]}" \ - "$working_dir" locale-gen diff --git a/artools/0.26.1/artools/bin/iso/buildiso b/artools/0.26.1/artools/bin/iso/buildiso deleted file mode 100755 index d6f34b7..0000000 --- a/artools/0.26.1/artools/bin/iso/buildiso +++ /dev/null @@ -1,1327 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ iso conf - -load_iso_config(){ - - local conf="$1/artools-iso.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-iso.conf - [[ -r "$conf" ]] && . "$conf" - - ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"} - - ISO_VERSION=${ISO_VERSION:-"$(date +%Y%m%d)"} - - INITSYS=${INITSYS:-'openrc'} - - GPG_KEY=${GPG_KEY:-''} - - COMPRESSION="${COMPRESSION:-zstd}" - - COMPRESSION_LEVEL="${COMPRESSION_LEVEL:-15}" - - if [[ -z "${COMPRESSION_ARGS[*]}" ]]; then - COMPRESSION_ARGS=(-Xcompression-level "${COMPRESSION_LEVEL}") - fi - - if [[ "${COMPRESSION}" == 'xz' ]]; then - COMPRESSION_ARGS=(-Xbcj x86) - fi - - return 0 -} - -#}}} - -load_iso_config "${USER_CONF_DIR}" || load_iso_config "${SYSCONFDIR}" - -prepare_dir "${ISO_POOL}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common - -get_makepkg_conf() { - makepkg_conf="${DATADIR}/makepkg.conf" - [[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf" -} - -get_pacman_conf() { - local repo="$1" - pacman_conf="${DATADIR}/pacman-${repo}.conf" - [[ -f "${USER_CONF_DIR}/pacman-${repo}.conf" ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf" -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -#{{{ mount - -track_img() { - msg2 "mount: [%s]" "$2" - mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}") -} - -mount_img() { - IMG_ACTIVE_MOUNTS=() - mkdir -p "$2" - track_img "$1" "$2" -} - -umount_img() { - if [[ -n "${IMG_ACTIVE_MOUNTS[*]}" ]];then - msg2 "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}" - umount "${IMG_ACTIVE_MOUNTS[@]}" - unset IMG_ACTIVE_MOUNTS - rm -r "$1" - fi -} - -track_fs() { - msg2 "overlayfs mount: [%s]" "$5" - mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}") -} - -mount_overlayfs(){ - FS_ACTIVE_MOUNTS=() - local lower upper="$1" work="$2" - mkdir -p "${mnt_dir}/work" - mkdir -p "$upper" - case $upper in - */livefs) lower="$work/rootfs" ;; - */bootfs) - lower="$work/rootfs" - [[ -d "$work/livefs" ]] && lower="$work/livefs:$work/rootfs" - ;; - esac - # shellcheck disable=2140 - track_fs -t overlay overlay -olowerdir="$lower",upperdir="$upper",workdir="${mnt_dir}/work" "$upper" -} - -umount_overlayfs(){ - if [[ -n "${FS_ACTIVE_MOUNTS[*]}" ]];then - msg2 "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}" - umount "${FS_ACTIVE_MOUNTS[@]}" - unset FS_ACTIVE_MOUNTS - rm -rf "${mnt_dir}/work" - fi -} - -#}}} - -#!/hint/bash - -#{{{ services - -add_svc_openrc(){ - local mnt="$1" names="$2" rlvl="${3:-default}" - for svc in $names; do - if [[ -f $mnt/etc/init.d/$svc ]];then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null - fi - done -} - -add_svc_runit(){ - local mnt="$1" names="$2" rlvl="${3:-default}" - for svc in $names; do - if [[ -d $mnt/etc/runit/sv/$svc ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null - fi - done -} - -add_svc_s6(){ - local mnt="$1" names="$2" rlvl="${3:-default}" error ret - local db=/etc/s6/rc/compiled - for svc in $names; do - error=false - chroot "$mnt" s6-rc-db -c "$db" type "$svc" &> /dev/null || error=true - ret="$?" - if [ $ret -eq 0 ] && [[ "$error" == false ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" s6-rc-bundle-update -c "$db" add "$rlvl" "$svc" - fi - done - - local rlvl=/etc/s6/current - # rebuild s6-linux-init binaries - chroot "$mnt" rm -r "$rlvl" - chroot "$mnt" s6-linux-init-maker -1 -N -f /etc/s6/skel -G "/usr/bin/agetty -L -8 tty7 115200" -c "$rlvl" "$rlvl" - chroot "$mnt" mv "$rlvl"/bin/init "$rlvl"/bin/s6-init - chroot "$mnt" cp -a "$rlvl"/bin /usr -} - -add_svc_suite66(){ - local mnt="$1" names="$2" - for svc in $names; do - if [[ -f "$mnt"/etc/66/service/"$svc" ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" 66-enable -t default "$svc" &>/dev/null - fi - done -} - -add_svc_dinit(){ - local mnt="$1" names="$2" - for svc in $names; do - if [[ -d $mnt/etc/dinit.d/boot.d ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" ln -s ../"$svc" /etc/dinit.d/boot.d/"$svc" &>/dev/null - fi - done -} - -#}}} - -#!/hint/bash - -#{{{ yaml - -write_yaml_header(){ - printf '%s' '---' -} - -write_empty_line(){ - printf '\n%s\n' ' ' -} - -write_yaml_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s%s: %s\n" '' "$key" "$val" -} - -write_yaml_seq(){ - local ident="$1" val="$2" - printf "\n%${ident}s- %s\n" '' "$val" -} - -write_yaml_seq_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s- %s: %s\n" '' "$key" "$val" -} - -#}}} - -#!/hint/bash - -#{{{ calamares - -write_services_conf(){ - local key1="$1" val1="$2" key2="$3" val2="$4" - local yaml - yaml=$(write_yaml_header) - yaml+=$(write_yaml_map 0 "$key1" "$val1") - yaml+=$(write_yaml_map 0 "$key2" "$val2") - yaml+=$(write_yaml_map 0 'services') - for svc in "${SERVICES[@]}"; do - yaml+=$(write_yaml_seq 2 "$svc") - done - yaml+=$(write_empty_line) - printf '%s' "${yaml}" -} - -write_services_openrc_conf(){ - local conf="$1"/services-openrc.conf - write_services_conf 'initdDir' '/etc/init.d' 'runlevelsDir' '/etc/runlevels' > "$conf" -} - -write_services_runit_conf(){ - local conf="$1"/services-runit.conf - write_services_conf 'svDir' '/etc/runit/sv' 'runsvDir' '/etc/runit/runsvdir' > "$conf" -} - -write_services_s6_conf(){ - local conf="$1"/services-s6.conf - write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$conf" -} - -write_services_suite66_conf(){ - local conf="$1"/services-suite66.conf - write_services_conf 'svDir' '/etc/66/service' 'runsvDir' '/var/lib/66/system' > "$conf" -} - -write_services_dinit_conf(){ - local conf="$1"/services-dinit.conf - write_services_conf 'initdDir' '/etc/dinit.d' 'runsvDir' '/etc/dinit.d/boot.d' > "$conf" -} - -configure_calamares(){ - local mods="$1/etc/calamares/modules" - if [[ -d "$mods" ]];then - msg2 "Configuring: Calamares" - write_services_"${INITSYS}"_conf "$mods" - sed -e "s|services-openrc|services-${INITSYS}|" \ - -i "$1"/etc/calamares/settings.conf - fi -} - -#}}} - -#!/hint/bash - -#{{{ session - -configure_services(){ - local mnt="$1" - add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]}" -} - - -write_live_session_conf(){ - local conf='' - conf+=$(printf '%s\n' '# live session configuration') - conf+=$(printf "\nAUTOLOGIN=%s\n" "${AUTOLOGIN}") - conf+=$(printf "\nPASSWORD=%s\n" "${PASSWORD}") - printf '%s' "$conf" -} - -configure_chroot(){ - local fs="$1" - msg "Configuring [%s]" "${fs##*/}" - configure_services "$fs" - configure_calamares "$fs" - [[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools" - msg2 "Writing: live.conf" - write_live_session_conf > "$fs/etc/artools/live.conf" - msg "Done configuring [%s]" "${fs##*/}" -} - -#}}} - -#!/hint/bash - -#{{{ firmware - -prepare_boot_extras(){ - local src="$1" dest - dest=${iso_root}/boot - - for fw in intel amd; do - cp "$src"/boot/"$fw"-ucode.img "$dest/$fw"-ucode.img - done - - cp "$src"/boot/memtest86+/memtest.bin "$dest"/memtest - cp "$src"/usr/share/licenses/common/GPL2/license.txt "$dest"/memtest.COPYING -} - -#}}} - -#!/hint/bash - -#{{{ dracut - -prepare_initramfs_dracut(){ - local mnt="$1" - local kver - kver=$(<"$mnt"/usr/src/linux/version) - - printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf - - msg "Starting build: %s" "${kver}" - artix-chroot "$mnt" dracut -fqM /boot/initramfs.img "$kver" - msg "Image generation successful" - - cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img - - prepare_boot_extras "$mnt" -} - -configure_grub_dracut(){ - msg "Configuring grub kernel options ..." - local kopts=() - kopts=( - "root=live:LABEL=${iso_label}" - 'rd.live.squashimg=rootfs.img' - 'rd.live.image' - 'rootflags=auto' - ) - [[ "${profile}" != 'base' ]] && kopts+=("rd.live.join=livefs.img") - - local ro_opts=() - local rw_opts=() -# 'rd.writable.fsimg=1' - - sed -e "s|@kopts@|${kopts[*]}|" \ - -e "s|@ro_opts@|${ro_opts[*]}|" \ - -e "s|@rw_opts@|${rw_opts[*]}|" \ - -i "${iso_root}"/boot/grub/kernels.cfg -} - -#}}} - -#!/hint/bash - -#{{{ initcpio - -make_checksum(){ - local file="$1" - msg2 "Creating md5sum ..." - cd "${iso_root}${live_dir}" - md5sum "$file" > "$file".md5 - cd "${OLDPWD}" -} - -make_sig () { - local file="$1" - msg2 "Creating signature file..." - chown "${owner}:$(id --group "${owner}")" "${iso_root}${live_dir}" - su "${owner}" -c "gpg --detach-sign --output $file.sig --default-key ${GPG_KEY} $file" - chown "root:root" "${iso_root}${live_dir}" -} - -export_gpg_publickey() { - key_export=${WORKSPACE_DIR}/pubkey.gpg - if [[ ! -e "${key_export}" ]]; then - gpg --batch --output "${key_export}" --export "${GPG_KEY}" - fi -} - -prepare_initramfs_mkinitcpio() { - local mnt="$1" packages=() mkinitcpio_conf k - - mkinitcpio_conf=mkinitcpio-default.conf - [[ "${profile}" == 'base' ]] && mkinitcpio_conf=mkinitcpio-pxe.conf - k=$(<"$mnt"/usr/src/linux/version) - - read_from_list "${common_dir}/Packages-boot" - basestrap "${basestrap_args[@]}" "$mnt" "${packages[@]}" - - if [[ -n "${GPG_KEY}" ]]; then - exec {ARTIX_GNUPG_FD}<>"${key_export}" - export ARTIX_GNUPG_FD - fi - - artix-chroot "$mnt" mkinitcpio -k "$k" \ - -c /etc/"$mkinitcpio_conf" \ - -g /boot/initramfs.img - - if [[ -n "${GPG_KEY}" ]]; then - exec {ARTIX_GNUPG_FD}<&- - unset ARTIX_GNUPG_FD - fi - if [[ -f "${key_export}" ]]; then - rm "${key_export}" - fi - cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img - prepare_boot_extras "$mnt" -} - -configure_grub_mkinitcpio() { - msg "Configuring grub kernel options ..." - local ro_opts=() - local rw_opts=() - local kopts=("label=${iso_label}") - - [[ "${profile}" != 'base' ]] && kopts+=('overlay=livefs') - - sed -e "s|@kopts@|${kopts[*]}|" \ - -e "s|@ro_opts@|${ro_opts[*]}|" \ - -e "s|@rw_opts@|${rw_opts[*]}|" \ - -i "${iso_root}"/boot/grub/kernels.cfg -} - -#}}} - -#!/hint/bash - -#{{{ grub - -prepare_grub(){ - local platform=i386-pc img='core.img' prefix=/boot/grub - local lib="$1"/usr/lib/grub - local theme="$1"/usr/share/grub - local livecfg="$2"/usr/share/grub - local grub=${iso_root}/boot/grub efi=${iso_root}/efi/boot - - prepare_dir "${grub}/${platform}" - - cp "${livecfg}"/cfg/*.cfg "${grub}" - - cp "${lib}/${platform}"/* "${grub}/${platform}" - - msg2 "Building %s ..." "${img}" - - grub-mkimage -d "${grub}/${platform}" -o "${grub}/${platform}/${img}" -O "${platform}" -p "${prefix}" biosdisk iso9660 - - cat "${grub}/${platform}"/cdboot.img "${grub}/${platform}/${img}" > "${grub}/${platform}"/eltorito.img - - platform=x86_64-efi - img=bootx64.efi - - prepare_dir "${efi}" - prepare_dir "${grub}/${platform}" - - cp "${lib}/${platform}"/* "${grub}/${platform}" - - msg2 "Building %s ..." "${img}" - - grub-mkimage -d "${grub}/${platform}" -o "${efi}/${img}" -O "${platform}" -p "${prefix}" iso9660 - - prepare_dir "${grub}"/themes - - cp -r "${theme}"/themes/artix "${grub}"/themes - cp -r "${livecfg}"/{locales,tz} "${grub}" - - if [[ -f /usr/share/grub/unicode.pf2 ]];then - msg2 "Copying %s ..." "unicode.pf2" - cp /usr/share/grub/unicode.pf2 "${grub}"/unicode.pf2 - else - msg2 "Creating %s ..." "unicode.pf2" - grub-mkfont -o "${grub}"/unicode.pf2 /usr/share/fonts/misc/unifont.bdf - fi - - local size=4M mnt="${mnt_dir}/efiboot" efi_img="${iso_root}/boot/efi.img" - msg2 "Creating fat image of %s ..." "${size}" - truncate -s "${size}" "${efi_img}" - mkfs.fat -n ARTIX_EFI "${efi_img}" &>/dev/null - prepare_dir "${mnt}" - mount_img "${efi_img}" "${mnt}" - prepare_dir "${mnt}"/efi/boot - msg2 "Building %s ..." "${img}" - grub-mkimage -d "${grub}/${platform}" -o "${mnt}"/efi/boot/"${img}" -O "${platform}" -p "${prefix}" iso9660 - umount_img "${mnt}" -} - -#}}} - -#!/hint/bash - -#{{{ squash - -make_ext_img(){ - local src="$1" - local size=32G - local mnt="${mnt_dir}/${src##*/}" - mkdir -p "${work_dir}"/embed"${live_dir}" - local extimg="${work_dir}/embed${live_dir}/${src##*/}".img - - msg2 "Creating ext4 image of %s ..." "${size}" - truncate -s ${size} "${extimg}" - local ext4_args=() - ext4_args+=("-O ^has_journal,^resize_inode" -E lazy_itable_init=0 -m 0) - mkfs.ext4 "${ext4_args[@]}" -F "${extimg}" &>/dev/null - tune2fs -c 0 -i 0 "${extimg}" &> /dev/null - mount_img "${extimg}" "${mnt}" - msg2 "Copying %s ..." "${src}/" - cp -aT "${src}/" "${mnt}/" - umount_img "${mnt}" -} - -has_changed(){ - local src="$1" dest="$2" - if [[ -f "${dest}" ]]; then - local has_changes - has_changes=$(find "${src}" -newer "${dest}") - if [[ -n "${has_changes}" ]]; then - msg2 "Possible changes for %s ..." "${src}" - msg2 "%s" "${has_changes}" - msg2 "SquashFS image %s is not up to date, rebuilding..." "${dest}" - rm "${dest}" - else - msg2 "SquashFS image %s is up to date, skipping." "${dest}" - return 1 - fi - fi -} - -# $1: image path -make_sfs() { - local sfs_in="$1" - if [[ ! -e "${sfs_in}" ]]; then - error "The path %s does not exist" "${sfs_in}" - retrun 1 - fi - - mkdir -p "${iso_root}${live_dir}" - - local img_name=${sfs_in##*/}.img - - local sfs_out="${iso_root}${live_dir}/${img_name}" - - if has_changed "${sfs_in}" "${sfs_out}"; then - - msg "Generating SquashFS image for %s" "${sfs_in}" - - local mksfs_args=() - - if ${persist};then - make_ext_img "${sfs_in}" - mksfs_args+=("${work_dir}/embed") - else - mksfs_args+=("${sfs_in}") - fi - - mksfs_args+=("${sfs_out}") - - mksfs_args+=(-comp "${COMPRESSION}" "${COMPRESSION_ARGS[@]}" -noappend) - - mksquashfs "${mksfs_args[@]}" - - if ! ${use_dracut}; then - make_checksum "${img_name}" - if [[ -n ${GPG_KEY} ]];then - make_sig "${iso_root}${live_dir}/${img_name}" - fi - fi - if ${persist}; then - rm -r "${work_dir}/embed" - fi - fi -} - -#}}} - -#!/hint/bash - -#{{{ iso - -get_disturl(){ - # shellcheck disable=1091 - . /usr/lib/os-release - echo "${HOME_URL}" -} - -get_osname(){ - # shellcheck disable=1091 - . /usr/lib/os-release - echo "${NAME}" -} - -assemble_iso(){ - msg "Creating ISO image..." - local mod_date - mod_date=$(date -u +%Y-%m-%d-%H-%M-%S-00 | sed -e s/-//g) - local appid - appid="$(get_osname) Live/Rescue CD" - local publisher - publisher="$(get_osname) <$(get_disturl)>" - - xorriso -as mkisofs \ - --modification-date="${mod_date}" \ - --protective-msdos-label \ - -volid "${iso_label}" \ - -appid "${appid}" \ - -publisher "${publisher}" \ - -preparer "Prepared by artools/${0##*/}" \ - -r -graft-points -no-pad \ - --sort-weight 0 / \ - --sort-weight 1 /boot \ - --grub2-mbr "${iso_root}"/boot/grub/i386-pc/boot_hybrid.img \ - -partition_offset 16 \ - -b boot/grub/i386-pc/eltorito.img \ - -c boot.catalog \ - -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \ - -eltorito-alt-boot \ - -append_partition 2 0xef "${iso_root}"/boot/efi.img \ - -e --interval:appended_partition_2:all:: -iso_mbr_part_type 0x00 \ - -no-emul-boot \ - -iso-level 3 \ - -o "${iso_dir}/${iso_file}" \ - "${iso_root}"/ -} - -#}}} - -#!/hint/bash - -#{{{ profile - -show_profile(){ - msg2 "iso_file: %s" "${iso_file}" - msg2 "AUTOLOGIN: %s" "${AUTOLOGIN}" - msg2 "PASSWORD: %s" "${PASSWORD}" - msg2 "SERVICES: %s" "${SERVICES[*]}" -} - -load_profile(){ - local profile_dir="${DATADIR}/iso-profiles" - [[ -d "${WORKSPACE_DIR}"/iso-profiles ]] && profile_dir="${WORKSPACE_DIR}"/iso-profiles - - root_list="$profile_dir/${profile}/Packages-Root" - root_overlay="$profile_dir/${profile}/root-overlay" - - [[ -f "$profile_dir/${profile}/Packages-Live" ]] && live_list="$profile_dir/${profile}/Packages-Live" - [[ -d "$profile_dir/${profile}/live-overlay" ]] && live_overlay="$profile_dir/${profile}/live-overlay" - - common_dir="${DATADIR}/iso-profiles/common" - [[ -d "$profile_dir"/common ]] && common_dir="${profile_dir}"/common - - [[ -f $profile_dir/${profile}/profile.conf ]] || return 1 - - # shellcheck disable=1090 - [[ -r "$profile_dir/${profile}"/profile.conf ]] && . "$profile_dir/${profile}"/profile.conf - - AUTOLOGIN=${AUTOLOGIN:-true} - - PASSWORD=${PASSWORD:-'artix'} - - if [[ -z "${SERVICES[*]}" ]];then - SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand') - fi - - return 0 -} - -read_from_list() { - local list="$1" - local _space="s| ||g" - local _clean=':a;N;$!ba;s/\n/ /g' - local _com_rm="s|#.*||g" - - local _init="s|@initsys@|${INITSYS}|g" - - msg2 "Loading Packages: [%s] ..." "${list##*/}" - packages+=($(sed "$_com_rm" "$list" \ - | sed "$_space" \ - | sed "$_init" \ - | sed "$_clean")) -} - -read_from_services() { - for svc in "${SERVICES[@]}"; do - case "$svc" in - sddm|gdm|lightdm|mdm|greetd|lxdm|xdm) packages+=("$svc-${INITSYS}") ;; - NetworkManager) packages+=("networkmanager-${INITSYS}") ;; - connmand) packages+=("connman-${INITSYS}") ;; - cupsd) packages+=("cups-${INITSYS}") ;; - bluetoothd) packages+=("bluez-${INITSYS}") ;; - syslog-ng|metalog) packages+=("$svc-${INITSYS}") ;; - esac - done -} - -load_pkgs(){ - local pkglist="$1" - packages=() - - if [[ "${pkglist##*/}" == "Packages-Root" ]]; then - read_from_list "${common_dir}/Packages-base" - read_from_list "${common_dir}/Packages-apps" - read_from_list "${common_dir}/Packages-${INITSYS}" - [[ -n "${live_list}" ]] && read_from_list "${common_dir}/Packages-xorg" - read_from_list "$pkglist" - read_from_services - else - read_from_list "$pkglist" - fi -} - -#}}} - -#!/hint/bash - -#{{{ trap - -error_function() { - local func="$1" - # first exit all subshells, then print the error - if (( ! BASH_SUBSHELL )); then - error "A failure occurred in %s()." "$func" - plain "Aborting..." - fi - umount_overlayfs - umount_img - exit 2 -} - -run_safe() { - local restoretrap func="$1" - set -e - set -E - restoretrap=$(trap -p ERR) - trap 'error_function $func' ERR - - "$func" - - eval "$restoretrap" - set +E - set +e -} - -trap_exit() { - local sig=$1; shift - error "$@" - umount_overlayfs - trap -- "$sig" - kill "-$sig" "$$" -} - -prepare_traps(){ - for sig in TERM HUP QUIT; do - # shellcheck disable=2064 - trap "trap_exit $sig \"$(gettext "%s signal caught. Exiting...")\" \"$sig\"" "$sig" - done - trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT -# trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR -} - -#}}} - - -clean_up_chroot(){ - local path mnt="$1" - msg2 "Cleaning [%s]" "${mnt##*/}" - - path=$mnt/boot - if [[ -d "$path" ]]; then - find "$path" -name 'initramfs*.img' -delete &> /dev/null - fi - path=$mnt/var/lib/pacman/sync - if [[ -d $path ]];then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/cache/pacman/pkg - if [[ -d $path ]]; then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/log - if [[ -d $path ]]; then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/tmp - if [[ -d $path ]];then - find "$path" -mindepth 1 -delete &> /dev/null - fi - path=$mnt/tmp - if [[ -d $path ]];then - find "$path" -mindepth 1 -delete &> /dev/null - fi - # shellcheck disable=2035 - find "$mnt" -name *.pacnew -name *.pacsave -name *.pacorig -delete - if [[ -f "$mnt/boot/grub/grub.cfg" ]]; then - rm "$mnt"/boot/grub/grub.cfg - fi - if [[ -f "$mnt/etc/machine-id" ]]; then - rm "$mnt"/etc/machine-id - fi -} - -copy_overlay(){ - local src="$1" dest="$2" - if [[ -e "$src" ]];then - msg2 "Copying [%s] ..." "${src##*/}" - cp -LR "$src"/* "$dest" - fi -} - -make_rootfs() { - if [[ ! -e "${work_dir}"/rootfs.lock ]]; then - msg "Prepare [Base installation] (rootfs)" - local rootfs="${work_dir}/rootfs" - - prepare_dir "${rootfs}" - - basestrap "${basestrap_args[@]}" "${rootfs}" "${packages[@]}" - - copy_overlay "${root_overlay}" "${rootfs}" - - [[ -z ${live_list} ]] && configure_chroot "${rootfs}" - - clean_up_chroot "${rootfs}" - - : > "${work_dir}"/rootfs.lock - - msg "Done [Base installation] (rootfs)" - fi -} - -make_livefs() { - if [[ ! -e ${work_dir}/livefs.lock ]]; then - msg "Prepare [Live installation] (livefs)" - local livefs="${work_dir}/livefs" - - prepare_dir "${livefs}" - - mount_overlayfs "${livefs}" "${work_dir}" - - basestrap "${basestrap_args[@]}" "${livefs}" "${packages[@]}" - - copy_overlay "${live_overlay}" "${livefs}" - - configure_chroot "${livefs}" - - umount_overlayfs - - clean_up_chroot "${livefs}" - - : > "${work_dir}"/livefs.lock - - msg "Done [Live installation] (livefs)" - fi -} - -make_bootfs() { - if [[ ! -e ${work_dir}/bootfs.lock ]]; then - msg "Prepare [/iso/boot]" - - prepare_dir "${iso_root}/boot" - - cp "${work_dir}"/rootfs/boot/vmlinuz* "${iso_root}"/boot/vmlinuz-"${arch}" - - local bootfs="${work_dir}/bootfs" - - mount_overlayfs "${bootfs}" "${work_dir}" - - if "${use_dracut}"; then - prepare_initramfs_dracut "${bootfs}" - else - prepare_initramfs_mkinitcpio "${bootfs}" - fi - - umount_overlayfs - - rm -R "${bootfs}" - : > "${work_dir}"/bootfs.lock - msg "Done [/iso/boot]" - fi -} - -make_grub(){ - if [[ ! -e ${work_dir}/grub.lock ]]; then - msg "Prepare [/iso/boot/grub]" - - local layer=${work_dir}/rootfs - [[ -n ${live_list} ]] && layer=${work_dir}/livefs - - prepare_grub "${work_dir}/rootfs" "$layer" - - if ${use_dracut}; then - configure_grub_dracut - else - configure_grub_mkinitcpio - fi - - : > "${work_dir}"/grub.lock - msg "Done [/iso/boot/grub]" - fi -} - -gen_iso_fn(){ - local vars=("artix") name - vars+=("${profile}") - vars+=("${INITSYS}") - case "${repo}" in - 'gremlins'|'goblins') vars+=("${repo}") ;; - esac - vars+=("${ISO_VERSION}") - vars+=("${arch}") - for n in "${vars[@]}"; do - name=${name:-}${name:+-}${n} - done - echo "$name" -} - -prepare_build(){ - load_profile - - case "${repo}" in - 'gremlins'|'goblins') repo="${repo}" ;; - *) repo=default ;; - esac - - get_pacman_conf "${repo}" - - iso_file=$(gen_iso_fn).iso - - iso_label="ARTIX_$(date +%Y%m)" - - basestrap_args+=(-C "${pacman_conf}") - work_dir=${chroots_iso}/${profile}/artix - - iso_dir="${ISO_POOL}/${profile}" - - iso_root=${chroots_iso}/${profile}/iso - live_dir=/LiveOS - - mnt_dir=${chroots_iso}/${profile}/mnt - - if [[ -n "${GPG_KEY}" ]]; then - ${use_dracut} || export_gpg_publickey - fi -} - -display_settings(){ - msg "OPTIONS:" - msg2 "profile: %s" "${profile}" - msg2 "INITSYS: %s" "${INITSYS}" - [[ -n ${GPG_KEY} ]] && msg2 "GPG_KEY: %s" "${GPG_KEY}" - - msg "ISO SETTINGS:" - msg2 "ISO_VERSION: %s" "${ISO_VERSION}" - msg2 "COMPRESSION: %s" "${COMPRESSION}" - [[ "${COMPRESSION}" == 'zstd' ]] && msg2 "COMPRESSION_LEVEL: %s" "${COMPRESSION_LEVEL}" - - msg "BUILD:" - show_profile -} - -mk_squash(){ - make_sfs "${work_dir}/rootfs" - if [[ -d "${work_dir}/livefs" ]]; then - make_sfs "${work_dir}/livefs" - fi -} - -mk_iso(){ - touch "${iso_root}/.artix" - msg "Making bootable image" - # Sanity checks - [[ ! -d "${iso_root}" ]] && return 1 - if [[ -f "${iso_dir}/${iso_file}" ]]; then - msg2 "Removing existing bootable image..." - rm -rf "${iso_dir}/${iso_file}" - fi - assemble_iso - chown -R "${owner}:$(id --group "${owner}")" "${iso_dir}" -} - -mk_boot(){ - run_safe "make_bootfs" - run_safe "make_grub" -} - -mk_chroots(){ - load_pkgs "${root_list}" - run_safe "make_rootfs" - if [[ -n ${live_list} ]]; then - load_pkgs "${live_list}" - run_safe "make_livefs" - fi -} - -build(){ - msg "Start building [%s]" "${profile}" - if ${clean_first};then - for copy in "${work_dir}"/*; do - [[ -d $copy ]] || continue - msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")" - - lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy" - - subvolume_delete_recursive "${copy}" - rm -rf --one-file-system "${copy}" - done - lock_close 9 - - rm -rf --one-file-system "${work_dir}" - - msg "Deleting isoroot [%s] ..." "${iso_root##*/}" - rm -rf --one-file-system "${iso_root}" - fi - - if ${chroot_only}; then - mk_chroots - warning "Continue squash: %s -p %s -sc ..." "${cmd}" "${profile}" - exit 1 - elif ${boot_only}; then - mk_boot - warning "Continue iso: %s -p %s -zc ..." "${cmd}" "${profile}" - exit 1 - elif ${squash_only}; then - mk_squash - warning "Continue boot: %s -p %s -bc ..." "${cmd}" "${profile}" - exit 1 - elif ${iso_only}; then - [[ ! -d ${work_dir} ]] && die "Create chroot: %s -p %s -x" "${cmd}" "${profile}" - mk_iso - else - mk_chroots - mk_boot - mk_squash - mk_iso - fi - msg "Finished building [%s]" "${profile}" -} - -clean_first=true -pretend=false -chroot_only=false -iso_only=false -persist=false -use_dracut=false -squash_only=false -boot_only=false - -basestrap_args=(-GMc) -cmd=${0##*/} - -repo=${cmd##*-} -owner=${SUDO_USER:-$USER} -profile='base' -chroots_iso="${CHROOTS_DIR}/buildiso" -arch=$(uname -m) - -usage() { - echo "Usage: ${cmd} [options]" - echo " -p Profile [default: ${profile}]" - echo ' -r Chroots directory' - echo " [default: ${chroots_iso}]" - echo ' -t Target directory' - echo " [default: ${ISO_POOL}]" - echo ' -i Init system to use' - echo " [default: ${INITSYS}]" - echo ' -g The gpg key for img signing' - echo " [default: none]" - echo ' -m Set SquashFS image mode to persistence' - echo ' -c Disable clean work dir' - echo ' -x Build chroot only' - echo ' -s Squash chroot only' - echo ' -b Generate iso boot only' - echo ' -z Generate iso only' - echo ' Requires pre built images (-x)' - echo ' -d Use dracut instead of mkinitcpio for iso initramfs' - echo ' -q Query settings and pretend build' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:r:t:i:g:czsbxmdqh' - -while getopts "${opts}" arg; do - case "${arg}" in - p) profile="$OPTARG" ;; - r) chroots_iso="$OPTARG" ;; - t) ISO_POOL="$OPTARG" ;; - i) INITSYS="$OPTARG" ;; - g) GPG_KEY="$OPTARG" ;; - c) clean_first=false ;; - x) chroot_only=true ;; - z) iso_only=true ;; - s) squash_only=true ;; - b) boot_only=true ;; - m) persist=true ;; - d) use_dracut=true ;; - q) pretend=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -prepare_build - -${pretend} && display_settings && exit 1 - -check_root - -prepare_dir "${mnt_dir}" -prepare_dir "${iso_dir}" -prepare_dir "${iso_root}" - -prepare_traps - -build diff --git a/artools/0.26.1/artools/bin/iso/buildiso.in b/artools/0.26.1/artools/bin/iso/buildiso.in deleted file mode 100755 index ec5d2af..0000000 --- a/artools/0.26.1/artools/bin/iso/buildiso.in +++ /dev/null @@ -1,389 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-iso.sh) -m4_include(lib/base/message.sh) -m4_include(lib/base/common.sh) -m4_include(lib/base/chroot.sh) -m4_include(lib/iso/mount.sh) -m4_include(lib/iso/services.sh) -m4_include(lib/base/yaml.sh) -m4_include(lib/iso/calamares.sh) -m4_include(lib/iso/config.sh) -m4_include(lib/iso/firmware.sh) -m4_include(lib/iso/dracut.sh) -m4_include(lib/iso/initcpio.sh) -m4_include(lib/iso/grub.sh) -m4_include(lib/iso/squash.sh) -m4_include(lib/iso/iso.sh) -m4_include(lib/iso/profile.sh) -m4_include(lib/iso/trap.sh) - -clean_up_chroot(){ - local path mnt="$1" - msg2 "Cleaning [%s]" "${mnt##*/}" - - path=$mnt/boot - if [[ -d "$path" ]]; then - find "$path" -name 'initramfs*.img' -delete &> /dev/null - fi - path=$mnt/var/lib/pacman/sync - if [[ -d $path ]];then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/cache/pacman/pkg - if [[ -d $path ]]; then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/log - if [[ -d $path ]]; then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/tmp - if [[ -d $path ]];then - find "$path" -mindepth 1 -delete &> /dev/null - fi - path=$mnt/tmp - if [[ -d $path ]];then - find "$path" -mindepth 1 -delete &> /dev/null - fi - # shellcheck disable=2035 - find "$mnt" -name *.pacnew -name *.pacsave -name *.pacorig -delete - if [[ -f "$mnt/boot/grub/grub.cfg" ]]; then - rm "$mnt"/boot/grub/grub.cfg - fi - if [[ -f "$mnt/etc/machine-id" ]]; then - rm "$mnt"/etc/machine-id - fi -} - -copy_overlay(){ - local src="$1" dest="$2" - if [[ -e "$src" ]];then - msg2 "Copying [%s] ..." "${src##*/}" - cp -LR "$src"/* "$dest" - fi -} - -make_rootfs() { - if [[ ! -e "${work_dir}"/rootfs.lock ]]; then - msg "Prepare [Base installation] (rootfs)" - local rootfs="${work_dir}/rootfs" - - prepare_dir "${rootfs}" - - basestrap "${basestrap_args[@]}" "${rootfs}" "${packages[@]}" - - copy_overlay "${root_overlay}" "${rootfs}" - - [[ -z ${live_list} ]] && configure_chroot "${rootfs}" - - clean_up_chroot "${rootfs}" - - : > "${work_dir}"/rootfs.lock - - msg "Done [Base installation] (rootfs)" - fi -} - -make_livefs() { - if [[ ! -e ${work_dir}/livefs.lock ]]; then - msg "Prepare [Live installation] (livefs)" - local livefs="${work_dir}/livefs" - - prepare_dir "${livefs}" - - mount_overlayfs "${livefs}" "${work_dir}" - - basestrap "${basestrap_args[@]}" "${livefs}" "${packages[@]}" - - copy_overlay "${live_overlay}" "${livefs}" - - configure_chroot "${livefs}" - - umount_overlayfs - - clean_up_chroot "${livefs}" - - : > "${work_dir}"/livefs.lock - - msg "Done [Live installation] (livefs)" - fi -} - -make_bootfs() { - if [[ ! -e ${work_dir}/bootfs.lock ]]; then - msg "Prepare [/iso/boot]" - - prepare_dir "${iso_root}/boot" - - cp "${work_dir}"/rootfs/boot/vmlinuz* "${iso_root}"/boot/vmlinuz-"${arch}" - - local bootfs="${work_dir}/bootfs" - - mount_overlayfs "${bootfs}" "${work_dir}" - - if "${use_dracut}"; then - prepare_initramfs_dracut "${bootfs}" - else - prepare_initramfs_mkinitcpio "${bootfs}" - fi - - umount_overlayfs - - rm -R "${bootfs}" - : > "${work_dir}"/bootfs.lock - msg "Done [/iso/boot]" - fi -} - -make_grub(){ - if [[ ! -e ${work_dir}/grub.lock ]]; then - msg "Prepare [/iso/boot/grub]" - - local layer=${work_dir}/rootfs - [[ -n ${live_list} ]] && layer=${work_dir}/livefs - - prepare_grub "${work_dir}/rootfs" "$layer" - - if ${use_dracut}; then - configure_grub_dracut - else - configure_grub_mkinitcpio - fi - - : > "${work_dir}"/grub.lock - msg "Done [/iso/boot/grub]" - fi -} - -gen_iso_fn(){ - local vars=("artix") name - vars+=("${profile}") - vars+=("${INITSYS}") - case "${repo}" in - 'gremlins'|'goblins') vars+=("${repo}") ;; - esac - vars+=("${ISO_VERSION}") - vars+=("${arch}") - for n in "${vars[@]}"; do - name=${name:-}${name:+-}${n} - done - echo "$name" -} - -prepare_build(){ - load_profile - - case "${repo}" in - 'gremlins'|'goblins') repo="${repo}" ;; - *) repo=default ;; - esac - - get_pacman_conf "${repo}" - - iso_file=$(gen_iso_fn).iso - - iso_label="ARTIX_$(date +%Y%m)" - - basestrap_args+=(-C "${pacman_conf}") - work_dir=${chroots_iso}/${profile}/artix - - iso_dir="${ISO_POOL}/${profile}" - - iso_root=${chroots_iso}/${profile}/iso - live_dir=/LiveOS - - mnt_dir=${chroots_iso}/${profile}/mnt - - if [[ -n "${GPG_KEY}" ]]; then - ${use_dracut} || export_gpg_publickey - fi -} - -display_settings(){ - msg "OPTIONS:" - msg2 "profile: %s" "${profile}" - msg2 "INITSYS: %s" "${INITSYS}" - [[ -n ${GPG_KEY} ]] && msg2 "GPG_KEY: %s" "${GPG_KEY}" - - msg "ISO SETTINGS:" - msg2 "ISO_VERSION: %s" "${ISO_VERSION}" - msg2 "COMPRESSION: %s" "${COMPRESSION}" - [[ "${COMPRESSION}" == 'zstd' ]] && msg2 "COMPRESSION_LEVEL: %s" "${COMPRESSION_LEVEL}" - - msg "BUILD:" - show_profile -} - -mk_squash(){ - make_sfs "${work_dir}/rootfs" - if [[ -d "${work_dir}/livefs" ]]; then - make_sfs "${work_dir}/livefs" - fi -} - -mk_iso(){ - touch "${iso_root}/.artix" - msg "Making bootable image" - # Sanity checks - [[ ! -d "${iso_root}" ]] && return 1 - if [[ -f "${iso_dir}/${iso_file}" ]]; then - msg2 "Removing existing bootable image..." - rm -rf "${iso_dir}/${iso_file}" - fi - assemble_iso - chown -R "${owner}:$(id --group "${owner}")" "${iso_dir}" -} - -mk_boot(){ - run_safe "make_bootfs" - run_safe "make_grub" -} - -mk_chroots(){ - load_pkgs "${root_list}" - run_safe "make_rootfs" - if [[ -n ${live_list} ]]; then - load_pkgs "${live_list}" - run_safe "make_livefs" - fi -} - -build(){ - msg "Start building [%s]" "${profile}" - if ${clean_first};then - for copy in "${work_dir}"/*; do - [[ -d $copy ]] || continue - msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")" - - lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy" - - subvolume_delete_recursive "${copy}" - rm -rf --one-file-system "${copy}" - done - lock_close 9 - - rm -rf --one-file-system "${work_dir}" - - msg "Deleting isoroot [%s] ..." "${iso_root##*/}" - rm -rf --one-file-system "${iso_root}" - fi - - if ${chroot_only}; then - mk_chroots - warning "Continue squash: %s -p %s -sc ..." "${cmd}" "${profile}" - exit 1 - elif ${boot_only}; then - mk_boot - warning "Continue iso: %s -p %s -zc ..." "${cmd}" "${profile}" - exit 1 - elif ${squash_only}; then - mk_squash - warning "Continue boot: %s -p %s -bc ..." "${cmd}" "${profile}" - exit 1 - elif ${iso_only}; then - [[ ! -d ${work_dir} ]] && die "Create chroot: %s -p %s -x" "${cmd}" "${profile}" - mk_iso - else - mk_chroots - mk_boot - mk_squash - mk_iso - fi - msg "Finished building [%s]" "${profile}" -} - -clean_first=true -pretend=false -chroot_only=false -iso_only=false -persist=false -use_dracut=false -squash_only=false -boot_only=false - -basestrap_args=(-GMc) -cmd=${0##*/} - -repo=${cmd##*-} -owner=${SUDO_USER:-$USER} -profile='base' -chroots_iso="${CHROOTS_DIR}/buildiso" -arch=$(uname -m) - -usage() { - echo "Usage: ${cmd} [options]" - echo " -p Profile [default: ${profile}]" - echo ' -r Chroots directory' - echo " [default: ${chroots_iso}]" - echo ' -t Target directory' - echo " [default: ${ISO_POOL}]" - echo ' -i Init system to use' - echo " [default: ${INITSYS}]" - echo ' -g The gpg key for img signing' - echo " [default: none]" - echo ' -m Set SquashFS image mode to persistence' - echo ' -c Disable clean work dir' - echo ' -x Build chroot only' - echo ' -s Squash chroot only' - echo ' -b Generate iso boot only' - echo ' -z Generate iso only' - echo ' Requires pre built images (-x)' - echo ' -d Use dracut instead of mkinitcpio for iso initramfs' - echo ' -q Query settings and pretend build' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:r:t:i:g:czsbxmdqh' - -while getopts "${opts}" arg; do - case "${arg}" in - p) profile="$OPTARG" ;; - r) chroots_iso="$OPTARG" ;; - t) ISO_POOL="$OPTARG" ;; - i) INITSYS="$OPTARG" ;; - g) GPG_KEY="$OPTARG" ;; - c) clean_first=false ;; - x) chroot_only=true ;; - z) iso_only=true ;; - s) squash_only=true ;; - b) boot_only=true ;; - m) persist=true ;; - d) use_dracut=true ;; - q) pretend=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -prepare_build - -${pretend} && display_settings && exit 1 - -check_root - -prepare_dir "${mnt_dir}" -prepare_dir "${iso_dir}" -prepare_dir "${iso_root}" - -prepare_traps - -build diff --git a/artools/0.26.1/artools/bin/pkg/batchpkg b/artools/0.26.1/artools/bin/pkg/batchpkg deleted file mode 100755 index fa0dafa..0000000 --- a/artools/0.26.1/artools/bin/pkg/batchpkg +++ /dev/null @@ -1,328 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-20 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -#{{{ functions - -batch_move() { - local name="${1:-pkg_moves}" - local pkglist="${TREE_DIR_ARTIX}"/"$name".list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry##*:} - local src=${entry%:*} - src=${src#*:} - local dest=${entry%%:*} - if ${runlist}; then - "${dest}"pkg -s "${src}" -u -p "${pkg}" - else - msg "%s" "${dest}pkg -s ${src} -u -p ${pkg}" - fi - done < "$pkglist" -} - -batch_create() { - local name="${1:-pkg_create}" - local pkglist="${TREE_DIR_ARTIX}"/"$name".list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry##*:} - local group=${entry%:*} - group=${group#*:} - local team=${entry%%:*} - if ${runlist}; then - buildtree -n -p "${pkg}" -t "${team}" -g "${group}" - buildtree -i -p "${pkg}" - commitpkg -p "${pkg}" - else - msg "%s" "buildtree -n -p ${pkg} -t ${team} -g ${group}" - msg2 "%s" "buildtree -i -p ${pkg}" - msg2 "%s" "commitpkg -p ${pkg}" - fi - done < "$pkglist" -} - -batch_update() { - local name="${1:-pkg_upgrades}" - local pkglist=${TREE_DIR_ARTIX}/$name.list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry#*:} - local dest=${entry%:*} - if ${runlist}; then - buildtree -i -p "${pkg}" - "${dest}"pkg -u -p "${pkg}" - else - msg "buildtree -i -p ${pkg}" - msg2 "${dest}pkg -u -p ${pkg}" - fi - done < "$pkglist" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [optional listname]" - echo ' -r Run generated commands' - echo ' -c Create subrepos from list' - echo ' -u Update subrepos from list' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -runlist=false -create=false -update=false - -opts='rcuh' - -while getopts "${opts}" arg; do - case "${arg}" in - r) runlist=true ;; - c) create=true ;; - u) update=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -listname="$1"; shift - -if ${create}; then - batch_create "${listname}" -elif ${update}; then - batch_update "${listname}" -else - batch_move "${listname}" -fi diff --git a/artools/0.26.1/artools/bin/pkg/batchpkg.in b/artools/0.26.1/artools/bin/pkg/batchpkg.in deleted file mode 100644 index 2c328ac..0000000 --- a/artools/0.26.1/artools/bin/pkg/batchpkg.in +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-20 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-pkg.sh) -m4_include(lib/base/message.sh) - -#{{{ functions - -batch_move() { - local name="${1:-pkg_moves}" - local pkglist="${TREE_DIR_ARTIX}"/"$name".list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry##*:} - local src=${entry%:*} - src=${src#*:} - local dest=${entry%%:*} - if ${runlist}; then - "${dest}"pkg -s "${src}" -u -p "${pkg}" - else - msg "%s" "${dest}pkg -s ${src} -u -p ${pkg}" - fi - done < "$pkglist" -} - -batch_create() { - local name="${1:-pkg_create}" - local pkglist="${TREE_DIR_ARTIX}"/"$name".list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry##*:} - local group=${entry%:*} - group=${group#*:} - local team=${entry%%:*} - if ${runlist}; then - buildtree -n -p "${pkg}" -t "${team}" -g "${group}" - buildtree -i -p "${pkg}" - commitpkg -p "${pkg}" - else - msg "%s" "buildtree -n -p ${pkg} -t ${team} -g ${group}" - msg2 "%s" "buildtree -i -p ${pkg}" - msg2 "%s" "commitpkg -p ${pkg}" - fi - done < "$pkglist" -} - -batch_update() { - local name="${1:-pkg_upgrades}" - local pkglist=${TREE_DIR_ARTIX}/$name.list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry#*:} - local dest=${entry%:*} - if ${runlist}; then - buildtree -i -p "${pkg}" - "${dest}"pkg -u -p "${pkg}" - else - msg "buildtree -i -p ${pkg}" - msg2 "${dest}pkg -u -p ${pkg}" - fi - done < "$pkglist" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [optional listname]" - echo ' -r Run generated commands' - echo ' -c Create subrepos from list' - echo ' -u Update subrepos from list' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -runlist=false -create=false -update=false - -opts='rcuh' - -while getopts "${opts}" arg; do - case "${arg}" in - r) runlist=true ;; - c) create=true ;; - u) update=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -listname="$1"; shift - -if ${create}; then - batch_create "${listname}" -elif ${update}; then - batch_update "${listname}" -else - batch_move "${listname}" -fi diff --git a/artools/0.26.1/artools/bin/pkg/buildpkg b/artools/0.26.1/artools/bin/pkg/buildpkg deleted file mode 100755 index 091fb8e..0000000 --- a/artools/0.26.1/artools/bin/pkg/buildpkg +++ /dev/null @@ -1,324 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common - -get_makepkg_conf() { - makepkg_conf="${DATADIR}/makepkg.conf" - [[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf" -} - -get_pacman_conf() { - local repo="$1" - pacman_conf="${DATADIR}/pacman-${repo}.conf" - [[ -f "${USER_CONF_DIR}/pacman-${repo}.conf" ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf" -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - - -create_first=false -rebuild=false - -mkchrootpkg_args=(-c -n) - -cmd=${0##*/} -repo=${cmd#*-} -base_devel=('base-devel') -chroots_pkg="${CHROOTS_DIR}/buildpkg" -arch=$(uname -m) - -usage() { - echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]" - echo " -r Create chroots in this directory" - echo " -d Destination repo chroot" - echo ' -c Recreate the chroot before building' - echo ' -m Major rebuild' - echo ' -N Disable check() function' - echo ' -C Run checkpkg after built' - echo ' -h This help' - echo '' - echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}" - echo '' - exit "$1" -} - -opts='hcCNmr:d:' - -while getopts "${opts}" arg; do - case "${arg}" in - r) chroots_pkg="$OPTARG" ;; - d) repo="$OPTARG" ;; - c) create_first=true ;; - m) rebuild=true ;; - C) mkchrootpkg_args+=(-C) ;; - N) mkchrootpkg_args+=(-N) ;; - h|?) usage 0 ;; - *) echo "invalid argument '%s'" "${arg}"; usage 1 ;; - esac -done - -if ${rebuild};then - repo='default' -else - case ${repo} in - system|world|galaxy) repo='default' ;; - lib32*) base_devel+=('multilib-devel') ;; - galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;; - esac -fi - -get_pacman_conf "${repo}" - -get_makepkg_conf - -if [[ -f "${DATADIR}/setarch-aliases.d/${arch}" ]]; then - read -r set_arch < "${DATADIR}/setarch-aliases.d/${arch}" -else - set_arch="${arch}" -fi - -check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME - -mkchrootpkg_args+=("${@:$OPTIND}") - -if ${create_first} || [[ ! -d "${chroots_pkg}/${repo}-${arch}" ]];then - msg "Creating chroot for [%s] (%s)..." "${repo}" "${arch}" - - for copy in "${chroots_pkg}/${repo}-${arch}"/*; do - [[ -d $copy ]] || continue - msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")" - - lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy" - - subvolume_delete_recursive "${copy}" - rm -rf --one-file-system "${copy}" - done - lock_close 9 - - rm -rf --one-file-system "${chroots_pkg}/${repo}-${arch}" - (umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}") - setarch "${set_arch}" mkchroot \ - -C "${pacman_conf}" \ - -M "${makepkg_conf}" \ - "${chroots_pkg}/${repo}-${arch}/root" \ - "${base_devel[@]}" || abort -else - lock 9 "${chroots_pkg}/${repo}-${arch}/root.lock" "Locking clean chroot" - chroot-run \ - -C "${pacman_conf}" \ - -M "${makepkg_conf}" \ - "${chroots_pkg}/${repo}-${arch}/root" \ - pacman -Syuu --noconfirm || abort -fi - -# Always build official packages reproducibly -if [[ ! -v SOURCE_DATE_EPOCH ]]; then - export SOURCE_DATE_EPOCH=$(date +%s) -fi - -msg "Building in chroot for [%s] (%s)..." "${repo}" "${arch}" -exec mkchrootpkg -r "${chroots_pkg}/${repo}-${arch}" "${mkchrootpkg_args[@]}" diff --git a/artools/0.26.1/artools/bin/pkg/buildpkg.in b/artools/0.26.1/artools/bin/pkg/buildpkg.in deleted file mode 100644 index 45ce33b..0000000 --- a/artools/0.26.1/artools/bin/pkg/buildpkg.in +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/base/message.sh) -m4_include(lib/base/common.sh) -m4_include(lib/base/chroot.sh) - -create_first=false -rebuild=false - -mkchrootpkg_args=(-c -n) - -cmd=${0##*/} -repo=${cmd#*-} -base_devel=('base-devel') -chroots_pkg="${CHROOTS_DIR}/buildpkg" -arch=$(uname -m) - -usage() { - echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]" - echo " -r Create chroots in this directory" - echo " -d Destination repo chroot" - echo ' -c Recreate the chroot before building' - echo ' -m Major rebuild' - echo ' -N Disable check() function' - echo ' -C Run checkpkg after built' - echo ' -h This help' - echo '' - echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}" - echo '' - exit "$1" -} - -opts='hcCNmr:d:' - -while getopts "${opts}" arg; do - case "${arg}" in - r) chroots_pkg="$OPTARG" ;; - d) repo="$OPTARG" ;; - c) create_first=true ;; - m) rebuild=true ;; - C) mkchrootpkg_args+=(-C) ;; - N) mkchrootpkg_args+=(-N) ;; - h|?) usage 0 ;; - *) echo "invalid argument '%s'" "${arg}"; usage 1 ;; - esac -done - -if ${rebuild};then - repo='default' -else - case ${repo} in - system|world|galaxy) repo='default' ;; - lib32*) base_devel+=('multilib-devel') ;; - galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;; - esac -fi - -get_pacman_conf "${repo}" - -get_makepkg_conf - -if [[ -f "${DATADIR}/setarch-aliases.d/${arch}" ]]; then - read -r set_arch < "${DATADIR}/setarch-aliases.d/${arch}" -else - set_arch="${arch}" -fi - -check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME - -mkchrootpkg_args+=("${@:$OPTIND}") - -if ${create_first} || [[ ! -d "${chroots_pkg}/${repo}-${arch}" ]];then - msg "Creating chroot for [%s] (%s)..." "${repo}" "${arch}" - - for copy in "${chroots_pkg}/${repo}-${arch}"/*; do - [[ -d $copy ]] || continue - msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")" - - lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy" - - subvolume_delete_recursive "${copy}" - rm -rf --one-file-system "${copy}" - done - lock_close 9 - - rm -rf --one-file-system "${chroots_pkg}/${repo}-${arch}" - (umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}") - setarch "${set_arch}" mkchroot \ - -C "${pacman_conf}" \ - -M "${makepkg_conf}" \ - "${chroots_pkg}/${repo}-${arch}/root" \ - "${base_devel[@]}" || abort -else - lock 9 "${chroots_pkg}/${repo}-${arch}/root.lock" "Locking clean chroot" - chroot-run \ - -C "${pacman_conf}" \ - -M "${makepkg_conf}" \ - "${chroots_pkg}/${repo}-${arch}/root" \ - pacman -Syuu --noconfirm || abort -fi - -# Always build official packages reproducibly -if [[ ! -v SOURCE_DATE_EPOCH ]]; then - export SOURCE_DATE_EPOCH=$(date +%s) -fi - -msg "Building in chroot for [%s] (%s)..." "${repo}" "${arch}" -exec mkchrootpkg -r "${chroots_pkg}/${repo}-${arch}" "${mkchrootpkg_args[@]}" diff --git a/artools/0.26.1/artools/bin/pkg/buildtree b/artools/0.26.1/artools/bin/pkg/buildtree deleted file mode 100755 index 1005a72..0000000 --- a/artools/0.26.1/artools/bin/pkg/buildtree +++ /dev/null @@ -1,741 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common functions - -get_compliant_name(){ - local gitname="$1" - case "$gitname" in - *+) gitname=${gitname//+/plus} - esac - echo "$gitname" -} - -get_pkg_org(){ - local pkg="$1" org sub - case ${pkg} in - ruby-*) org="packagesRuby" ;; - perl-*) org="packagesPerl" ;; - python-*|python2-*) org="packagesPython" ;; - *) sub=${pkg:0:1}; org="packages${sub^^}" ;; - esac - echo "$org" -} - -api_put() { - curl -s -X PUT "$@" -} - -api_delete() { - curl -s -X DELETE "$@" -} - -api_post() { - curl -s -X POST "$@" -} - -#}}} - -#!/hint/bash - -#{{{ git - -get_local_head(){ - git log --pretty=%H ...refs/heads/master^ | head -n 1 -} - -get_remote_head(){ - git ls-remote origin -h refs/heads/master | cut -f1 -} - -has_changeset(){ - local head_l="$1" head_r="$2" - if [[ "$head_l" == "$head_r" ]]; then - msg2 "remote changes: no" - return 1 - else - msg2 "remote changes: yes" - return 0 - fi -} - -pull_tree(){ - local tree="$1" local_head="$2" os="${3:-Artix}" - local remote_head - remote_head=$(get_remote_head) - - msg "Checking (%s) (%s)" "${tree}" "$os" - if has_changeset "${local_head}" "${remote_head}";then - git pull origin master - fi -} - -#}}} - -#!/hint/bash - -#{{{ gitea api - -add_team_to_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Adding team (%s) to package repo [%s]" "$team" "$name" - - api_put "$url" -H "accept: application/json" -} - -remove_team_from_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Removing team (%s) from package repo [%s]" "$team" "$name" - - api_delete "$url" -H "accept: application/json" -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - -#!/hint/bash - -#{{{ jenkins - -write_jenkinsfile(){ - local pkg="$1" - local jenkins=$pkg/Jenkinsfile - - echo "@Library('artix-ci') import org.artixlinux.RepoPackage" > "$jenkins" - { - echo '' - echo 'PackagePipeline(new RepoPackage(this))' - echo '' - } >> "$jenkins" - - git add "$jenkins" -} - -write_agentyaml(){ - local pkg="$1" - local agent="$pkg"/.artixlinux/agent.yaml label='master' - [[ -d $pkg/.artixlinux ]] || mkdir "$pkg"/.artixlinux - - echo '---' > "$agent" - { - echo '' - echo "label: $label" - echo '' - } >> "$agent" - - git add "$agent" -} - -commit_jenkins_files(){ - local pkg="$1" - - write_jenkinsfile "$pkg" - write_agentyaml "$pkg" - - git commit -m "initial commit" -} - -#}}} - - -#{{{ new git repo - -subrepo_clone(){ - local pkg="$1" - local org="$2" - local name="$3" - - msg2 "Subrepo clone [%s] from (%s)" "$pkg" "$org/$name" - git subrepo clone "${GIT_SSH}":"$org"/"$name".git "$pkg" -} - -subrepo_new(){ - cd "${TREE_DIR_ARTIX}/${group}" || return - - local org gitname - org=$(get_pkg_org "${package}") - gitname=$(get_compliant_name "${package}") - - gitearepo -cr "$gitname" - - add_team_to_repo "$gitname" "$org" "${team}" - - subrepo_clone "${package}" "$org" "$gitname" - - mkdir -p "${TREE_DIR_ARTIX}/${group}/${package}/trunk" - - commit_jenkins_files "${package}" -} - -#}}} - -#{{{ pull - -clone_tree(){ - local url="$1" tree="$2" os="${3:-Artix}" - - msg "Cloning %s (%s) ..." "$tree" "$os" - - git clone "$url/$tree".git -} - -pull_tree_arch(){ - cd "${TREE_DIR_ARCH}" || return - for tree in "${ARCH_TREE[@]}";do - if [[ -d "${tree}" ]];then - ( cd "${tree}" || return - pull_tree "${tree}" "$(get_local_head)" "Arch" - ) - else - clone_tree "${HOST_TREE_ARCH}" "${tree}" "Arch" - fi - done -} - -config_tree(){ - local tree="$1" - cd "$tree" || return - git config --bool pull.rebase true - git config commit.gpgsign true - if [[ -n "${GPGKEY}" ]];then - git config user.signingkey "${GPGKEY}" - else - warning "No GPGKEY configured in makepkg.conf!" - fi - cd .. -} - -pull_tree_artix(){ - local repos=() - if ${sync_group}; then - repos=("${group}") - else - repos=("${ARTIX_TREE[@]}") - fi - cd "${TREE_DIR_ARTIX}" || return - for tree in "${repos[@]}"; do - if [[ -d "${tree}" ]];then - config_tree "${tree}" - ( cd "${tree}" || return - pull_tree "${tree}" "$(get_local_head)" - ) - else - clone_tree "${host_tree_artix}" "${tree}" - config_tree "${tree}" - fi - done -} - -#}}} - -#{{{ patch - -patch_pkg(){ - local pkgpath="$1" - local pkg=${pkgpath%/*} - pkg=${pkg##*/} - sed -e 's|arch-meson|artix-meson|' -i "$pkgpath"/PKGBUILD - case $pkg in - glibc) - msg2 "Patching %s" "$pkg" - sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \ - -e '/nscd.service/d' \ - -i "$pkgpath"/PKGBUILD - ;; - linux|linux-lts) - msg2 "Patching %s" "$pkg" - sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i "$pkgpath"/PKGBUILD - sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \ - -i "$pkgpath"/config - ;; - bash) - msg2 "Patching %s" "$pkg" - # shellcheck disable=2016 - sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \ - -e "s|etc/bash.|etc/bash/|g" \ - -e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \ - -i "$pkgpath"/PKGBUILD - ( cd "$pkgpath" || return - patch -Np 1 -i "${DATADIR}"/patches/artix-bash.patch - updpkgsums - ) - ;; - gstreamer|gst-plugins-*|licenses) - msg2 "Patching %s" "$pkg" - sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \ - -e 's|(Arch Linux)|(Artix Linux)|' \ - -i "$pkgpath"/PKGBUILD - ;; - esac -} - -#}}} - -#{{{ pkgbuild import - -sync_pkg(){ - local rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) - local src="$1" dest="$2" - msg "Sync from Arch [%s] to Artix [%s]" "${src##*archlinux/}" "${dest##*artixlinux/}" - rsync "${rsync_args[@]}" "$src"/ "$dest"/ -} - -show_deps(){ - local src="$1" archver - - # shellcheck disable=1090 - . "$src"/PKGBUILD 2>/dev/null - - archver=$(get_full_version) - - # shellcheck disable=2154 - [[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}" - # shellcheck disable=2154 - msg2 "pkgname: %s" "${pkgname[*]}" - # shellcheck disable=2154 - [[ -n "${pkgdesc}" ]] && msg2 "pkgdesc: %s" "${pkgdesc}" - # shellcheck disable=2154 - msg2 "Arch Version: %s" "$archver" - # shellcheck disable=2154 - msg2 "arch: %s" "$arch" - # shellcheck disable=2154 - [[ -n ${makedepends[*]} ]] && msg2 "makedepends: %s" "${makedepends[*]}" - # shellcheck disable=2154 - [[ -n ${checkdepends[*]} ]] && msg2 "checkdepends: %s" "${checkdepends[*]}" - # shellcheck disable=2154 - [[ -n ${depends[*]} ]] && msg2 "depends: %s" "${depends[*]}" - # shellcheck disable=2154 - [[ -n ${optdepends[*]} ]] && msg2 "optdepends: %s" "${optdepends[@]}" -} - -from_arch(){ - cd "${TREE_DIR_ARTIX}" || return - - local srcpath repo archpath artixpath - srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}" - - repo=$(find_repo "$srcpath") - msg "repo: %s" "${repo#*/}" - - archpath=$srcpath/$repo - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - - show_deps "$archpath" - - if [[ -f "$artixpath"/.gitrepo ]]; then - artixpath="$artixpath"/trunk - - if [[ -d "$artixpath" ]];then - sync_pkg "$archpath" "$artixpath" - patch_pkg "$artixpath" - fi - else - die "Package '%s' does not exist!" "${package}" - fi -} - -#}}} - -view_build(){ - local archpath repo - archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}" - repo=$(find_repo "${archpath}") - archpath=$archpath/$repo - msg "repo: %s" "${repo#*/}" - show_deps "$archpath" -} - -check_tree(){ - local archpath artixpath group - archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}" - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - group=${artixpath%/*} - msg "group: %s" "${group##*/}" - - [[ -z $artixpath ]] && msg2 "exists: %s" "no" - [[ -n $artixpath ]] && msg2 "exists: %s" "yes" -} - -sync_repos(){ - ${sync_arch} && pull_tree_arch - ${sync_artix} && pull_tree_artix -} - -load_makepkg_config - -load_valid_names - -testing=true -staging=true -unstable=false - -sync=false -sync_arch=true -sync_artix=true -import=false -view=false -createnew=false -sync_group=false -check=false - -package='' - -team='community' -group="${ARTIX_TREE[0]}" - -host_tree_artix="${GIT_SSH}:artixlinux" - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -p Package name' - echo ' -t Team name (only with -n)' - echo ' Possible values: core,extra,community,multilib' - echo " [default: ${team}]" - echo ' -g Group name, the superrepo (only with -n or -s)' - echo " [default: ${group}]" - echo " -s Clone or pull repos" - echo " -a Don't clone or pull arch repos" - echo " -b Don't clone or pull artix repos" - echo ' -i Import a package from arch repos' - echo ' -n New remote subrepo and clone it' - echo ' -v Check if a package is in the artix tree(s)' - echo ' -c View package depends' - echo ' -x Exclude testing (only with -i)' - echo ' -y Exclude staging (only with -i)' - echo ' -z Include kde & gnome unstable (only with -i)' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:t:g:sinabcvxyzh' - -while getopts "${opts}" arg; do - case "${arg}" in - p) package="$OPTARG" ;; - t) team="$OPTARG" ;; - g) group="$OPTARG"; sync_group=true ;; - s) sync=true ;; - a) sync_arch=false ;; - b) sync_artix=false ;; - i) import=true ;; - n) createnew=true ;; - c) check=true ;; - v) view=true ;; - x) testing=false ;; - y) staging=false ;; - z) unstable=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -set_arch_repos "$testing" "$staging" "$unstable" - -${sync} && sync_repos - -${view} && view_build - -${check} && check_tree - -${import} && from_arch - -${createnew} && subrepo_new diff --git a/artools/0.26.1/artools/bin/pkg/buildtree.in b/artools/0.26.1/artools/bin/pkg/buildtree.in deleted file mode 100644 index 9831412..0000000 --- a/artools/0.26.1/artools/bin/pkg/buildtree.in +++ /dev/null @@ -1,332 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-pkg.sh) -m4_include(lib/base/message.sh) -m4_include(lib/pkg/common.sh) -m4_include(lib/pkg/git.sh) -m4_include(lib/pkg/gitea.sh) -m4_include(lib/pkg/repo.sh) -m4_include(lib/pkg/jenkins.sh) - -#{{{ new git repo - -subrepo_clone(){ - local pkg="$1" - local org="$2" - local name="$3" - - msg2 "Subrepo clone [%s] from (%s)" "$pkg" "$org/$name" - git subrepo clone "${GIT_SSH}":"$org"/"$name".git "$pkg" -} - -subrepo_new(){ - cd "${TREE_DIR_ARTIX}/${group}" || return - - local org gitname - org=$(get_pkg_org "${package}") - gitname=$(get_compliant_name "${package}") - - gitearepo -cr "$gitname" - - add_team_to_repo "$gitname" "$org" "${team}" - - subrepo_clone "${package}" "$org" "$gitname" - - mkdir -p "${TREE_DIR_ARTIX}/${group}/${package}/trunk" - - commit_jenkins_files "${package}" -} - -#}}} - -#{{{ pull - -clone_tree(){ - local url="$1" tree="$2" os="${3:-Artix}" - - msg "Cloning %s (%s) ..." "$tree" "$os" - - git clone "$url/$tree".git -} - -pull_tree_arch(){ - cd "${TREE_DIR_ARCH}" || return - for tree in "${ARCH_TREE[@]}";do - if [[ -d "${tree}" ]];then - ( cd "${tree}" || return - pull_tree "${tree}" "$(get_local_head)" "Arch" - ) - else - clone_tree "${HOST_TREE_ARCH}" "${tree}" "Arch" - fi - done -} - -config_tree(){ - local tree="$1" - cd "$tree" || return - git config --bool pull.rebase true - git config commit.gpgsign true - if [[ -n "${GPGKEY}" ]];then - git config user.signingkey "${GPGKEY}" - else - warning "No GPGKEY configured in makepkg.conf!" - fi - cd .. -} - -pull_tree_artix(){ - local repos=() - if ${sync_group}; then - repos=("${group}") - else - repos=("${ARTIX_TREE[@]}") - fi - cd "${TREE_DIR_ARTIX}" || return - for tree in "${repos[@]}"; do - if [[ -d "${tree}" ]];then - config_tree "${tree}" - ( cd "${tree}" || return - pull_tree "${tree}" "$(get_local_head)" - ) - else - clone_tree "${host_tree_artix}" "${tree}" - config_tree "${tree}" - fi - done -} - -#}}} - -#{{{ patch - -patch_pkg(){ - local pkgpath="$1" - local pkg=${pkgpath%/*} - pkg=${pkg##*/} - sed -e 's|arch-meson|artix-meson|' -i "$pkgpath"/PKGBUILD - case $pkg in - glibc) - msg2 "Patching %s" "$pkg" - sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \ - -e '/nscd.service/d' \ - -i "$pkgpath"/PKGBUILD - ;; - linux|linux-lts) - msg2 "Patching %s" "$pkg" - sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i "$pkgpath"/PKGBUILD - sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \ - -i "$pkgpath"/config - ;; - bash) - msg2 "Patching %s" "$pkg" - # shellcheck disable=2016 - sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \ - -e "s|etc/bash.|etc/bash/|g" \ - -e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \ - -i "$pkgpath"/PKGBUILD - ( cd "$pkgpath" || return - patch -Np 1 -i "${DATADIR}"/patches/artix-bash.patch - updpkgsums - ) - ;; - gstreamer|gst-plugins-*|licenses) - msg2 "Patching %s" "$pkg" - sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \ - -e 's|(Arch Linux)|(Artix Linux)|' \ - -i "$pkgpath"/PKGBUILD - ;; - esac -} - -#}}} - -#{{{ pkgbuild import - -sync_pkg(){ - local rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) - local src="$1" dest="$2" - msg "Sync from Arch [%s] to Artix [%s]" "${src##*archlinux/}" "${dest##*artixlinux/}" - rsync "${rsync_args[@]}" "$src"/ "$dest"/ -} - -show_deps(){ - local src="$1" archver - - # shellcheck disable=1090 - . "$src"/PKGBUILD 2>/dev/null - - archver=$(get_full_version) - - # shellcheck disable=2154 - [[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}" - # shellcheck disable=2154 - msg2 "pkgname: %s" "${pkgname[*]}" - # shellcheck disable=2154 - [[ -n "${pkgdesc}" ]] && msg2 "pkgdesc: %s" "${pkgdesc}" - # shellcheck disable=2154 - msg2 "Arch Version: %s" "$archver" - # shellcheck disable=2154 - msg2 "arch: %s" "$arch" - # shellcheck disable=2154 - [[ -n ${makedepends[*]} ]] && msg2 "makedepends: %s" "${makedepends[*]}" - # shellcheck disable=2154 - [[ -n ${checkdepends[*]} ]] && msg2 "checkdepends: %s" "${checkdepends[*]}" - # shellcheck disable=2154 - [[ -n ${depends[*]} ]] && msg2 "depends: %s" "${depends[*]}" - # shellcheck disable=2154 - [[ -n ${optdepends[*]} ]] && msg2 "optdepends: %s" "${optdepends[@]}" -} - -from_arch(){ - cd "${TREE_DIR_ARTIX}" || return - - local srcpath repo archpath artixpath - srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}" - - repo=$(find_repo "$srcpath") - msg "repo: %s" "${repo#*/}" - - archpath=$srcpath/$repo - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - - show_deps "$archpath" - - if [[ -f "$artixpath"/.gitrepo ]]; then - artixpath="$artixpath"/trunk - - if [[ -d "$artixpath" ]];then - sync_pkg "$archpath" "$artixpath" - patch_pkg "$artixpath" - fi - else - die "Package '%s' does not exist!" "${package}" - fi -} - -#}}} - -view_build(){ - local archpath repo - archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}" - repo=$(find_repo "${archpath}") - archpath=$archpath/$repo - msg "repo: %s" "${repo#*/}" - show_deps "$archpath" -} - -check_tree(){ - local archpath artixpath group - archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}" - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - group=${artixpath%/*} - msg "group: %s" "${group##*/}" - - [[ -z $artixpath ]] && msg2 "exists: %s" "no" - [[ -n $artixpath ]] && msg2 "exists: %s" "yes" -} - -sync_repos(){ - ${sync_arch} && pull_tree_arch - ${sync_artix} && pull_tree_artix -} - -load_makepkg_config - -load_valid_names - -testing=true -staging=true -unstable=false - -sync=false -sync_arch=true -sync_artix=true -import=false -view=false -createnew=false -sync_group=false -check=false - -package='' - -team='community' -group="${ARTIX_TREE[0]}" - -host_tree_artix="${GIT_SSH}:artixlinux" - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -p Package name' - echo ' -t Team name (only with -n)' - echo ' Possible values: core,extra,community,multilib' - echo " [default: ${team}]" - echo ' -g Group name, the superrepo (only with -n or -s)' - echo " [default: ${group}]" - echo " -s Clone or pull repos" - echo " -a Don't clone or pull arch repos" - echo " -b Don't clone or pull artix repos" - echo ' -i Import a package from arch repos' - echo ' -n New remote subrepo and clone it' - echo ' -v Check if a package is in the artix tree(s)' - echo ' -c View package depends' - echo ' -x Exclude testing (only with -i)' - echo ' -y Exclude staging (only with -i)' - echo ' -z Include kde & gnome unstable (only with -i)' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:t:g:sinabcvxyzh' - -while getopts "${opts}" arg; do - case "${arg}" in - p) package="$OPTARG" ;; - t) team="$OPTARG" ;; - g) group="$OPTARG"; sync_group=true ;; - s) sync=true ;; - a) sync_arch=false ;; - b) sync_artix=false ;; - i) import=true ;; - n) createnew=true ;; - c) check=true ;; - v) view=true ;; - x) testing=false ;; - y) staging=false ;; - z) unstable=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -set_arch_repos "$testing" "$staging" "$unstable" - -${sync} && sync_repos - -${view} && view_build - -${check} && check_tree - -${import} && from_arch - -${createnew} && subrepo_new diff --git a/artools/0.26.1/artools/bin/pkg/checkpkg b/artools/0.26.1/artools/bin/pkg/checkpkg deleted file mode 100755 index 0c94b49..0000000 --- a/artools/0.26.1/artools/bin/pkg/checkpkg +++ /dev/null @@ -1,303 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -shopt -s extglob - -load_makepkg_config - -#{{{ functions - -pkgver_equal() { - if [[ $1 = *-* && $2 = *-* ]]; then - # if both versions have a pkgrel, then they must be an exact match - [[ $1 = "$2" ]] - else - # otherwise, trim any pkgrel and compare the bare version. - [[ ${1%%-*} = "${2%%-*}" ]] - fi -} - -find_cached_package() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local targetname=$1 targetver=$2 targetarch=$3 - local dir pkg pkgbasename name ver rel arch r results - - for dir in "${searchdirs[@]}"; do - [[ -d $dir ]] || continue - - for pkg in "$dir"/*.pkg.tar?(.!(sig|*.*)); do - [[ -f $pkg ]] || continue - - # avoid adding duplicates of the same inode - for r in "${results[@]}"; do - [[ $r -ef $pkg ]] && continue 2 - done - - # split apart package filename into parts - pkgbasename=${pkg##*/} - pkgbasename=${pkgbasename%.pkg.tar*} - - arch=${pkgbasename##*-} - pkgbasename=${pkgbasename%-"$arch"} - - rel=${pkgbasename##*-} - pkgbasename=${pkgbasename%-"$rel"} - - ver=${pkgbasename##*-} - name=${pkgbasename%-"$ver"} - - if [[ $targetname = "$name" && $targetarch = "$arch" ]] && - pkgver_equal "$targetver" "$ver-$rel"; then - results+=("$pkg") - fi - done - done - - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -#}}} - -usage() { - cat <<- _EOF_ - Usage: ${BASH_SOURCE[0]##*/} [OPTIONS] - - Searches for a locally built package corresponding to the PKGBUILD, and - downloads the last version of that package from the Pacman repositories. - It then compares the list of .so files provided by each version of the - package and outputs if there are soname differences for the new package. - A directory is also created using mktemp with files containing a file - list for both packages and a library list for both packages. - - OPTIONS - -r, --rmdir Remove the temporary directory - -w, --warn Print a warning in case of differences - -h, --help Show this help text -_EOF_ -} - -RMDIR=0 -WARN=0 - -OPT_SHORT='rwh' -OPT_LONG=('rmdir' 'warn' 'help') -if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then - exit 1 -fi -set -- "${OPTRET[@]}" - -while :; do - case $1 in - -r|--rmdir) - RMDIR=1 - ;; - -w|--warn) - WARN=1 - ;; - -h|--help) - usage - exit 0 - ;; - --) - shift; break - ;; - esac - shift -done - -if [[ ! -f PKGBUILD ]]; then - die 'This must be run in the directory of a built package.' -fi - -# shellcheck source=PKGBUILD.proto -. ./PKGBUILD -if [[ ${arch[0]} == 'any' ]]; then - CARCH='any' -fi - -STARTDIR=$(pwd) -(( RMDIR )) && trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT -TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX) - -for _pkgname in "${pkgname[@]}"; do - comparepkg=$_pkgname - pkgurl= - target_pkgver=$(get_full_version "$_pkgname") - if ! pkgfile=$(find_cached_package "$_pkgname" "$target_pkgver" "$CARCH"); then - die 'tarball not found for package: %s' "${_pkgname}-$target_pkgver" - fi - - ln -s "$pkgfile" "$TEMPDIR" - - if (( $# )); then - case $1 in - /*|*/*) - pkgurl=file://$(readlink -m "$1") ;; - *.pkg.tar*) - pkgurl=$1 ;; - '') - ;; - *) - comparepkg=$1 ;; - esac - shift - fi - [[ -n $pkgurl ]] || pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$comparepkg") || - die "Couldn't download previous package for %s." "$comparepkg" - - oldpkg=${pkgurl##*/} - - if [[ ${oldpkg} = "${pkgfile##*/}" ]]; then - die "The built package (%s) is the one in the repo right now!" "$_pkgname" - fi - - if [[ $pkgurl = file://* || ( $pkgurl = /* && -f $pkgurl ) ]]; then - ln -s "${pkgurl#file://}" "$TEMPDIR/$oldpkg" - elif [[ -f "$PKGDEST/$oldpkg" ]]; then - ln -s "$PKGDEST/$oldpkg" "$TEMPDIR/$oldpkg" - elif [[ -f "$STARTDIR/$oldpkg" ]]; then - ln -s "$STARTDIR/$oldpkg" "$TEMPDIR/$oldpkg" - else - curl -fsLC - --retry 3 --retry-delay 3 -o "$TEMPDIR/$oldpkg" "$pkgurl" - fi - - bsdtar tf "$TEMPDIR/$oldpkg" | sort > "$TEMPDIR/filelist-$_pkgname-old" - bsdtar tf "$pkgfile" | sort > "$TEMPDIR/filelist-$_pkgname" - - sdiff -s "$TEMPDIR/filelist-$_pkgname-old" "$TEMPDIR/filelist-$_pkgname" - - find-libprovides "$TEMPDIR/$oldpkg" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname-old" - find-libprovides "$pkgfile" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname" - if ! diff_output="$(sdiff -s "$TEMPDIR/libraries-$_pkgname-old" "$TEMPDIR/libraries-$_pkgname")"; then - message="Sonames differ in $_pkgname!" - (( WARN )) && warning "$message" || msg "$message" - echo "$diff_output" - else - msg "No soname differences for %s." "$_pkgname" - fi -done - -(( RMDIR )) || msg "Files saved to %s" "$TEMPDIR" diff --git a/artools/0.26.1/artools/bin/pkg/checkpkg.in b/artools/0.26.1/artools/bin/pkg/checkpkg.in deleted file mode 100644 index 737dac2..0000000 --- a/artools/0.26.1/artools/bin/pkg/checkpkg.in +++ /dev/null @@ -1,206 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) - -shopt -s extglob - -load_makepkg_config - -#{{{ functions - -pkgver_equal() { - if [[ $1 = *-* && $2 = *-* ]]; then - # if both versions have a pkgrel, then they must be an exact match - [[ $1 = "$2" ]] - else - # otherwise, trim any pkgrel and compare the bare version. - [[ ${1%%-*} = "${2%%-*}" ]] - fi -} - -find_cached_package() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local targetname=$1 targetver=$2 targetarch=$3 - local dir pkg pkgbasename name ver rel arch r results - - for dir in "${searchdirs[@]}"; do - [[ -d $dir ]] || continue - - for pkg in "$dir"/*.pkg.tar?(.!(sig|*.*)); do - [[ -f $pkg ]] || continue - - # avoid adding duplicates of the same inode - for r in "${results[@]}"; do - [[ $r -ef $pkg ]] && continue 2 - done - - # split apart package filename into parts - pkgbasename=${pkg##*/} - pkgbasename=${pkgbasename%.pkg.tar*} - - arch=${pkgbasename##*-} - pkgbasename=${pkgbasename%-"$arch"} - - rel=${pkgbasename##*-} - pkgbasename=${pkgbasename%-"$rel"} - - ver=${pkgbasename##*-} - name=${pkgbasename%-"$ver"} - - if [[ $targetname = "$name" && $targetarch = "$arch" ]] && - pkgver_equal "$targetver" "$ver-$rel"; then - results+=("$pkg") - fi - done - done - - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -#}}} - -usage() { - cat <<- _EOF_ - Usage: ${BASH_SOURCE[0]##*/} [OPTIONS] - - Searches for a locally built package corresponding to the PKGBUILD, and - downloads the last version of that package from the Pacman repositories. - It then compares the list of .so files provided by each version of the - package and outputs if there are soname differences for the new package. - A directory is also created using mktemp with files containing a file - list for both packages and a library list for both packages. - - OPTIONS - -r, --rmdir Remove the temporary directory - -w, --warn Print a warning in case of differences - -h, --help Show this help text -_EOF_ -} - -RMDIR=0 -WARN=0 - -OPT_SHORT='rwh' -OPT_LONG=('rmdir' 'warn' 'help') -if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then - exit 1 -fi -set -- "${OPTRET[@]}" - -while :; do - case $1 in - -r|--rmdir) - RMDIR=1 - ;; - -w|--warn) - WARN=1 - ;; - -h|--help) - usage - exit 0 - ;; - --) - shift; break - ;; - esac - shift -done - -if [[ ! -f PKGBUILD ]]; then - die 'This must be run in the directory of a built package.' -fi - -# shellcheck source=PKGBUILD.proto -. ./PKGBUILD -if [[ ${arch[0]} == 'any' ]]; then - CARCH='any' -fi - -STARTDIR=$(pwd) -(( RMDIR )) && trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT -TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX) - -for _pkgname in "${pkgname[@]}"; do - comparepkg=$_pkgname - pkgurl= - target_pkgver=$(get_full_version "$_pkgname") - if ! pkgfile=$(find_cached_package "$_pkgname" "$target_pkgver" "$CARCH"); then - die 'tarball not found for package: %s' "${_pkgname}-$target_pkgver" - fi - - ln -s "$pkgfile" "$TEMPDIR" - - if (( $# )); then - case $1 in - /*|*/*) - pkgurl=file://$(readlink -m "$1") ;; - *.pkg.tar*) - pkgurl=$1 ;; - '') - ;; - *) - comparepkg=$1 ;; - esac - shift - fi - [[ -n $pkgurl ]] || pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$comparepkg") || - die "Couldn't download previous package for %s." "$comparepkg" - - oldpkg=${pkgurl##*/} - - if [[ ${oldpkg} = "${pkgfile##*/}" ]]; then - die "The built package (%s) is the one in the repo right now!" "$_pkgname" - fi - - if [[ $pkgurl = file://* || ( $pkgurl = /* && -f $pkgurl ) ]]; then - ln -s "${pkgurl#file://}" "$TEMPDIR/$oldpkg" - elif [[ -f "$PKGDEST/$oldpkg" ]]; then - ln -s "$PKGDEST/$oldpkg" "$TEMPDIR/$oldpkg" - elif [[ -f "$STARTDIR/$oldpkg" ]]; then - ln -s "$STARTDIR/$oldpkg" "$TEMPDIR/$oldpkg" - else - curl -fsLC - --retry 3 --retry-delay 3 -o "$TEMPDIR/$oldpkg" "$pkgurl" - fi - - bsdtar tf "$TEMPDIR/$oldpkg" | sort > "$TEMPDIR/filelist-$_pkgname-old" - bsdtar tf "$pkgfile" | sort > "$TEMPDIR/filelist-$_pkgname" - - sdiff -s "$TEMPDIR/filelist-$_pkgname-old" "$TEMPDIR/filelist-$_pkgname" - - find-libprovides "$TEMPDIR/$oldpkg" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname-old" - find-libprovides "$pkgfile" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname" - if ! diff_output="$(sdiff -s "$TEMPDIR/libraries-$_pkgname-old" "$TEMPDIR/libraries-$_pkgname")"; then - message="Sonames differ in $_pkgname!" - (( WARN )) && warning "$message" || msg "$message" - echo "$diff_output" - else - msg "No soname differences for %s." "$_pkgname" - fi -done - -(( RMDIR )) || msg "Files saved to %s" "$TEMPDIR" diff --git a/artools/0.26.1/artools/bin/pkg/checkrepo b/artools/0.26.1/artools/bin/pkg/checkrepo deleted file mode 100755 index afed698..0000000 --- a/artools/0.26.1/artools/bin/pkg/checkrepo +++ /dev/null @@ -1,550 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - -#!/hint/bash - -#{{{ table - -msg_table_header(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" -} - -msg_row_yellow(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_green(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_red(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" -} - -#}}} - - -#{{{ db libs - -extract_db() { - local u="$1" cdir="$2" - rm -rf "$cdir" - mkdir -p "$cdir" - msg2 "%s" "${cdir##*/}" - curl -L -s "$u" | bsdtar -xf - -C "$cdir" -} - -update_db_cache(){ - msg "Updating database cache ..." - local cachedir url - for repo in "${searchrepos[@]}"; do - cachedir=${db_cache_dir}/linksdb/$repo - url=${REPOS_MIRROR}/$repo/os/${CARCH}/$repo.${linksdb_ext} - extract_db "$url" "$cachedir" - done - msg "Done" -} - -#}}} - -#{{{ sogrep - -query_db() { - for repo in "${searchrepos[@]}"; do - local db - db=${db_cache_dir}/linksdb/$repo/ - if [[ -d ${db} ]]; then - while read -rd '' pkg; do - read -r match - pkg=${pkg#${db}} - pkg="${pkg%/*}" - msg_row "${tableQ}" "$repo" "$pkg" "${match}" - done < <(grep -rZ "$library" "$db") | sort -u - fi - done -} - -#}}} - -#{{{ check db - -is_db_entry() { - local pkgname="$1" repo="${REPOS[$2]}" entry - entry=${db_cache_dir}/linksdb/$repo/$pkgname - - if [[ -d "$entry" ]];then - return 0 - fi - return 1 -} - -check_db(){ - local pkgpath="${1}" - - for repo in "${!REPOS[@]}"; do - - local pkgbuild artixver - if [[ -f $pkgpath/$repo/PKGBUILD ]]; then - pkgbuild=$pkgpath/$repo/PKGBUILD - - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - artixver=$(get_full_version) - for name in "${pkgname[@]}"; do - if ! is_db_entry "$name-$artixver" "$repo"; then - msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false" - else - ${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true" - fi - done - unset artixver pkgbuild pkgver epoch pkgname pkgbase - fi - done -} - -#}}} - -# {{{ check obsolete - -show_obsolete_table() { - local arch_mirror='https://mirror.f4st.host/archlinux' - - local arch_repo artix_repo artix_db arch_db url - arch_repo="${searchrepos[@]}" - artix_repo="${REPOS[$arch_repo]}" - - artix_db="${db_cache_dir}/artixdb/${artix_repo}" - arch_db="${db_cache_dir}/archdb/${arch_repo}" - - msg "Updating database cache ..." - url=${REPOS_MIRROR}/${artix_repo}/os/$CARCH/${artix_repo}.${db_ext} - extract_db "$url" "${artix_db}" - - url=${arch_mirror}/${arch_repo}/os/$CARCH/${arch_repo}.${db_ext} - extract_db "$url" "${arch_db}" - msg "Done" - - msg_table_header "${tableQ}" "Repo" "Package" "Obsolete" - for p in "${artix_db}"/*; do - local pkg rel - pkg=${p##*/} - rel=${pkg##*-} - rel=${rel%.*} - pkg=${pkg%-*} - local p="$pkg-$rel" - - if [[ "$p" != *openrc* ]] && [[ "$p" != *runit* ]] \ - && [[ "$p" != *s6* ]] && [[ "$p" != *suite66* ]] \ - && [[ "$p" != *eudev* ]] && [[ "$p" != *elogind* ]] \ - && [[ "$p" != *sysusers* ]] && [[ "$p" != *tmpfiles* ]] \ - && [[ "$p" != *execline* ]] && [[ "$p" != *skalibs* ]] \ - && [[ "$p" != *netifrc* ]] && [[ "$p" != *bootlogd* ]] \ - && [[ "$p" != *pam_rundir* ]] && [[ "$p" != *artools* ]] \ - && [[ "$p" != *archlinux* ]] && [[ "$p" != *iso-profiles* ]] \ - && [[ "$p" != *calamares* ]] && [[ "$p" != *iso-initcpio* ]] \ - && [[ "$p" != *dinit* ]] && [[ "$p" != *artix* ]]; then - if [[ ! -d "${arch_db}/$p" ]]; then - msg_row "${tableQ}" "${artix_repo}" "$p" "true" - fi - fi - done -} - -#}}} - -show_lib_table() { - msg_table_header "${tableQ}" "Repo" "Package" "Library" - query_db -} - -show_db_table(){ - msg_table_header "${tableU}" "Repo" "Package" "Version" "Database" - tree_loop check_db -} - -db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools" - -linksdb_ext="links.tar.${DBEXT}" -db_ext="db.tar.${DBEXT}" - -load_makepkg_config - -sync=false -check=false -query=false -all_db=false -obsolete=false - -readonly tableU="%-20s %-35s %-30s %-10s" -readonly tableQ="%-20s %-55s %s" - -load_valid_names - -#{{{ repo names arrays - -declare -A REPOS=( - [${valid_names[0]}]=system - [${valid_names[1]}]=world - [${valid_names[2]}]=galaxy - [${valid_names[3]}]=lib32 - [${valid_names[4]}]=gremlins - [${valid_names[5]}]=galaxy-gremlins - [${valid_names[6]}]=lib32-gremlins - [${valid_names[7]}]=goblins - [${valid_names[8]}]=galaxy-goblins - [${valid_names[9]}]=lib32-goblins - [${valid_names[11]}]=kde-wobble - [${valid_names[12]}]=gnome-wobble -) - -searchrepos=( - "${REPOS[${valid_names[11]}]}" - "${REPOS[${valid_names[12]}]}" - "${REPOS[${valid_names[7]}]}" - "${REPOS[${valid_names[8]}]}" - "${REPOS[${valid_names[9]}]}" - "${REPOS[${valid_names[4]}]}" - "${REPOS[${valid_names[5]}]}" - "${REPOS[${valid_names[6]}]}" - "${REPOS[${valid_names[0]}]}" - "${REPOS[${valid_names[1]}]}" - "${REPOS[${valid_names[2]}]}" - "${REPOS[${valid_names[3]}]}" -) - -#}}} - -usage() { - echo "Usage: ${0##*/} [options] (with -q [libname])" - echo ' -r Repo name to query' - echo ' [default: all]' - echo " -s Sync repo databases" - echo ' -c Check repos' - echo ' -a Show repo db (-c)' - echo ' -o Check for obsolete packages' - echo " -q Query repo databases for so libs" - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='r:qcsaoh' - -while getopts "${opts}" arg; do - case "${arg}" in - r) searchrepos=("$OPTARG") ;; - s) sync=true ;; - c) check=true ;; - a) all_db=true ;; - q) query=true ;; - o) obsolete=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -library="$1"; shift - -${sync} && update_db_cache - -${check} && show_db_table - -${query} && show_lib_table - -${obsolete} && show_obsolete_table diff --git a/artools/0.26.1/artools/bin/pkg/checkrepo.in b/artools/0.26.1/artools/bin/pkg/checkrepo.in deleted file mode 100644 index 5bf3e53..0000000 --- a/artools/0.26.1/artools/bin/pkg/checkrepo.in +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-pkg.sh) -m4_include(lib/base/message.sh) -m4_include(lib/pkg/repo.sh) -m4_include(lib/pkg/table.sh) - -#{{{ db libs - -extract_db() { - local u="$1" cdir="$2" - rm -rf "$cdir" - mkdir -p "$cdir" - msg2 "%s" "${cdir##*/}" - curl -L -s "$u" | bsdtar -xf - -C "$cdir" -} - -update_db_cache(){ - msg "Updating database cache ..." - local cachedir url - for repo in "${searchrepos[@]}"; do - cachedir=${db_cache_dir}/linksdb/$repo - url=${REPOS_MIRROR}/$repo/os/${CARCH}/$repo.${linksdb_ext} - extract_db "$url" "$cachedir" - done - msg "Done" -} - -#}}} - -#{{{ sogrep - -query_db() { - for repo in "${searchrepos[@]}"; do - local db - db=${db_cache_dir}/linksdb/$repo/ - if [[ -d ${db} ]]; then - while read -rd '' pkg; do - read -r match - pkg=${pkg#${db}} - pkg="${pkg%/*}" - msg_row "${tableQ}" "$repo" "$pkg" "${match}" - done < <(grep -rZ "$library" "$db") | sort -u - fi - done -} - -#}}} - -#{{{ check db - -is_db_entry() { - local pkgname="$1" repo="${REPOS[$2]}" entry - entry=${db_cache_dir}/linksdb/$repo/$pkgname - - if [[ -d "$entry" ]];then - return 0 - fi - return 1 -} - -check_db(){ - local pkgpath="${1}" - - for repo in "${!REPOS[@]}"; do - - local pkgbuild artixver - if [[ -f $pkgpath/$repo/PKGBUILD ]]; then - pkgbuild=$pkgpath/$repo/PKGBUILD - - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - artixver=$(get_full_version) - for name in "${pkgname[@]}"; do - if ! is_db_entry "$name-$artixver" "$repo"; then - msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false" - else - ${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true" - fi - done - unset artixver pkgbuild pkgver epoch pkgname pkgbase - fi - done -} - -#}}} - -# {{{ check obsolete - -show_obsolete_table() { - local arch_mirror='https://mirror.f4st.host/archlinux' - - local arch_repo artix_repo artix_db arch_db url - arch_repo="${searchrepos[@]}" - artix_repo="${REPOS[$arch_repo]}" - - artix_db="${db_cache_dir}/artixdb/${artix_repo}" - arch_db="${db_cache_dir}/archdb/${arch_repo}" - - msg "Updating database cache ..." - url=${REPOS_MIRROR}/${artix_repo}/os/$CARCH/${artix_repo}.${db_ext} - extract_db "$url" "${artix_db}" - - url=${arch_mirror}/${arch_repo}/os/$CARCH/${arch_repo}.${db_ext} - extract_db "$url" "${arch_db}" - msg "Done" - - msg_table_header "${tableQ}" "Repo" "Package" "Obsolete" - for p in "${artix_db}"/*; do - local pkg rel - pkg=${p##*/} - rel=${pkg##*-} - rel=${rel%.*} - pkg=${pkg%-*} - local p="$pkg-$rel" - - if [[ "$p" != *openrc* ]] && [[ "$p" != *runit* ]] \ - && [[ "$p" != *s6* ]] && [[ "$p" != *suite66* ]] \ - && [[ "$p" != *eudev* ]] && [[ "$p" != *elogind* ]] \ - && [[ "$p" != *sysusers* ]] && [[ "$p" != *tmpfiles* ]] \ - && [[ "$p" != *execline* ]] && [[ "$p" != *skalibs* ]] \ - && [[ "$p" != *netifrc* ]] && [[ "$p" != *bootlogd* ]] \ - && [[ "$p" != *pam_rundir* ]] && [[ "$p" != *artools* ]] \ - && [[ "$p" != *archlinux* ]] && [[ "$p" != *iso-profiles* ]] \ - && [[ "$p" != *calamares* ]] && [[ "$p" != *iso-initcpio* ]] \ - && [[ "$p" != *dinit* ]] && [[ "$p" != *artix* ]]; then - if [[ ! -d "${arch_db}/$p" ]]; then - msg_row "${tableQ}" "${artix_repo}" "$p" "true" - fi - fi - done -} - -#}}} - -show_lib_table() { - msg_table_header "${tableQ}" "Repo" "Package" "Library" - query_db -} - -show_db_table(){ - msg_table_header "${tableU}" "Repo" "Package" "Version" "Database" - tree_loop check_db -} - -db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools" - -linksdb_ext="links.tar.${DBEXT}" -db_ext="db.tar.${DBEXT}" - -load_makepkg_config - -sync=false -check=false -query=false -all_db=false -obsolete=false - -readonly tableU="%-20s %-35s %-30s %-10s" -readonly tableQ="%-20s %-55s %s" - -load_valid_names - -#{{{ repo names arrays - -declare -A REPOS=( - [${valid_names[0]}]=system - [${valid_names[1]}]=world - [${valid_names[2]}]=galaxy - [${valid_names[3]}]=lib32 - [${valid_names[4]}]=gremlins - [${valid_names[5]}]=galaxy-gremlins - [${valid_names[6]}]=lib32-gremlins - [${valid_names[7]}]=goblins - [${valid_names[8]}]=galaxy-goblins - [${valid_names[9]}]=lib32-goblins - [${valid_names[11]}]=kde-wobble - [${valid_names[12]}]=gnome-wobble -) - -searchrepos=( - "${REPOS[${valid_names[11]}]}" - "${REPOS[${valid_names[12]}]}" - "${REPOS[${valid_names[7]}]}" - "${REPOS[${valid_names[8]}]}" - "${REPOS[${valid_names[9]}]}" - "${REPOS[${valid_names[4]}]}" - "${REPOS[${valid_names[5]}]}" - "${REPOS[${valid_names[6]}]}" - "${REPOS[${valid_names[0]}]}" - "${REPOS[${valid_names[1]}]}" - "${REPOS[${valid_names[2]}]}" - "${REPOS[${valid_names[3]}]}" -) - -#}}} - -usage() { - echo "Usage: ${0##*/} [options] (with -q [libname])" - echo ' -r Repo name to query' - echo ' [default: all]' - echo " -s Sync repo databases" - echo ' -c Check repos' - echo ' -a Show repo db (-c)' - echo ' -o Check for obsolete packages' - echo " -q Query repo databases for so libs" - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='r:qcsaoh' - -while getopts "${opts}" arg; do - case "${arg}" in - r) searchrepos=("$OPTARG") ;; - s) sync=true ;; - c) check=true ;; - a) all_db=true ;; - q) query=true ;; - o) obsolete=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -library="$1"; shift - -${sync} && update_db_cache - -${check} && show_db_table - -${query} && show_lib_table - -${obsolete} && show_obsolete_table diff --git a/artools/0.26.1/artools/bin/pkg/commitpkg b/artools/0.26.1/artools/bin/pkg/commitpkg deleted file mode 100755 index 72bbd41..0000000 --- a/artools/0.26.1/artools/bin/pkg/commitpkg +++ /dev/null @@ -1,596 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common functions - -get_compliant_name(){ - local gitname="$1" - case "$gitname" in - *+) gitname=${gitname//+/plus} - esac - echo "$gitname" -} - -get_pkg_org(){ - local pkg="$1" org sub - case ${pkg} in - ruby-*) org="packagesRuby" ;; - perl-*) org="packagesPerl" ;; - python-*|python2-*) org="packagesPython" ;; - *) sub=${pkg:0:1}; org="packages${sub^^}" ;; - esac - echo "$org" -} - -api_put() { - curl -s -X PUT "$@" -} - -api_delete() { - curl -s -X DELETE "$@" -} - -api_post() { - curl -s -X POST "$@" -} - -#}}} - -#!/hint/bash - -#{{{ git - -get_local_head(){ - git log --pretty=%H ...refs/heads/master^ | head -n 1 -} - -get_remote_head(){ - git ls-remote origin -h refs/heads/master | cut -f1 -} - -has_changeset(){ - local head_l="$1" head_r="$2" - if [[ "$head_l" == "$head_r" ]]; then - msg2 "remote changes: no" - return 1 - else - msg2 "remote changes: yes" - return 0 - fi -} - -pull_tree(){ - local tree="$1" local_head="$2" os="${3:-Artix}" - local remote_head - remote_head=$(get_remote_head) - - msg "Checking (%s) (%s)" "${tree}" "$os" - if has_changeset "${local_head}" "${remote_head}";then - git pull origin master - fi -} - -#}}} - -#!/hint/bash - -#{{{ gitea api - -add_team_to_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Adding team (%s) to package repo [%s]" "$team" "$name" - - api_put "$url" -H "accept: application/json" -} - -remove_team_from_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Removing team (%s) from package repo [%s]" "$team" "$name" - - api_delete "$url" -H "accept: application/json" -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - - -#{{{ functions - -push_tree(){ - local tree="$1" - msg "Update (%s)" "${tree}" - git push origin master -} - -subrepo_push(){ - local pkg="$1" - msg2 "Subrepo push (%s)" "$pkg" - git subrepo push "$pkg" || die "%s push failed" "$pkg" -} - -subrepo_clean(){ - local pkg="$1" - msg2 "Subrepo clean (%s)" "$pkg" - git subrepo clean "$pkg" -} - -subrepo_pull(){ - local pkg="$1" - msg2 "Subrepo pull (%s)" "$pkg" - git subrepo pull "$pkg" -} - -check_rebuild(){ - if [[ -d "$CARCH"/"${valid_names[10]}" ]] \ - && [[ "${repo_dest}" == "${valid_names[7]}" ]]; then - git rm -r "$CARCH"/"${valid_names[10]}" - git commit -m "switch from ${valid_names[10]} to ${valid_names[7]}" - elif [[ -d "$CARCH"/"${valid_names[7]}" ]] \ - && [[ "${repo_dest}" == "${valid_names[10]}" ]]; then - git rm -r "$CARCH"/"${valid_names[7]}" - git commit -m "switch from ${valid_names[7]} to ${valid_names[10]}" - fi -} - -check_team(){ - if [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ - [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[0]}" ]] || \ - [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ - [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ - [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ - [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[0]}" ]]; then - - local org gitname - org=$(get_pkg_org "${package}") - gitname=$(get_compliant_name "${package}") - add_team_to_repo "$gitname" "${org}" "${repo_dest}" - remove_team_from_repo "$gitname" "${org}" "${repo_src}" - fi -} - -path_config() { - [[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD - - # shellcheck disable=1090 - . "$pkgbuild" -} - -get_repo_commit_msg() { - echo "[${repo_src}] -> [${repo_dest}] '${package}-$(get_full_version)' ${action}" -} - -get_commit_msg() { - echo "[${repo_src}] '${package}-$(get_full_version)' ${action}" -} - -commit_pkg() { - local commit_msg pkg - if ${remove}; then - action='remove' - commit_msg=$(get_commit_msg) - msg "Action: %s" "$commit_msg" - if [[ "${repo_src}" == 'trunk' ]];then - git rm -r trunk - else - git rm -r "$CARCH/${repo_src}" - fi - else - action='modify' - commit_msg=$(get_commit_msg) - msg "Action: %s" "$commit_msg" - git add . - fi - git commit -m "$commit_msg" -} - -repo_commit_pkg() { - local commit_msg - - [[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}" - [[ ! -d "$CARCH" ]] && mkdir "$CARCH" - [[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}" - - if [[ "${repo_src}" == 'trunk' ]]; then - action='add' - commit_msg=$(get_repo_commit_msg) - msg "Action: %s" "$commit_msg" - check_rebuild - cp trunk/* "$CARCH/${repo_dest}"/ - else - action='move' - [[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild" - commit_msg=$(get_repo_commit_msg) - msg "Action: %s" "$commit_msg" - cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/ - git rm -r "$CARCH/${repo_src}" - fi - git add . - git commit -m "$commit_msg" -} - -run(){ - local artixpath head group - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - if [[ -n ${artixpath} ]];then - group=${artixpath%/*} - cd "${group}" || return - head=$(get_local_head) - - cd "${artixpath}" || return - - path_config - - if [[ "${cmd}" == 'commitpkg' ]];then - commit_pkg - else - repo_commit_pkg - fi - - cd "${group}" || return - - ${push} && pull_tree "${group##*/}" "$head" -# subrepo_pull "${package}" - subrepo_push "${package}" - subrepo_clean "${package}" - - ${push} && push_tree "${group##*/}" - - git prune - - [[ "${cmd}" != 'commitpkg' ]] && check_team - else - die "Package '%s' does not exist!" "${package}" - fi -} - -is_valid_repo(){ - local _valid=trunk - for repo in "${valid_names[@]}"; do - _valid=${repo:-}${repo:+|}$_valid - done - eval "case ${repo_src} in - ${_valid}) return 0 ;; - *) return 1 ;; - esac" -} - -#}}} - -load_makepkg_config - -load_valid_names - -repo_src='trunk' -package='' -remove=false -push=false - -pkgbuild=trunk/PKGBUILD - -cmd=${0##*/} -repo_dest=${cmd%pkg} - -usage() { - echo "Usage: ${0##*/} [options]" - echo " -s Source repository [default:${repo_src}]" - echo ' -p Package name' - echo ' -r Delete from repo (commitpkg only)' - echo ' -u Push' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:s:urh' - -while getopts "${opts}" arg; do - case "${arg}" in - s) repo_src="$OPTARG" ;; - p) package="$OPTARG" ;; - r) remove=true ;; - u) push=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -if is_valid_repo;then - run -else - die "source repository '%s' is not valid!" "${repo_src}" -fi diff --git a/artools/0.26.1/artools/bin/pkg/commitpkg.in b/artools/0.26.1/artools/bin/pkg/commitpkg.in deleted file mode 100644 index f292d1b..0000000 --- a/artools/0.26.1/artools/bin/pkg/commitpkg.in +++ /dev/null @@ -1,230 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-pkg.sh) -m4_include(lib/base/message.sh) -m4_include(lib/pkg/common.sh) -m4_include(lib/pkg/git.sh) -m4_include(lib/pkg/gitea.sh) -m4_include(lib/pkg/repo.sh) - -#{{{ functions - -push_tree(){ - local tree="$1" - msg "Update (%s)" "${tree}" - git push origin master -} - -subrepo_push(){ - local pkg="$1" - msg2 "Subrepo push (%s)" "$pkg" - git subrepo push "$pkg" || die "%s push failed" "$pkg" -} - -subrepo_clean(){ - local pkg="$1" - msg2 "Subrepo clean (%s)" "$pkg" - git subrepo clean "$pkg" -} - -subrepo_pull(){ - local pkg="$1" - msg2 "Subrepo pull (%s)" "$pkg" - git subrepo pull "$pkg" -} - -check_rebuild(){ - if [[ -d "$CARCH"/"${valid_names[10]}" ]] \ - && [[ "${repo_dest}" == "${valid_names[7]}" ]]; then - git rm -r "$CARCH"/"${valid_names[10]}" - git commit -m "switch from ${valid_names[10]} to ${valid_names[7]}" - elif [[ -d "$CARCH"/"${valid_names[7]}" ]] \ - && [[ "${repo_dest}" == "${valid_names[10]}" ]]; then - git rm -r "$CARCH"/"${valid_names[7]}" - git commit -m "switch from ${valid_names[7]} to ${valid_names[10]}" - fi -} - -check_team(){ - if [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ - [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[0]}" ]] || \ - [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ - [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ - [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ - [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[0]}" ]]; then - - local org gitname - org=$(get_pkg_org "${package}") - gitname=$(get_compliant_name "${package}") - add_team_to_repo "$gitname" "${org}" "${repo_dest}" - remove_team_from_repo "$gitname" "${org}" "${repo_src}" - fi -} - -path_config() { - [[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD - - # shellcheck disable=1090 - . "$pkgbuild" -} - -get_repo_commit_msg() { - echo "[${repo_src}] -> [${repo_dest}] '${package}-$(get_full_version)' ${action}" -} - -get_commit_msg() { - echo "[${repo_src}] '${package}-$(get_full_version)' ${action}" -} - -commit_pkg() { - local commit_msg pkg - if ${remove}; then - action='remove' - commit_msg=$(get_commit_msg) - msg "Action: %s" "$commit_msg" - if [[ "${repo_src}" == 'trunk' ]];then - git rm -r trunk - else - git rm -r "$CARCH/${repo_src}" - fi - else - action='modify' - commit_msg=$(get_commit_msg) - msg "Action: %s" "$commit_msg" - git add . - fi - git commit -m "$commit_msg" -} - -repo_commit_pkg() { - local commit_msg - - [[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}" - [[ ! -d "$CARCH" ]] && mkdir "$CARCH" - [[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}" - - if [[ "${repo_src}" == 'trunk' ]]; then - action='add' - commit_msg=$(get_repo_commit_msg) - msg "Action: %s" "$commit_msg" - check_rebuild - cp trunk/* "$CARCH/${repo_dest}"/ - else - action='move' - [[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild" - commit_msg=$(get_repo_commit_msg) - msg "Action: %s" "$commit_msg" - cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/ - git rm -r "$CARCH/${repo_src}" - fi - git add . - git commit -m "$commit_msg" -} - -run(){ - local artixpath head group - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - if [[ -n ${artixpath} ]];then - group=${artixpath%/*} - cd "${group}" || return - head=$(get_local_head) - - cd "${artixpath}" || return - - path_config - - if [[ "${cmd}" == 'commitpkg' ]];then - commit_pkg - else - repo_commit_pkg - fi - - cd "${group}" || return - - ${push} && pull_tree "${group##*/}" "$head" -# subrepo_pull "${package}" - subrepo_push "${package}" - subrepo_clean "${package}" - - ${push} && push_tree "${group##*/}" - - git prune - - [[ "${cmd}" != 'commitpkg' ]] && check_team - else - die "Package '%s' does not exist!" "${package}" - fi -} - -is_valid_repo(){ - local _valid=trunk - for repo in "${valid_names[@]}"; do - _valid=${repo:-}${repo:+|}$_valid - done - eval "case ${repo_src} in - ${_valid}) return 0 ;; - *) return 1 ;; - esac" -} - -#}}} - -load_makepkg_config - -load_valid_names - -repo_src='trunk' -package='' -remove=false -push=false - -pkgbuild=trunk/PKGBUILD - -cmd=${0##*/} -repo_dest=${cmd%pkg} - -usage() { - echo "Usage: ${0##*/} [options]" - echo " -s Source repository [default:${repo_src}]" - echo ' -p Package name' - echo ' -r Delete from repo (commitpkg only)' - echo ' -u Push' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:s:urh' - -while getopts "${opts}" arg; do - case "${arg}" in - s) repo_src="$OPTARG" ;; - p) package="$OPTARG" ;; - r) remove=true ;; - u) push=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -if is_valid_repo;then - run -else - die "source repository '%s' is not valid!" "${repo_src}" -fi diff --git a/artools/0.26.1/artools/bin/pkg/comparepkg b/artools/0.26.1/artools/bin/pkg/comparepkg deleted file mode 100755 index 6c4163a..0000000 --- a/artools/0.26.1/artools/bin/pkg/comparepkg +++ /dev/null @@ -1,506 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - -#!/hint/bash - -#{{{ table - -msg_table_header(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" -} - -msg_row_yellow(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_green(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_red(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" -} - -#}}} - - - -#{{{ upgrades, downgrades, moves - -remove_list(){ - local name="$1" - [[ -f "${TREE_DIR_ARTIX}"/$name.list ]] && rm "${TREE_DIR_ARTIX}"/"$name".list -} - -write_list(){ - local line="$1" name="$2" - printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/"$name".list -} - -compare_m(){ - case ${artixrepo} in - *testing*|*staging*|*rebuild) - if [[ "${a}" == "${b}" ]]; then - msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - elif [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then - msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - else - msg_row_green "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - if [[ -n "$archrepo" ]]; then - write_list "${a}:${b}:$pkg" pkg_moves - else - write_list "@repo@:${b}:$pkg" artix - fi - fi - ;; - esac -} - -compare_u(){ - if [ "$result" -eq -1 ];then -# local arel=${archver##*-} brel=${artixver##*-} -# local reldiff -# reldiff=$(( $arel-${brel%.*} )) - msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - write_list "${a}:$pkg" pkg_upgrades - fi -} - -compare_d(){ - if [ "$result" -eq 1 ];then - if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then - msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - fi - fi -} - -get_archpath(){ - local pkg="$1" archpath - - for tree in "${ARCH_TREE[@]}"; do - [[ -d ${TREE_DIR_ARCH}/$tree/$pkg/repos ]] && archpath=${TREE_DIR_ARCH}/$tree/$pkg - done - echo "$archpath" -} - -pre_compare(){ - local func="$1" pkgpath="$2" result group pkg - group="${pkgpath%/*}" - group=${group##*/} - pkg=${pkgpath##*/} - - local artixrepo archrepo pkgbuild artixver archver archpath node a b - artixrepo=$(find_repo "$pkgpath") - pkgbuild=$pkgpath/$artixrepo/PKGBUILD - - if [[ -f $pkgbuild ]]; then - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - artixver=$(get_full_version) - archpath=$(get_archpath "$pkg") - archrepo=$(find_repo "${archpath}") - pkgbuild=$archpath/$archrepo/PKGBUILD - node=${artixrepo%/*} - a=${archrepo#*/} b=${artixrepo#*/} - a="${a%-*}" - - [[ "$node" != "$CARCH" ]] && b=${b%-*} - - if [[ -f "$pkgbuild" ]]; then - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - archver=$(get_full_version) - fi - - result=$(vercmp "$artixver" "$archver") - - "$func" - - unset epoch - fi -} - -compare_upgrades(){ - local pkgpath="${1%/*}" - pre_compare compare_u "$pkgpath" -} - -compare_downgrades(){ - local pkgpath="${1%/*}" - pre_compare compare_d "$pkgpath" -} - -compare_move(){ - local pkgpath="${1%/*}" - pre_compare compare_m "$pkgpath" -} - -#}}} - -show_compare_header(){ - msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group" -} - -show_upgrades_table(){ - show_compare_header - remove_list pkg_upgrades - tree_loop compare_upgrades -} - -show_downgrades_table(){ - show_compare_header - tree_loop compare_downgrades -} - -show_move_table(){ - show_compare_header - remove_list pkg_moves - remove_list artix - tree_loop compare_move -} - -load_makepkg_config - -load_valid_names - -testing=true -staging=true -unstable=false - -upgrades=false -downgrades=false -move=false - -readonly table="%-18s %-18s %-25s %-27s %-27s %-10s" - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -u Show upgrade packages' - echo ' -d Show downgrade packages' - echo ' -m Show packages to move' - echo " -x Don't inlcude testing packages" - echo " -y Don't inlcude staging packages" - echo ' -z Include unstable kde and gnome' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='udmxyzh' - -while getopts "${opts}" arg; do - case "${arg}" in - u) upgrades=true ;; - d) downgrades=true ;; - m) move=true ;; - x) testing=false ;; - y) staging=false ;; - z) unstable=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -set_arch_repos "$testing" "$staging" "$unstable" - -${move} && show_move_table - -${upgrades} && show_upgrades_table - -${downgrades} && show_downgrades_table diff --git a/artools/0.26.1/artools/bin/pkg/comparepkg.in b/artools/0.26.1/artools/bin/pkg/comparepkg.in deleted file mode 100644 index 50119ee..0000000 --- a/artools/0.26.1/artools/bin/pkg/comparepkg.in +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-pkg.sh) -m4_include(lib/base/message.sh) -m4_include(lib/pkg/repo.sh) -m4_include(lib/pkg/table.sh) - - -#{{{ upgrades, downgrades, moves - -remove_list(){ - local name="$1" - [[ -f "${TREE_DIR_ARTIX}"/$name.list ]] && rm "${TREE_DIR_ARTIX}"/"$name".list -} - -write_list(){ - local line="$1" name="$2" - printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/"$name".list -} - -compare_m(){ - case ${artixrepo} in - *testing*|*staging*|*rebuild) - if [[ "${a}" == "${b}" ]]; then - msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - elif [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then - msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - else - msg_row_green "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - if [[ -n "$archrepo" ]]; then - write_list "${a}:${b}:$pkg" pkg_moves - else - write_list "@repo@:${b}:$pkg" artix - fi - fi - ;; - esac -} - -compare_u(){ - if [ "$result" -eq -1 ];then -# local arel=${archver##*-} brel=${artixver##*-} -# local reldiff - reldiff=$(( $arel-${brel%.*} )) - msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - write_list "${a}:$pkg" pkg_upgrades - fi -} - -compare_d(){ - if [ "$result" -eq 1 ];then - if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then - msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - fi - fi -} - -get_archpath(){ - local pkg="$1" archpath - - for tree in "${ARCH_TREE[@]}"; do - [[ -d ${TREE_DIR_ARCH}/$tree/$pkg/repos ]] && archpath=${TREE_DIR_ARCH}/$tree/$pkg - done - echo "$archpath" -} - -pre_compare(){ - local func="$1" pkgpath="$2" result group pkg - group="${pkgpath%/*}" - group=${group##*/} - pkg=${pkgpath##*/} - - local artixrepo archrepo pkgbuild artixver archver archpath node a b - artixrepo=$(find_repo "$pkgpath") - pkgbuild=$pkgpath/$artixrepo/PKGBUILD - - if [[ -f $pkgbuild ]]; then - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - artixver=$(get_full_version) - archpath=$(get_archpath "$pkg") - archrepo=$(find_repo "${archpath}") - pkgbuild=$archpath/$archrepo/PKGBUILD - node=${artixrepo%/*} - a=${archrepo#*/} b=${artixrepo#*/} - a="${a%-*}" - - [[ "$node" != "$CARCH" ]] && b=${b%-*} - - if [[ -f "$pkgbuild" ]]; then - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - archver=$(get_full_version) - fi - - result=$(vercmp "$artixver" "$archver") - - "$func" - - unset epoch - fi -} - -compare_upgrades(){ - local pkgpath="${1%/*}" - pre_compare compare_u "$pkgpath" -} - -compare_downgrades(){ - local pkgpath="${1%/*}" - pre_compare compare_d "$pkgpath" -} - -compare_move(){ - local pkgpath="${1%/*}" - pre_compare compare_m "$pkgpath" -} - -#}}} - -show_compare_header(){ - msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group" -} - -show_upgrades_table(){ - show_compare_header - remove_list pkg_upgrades - tree_loop compare_upgrades -} - -show_downgrades_table(){ - show_compare_header - tree_loop compare_downgrades -} - -show_move_table(){ - show_compare_header - remove_list pkg_moves - remove_list artix - tree_loop compare_move -} - -load_makepkg_config - -load_valid_names - -testing=true -staging=true -unstable=false - -upgrades=false -downgrades=false -move=false - -readonly table="%-18s %-18s %-25s %-27s %-27s %-10s" - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -u Show upgrade packages' - echo ' -d Show downgrade packages' - echo ' -m Show packages to move' - echo " -x Don't inlcude testing packages" - echo " -y Don't inlcude staging packages" - echo ' -z Include unstable kde and gnome' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='udmxyzh' - -while getopts "${opts}" arg; do - case "${arg}" in - u) upgrades=true ;; - d) downgrades=true ;; - m) move=true ;; - x) testing=false ;; - y) staging=false ;; - z) unstable=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -set_arch_repos "$testing" "$staging" "$unstable" - -${move} && show_move_table - -${upgrades} && show_upgrades_table - -${downgrades} && show_downgrades_table diff --git a/artools/0.26.1/artools/bin/pkg/deploypkg b/artools/0.26.1/artools/bin/pkg/deploypkg deleted file mode 100755 index b6b596e..0000000 --- a/artools/0.26.1/artools/bin/pkg/deploypkg +++ /dev/null @@ -1,351 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ functions - -find_cached_pkgfile() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local pkg="$1" - for dir in "${searchdirs[@]}"; do - [[ -d "$dir" ]] || continue - [[ -e "$dir/$pkg" ]] && results+=("$dir/$pkg") - done - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -get_pkgbasename() { - local name="$1" - local rm_pkg=${name%.pkg.tar*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - echo "$rm_pkg" -} - -#}}} - - -#{{{ deploy - -add(){ - if pkgfile=$(find_cached_pkgfile "${pkgname}"); then - msg "Found: %s" "${pkgfile}" - packages+=("${pkgname}") - action='add' - ln -sfv "${pkgfile}"{,.sig} "$repo_path"/ - fi -} - -remove(){ - packages+=("$(get_pkgbasename "${pkgname}")") - action='remove' - rm -v "$repo_path"/"${pkgname}"{,.sig} -} - -repo_action(){ - local packages=() action func="$1" - for pkgname in "${passfiles[@]}"; do - "$func" - done - cd "$repo_path" || return - if [[ -n "${action}" ]]; then - repo-"${action}" -R "${dest_repo}"."${pkgdb_ext}" "${packages[@]}" - ${linksdb} && links-"${action}" "${dest_repo}"."${linksdb_ext}" "${packages[@]}" - fi -} - -#}}} - -load_makepkg_config - -pkgdb_ext="db.tar.${DBEXT}" -linksdb_ext="links.tar.${DBEXT}" - -add_pkg=false -rm_pkg=false -linksdb=false - -cmd=${0##*/} -dest_repo=${cmd#*-} - -usage() { - echo "Usage: ${cmd} [options]" - echo ' -d Destination repository' - echo ' -a Add package(s) to repository' - echo ' -r Remove package(s) from repository' - echo ' -l Use links db' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='arlhd:' - -while getopts "${opts}" arg; do - case "${arg}" in - d) dest_repo="$OPTARG" ;; - a) add_pkg=true; rm_pkg=false ;; - r) rm_pkg=true; add_pkg=false ;; - l) linksdb=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -passfiles=("$@") - -repo_path=${REPOS_ROOT}/${dest_repo}/os/${CARCH} - -if [[ -n "${passfiles[*]}" ]]; then - if ${add_pkg}; then - repo_action add - fi - if ${rm_pkg}; then - repo_action remove - fi -fi diff --git a/artools/0.26.1/artools/bin/pkg/deploypkg.in b/artools/0.26.1/artools/bin/pkg/deploypkg.in deleted file mode 100644 index d3fefb5..0000000 --- a/artools/0.26.1/artools/bin/pkg/deploypkg.in +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-pkg.sh) -m4_include(lib/base/message.sh) -m4_include(lib/pkg/deploy.sh) - -#{{{ deploy - -add(){ - if pkgfile=$(find_cached_pkgfile "${pkgname}"); then - msg "Found: %s" "${pkgfile}" - packages+=("${pkgname}") - action='add' - ln -sfv "${pkgfile}"{,.sig} "$repo_path"/ - fi -} - -remove(){ - packages+=("$(get_pkgbasename "${pkgname}")") - action='remove' - rm -v "$repo_path"/"${pkgname}"{,.sig} -} - -repo_action(){ - local packages=() action func="$1" - for pkgname in "${passfiles[@]}"; do - "$func" - done - cd "$repo_path" || return - if [[ -n "${action}" ]]; then - repo-"${action}" -R "${dest_repo}"."${pkgdb_ext}" "${packages[@]}" - ${linksdb} && links-"${action}" "${dest_repo}"."${linksdb_ext}" "${packages[@]}" - fi -} - -#}}} - -load_makepkg_config - -pkgdb_ext="db.tar.${DBEXT}" -linksdb_ext="links.tar.${DBEXT}" - -add_pkg=false -rm_pkg=false -linksdb=false - -cmd=${0##*/} -dest_repo=${cmd#*-} - -usage() { - echo "Usage: ${cmd} [options]" - echo ' -d Destination repository' - echo ' -a Add package(s) to repository' - echo ' -r Remove package(s) from repository' - echo ' -l Use links db' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='arlhd:' - -while getopts "${opts}" arg; do - case "${arg}" in - d) dest_repo="$OPTARG" ;; - a) add_pkg=true; rm_pkg=false ;; - r) rm_pkg=true; add_pkg=false ;; - l) linksdb=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -passfiles=("$@") - -repo_path=${REPOS_ROOT}/${dest_repo}/os/${CARCH} - -if [[ -n "${passfiles[*]}" ]]; then - if ${add_pkg}; then - repo_action add - fi - if ${rm_pkg}; then - repo_action remove - fi -fi diff --git a/artools/0.26.1/artools/bin/pkg/find-libdeps b/artools/0.26.1/artools/bin/pkg/find-libdeps deleted file mode 100755 index 56294b8..0000000 --- a/artools/0.26.1/artools/bin/pkg/find-libdeps +++ /dev/null @@ -1,196 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -set -e -shopt -s extglob - -IGNORE_INTERNAL=0 - -if [[ $1 = "--ignore-internal" ]]; then - IGNORE_INTERNAL=1 - shift -fi - -script_mode=${BASH_SOURCE[0]##*/find-lib} - -case $script_mode in - deps|provides) true;; - *) die "Unknown mode %s" "$script_mode" ;; -esac - -if [[ -z $1 ]]; then - echo "${0##*/} [options] " - echo "Options:" - echo " --ignore-internal ignore internal libraries" - exit 1 -fi - -if [[ -d $1 ]]; then - pushd "$1" >/dev/null -else - setup_workdir - - case ${script_mode} in - deps) bsdtar -C "$WORKDIR" -xf "$1";; - provides) bsdtar -C "$WORKDIR" -xf "$1" --include="*.so*";; - esac - - pushd "$WORKDIR" >/dev/null -fi - -process_sofile() { - # extract the library name: libfoo.so - soname="${sofile%.so?(+(.+([0-9])))}".so - # extract the major version: 1 - soversion="${sofile##*\.so\.}" - if [[ "$soversion" = "$sofile" ]] && ((IGNORE_INTERNAL)); then - return - fi - if ! in_array "${soname}=${soversion}-${soarch}" "${soobjects[@]}"; then - # libfoo.so=1-64 - echo "${soname}=${soversion}-${soarch}" - soobjects+=("${soname}=${soversion}-${soarch}") - fi -} - -case $script_mode in - deps) find_args=(-perm -u+x);; - provides) find_args=(-name '*.so*');; -esac - -find . -type f "${find_args[@]}" | while read -r filename; do - if [[ $script_mode = "provides" ]]; then - # ignore if we don't have a shared object - if ! LC_ALL=C readelf -h "$filename" 2>/dev/null | grep -q '.*Type:.*DYN (Shared object file).*'; then - continue - fi - fi - - # get architecture of the file; if soarch is empty it's not an ELF binary - soarch=$(LC_ALL=C readelf -h "$filename" 2>/dev/null | sed -n 's/.*Class.*ELF\(32\|64\)/\1/p') - [[ -n $soarch ]] || continue - - if [[ $script_mode = "provides" ]]; then - # get the string binaries link to: libfoo.so.1.2 -> libfoo.so.1 - sofile=$(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -n 's/.*Library soname: \[\(.*\)\].*/\1/p') - [[ -z $sofile ]] && sofile="${filename##*/}" - process_sofile - elif [[ $script_mode = "deps" ]]; then - # process all libraries needed by the binary - for sofile in $(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p'); do - process_sofile - done - fi -done - -popd >/dev/null diff --git a/artools/0.26.1/artools/bin/pkg/find-libdeps.in b/artools/0.26.1/artools/bin/pkg/find-libdeps.in deleted file mode 100644 index 4bf4e55..0000000 --- a/artools/0.26.1/artools/bin/pkg/find-libdeps.in +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) - -set -e -shopt -s extglob - -IGNORE_INTERNAL=0 - -if [[ $1 = "--ignore-internal" ]]; then - IGNORE_INTERNAL=1 - shift -fi - -script_mode=${BASH_SOURCE[0]##*/find-lib} - -case $script_mode in - deps|provides) true;; - *) die "Unknown mode %s" "$script_mode" ;; -esac - -if [[ -z $1 ]]; then - echo "${0##*/} [options] " - echo "Options:" - echo " --ignore-internal ignore internal libraries" - exit 1 -fi - -if [[ -d $1 ]]; then - pushd "$1" >/dev/null -else - setup_workdir - - case ${script_mode} in - deps) bsdtar -C "$WORKDIR" -xf "$1";; - provides) bsdtar -C "$WORKDIR" -xf "$1" --include="*.so*";; - esac - - pushd "$WORKDIR" >/dev/null -fi - -process_sofile() { - # extract the library name: libfoo.so - soname="${sofile%.so?(+(.+([0-9])))}".so - # extract the major version: 1 - soversion="${sofile##*\.so\.}" - if [[ "$soversion" = "$sofile" ]] && ((IGNORE_INTERNAL)); then - return - fi - if ! in_array "${soname}=${soversion}-${soarch}" "${soobjects[@]}"; then - # libfoo.so=1-64 - echo "${soname}=${soversion}-${soarch}" - soobjects+=("${soname}=${soversion}-${soarch}") - fi -} - -case $script_mode in - deps) find_args=(-perm -u+x);; - provides) find_args=(-name '*.so*');; -esac - -find . -type f "${find_args[@]}" | while read -r filename; do - if [[ $script_mode = "provides" ]]; then - # ignore if we don't have a shared object - if ! LC_ALL=C readelf -h "$filename" 2>/dev/null | grep -q '.*Type:.*DYN (Shared object file).*'; then - continue - fi - fi - - # get architecture of the file; if soarch is empty it's not an ELF binary - soarch=$(LC_ALL=C readelf -h "$filename" 2>/dev/null | sed -n 's/.*Class.*ELF\(32\|64\)/\1/p') - [[ -n $soarch ]] || continue - - if [[ $script_mode = "provides" ]]; then - # get the string binaries link to: libfoo.so.1.2 -> libfoo.so.1 - sofile=$(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -n 's/.*Library soname: \[\(.*\)\].*/\1/p') - [[ -z $sofile ]] && sofile="${filename##*/}" - process_sofile - elif [[ $script_mode = "deps" ]]; then - # process all libraries needed by the binary - for sofile in $(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p'); do - process_sofile - done - fi -done - -popd >/dev/null diff --git a/artools/0.26.1/artools/bin/pkg/finddeps b/artools/0.26.1/artools/bin/pkg/finddeps deleted file mode 100755 index fdc96f7..0000000 --- a/artools/0.26.1/artools/bin/pkg/finddeps +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -match=$1 - -if [[ -z $match ]]; then - echo 'Usage: finddeps ' - echo '' - echo 'Find packages that depend on a given depname.' - echo 'Run this script from the top-level directory of your ABS tree.' - echo '' - exit 1 -fi - -find . -type d -print0 2>/dev/null| while read -r -d '' d; do - if [[ -f "$d/PKGBUILD" ]]; then - pkgname=() depends=() makedepends=() optdepends=() - # shellcheck source=PKGBUILD.proto - . "$d/PKGBUILD" - for dep in "${depends[@]}"; do - # lose the version comparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (depends)" - done - for dep in "${makedepends[@]}"; do - # lose the version comparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (makedepends)" - done - for dep in "${optdepends[@]/:*}"; do - # lose the version comaparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (optdepends)" - done - fi -done - diff --git a/artools/0.26.1/artools/bin/pkg/finddeps.in b/artools/0.26.1/artools/bin/pkg/finddeps.in deleted file mode 100644 index c73060c..0000000 --- a/artools/0.26.1/artools/bin/pkg/finddeps.in +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) - -match=$1 - -if [[ -z $match ]]; then - echo 'Usage: finddeps ' - echo '' - echo 'Find packages that depend on a given depname.' - echo 'Run this script from the top-level directory of your ABS tree.' - echo '' - exit 1 -fi - -find . -type d -print0 2>/dev/null| while read -r -d '' d; do - if [[ -f "$d/PKGBUILD" ]]; then - pkgname=() depends=() makedepends=() optdepends=() - # shellcheck source=PKGBUILD.proto - . "$d/PKGBUILD" - for dep in "${depends[@]}"; do - # lose the version comparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (depends)" - done - for dep in "${makedepends[@]}"; do - # lose the version comparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (makedepends)" - done - for dep in "${optdepends[@]/:*}"; do - # lose the version comaparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (optdepends)" - done - fi -done - diff --git a/artools/0.26.1/artools/bin/pkg/gitearepo b/artools/0.26.1/artools/bin/pkg/gitearepo deleted file mode 100755 index 8eb3ebf..0000000 --- a/artools/0.26.1/artools/bin/pkg/gitearepo +++ /dev/null @@ -1,338 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-21 artoo@artixlinux.org -# Copyright (C) 2021 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common functions - -get_compliant_name(){ - local gitname="$1" - case "$gitname" in - *+) gitname=${gitname//+/plus} - esac - echo "$gitname" -} - -get_pkg_org(){ - local pkg="$1" org sub - case ${pkg} in - ruby-*) org="packagesRuby" ;; - perl-*) org="packagesPerl" ;; - python-*|python2-*) org="packagesPython" ;; - *) sub=${pkg:0:1}; org="packages${sub^^}" ;; - esac - echo "$org" -} - -api_put() { - curl -s -X PUT "$@" -} - -api_delete() { - curl -s -X DELETE "$@" -} - -api_post() { - curl -s -X POST "$@" -} - -#}}} - - -#{{{ functions - -create_repo() { - local name="$1" - local org="$2" - local json url - - json="{ \"auto_init\": true, \"name\":\"$name\", \"gitignores\":\"ArchLinuxPackages\", \"readme\": \"Default\" }" - - url="${GIT_URL}/api/v1/org/$org/repos?access_token=${GIT_TOKEN}" - - msg2 "Create package repo [%s] in org (%s)" "$name" "$org" - - api_post "$url" -H "accept: application/json" \ - -H "content-type: application/json" \ - -d "$json" -} - -transfer_repo() { - local name="$1" - local old_owner="$2" - local new_owner="landfill" json url - local json url - - json="{ \"new_owner\": \"$new_owner\", \"team_ids\": []}" - - url="${GIT_URL}/api/v1/repos/$old_owner/$name/transfer?access_token=${GIT_TOKEN}" - - msg2 "Transfer package repo [%s] in org (%s)" "$name" "$new_owner" - - api_post "$url" -H "accept: application/json" \ - -H "Content-Type: application/json" \ - -d "$json" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -r Repo name' - echo ' -c Create git repo' - echo ' -t Transfer git repo to landfill org' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -create=false -transfer=false - -opts='r:cth' - -while getopts "${opts}" arg; do - case "${arg}" in - r) repo="$OPTARG" ;; - c) create=true ;; - t) transfer=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -org=$(get_pkg_org "${repo}") - -${create} && create_repo "${repo}" "${org}" - -${transfer} && transfer_repo "${repo}" "${org}" diff --git a/artools/0.26.1/artools/bin/pkg/gitearepo.in b/artools/0.26.1/artools/bin/pkg/gitearepo.in deleted file mode 100644 index dba9806..0000000 --- a/artools/0.26.1/artools/bin/pkg/gitearepo.in +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-21 artoo@artixlinux.org -# Copyright (C) 2021 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/util-base.sh) -m4_include(lib/util-pkg.sh) -m4_include(lib/base/message.sh) -m4_include(lib/pkg/common.sh) - -#{{{ functions - -create_repo() { - local name="$1" - local org="$2" - local json url - - json="{ \"auto_init\": true, \"name\":\"$name\", \"gitignores\":\"ArchLinuxPackages\", \"readme\": \"Default\" }" - - url="${GIT_URL}/api/v1/org/$org/repos?access_token=${GIT_TOKEN}" - - msg2 "Create package repo [%s] in org (%s)" "$name" "$org" - - api_post "$url" -H "accept: application/json" \ - -H "content-type: application/json" \ - -d "$json" -} - -transfer_repo() { - local name="$1" - local old_owner="$2" - local new_owner="landfill" json url - local json url - - json="{ \"new_owner\": \"$new_owner\", \"team_ids\": []}" - - url="${GIT_URL}/api/v1/repos/$old_owner/$name/transfer?access_token=${GIT_TOKEN}" - - msg2 "Transfer package repo [%s] in org (%s)" "$name" "$new_owner" - - api_post "$url" -H "accept: application/json" \ - -H "Content-Type: application/json" \ - -d "$json" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -r Repo name' - echo ' -c Create git repo' - echo ' -t Transfer git repo to landfill org' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -create=false -transfer=false - -opts='r:cth' - -while getopts "${opts}" arg; do - case "${arg}" in - r) repo="$OPTARG" ;; - c) create=true ;; - t) transfer=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -org=$(get_pkg_org "${repo}") - -${create} && create_repo "${repo}" "${org}" - -${transfer} && transfer_repo "${repo}" "${org}" diff --git a/artools/0.26.1/artools/bin/pkg/lddd b/artools/0.26.1/artools/bin/pkg/lddd deleted file mode 100755 index 8460493..0000000 --- a/artools/0.26.1/artools/bin/pkg/lddd +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -ifs=$IFS -IFS="${IFS}:" - -libdirs="/lib /usr/lib /usr/local/lib $(cat /etc/ld.so.conf.d/*)" -extras= - -TEMPDIR=$(mktemp -d --tmpdir lddd-script.XXXX) - -msg 'Go out and drink some tea, this will take a while :) ...' -# Check ELF binaries in the PATH and specified dir trees. -for tree in $PATH $libdirs $extras; do - msg2 "DIR %s" "$tree" - - # Get list of files in tree. - files=$(find "$tree" -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! \ - -name '*.rb' ! -name '*.ko' ! -name '*.pc' ! -name '*.enc' ! -name '*.cf' ! -name '*.def' ! -name '*.rules' ! -name \ - '*.cmi' ! -name '*.mli' ! -name '*.ml' ! -name '*.cma' ! -name '*.cmx' ! -name '*.cmxa' ! -name '*.pod' ! -name '*.pm' \ - ! -name '*.pl' ! -name '*.al' ! -name '*.tcl' ! -name '*.bs' ! -name '*.o' ! -name '*.png' ! -name '*.gif' ! -name '*.cmo' \ - ! -name '*.cgi' ! -name '*.defs' ! -name '*.conf' ! -name '*_LOCALE' ! -name 'Compose' ! -name '*_OBJS' ! -name '*.msg' ! \ - -name '*.mcopclass' ! -name '*.mcoptype') - IFS=$ifs - for i in $files; do - if (( $(file "$i" | grep -c 'ELF') != 0 )); then - # Is an ELF binary. - if (( $(ldd "$i" 2>/dev/null | grep -c 'not found') != 0 )); then - # Missing lib. - echo "$i:" >> "$TEMPDIR/raw.txt" - ldd "$i" 2>/dev/null | grep 'not found' >> "$TEMPDIR/raw.txt" - fi - fi - done -done -grep '^/' "$TEMPDIR/raw.txt" | sed -e 's/://g' >> "$TEMPDIR/affected-files.txt" -# invoke pacman -while read -r i; do - pacman -Qo "$i" | awk '{print $4,$5}' >> "$TEMPDIR/pacman.txt" -done < "$TEMPDIR/affected-files.txt" -# clean list -sort -u "$TEMPDIR/pacman.txt" >> "$TEMPDIR/possible-rebuilds.txt" - -msg "Files saved to %s" "$TEMPDIR" diff --git a/artools/0.26.1/artools/bin/pkg/lddd.in b/artools/0.26.1/artools/bin/pkg/lddd.in deleted file mode 100644 index 482eb6b..0000000 --- a/artools/0.26.1/artools/bin/pkg/lddd.in +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) - -ifs=$IFS -IFS="${IFS}:" - -libdirs="/lib /usr/lib /usr/local/lib $(cat /etc/ld.so.conf.d/*)" -extras= - -TEMPDIR=$(mktemp -d --tmpdir lddd-script.XXXX) - -msg 'Go out and drink some tea, this will take a while :) ...' -# Check ELF binaries in the PATH and specified dir trees. -for tree in $PATH $libdirs $extras; do - msg2 "DIR %s" "$tree" - - # Get list of files in tree. - files=$(find "$tree" -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! \ - -name '*.rb' ! -name '*.ko' ! -name '*.pc' ! -name '*.enc' ! -name '*.cf' ! -name '*.def' ! -name '*.rules' ! -name \ - '*.cmi' ! -name '*.mli' ! -name '*.ml' ! -name '*.cma' ! -name '*.cmx' ! -name '*.cmxa' ! -name '*.pod' ! -name '*.pm' \ - ! -name '*.pl' ! -name '*.al' ! -name '*.tcl' ! -name '*.bs' ! -name '*.o' ! -name '*.png' ! -name '*.gif' ! -name '*.cmo' \ - ! -name '*.cgi' ! -name '*.defs' ! -name '*.conf' ! -name '*_LOCALE' ! -name 'Compose' ! -name '*_OBJS' ! -name '*.msg' ! \ - -name '*.mcopclass' ! -name '*.mcoptype') - IFS=$ifs - for i in $files; do - if (( $(file "$i" | grep -c 'ELF') != 0 )); then - # Is an ELF binary. - if (( $(ldd "$i" 2>/dev/null | grep -c 'not found') != 0 )); then - # Missing lib. - echo "$i:" >> "$TEMPDIR/raw.txt" - ldd "$i" 2>/dev/null | grep 'not found' >> "$TEMPDIR/raw.txt" - fi - fi - done -done -grep '^/' "$TEMPDIR/raw.txt" | sed -e 's/://g' >> "$TEMPDIR/affected-files.txt" -# invoke pacman -while read -r i; do - pacman -Qo "$i" | awk '{print $4,$5}' >> "$TEMPDIR/pacman.txt" -done < "$TEMPDIR/affected-files.txt" -# clean list -sort -u "$TEMPDIR/pacman.txt" >> "$TEMPDIR/possible-rebuilds.txt" - -msg "Files saved to %s" "$TEMPDIR" diff --git a/artools/0.26.1/artools/bin/pkg/links-add b/artools/0.26.1/artools/bin/pkg/links-add deleted file mode 100755 index 565f10c..0000000 --- a/artools/0.26.1/artools/bin/pkg/links-add +++ /dev/null @@ -1,609 +0,0 @@ -#!/bin/bash -# -# links-add - add a package to a given repo database file -# links-remove - remove a package entry from a given repo database file -# -# Copyright (c) 2006-2018 Pacman Development Team -# Copyright (c) 2019 artoo@artixlinux.org -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -shopt -s extglob - -declare -r REPO_DB_NAME="links" - -QUIET=0 -ONLYADDNEW=0 -SIGN=0 -KEY=0 -VERIFY=0 -REPO_DB_FILE= -REPO_DB_PREFIX= -REPO_DB_SUFFIX= -LOCKFILE= -CLEAN_LOCK=0 - -# ensure we have a sane umask set -umask 0022 - -# print usage instructions -usage() { - cmd=${0##*/} - printf -- "%s \n\n" "$cmd" - if [[ $cmd == "links-add" ]] ; then - printf -- "Usage: links-add [options] ...\n" - printf -- "\n" - printf -- "\ -links-add will update a package database by reading a package file.\n\ -Multiple packages to add can be specified on the command line.\n" - printf -- "\n" - printf -- "Options:\n" - printf -- " -n, --new only add packages that are not already in the database\n" - elif [[ $cmd == "links-remove" ]] ; then - printf -- "Usage: links-remove [options] ...\n" - printf -- "\n" - printf -- "\ -links-remove will update a package database by removing the package name\n\ -specified on the command line from the given repo database. Multiple\n\ -packages to remove can be specified on the command line.\n" - printf -- "\n" - printf -- "Options:\n" - else - printf -- "Please move along, there is nothing to see here.\n" - return - fi - printf -- " --nocolor turn off color in output\n" - printf -- " -q, --quiet minimize output\n" - printf -- " -s, --sign sign database with GnuPG after update\n" - printf -- " -k, --key use the specified key to sign the database\n" - printf -- " -v, --verify verify database's signature before update\n" - printf -- "\n\ -See %s(8) for more details and descriptions of the available options.\n" "$cmd" - printf "\n" - if [[ $cmd == "links-add" ]] ; then - printf -- "Example: links-add /path/to/repo.links.tar.xz pacman-5.1.3-1-x86_64.pkg.tar.xz\n" - elif [[ $cmd == "links-remove" ]] ; then - printf -- "Example: links-remove /path/to/repo.links.tar.xz kernel26\n" - fi -} - -find_pkgentry() { - local pkgname=$1 - local pkgentry - - for pkgentry in "$tmpdir/${REPO_DB_NAME}/$pkgname"*; do - name=${pkgentry##*/} - if [[ ${name%-*-*} = "$pkgname" ]]; then - echo "$pkgentry" - return 0 - fi - done - return 1 -} - -check_gpg() { - if ! type -p gpg >/dev/null; then - error "Cannot find the gpg binary! Is GnuPG installed?" - exit 1 # $E_MISSING_PROGRAM - fi - - if (( ! VERIFY )); then - if ! gpg --list-secret-key ${GPGKEY:+"$GPGKEY"} &>/dev/null; then - if [[ -n "$GPGKEY" ]]; then - error "The key ${GPGKEY} does not exist in your keyring." - elif (( ! KEY )); then - error "There is no key in your keyring." - fi - exit 1 - fi - fi -} - -# sign the package database once repackaged -create_signature() { - (( ! SIGN )) && return - local dbfile=$1 - local ret=0 - msg "Signing database '%s'..." "${dbfile##*/.tmp.}" - - local SIGNWITHKEY=() - if [[ -n $GPGKEY ]]; then - SIGNWITHKEY=(-u "${GPGKEY}") - fi - gpg --detach-sign --use-agent --no-armor "${SIGNWITHKEY[@]}" "$dbfile" &>/dev/null || ret=$? - - if (( ! ret )); then - msg2 "Created signature file '%s'" "${dbfile##*/.tmp.}.sig" - else - warning "Failed to sign package database file '%s'" "${dbfile##*/.tmp.}" - fi -} - -# verify the existing package database signature -verify_signature() { - (( ! VERIFY )) && return - local dbfile=$1 - local ret=0 - msg "Verifying database signature..." - - if [[ ! -f $dbfile.sig ]]; then - warning "No existing signature found, skipping verification." - return - fi - gpg --verify "$dbfile.sig" || ret=$? - if (( ! ret )); then - msg2 "Database signature file verified." - else - error "Database signature was NOT valid!" - exit 1 - fi -} - -verify_repo_extension() { - local junk=() - if [[ $1 = *.links.tar* ]] && get_compression_command "$1" junk; then - return 0 - fi - - error "'%s' does not have a valid database archive extension." "$1" - exit 1 -} - -# write an entry to the pacman database -# arg1 - path to package -db_write_entry() { - # blank out all variables - local pkgfile=$1 - - local pkgname pkgver - - # read info from the zipped package - local line var val - while read -r line; do - [[ ${line:0:1} = '#' ]] && continue - IFS=' =' read -r var val < <(printf '%s\n' "$line") - # normalize whitespace with an extglob - declare "$var=${val//+([[:space:]])/ }" - - done< <(bsdtar -xOqf "$pkgfile" .PKGINFO) - - # ensure $pkgname and $pkgver variables were found - if [[ -z $pkgname || -z $pkgver ]]; then - error "Invalid package file '%s'." "$pkgfile" - return 1 - fi - - if [[ -d $tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver ]]; then - warning "An entry for '%s' already existed" "$pkgname-$pkgver" - if (( ONLYADDNEW )); then - return 0 - fi - fi - - # remove an existing entry if it exists, ignore failures - db_remove_entry "$pkgname" - - local tmppkg=$tmpdir/pkg/$pkgname-$pkgver - - mkdir "$tmppkg" - - bsdtar -xof "$pkgfile" -C "$tmppkg" --include={opt,{,usr/}{lib{,32},{s,}bin}}'/*' 2>/dev/null - - pushd "$tmpdir/${REPO_DB_NAME}" >/dev/null - mkdir "$pkgname-$pkgver" - pushd "$pkgname-$pkgver" >/dev/null - - # create links entry - msg2 "Creating '%s' db entry..." "${REPO_DB_NAME}" - - local linksentry=$tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver/${REPO_DB_NAME} - local files=$(find "$tmppkg" -type f ! -ipath "*/Documentation/*") - - for f in ${files}; do - readelf -d "$f" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p' - done | sort -u > "$linksentry" - - popd >/dev/null - popd >/dev/null - - return 0 -} - -# remove existing entries from the DB -# arg1 - package name -db_remove_entry() { - local pkgname=$1 - local notfound=1 - local pkgentry - pkgentry=$(find_pkgentry "$pkgname") - while [[ -n $pkgentry ]]; do - notfound=0 - - msg2 "Removing existing entry '%s'..." \ - "${pkgentry##*/}" - rm -rf "$pkgentry" - - # remove entries in "links" database - local linksentry - linksentry=$(echo "$pkgentry" | sed 's/\(.*\)\/db\//\1\/links\//') - rm -rf "$linksentry" - - pkgentry=$(find_pkgentry "$pkgname") - done - return $notfound -} - -prepare_repo_db() { - local repodir dbfile - - # ensure the path to the DB exists; $LOCKFILE is always an absolute path - repodir=${LOCKFILE%/*}/ - - if [[ ! -d $repodir ]]; then - error "%s does not exist or is not a directory." "$repodir" - exit 1 - fi - - # check lock file - if ( set -o noclobber; echo "$$" > "$LOCKFILE") 2> /dev/null; then - CLEAN_LOCK=1 - else - error "Failed to acquire lockfile: %s." "$LOCKFILE" - [[ -f $LOCKFILE ]] && error "Held by process %s" "$(cat "$LOCKFILE")" - exit 1 - fi - - dbfile=${repodir}/$REPO_DB_PREFIX.${REPO_DB_NAME}.$REPO_DB_SUFFIX - - if [[ -f $dbfile ]]; then - # there are two situations we can have here: - # a DB with some entries, or a DB with no contents at all. - if ! bsdtar -tqf "$dbfile" '*/links' >/dev/null 2>&1; then - # check empty case - if [[ -n $(bsdtar -tqf "$dbfile" '*' 2>/dev/null) ]]; then - error "Repository file '%s' is not a proper links database." "$dbfile" - exit 1 - fi - fi - verify_signature "$dbfile" - msg "Extracting %s to a temporary location..." "${dbfile##*/}" - bsdtar -xf "$dbfile" -C "$tmpdir/${REPO_DB_NAME}" - else - case $cmd in - links-remove) - # only a missing "db" database is currently an error - # TODO: remove if statement - if [[ ${REPO_DB_NAME} == "links" ]]; then - error "Repository file '%s' was not found." "$dbfile" - exit 1 - fi - ;; - links-add) - # check if the file can be created (write permission, directory existence, etc) - if ! touch "$dbfile"; then - error "Repository file '%s' could not be created." "$dbfile" - exit 1 - fi - rm -f "$dbfile" - ;; - esac - fi -} - -add() { - if [[ ! -f $1 ]]; then - error "File '%s' not found." "$1" - return 1 - fi - - pkgfile=$1 - if ! bsdtar -tqf "$pkgfile" .PKGINFO >/dev/null 2>&1; then - error "'%s' is not a package file, skipping" "$pkgfile" - return 1 - fi - - msg "Adding package '%s'" "$pkgfile" - - db_write_entry "$pkgfile" -} - -remove() { - pkgname=$1 - msg "Searching for package '%s'..." "$pkgname" - - if ! db_remove_entry "$pkgname"; then - error "Package matching '%s' not found." "$pkgname" - return 1 - fi - - return 0 -} - -rotate_db() { - dirname=${LOCKFILE%/*} - - pushd "$dirname" >/dev/null - - filename=${REPO_DB_PREFIX}.${REPO_DB_NAME}.${REPO_DB_SUFFIX} - tempname=$dirname/.tmp.$filename - - # hardlink or move the previous version of the database and signature to .old - # extension as a backup measure - if [[ -f $filename ]]; then - ln -f "$filename" "$filename.old" 2>/dev/null || \ - mv -f "$filename" "$filename.old" - - if [[ -f $filename.sig ]]; then - ln -f "$filename.sig" "$filename.old.sig" 2>/dev/null || \ - mv -f "$filename.sig" "$filename.old.sig" - else - rm -f "$filename.old.sig" - fi - fi - - # rotate the newly-created database and signature into place - mv "$tempname" "$filename" - if [[ -f $tempname.sig ]]; then - mv "$tempname.sig" "$filename.sig" - fi - - dblink=${filename%.tar*} - rm -f "$dblink" "$dblink.sig" - ln -s "$filename" "$dblink" 2>/dev/null || \ - ln "$filename" "$dblink" 2>/dev/null || \ - cp "$filename" "$dblink" - if [[ -f "$filename.sig" ]]; then - ln -s "$filename.sig" "$dblink.sig" 2>/dev/null || \ - ln "$filename.sig" "$dblink.sig" 2>/dev/null || \ - cp "$filename.sig" "$dblink.sig" - fi - - popd >/dev/null -} - -create_db() { - # $LOCKFILE is already guaranteed to be absolute so this is safe - dirname=${LOCKFILE%/*} - - filename=${REPO_DB_PREFIX}.${REPO_DB_NAME}.${REPO_DB_SUFFIX} - # this ensures we create it on the same filesystem, making moves atomic - tempname=$dirname/.tmp.$filename - - pushd "$tmpdir/${REPO_DB_NAME}" >/dev/null - local files=(*) - if [[ ${files[*]} = '*' ]]; then - # we have no packages remaining? zip up some emptyness - warning "No packages remain, creating empty database." - files=(-T /dev/null) - fi - bsdtar -cf - "${files[@]}" | compress_as "$filename" > "$tempname" - popd >/dev/null - - create_signature "$tempname" -} - -trap_exit() { - # unhook all traps to avoid race conditions - trap '' EXIT TERM HUP QUIT INT ERR - - echo - error "$@" - clean_up 1 -} - -clean_up() { - local exit_code=${1:-$?} - - # unhook all traps to avoid race conditions - trap '' EXIT TERM HUP QUIT INT ERR - - [[ -d $tmpdir ]] && rm -rf "$tmpdir" - (( CLEAN_LOCK )) && [[ -f $LOCKFILE ]] && rm -f "$LOCKFILE" - - exit "$exit_code" -} - -# PROGRAM START -case $1 in - -h|--help) usage; exit 0;; -esac - -# figure out what program we are -cmd=${0##*/} - -if [[ $cmd != "links-add" && $cmd != "links-remove" ]]; then - error "Invalid command name '%s' specified." "$cmd" - exit 1 -fi - -tmpdir=$(mktemp -d "${TMPDIR:-/tmp}/repo-tools.XXXXXXXXXX") || (\ - error "Cannot create temp directory for database building."; \ - exit 1) - -for repo in "pkg" "${REPO_DB_NAME}"; do - mkdir "$tmpdir/$repo" -done - -trap 'clean_up' EXIT -for signal in TERM HUP QUIT; do - trap "trap_exit \"$(gettext "%s signal caught. Exiting...")\" \"$signal\"" "$signal" -done -trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT -trap 'trap_exit "$(gettext "An unknown error has occurred. Exiting...")"' ERR - -declare -a args -# parse arguments -while (( $# )); do - case $1 in - -q|--quiet) QUIET=1 ;; - -n|--new) ONLYADDNEW=1 ;; - -s|--sign) SIGN=1 ;; - -k|--key) KEY=1 ; shift; GPGKEY=$1 ;; - -v|--verify) VERIFY=1 ;; - *) args+=("$1") ;; - esac - shift -done - -REPO_DB_FILE=${args[0]} -if [[ -z $REPO_DB_FILE ]]; then - usage - exit 1 -fi - -if [[ $REPO_DB_FILE == /* ]]; then - LOCKFILE=$REPO_DB_FILE.lck -else - LOCKFILE=$PWD/$REPO_DB_FILE.lck -fi - -verify_repo_extension "$REPO_DB_FILE" - -REPO_DB_PREFIX=${REPO_DB_FILE##*/} -REPO_DB_PREFIX=${REPO_DB_PREFIX%.links.*} -REPO_DB_SUFFIX=${REPO_DB_FILE##*.links.} - -if (( SIGN || VERIFY )); then - check_gpg -fi - -if (( VERIFY && ${#args[@]} == 1 )); then - dbfile=${repodir}/$REPO_DB_PREFIX.${REPO_DB_NAME}.$REPO_DB_SUFFIX - - if [[ -f $dbfile ]]; then - verify_signature "$dbfile" - fi - exit 0 -fi - -prepare_repo_db - -fail=0 -for arg in "${args[@]:1}"; do - case $cmd in - links-add) add "$arg" ;; - links-remove) remove "$arg" ;; - esac || fail=1 -done - -# if the whole operation was a success, re-zip and rotate databases -if (( !fail )); then - msg "Creating updated database file '%s'" "$REPO_DB_FILE" - create_db - rotate_db -else - msg "No packages modified, nothing to do." - exit 1 -fi - -exit 0 diff --git a/artools/0.26.1/artools/bin/pkg/links-add.in b/artools/0.26.1/artools/bin/pkg/links-add.in deleted file mode 100644 index d6502ab..0000000 --- a/artools/0.26.1/artools/bin/pkg/links-add.in +++ /dev/null @@ -1,512 +0,0 @@ -#!/bin/bash -# -# links-add - add a package to a given repo database file -# links-remove - remove a package entry from a given repo database file -# -# Copyright (c) 2006-2018 Pacman Development Team -# Copyright (c) 2019 artoo@artixlinux.org -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -m4_include(lib/base/message.sh) - -shopt -s extglob - -declare -r REPO_DB_NAME="links" - -QUIET=0 -ONLYADDNEW=0 -SIGN=0 -KEY=0 -VERIFY=0 -REPO_DB_FILE= -REPO_DB_PREFIX= -REPO_DB_SUFFIX= -LOCKFILE= -CLEAN_LOCK=0 - -# ensure we have a sane umask set -umask 0022 - -# print usage instructions -usage() { - cmd=${0##*/} - printf -- "%s \n\n" "$cmd" - if [[ $cmd == "links-add" ]] ; then - printf -- "Usage: links-add [options] ...\n" - printf -- "\n" - printf -- "\ -links-add will update a package database by reading a package file.\n\ -Multiple packages to add can be specified on the command line.\n" - printf -- "\n" - printf -- "Options:\n" - printf -- " -n, --new only add packages that are not already in the database\n" - elif [[ $cmd == "links-remove" ]] ; then - printf -- "Usage: links-remove [options] ...\n" - printf -- "\n" - printf -- "\ -links-remove will update a package database by removing the package name\n\ -specified on the command line from the given repo database. Multiple\n\ -packages to remove can be specified on the command line.\n" - printf -- "\n" - printf -- "Options:\n" - else - printf -- "Please move along, there is nothing to see here.\n" - return - fi - printf -- " --nocolor turn off color in output\n" - printf -- " -q, --quiet minimize output\n" - printf -- " -s, --sign sign database with GnuPG after update\n" - printf -- " -k, --key use the specified key to sign the database\n" - printf -- " -v, --verify verify database's signature before update\n" - printf -- "\n\ -See %s(8) for more details and descriptions of the available options.\n" "$cmd" - printf "\n" - if [[ $cmd == "links-add" ]] ; then - printf -- "Example: links-add /path/to/repo.links.tar.xz pacman-5.1.3-1-x86_64.pkg.tar.xz\n" - elif [[ $cmd == "links-remove" ]] ; then - printf -- "Example: links-remove /path/to/repo.links.tar.xz kernel26\n" - fi -} - -find_pkgentry() { - local pkgname=$1 - local pkgentry - - for pkgentry in "$tmpdir/${REPO_DB_NAME}/$pkgname"*; do - name=${pkgentry##*/} - if [[ ${name%-*-*} = "$pkgname" ]]; then - echo "$pkgentry" - return 0 - fi - done - return 1 -} - -check_gpg() { - if ! type -p gpg >/dev/null; then - error "Cannot find the gpg binary! Is GnuPG installed?" - exit 1 # $E_MISSING_PROGRAM - fi - - if (( ! VERIFY )); then - if ! gpg --list-secret-key ${GPGKEY:+"$GPGKEY"} &>/dev/null; then - if [[ -n "$GPGKEY" ]]; then - error "The key ${GPGKEY} does not exist in your keyring." - elif (( ! KEY )); then - error "There is no key in your keyring." - fi - exit 1 - fi - fi -} - -# sign the package database once repackaged -create_signature() { - (( ! SIGN )) && return - local dbfile=$1 - local ret=0 - msg "Signing database '%s'..." "${dbfile##*/.tmp.}" - - local SIGNWITHKEY=() - if [[ -n $GPGKEY ]]; then - SIGNWITHKEY=(-u "${GPGKEY}") - fi - gpg --detach-sign --use-agent --no-armor "${SIGNWITHKEY[@]}" "$dbfile" &>/dev/null || ret=$? - - if (( ! ret )); then - msg2 "Created signature file '%s'" "${dbfile##*/.tmp.}.sig" - else - warning "Failed to sign package database file '%s'" "${dbfile##*/.tmp.}" - fi -} - -# verify the existing package database signature -verify_signature() { - (( ! VERIFY )) && return - local dbfile=$1 - local ret=0 - msg "Verifying database signature..." - - if [[ ! -f $dbfile.sig ]]; then - warning "No existing signature found, skipping verification." - return - fi - gpg --verify "$dbfile.sig" || ret=$? - if (( ! ret )); then - msg2 "Database signature file verified." - else - error "Database signature was NOT valid!" - exit 1 - fi -} - -verify_repo_extension() { - local junk=() - if [[ $1 = *.links.tar* ]] && get_compression_command "$1" junk; then - return 0 - fi - - error "'%s' does not have a valid database archive extension." "$1" - exit 1 -} - -# write an entry to the pacman database -# arg1 - path to package -db_write_entry() { - # blank out all variables - local pkgfile=$1 - - local pkgname pkgver - - # read info from the zipped package - local line var val - while read -r line; do - [[ ${line:0:1} = '#' ]] && continue - IFS=' =' read -r var val < <(printf '%s\n' "$line") - # normalize whitespace with an extglob - declare "$var=${val//+([[:space:]])/ }" - - done< <(bsdtar -xOqf "$pkgfile" .PKGINFO) - - # ensure $pkgname and $pkgver variables were found - if [[ -z $pkgname || -z $pkgver ]]; then - error "Invalid package file '%s'." "$pkgfile" - return 1 - fi - - if [[ -d $tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver ]]; then - warning "An entry for '%s' already existed" "$pkgname-$pkgver" - if (( ONLYADDNEW )); then - return 0 - fi - fi - - # remove an existing entry if it exists, ignore failures - db_remove_entry "$pkgname" - - local tmppkg=$tmpdir/pkg/$pkgname-$pkgver - - mkdir "$tmppkg" - - bsdtar -xof "$pkgfile" -C "$tmppkg" --include={opt,{,usr/}{lib{,32},{s,}bin}}'/*' 2>/dev/null - - pushd "$tmpdir/${REPO_DB_NAME}" >/dev/null - mkdir "$pkgname-$pkgver" - pushd "$pkgname-$pkgver" >/dev/null - - # create links entry - msg2 "Creating '%s' db entry..." "${REPO_DB_NAME}" - - local linksentry=$tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver/${REPO_DB_NAME} - local files=$(find "$tmppkg" -type f ! -ipath "*/Documentation/*") - - for f in ${files}; do - readelf -d "$f" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p' - done | sort -u > "$linksentry" - - popd >/dev/null - popd >/dev/null - - return 0 -} - -# remove existing entries from the DB -# arg1 - package name -db_remove_entry() { - local pkgname=$1 - local notfound=1 - local pkgentry - pkgentry=$(find_pkgentry "$pkgname") - while [[ -n $pkgentry ]]; do - notfound=0 - - msg2 "Removing existing entry '%s'..." \ - "${pkgentry##*/}" - rm -rf "$pkgentry" - - # remove entries in "links" database - local linksentry - linksentry=$(echo "$pkgentry" | sed 's/\(.*\)\/db\//\1\/links\//') - rm -rf "$linksentry" - - pkgentry=$(find_pkgentry "$pkgname") - done - return $notfound -} - -prepare_repo_db() { - local repodir dbfile - - # ensure the path to the DB exists; $LOCKFILE is always an absolute path - repodir=${LOCKFILE%/*}/ - - if [[ ! -d $repodir ]]; then - error "%s does not exist or is not a directory." "$repodir" - exit 1 - fi - - # check lock file - if ( set -o noclobber; echo "$$" > "$LOCKFILE") 2> /dev/null; then - CLEAN_LOCK=1 - else - error "Failed to acquire lockfile: %s." "$LOCKFILE" - [[ -f $LOCKFILE ]] && error "Held by process %s" "$(cat "$LOCKFILE")" - exit 1 - fi - - dbfile=${repodir}/$REPO_DB_PREFIX.${REPO_DB_NAME}.$REPO_DB_SUFFIX - - if [[ -f $dbfile ]]; then - # there are two situations we can have here: - # a DB with some entries, or a DB with no contents at all. - if ! bsdtar -tqf "$dbfile" '*/links' >/dev/null 2>&1; then - # check empty case - if [[ -n $(bsdtar -tqf "$dbfile" '*' 2>/dev/null) ]]; then - error "Repository file '%s' is not a proper links database." "$dbfile" - exit 1 - fi - fi - verify_signature "$dbfile" - msg "Extracting %s to a temporary location..." "${dbfile##*/}" - bsdtar -xf "$dbfile" -C "$tmpdir/${REPO_DB_NAME}" - else - case $cmd in - links-remove) - # only a missing "db" database is currently an error - # TODO: remove if statement - if [[ ${REPO_DB_NAME} == "links" ]]; then - error "Repository file '%s' was not found." "$dbfile" - exit 1 - fi - ;; - links-add) - # check if the file can be created (write permission, directory existence, etc) - if ! touch "$dbfile"; then - error "Repository file '%s' could not be created." "$dbfile" - exit 1 - fi - rm -f "$dbfile" - ;; - esac - fi -} - -add() { - if [[ ! -f $1 ]]; then - error "File '%s' not found." "$1" - return 1 - fi - - pkgfile=$1 - if ! bsdtar -tqf "$pkgfile" .PKGINFO >/dev/null 2>&1; then - error "'%s' is not a package file, skipping" "$pkgfile" - return 1 - fi - - msg "Adding package '%s'" "$pkgfile" - - db_write_entry "$pkgfile" -} - -remove() { - pkgname=$1 - msg "Searching for package '%s'..." "$pkgname" - - if ! db_remove_entry "$pkgname"; then - error "Package matching '%s' not found." "$pkgname" - return 1 - fi - - return 0 -} - -rotate_db() { - dirname=${LOCKFILE%/*} - - pushd "$dirname" >/dev/null - - filename=${REPO_DB_PREFIX}.${REPO_DB_NAME}.${REPO_DB_SUFFIX} - tempname=$dirname/.tmp.$filename - - # hardlink or move the previous version of the database and signature to .old - # extension as a backup measure - if [[ -f $filename ]]; then - ln -f "$filename" "$filename.old" 2>/dev/null || \ - mv -f "$filename" "$filename.old" - - if [[ -f $filename.sig ]]; then - ln -f "$filename.sig" "$filename.old.sig" 2>/dev/null || \ - mv -f "$filename.sig" "$filename.old.sig" - else - rm -f "$filename.old.sig" - fi - fi - - # rotate the newly-created database and signature into place - mv "$tempname" "$filename" - if [[ -f $tempname.sig ]]; then - mv "$tempname.sig" "$filename.sig" - fi - - dblink=${filename%.tar*} - rm -f "$dblink" "$dblink.sig" - ln -s "$filename" "$dblink" 2>/dev/null || \ - ln "$filename" "$dblink" 2>/dev/null || \ - cp "$filename" "$dblink" - if [[ -f "$filename.sig" ]]; then - ln -s "$filename.sig" "$dblink.sig" 2>/dev/null || \ - ln "$filename.sig" "$dblink.sig" 2>/dev/null || \ - cp "$filename.sig" "$dblink.sig" - fi - - popd >/dev/null -} - -create_db() { - # $LOCKFILE is already guaranteed to be absolute so this is safe - dirname=${LOCKFILE%/*} - - filename=${REPO_DB_PREFIX}.${REPO_DB_NAME}.${REPO_DB_SUFFIX} - # this ensures we create it on the same filesystem, making moves atomic - tempname=$dirname/.tmp.$filename - - pushd "$tmpdir/${REPO_DB_NAME}" >/dev/null - local files=(*) - if [[ ${files[*]} = '*' ]]; then - # we have no packages remaining? zip up some emptyness - warning "No packages remain, creating empty database." - files=(-T /dev/null) - fi - bsdtar -cf - "${files[@]}" | compress_as "$filename" > "$tempname" - popd >/dev/null - - create_signature "$tempname" -} - -trap_exit() { - # unhook all traps to avoid race conditions - trap '' EXIT TERM HUP QUIT INT ERR - - echo - error "$@" - clean_up 1 -} - -clean_up() { - local exit_code=${1:-$?} - - # unhook all traps to avoid race conditions - trap '' EXIT TERM HUP QUIT INT ERR - - [[ -d $tmpdir ]] && rm -rf "$tmpdir" - (( CLEAN_LOCK )) && [[ -f $LOCKFILE ]] && rm -f "$LOCKFILE" - - exit "$exit_code" -} - -# PROGRAM START -case $1 in - -h|--help) usage; exit 0;; -esac - -# figure out what program we are -cmd=${0##*/} - -if [[ $cmd != "links-add" && $cmd != "links-remove" ]]; then - error "Invalid command name '%s' specified." "$cmd" - exit 1 -fi - -tmpdir=$(mktemp -d "${TMPDIR:-/tmp}/repo-tools.XXXXXXXXXX") || (\ - error "Cannot create temp directory for database building."; \ - exit 1) - -for repo in "pkg" "${REPO_DB_NAME}"; do - mkdir "$tmpdir/$repo" -done - -trap 'clean_up' EXIT -for signal in TERM HUP QUIT; do - trap "trap_exit \"$(gettext "%s signal caught. Exiting...")\" \"$signal\"" "$signal" -done -trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT -trap 'trap_exit "$(gettext "An unknown error has occurred. Exiting...")"' ERR - -declare -a args -# parse arguments -while (( $# )); do - case $1 in - -q|--quiet) QUIET=1 ;; - -n|--new) ONLYADDNEW=1 ;; - -s|--sign) SIGN=1 ;; - -k|--key) KEY=1 ; shift; GPGKEY=$1 ;; - -v|--verify) VERIFY=1 ;; - *) args+=("$1") ;; - esac - shift -done - -REPO_DB_FILE=${args[0]} -if [[ -z $REPO_DB_FILE ]]; then - usage - exit 1 -fi - -if [[ $REPO_DB_FILE == /* ]]; then - LOCKFILE=$REPO_DB_FILE.lck -else - LOCKFILE=$PWD/$REPO_DB_FILE.lck -fi - -verify_repo_extension "$REPO_DB_FILE" - -REPO_DB_PREFIX=${REPO_DB_FILE##*/} -REPO_DB_PREFIX=${REPO_DB_PREFIX%.links.*} -REPO_DB_SUFFIX=${REPO_DB_FILE##*.links.} - -if (( SIGN || VERIFY )); then - check_gpg -fi - -if (( VERIFY && ${#args[@]} == 1 )); then - dbfile=${repodir}/$REPO_DB_PREFIX.${REPO_DB_NAME}.$REPO_DB_SUFFIX - - if [[ -f $dbfile ]]; then - verify_signature "$dbfile" - fi - exit 0 -fi - -prepare_repo_db - -fail=0 -for arg in "${args[@]:1}"; do - case $cmd in - links-add) add "$arg" ;; - links-remove) remove "$arg" ;; - esac || fail=1 -done - -# if the whole operation was a success, re-zip and rotate databases -if (( !fail )); then - msg "Creating updated database file '%s'" "$REPO_DB_FILE" - create_db - rotate_db -else - msg "No packages modified, nothing to do." - exit 1 -fi - -exit 0 diff --git a/artools/0.26.1/artools/bin/pkg/mkchrootpkg b/artools/0.26.1/artools/bin/pkg/mkchrootpkg deleted file mode 100755 index 9ca9d2f..0000000 --- a/artools/0.26.1/artools/bin/pkg/mkchrootpkg +++ /dev/null @@ -1,578 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - - -export BUILDTOOL=artools-pkg -export BUILDTOOLVER=0.26 - -shopt -s nullglob - -default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg) -makepkg_args=("${default_makepkg_args[@]}") -verifysource_args=() -chrootdir= -passeddir= -makepkg_user= -declare -a install_pkgs -declare -i ret=0 - -keepbuilddir=0 -update_first=0 -clean_first=0 -run_namcap=0 -run_checkpkg=0 -temp_chroot=0 - -bindmounts=() - -copy=$USER -[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER -[[ -z "$copy" || $copy = root ]] && copy=copy -src_owner=${SUDO_USER:-$USER} - -usage() { - echo "Usage: ${0##*/} [options] -r [--] [makepkg args]" - echo ' Run this script in a PKGBUILD dir to build a package inside a' - echo ' clean chroot. Arguments passed to this script after the' - echo ' end-of-options marker (--) will be passed to makepkg.' - echo '' - echo ' The chroot dir consists of the following directories:' - echo ' /{root, copy} but only "root" is required' - echo ' by default. The working copy will be created as needed' - echo '' - echo 'The chroot "root" directory must be created via the following' - echo 'command:' - echo ' mkchroot /root base-devel' - echo '' - echo 'This script reads {SRC,SRCPKG,PKG,LOG}DEST, MAKEFLAGS and PACKAGER' - echo 'from makepkg.conf(5), if those variables are not part of the' - echo 'environment.' - echo '' - echo "Default makepkg args: ${default_makepkg_args[*]}" - echo '' - echo 'Flags:' - echo '-h This help' - echo '-c Clean the chroot before building' - echo '-d Bind directory into build chroot as read-write' - echo '-D Bind directory into build chroot as read-only' - echo '-u Update the working copy of the chroot before building' - echo ' This is useful for rebuilds without dirtying the pristine' - echo ' chroot' - echo '-r The chroot dir to use' - echo '-I Install a package into the working copy of the chroot' - echo '-l The directory to use as the working copy of the chroot' - echo ' Useful for maintaining multiple copies' - echo " Default: $copy" - echo '-n Run namcap on the package' - echo '-C Run checkpkg on the package' - echo '-N Disable check() function' - echo '-T Build in a temporary directory' - echo '-U Run makepkg as a specified user' - exit 1 -} - -# {{{ functions - -# Usage: sync_chroot $chrootdir $copydir [$copy] -sync_chroot() { - local chrootdir=$1 - local copydir=$2 - local copy=${3:-$2} - - if [[ "$chrootdir/root" -ef "$copydir" ]]; then - error 'Cannot sync copy with itself: %s' "$copydir" - return 1 - fi - - # Get a read lock on the root chroot to make - # sure we don't clone a half-updated chroot - slock 8 "$chrootdir/root.lock" \ - "Locking clean chroot [%s]" "$chrootdir/root" - - stat_busy "Synchronizing chroot copy [%s] -> [%s]" "$chrootdir/root" "$copy" - if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then - subvolume_delete_recursive "$copydir" || - die "Unable to delete subvolume %s" "$copydir" - btrfs subvolume snapshot "$chrootdir/root" "$copydir" >/dev/null || - die "Unable to create subvolume %s" "$copydir" - else - mkdir -p "$copydir" - rsync -a --delete -q -W -x "$chrootdir/root/" "$copydir" - fi - stat_done - - # Drop the read lock again - lock_close 8 - - # Update mtime - touch "$copydir" -} - -# Usage: delete_chroot $copydir [$copy] -delete_chroot() { - local copydir=$1 - local copy=${1:-$2} - - stat_busy "Removing chroot copy [%s]" "$copy" - if is_subvolume "$copydir" && ! mountpoint -q "$copydir"; then - subvolume_delete_recursive "$copydir" || - die "Unable to delete subvolume %s" "$copydir" - else - # avoid change of filesystem in case of an umount failure - rm --recursive --force --one-file-system "$copydir" || - die "Unable to delete %s" "$copydir" - fi - - # remove lock file - rm -f "$copydir.lock" - stat_done -} - -install_packages() { - local -a pkgnames - local ret - - pkgnames=("${install_pkgs[@]##*/}") - - cp -- "${install_pkgs[@]}" "$copydir/root/" - chroot-run \ - -b "${bindmounts[@]}" \ - "$copydir" \ - bash -c 'yes y | pacman -U -- "$@"' -bash "${pkgnames[@]/#//root/}" - ret=$? - rm -- "${pkgnames[@]/#/$copydir/root/}" - - return $ret -} - -prepare_chroot() { - (( keepbuilddir )) || rm -rf "$copydir/build" - - local builduser_uid builduser_gid - builduser_uid="$(id -u "$makepkg_user")" - builduser_gid="$(id -g "$makepkg_user")" - local install="install -o $builduser_uid -g $builduser_gid" - local x - - # We can't use useradd without chrooting, otherwise it invokes PAM modules - # which we might not be able to load (i.e. when building i686 packages on - # an x86_64 host). - sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,shadow,group} - printf >>"$copydir/etc/group" 'builduser:x:%d:\n' "$builduser_gid" - printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' "$builduser_uid" "$builduser_gid" - printf >>"$copydir/etc/shadow" 'builduser:!!:%d::::::\n' "$(( $(date -u +%s) / 86400 ))" - - $install -d "$copydir"/{build,startdir,{pkg,srcpkg,src,log}dest} - - sed -e '/^MAKEFLAGS=/d' -e '/^PACKAGER=/d' -i "$copydir/etc/makepkg.conf" - for x in BUILDDIR=/build PKGDEST=/pkgdest SRCPKGDEST=/srcpkgdest SRCDEST=/srcdest LOGDEST=/logdest \ - "MAKEFLAGS='${MAKEFLAGS:-}'" "PACKAGER='${PACKAGER:-}'" - do - grep -q "^$x" "$copydir/etc/makepkg.conf" && continue - echo "$x" >>"$copydir/etc/makepkg.conf" - done - - cat > "$copydir/etc/sudoers.d/builduser-pacman" </dev/null || true - declare -p BUILDTOOL 2>/dev/null - declare -p BUILDTOOLVER 2>/dev/null - printf '_chrootbuild "$@" || exit\n' - - if (( run_namcap )); then - declare -f _chrootnamcap - printf '_chrootnamcap || exit\n' - fi - } >"$copydir/chrootbuild" - chmod +x "$copydir/chrootbuild" -} - -# These functions aren't run in makechrootpkg, -# so no global variables -_chrootbuild() { - # No coredumps - ulimit -c 0 - - . /etc/locale.conf - - # shellcheck source=/dev/null - . /etc/profile - - # Beware, there are some stupid arbitrary rules on how you can - # use "$" in arguments to commands with "sudo -i". ${foo} or - # ${1} is OK, but $foo or $1 isn't. - # https://bugzilla.sudo.ws/show_bug.cgi?id=765 - sudo --preserve-env=SOURCE_DATE_EPOCH \ - -preserve-env=BUILDTOOL \ - --preserve-env=BUILDTOOLVER \ - -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" - ret=$? - case $ret in - 0|14) - return 0;; - *) - return $ret;; - esac -} - -_chrootnamcap() { - pacman -S --needed --noconfirm namcap - for pkgfile in /startdir/PKGBUILD /pkgdest/*; do - echo "Checking ${pkgfile##*/}" - sudo -u builduser namcap "$pkgfile" 2>&1 | tee "/logdest/${pkgfile##*/}-namcap.log" - done -} - -download_sources() { - setup_workdir - chown "$makepkg_user:" "$WORKDIR" - - # Ensure sources are downloaded - sudo -u "$makepkg_user" --preserve-env=GNUPGHOME,SSH_AUTH_SOCK \ - env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \ - makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" || - die "Could not download sources." -} - -move_logfiles() { - local l - for l in "$copydir"/logdest/*; do - [[ $l == */logpipe.* ]] && continue - chown "$src_owner" "$l" - mv "$l" "$LOGDEST" - done -} - -move_products() { - local pkgfile - for pkgfile in "$copydir"/pkgdest/*; do - chown "$src_owner" "$pkgfile" - mv "$pkgfile" "$PKGDEST" - - # Fix broken symlink because of temporary chroot PKGDEST /pkgdest - if [[ "$PWD" != "$PKGDEST" && -L "$PWD/${pkgfile##*/}" ]]; then - ln -sf "$PKGDEST/${pkgfile##*/}" - fi - done - - move_logfiles - - for s in "$copydir"/srcpkgdest/*; do - chown "$src_owner" "$s" - mv "$s" "$SRCPKGDEST" - - # Fix broken symlink because of temporary chroot SRCPKGDEST /srcpkgdest - if [[ "$PWD" != "$SRCPKGDEST" && -L "$PWD/${s##*/}" ]]; then - ln -sf "$SRCPKGDEST/${s##*/}" - fi - done -} -# }}} - -opts='hcur:I:l:nNCTb:U:' - -while getopts "${opts}" arg; do - case "$arg" in - c) clean_first=1 ;; - b) bindmounts+=("$OPTARG") ;; - u) update_first=1 ;; - r) passeddir="$OPTARG" ;; - I) install_pkgs+=("$OPTARG") ;; - l) copy="$OPTARG" ;; - n) run_namcap=1; makepkg_args+=(--install) ;; - N) makepkg_args+=(--nocheck) ;; - C) run_checkpkg=1 ;; - T) temp_chroot=1; copy+="-$$" ;; - U) makepkg_user="$OPTARG" ;; - h|*) usage ;; - esac -done - -[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.' -[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' -makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} - -check_root SOURCE_DATE_EPOCH,BUILDTOOL,BUILDTOOLVER,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER - -# Canonicalize chrootdir, getting rid of trailing / -chrootdir=$(readlink -e "$passeddir") -[[ ! -d $chrootdir ]] && die "No chroot dir defined, or invalid path '%s'" "$passeddir" -[[ ! -d $chrootdir/root ]] && die "Missing chroot dir root directory. Try using: mkchroot %s/root base-devel" "$chrootdir" - -if [[ ${copy:0:1} = / ]]; then - copydir=$copy -else - copydir="$chrootdir/$copy" -fi - -# Pass all arguments after -- right to makepkg -makepkg_args+=("${@:$OPTIND}") - -# See if -R or -e was passed to makepkg -for arg in "${@:$OPTIND}"; do - case ${arg%%=*} in - --skip*|--holdver) verifysource_args+=("$arg") ;; - --repackage|--noextract) keepbuilddir=1 ;; - --*) ;; - -*R*|-*e*) keepbuilddir=1 ;; - esac -done - -umask 0022 - -ORIG_HOME=$HOME -IFS=: read -r _ _ _ _ _ HOME _ < <(getent passwd "${SUDO_USER:-$USER}") -load_makepkg_config -HOME=$ORIG_HOME - -# Use PKGBUILD directory if these don't exist -[[ -d $PKGDEST ]] || PKGDEST=$PWD -[[ -d $SRCDEST ]] || SRCDEST=$PWD -[[ -d $SRCPKGDEST ]] || SRCPKGDEST=$PWD -[[ -d $LOGDEST ]] || LOGDEST=$PWD - -# Lock the chroot we want to use. We'll keep this lock until we exit. -lock 9 "$copydir.lock" "Locking chroot copy [%s]" "$copy" - -if [[ ! -d $copydir ]] || (( clean_first )); then - sync_chroot "$chrootdir" "$copydir" "$copy" -fi - -bindmounts+=("-B:${PWD}:/startdir" "-B:${SRCDEST}:/srcdest") - -(( update_first )) && chroot-run \ - -b "${bindmounts[*]}" \ - "$copydir" \ - pacman -Syuu --noconfirm - -if [[ -n ${install_pkgs[*]:-} ]]; then - install_packages - ret=$? - # If there is no PKGBUILD we are done - [[ -f PKGBUILD ]] || exit $ret -fi - -if [[ "$(id -u "$makepkg_user")" == 0 ]]; then - error "Running makepkg as root is not allowed." - exit 1 -fi - -download_sources - -prepare_chroot - -if chroot-run \ - -b "${bindmounts[*]}" \ - "$copydir" \ - /chrootbuild "${makepkg_args[@]}" -then - mapfile -t pkgnames < <(sudo -u "$makepkg_user" bash -c 'source PKGBUILD; printf "%s\n" "${pkgname[@]}"') - move_products -else - (( ret += 1 )) - move_logfiles -fi - -(( temp_chroot )) && delete_chroot "$copydir" "$copy" - -if (( ret != 0 )); then - if (( temp_chroot )); then - die "Build failed" - else - die "Build failed, check %s/build" "$copydir" - fi -else - if (( run_checkpkg )); then - msg "Running checkpkg" - - mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ - --dbpath "$copydir"/var/lib/pacman \ - -Sddp "${pkgnames[@]}") - - if ! wait $!; then - warning "Skipped checkpkg due to missing repo packages" - exit 0 - fi - # download package files if any non-local location exists - for remotepkg in "${remotepkgs[@]}"; do - if [[ $remotepkg != file://* ]]; then - msg2 "Downloading current versions" - chroot-run "$copydir" pacman --noconfirm -Swdd "${pkgnames[@]}" - mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ - --dbpath "$copydir"/var/lib/pacman \ - -Sddp "${pkgnames[@]}") - break - fi - done - msg2 "Checking packages" - sudo -u "$makepkg_user" checkpkg --rmdir --warn "${remotepkgs[@]/#file:\/\//}" - fi - true -fi diff --git a/artools/0.26.1/artools/bin/pkg/mkchrootpkg.in b/artools/0.26.1/artools/bin/pkg/mkchrootpkg.in deleted file mode 100644 index 2523626..0000000 --- a/artools/0.26.1/artools/bin/pkg/mkchrootpkg.in +++ /dev/null @@ -1,432 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) -m4_include(lib/base/chroot.sh) - -export BUILDTOOL=artools-pkg -export BUILDTOOLVER=m4_artools_pkg_version - -shopt -s nullglob - -default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg) -makepkg_args=("${default_makepkg_args[@]}") -verifysource_args=() -chrootdir= -passeddir= -makepkg_user= -declare -a install_pkgs -declare -i ret=0 - -keepbuilddir=0 -update_first=0 -clean_first=0 -run_namcap=0 -run_checkpkg=0 -temp_chroot=0 - -bindmounts=() - -copy=$USER -[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER -[[ -z "$copy" || $copy = root ]] && copy=copy -src_owner=${SUDO_USER:-$USER} - -usage() { - echo "Usage: ${0##*/} [options] -r [--] [makepkg args]" - echo ' Run this script in a PKGBUILD dir to build a package inside a' - echo ' clean chroot. Arguments passed to this script after the' - echo ' end-of-options marker (--) will be passed to makepkg.' - echo '' - echo ' The chroot dir consists of the following directories:' - echo ' /{root, copy} but only "root" is required' - echo ' by default. The working copy will be created as needed' - echo '' - echo 'The chroot "root" directory must be created via the following' - echo 'command:' - echo ' mkchroot /root base-devel' - echo '' - echo 'This script reads {SRC,SRCPKG,PKG,LOG}DEST, MAKEFLAGS and PACKAGER' - echo 'from makepkg.conf(5), if those variables are not part of the' - echo 'environment.' - echo '' - echo "Default makepkg args: ${default_makepkg_args[*]}" - echo '' - echo 'Flags:' - echo '-h This help' - echo '-c Clean the chroot before building' - echo '-d Bind directory into build chroot as read-write' - echo '-D Bind directory into build chroot as read-only' - echo '-u Update the working copy of the chroot before building' - echo ' This is useful for rebuilds without dirtying the pristine' - echo ' chroot' - echo '-r The chroot dir to use' - echo '-I Install a package into the working copy of the chroot' - echo '-l The directory to use as the working copy of the chroot' - echo ' Useful for maintaining multiple copies' - echo " Default: $copy" - echo '-n Run namcap on the package' - echo '-C Run checkpkg on the package' - echo '-N Disable check() function' - echo '-T Build in a temporary directory' - echo '-U Run makepkg as a specified user' - exit 1 -} - -# {{{ functions - -# Usage: sync_chroot $chrootdir $copydir [$copy] -sync_chroot() { - local chrootdir=$1 - local copydir=$2 - local copy=${3:-$2} - - if [[ "$chrootdir/root" -ef "$copydir" ]]; then - error 'Cannot sync copy with itself: %s' "$copydir" - return 1 - fi - - # Get a read lock on the root chroot to make - # sure we don't clone a half-updated chroot - slock 8 "$chrootdir/root.lock" \ - "Locking clean chroot [%s]" "$chrootdir/root" - - stat_busy "Synchronizing chroot copy [%s] -> [%s]" "$chrootdir/root" "$copy" - if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then - subvolume_delete_recursive "$copydir" || - die "Unable to delete subvolume %s" "$copydir" - btrfs subvolume snapshot "$chrootdir/root" "$copydir" >/dev/null || - die "Unable to create subvolume %s" "$copydir" - else - mkdir -p "$copydir" - rsync -a --delete -q -W -x "$chrootdir/root/" "$copydir" - fi - stat_done - - # Drop the read lock again - lock_close 8 - - # Update mtime - touch "$copydir" -} - -# Usage: delete_chroot $copydir [$copy] -delete_chroot() { - local copydir=$1 - local copy=${1:-$2} - - stat_busy "Removing chroot copy [%s]" "$copy" - if is_subvolume "$copydir" && ! mountpoint -q "$copydir"; then - subvolume_delete_recursive "$copydir" || - die "Unable to delete subvolume %s" "$copydir" - else - # avoid change of filesystem in case of an umount failure - rm --recursive --force --one-file-system "$copydir" || - die "Unable to delete %s" "$copydir" - fi - - # remove lock file - rm -f "$copydir.lock" - stat_done -} - -install_packages() { - local -a pkgnames - local ret - - pkgnames=("${install_pkgs[@]##*/}") - - cp -- "${install_pkgs[@]}" "$copydir/root/" - chroot-run \ - -b "${bindmounts[@]}" \ - "$copydir" \ - bash -c 'yes y | pacman -U -- "$@"' -bash "${pkgnames[@]/#//root/}" - ret=$? - rm -- "${pkgnames[@]/#/$copydir/root/}" - - return $ret -} - -prepare_chroot() { - (( keepbuilddir )) || rm -rf "$copydir/build" - - local builduser_uid builduser_gid - builduser_uid="$(id -u "$makepkg_user")" - builduser_gid="$(id -g "$makepkg_user")" - local install="install -o $builduser_uid -g $builduser_gid" - local x - - # We can't use useradd without chrooting, otherwise it invokes PAM modules - # which we might not be able to load (i.e. when building i686 packages on - # an x86_64 host). - sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,shadow,group} - printf >>"$copydir/etc/group" 'builduser:x:%d:\n' "$builduser_gid" - printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' "$builduser_uid" "$builduser_gid" - printf >>"$copydir/etc/shadow" 'builduser:!!:%d::::::\n' "$(( $(date -u +%s) / 86400 ))" - - $install -d "$copydir"/{build,startdir,{pkg,srcpkg,src,log}dest} - - sed -e '/^MAKEFLAGS=/d' -e '/^PACKAGER=/d' -i "$copydir/etc/makepkg.conf" - for x in BUILDDIR=/build PKGDEST=/pkgdest SRCPKGDEST=/srcpkgdest SRCDEST=/srcdest LOGDEST=/logdest \ - "MAKEFLAGS='${MAKEFLAGS:-}'" "PACKAGER='${PACKAGER:-}'" - do - grep -q "^$x" "$copydir/etc/makepkg.conf" && continue - echo "$x" >>"$copydir/etc/makepkg.conf" - done - - cat > "$copydir/etc/sudoers.d/builduser-pacman" </dev/null || true - declare -p BUILDTOOL 2>/dev/null - declare -p BUILDTOOLVER 2>/dev/null - printf '_chrootbuild "$@" || exit\n' - - if (( run_namcap )); then - declare -f _chrootnamcap - printf '_chrootnamcap || exit\n' - fi - } >"$copydir/chrootbuild" - chmod +x "$copydir/chrootbuild" -} - -# These functions aren't run in makechrootpkg, -# so no global variables -_chrootbuild() { - # No coredumps - ulimit -c 0 - - . /etc/locale.conf - - # shellcheck source=/dev/null - . /etc/profile - - # Beware, there are some stupid arbitrary rules on how you can - # use "$" in arguments to commands with "sudo -i". ${foo} or - # ${1} is OK, but $foo or $1 isn't. - # https://bugzilla.sudo.ws/show_bug.cgi?id=765 - sudo --preserve-env=SOURCE_DATE_EPOCH \ - -preserve-env=BUILDTOOL \ - --preserve-env=BUILDTOOLVER \ - -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" - ret=$? - case $ret in - 0|14) - return 0;; - *) - return $ret;; - esac -} - -_chrootnamcap() { - pacman -S --needed --noconfirm namcap - for pkgfile in /startdir/PKGBUILD /pkgdest/*; do - echo "Checking ${pkgfile##*/}" - sudo -u builduser namcap "$pkgfile" 2>&1 | tee "/logdest/${pkgfile##*/}-namcap.log" - done -} - -download_sources() { - setup_workdir - chown "$makepkg_user:" "$WORKDIR" - - # Ensure sources are downloaded - sudo -u "$makepkg_user" --preserve-env=GNUPGHOME,SSH_AUTH_SOCK \ - env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \ - makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" || - die "Could not download sources." -} - -move_logfiles() { - local l - for l in "$copydir"/logdest/*; do - [[ $l == */logpipe.* ]] && continue - chown "$src_owner" "$l" - mv "$l" "$LOGDEST" - done -} - -move_products() { - local pkgfile - for pkgfile in "$copydir"/pkgdest/*; do - chown "$src_owner" "$pkgfile" - mv "$pkgfile" "$PKGDEST" - - # Fix broken symlink because of temporary chroot PKGDEST /pkgdest - if [[ "$PWD" != "$PKGDEST" && -L "$PWD/${pkgfile##*/}" ]]; then - ln -sf "$PKGDEST/${pkgfile##*/}" - fi - done - - move_logfiles - - for s in "$copydir"/srcpkgdest/*; do - chown "$src_owner" "$s" - mv "$s" "$SRCPKGDEST" - - # Fix broken symlink because of temporary chroot SRCPKGDEST /srcpkgdest - if [[ "$PWD" != "$SRCPKGDEST" && -L "$PWD/${s##*/}" ]]; then - ln -sf "$SRCPKGDEST/${s##*/}" - fi - done -} -# }}} - -opts='hcur:I:l:nNCTb:U:' - -while getopts "${opts}" arg; do - case "$arg" in - c) clean_first=1 ;; - b) bindmounts+=("$OPTARG") ;; - u) update_first=1 ;; - r) passeddir="$OPTARG" ;; - I) install_pkgs+=("$OPTARG") ;; - l) copy="$OPTARG" ;; - n) run_namcap=1; makepkg_args+=(--install) ;; - N) makepkg_args+=(--nocheck) ;; - C) run_checkpkg=1 ;; - T) temp_chroot=1; copy+="-$$" ;; - U) makepkg_user="$OPTARG" ;; - h|*) usage ;; - esac -done - -[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.' -[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' -makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} - -check_root SOURCE_DATE_EPOCH,BUILDTOOL,BUILDTOOLVER,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER - -# Canonicalize chrootdir, getting rid of trailing / -chrootdir=$(readlink -e "$passeddir") -[[ ! -d $chrootdir ]] && die "No chroot dir defined, or invalid path '%s'" "$passeddir" -[[ ! -d $chrootdir/root ]] && die "Missing chroot dir root directory. Try using: mkchroot %s/root base-devel" "$chrootdir" - -if [[ ${copy:0:1} = / ]]; then - copydir=$copy -else - copydir="$chrootdir/$copy" -fi - -# Pass all arguments after -- right to makepkg -makepkg_args+=("${@:$OPTIND}") - -# See if -R or -e was passed to makepkg -for arg in "${@:$OPTIND}"; do - case ${arg%%=*} in - --skip*|--holdver) verifysource_args+=("$arg") ;; - --repackage|--noextract) keepbuilddir=1 ;; - --*) ;; - -*R*|-*e*) keepbuilddir=1 ;; - esac -done - -umask 0022 - -ORIG_HOME=$HOME -IFS=: read -r _ _ _ _ _ HOME _ < <(getent passwd "${SUDO_USER:-$USER}") -load_makepkg_config -HOME=$ORIG_HOME - -# Use PKGBUILD directory if these don't exist -[[ -d $PKGDEST ]] || PKGDEST=$PWD -[[ -d $SRCDEST ]] || SRCDEST=$PWD -[[ -d $SRCPKGDEST ]] || SRCPKGDEST=$PWD -[[ -d $LOGDEST ]] || LOGDEST=$PWD - -# Lock the chroot we want to use. We'll keep this lock until we exit. -lock 9 "$copydir.lock" "Locking chroot copy [%s]" "$copy" - -if [[ ! -d $copydir ]] || (( clean_first )); then - sync_chroot "$chrootdir" "$copydir" "$copy" -fi - -bindmounts+=("-B:${PWD}:/startdir" "-B:${SRCDEST}:/srcdest") - -(( update_first )) && chroot-run \ - -b "${bindmounts[*]}" \ - "$copydir" \ - pacman -Syuu --noconfirm - -if [[ -n ${install_pkgs[*]:-} ]]; then - install_packages - ret=$? - # If there is no PKGBUILD we are done - [[ -f PKGBUILD ]] || exit $ret -fi - -if [[ "$(id -u "$makepkg_user")" == 0 ]]; then - error "Running makepkg as root is not allowed." - exit 1 -fi - -download_sources - -prepare_chroot - -if chroot-run \ - -b "${bindmounts[*]}" \ - "$copydir" \ - /chrootbuild "${makepkg_args[@]}" -then - mapfile -t pkgnames < <(sudo -u "$makepkg_user" bash -c 'source PKGBUILD; printf "%s\n" "${pkgname[@]}"') - move_products -else - (( ret += 1 )) - move_logfiles -fi - -(( temp_chroot )) && delete_chroot "$copydir" "$copy" - -if (( ret != 0 )); then - if (( temp_chroot )); then - die "Build failed" - else - die "Build failed, check %s/build" "$copydir" - fi -else - if (( run_checkpkg )); then - msg "Running checkpkg" - - mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ - --dbpath "$copydir"/var/lib/pacman \ - -Sddp "${pkgnames[@]}") - - if ! wait $!; then - warning "Skipped checkpkg due to missing repo packages" - exit 0 - fi - # download package files if any non-local location exists - for remotepkg in "${remotepkgs[@]}"; do - if [[ $remotepkg != file://* ]]; then - msg2 "Downloading current versions" - chroot-run "$copydir" pacman --noconfirm -Swdd "${pkgnames[@]}" - mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ - --dbpath "$copydir"/var/lib/pacman \ - -Sddp "${pkgnames[@]}") - break - fi - done - msg2 "Checking packages" - sudo -u "$makepkg_user" checkpkg --rmdir --warn "${remotepkgs[@]/#file:\/\//}" - fi - true -fi diff --git a/artools/0.26.1/artools/bin/pkg/pkg2yaml b/artools/0.26.1/artools/bin/pkg/pkg2yaml deleted file mode 100755 index 4ac2927..0000000 --- a/artools/0.26.1/artools/bin/pkg/pkg2yaml +++ /dev/null @@ -1,287 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ yaml - -write_yaml_header(){ - printf '%s' '---' -} - -write_empty_line(){ - printf '\n%s\n' ' ' -} - -write_yaml_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s%s: %s\n" '' "$key" "$val" -} - -write_yaml_seq(){ - local ident="$1" val="$2" - printf "\n%${ident}s- %s\n" '' "$val" -} - -write_yaml_seq_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s- %s: %s\n" '' "$key" "$val" -} - -#}}} - - -#{{{ functions - -srcyaml_write_attr(){ - local ident1="$1" ident2="$2" ident3="$3" - local attrname=$4 attrvalues=("${@:5}") - - # normalize whitespace, strip leading and trailing - attrvalues=("${attrvalues[@]//+([[:space:]])/ }") - attrvalues=("${attrvalues[@]#[[:space:]]}") - attrvalues=("${attrvalues[@]%[[:space:]]}") - - case $attrname in - pkgver|pkgrel|epoch|url|install|changelog) - for v in "${attrvalues[@]}"; do - Yaml+=$(write_yaml_map "$ident3" "$attrname" "$v") - done - ;; - *) - Yaml+=$(write_yaml_map "$ident1" "$attrname") - for v in "${attrvalues[@]}"; do - Yaml+=$(write_yaml_seq "$ident2" "$v") - done - ;; - esac -} - -pkgbuild_extract_to_yaml() { - local pkgname=$1 attrname=$2 isarray=$3 outvalue= - - if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; then - [[ -z $pkgname ]] && srcyaml_write_attr 2 4 2 "$attrname" "${outvalue[@]}" - [[ -n $pkgname ]] && srcyaml_write_attr 4 6 2 "$attrname" "${outvalue[@]}" - fi -} - -srcyaml_write_section_details() { - local attr package_arch a - local multivalued_arch_attrs=(source provides conflicts depends replaces - optdepends makedepends checkdepends) -# "${known_hash_algos[@]/%/sums}") - - for attr in "${singlevalued[@]}"; do - pkgbuild_extract_to_yaml "$1" "$attr" 0 - done - - for attr in "${multivalued[@]}"; do - pkgbuild_extract_to_yaml "$1" "$attr" 1 - done - - get_pkgbuild_attribute "$1" 'arch' 1 'package_arch' - for a in "${package_arch[@]}"; do - # 'any' is special. there's no support for, e.g. depends_any. - [[ $a = any ]] && continue - - for attr in "${multivalued_arch_attrs[@]}"; do - pkgbuild_extract_to_yaml "$1" "${attr}_$a" 1 - done - done -} - -yaml_write_global() { - local singlevalued=(pkgver pkgrel epoch url install changelog) #pkgdesc - local multivalued=(arch groups license checkdepends makedepends - depends provides conflicts replaces) - #noextract options backup optdepends - #source validpgpkeys "${known_hash_algos[@]/%/sums}") - - Yaml+=$(write_empty_line) - Yaml+=$(write_yaml_map 0 "pkgbase") - Yaml+=$(write_yaml_map 2 "name" "${pkgbase:-$pkgname}") - ${details} && srcyaml_write_section_details '' - Yaml+=$(write_empty_line) -} - -yaml_write_package() { - local singlevalued=(url install changelog) #pkgdesc - local multivalued=(arch groups license checkdepends depends - provides conflicts replaces) #options backup optdepends) - - Yaml+=$(write_yaml_map 0 "packages") - for pkg in "${pkgname[@]}"; do - Yaml+=$(write_yaml_seq_map 2 "pkgname" "$pkg") - ${details} && srcyaml_write_section_details "$pkg" - done - Yaml+=$(write_empty_line) -} - -yaml_write_fileinfo(){ - local version - version=$(get_full_version) - pkgbase=${pkgbase:-$pkgname} - Yaml+=$(write_yaml_map 0 "version" "${version:-0}") - Yaml+=$(write_empty_line) - local pkgfile - pkgfile=$(print_all_package_names) - Yaml+=$(write_yaml_map 0 "files") - for f in ${pkgfile}; do - Yaml+=$(write_yaml_seq 2 "${f##*/}") - done - Yaml+=$(write_empty_line) -} - -write_srcyaml(){ - Yaml=$(write_yaml_header) - yaml_write_global - yaml_write_package - yaml_write_fileinfo - printf '%s' "${Yaml}" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [options]" - echo " -d Don't include details" - echo ' -h This help' - echo '' - exit "$1" -} - -details=true - -opts='dh' - -while getopts "${opts}" arg; do - case "${arg}" in - d) details=false ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -srcpath=$(readlink -f "$1") - -[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath" -package="$srcpath"/PKGBUILD; shift - -# shellcheck disable=1090 -. "${package}" - -load_makepkg_config - -write_srcyaml diff --git a/artools/0.26.1/artools/bin/pkg/pkg2yaml.in b/artools/0.26.1/artools/bin/pkg/pkg2yaml.in deleted file mode 100644 index 4c2041d..0000000 --- a/artools/0.26.1/artools/bin/pkg/pkg2yaml.in +++ /dev/null @@ -1,162 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) -m4_include(lib/base/yaml.sh) - -#{{{ functions - -srcyaml_write_attr(){ - local ident1="$1" ident2="$2" ident3="$3" - local attrname=$4 attrvalues=("${@:5}") - - # normalize whitespace, strip leading and trailing - attrvalues=("${attrvalues[@]//+([[:space:]])/ }") - attrvalues=("${attrvalues[@]#[[:space:]]}") - attrvalues=("${attrvalues[@]%[[:space:]]}") - - case $attrname in - pkgver|pkgrel|epoch|url|install|changelog) - for v in "${attrvalues[@]}"; do - Yaml+=$(write_yaml_map "$ident3" "$attrname" "$v") - done - ;; - *) - Yaml+=$(write_yaml_map "$ident1" "$attrname") - for v in "${attrvalues[@]}"; do - Yaml+=$(write_yaml_seq "$ident2" "$v") - done - ;; - esac -} - -pkgbuild_extract_to_yaml() { - local pkgname=$1 attrname=$2 isarray=$3 outvalue= - - if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; then - [[ -z $pkgname ]] && srcyaml_write_attr 2 4 2 "$attrname" "${outvalue[@]}" - [[ -n $pkgname ]] && srcyaml_write_attr 4 6 2 "$attrname" "${outvalue[@]}" - fi -} - -srcyaml_write_section_details() { - local attr package_arch a - local multivalued_arch_attrs=(source provides conflicts depends replaces - optdepends makedepends checkdepends) -# "${known_hash_algos[@]/%/sums}") - - for attr in "${singlevalued[@]}"; do - pkgbuild_extract_to_yaml "$1" "$attr" 0 - done - - for attr in "${multivalued[@]}"; do - pkgbuild_extract_to_yaml "$1" "$attr" 1 - done - - get_pkgbuild_attribute "$1" 'arch' 1 'package_arch' - for a in "${package_arch[@]}"; do - # 'any' is special. there's no support for, e.g. depends_any. - [[ $a = any ]] && continue - - for attr in "${multivalued_arch_attrs[@]}"; do - pkgbuild_extract_to_yaml "$1" "${attr}_$a" 1 - done - done -} - -yaml_write_global() { - local singlevalued=(pkgver pkgrel epoch url install changelog) #pkgdesc - local multivalued=(arch groups license checkdepends makedepends - depends provides conflicts replaces) - #noextract options backup optdepends - #source validpgpkeys "${known_hash_algos[@]/%/sums}") - - Yaml+=$(write_empty_line) - Yaml+=$(write_yaml_map 0 "pkgbase") - Yaml+=$(write_yaml_map 2 "name" "${pkgbase:-$pkgname}") - ${details} && srcyaml_write_section_details '' - Yaml+=$(write_empty_line) -} - -yaml_write_package() { - local singlevalued=(url install changelog) #pkgdesc - local multivalued=(arch groups license checkdepends depends - provides conflicts replaces) #options backup optdepends) - - Yaml+=$(write_yaml_map 0 "packages") - for pkg in "${pkgname[@]}"; do - Yaml+=$(write_yaml_seq_map 2 "pkgname" "$pkg") - ${details} && srcyaml_write_section_details "$pkg" - done - Yaml+=$(write_empty_line) -} - -yaml_write_fileinfo(){ - local version - version=$(get_full_version) - pkgbase=${pkgbase:-$pkgname} - Yaml+=$(write_yaml_map 0 "version" "${version:-0}") - Yaml+=$(write_empty_line) - local pkgfile - pkgfile=$(print_all_package_names) - Yaml+=$(write_yaml_map 0 "files") - for f in ${pkgfile}; do - Yaml+=$(write_yaml_seq 2 "${f##*/}") - done - Yaml+=$(write_empty_line) -} - -write_srcyaml(){ - Yaml=$(write_yaml_header) - yaml_write_global - yaml_write_package - yaml_write_fileinfo - printf '%s' "${Yaml}" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [options]" - echo " -d Don't include details" - echo ' -h This help' - echo '' - exit "$1" -} - -details=true - -opts='dh' - -while getopts "${opts}" arg; do - case "${arg}" in - d) details=false ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -srcpath=$(readlink -f "$1") - -[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath" -package="$srcpath"/PKGBUILD; shift - -# shellcheck disable=1090 -. "${package}" - -load_makepkg_config - -write_srcyaml diff --git a/artools/0.26.1/artools/bin/pkg/signpkg b/artools/0.26.1/artools/bin/pkg/signpkg deleted file mode 100755 index c05fb54..0000000 --- a/artools/0.26.1/artools/bin/pkg/signpkg +++ /dev/null @@ -1,180 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ functions - -find_cached_pkgfile() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local pkg="$1" - for dir in "${searchdirs[@]}"; do - [[ -d "$dir" ]] || continue - [[ -e "$dir/$pkg" ]] && results+=("$dir/$pkg") - done - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -get_pkgbasename() { - local name="$1" - local rm_pkg=${name%.pkg.tar*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - echo "$rm_pkg" -} - -#}}} - - -load_makepkg_config - -passfiles=("$@") - -sign_pkg(){ - local file_to_sign="$1" - - if [ ! -e "$file_to_sign" ]; then - error "%s does not exist!" "$file_to_sign" - exit 1 - fi - - if [[ -n "${BUILDBOT_GPGP}" ]]; then - msg "Signing [%s]" "${file_to_sign##*/}" - gpg --batch --passphrase "${BUILDBOT_GPGP}" --detach-sign "$file_to_sign" - else - msg "Signing [%s] with key %s" "${file_to_sign##*/}" "${GPGKEY}..." - gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign" - fi -} - -for pkg in "${passfiles[@]}"; do - msg "Searching %s ..." "$pkg" - if pkgfile=$(find_cached_pkgfile "$pkg");then - msg2 "Found: %s" "${pkgfile}" - [[ -e "${pkgfile}".sig ]] && rm "${pkgfile}".sig - sign_pkg "${pkgfile}" - fi -done diff --git a/artools/0.26.1/artools/bin/pkg/signpkg.in b/artools/0.26.1/artools/bin/pkg/signpkg.in deleted file mode 100644 index ae6e700..0000000 --- a/artools/0.26.1/artools/bin/pkg/signpkg.in +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -m4_include(lib/base/message.sh) -m4_include(lib/pkg/deploy.sh) - -load_makepkg_config - -passfiles=("$@") - -sign_pkg(){ - local file_to_sign="$1" - - if [ ! -e "$file_to_sign" ]; then - error "%s does not exist!" "$file_to_sign" - exit 1 - fi - - if [[ -n "${BUILDBOT_GPGP}" ]]; then - msg "Signing [%s]" "${file_to_sign##*/}" - gpg --batch --passphrase "${BUILDBOT_GPGP}" --detach-sign "$file_to_sign" - else - msg "Signing [%s] with key %s" "${file_to_sign##*/}" "${GPGKEY}..." - gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign" - fi -} - -for pkg in "${passfiles[@]}"; do - msg "Searching %s ..." "$pkg" - if pkgfile=$(find_cached_pkgfile "$pkg");then - msg2 "Found: %s" "${pkgfile}" - [[ -e "${pkgfile}".sig ]] && rm "${pkgfile}".sig - sign_pkg "${pkgfile}" - fi -done diff --git a/artools/0.26.1/artools/data/conf/artools-base.conf b/artools/0.26.1/artools/data/conf/artools-base.conf deleted file mode 100644 index 4954b0b..0000000 --- a/artools/0.26.1/artools/data/conf/artools-base.conf +++ /dev/null @@ -1,9 +0,0 @@ -############################################# -################ artools-base ############### -############################################# - -# build dir where buildpkg or buildiso chroots are created -# CHROOTS_DIR=/var/lib/artools - -# the workspace directory -# WORKSPACE_DIR="${USER_HOME}/artools-workspace" diff --git a/artools/0.26.1/artools/data/conf/artools-iso.conf b/artools/0.26.1/artools/data/conf/artools-iso.conf deleted file mode 100644 index 446e692..0000000 --- a/artools/0.26.1/artools/data/conf/artools-iso.conf +++ /dev/null @@ -1,21 +0,0 @@ -############################################# -################ artools-iso ################ -############################################# - -# the iso storage directory -# ISO_POOL="${WORKSPACE_DIR}/iso" - -# the dist release; default: auto -# ISO_VERSION=$(date +%Y%m%d) - -# possible values: openrc, runit, s6, suite66, dinit -# INITSYS="openrc" - -# gpg key; leave empty or commented to skip img signing -# GPG_KEY="" - -# possible values: zstd (default), xz -# COMPRESSION="zstd" - -# zstd only: range 1..22 -# COMPRESSION_LEVEL=15 diff --git a/artools/0.26.1/artools/data/conf/artools-pkg.conf b/artools/0.26.1/artools/data/conf/artools-pkg.conf deleted file mode 100644 index c4829f9..0000000 --- a/artools/0.26.1/artools/data/conf/artools-pkg.conf +++ /dev/null @@ -1,59 +0,0 @@ -############################################# -################ artools-pkg ################ -############################################# - -# gitea user access token for buildtree -# GIT_TOKEN='' - -# TREE_DIR_ARTIX=${WORKSPACE_DIR}/artixlinux - -# customize buildtree; uncomment to include -# TREE_NAMES_ARTIX=( -# packages-kernel -# packages-llvm -# packages-openrc -# packages-runit -# packages-s6 -# packages-suite66 -# packages-dinit -# packages-perl -# packages-java -# packages-ruby -# packages-gtk -# packages-qt5 -# packages-qt6 -# packages-xorg -# packages-plasma -# packages-kde -# packages-gnome -# packages-cinnamon -# packages-lxqt -# packages-lxde -# packages-mate -# packages-xfce -# packages-wm -# packages-devel -# packages-qt6 -# packages-office -# packages-misc -# python-world -# python-galaxy -# python-galaxy-groups -# python-misc -# packages-python -# packages-lib32 -# ) - -# TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux - -# default repos root for deploypkg -# REPOS_ROOT=${WORKSPACE_DIR}/repos - -# default mirror for checkrepo -# REPOS_MIRROR="http://mirror1.artixlinux.org/repos" - -# enable if trouble with default github arch mirror -# ARCH_TREE=(packages community) - -# enable if trouble with default github arch mirror -# HOST_TREE_ARCH='https://git.archlinux.org/svntogit' diff --git a/artools/0.26.1/artools/data/pacman/makepkg.conf b/artools/0.26.1/artools/data/pacman/makepkg.conf deleted file mode 100644 index 9d1b2f2..0000000 --- a/artools/0.26.1/artools/data/pacman/makepkg.conf +++ /dev/null @@ -1,161 +0,0 @@ -#!/hint/bash -# shellcheck disable=2034 - -# -# /etc/makepkg.conf -# - -######################################################################### -# SOURCE ACQUISITION -######################################################################### -# -#-- The download utilities that makepkg should use to acquire sources -# Format: 'protocol::agent' -DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u' - 'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' - 'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' - 'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' - 'rsync::/usr/bin/rsync --no-motd -z %u %o' - 'scp::/usr/bin/scp -C %u %o') - -# Other common tools: -# /usr/bin/snarf -# /usr/bin/lftpget -c -# /usr/bin/wget - -#-- The package required by makepkg to download VCS sources -# Format: 'protocol::package' -VCSCLIENTS=('bzr::bzr' - 'fossil::fossil' - 'git::git' - 'hg::mercurial' - 'svn::subversion') - -######################################################################### -# ARCHITECTURE, COMPILE FLAGS -######################################################################### -# -CARCH="x86_64" -CHOST="x86_64-pc-linux-gnu" - -#-- Compiler and Linker Flags -#CPPFLAGS="" -CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \ - -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ - -fstack-clash-protection -fcf-protection" -CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" -LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" -#RUSTFLAGS="-C opt-level=2" -#-- Make Flags: change this for DistCC/SMP systems -#MAKEFLAGS="-j2" -#-- Debugging flags -DEBUG_CFLAGS="-g -fvar-tracking-assignments" -DEBUG_CXXFLAGS="-g -fvar-tracking-assignments" -#DEBUG_RUSTFLAGS="-C debuginfo=2" - -######################################################################### -# BUILD ENVIRONMENT -######################################################################### -# -# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign) -# A negated environment option will do the opposite of the comments below. -# -#-- distcc: Use the Distributed C/C++/ObjC compiler -#-- color: Colorize output messages -#-- ccache: Use ccache to cache compilation -#-- check: Run the check() function if present in the PKGBUILD -#-- sign: Generate PGP signature file -# -BUILDENV=(!distcc color !ccache check !sign) -# -#-- If using DistCC, your MAKEFLAGS will also need modification. In addition, -#-- specify a space-delimited list of hosts running in the DistCC cluster. -#DISTCC_HOSTS="" -# -#-- Specify a directory for package building. -#BUILDDIR=/tmp/makepkg - -######################################################################### -# GLOBAL PACKAGE OPTIONS -# These are default values for the options=() settings -######################################################################### -# -# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto) -# A negated option will do the opposite of the comments below. -# -#-- strip: Strip symbols from binaries/libraries -#-- docs: Save doc directories specified by DOC_DIRS -#-- libtool: Leave libtool (.la) files in packages -#-- staticlibs: Leave static library (.a) files in packages -#-- emptydirs: Leave empty directories in packages -#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip -#-- purge: Remove files specified by PURGE_TARGETS -#-- debug: Add debugging flags as specified in DEBUG_* variables -#-- lto: Add compile flags for building with link time optimization -# -OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto) - -#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2 -INTEGRITY_CHECK=(sha256) -#-- Options to be used when stripping binaries. See `man strip' for details. -STRIP_BINARIES="--strip-all" -#-- Options to be used when stripping shared libraries. See `man strip' for details. -STRIP_SHARED="--strip-unneeded" -#-- Options to be used when stripping static libraries. See `man strip' for details. -STRIP_STATIC="--strip-debug" -#-- Manual (man and info) directories to compress (if zipman is specified) -MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}) -#-- Doc directories to remove (if !docs is specified) -DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) -#-- Files to be removed from all packages (if purge is specified) -PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) -#-- Directory to store source code in for debug packages -DBGSRCDIR="/usr/src/debug" - -######################################################################### -# PACKAGE OUTPUT -######################################################################### -# -# Default: put built package and cached source in build directory -# -#-- Destination: specify a fixed directory where all packages will be placed -#PKGDEST=/home/packages -#-- Source cache: specify a fixed directory where source files will be cached -#SRCDEST=/home/sources -#-- Source packages: specify a fixed directory where all src packages will be placed -#SRCPKGDEST=/home/srcpackages -#-- Log files: specify a fixed directory where all log files will be placed -#LOGDEST=/home/makepkglogs -#-- Packager: name/email of the person or organization building packages -#PACKAGER="John Doe " -#-- Specify a key to use for package signing -#GPGKEY="" - -######################################################################### -# COMPRESSION DEFAULTS -######################################################################### -# -COMPRESSGZ=(gzip -c -f -n) -COMPRESSBZ2=(bzip2 -c -f) -COMPRESSXZ=(xz -c -z -) -COMPRESSZST=(zstd -c -T0 --ultra -20 -) -COMPRESSLRZ=(lrzip -q) -COMPRESSLZO=(lzop -q) -COMPRESSZ=(compress -c -f) -COMPRESSLZ4=(lz4 -q) -COMPRESSLZ=(lzip -c -f) - -######################################################################### -# EXTENSION DEFAULTS -######################################################################### -# -PKGEXT='.pkg.tar.zst' -SRCEXT='.src.tar.gz' - -######################################################################### -# OTHER -######################################################################### -# -#-- Command used to run pacman as root, instead of trying sudo and su -#PACMAN_AUTH=() -# vim: set ft=sh ts=2 sw=2 et: diff --git a/artools/0.26.1/artools/data/pacman/pacman-default.conf b/artools/0.26.1/artools/data/pacman/pacman-default.conf deleted file mode 100644 index 64559bc..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-default.conf +++ /dev/null @@ -1,92 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[gremlins] -#Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -#[galaxy-gremlins] -#Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-docker.conf b/artools/0.26.1/artools/data/pacman/pacman-docker.conf deleted file mode 100644 index 01a1688..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-docker.conf +++ /dev/null @@ -1,99 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -NoExtract = usr/share/help/* !usr/share/help/en* -NoExtract = usr/share/gtk-doc/html/* usr/share/doc/* -NoExtract = usr/share/locale/* usr/share/X11/locale/* usr/share/i18n/* -NoExtract = !*locale*/en*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.* -NoExtract = !usr/share/*locales/en_?? !usr/share/*locales/i18n* !usr/share/*locales/iso* -NoExtract = !usr/share/*locales/trans* -NoExtract = usr/share/man/* usr/share/info/* -NoExtract = usr/share/vim/vim*/lang/* - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -#[lib32] -#Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-gnome-wobble.conf b/artools/0.26.1/artools/data/pacman/pacman-gnome-wobble.conf deleted file mode 100644 index bcc3a2d..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-gnome-wobble.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[gnome-wobble] -Include = /etc/pacman.d/mirrorlist - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-goblins.conf b/artools/0.26.1/artools/data/pacman/pacman-goblins.conf deleted file mode 100644 index a085590..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-goblins.conf +++ /dev/null @@ -1,98 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-gremlins.conf b/artools/0.26.1/artools/data/pacman/pacman-gremlins.conf deleted file mode 100644 index 26ff03e..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-gremlins.conf +++ /dev/null @@ -1,92 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-kde-wobble.conf b/artools/0.26.1/artools/data/pacman/pacman-kde-wobble.conf deleted file mode 100644 index 640417d..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-kde-wobble.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[kde-wobble] -Include = /etc/pacman.d/mirrorlist - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-lib32-goblins.conf b/artools/0.26.1/artools/data/pacman/pacman-lib32-goblins.conf deleted file mode 100644 index 971a4bc..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-lib32-goblins.conf +++ /dev/null @@ -1,110 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -[lib32-goblins] -Include = /etc/pacman.d/mirrorlist - -[lib32-gremlins] -Include = /etc/pacman.d/mirrorlist - -[lib32] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-lib32-gremlins.conf b/artools/0.26.1/artools/data/pacman/pacman-lib32-gremlins.conf deleted file mode 100644 index 379dfda..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-lib32-gremlins.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -[lib32-gremlins] -Include = /etc/pacman.d/mirrorlist - -[lib32] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/pacman/pacman-lib32.conf b/artools/0.26.1/artools/data/pacman/pacman-lib32.conf deleted file mode 100644 index a5e6621..0000000 --- a/artools/0.26.1/artools/data/pacman/pacman-lib32.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[gremlins] -#Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -#[galaxy-gremlins] -#Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -#[lib32-gremlins] -#Include = /etc/pacman.d/mirrorlist - -[lib32] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/data/patches/artix-bash.patch b/artools/0.26.1/artools/data/patches/artix-bash.patch deleted file mode 100644 index 15daaba..0000000 --- a/artools/0.26.1/artools/data/patches/artix-bash.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- /dev/null -+++ b/artix.bashrc -@@ -0,0 +1,46 @@ -+use_color=true -+ -+# Set colorful PS1 only on colorful terminals. -+# dircolors --print-database uses its own built-in database -+# instead of using /etc/DIR_COLORS. Try to use the external file -+# first to take advantage of user additions. Use internal bash -+# globbing instead of external grep binary. -+safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM -+match_lhs="" -+[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" -+[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(/dev/null \ -+ && match_lhs=$(dircolors --print-database) -+[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true -+ -+if ${use_color} ; then -+ # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 -+ if type -P dircolors >/dev/null ; then -+ if [[ -f ~/.dir_colors ]] ; then -+ eval $(dircolors -b ~/.dir_colors) -+ elif [[ -f /etc/DIR_COLORS ]] ; then -+ eval $(dircolors -b /etc/DIR_COLORS) -+ fi -+ fi -+ -+ if [[ ${EUID} == 0 ]] ; then -+ PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] ' -+ else -+ PS1='\[\033[01;36m\][\u@\h\[\033[01;37m\] \W\[\033[01;36m\]]\$\[\033[00m\] ' -+ fi -+ -+ alias ls='ls --color=auto' -+ alias grep='grep --colour=auto' -+ alias egrep='egrep --colour=auto' -+ alias fgrep='fgrep --colour=auto' -+else -+ if [[ ${EUID} == 0 ]] ; then -+ # show root@ when we don't have colors -+ PS1='\u@\h \W \$ ' -+ else -+ PS1='\u@\h \w \$ ' -+ fi -+fi -+ -+unset use_color safe_term match_lhs sh ---- a/dot.bashrc -+++ b/dot.bashrc -@@ -5,5 +5,5 @@ - # If not running interactively, don't do anything - [[ $- != *i* ]] && return - --alias ls='ls --color=auto' --PS1='[\u@\h \W]\$ ' -+# alias ls='ls --color=auto' -+# PS1='[\u@\h \W]\$ ' - ---- a/system.bashrc -+++ a/system.bashrc -@@ -1,5 +1,5 @@ - # --# /etc/bash.bashrc -+# /etc/bash/bashrc - # - - # If not running interactively, don't do anything -@@ -19,4 +19,8 @@ - ;; - esac - -+for sh in /etc/bash/bashrc.d/*.bashrc ; do -+ [[ -r ${sh} ]] && source "${sh}" -+done -+ - [ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion - ---- a/system.bash_logout -+++ a/system.bash_logout -@@ -1,3 +1,3 @@ - # --# /etc/bash.bash_logout -+# /etc/bash/bash_logout - # - diff --git a/artools/0.26.1/artools/data/valid-names.conf b/artools/0.26.1/artools/data/valid-names.conf deleted file mode 100644 index 57bdbdd..0000000 --- a/artools/0.26.1/artools/data/valid-names.conf +++ /dev/null @@ -1,42 +0,0 @@ -#!/hint/bash - -valid_names=( - core - extra - community - multilib - testing - community-testing - multilib-testing - staging - community-staging - multilib-staging - rebuild - gnome-unstable - kde-unstable -) - -stable=( - "${valid_names[0]}" - "${valid_names[1]}" - "${valid_names[2]}" - "${valid_names[3]}" -) - -gremlins=( - "${valid_names[4]}" - "${valid_names[5]}" - "${valid_names[6]}" -) - -goblins=( - "${valid_names[7]}" - "${valid_names[8]}" - "${valid_names[9]}" - "${valid_names[10]}" -) - -wobble=( - "${valid_names[11]}" - "${valid_names[12]}" -) diff --git a/artools/0.26.1/artools/debian/.debhelper/generated/artools/installed-by-dh_installdocs b/artools/0.26.1/artools/debian/.debhelper/generated/artools/installed-by-dh_installdocs deleted file mode 100644 index e69de29..0000000 diff --git a/artools/0.26.1/artools/debian/artools.substvars b/artools/0.26.1/artools/debian/artools.substvars deleted file mode 100644 index 978fc8b..0000000 --- a/artools/0.26.1/artools/debian/artools.substvars +++ /dev/null @@ -1,2 +0,0 @@ -misc:Depends= -misc:Pre-Depends= diff --git a/artools/0.26.1/artools/debian/artools/DEBIAN/conffiles b/artools/0.26.1/artools/debian/artools/DEBIAN/conffiles deleted file mode 100644 index ca80441..0000000 --- a/artools/0.26.1/artools/debian/artools/DEBIAN/conffiles +++ /dev/null @@ -1,3 +0,0 @@ -/etc/artools/artools-base.conf -/etc/artools/artools-iso.conf -/etc/artools/artools-pkg.conf diff --git a/artools/0.26.1/artools/debian/artools/DEBIAN/control b/artools/0.26.1/artools/debian/artools/DEBIAN/control deleted file mode 100644 index b626f9a..0000000 --- a/artools/0.26.1/artools/debian/artools/DEBIAN/control +++ /dev/null @@ -1,11 +0,0 @@ -Package: artools -Version: 0.26.1-1 -Architecture: amd64 -Maintainer: Nathan Owens -Installed-Size: 331 -Depends: pacman -Section: misc -Priority: medium -Homepage: https://gitea.artixlinux.org/artix/artools -Description: Artix linux packaging - Tools used for Artix linux packaging diff --git a/artools/0.26.1/artools/debian/artools/DEBIAN/md5sums b/artools/0.26.1/artools/debian/artools/DEBIAN/md5sums deleted file mode 100644 index b3a16b5..0000000 --- a/artools/0.26.1/artools/debian/artools/DEBIAN/md5sums +++ /dev/null @@ -1,36 +0,0 @@ -6baed6761084c9232f57924554480e06 usr/bin/artix-chroot -4639f727eaf4addb996f70b792feb8f4 usr/bin/basestrap -08651c365037779369148ffd6b53b707 usr/bin/batchpkg -ccda6a2d66085205c5990696b5ed9519 usr/bin/buildiso -8f751869346ea5bdf41eddd3ad972470 usr/bin/buildpkg -1cc04eb3aafe79a774985c788dd8a6d0 usr/bin/buildtree -afa49cd2fe1e045cbbc847d1d402ffa1 usr/bin/checkpkg -15959d076088753e40e643ba3ea25dab usr/bin/checkrepo -09d950e0e1522f961d2f4704a8dd1289 usr/bin/chroot-run -bf6b41ff330c34de6d66d9b4a1d0936c usr/bin/commitpkg -d3d205c3e6a28d5c587bfbb8191c4931 usr/bin/comparepkg -8cbef5d334401cb0d1d9dbd6aa1fa264 usr/bin/deploypkg -4263db4a86aed66dc99d6a97b16928e0 usr/bin/find-libdeps -0f5ebacf83572eba79bb51dc9575b9ae usr/bin/finddeps -ee1e248f1ec0d075ec7ff8aac54a5252 usr/bin/fstabgen -6690196c4576472db5c2288ba942f4ff usr/bin/gitearepo -3fc6f980fd83c03aa43e976a56abcac6 usr/bin/lddd -430719c5ec9dc5fba1d09347a619a5b7 usr/bin/links-add -d310cb0bd5c6ef8359d8e8e8807702ad usr/bin/mkchroot -522aaedb9c251e1db4482c88c6e969ee usr/bin/mkchrootpkg -276f3b2d8b6bc8685dd50b8a3bf14f83 usr/bin/pkg2yaml -cd81102f4036d498d4218d041632ec1d usr/bin/signpkg -f74cc2b6ba2675d629fa59f65adddfda usr/share/artools/makepkg.conf -732a1176492ebdd0b7f33a510759e60d usr/share/artools/pacman-default.conf -d7a315e5f3f38a11ec6088c0ef18e747 usr/share/artools/pacman-docker.conf -5c9fc484f08cf7c2013e81af03dafb97 usr/share/artools/pacman-gnome-wobble.conf -19ec8b44b710fc5502f1c824ef35d931 usr/share/artools/pacman-goblins.conf -3a3b7c0dddd2383e01dd864f4f7f44a7 usr/share/artools/pacman-gremlins.conf -feca0568fb28b43f942022e9f312633b usr/share/artools/pacman-kde-wobble.conf -f237026ce33a0849e3af85a8929ae051 usr/share/artools/pacman-lib32-goblins.conf -2bd50ec827d22f7251b67688ce09167c usr/share/artools/pacman-lib32-gremlins.conf -6f17f9619daf54e00039a296783e129a usr/share/artools/pacman-lib32.conf -38cb4015ec695dceee0669385a2b891b usr/share/artools/patches/artix-bash.patch -8f489af6be6ce56664e1f2f170702d04 usr/share/artools/valid-names.conf -54418370f8d9dd1ca1b9eff34afecb1e usr/share/doc/artools/changelog.Debian.gz -12441c75fc57cffbd52c9a9c2f92c91d usr/share/doc/artools/copyright diff --git a/artools/0.26.1/artools/debian/artools/etc/artools/artools-base.conf b/artools/0.26.1/artools/debian/artools/etc/artools/artools-base.conf deleted file mode 100644 index 4954b0b..0000000 --- a/artools/0.26.1/artools/debian/artools/etc/artools/artools-base.conf +++ /dev/null @@ -1,9 +0,0 @@ -############################################# -################ artools-base ############### -############################################# - -# build dir where buildpkg or buildiso chroots are created -# CHROOTS_DIR=/var/lib/artools - -# the workspace directory -# WORKSPACE_DIR="${USER_HOME}/artools-workspace" diff --git a/artools/0.26.1/artools/debian/artools/etc/artools/artools-iso.conf b/artools/0.26.1/artools/debian/artools/etc/artools/artools-iso.conf deleted file mode 100644 index 446e692..0000000 --- a/artools/0.26.1/artools/debian/artools/etc/artools/artools-iso.conf +++ /dev/null @@ -1,21 +0,0 @@ -############################################# -################ artools-iso ################ -############################################# - -# the iso storage directory -# ISO_POOL="${WORKSPACE_DIR}/iso" - -# the dist release; default: auto -# ISO_VERSION=$(date +%Y%m%d) - -# possible values: openrc, runit, s6, suite66, dinit -# INITSYS="openrc" - -# gpg key; leave empty or commented to skip img signing -# GPG_KEY="" - -# possible values: zstd (default), xz -# COMPRESSION="zstd" - -# zstd only: range 1..22 -# COMPRESSION_LEVEL=15 diff --git a/artools/0.26.1/artools/debian/artools/etc/artools/artools-pkg.conf b/artools/0.26.1/artools/debian/artools/etc/artools/artools-pkg.conf deleted file mode 100644 index c4829f9..0000000 --- a/artools/0.26.1/artools/debian/artools/etc/artools/artools-pkg.conf +++ /dev/null @@ -1,59 +0,0 @@ -############################################# -################ artools-pkg ################ -############################################# - -# gitea user access token for buildtree -# GIT_TOKEN='' - -# TREE_DIR_ARTIX=${WORKSPACE_DIR}/artixlinux - -# customize buildtree; uncomment to include -# TREE_NAMES_ARTIX=( -# packages-kernel -# packages-llvm -# packages-openrc -# packages-runit -# packages-s6 -# packages-suite66 -# packages-dinit -# packages-perl -# packages-java -# packages-ruby -# packages-gtk -# packages-qt5 -# packages-qt6 -# packages-xorg -# packages-plasma -# packages-kde -# packages-gnome -# packages-cinnamon -# packages-lxqt -# packages-lxde -# packages-mate -# packages-xfce -# packages-wm -# packages-devel -# packages-qt6 -# packages-office -# packages-misc -# python-world -# python-galaxy -# python-galaxy-groups -# python-misc -# packages-python -# packages-lib32 -# ) - -# TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux - -# default repos root for deploypkg -# REPOS_ROOT=${WORKSPACE_DIR}/repos - -# default mirror for checkrepo -# REPOS_MIRROR="http://mirror1.artixlinux.org/repos" - -# enable if trouble with default github arch mirror -# ARCH_TREE=(packages community) - -# enable if trouble with default github arch mirror -# HOST_TREE_ARCH='https://git.archlinux.org/svntogit' diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/artix-chroot b/artools/0.26.1/artools/debian/artools/usr/bin/artix-chroot deleted file mode 100755 index 54dd3a2..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/artix-chroot +++ /dev/null @@ -1,381 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -shopt -s extglob - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -#{{{ mount - -ignore_error() { - "$@" 2>/dev/null - return 0 -} - -trap_setup(){ - [[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap' - trap "$1" EXIT -} - -chroot_mount() { -# msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") -} - -chroot_add_resolv_conf() { - local chrootdir=$1 resolv_conf=$1/etc/resolv.conf - - [[ -e /etc/resolv.conf ]] || return 0 - - # Handle resolv.conf as a symlink to somewhere else. - if [[ -L $chrootdir/etc/resolv.conf ]]; then - # readlink(1) should always give us *something* since we know at this point - # it's a symlink. For simplicity, ignore the case of nested symlinks. - resolv_conf=$(readlink "$chrootdir/etc/resolv.conf") - if [[ $resolv_conf = /* ]]; then - resolv_conf=$chrootdir$resolv_conf - else - resolv_conf=$chrootdir/etc/$resolv_conf - fi - - # ensure file exists to bind mount over - if [[ ! -f $resolv_conf ]]; then - install -Dm644 /dev/null "$resolv_conf" || return 1 - fi - elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then - # The chroot might not have a resolv.conf. - return 0 - fi - - chroot_mount /etc/resolv.conf "$resolv_conf" --bind -} - -chroot_mount_conditional() { - local cond=$1; shift - if eval "$cond"; then - chroot_mount "$@" - fi -} - -chroot_setup(){ - local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755' - $os && args='--bind' - chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind && - chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev && - chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro && - ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \ - efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && - chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid && - chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && - chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && - chroot_mount /run "$mnt/run" ${args} && - chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid -} - -chroot_api_mount() { - CHROOT_ACTIVE_MOUNTS=() - trap_setup chroot_api_umount - chroot_setup "$1" false -} - -chroot_api_umount() { - if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then -# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_MOUNTS[@]}" - fi - unset CHROOT_ACTIVE_MOUNTS -} - -#}}} - - -#{{{ functions - -chroot_part_mount() { - msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}") -} - -chroot_part_umount() { - chroot_api_umount - msg2 "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}" - unset CHROOT_ACTIVE_PART_MOUNTS -} - -detect(){ - local detected - detected="$(os-prober | tr ' ' '_' | paste -s -d ' ')" - echo "${detected}" -} - -# $1: os-prober array -get_os_name(){ - local str=$1 - str="${str#*:}" - str="${str#*:}" - str="${str%:*}" - echo "$str" -} - -mount_os(){ - CHROOT_ACTIVE_PART_MOUNTS=() - CHROOT_ACTIVE_MOUNTS=() - - trap_setup chroot_part_umount - - chroot_part_mount "$2" "$1" - - local mounts - mounts=$(perl -ane 'printf("%s:%s\n", @F[0,1]) if $F[0] =~ m#^UUID=#;' "$1"/etc/fstab) - - for entry in ${mounts}; do - entry=${entry//UUID=} - local dev=${entry%:*} mp=${entry#*:} - case "${entry#*:}" in - '/'|'swap'|'none') continue ;; - *) chroot_part_mount "/dev/disk/by-uuid/${dev}" "$1${mp}" ;; - esac - done - - chroot_setup "$1" true - chroot_add_resolv_conf "$1" -} - -select_os(){ - local os_list=( "$(detect)" ) count=${#os_list[@]} - if [[ ${count} -gt 1 ]];then - msg "Detected systems:" - local i=0 - for os in "${os_list[@]}"; do - local last=${os##*:} - case $last in - 'efi') count=$((count-1)) ;; - *) msg2 "$i) $(get_os_name "$os")"; i=$((i+1)) ;; - esac - done - i=0 - msg "Select system to mount [0-%s] : " "$((count-1))" - read -r select - else - select=0 - fi - local os_str=${os_list[$select]} type - type=$os_str - root=${os_str%%:*} - type=${type##*:} - if [[ "${type##*:}" == 'linux' ]];then - msg "Mounting (%s) [%s]" "$(get_os_name "$os_str")" "$root" - mount_os "$1" "$root" - else - die "You can't mount %s!" "$select" - fi -} - -#}}} - -automount=false - -usage() { - echo "usage: ${0##*/} -a [or] ${0##*/} chroot-dir [command]" - echo ' -a Automount detected linux system' - echo ' -h Print this help message' - echo '' - echo " If 'command' is unspecified, ${0##*/} will launch /bin/sh." - echo '' - echo " If 'automount' is true, ${0##*/} will launch /bin/bash" - echo " and ${chrootdir}." - echo '' - echo '' - exit "$1" -} - -opts=':ha' - -while getopts ${opts} arg; do - case "${arg}" in - a) automount=true ;; - h|?) usage 0 ;; - *) echo "invalid argument ${arg}"; usage 1 ;; - esac -done -shift $(( OPTIND - 1 )) - -check_root - -if ${automount};then - chrootdir=/mnt - run_args=(/bin/bash) - - select_os "${chrootdir}" -else - chrootdir=$1 - shift - run_args=("$@") - - [[ -d ${chrootdir} ]] || die "Can't create chroot on non-directory %s" "${chrootdir}" - - chroot_api_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}" - chroot_add_resolv_conf "${chrootdir}" -fi - -SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "${run_args[@]}" diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/artools-chroot b/artools/0.26.1/artools/debian/artools/usr/bin/artools-chroot deleted file mode 120000 index faa7faa..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/artools-chroot +++ /dev/null @@ -1 +0,0 @@ -artix-chroot \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/basestrap b/artools/0.26.1/artools/debian/artools/usr/bin/basestrap deleted file mode 100755 index 611bd60..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/basestrap +++ /dev/null @@ -1,356 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# -# Assumptions: -# 1) User has partitioned, formatted, and mounted partitions on /mnt -# 2) Network is functional -# 3) Arguments passed to the script are valid pacman targets -# 4) A valid mirror appears in /etc/pacman.d/mirrorlist -# - -shopt -s extglob - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ mount - -ignore_error() { - "$@" 2>/dev/null - return 0 -} - -trap_setup(){ - [[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap' - trap "$1" EXIT -} - -chroot_mount() { -# msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") -} - -chroot_add_resolv_conf() { - local chrootdir=$1 resolv_conf=$1/etc/resolv.conf - - [[ -e /etc/resolv.conf ]] || return 0 - - # Handle resolv.conf as a symlink to somewhere else. - if [[ -L $chrootdir/etc/resolv.conf ]]; then - # readlink(1) should always give us *something* since we know at this point - # it's a symlink. For simplicity, ignore the case of nested symlinks. - resolv_conf=$(readlink "$chrootdir/etc/resolv.conf") - if [[ $resolv_conf = /* ]]; then - resolv_conf=$chrootdir$resolv_conf - else - resolv_conf=$chrootdir/etc/$resolv_conf - fi - - # ensure file exists to bind mount over - if [[ ! -f $resolv_conf ]]; then - install -Dm644 /dev/null "$resolv_conf" || return 1 - fi - elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then - # The chroot might not have a resolv.conf. - return 0 - fi - - chroot_mount /etc/resolv.conf "$resolv_conf" --bind -} - -chroot_mount_conditional() { - local cond=$1; shift - if eval "$cond"; then - chroot_mount "$@" - fi -} - -chroot_setup(){ - local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755' - $os && args='--bind' - chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind && - chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev && - chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro && - ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \ - efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && - chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid && - chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && - chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && - chroot_mount /run "$mnt/run" ${args} && - chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid -} - -chroot_api_mount() { - CHROOT_ACTIVE_MOUNTS=() - trap_setup chroot_api_umount - chroot_setup "$1" false -} - -chroot_api_umount() { - if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then -# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_MOUNTS[@]}" - fi - unset CHROOT_ACTIVE_MOUNTS -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - - -#{{{ functions - -copy_mirrorlist(){ - cp -a /etc/pacman.d/mirrorlist "$1/etc/pacman.d/" -} - -copy_keyring(){ - if [[ -d /etc/pacman.d/gnupg ]] && [[ ! -d $1/etc/pacman.d/gnupg ]]; then - cp -a /etc/pacman.d/gnupg "$1/etc/pacman.d/" - fi -} - -create_min_fs(){ - msg "Creating install root at %s" "$1" - mkdir -m 0755 -p "$1"/var/{cache/pacman/pkg,lib/pacman,log} "$1"/{dev,run,etc/pacman.d} - mkdir -m 1777 -p "$1"/tmp - mkdir -m 0555 -p "$1"/{sys,proc} -} - -#}}} - -newroot=/mnt - -hostcache=0 -copykeyring=1 -copymirrorlist=1 -pacmode=-Sy - -usage() { - echo "usage: ${0##*/} [options] root [packages...]" - echo " -C Use an alternate config file for pacman" - echo " -c Use the package cache on the host, rather than the target" - echo " -G Avoid copying the host's pacman keyring to the target" - echo " -i Avoid auto-confirmation of package selections" - echo " -M Avoid copying the host's mirrorlist to the target" - echo ' -U Use pacman -U to install packages' - echo " -h Print this help message" - echo '' - echo ' basestrap installs packages to the specified new root directory.' - echo ' If no packages are given, basestrap defaults to the "base" group.' - echo '' - echo '' - exit "$1" -} - -opts=':C:cGiMU' - -while getopts ${opts} arg; do - case "${arg}" in - C) pacman_conf=$OPTARG ;; - c) hostcache=1 ;; - i) interactive=1 ;; - G) copykeyring=0 ;; - M) copymirrorlist=0 ;; - U) pacmode=-U ;; - :) echo "invalid argument ${arg}:$OPTARG"; usage 1;; - ?) usage 0 ;; - esac -done -shift $(( OPTIND - 1 )) - -check_root - -(( $# )) || die "No root directory specified" -newroot=$1; shift -pacman_args=("${@:-base}") - -if (( ! hostcache ));then - pacman_args+=(--cachedir="$newroot/var/cache/pacman/pkg") -fi - -if (( ! interactive )); then - pacman_args+=(--noconfirm) -fi - -[[ -n $pacman_conf ]] && pacman_args+=(--config="$pacman_conf") - -[[ -d $newroot ]] || die "%s is not a directory" "$newroot" - -# create obligatory directories -create_min_fs "$newroot" - -# mount API filesystems -chroot_api_mount "$newroot" || die "failed to setup API filesystems in new root" - -if (( copykeyring ));then - copy_keyring "$newroot" -fi - -msg2 'Installing packages to %s' "$newroot" -if ! unshare --fork --pid pacman -r "$newroot" $pacmode "${pacman_args[@]}"; then - die 'Failed to install packages to new root' -fi - - -if (( copymirrorlist ));then - copy_mirrorlist "$newroot" -fi diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/batchpkg b/artools/0.26.1/artools/debian/artools/usr/bin/batchpkg deleted file mode 100755 index fa0dafa..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/batchpkg +++ /dev/null @@ -1,328 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-20 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -#{{{ functions - -batch_move() { - local name="${1:-pkg_moves}" - local pkglist="${TREE_DIR_ARTIX}"/"$name".list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry##*:} - local src=${entry%:*} - src=${src#*:} - local dest=${entry%%:*} - if ${runlist}; then - "${dest}"pkg -s "${src}" -u -p "${pkg}" - else - msg "%s" "${dest}pkg -s ${src} -u -p ${pkg}" - fi - done < "$pkglist" -} - -batch_create() { - local name="${1:-pkg_create}" - local pkglist="${TREE_DIR_ARTIX}"/"$name".list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry##*:} - local group=${entry%:*} - group=${group#*:} - local team=${entry%%:*} - if ${runlist}; then - buildtree -n -p "${pkg}" -t "${team}" -g "${group}" - buildtree -i -p "${pkg}" - commitpkg -p "${pkg}" - else - msg "%s" "buildtree -n -p ${pkg} -t ${team} -g ${group}" - msg2 "%s" "buildtree -i -p ${pkg}" - msg2 "%s" "commitpkg -p ${pkg}" - fi - done < "$pkglist" -} - -batch_update() { - local name="${1:-pkg_upgrades}" - local pkglist=${TREE_DIR_ARTIX}/$name.list - [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist" - while read -r entry; do - local pkg=${entry#*:} - local dest=${entry%:*} - if ${runlist}; then - buildtree -i -p "${pkg}" - "${dest}"pkg -u -p "${pkg}" - else - msg "buildtree -i -p ${pkg}" - msg2 "${dest}pkg -u -p ${pkg}" - fi - done < "$pkglist" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [optional listname]" - echo ' -r Run generated commands' - echo ' -c Create subrepos from list' - echo ' -u Update subrepos from list' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -runlist=false -create=false -update=false - -opts='rcuh' - -while getopts "${opts}" arg; do - case "${arg}" in - r) runlist=true ;; - c) create=true ;; - u) update=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -listname="$1"; shift - -if ${create}; then - batch_create "${listname}" -elif ${update}; then - batch_update "${listname}" -else - batch_move "${listname}" -fi diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildiso b/artools/0.26.1/artools/debian/artools/usr/bin/buildiso deleted file mode 100755 index d6f34b7..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildiso +++ /dev/null @@ -1,1327 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ iso conf - -load_iso_config(){ - - local conf="$1/artools-iso.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-iso.conf - [[ -r "$conf" ]] && . "$conf" - - ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"} - - ISO_VERSION=${ISO_VERSION:-"$(date +%Y%m%d)"} - - INITSYS=${INITSYS:-'openrc'} - - GPG_KEY=${GPG_KEY:-''} - - COMPRESSION="${COMPRESSION:-zstd}" - - COMPRESSION_LEVEL="${COMPRESSION_LEVEL:-15}" - - if [[ -z "${COMPRESSION_ARGS[*]}" ]]; then - COMPRESSION_ARGS=(-Xcompression-level "${COMPRESSION_LEVEL}") - fi - - if [[ "${COMPRESSION}" == 'xz' ]]; then - COMPRESSION_ARGS=(-Xbcj x86) - fi - - return 0 -} - -#}}} - -load_iso_config "${USER_CONF_DIR}" || load_iso_config "${SYSCONFDIR}" - -prepare_dir "${ISO_POOL}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common - -get_makepkg_conf() { - makepkg_conf="${DATADIR}/makepkg.conf" - [[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf" -} - -get_pacman_conf() { - local repo="$1" - pacman_conf="${DATADIR}/pacman-${repo}.conf" - [[ -f "${USER_CONF_DIR}/pacman-${repo}.conf" ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf" -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -#{{{ mount - -track_img() { - msg2 "mount: [%s]" "$2" - mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}") -} - -mount_img() { - IMG_ACTIVE_MOUNTS=() - mkdir -p "$2" - track_img "$1" "$2" -} - -umount_img() { - if [[ -n "${IMG_ACTIVE_MOUNTS[*]}" ]];then - msg2 "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}" - umount "${IMG_ACTIVE_MOUNTS[@]}" - unset IMG_ACTIVE_MOUNTS - rm -r "$1" - fi -} - -track_fs() { - msg2 "overlayfs mount: [%s]" "$5" - mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}") -} - -mount_overlayfs(){ - FS_ACTIVE_MOUNTS=() - local lower upper="$1" work="$2" - mkdir -p "${mnt_dir}/work" - mkdir -p "$upper" - case $upper in - */livefs) lower="$work/rootfs" ;; - */bootfs) - lower="$work/rootfs" - [[ -d "$work/livefs" ]] && lower="$work/livefs:$work/rootfs" - ;; - esac - # shellcheck disable=2140 - track_fs -t overlay overlay -olowerdir="$lower",upperdir="$upper",workdir="${mnt_dir}/work" "$upper" -} - -umount_overlayfs(){ - if [[ -n "${FS_ACTIVE_MOUNTS[*]}" ]];then - msg2 "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}" - umount "${FS_ACTIVE_MOUNTS[@]}" - unset FS_ACTIVE_MOUNTS - rm -rf "${mnt_dir}/work" - fi -} - -#}}} - -#!/hint/bash - -#{{{ services - -add_svc_openrc(){ - local mnt="$1" names="$2" rlvl="${3:-default}" - for svc in $names; do - if [[ -f $mnt/etc/init.d/$svc ]];then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null - fi - done -} - -add_svc_runit(){ - local mnt="$1" names="$2" rlvl="${3:-default}" - for svc in $names; do - if [[ -d $mnt/etc/runit/sv/$svc ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null - fi - done -} - -add_svc_s6(){ - local mnt="$1" names="$2" rlvl="${3:-default}" error ret - local db=/etc/s6/rc/compiled - for svc in $names; do - error=false - chroot "$mnt" s6-rc-db -c "$db" type "$svc" &> /dev/null || error=true - ret="$?" - if [ $ret -eq 0 ] && [[ "$error" == false ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" s6-rc-bundle-update -c "$db" add "$rlvl" "$svc" - fi - done - - local rlvl=/etc/s6/current - # rebuild s6-linux-init binaries - chroot "$mnt" rm -r "$rlvl" - chroot "$mnt" s6-linux-init-maker -1 -N -f /etc/s6/skel -G "/usr/bin/agetty -L -8 tty7 115200" -c "$rlvl" "$rlvl" - chroot "$mnt" mv "$rlvl"/bin/init "$rlvl"/bin/s6-init - chroot "$mnt" cp -a "$rlvl"/bin /usr -} - -add_svc_suite66(){ - local mnt="$1" names="$2" - for svc in $names; do - if [[ -f "$mnt"/etc/66/service/"$svc" ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" 66-enable -t default "$svc" &>/dev/null - fi - done -} - -add_svc_dinit(){ - local mnt="$1" names="$2" - for svc in $names; do - if [[ -d $mnt/etc/dinit.d/boot.d ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" ln -s ../"$svc" /etc/dinit.d/boot.d/"$svc" &>/dev/null - fi - done -} - -#}}} - -#!/hint/bash - -#{{{ yaml - -write_yaml_header(){ - printf '%s' '---' -} - -write_empty_line(){ - printf '\n%s\n' ' ' -} - -write_yaml_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s%s: %s\n" '' "$key" "$val" -} - -write_yaml_seq(){ - local ident="$1" val="$2" - printf "\n%${ident}s- %s\n" '' "$val" -} - -write_yaml_seq_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s- %s: %s\n" '' "$key" "$val" -} - -#}}} - -#!/hint/bash - -#{{{ calamares - -write_services_conf(){ - local key1="$1" val1="$2" key2="$3" val2="$4" - local yaml - yaml=$(write_yaml_header) - yaml+=$(write_yaml_map 0 "$key1" "$val1") - yaml+=$(write_yaml_map 0 "$key2" "$val2") - yaml+=$(write_yaml_map 0 'services') - for svc in "${SERVICES[@]}"; do - yaml+=$(write_yaml_seq 2 "$svc") - done - yaml+=$(write_empty_line) - printf '%s' "${yaml}" -} - -write_services_openrc_conf(){ - local conf="$1"/services-openrc.conf - write_services_conf 'initdDir' '/etc/init.d' 'runlevelsDir' '/etc/runlevels' > "$conf" -} - -write_services_runit_conf(){ - local conf="$1"/services-runit.conf - write_services_conf 'svDir' '/etc/runit/sv' 'runsvDir' '/etc/runit/runsvdir' > "$conf" -} - -write_services_s6_conf(){ - local conf="$1"/services-s6.conf - write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$conf" -} - -write_services_suite66_conf(){ - local conf="$1"/services-suite66.conf - write_services_conf 'svDir' '/etc/66/service' 'runsvDir' '/var/lib/66/system' > "$conf" -} - -write_services_dinit_conf(){ - local conf="$1"/services-dinit.conf - write_services_conf 'initdDir' '/etc/dinit.d' 'runsvDir' '/etc/dinit.d/boot.d' > "$conf" -} - -configure_calamares(){ - local mods="$1/etc/calamares/modules" - if [[ -d "$mods" ]];then - msg2 "Configuring: Calamares" - write_services_"${INITSYS}"_conf "$mods" - sed -e "s|services-openrc|services-${INITSYS}|" \ - -i "$1"/etc/calamares/settings.conf - fi -} - -#}}} - -#!/hint/bash - -#{{{ session - -configure_services(){ - local mnt="$1" - add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]}" -} - - -write_live_session_conf(){ - local conf='' - conf+=$(printf '%s\n' '# live session configuration') - conf+=$(printf "\nAUTOLOGIN=%s\n" "${AUTOLOGIN}") - conf+=$(printf "\nPASSWORD=%s\n" "${PASSWORD}") - printf '%s' "$conf" -} - -configure_chroot(){ - local fs="$1" - msg "Configuring [%s]" "${fs##*/}" - configure_services "$fs" - configure_calamares "$fs" - [[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools" - msg2 "Writing: live.conf" - write_live_session_conf > "$fs/etc/artools/live.conf" - msg "Done configuring [%s]" "${fs##*/}" -} - -#}}} - -#!/hint/bash - -#{{{ firmware - -prepare_boot_extras(){ - local src="$1" dest - dest=${iso_root}/boot - - for fw in intel amd; do - cp "$src"/boot/"$fw"-ucode.img "$dest/$fw"-ucode.img - done - - cp "$src"/boot/memtest86+/memtest.bin "$dest"/memtest - cp "$src"/usr/share/licenses/common/GPL2/license.txt "$dest"/memtest.COPYING -} - -#}}} - -#!/hint/bash - -#{{{ dracut - -prepare_initramfs_dracut(){ - local mnt="$1" - local kver - kver=$(<"$mnt"/usr/src/linux/version) - - printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf - - msg "Starting build: %s" "${kver}" - artix-chroot "$mnt" dracut -fqM /boot/initramfs.img "$kver" - msg "Image generation successful" - - cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img - - prepare_boot_extras "$mnt" -} - -configure_grub_dracut(){ - msg "Configuring grub kernel options ..." - local kopts=() - kopts=( - "root=live:LABEL=${iso_label}" - 'rd.live.squashimg=rootfs.img' - 'rd.live.image' - 'rootflags=auto' - ) - [[ "${profile}" != 'base' ]] && kopts+=("rd.live.join=livefs.img") - - local ro_opts=() - local rw_opts=() -# 'rd.writable.fsimg=1' - - sed -e "s|@kopts@|${kopts[*]}|" \ - -e "s|@ro_opts@|${ro_opts[*]}|" \ - -e "s|@rw_opts@|${rw_opts[*]}|" \ - -i "${iso_root}"/boot/grub/kernels.cfg -} - -#}}} - -#!/hint/bash - -#{{{ initcpio - -make_checksum(){ - local file="$1" - msg2 "Creating md5sum ..." - cd "${iso_root}${live_dir}" - md5sum "$file" > "$file".md5 - cd "${OLDPWD}" -} - -make_sig () { - local file="$1" - msg2 "Creating signature file..." - chown "${owner}:$(id --group "${owner}")" "${iso_root}${live_dir}" - su "${owner}" -c "gpg --detach-sign --output $file.sig --default-key ${GPG_KEY} $file" - chown "root:root" "${iso_root}${live_dir}" -} - -export_gpg_publickey() { - key_export=${WORKSPACE_DIR}/pubkey.gpg - if [[ ! -e "${key_export}" ]]; then - gpg --batch --output "${key_export}" --export "${GPG_KEY}" - fi -} - -prepare_initramfs_mkinitcpio() { - local mnt="$1" packages=() mkinitcpio_conf k - - mkinitcpio_conf=mkinitcpio-default.conf - [[ "${profile}" == 'base' ]] && mkinitcpio_conf=mkinitcpio-pxe.conf - k=$(<"$mnt"/usr/src/linux/version) - - read_from_list "${common_dir}/Packages-boot" - basestrap "${basestrap_args[@]}" "$mnt" "${packages[@]}" - - if [[ -n "${GPG_KEY}" ]]; then - exec {ARTIX_GNUPG_FD}<>"${key_export}" - export ARTIX_GNUPG_FD - fi - - artix-chroot "$mnt" mkinitcpio -k "$k" \ - -c /etc/"$mkinitcpio_conf" \ - -g /boot/initramfs.img - - if [[ -n "${GPG_KEY}" ]]; then - exec {ARTIX_GNUPG_FD}<&- - unset ARTIX_GNUPG_FD - fi - if [[ -f "${key_export}" ]]; then - rm "${key_export}" - fi - cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img - prepare_boot_extras "$mnt" -} - -configure_grub_mkinitcpio() { - msg "Configuring grub kernel options ..." - local ro_opts=() - local rw_opts=() - local kopts=("label=${iso_label}") - - [[ "${profile}" != 'base' ]] && kopts+=('overlay=livefs') - - sed -e "s|@kopts@|${kopts[*]}|" \ - -e "s|@ro_opts@|${ro_opts[*]}|" \ - -e "s|@rw_opts@|${rw_opts[*]}|" \ - -i "${iso_root}"/boot/grub/kernels.cfg -} - -#}}} - -#!/hint/bash - -#{{{ grub - -prepare_grub(){ - local platform=i386-pc img='core.img' prefix=/boot/grub - local lib="$1"/usr/lib/grub - local theme="$1"/usr/share/grub - local livecfg="$2"/usr/share/grub - local grub=${iso_root}/boot/grub efi=${iso_root}/efi/boot - - prepare_dir "${grub}/${platform}" - - cp "${livecfg}"/cfg/*.cfg "${grub}" - - cp "${lib}/${platform}"/* "${grub}/${platform}" - - msg2 "Building %s ..." "${img}" - - grub-mkimage -d "${grub}/${platform}" -o "${grub}/${platform}/${img}" -O "${platform}" -p "${prefix}" biosdisk iso9660 - - cat "${grub}/${platform}"/cdboot.img "${grub}/${platform}/${img}" > "${grub}/${platform}"/eltorito.img - - platform=x86_64-efi - img=bootx64.efi - - prepare_dir "${efi}" - prepare_dir "${grub}/${platform}" - - cp "${lib}/${platform}"/* "${grub}/${platform}" - - msg2 "Building %s ..." "${img}" - - grub-mkimage -d "${grub}/${platform}" -o "${efi}/${img}" -O "${platform}" -p "${prefix}" iso9660 - - prepare_dir "${grub}"/themes - - cp -r "${theme}"/themes/artix "${grub}"/themes - cp -r "${livecfg}"/{locales,tz} "${grub}" - - if [[ -f /usr/share/grub/unicode.pf2 ]];then - msg2 "Copying %s ..." "unicode.pf2" - cp /usr/share/grub/unicode.pf2 "${grub}"/unicode.pf2 - else - msg2 "Creating %s ..." "unicode.pf2" - grub-mkfont -o "${grub}"/unicode.pf2 /usr/share/fonts/misc/unifont.bdf - fi - - local size=4M mnt="${mnt_dir}/efiboot" efi_img="${iso_root}/boot/efi.img" - msg2 "Creating fat image of %s ..." "${size}" - truncate -s "${size}" "${efi_img}" - mkfs.fat -n ARTIX_EFI "${efi_img}" &>/dev/null - prepare_dir "${mnt}" - mount_img "${efi_img}" "${mnt}" - prepare_dir "${mnt}"/efi/boot - msg2 "Building %s ..." "${img}" - grub-mkimage -d "${grub}/${platform}" -o "${mnt}"/efi/boot/"${img}" -O "${platform}" -p "${prefix}" iso9660 - umount_img "${mnt}" -} - -#}}} - -#!/hint/bash - -#{{{ squash - -make_ext_img(){ - local src="$1" - local size=32G - local mnt="${mnt_dir}/${src##*/}" - mkdir -p "${work_dir}"/embed"${live_dir}" - local extimg="${work_dir}/embed${live_dir}/${src##*/}".img - - msg2 "Creating ext4 image of %s ..." "${size}" - truncate -s ${size} "${extimg}" - local ext4_args=() - ext4_args+=("-O ^has_journal,^resize_inode" -E lazy_itable_init=0 -m 0) - mkfs.ext4 "${ext4_args[@]}" -F "${extimg}" &>/dev/null - tune2fs -c 0 -i 0 "${extimg}" &> /dev/null - mount_img "${extimg}" "${mnt}" - msg2 "Copying %s ..." "${src}/" - cp -aT "${src}/" "${mnt}/" - umount_img "${mnt}" -} - -has_changed(){ - local src="$1" dest="$2" - if [[ -f "${dest}" ]]; then - local has_changes - has_changes=$(find "${src}" -newer "${dest}") - if [[ -n "${has_changes}" ]]; then - msg2 "Possible changes for %s ..." "${src}" - msg2 "%s" "${has_changes}" - msg2 "SquashFS image %s is not up to date, rebuilding..." "${dest}" - rm "${dest}" - else - msg2 "SquashFS image %s is up to date, skipping." "${dest}" - return 1 - fi - fi -} - -# $1: image path -make_sfs() { - local sfs_in="$1" - if [[ ! -e "${sfs_in}" ]]; then - error "The path %s does not exist" "${sfs_in}" - retrun 1 - fi - - mkdir -p "${iso_root}${live_dir}" - - local img_name=${sfs_in##*/}.img - - local sfs_out="${iso_root}${live_dir}/${img_name}" - - if has_changed "${sfs_in}" "${sfs_out}"; then - - msg "Generating SquashFS image for %s" "${sfs_in}" - - local mksfs_args=() - - if ${persist};then - make_ext_img "${sfs_in}" - mksfs_args+=("${work_dir}/embed") - else - mksfs_args+=("${sfs_in}") - fi - - mksfs_args+=("${sfs_out}") - - mksfs_args+=(-comp "${COMPRESSION}" "${COMPRESSION_ARGS[@]}" -noappend) - - mksquashfs "${mksfs_args[@]}" - - if ! ${use_dracut}; then - make_checksum "${img_name}" - if [[ -n ${GPG_KEY} ]];then - make_sig "${iso_root}${live_dir}/${img_name}" - fi - fi - if ${persist}; then - rm -r "${work_dir}/embed" - fi - fi -} - -#}}} - -#!/hint/bash - -#{{{ iso - -get_disturl(){ - # shellcheck disable=1091 - . /usr/lib/os-release - echo "${HOME_URL}" -} - -get_osname(){ - # shellcheck disable=1091 - . /usr/lib/os-release - echo "${NAME}" -} - -assemble_iso(){ - msg "Creating ISO image..." - local mod_date - mod_date=$(date -u +%Y-%m-%d-%H-%M-%S-00 | sed -e s/-//g) - local appid - appid="$(get_osname) Live/Rescue CD" - local publisher - publisher="$(get_osname) <$(get_disturl)>" - - xorriso -as mkisofs \ - --modification-date="${mod_date}" \ - --protective-msdos-label \ - -volid "${iso_label}" \ - -appid "${appid}" \ - -publisher "${publisher}" \ - -preparer "Prepared by artools/${0##*/}" \ - -r -graft-points -no-pad \ - --sort-weight 0 / \ - --sort-weight 1 /boot \ - --grub2-mbr "${iso_root}"/boot/grub/i386-pc/boot_hybrid.img \ - -partition_offset 16 \ - -b boot/grub/i386-pc/eltorito.img \ - -c boot.catalog \ - -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \ - -eltorito-alt-boot \ - -append_partition 2 0xef "${iso_root}"/boot/efi.img \ - -e --interval:appended_partition_2:all:: -iso_mbr_part_type 0x00 \ - -no-emul-boot \ - -iso-level 3 \ - -o "${iso_dir}/${iso_file}" \ - "${iso_root}"/ -} - -#}}} - -#!/hint/bash - -#{{{ profile - -show_profile(){ - msg2 "iso_file: %s" "${iso_file}" - msg2 "AUTOLOGIN: %s" "${AUTOLOGIN}" - msg2 "PASSWORD: %s" "${PASSWORD}" - msg2 "SERVICES: %s" "${SERVICES[*]}" -} - -load_profile(){ - local profile_dir="${DATADIR}/iso-profiles" - [[ -d "${WORKSPACE_DIR}"/iso-profiles ]] && profile_dir="${WORKSPACE_DIR}"/iso-profiles - - root_list="$profile_dir/${profile}/Packages-Root" - root_overlay="$profile_dir/${profile}/root-overlay" - - [[ -f "$profile_dir/${profile}/Packages-Live" ]] && live_list="$profile_dir/${profile}/Packages-Live" - [[ -d "$profile_dir/${profile}/live-overlay" ]] && live_overlay="$profile_dir/${profile}/live-overlay" - - common_dir="${DATADIR}/iso-profiles/common" - [[ -d "$profile_dir"/common ]] && common_dir="${profile_dir}"/common - - [[ -f $profile_dir/${profile}/profile.conf ]] || return 1 - - # shellcheck disable=1090 - [[ -r "$profile_dir/${profile}"/profile.conf ]] && . "$profile_dir/${profile}"/profile.conf - - AUTOLOGIN=${AUTOLOGIN:-true} - - PASSWORD=${PASSWORD:-'artix'} - - if [[ -z "${SERVICES[*]}" ]];then - SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand') - fi - - return 0 -} - -read_from_list() { - local list="$1" - local _space="s| ||g" - local _clean=':a;N;$!ba;s/\n/ /g' - local _com_rm="s|#.*||g" - - local _init="s|@initsys@|${INITSYS}|g" - - msg2 "Loading Packages: [%s] ..." "${list##*/}" - packages+=($(sed "$_com_rm" "$list" \ - | sed "$_space" \ - | sed "$_init" \ - | sed "$_clean")) -} - -read_from_services() { - for svc in "${SERVICES[@]}"; do - case "$svc" in - sddm|gdm|lightdm|mdm|greetd|lxdm|xdm) packages+=("$svc-${INITSYS}") ;; - NetworkManager) packages+=("networkmanager-${INITSYS}") ;; - connmand) packages+=("connman-${INITSYS}") ;; - cupsd) packages+=("cups-${INITSYS}") ;; - bluetoothd) packages+=("bluez-${INITSYS}") ;; - syslog-ng|metalog) packages+=("$svc-${INITSYS}") ;; - esac - done -} - -load_pkgs(){ - local pkglist="$1" - packages=() - - if [[ "${pkglist##*/}" == "Packages-Root" ]]; then - read_from_list "${common_dir}/Packages-base" - read_from_list "${common_dir}/Packages-apps" - read_from_list "${common_dir}/Packages-${INITSYS}" - [[ -n "${live_list}" ]] && read_from_list "${common_dir}/Packages-xorg" - read_from_list "$pkglist" - read_from_services - else - read_from_list "$pkglist" - fi -} - -#}}} - -#!/hint/bash - -#{{{ trap - -error_function() { - local func="$1" - # first exit all subshells, then print the error - if (( ! BASH_SUBSHELL )); then - error "A failure occurred in %s()." "$func" - plain "Aborting..." - fi - umount_overlayfs - umount_img - exit 2 -} - -run_safe() { - local restoretrap func="$1" - set -e - set -E - restoretrap=$(trap -p ERR) - trap 'error_function $func' ERR - - "$func" - - eval "$restoretrap" - set +E - set +e -} - -trap_exit() { - local sig=$1; shift - error "$@" - umount_overlayfs - trap -- "$sig" - kill "-$sig" "$$" -} - -prepare_traps(){ - for sig in TERM HUP QUIT; do - # shellcheck disable=2064 - trap "trap_exit $sig \"$(gettext "%s signal caught. Exiting...")\" \"$sig\"" "$sig" - done - trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT -# trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR -} - -#}}} - - -clean_up_chroot(){ - local path mnt="$1" - msg2 "Cleaning [%s]" "${mnt##*/}" - - path=$mnt/boot - if [[ -d "$path" ]]; then - find "$path" -name 'initramfs*.img' -delete &> /dev/null - fi - path=$mnt/var/lib/pacman/sync - if [[ -d $path ]];then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/cache/pacman/pkg - if [[ -d $path ]]; then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/log - if [[ -d $path ]]; then - find "$path" -type f -delete &> /dev/null - fi - path=$mnt/var/tmp - if [[ -d $path ]];then - find "$path" -mindepth 1 -delete &> /dev/null - fi - path=$mnt/tmp - if [[ -d $path ]];then - find "$path" -mindepth 1 -delete &> /dev/null - fi - # shellcheck disable=2035 - find "$mnt" -name *.pacnew -name *.pacsave -name *.pacorig -delete - if [[ -f "$mnt/boot/grub/grub.cfg" ]]; then - rm "$mnt"/boot/grub/grub.cfg - fi - if [[ -f "$mnt/etc/machine-id" ]]; then - rm "$mnt"/etc/machine-id - fi -} - -copy_overlay(){ - local src="$1" dest="$2" - if [[ -e "$src" ]];then - msg2 "Copying [%s] ..." "${src##*/}" - cp -LR "$src"/* "$dest" - fi -} - -make_rootfs() { - if [[ ! -e "${work_dir}"/rootfs.lock ]]; then - msg "Prepare [Base installation] (rootfs)" - local rootfs="${work_dir}/rootfs" - - prepare_dir "${rootfs}" - - basestrap "${basestrap_args[@]}" "${rootfs}" "${packages[@]}" - - copy_overlay "${root_overlay}" "${rootfs}" - - [[ -z ${live_list} ]] && configure_chroot "${rootfs}" - - clean_up_chroot "${rootfs}" - - : > "${work_dir}"/rootfs.lock - - msg "Done [Base installation] (rootfs)" - fi -} - -make_livefs() { - if [[ ! -e ${work_dir}/livefs.lock ]]; then - msg "Prepare [Live installation] (livefs)" - local livefs="${work_dir}/livefs" - - prepare_dir "${livefs}" - - mount_overlayfs "${livefs}" "${work_dir}" - - basestrap "${basestrap_args[@]}" "${livefs}" "${packages[@]}" - - copy_overlay "${live_overlay}" "${livefs}" - - configure_chroot "${livefs}" - - umount_overlayfs - - clean_up_chroot "${livefs}" - - : > "${work_dir}"/livefs.lock - - msg "Done [Live installation] (livefs)" - fi -} - -make_bootfs() { - if [[ ! -e ${work_dir}/bootfs.lock ]]; then - msg "Prepare [/iso/boot]" - - prepare_dir "${iso_root}/boot" - - cp "${work_dir}"/rootfs/boot/vmlinuz* "${iso_root}"/boot/vmlinuz-"${arch}" - - local bootfs="${work_dir}/bootfs" - - mount_overlayfs "${bootfs}" "${work_dir}" - - if "${use_dracut}"; then - prepare_initramfs_dracut "${bootfs}" - else - prepare_initramfs_mkinitcpio "${bootfs}" - fi - - umount_overlayfs - - rm -R "${bootfs}" - : > "${work_dir}"/bootfs.lock - msg "Done [/iso/boot]" - fi -} - -make_grub(){ - if [[ ! -e ${work_dir}/grub.lock ]]; then - msg "Prepare [/iso/boot/grub]" - - local layer=${work_dir}/rootfs - [[ -n ${live_list} ]] && layer=${work_dir}/livefs - - prepare_grub "${work_dir}/rootfs" "$layer" - - if ${use_dracut}; then - configure_grub_dracut - else - configure_grub_mkinitcpio - fi - - : > "${work_dir}"/grub.lock - msg "Done [/iso/boot/grub]" - fi -} - -gen_iso_fn(){ - local vars=("artix") name - vars+=("${profile}") - vars+=("${INITSYS}") - case "${repo}" in - 'gremlins'|'goblins') vars+=("${repo}") ;; - esac - vars+=("${ISO_VERSION}") - vars+=("${arch}") - for n in "${vars[@]}"; do - name=${name:-}${name:+-}${n} - done - echo "$name" -} - -prepare_build(){ - load_profile - - case "${repo}" in - 'gremlins'|'goblins') repo="${repo}" ;; - *) repo=default ;; - esac - - get_pacman_conf "${repo}" - - iso_file=$(gen_iso_fn).iso - - iso_label="ARTIX_$(date +%Y%m)" - - basestrap_args+=(-C "${pacman_conf}") - work_dir=${chroots_iso}/${profile}/artix - - iso_dir="${ISO_POOL}/${profile}" - - iso_root=${chroots_iso}/${profile}/iso - live_dir=/LiveOS - - mnt_dir=${chroots_iso}/${profile}/mnt - - if [[ -n "${GPG_KEY}" ]]; then - ${use_dracut} || export_gpg_publickey - fi -} - -display_settings(){ - msg "OPTIONS:" - msg2 "profile: %s" "${profile}" - msg2 "INITSYS: %s" "${INITSYS}" - [[ -n ${GPG_KEY} ]] && msg2 "GPG_KEY: %s" "${GPG_KEY}" - - msg "ISO SETTINGS:" - msg2 "ISO_VERSION: %s" "${ISO_VERSION}" - msg2 "COMPRESSION: %s" "${COMPRESSION}" - [[ "${COMPRESSION}" == 'zstd' ]] && msg2 "COMPRESSION_LEVEL: %s" "${COMPRESSION_LEVEL}" - - msg "BUILD:" - show_profile -} - -mk_squash(){ - make_sfs "${work_dir}/rootfs" - if [[ -d "${work_dir}/livefs" ]]; then - make_sfs "${work_dir}/livefs" - fi -} - -mk_iso(){ - touch "${iso_root}/.artix" - msg "Making bootable image" - # Sanity checks - [[ ! -d "${iso_root}" ]] && return 1 - if [[ -f "${iso_dir}/${iso_file}" ]]; then - msg2 "Removing existing bootable image..." - rm -rf "${iso_dir}/${iso_file}" - fi - assemble_iso - chown -R "${owner}:$(id --group "${owner}")" "${iso_dir}" -} - -mk_boot(){ - run_safe "make_bootfs" - run_safe "make_grub" -} - -mk_chroots(){ - load_pkgs "${root_list}" - run_safe "make_rootfs" - if [[ -n ${live_list} ]]; then - load_pkgs "${live_list}" - run_safe "make_livefs" - fi -} - -build(){ - msg "Start building [%s]" "${profile}" - if ${clean_first};then - for copy in "${work_dir}"/*; do - [[ -d $copy ]] || continue - msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")" - - lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy" - - subvolume_delete_recursive "${copy}" - rm -rf --one-file-system "${copy}" - done - lock_close 9 - - rm -rf --one-file-system "${work_dir}" - - msg "Deleting isoroot [%s] ..." "${iso_root##*/}" - rm -rf --one-file-system "${iso_root}" - fi - - if ${chroot_only}; then - mk_chroots - warning "Continue squash: %s -p %s -sc ..." "${cmd}" "${profile}" - exit 1 - elif ${boot_only}; then - mk_boot - warning "Continue iso: %s -p %s -zc ..." "${cmd}" "${profile}" - exit 1 - elif ${squash_only}; then - mk_squash - warning "Continue boot: %s -p %s -bc ..." "${cmd}" "${profile}" - exit 1 - elif ${iso_only}; then - [[ ! -d ${work_dir} ]] && die "Create chroot: %s -p %s -x" "${cmd}" "${profile}" - mk_iso - else - mk_chroots - mk_boot - mk_squash - mk_iso - fi - msg "Finished building [%s]" "${profile}" -} - -clean_first=true -pretend=false -chroot_only=false -iso_only=false -persist=false -use_dracut=false -squash_only=false -boot_only=false - -basestrap_args=(-GMc) -cmd=${0##*/} - -repo=${cmd##*-} -owner=${SUDO_USER:-$USER} -profile='base' -chroots_iso="${CHROOTS_DIR}/buildiso" -arch=$(uname -m) - -usage() { - echo "Usage: ${cmd} [options]" - echo " -p Profile [default: ${profile}]" - echo ' -r Chroots directory' - echo " [default: ${chroots_iso}]" - echo ' -t Target directory' - echo " [default: ${ISO_POOL}]" - echo ' -i Init system to use' - echo " [default: ${INITSYS}]" - echo ' -g The gpg key for img signing' - echo " [default: none]" - echo ' -m Set SquashFS image mode to persistence' - echo ' -c Disable clean work dir' - echo ' -x Build chroot only' - echo ' -s Squash chroot only' - echo ' -b Generate iso boot only' - echo ' -z Generate iso only' - echo ' Requires pre built images (-x)' - echo ' -d Use dracut instead of mkinitcpio for iso initramfs' - echo ' -q Query settings and pretend build' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:r:t:i:g:czsbxmdqh' - -while getopts "${opts}" arg; do - case "${arg}" in - p) profile="$OPTARG" ;; - r) chroots_iso="$OPTARG" ;; - t) ISO_POOL="$OPTARG" ;; - i) INITSYS="$OPTARG" ;; - g) GPG_KEY="$OPTARG" ;; - c) clean_first=false ;; - x) chroot_only=true ;; - z) iso_only=true ;; - s) squash_only=true ;; - b) boot_only=true ;; - m) persist=true ;; - d) use_dracut=true ;; - q) pretend=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -prepare_build - -${pretend} && display_settings && exit 1 - -check_root - -prepare_dir "${mnt_dir}" -prepare_dir "${iso_dir}" -prepare_dir "${iso_root}" - -prepare_traps - -build diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildiso-goblins b/artools/0.26.1/artools/debian/artools/usr/bin/buildiso-goblins deleted file mode 120000 index 609e2dd..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildiso-goblins +++ /dev/null @@ -1 +0,0 @@ -buildiso \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildiso-gremlins b/artools/0.26.1/artools/debian/artools/usr/bin/buildiso-gremlins deleted file mode 120000 index 609e2dd..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildiso-gremlins +++ /dev/null @@ -1 +0,0 @@ -buildiso \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg deleted file mode 100755 index 091fb8e..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg +++ /dev/null @@ -1,324 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common - -get_makepkg_conf() { - makepkg_conf="${DATADIR}/makepkg.conf" - [[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf" -} - -get_pacman_conf() { - local repo="$1" - pacman_conf="${DATADIR}/pacman-${repo}.conf" - [[ -f "${USER_CONF_DIR}/pacman-${repo}.conf" ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf" -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - - -create_first=false -rebuild=false - -mkchrootpkg_args=(-c -n) - -cmd=${0##*/} -repo=${cmd#*-} -base_devel=('base-devel') -chroots_pkg="${CHROOTS_DIR}/buildpkg" -arch=$(uname -m) - -usage() { - echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]" - echo " -r Create chroots in this directory" - echo " -d Destination repo chroot" - echo ' -c Recreate the chroot before building' - echo ' -m Major rebuild' - echo ' -N Disable check() function' - echo ' -C Run checkpkg after built' - echo ' -h This help' - echo '' - echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}" - echo '' - exit "$1" -} - -opts='hcCNmr:d:' - -while getopts "${opts}" arg; do - case "${arg}" in - r) chroots_pkg="$OPTARG" ;; - d) repo="$OPTARG" ;; - c) create_first=true ;; - m) rebuild=true ;; - C) mkchrootpkg_args+=(-C) ;; - N) mkchrootpkg_args+=(-N) ;; - h|?) usage 0 ;; - *) echo "invalid argument '%s'" "${arg}"; usage 1 ;; - esac -done - -if ${rebuild};then - repo='default' -else - case ${repo} in - system|world|galaxy) repo='default' ;; - lib32*) base_devel+=('multilib-devel') ;; - galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;; - esac -fi - -get_pacman_conf "${repo}" - -get_makepkg_conf - -if [[ -f "${DATADIR}/setarch-aliases.d/${arch}" ]]; then - read -r set_arch < "${DATADIR}/setarch-aliases.d/${arch}" -else - set_arch="${arch}" -fi - -check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME - -mkchrootpkg_args+=("${@:$OPTIND}") - -if ${create_first} || [[ ! -d "${chroots_pkg}/${repo}-${arch}" ]];then - msg "Creating chroot for [%s] (%s)..." "${repo}" "${arch}" - - for copy in "${chroots_pkg}/${repo}-${arch}"/*; do - [[ -d $copy ]] || continue - msg2 "Deleting chroot copy '%s'..." "$(basename "${copy}")" - - lock 9 "$copy.lock" "Locking chroot copy '%s'" "$copy" - - subvolume_delete_recursive "${copy}" - rm -rf --one-file-system "${copy}" - done - lock_close 9 - - rm -rf --one-file-system "${chroots_pkg}/${repo}-${arch}" - (umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}") - setarch "${set_arch}" mkchroot \ - -C "${pacman_conf}" \ - -M "${makepkg_conf}" \ - "${chroots_pkg}/${repo}-${arch}/root" \ - "${base_devel[@]}" || abort -else - lock 9 "${chroots_pkg}/${repo}-${arch}/root.lock" "Locking clean chroot" - chroot-run \ - -C "${pacman_conf}" \ - -M "${makepkg_conf}" \ - "${chroots_pkg}/${repo}-${arch}/root" \ - pacman -Syuu --noconfirm || abort -fi - -# Always build official packages reproducibly -if [[ ! -v SOURCE_DATE_EPOCH ]]; then - export SOURCE_DATE_EPOCH=$(date +%s) -fi - -msg "Building in chroot for [%s] (%s)..." "${repo}" "${arch}" -exec mkchrootpkg -r "${chroots_pkg}/${repo}-${arch}" "${mkchrootpkg_args[@]}" diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-goblins b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-goblins deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-goblins +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-gremlins b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-gremlins deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-galaxy-gremlins +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gnome-wobble b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gnome-wobble deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gnome-wobble +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-goblins b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-goblins deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-goblins +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gremlins b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gremlins deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-gremlins +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-kde-wobble b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-kde-wobble deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-kde-wobble +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32 b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32 deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32 +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-goblins b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-goblins deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-goblins +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-gremlins b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-gremlins deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-lib32-gremlins +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-system b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-system deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-system +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-world b/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-world deleted file mode 120000 index 9572764..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildpkg-world +++ /dev/null @@ -1 +0,0 @@ -buildpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/buildtree b/artools/0.26.1/artools/debian/artools/usr/bin/buildtree deleted file mode 100755 index 1005a72..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/buildtree +++ /dev/null @@ -1,741 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common functions - -get_compliant_name(){ - local gitname="$1" - case "$gitname" in - *+) gitname=${gitname//+/plus} - esac - echo "$gitname" -} - -get_pkg_org(){ - local pkg="$1" org sub - case ${pkg} in - ruby-*) org="packagesRuby" ;; - perl-*) org="packagesPerl" ;; - python-*|python2-*) org="packagesPython" ;; - *) sub=${pkg:0:1}; org="packages${sub^^}" ;; - esac - echo "$org" -} - -api_put() { - curl -s -X PUT "$@" -} - -api_delete() { - curl -s -X DELETE "$@" -} - -api_post() { - curl -s -X POST "$@" -} - -#}}} - -#!/hint/bash - -#{{{ git - -get_local_head(){ - git log --pretty=%H ...refs/heads/master^ | head -n 1 -} - -get_remote_head(){ - git ls-remote origin -h refs/heads/master | cut -f1 -} - -has_changeset(){ - local head_l="$1" head_r="$2" - if [[ "$head_l" == "$head_r" ]]; then - msg2 "remote changes: no" - return 1 - else - msg2 "remote changes: yes" - return 0 - fi -} - -pull_tree(){ - local tree="$1" local_head="$2" os="${3:-Artix}" - local remote_head - remote_head=$(get_remote_head) - - msg "Checking (%s) (%s)" "${tree}" "$os" - if has_changeset "${local_head}" "${remote_head}";then - git pull origin master - fi -} - -#}}} - -#!/hint/bash - -#{{{ gitea api - -add_team_to_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Adding team (%s) to package repo [%s]" "$team" "$name" - - api_put "$url" -H "accept: application/json" -} - -remove_team_from_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Removing team (%s) from package repo [%s]" "$team" "$name" - - api_delete "$url" -H "accept: application/json" -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - -#!/hint/bash - -#{{{ jenkins - -write_jenkinsfile(){ - local pkg="$1" - local jenkins=$pkg/Jenkinsfile - - echo "@Library('artix-ci') import org.artixlinux.RepoPackage" > "$jenkins" - { - echo '' - echo 'PackagePipeline(new RepoPackage(this))' - echo '' - } >> "$jenkins" - - git add "$jenkins" -} - -write_agentyaml(){ - local pkg="$1" - local agent="$pkg"/.artixlinux/agent.yaml label='master' - [[ -d $pkg/.artixlinux ]] || mkdir "$pkg"/.artixlinux - - echo '---' > "$agent" - { - echo '' - echo "label: $label" - echo '' - } >> "$agent" - - git add "$agent" -} - -commit_jenkins_files(){ - local pkg="$1" - - write_jenkinsfile "$pkg" - write_agentyaml "$pkg" - - git commit -m "initial commit" -} - -#}}} - - -#{{{ new git repo - -subrepo_clone(){ - local pkg="$1" - local org="$2" - local name="$3" - - msg2 "Subrepo clone [%s] from (%s)" "$pkg" "$org/$name" - git subrepo clone "${GIT_SSH}":"$org"/"$name".git "$pkg" -} - -subrepo_new(){ - cd "${TREE_DIR_ARTIX}/${group}" || return - - local org gitname - org=$(get_pkg_org "${package}") - gitname=$(get_compliant_name "${package}") - - gitearepo -cr "$gitname" - - add_team_to_repo "$gitname" "$org" "${team}" - - subrepo_clone "${package}" "$org" "$gitname" - - mkdir -p "${TREE_DIR_ARTIX}/${group}/${package}/trunk" - - commit_jenkins_files "${package}" -} - -#}}} - -#{{{ pull - -clone_tree(){ - local url="$1" tree="$2" os="${3:-Artix}" - - msg "Cloning %s (%s) ..." "$tree" "$os" - - git clone "$url/$tree".git -} - -pull_tree_arch(){ - cd "${TREE_DIR_ARCH}" || return - for tree in "${ARCH_TREE[@]}";do - if [[ -d "${tree}" ]];then - ( cd "${tree}" || return - pull_tree "${tree}" "$(get_local_head)" "Arch" - ) - else - clone_tree "${HOST_TREE_ARCH}" "${tree}" "Arch" - fi - done -} - -config_tree(){ - local tree="$1" - cd "$tree" || return - git config --bool pull.rebase true - git config commit.gpgsign true - if [[ -n "${GPGKEY}" ]];then - git config user.signingkey "${GPGKEY}" - else - warning "No GPGKEY configured in makepkg.conf!" - fi - cd .. -} - -pull_tree_artix(){ - local repos=() - if ${sync_group}; then - repos=("${group}") - else - repos=("${ARTIX_TREE[@]}") - fi - cd "${TREE_DIR_ARTIX}" || return - for tree in "${repos[@]}"; do - if [[ -d "${tree}" ]];then - config_tree "${tree}" - ( cd "${tree}" || return - pull_tree "${tree}" "$(get_local_head)" - ) - else - clone_tree "${host_tree_artix}" "${tree}" - config_tree "${tree}" - fi - done -} - -#}}} - -#{{{ patch - -patch_pkg(){ - local pkgpath="$1" - local pkg=${pkgpath%/*} - pkg=${pkg##*/} - sed -e 's|arch-meson|artix-meson|' -i "$pkgpath"/PKGBUILD - case $pkg in - glibc) - msg2 "Patching %s" "$pkg" - sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \ - -e '/nscd.service/d' \ - -i "$pkgpath"/PKGBUILD - ;; - linux|linux-lts) - msg2 "Patching %s" "$pkg" - sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i "$pkgpath"/PKGBUILD - sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \ - -i "$pkgpath"/config - ;; - bash) - msg2 "Patching %s" "$pkg" - # shellcheck disable=2016 - sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \ - -e "s|etc/bash.|etc/bash/|g" \ - -e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \ - -i "$pkgpath"/PKGBUILD - ( cd "$pkgpath" || return - patch -Np 1 -i "${DATADIR}"/patches/artix-bash.patch - updpkgsums - ) - ;; - gstreamer|gst-plugins-*|licenses) - msg2 "Patching %s" "$pkg" - sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \ - -e 's|(Arch Linux)|(Artix Linux)|' \ - -i "$pkgpath"/PKGBUILD - ;; - esac -} - -#}}} - -#{{{ pkgbuild import - -sync_pkg(){ - local rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) - local src="$1" dest="$2" - msg "Sync from Arch [%s] to Artix [%s]" "${src##*archlinux/}" "${dest##*artixlinux/}" - rsync "${rsync_args[@]}" "$src"/ "$dest"/ -} - -show_deps(){ - local src="$1" archver - - # shellcheck disable=1090 - . "$src"/PKGBUILD 2>/dev/null - - archver=$(get_full_version) - - # shellcheck disable=2154 - [[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}" - # shellcheck disable=2154 - msg2 "pkgname: %s" "${pkgname[*]}" - # shellcheck disable=2154 - [[ -n "${pkgdesc}" ]] && msg2 "pkgdesc: %s" "${pkgdesc}" - # shellcheck disable=2154 - msg2 "Arch Version: %s" "$archver" - # shellcheck disable=2154 - msg2 "arch: %s" "$arch" - # shellcheck disable=2154 - [[ -n ${makedepends[*]} ]] && msg2 "makedepends: %s" "${makedepends[*]}" - # shellcheck disable=2154 - [[ -n ${checkdepends[*]} ]] && msg2 "checkdepends: %s" "${checkdepends[*]}" - # shellcheck disable=2154 - [[ -n ${depends[*]} ]] && msg2 "depends: %s" "${depends[*]}" - # shellcheck disable=2154 - [[ -n ${optdepends[*]} ]] && msg2 "optdepends: %s" "${optdepends[@]}" -} - -from_arch(){ - cd "${TREE_DIR_ARTIX}" || return - - local srcpath repo archpath artixpath - srcpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}" - - repo=$(find_repo "$srcpath") - msg "repo: %s" "${repo#*/}" - - archpath=$srcpath/$repo - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - - show_deps "$archpath" - - if [[ -f "$artixpath"/.gitrepo ]]; then - artixpath="$artixpath"/trunk - - if [[ -d "$artixpath" ]];then - sync_pkg "$archpath" "$artixpath" - patch_pkg "$artixpath" - fi - else - die "Package '%s' does not exist!" "${package}" - fi -} - -#}}} - -view_build(){ - local archpath repo - archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}" - repo=$(find_repo "${archpath}") - archpath=$archpath/$repo - msg "repo: %s" "${repo#*/}" - show_deps "$archpath" -} - -check_tree(){ - local archpath artixpath group - archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") - [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}" - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - group=${artixpath%/*} - msg "group: %s" "${group##*/}" - - [[ -z $artixpath ]] && msg2 "exists: %s" "no" - [[ -n $artixpath ]] && msg2 "exists: %s" "yes" -} - -sync_repos(){ - ${sync_arch} && pull_tree_arch - ${sync_artix} && pull_tree_artix -} - -load_makepkg_config - -load_valid_names - -testing=true -staging=true -unstable=false - -sync=false -sync_arch=true -sync_artix=true -import=false -view=false -createnew=false -sync_group=false -check=false - -package='' - -team='community' -group="${ARTIX_TREE[0]}" - -host_tree_artix="${GIT_SSH}:artixlinux" - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -p Package name' - echo ' -t Team name (only with -n)' - echo ' Possible values: core,extra,community,multilib' - echo " [default: ${team}]" - echo ' -g Group name, the superrepo (only with -n or -s)' - echo " [default: ${group}]" - echo " -s Clone or pull repos" - echo " -a Don't clone or pull arch repos" - echo " -b Don't clone or pull artix repos" - echo ' -i Import a package from arch repos' - echo ' -n New remote subrepo and clone it' - echo ' -v Check if a package is in the artix tree(s)' - echo ' -c View package depends' - echo ' -x Exclude testing (only with -i)' - echo ' -y Exclude staging (only with -i)' - echo ' -z Include kde & gnome unstable (only with -i)' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:t:g:sinabcvxyzh' - -while getopts "${opts}" arg; do - case "${arg}" in - p) package="$OPTARG" ;; - t) team="$OPTARG" ;; - g) group="$OPTARG"; sync_group=true ;; - s) sync=true ;; - a) sync_arch=false ;; - b) sync_artix=false ;; - i) import=true ;; - n) createnew=true ;; - c) check=true ;; - v) view=true ;; - x) testing=false ;; - y) staging=false ;; - z) unstable=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -set_arch_repos "$testing" "$staging" "$unstable" - -${sync} && sync_repos - -${view} && view_build - -${check} && check_tree - -${import} && from_arch - -${createnew} && subrepo_new diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/checkpkg b/artools/0.26.1/artools/debian/artools/usr/bin/checkpkg deleted file mode 100755 index 0c94b49..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/checkpkg +++ /dev/null @@ -1,303 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -shopt -s extglob - -load_makepkg_config - -#{{{ functions - -pkgver_equal() { - if [[ $1 = *-* && $2 = *-* ]]; then - # if both versions have a pkgrel, then they must be an exact match - [[ $1 = "$2" ]] - else - # otherwise, trim any pkgrel and compare the bare version. - [[ ${1%%-*} = "${2%%-*}" ]] - fi -} - -find_cached_package() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local targetname=$1 targetver=$2 targetarch=$3 - local dir pkg pkgbasename name ver rel arch r results - - for dir in "${searchdirs[@]}"; do - [[ -d $dir ]] || continue - - for pkg in "$dir"/*.pkg.tar?(.!(sig|*.*)); do - [[ -f $pkg ]] || continue - - # avoid adding duplicates of the same inode - for r in "${results[@]}"; do - [[ $r -ef $pkg ]] && continue 2 - done - - # split apart package filename into parts - pkgbasename=${pkg##*/} - pkgbasename=${pkgbasename%.pkg.tar*} - - arch=${pkgbasename##*-} - pkgbasename=${pkgbasename%-"$arch"} - - rel=${pkgbasename##*-} - pkgbasename=${pkgbasename%-"$rel"} - - ver=${pkgbasename##*-} - name=${pkgbasename%-"$ver"} - - if [[ $targetname = "$name" && $targetarch = "$arch" ]] && - pkgver_equal "$targetver" "$ver-$rel"; then - results+=("$pkg") - fi - done - done - - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -#}}} - -usage() { - cat <<- _EOF_ - Usage: ${BASH_SOURCE[0]##*/} [OPTIONS] - - Searches for a locally built package corresponding to the PKGBUILD, and - downloads the last version of that package from the Pacman repositories. - It then compares the list of .so files provided by each version of the - package and outputs if there are soname differences for the new package. - A directory is also created using mktemp with files containing a file - list for both packages and a library list for both packages. - - OPTIONS - -r, --rmdir Remove the temporary directory - -w, --warn Print a warning in case of differences - -h, --help Show this help text -_EOF_ -} - -RMDIR=0 -WARN=0 - -OPT_SHORT='rwh' -OPT_LONG=('rmdir' 'warn' 'help') -if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then - exit 1 -fi -set -- "${OPTRET[@]}" - -while :; do - case $1 in - -r|--rmdir) - RMDIR=1 - ;; - -w|--warn) - WARN=1 - ;; - -h|--help) - usage - exit 0 - ;; - --) - shift; break - ;; - esac - shift -done - -if [[ ! -f PKGBUILD ]]; then - die 'This must be run in the directory of a built package.' -fi - -# shellcheck source=PKGBUILD.proto -. ./PKGBUILD -if [[ ${arch[0]} == 'any' ]]; then - CARCH='any' -fi - -STARTDIR=$(pwd) -(( RMDIR )) && trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT -TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX) - -for _pkgname in "${pkgname[@]}"; do - comparepkg=$_pkgname - pkgurl= - target_pkgver=$(get_full_version "$_pkgname") - if ! pkgfile=$(find_cached_package "$_pkgname" "$target_pkgver" "$CARCH"); then - die 'tarball not found for package: %s' "${_pkgname}-$target_pkgver" - fi - - ln -s "$pkgfile" "$TEMPDIR" - - if (( $# )); then - case $1 in - /*|*/*) - pkgurl=file://$(readlink -m "$1") ;; - *.pkg.tar*) - pkgurl=$1 ;; - '') - ;; - *) - comparepkg=$1 ;; - esac - shift - fi - [[ -n $pkgurl ]] || pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$comparepkg") || - die "Couldn't download previous package for %s." "$comparepkg" - - oldpkg=${pkgurl##*/} - - if [[ ${oldpkg} = "${pkgfile##*/}" ]]; then - die "The built package (%s) is the one in the repo right now!" "$_pkgname" - fi - - if [[ $pkgurl = file://* || ( $pkgurl = /* && -f $pkgurl ) ]]; then - ln -s "${pkgurl#file://}" "$TEMPDIR/$oldpkg" - elif [[ -f "$PKGDEST/$oldpkg" ]]; then - ln -s "$PKGDEST/$oldpkg" "$TEMPDIR/$oldpkg" - elif [[ -f "$STARTDIR/$oldpkg" ]]; then - ln -s "$STARTDIR/$oldpkg" "$TEMPDIR/$oldpkg" - else - curl -fsLC - --retry 3 --retry-delay 3 -o "$TEMPDIR/$oldpkg" "$pkgurl" - fi - - bsdtar tf "$TEMPDIR/$oldpkg" | sort > "$TEMPDIR/filelist-$_pkgname-old" - bsdtar tf "$pkgfile" | sort > "$TEMPDIR/filelist-$_pkgname" - - sdiff -s "$TEMPDIR/filelist-$_pkgname-old" "$TEMPDIR/filelist-$_pkgname" - - find-libprovides "$TEMPDIR/$oldpkg" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname-old" - find-libprovides "$pkgfile" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname" - if ! diff_output="$(sdiff -s "$TEMPDIR/libraries-$_pkgname-old" "$TEMPDIR/libraries-$_pkgname")"; then - message="Sonames differ in $_pkgname!" - (( WARN )) && warning "$message" || msg "$message" - echo "$diff_output" - else - msg "No soname differences for %s." "$_pkgname" - fi -done - -(( RMDIR )) || msg "Files saved to %s" "$TEMPDIR" diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/checkrepo b/artools/0.26.1/artools/debian/artools/usr/bin/checkrepo deleted file mode 100755 index afed698..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/checkrepo +++ /dev/null @@ -1,550 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - -#!/hint/bash - -#{{{ table - -msg_table_header(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" -} - -msg_row_yellow(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_green(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_red(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" -} - -#}}} - - -#{{{ db libs - -extract_db() { - local u="$1" cdir="$2" - rm -rf "$cdir" - mkdir -p "$cdir" - msg2 "%s" "${cdir##*/}" - curl -L -s "$u" | bsdtar -xf - -C "$cdir" -} - -update_db_cache(){ - msg "Updating database cache ..." - local cachedir url - for repo in "${searchrepos[@]}"; do - cachedir=${db_cache_dir}/linksdb/$repo - url=${REPOS_MIRROR}/$repo/os/${CARCH}/$repo.${linksdb_ext} - extract_db "$url" "$cachedir" - done - msg "Done" -} - -#}}} - -#{{{ sogrep - -query_db() { - for repo in "${searchrepos[@]}"; do - local db - db=${db_cache_dir}/linksdb/$repo/ - if [[ -d ${db} ]]; then - while read -rd '' pkg; do - read -r match - pkg=${pkg#${db}} - pkg="${pkg%/*}" - msg_row "${tableQ}" "$repo" "$pkg" "${match}" - done < <(grep -rZ "$library" "$db") | sort -u - fi - done -} - -#}}} - -#{{{ check db - -is_db_entry() { - local pkgname="$1" repo="${REPOS[$2]}" entry - entry=${db_cache_dir}/linksdb/$repo/$pkgname - - if [[ -d "$entry" ]];then - return 0 - fi - return 1 -} - -check_db(){ - local pkgpath="${1}" - - for repo in "${!REPOS[@]}"; do - - local pkgbuild artixver - if [[ -f $pkgpath/$repo/PKGBUILD ]]; then - pkgbuild=$pkgpath/$repo/PKGBUILD - - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - artixver=$(get_full_version) - for name in "${pkgname[@]}"; do - if ! is_db_entry "$name-$artixver" "$repo"; then - msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false" - else - ${all_db} && msg_row "${tableU}" "$repo" "$name" "$artixver" "true" - fi - done - unset artixver pkgbuild pkgver epoch pkgname pkgbase - fi - done -} - -#}}} - -# {{{ check obsolete - -show_obsolete_table() { - local arch_mirror='https://mirror.f4st.host/archlinux' - - local arch_repo artix_repo artix_db arch_db url - arch_repo="${searchrepos[@]}" - artix_repo="${REPOS[$arch_repo]}" - - artix_db="${db_cache_dir}/artixdb/${artix_repo}" - arch_db="${db_cache_dir}/archdb/${arch_repo}" - - msg "Updating database cache ..." - url=${REPOS_MIRROR}/${artix_repo}/os/$CARCH/${artix_repo}.${db_ext} - extract_db "$url" "${artix_db}" - - url=${arch_mirror}/${arch_repo}/os/$CARCH/${arch_repo}.${db_ext} - extract_db "$url" "${arch_db}" - msg "Done" - - msg_table_header "${tableQ}" "Repo" "Package" "Obsolete" - for p in "${artix_db}"/*; do - local pkg rel - pkg=${p##*/} - rel=${pkg##*-} - rel=${rel%.*} - pkg=${pkg%-*} - local p="$pkg-$rel" - - if [[ "$p" != *openrc* ]] && [[ "$p" != *runit* ]] \ - && [[ "$p" != *s6* ]] && [[ "$p" != *suite66* ]] \ - && [[ "$p" != *eudev* ]] && [[ "$p" != *elogind* ]] \ - && [[ "$p" != *sysusers* ]] && [[ "$p" != *tmpfiles* ]] \ - && [[ "$p" != *execline* ]] && [[ "$p" != *skalibs* ]] \ - && [[ "$p" != *netifrc* ]] && [[ "$p" != *bootlogd* ]] \ - && [[ "$p" != *pam_rundir* ]] && [[ "$p" != *artools* ]] \ - && [[ "$p" != *archlinux* ]] && [[ "$p" != *iso-profiles* ]] \ - && [[ "$p" != *calamares* ]] && [[ "$p" != *iso-initcpio* ]] \ - && [[ "$p" != *dinit* ]] && [[ "$p" != *artix* ]]; then - if [[ ! -d "${arch_db}/$p" ]]; then - msg_row "${tableQ}" "${artix_repo}" "$p" "true" - fi - fi - done -} - -#}}} - -show_lib_table() { - msg_table_header "${tableQ}" "Repo" "Package" "Library" - query_db -} - -show_db_table(){ - msg_table_header "${tableU}" "Repo" "Package" "Version" "Database" - tree_loop check_db -} - -db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools" - -linksdb_ext="links.tar.${DBEXT}" -db_ext="db.tar.${DBEXT}" - -load_makepkg_config - -sync=false -check=false -query=false -all_db=false -obsolete=false - -readonly tableU="%-20s %-35s %-30s %-10s" -readonly tableQ="%-20s %-55s %s" - -load_valid_names - -#{{{ repo names arrays - -declare -A REPOS=( - [${valid_names[0]}]=system - [${valid_names[1]}]=world - [${valid_names[2]}]=galaxy - [${valid_names[3]}]=lib32 - [${valid_names[4]}]=gremlins - [${valid_names[5]}]=galaxy-gremlins - [${valid_names[6]}]=lib32-gremlins - [${valid_names[7]}]=goblins - [${valid_names[8]}]=galaxy-goblins - [${valid_names[9]}]=lib32-goblins - [${valid_names[11]}]=kde-wobble - [${valid_names[12]}]=gnome-wobble -) - -searchrepos=( - "${REPOS[${valid_names[11]}]}" - "${REPOS[${valid_names[12]}]}" - "${REPOS[${valid_names[7]}]}" - "${REPOS[${valid_names[8]}]}" - "${REPOS[${valid_names[9]}]}" - "${REPOS[${valid_names[4]}]}" - "${REPOS[${valid_names[5]}]}" - "${REPOS[${valid_names[6]}]}" - "${REPOS[${valid_names[0]}]}" - "${REPOS[${valid_names[1]}]}" - "${REPOS[${valid_names[2]}]}" - "${REPOS[${valid_names[3]}]}" -) - -#}}} - -usage() { - echo "Usage: ${0##*/} [options] (with -q [libname])" - echo ' -r Repo name to query' - echo ' [default: all]' - echo " -s Sync repo databases" - echo ' -c Check repos' - echo ' -a Show repo db (-c)' - echo ' -o Check for obsolete packages' - echo " -q Query repo databases for so libs" - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='r:qcsaoh' - -while getopts "${opts}" arg; do - case "${arg}" in - r) searchrepos=("$OPTARG") ;; - s) sync=true ;; - c) check=true ;; - a) all_db=true ;; - q) query=true ;; - o) obsolete=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -library="$1"; shift - -${sync} && update_db_cache - -${check} && show_db_table - -${query} && show_lib_table - -${obsolete} && show_obsolete_table diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/chroot-run b/artools/0.26.1/artools/debian/artools/usr/bin/chroot-run deleted file mode 100755 index 3438224..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/chroot-run +++ /dev/null @@ -1,414 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ mount - -ignore_error() { - "$@" 2>/dev/null - return 0 -} - -trap_setup(){ - [[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap' - trap "$1" EXIT -} - -chroot_mount() { -# msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") -} - -chroot_add_resolv_conf() { - local chrootdir=$1 resolv_conf=$1/etc/resolv.conf - - [[ -e /etc/resolv.conf ]] || return 0 - - # Handle resolv.conf as a symlink to somewhere else. - if [[ -L $chrootdir/etc/resolv.conf ]]; then - # readlink(1) should always give us *something* since we know at this point - # it's a symlink. For simplicity, ignore the case of nested symlinks. - resolv_conf=$(readlink "$chrootdir/etc/resolv.conf") - if [[ $resolv_conf = /* ]]; then - resolv_conf=$chrootdir$resolv_conf - else - resolv_conf=$chrootdir/etc/$resolv_conf - fi - - # ensure file exists to bind mount over - if [[ ! -f $resolv_conf ]]; then - install -Dm644 /dev/null "$resolv_conf" || return 1 - fi - elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then - # The chroot might not have a resolv.conf. - return 0 - fi - - chroot_mount /etc/resolv.conf "$resolv_conf" --bind -} - -chroot_mount_conditional() { - local cond=$1; shift - if eval "$cond"; then - chroot_mount "$@" - fi -} - -chroot_setup(){ - local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755' - $os && args='--bind' - chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind && - chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev && - chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro && - ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \ - efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && - chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid && - chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && - chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && - chroot_mount /run "$mnt/run" ${args} && - chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid -} - -chroot_api_mount() { - CHROOT_ACTIVE_MOUNTS=() - trap_setup chroot_api_umount - chroot_setup "$1" false -} - -chroot_api_umount() { - if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then -# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_MOUNTS[@]}" - fi - unset CHROOT_ACTIVE_MOUNTS -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -CHROOTVERSION=0.10 - - -# $1: chroot -kill_chroot_process(){ - local prefix="$1" flink pid name - for root_dir in /proc/*/root; do - flink=$(readlink "$root_dir") - if [ "x$flink" != "x" ]; then - if [ "x${flink:0:${#prefix}}" = "x$prefix" ]; then - # this process is in the chroot... - pid=$(basename "$(dirname "$root_dir")") - name=$(ps -p "$pid" -o comm=) - msg2 "Killing chroot process: %s (%s)" "$name" "$pid" - kill -9 "$pid" - fi - fi - done - sleep 1 -} - -# umask might have been changed in /etc/profile -# ensure that sane default is set again -umask 0022 - -working_dir='' -files=() - -mount_args=("-B:/etc/hosts:/etc/hosts") - -usage() { - echo "Usage: ${0##*/} [options] working-dir [run arguments]" - echo "A wrapper around chroot. Provides support for pacman." - echo - echo ' options:' - echo ' -C Location of a pacman config file' - echo ' -M Location of a makepkg config file' - echo ' -c Set pacman cache' - echo ' -f Copy file from the host to the chroot' - echo ' -s Do not run setarch' - echo ' -b Bind mountargs' - echo ' List format [mntarg1:src1:dest1 ... mntargN:srcN:destN]' - echo ' -h This message' - exit 1 -} - -opts='hC:M:c:b:f:s' - -while getopts ${opts} arg; do - case "${arg}" in - C) pacman_conf="$OPTARG" ;; - M) makepkg_conf="$OPTARG" ;; - c) cache_dirs+=("$OPTARG") ;; - f) files+=("$OPTARG") ;; - s) nosetarch=1 ;; - b) bindmounts+=("$OPTARG"); mount_args+=(${bindmounts[@]}) ;; - h|?) usage ;; - *) error "invalid argument '$arg'"; usage ;; - esac -done -shift $(( OPTIND - 1 )) - -(( $# < 1 )) && die 'You must specify a directory.' - -check_root - -working_dir=$(readlink -f "$1") -shift 1 - -[[ -z $working_dir ]] && die 'Please specify a working directory.' - -if (( ${#cache_dirs[@]} == 0 )); then - mapfile -t cache_dirs < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" CacheDir) -fi - -# shellcheck disable=2016 -host_mirrors=($(pacman-conf --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#')) - -for host_mirror in "${host_mirrors[@]}"; do - if [[ $host_mirror == *file://* ]]; then - # shellcheck disable=2016 - host_mirror=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g') - in_array "$host_mirror" "${cache_dirs[@]}" || cache_dirs+=("$host_mirror") - fi -done - -while read -r line; do - # shellcheck disable=2016 - mapfile -t lines < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" \ - --repo "$line" Server | sed -r 's#(.*/)[^/]+/os/.+#\1#') - for line in "${lines[@]}"; do - if [[ $line = file://* ]]; then - line=${line#file://} - in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line") - fi - done -done < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" --repo-list) - -copy_hostconf () { - unshare --fork --pid gpg --homedir "$working_dir"/etc/pacman.d/gnupg/ --no-permission-warning --quiet --batch --import --import-options import-local-sigs "$(pacman-conf GpgDir)"/pubring.gpg >/dev/null 2>&1 - pacman-key --gpgdir "$working_dir"/etc/pacman.d/gnupg/ --import-trustdb "$(pacman-conf GpgDir)" >/dev/null 2>&1 - - printf 'Server = %s\n' "${host_mirrors[@]}" >"$working_dir/etc/pacman.d/mirrorlist" - - [[ -n $pacman_conf ]] && cp "$pacman_conf" "${working_dir}/etc/pacman.conf" - - [[ -n $makepkg_conf ]] && cp "$makepkg_conf" "${working_dir}/etc/makepkg.conf" - - local file - for file in "${files[@]}"; do - mkdir -p "$(dirname "$working_dir$file")" - cp -T "$file" "$working_dir$file" - done - - sed -r "s|^#?\\s*CacheDir.+|CacheDir = ${cache_dirs[*]}|g" -i "${working_dir}/etc/pacman.conf" -} - -mount_args+=("-B:${cache_dirs[0]//:/\\:}:${cache_dirs[0]//:/\\:}") - -for cache_dir in "${cache_dirs[@]:1}"; do - mount_args+=("-Br:${cache_dir//:/\\:}:${cache_dir//:/\\:}") -done - -chroot_extra_mount() { - chroot_add_resolv_conf "${working_dir}" - - for arg in "${mount_args[@]}"; do - local flag=${arg%%:*} dest=${arg##*:} src=${arg%:*} - src=${src#*:} - chroot_mount "${src}" "${working_dir}${dest}" "${flag}" - done -} - -umask 0022 - -# Sanity check -if [[ ! -f "$working_dir/.artools" ]]; then - die "'%s' does not appear to be an artix chroot." "$working_dir" -elif [[ $(cat "$working_dir/.artools") != "${CHROOTVERSION}" ]]; then - die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}" -fi - -chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" - -chroot_extra_mount - -copy_hostconf - -eval "$(grep '^CARCH=' "$working_dir/etc/makepkg.conf")" - -[[ -z $nosetarch ]] || unset CARCH - -if [[ -f "/usr/share/artools/setarch-aliases.d/${CARCH}" ]]; then - read -r set_arch < "/usr/share/artools/setarch-aliases.d/${CARCH}" -else - set_arch="${CARCH}" -fi - -${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "$@" - -ret=$? - -kill_chroot_process "${working_dir}" - -exit $ret diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/commitpkg b/artools/0.26.1/artools/debian/artools/usr/bin/commitpkg deleted file mode 100755 index 72bbd41..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/commitpkg +++ /dev/null @@ -1,596 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common functions - -get_compliant_name(){ - local gitname="$1" - case "$gitname" in - *+) gitname=${gitname//+/plus} - esac - echo "$gitname" -} - -get_pkg_org(){ - local pkg="$1" org sub - case ${pkg} in - ruby-*) org="packagesRuby" ;; - perl-*) org="packagesPerl" ;; - python-*|python2-*) org="packagesPython" ;; - *) sub=${pkg:0:1}; org="packages${sub^^}" ;; - esac - echo "$org" -} - -api_put() { - curl -s -X PUT "$@" -} - -api_delete() { - curl -s -X DELETE "$@" -} - -api_post() { - curl -s -X POST "$@" -} - -#}}} - -#!/hint/bash - -#{{{ git - -get_local_head(){ - git log --pretty=%H ...refs/heads/master^ | head -n 1 -} - -get_remote_head(){ - git ls-remote origin -h refs/heads/master | cut -f1 -} - -has_changeset(){ - local head_l="$1" head_r="$2" - if [[ "$head_l" == "$head_r" ]]; then - msg2 "remote changes: no" - return 1 - else - msg2 "remote changes: yes" - return 0 - fi -} - -pull_tree(){ - local tree="$1" local_head="$2" os="${3:-Artix}" - local remote_head - remote_head=$(get_remote_head) - - msg "Checking (%s) (%s)" "${tree}" "$os" - if has_changeset "${local_head}" "${remote_head}";then - git pull origin master - fi -} - -#}}} - -#!/hint/bash - -#{{{ gitea api - -add_team_to_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Adding team (%s) to package repo [%s]" "$team" "$name" - - api_put "$url" -H "accept: application/json" -} - -remove_team_from_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Removing team (%s) from package repo [%s]" "$team" "$name" - - api_delete "$url" -H "accept: application/json" -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - - -#{{{ functions - -push_tree(){ - local tree="$1" - msg "Update (%s)" "${tree}" - git push origin master -} - -subrepo_push(){ - local pkg="$1" - msg2 "Subrepo push (%s)" "$pkg" - git subrepo push "$pkg" || die "%s push failed" "$pkg" -} - -subrepo_clean(){ - local pkg="$1" - msg2 "Subrepo clean (%s)" "$pkg" - git subrepo clean "$pkg" -} - -subrepo_pull(){ - local pkg="$1" - msg2 "Subrepo pull (%s)" "$pkg" - git subrepo pull "$pkg" -} - -check_rebuild(){ - if [[ -d "$CARCH"/"${valid_names[10]}" ]] \ - && [[ "${repo_dest}" == "${valid_names[7]}" ]]; then - git rm -r "$CARCH"/"${valid_names[10]}" - git commit -m "switch from ${valid_names[10]} to ${valid_names[7]}" - elif [[ -d "$CARCH"/"${valid_names[7]}" ]] \ - && [[ "${repo_dest}" == "${valid_names[10]}" ]]; then - git rm -r "$CARCH"/"${valid_names[7]}" - git commit -m "switch from ${valid_names[7]} to ${valid_names[10]}" - fi -} - -check_team(){ - if [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ - [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[0]}" ]] || \ - [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ - [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ - [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ - [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[0]}" ]]; then - - local org gitname - org=$(get_pkg_org "${package}") - gitname=$(get_compliant_name "${package}") - add_team_to_repo "$gitname" "${org}" "${repo_dest}" - remove_team_from_repo "$gitname" "${org}" "${repo_src}" - fi -} - -path_config() { - [[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD - - # shellcheck disable=1090 - . "$pkgbuild" -} - -get_repo_commit_msg() { - echo "[${repo_src}] -> [${repo_dest}] '${package}-$(get_full_version)' ${action}" -} - -get_commit_msg() { - echo "[${repo_src}] '${package}-$(get_full_version)' ${action}" -} - -commit_pkg() { - local commit_msg pkg - if ${remove}; then - action='remove' - commit_msg=$(get_commit_msg) - msg "Action: %s" "$commit_msg" - if [[ "${repo_src}" == 'trunk' ]];then - git rm -r trunk - else - git rm -r "$CARCH/${repo_src}" - fi - else - action='modify' - commit_msg=$(get_commit_msg) - msg "Action: %s" "$commit_msg" - git add . - fi - git commit -m "$commit_msg" -} - -repo_commit_pkg() { - local commit_msg - - [[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}" - [[ ! -d "$CARCH" ]] && mkdir "$CARCH" - [[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}" - - if [[ "${repo_src}" == 'trunk' ]]; then - action='add' - commit_msg=$(get_repo_commit_msg) - msg "Action: %s" "$commit_msg" - check_rebuild - cp trunk/* "$CARCH/${repo_dest}"/ - else - action='move' - [[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild" - commit_msg=$(get_repo_commit_msg) - msg "Action: %s" "$commit_msg" - cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/ - git rm -r "$CARCH/${repo_src}" - fi - git add . - git commit -m "$commit_msg" -} - -run(){ - local artixpath head group - artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") - if [[ -n ${artixpath} ]];then - group=${artixpath%/*} - cd "${group}" || return - head=$(get_local_head) - - cd "${artixpath}" || return - - path_config - - if [[ "${cmd}" == 'commitpkg' ]];then - commit_pkg - else - repo_commit_pkg - fi - - cd "${group}" || return - - ${push} && pull_tree "${group##*/}" "$head" -# subrepo_pull "${package}" - subrepo_push "${package}" - subrepo_clean "${package}" - - ${push} && push_tree "${group##*/}" - - git prune - - [[ "${cmd}" != 'commitpkg' ]] && check_team - else - die "Package '%s' does not exist!" "${package}" - fi -} - -is_valid_repo(){ - local _valid=trunk - for repo in "${valid_names[@]}"; do - _valid=${repo:-}${repo:+|}$_valid - done - eval "case ${repo_src} in - ${_valid}) return 0 ;; - *) return 1 ;; - esac" -} - -#}}} - -load_makepkg_config - -load_valid_names - -repo_src='trunk' -package='' -remove=false -push=false - -pkgbuild=trunk/PKGBUILD - -cmd=${0##*/} -repo_dest=${cmd%pkg} - -usage() { - echo "Usage: ${0##*/} [options]" - echo " -s Source repository [default:${repo_src}]" - echo ' -p Package name' - echo ' -r Delete from repo (commitpkg only)' - echo ' -u Push' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='p:s:urh' - -while getopts "${opts}" arg; do - case "${arg}" in - s) repo_src="$OPTARG" ;; - p) package="$OPTARG" ;; - r) remove=true ;; - u) push=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -if is_valid_repo;then - run -else - die "source repository '%s' is not valid!" "${repo_src}" -fi diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/community-stagingpkg b/artools/0.26.1/artools/debian/artools/usr/bin/community-stagingpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/community-stagingpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/community-testingpkg b/artools/0.26.1/artools/debian/artools/usr/bin/community-testingpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/community-testingpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/communitypkg b/artools/0.26.1/artools/debian/artools/usr/bin/communitypkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/communitypkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/comparepkg b/artools/0.26.1/artools/debian/artools/usr/bin/comparepkg deleted file mode 100755 index 6c4163a..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/comparepkg +++ /dev/null @@ -1,506 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} - -#!/hint/bash - -#{{{ table - -msg_table_header(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" -} - -msg_row_yellow(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_green(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_red(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" -} - -#}}} - - - -#{{{ upgrades, downgrades, moves - -remove_list(){ - local name="$1" - [[ -f "${TREE_DIR_ARTIX}"/$name.list ]] && rm "${TREE_DIR_ARTIX}"/"$name".list -} - -write_list(){ - local line="$1" name="$2" - printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/"$name".list -} - -compare_m(){ - case ${artixrepo} in - *testing*|*staging*|*rebuild) - if [[ "${a}" == "${b}" ]]; then - msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - elif [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then - msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - else - msg_row_green "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - if [[ -n "$archrepo" ]]; then - write_list "${a}:${b}:$pkg" pkg_moves - else - write_list "@repo@:${b}:$pkg" artix - fi - fi - ;; - esac -} - -compare_u(){ - if [ "$result" -eq -1 ];then -# local arel=${archver##*-} brel=${artixver##*-} -# local reldiff -# reldiff=$(( $arel-${brel%.*} )) - msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - write_list "${a}:$pkg" pkg_upgrades - fi -} - -compare_d(){ - if [ "$result" -eq 1 ];then - if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then - msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - fi - fi -} - -get_archpath(){ - local pkg="$1" archpath - - for tree in "${ARCH_TREE[@]}"; do - [[ -d ${TREE_DIR_ARCH}/$tree/$pkg/repos ]] && archpath=${TREE_DIR_ARCH}/$tree/$pkg - done - echo "$archpath" -} - -pre_compare(){ - local func="$1" pkgpath="$2" result group pkg - group="${pkgpath%/*}" - group=${group##*/} - pkg=${pkgpath##*/} - - local artixrepo archrepo pkgbuild artixver archver archpath node a b - artixrepo=$(find_repo "$pkgpath") - pkgbuild=$pkgpath/$artixrepo/PKGBUILD - - if [[ -f $pkgbuild ]]; then - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - artixver=$(get_full_version) - archpath=$(get_archpath "$pkg") - archrepo=$(find_repo "${archpath}") - pkgbuild=$archpath/$archrepo/PKGBUILD - node=${artixrepo%/*} - a=${archrepo#*/} b=${artixrepo#*/} - a="${a%-*}" - - [[ "$node" != "$CARCH" ]] && b=${b%-*} - - if [[ -f "$pkgbuild" ]]; then - # shellcheck disable=1090 - . "$pkgbuild" 2>/dev/null - archver=$(get_full_version) - fi - - result=$(vercmp "$artixver" "$archver") - - "$func" - - unset epoch - fi -} - -compare_upgrades(){ - local pkgpath="${1%/*}" - pre_compare compare_u "$pkgpath" -} - -compare_downgrades(){ - local pkgpath="${1%/*}" - pre_compare compare_d "$pkgpath" -} - -compare_move(){ - local pkgpath="${1%/*}" - pre_compare compare_m "$pkgpath" -} - -#}}} - -show_compare_header(){ - msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group" -} - -show_upgrades_table(){ - show_compare_header - remove_list pkg_upgrades - tree_loop compare_upgrades -} - -show_downgrades_table(){ - show_compare_header - tree_loop compare_downgrades -} - -show_move_table(){ - show_compare_header - remove_list pkg_moves - remove_list artix - tree_loop compare_move -} - -load_makepkg_config - -load_valid_names - -testing=true -staging=true -unstable=false - -upgrades=false -downgrades=false -move=false - -readonly table="%-18s %-18s %-25s %-27s %-27s %-10s" - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -u Show upgrade packages' - echo ' -d Show downgrade packages' - echo ' -m Show packages to move' - echo " -x Don't inlcude testing packages" - echo " -y Don't inlcude staging packages" - echo ' -z Include unstable kde and gnome' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='udmxyzh' - -while getopts "${opts}" arg; do - case "${arg}" in - u) upgrades=true ;; - d) downgrades=true ;; - m) move=true ;; - x) testing=false ;; - y) staging=false ;; - z) unstable=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -set_arch_repos "$testing" "$staging" "$unstable" - -${move} && show_move_table - -${upgrades} && show_upgrades_table - -${downgrades} && show_downgrades_table diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/corepkg b/artools/0.26.1/artools/debian/artools/usr/bin/corepkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/corepkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg deleted file mode 100755 index b6b596e..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg +++ /dev/null @@ -1,351 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'/usr/share/artools'} -SYSCONFDIR=${SYSCONFDIR:-'/etc/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" - -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ functions - -find_cached_pkgfile() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local pkg="$1" - for dir in "${searchdirs[@]}"; do - [[ -d "$dir" ]] || continue - [[ -e "$dir/$pkg" ]] && results+=("$dir/$pkg") - done - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -get_pkgbasename() { - local name="$1" - local rm_pkg=${name%.pkg.tar*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - echo "$rm_pkg" -} - -#}}} - - -#{{{ deploy - -add(){ - if pkgfile=$(find_cached_pkgfile "${pkgname}"); then - msg "Found: %s" "${pkgfile}" - packages+=("${pkgname}") - action='add' - ln -sfv "${pkgfile}"{,.sig} "$repo_path"/ - fi -} - -remove(){ - packages+=("$(get_pkgbasename "${pkgname}")") - action='remove' - rm -v "$repo_path"/"${pkgname}"{,.sig} -} - -repo_action(){ - local packages=() action func="$1" - for pkgname in "${passfiles[@]}"; do - "$func" - done - cd "$repo_path" || return - if [[ -n "${action}" ]]; then - repo-"${action}" -R "${dest_repo}"."${pkgdb_ext}" "${packages[@]}" - ${linksdb} && links-"${action}" "${dest_repo}"."${linksdb_ext}" "${packages[@]}" - fi -} - -#}}} - -load_makepkg_config - -pkgdb_ext="db.tar.${DBEXT}" -linksdb_ext="links.tar.${DBEXT}" - -add_pkg=false -rm_pkg=false -linksdb=false - -cmd=${0##*/} -dest_repo=${cmd#*-} - -usage() { - echo "Usage: ${cmd} [options]" - echo ' -d Destination repository' - echo ' -a Add package(s) to repository' - echo ' -r Remove package(s) from repository' - echo ' -l Use links db' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -opts='arlhd:' - -while getopts "${opts}" arg; do - case "${arg}" in - d) dest_repo="$OPTARG" ;; - a) add_pkg=true; rm_pkg=false ;; - r) rm_pkg=true; add_pkg=false ;; - l) linksdb=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -passfiles=("$@") - -repo_path=${REPOS_ROOT}/${dest_repo}/os/${CARCH} - -if [[ -n "${passfiles[*]}" ]]; then - if ${add_pkg}; then - repo_action add - fi - if ${rm_pkg}; then - repo_action remove - fi -fi diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-goblins b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-goblins deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-goblins +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-gremlins b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-gremlins deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-galaxy-gremlins +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gnome-wobble b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gnome-wobble deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gnome-wobble +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-goblins b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-goblins deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-goblins +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gremlins b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gremlins deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-gremlins +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-kde-wobble b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-kde-wobble deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-kde-wobble +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32 b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32 deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32 +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-goblins b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-goblins deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-goblins +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-gremlins b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-gremlins deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-lib32-gremlins +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-system b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-system deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-system +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-world b/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-world deleted file mode 120000 index 47b3194..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/deploypkg-world +++ /dev/null @@ -1 +0,0 @@ -deploypkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/extrapkg b/artools/0.26.1/artools/debian/artools/usr/bin/extrapkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/extrapkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/find-libdeps b/artools/0.26.1/artools/debian/artools/usr/bin/find-libdeps deleted file mode 100755 index 56294b8..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/find-libdeps +++ /dev/null @@ -1,196 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -set -e -shopt -s extglob - -IGNORE_INTERNAL=0 - -if [[ $1 = "--ignore-internal" ]]; then - IGNORE_INTERNAL=1 - shift -fi - -script_mode=${BASH_SOURCE[0]##*/find-lib} - -case $script_mode in - deps|provides) true;; - *) die "Unknown mode %s" "$script_mode" ;; -esac - -if [[ -z $1 ]]; then - echo "${0##*/} [options] " - echo "Options:" - echo " --ignore-internal ignore internal libraries" - exit 1 -fi - -if [[ -d $1 ]]; then - pushd "$1" >/dev/null -else - setup_workdir - - case ${script_mode} in - deps) bsdtar -C "$WORKDIR" -xf "$1";; - provides) bsdtar -C "$WORKDIR" -xf "$1" --include="*.so*";; - esac - - pushd "$WORKDIR" >/dev/null -fi - -process_sofile() { - # extract the library name: libfoo.so - soname="${sofile%.so?(+(.+([0-9])))}".so - # extract the major version: 1 - soversion="${sofile##*\.so\.}" - if [[ "$soversion" = "$sofile" ]] && ((IGNORE_INTERNAL)); then - return - fi - if ! in_array "${soname}=${soversion}-${soarch}" "${soobjects[@]}"; then - # libfoo.so=1-64 - echo "${soname}=${soversion}-${soarch}" - soobjects+=("${soname}=${soversion}-${soarch}") - fi -} - -case $script_mode in - deps) find_args=(-perm -u+x);; - provides) find_args=(-name '*.so*');; -esac - -find . -type f "${find_args[@]}" | while read -r filename; do - if [[ $script_mode = "provides" ]]; then - # ignore if we don't have a shared object - if ! LC_ALL=C readelf -h "$filename" 2>/dev/null | grep -q '.*Type:.*DYN (Shared object file).*'; then - continue - fi - fi - - # get architecture of the file; if soarch is empty it's not an ELF binary - soarch=$(LC_ALL=C readelf -h "$filename" 2>/dev/null | sed -n 's/.*Class.*ELF\(32\|64\)/\1/p') - [[ -n $soarch ]] || continue - - if [[ $script_mode = "provides" ]]; then - # get the string binaries link to: libfoo.so.1.2 -> libfoo.so.1 - sofile=$(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -n 's/.*Library soname: \[\(.*\)\].*/\1/p') - [[ -z $sofile ]] && sofile="${filename##*/}" - process_sofile - elif [[ $script_mode = "deps" ]]; then - # process all libraries needed by the binary - for sofile in $(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p'); do - process_sofile - done - fi -done - -popd >/dev/null diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/find-libprovides b/artools/0.26.1/artools/debian/artools/usr/bin/find-libprovides deleted file mode 120000 index 69b4ce5..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/find-libprovides +++ /dev/null @@ -1 +0,0 @@ -find-libdeps \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/finddeps b/artools/0.26.1/artools/debian/artools/usr/bin/finddeps deleted file mode 100755 index fdc96f7..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/finddeps +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -match=$1 - -if [[ -z $match ]]; then - echo 'Usage: finddeps ' - echo '' - echo 'Find packages that depend on a given depname.' - echo 'Run this script from the top-level directory of your ABS tree.' - echo '' - exit 1 -fi - -find . -type d -print0 2>/dev/null| while read -r -d '' d; do - if [[ -f "$d/PKGBUILD" ]]; then - pkgname=() depends=() makedepends=() optdepends=() - # shellcheck source=PKGBUILD.proto - . "$d/PKGBUILD" - for dep in "${depends[@]}"; do - # lose the version comparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (depends)" - done - for dep in "${makedepends[@]}"; do - # lose the version comparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (makedepends)" - done - for dep in "${optdepends[@]/:*}"; do - # lose the version comaparator, if any - depname=${dep%%[<>=]*} - [[ $depname = "$match" ]] && msg "$d (optdepends)" - done - fi -done - diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/fstabgen b/artools/0.26.1/artools/debian/artools/usr/bin/fstabgen deleted file mode 100755 index 0bff558..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/fstabgen +++ /dev/null @@ -1,529 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -shopt -s extglob - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -#{{{ filesystems - -declare -A pseudofs_types=([anon_inodefs]=1 - [autofs]=1 - [bdev]=1 - [bpf]=1 - [binfmt_misc]=1 - [cgroup]=1 - [cgroup2]=1 - [configfs]=1 - [cpuset]=1 - [debugfs]=1 - [devfs]=1 - [devpts]=1 - [devtmpfs]=1 - [dlmfs]=1 - [efivarfs]=1 - [fuse.gvfs-fuse-daemon]=1 - [fusectl]=1 - [hugetlbfs]=1 - [mqueue]=1 - [nfsd]=1 - [none]=1 - [pipefs]=1 - [proc]=1 - [pstore]=1 - [ramfs]=1 - [rootfs]=1 - [rpc_pipefs]=1 - [securityfs]=1 - [sockfs]=1 - [spufs]=1 - [sysfs]=1 - [tmpfs]=1) - -declare -A fsck_types=([cramfs]=1 - [exfat]=1 - [ext2]=1 - [ext3]=1 - [ext4]=1 - [ext4dev]=1 - [jfs]=1 - [minix]=1 - [msdos]=1 - [reiserfs]=1 - [vfat]=1 - [xfs]=1) - -#}}} - -#{{{ functions - -fstype_is_pseudofs() { - (( pseudofs_types["$1"] )) -} - -fstype_has_fsck() { - (( fsck_types["$1"] )) -} - -valid_number_of_base() { - local base=$1 len=${#2} i - - for (( i = 0; i < len; i++ )); do - { _=$(( $base#${2:i:1} )) || return 1; } 2>/dev/null - done - - return 0 -} - -mangle() { - local i chr out - - local {a..f}= {A..F}= - - for (( i = 0; i < ${#1}; i++ )); do - chr=${1:i:1} - case $chr in - [[:space:]\\]) - printf -v chr '%03o' "'$chr" - out+=\\ - ;; - esac - out+=$chr - done - - printf '%s' "$out" -} - -unmangle() { - local i chr out len=$(( ${#1} - 4 )) - - local {a..f}= {A..F}= - - for (( i = 0; i < len; i++ )); do - chr=${1:i:1} - case $chr in - \\) - if valid_number_of_base 8 "${1:i+1:3}" || - valid_number_of_base 16 "${1:i+1:3}"; then - printf -v chr '%b' "${1:i:4}" - (( i += 3 )) - fi - ;; - esac - out+=$chr - done - - printf '%s' "$out${1:i}" -} - -dm_name_for_devnode() { - read -r dm_name <"/sys/class/block/${1#/dev/}/dm/name" - if [[ $dm_name ]]; then - printf '/dev/mapper/%s' "$dm_name" - else - # don't leave the caller hanging, just print the original name - # along with the failure. - print '%s' "$1" - error 'Failed to resolve device mapper name for: %s' "$1" - fi -} - -optstring_match_option() { - local candidate pat patterns - - IFS=, read -ra patterns <<<"$1" - for pat in "${patterns[@]}"; do - if [[ $pat = *=* ]]; then - # "key=val" will only ever match "key=val" - candidate=$2 - else - # "key" will match "key", but also "key=anyval" - candidate=${2%%=*} - fi - - [[ $pat = "$candidate" ]] && return 0 - done - - return 1 -} - -optstring_remove_option() { - local o options_ remove=$2 IFS=, - - read -ra options_ <<<"${!1}" - - for o in "${!options_[@]}"; do - optstring_match_option "$remove" "${options_[o]}" && unset 'options_[o]' - done - - declare -g "$1=${options_[*]}" -} - -optstring_normalize() { - local o options_ norm IFS=, - - read -ra options_ <<<"${!1}" - - # remove empty fields - for o in "${options_[@]}"; do - [[ $o ]] && norm+=("$o") - done - - # avoid empty strings, reset to "defaults" - declare -g "$1=${norm[*]:-defaults}" -} - -optstring_append_option() { - if ! optstring_has_option "$1" "$2"; then - declare -g "$1=${!1},$2" - fi - - optstring_normalize "$1" -} - -optstring_prepend_option() { - if ! optstring_has_option "$1" "$2"; then - declare -g "$1=$2,${!1}" - fi - - optstring_normalize "$1" -} - -optstring_get_option() { - local opts o - - IFS=, read -ra opts <<<"${!1}" - for o in "${opts[@]}"; do - if optstring_match_option "$2" "$o"; then - declare -g "$o" - return 0 - fi - done - - return 1 -} - -optstring_has_option() { - local "${2%%=*}" - - optstring_get_option "$1" "$2" -} - -write_source() { - local src=$1 spec label uuid comment=() - - label=$(lsblk -rno LABEL "$1" 2>/dev/null) - uuid=$(lsblk -rno UUID "$1" 2>/dev/null) - - # bind mounts do not have a UUID! - - case $bytag in - '') - [[ $uuid ]] && comment=("UUID=$uuid") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - ;; - LABEL) - spec=$label - [[ $uuid ]] && comment=("$src" "UUID=$uuid") - ;; - UUID) - spec=$uuid - comment=("$src") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - ;; - *) - [[ $uuid ]] && comment=("$1" "UUID=$uuid") - [[ $label ]] && comment+=("LABEL=$(mangle "$label")") - [[ $bytag ]] && spec=$(lsblk -rno "$bytag" "$1" 2>/dev/null) - ;; - esac - - [[ -n "${comment[*]}" ]] && printf '# %s\n' "${comment[*]}" - - if [[ $spec ]]; then - printf '%-20s' "$bytag=$(mangle "$spec")" - else - printf '%-20s' "$(mangle "$src")" - fi -} - -optstring_apply_quirks() { - local varname="$1" fstype="$2" - - # SELinux displays a 'seclabel' option in /proc/self/mountinfo. We can't know - # if the system we're generating the fstab for has any support for SELinux (as - # one might install Arch from a Fedora environment), so let's remove it. - optstring_remove_option "$varname" seclabel - - # Prune 'relatime' option for any pseudofs. This seems to be a rampant - # default which the kernel often exports even if the underlying filesystem - # doesn't support it. Example: https://bugs.archlinux.org/task/54554. - if awk -v fstype="$fstype" '$1 == fstype { exit 1 }' /proc/filesystems; then - optstring_remove_option "$varname" relatime - fi - - case $fstype in - f2fs) - # These are Kconfig options for f2fs. Kernels supporting the options will - # only provide the negative versions of these (e.g. noacl), and vice versa - # for kernels without support. - optstring_remove_option "$varname" noacl,acl,nouser_xattr,user_xattr - ;; - vfat) - # Before Linux v3.8, "cp" is prepended to the value of the codepage. - if optstring_get_option "$varname" codepage && [[ "$codepage" = cp* ]]; then - optstring_remove_option "$varname" codepage - optstring_append_option "$varname" "codepage=${codepage#cp}" - fi - ;; - esac -} - -#}}} - -usage() { - cat </dev/null; then - # this is root. we can't possibly have more than one... - pass=1 foundroot=1 - fi - - # if there's no fsck tool available, then only pass=0 makes sense. - if ! fstype_has_fsck "$fstype"; then - pass=0 - fi - - if [[ $fsroot != / && $fstype != btrfs ]]; then - # it's a bind mount - src=$(findmnt -funcevo TARGET "$src")$fsroot - if [[ $src -ef $target ]]; then - # hrmm, this is weird. we're probably looking at a file or directory - # that was bound into a chroot from the host machine. Ignore it, - # because this won't actually be a valid mount. Worst case, the user - # just re-adds it. - continue - fi - fstype=none - opts+=,bind - pass=0 - fi - - # filesystem quirks - case $fstype in - fuseblk) - # well-behaved FUSE filesystems will report themselves as fuse.$fstype. - # this is probably NTFS-3g, but let's just make sure. - if ! newtype=$(lsblk -no FSTYPE "$src") || [[ -z $newtype ]]; then - # avoid blanking out fstype, leading to an invalid fstab - error 'Failed to derive real filesystem type for FUSE device on %s' "$target" - else - fstype=$newtype - fi - ;; - esac - - optstring_apply_quirks "opts" "$fstype" - - # write one line - write_source "$src" - printf '\t%-10s' "/$(mangle "${target#/}")" "$fstype" "$opts" - printf '\t%s %s' "$dump" "$pass" - printf '\n\n' -done - -# handle swaps devices -{ - # ignore header - read -r - - while read -r device type _ _ prio; do - options=defaults - if (( prio >= 0 )); then - options+=,pri=$prio - fi - - # skip files marked deleted by the kernel - [[ $device = *'\040(deleted)' ]] && continue - - if [[ $type = file ]]; then - printf '%-20s' "${device#${root%/}}" - elif [[ $device = /dev/dm-+([0-9]) ]]; then - # device mapper doesn't allow characters we need to worry - # about being mangled, and it does the escaping of dashes - # for us in sysfs. - write_source "$(dm_name_for_devnode "$device")" - else - write_source "$(unmangle "$device")" - fi - - printf '\t%-10s\t%-10s\t%-10s\t0 0\n\n' 'none' 'swap' "$options" - done -} ${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ common functions - -get_compliant_name(){ - local gitname="$1" - case "$gitname" in - *+) gitname=${gitname//+/plus} - esac - echo "$gitname" -} - -get_pkg_org(){ - local pkg="$1" org sub - case ${pkg} in - ruby-*) org="packagesRuby" ;; - perl-*) org="packagesPerl" ;; - python-*|python2-*) org="packagesPython" ;; - *) sub=${pkg:0:1}; org="packages${sub^^}" ;; - esac - echo "$org" -} - -api_put() { - curl -s -X PUT "$@" -} - -api_delete() { - curl -s -X DELETE "$@" -} - -api_post() { - curl -s -X POST "$@" -} - -#}}} - - -#{{{ functions - -create_repo() { - local name="$1" - local org="$2" - local json url - - json="{ \"auto_init\": true, \"name\":\"$name\", \"gitignores\":\"ArchLinuxPackages\", \"readme\": \"Default\" }" - - url="${GIT_URL}/api/v1/org/$org/repos?access_token=${GIT_TOKEN}" - - msg2 "Create package repo [%s] in org (%s)" "$name" "$org" - - api_post "$url" -H "accept: application/json" \ - -H "content-type: application/json" \ - -d "$json" -} - -transfer_repo() { - local name="$1" - local old_owner="$2" - local new_owner="landfill" json url - local json url - - json="{ \"new_owner\": \"$new_owner\", \"team_ids\": []}" - - url="${GIT_URL}/api/v1/repos/$old_owner/$name/transfer?access_token=${GIT_TOKEN}" - - msg2 "Transfer package repo [%s] in org (%s)" "$name" "$new_owner" - - api_post "$url" -H "accept: application/json" \ - -H "Content-Type: application/json" \ - -d "$json" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [options]" - echo ' -r Repo name' - echo ' -c Create git repo' - echo ' -t Transfer git repo to landfill org' - echo ' -h This help' - echo '' - echo '' - exit "$1" -} - -create=false -transfer=false - -opts='r:cth' - -while getopts "${opts}" arg; do - case "${arg}" in - r) repo="$OPTARG" ;; - c) create=true ;; - t) transfer=true ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -org=$(get_pkg_org "${repo}") - -${create} && create_repo "${repo}" "${org}" - -${transfer} && transfer_repo "${repo}" "${org}" diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/gnome-unstablepkg b/artools/0.26.1/artools/debian/artools/usr/bin/gnome-unstablepkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/gnome-unstablepkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/kde-unstablepkg b/artools/0.26.1/artools/debian/artools/usr/bin/kde-unstablepkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/kde-unstablepkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/lddd b/artools/0.26.1/artools/debian/artools/usr/bin/lddd deleted file mode 100755 index 8460493..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/lddd +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -ifs=$IFS -IFS="${IFS}:" - -libdirs="/lib /usr/lib /usr/local/lib $(cat /etc/ld.so.conf.d/*)" -extras= - -TEMPDIR=$(mktemp -d --tmpdir lddd-script.XXXX) - -msg 'Go out and drink some tea, this will take a while :) ...' -# Check ELF binaries in the PATH and specified dir trees. -for tree in $PATH $libdirs $extras; do - msg2 "DIR %s" "$tree" - - # Get list of files in tree. - files=$(find "$tree" -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! \ - -name '*.rb' ! -name '*.ko' ! -name '*.pc' ! -name '*.enc' ! -name '*.cf' ! -name '*.def' ! -name '*.rules' ! -name \ - '*.cmi' ! -name '*.mli' ! -name '*.ml' ! -name '*.cma' ! -name '*.cmx' ! -name '*.cmxa' ! -name '*.pod' ! -name '*.pm' \ - ! -name '*.pl' ! -name '*.al' ! -name '*.tcl' ! -name '*.bs' ! -name '*.o' ! -name '*.png' ! -name '*.gif' ! -name '*.cmo' \ - ! -name '*.cgi' ! -name '*.defs' ! -name '*.conf' ! -name '*_LOCALE' ! -name 'Compose' ! -name '*_OBJS' ! -name '*.msg' ! \ - -name '*.mcopclass' ! -name '*.mcoptype') - IFS=$ifs - for i in $files; do - if (( $(file "$i" | grep -c 'ELF') != 0 )); then - # Is an ELF binary. - if (( $(ldd "$i" 2>/dev/null | grep -c 'not found') != 0 )); then - # Missing lib. - echo "$i:" >> "$TEMPDIR/raw.txt" - ldd "$i" 2>/dev/null | grep 'not found' >> "$TEMPDIR/raw.txt" - fi - fi - done -done -grep '^/' "$TEMPDIR/raw.txt" | sed -e 's/://g' >> "$TEMPDIR/affected-files.txt" -# invoke pacman -while read -r i; do - pacman -Qo "$i" | awk '{print $4,$5}' >> "$TEMPDIR/pacman.txt" -done < "$TEMPDIR/affected-files.txt" -# clean list -sort -u "$TEMPDIR/pacman.txt" >> "$TEMPDIR/possible-rebuilds.txt" - -msg "Files saved to %s" "$TEMPDIR" diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/links-add b/artools/0.26.1/artools/debian/artools/usr/bin/links-add deleted file mode 100755 index 565f10c..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/links-add +++ /dev/null @@ -1,609 +0,0 @@ -#!/bin/bash -# -# links-add - add a package to a given repo database file -# links-remove - remove a package entry from a given repo database file -# -# Copyright (c) 2006-2018 Pacman Development Team -# Copyright (c) 2019 artoo@artixlinux.org -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - - -shopt -s extglob - -declare -r REPO_DB_NAME="links" - -QUIET=0 -ONLYADDNEW=0 -SIGN=0 -KEY=0 -VERIFY=0 -REPO_DB_FILE= -REPO_DB_PREFIX= -REPO_DB_SUFFIX= -LOCKFILE= -CLEAN_LOCK=0 - -# ensure we have a sane umask set -umask 0022 - -# print usage instructions -usage() { - cmd=${0##*/} - printf -- "%s \n\n" "$cmd" - if [[ $cmd == "links-add" ]] ; then - printf -- "Usage: links-add [options] ...\n" - printf -- "\n" - printf -- "\ -links-add will update a package database by reading a package file.\n\ -Multiple packages to add can be specified on the command line.\n" - printf -- "\n" - printf -- "Options:\n" - printf -- " -n, --new only add packages that are not already in the database\n" - elif [[ $cmd == "links-remove" ]] ; then - printf -- "Usage: links-remove [options] ...\n" - printf -- "\n" - printf -- "\ -links-remove will update a package database by removing the package name\n\ -specified on the command line from the given repo database. Multiple\n\ -packages to remove can be specified on the command line.\n" - printf -- "\n" - printf -- "Options:\n" - else - printf -- "Please move along, there is nothing to see here.\n" - return - fi - printf -- " --nocolor turn off color in output\n" - printf -- " -q, --quiet minimize output\n" - printf -- " -s, --sign sign database with GnuPG after update\n" - printf -- " -k, --key use the specified key to sign the database\n" - printf -- " -v, --verify verify database's signature before update\n" - printf -- "\n\ -See %s(8) for more details and descriptions of the available options.\n" "$cmd" - printf "\n" - if [[ $cmd == "links-add" ]] ; then - printf -- "Example: links-add /path/to/repo.links.tar.xz pacman-5.1.3-1-x86_64.pkg.tar.xz\n" - elif [[ $cmd == "links-remove" ]] ; then - printf -- "Example: links-remove /path/to/repo.links.tar.xz kernel26\n" - fi -} - -find_pkgentry() { - local pkgname=$1 - local pkgentry - - for pkgentry in "$tmpdir/${REPO_DB_NAME}/$pkgname"*; do - name=${pkgentry##*/} - if [[ ${name%-*-*} = "$pkgname" ]]; then - echo "$pkgentry" - return 0 - fi - done - return 1 -} - -check_gpg() { - if ! type -p gpg >/dev/null; then - error "Cannot find the gpg binary! Is GnuPG installed?" - exit 1 # $E_MISSING_PROGRAM - fi - - if (( ! VERIFY )); then - if ! gpg --list-secret-key ${GPGKEY:+"$GPGKEY"} &>/dev/null; then - if [[ -n "$GPGKEY" ]]; then - error "The key ${GPGKEY} does not exist in your keyring." - elif (( ! KEY )); then - error "There is no key in your keyring." - fi - exit 1 - fi - fi -} - -# sign the package database once repackaged -create_signature() { - (( ! SIGN )) && return - local dbfile=$1 - local ret=0 - msg "Signing database '%s'..." "${dbfile##*/.tmp.}" - - local SIGNWITHKEY=() - if [[ -n $GPGKEY ]]; then - SIGNWITHKEY=(-u "${GPGKEY}") - fi - gpg --detach-sign --use-agent --no-armor "${SIGNWITHKEY[@]}" "$dbfile" &>/dev/null || ret=$? - - if (( ! ret )); then - msg2 "Created signature file '%s'" "${dbfile##*/.tmp.}.sig" - else - warning "Failed to sign package database file '%s'" "${dbfile##*/.tmp.}" - fi -} - -# verify the existing package database signature -verify_signature() { - (( ! VERIFY )) && return - local dbfile=$1 - local ret=0 - msg "Verifying database signature..." - - if [[ ! -f $dbfile.sig ]]; then - warning "No existing signature found, skipping verification." - return - fi - gpg --verify "$dbfile.sig" || ret=$? - if (( ! ret )); then - msg2 "Database signature file verified." - else - error "Database signature was NOT valid!" - exit 1 - fi -} - -verify_repo_extension() { - local junk=() - if [[ $1 = *.links.tar* ]] && get_compression_command "$1" junk; then - return 0 - fi - - error "'%s' does not have a valid database archive extension." "$1" - exit 1 -} - -# write an entry to the pacman database -# arg1 - path to package -db_write_entry() { - # blank out all variables - local pkgfile=$1 - - local pkgname pkgver - - # read info from the zipped package - local line var val - while read -r line; do - [[ ${line:0:1} = '#' ]] && continue - IFS=' =' read -r var val < <(printf '%s\n' "$line") - # normalize whitespace with an extglob - declare "$var=${val//+([[:space:]])/ }" - - done< <(bsdtar -xOqf "$pkgfile" .PKGINFO) - - # ensure $pkgname and $pkgver variables were found - if [[ -z $pkgname || -z $pkgver ]]; then - error "Invalid package file '%s'." "$pkgfile" - return 1 - fi - - if [[ -d $tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver ]]; then - warning "An entry for '%s' already existed" "$pkgname-$pkgver" - if (( ONLYADDNEW )); then - return 0 - fi - fi - - # remove an existing entry if it exists, ignore failures - db_remove_entry "$pkgname" - - local tmppkg=$tmpdir/pkg/$pkgname-$pkgver - - mkdir "$tmppkg" - - bsdtar -xof "$pkgfile" -C "$tmppkg" --include={opt,{,usr/}{lib{,32},{s,}bin}}'/*' 2>/dev/null - - pushd "$tmpdir/${REPO_DB_NAME}" >/dev/null - mkdir "$pkgname-$pkgver" - pushd "$pkgname-$pkgver" >/dev/null - - # create links entry - msg2 "Creating '%s' db entry..." "${REPO_DB_NAME}" - - local linksentry=$tmpdir/${REPO_DB_NAME}/$pkgname-$pkgver/${REPO_DB_NAME} - local files=$(find "$tmppkg" -type f ! -ipath "*/Documentation/*") - - for f in ${files}; do - readelf -d "$f" 2> /dev/null | sed -nr 's/.*Shared library: \[(.*)\].*/\1/p' - done | sort -u > "$linksentry" - - popd >/dev/null - popd >/dev/null - - return 0 -} - -# remove existing entries from the DB -# arg1 - package name -db_remove_entry() { - local pkgname=$1 - local notfound=1 - local pkgentry - pkgentry=$(find_pkgentry "$pkgname") - while [[ -n $pkgentry ]]; do - notfound=0 - - msg2 "Removing existing entry '%s'..." \ - "${pkgentry##*/}" - rm -rf "$pkgentry" - - # remove entries in "links" database - local linksentry - linksentry=$(echo "$pkgentry" | sed 's/\(.*\)\/db\//\1\/links\//') - rm -rf "$linksentry" - - pkgentry=$(find_pkgentry "$pkgname") - done - return $notfound -} - -prepare_repo_db() { - local repodir dbfile - - # ensure the path to the DB exists; $LOCKFILE is always an absolute path - repodir=${LOCKFILE%/*}/ - - if [[ ! -d $repodir ]]; then - error "%s does not exist or is not a directory." "$repodir" - exit 1 - fi - - # check lock file - if ( set -o noclobber; echo "$$" > "$LOCKFILE") 2> /dev/null; then - CLEAN_LOCK=1 - else - error "Failed to acquire lockfile: %s." "$LOCKFILE" - [[ -f $LOCKFILE ]] && error "Held by process %s" "$(cat "$LOCKFILE")" - exit 1 - fi - - dbfile=${repodir}/$REPO_DB_PREFIX.${REPO_DB_NAME}.$REPO_DB_SUFFIX - - if [[ -f $dbfile ]]; then - # there are two situations we can have here: - # a DB with some entries, or a DB with no contents at all. - if ! bsdtar -tqf "$dbfile" '*/links' >/dev/null 2>&1; then - # check empty case - if [[ -n $(bsdtar -tqf "$dbfile" '*' 2>/dev/null) ]]; then - error "Repository file '%s' is not a proper links database." "$dbfile" - exit 1 - fi - fi - verify_signature "$dbfile" - msg "Extracting %s to a temporary location..." "${dbfile##*/}" - bsdtar -xf "$dbfile" -C "$tmpdir/${REPO_DB_NAME}" - else - case $cmd in - links-remove) - # only a missing "db" database is currently an error - # TODO: remove if statement - if [[ ${REPO_DB_NAME} == "links" ]]; then - error "Repository file '%s' was not found." "$dbfile" - exit 1 - fi - ;; - links-add) - # check if the file can be created (write permission, directory existence, etc) - if ! touch "$dbfile"; then - error "Repository file '%s' could not be created." "$dbfile" - exit 1 - fi - rm -f "$dbfile" - ;; - esac - fi -} - -add() { - if [[ ! -f $1 ]]; then - error "File '%s' not found." "$1" - return 1 - fi - - pkgfile=$1 - if ! bsdtar -tqf "$pkgfile" .PKGINFO >/dev/null 2>&1; then - error "'%s' is not a package file, skipping" "$pkgfile" - return 1 - fi - - msg "Adding package '%s'" "$pkgfile" - - db_write_entry "$pkgfile" -} - -remove() { - pkgname=$1 - msg "Searching for package '%s'..." "$pkgname" - - if ! db_remove_entry "$pkgname"; then - error "Package matching '%s' not found." "$pkgname" - return 1 - fi - - return 0 -} - -rotate_db() { - dirname=${LOCKFILE%/*} - - pushd "$dirname" >/dev/null - - filename=${REPO_DB_PREFIX}.${REPO_DB_NAME}.${REPO_DB_SUFFIX} - tempname=$dirname/.tmp.$filename - - # hardlink or move the previous version of the database and signature to .old - # extension as a backup measure - if [[ -f $filename ]]; then - ln -f "$filename" "$filename.old" 2>/dev/null || \ - mv -f "$filename" "$filename.old" - - if [[ -f $filename.sig ]]; then - ln -f "$filename.sig" "$filename.old.sig" 2>/dev/null || \ - mv -f "$filename.sig" "$filename.old.sig" - else - rm -f "$filename.old.sig" - fi - fi - - # rotate the newly-created database and signature into place - mv "$tempname" "$filename" - if [[ -f $tempname.sig ]]; then - mv "$tempname.sig" "$filename.sig" - fi - - dblink=${filename%.tar*} - rm -f "$dblink" "$dblink.sig" - ln -s "$filename" "$dblink" 2>/dev/null || \ - ln "$filename" "$dblink" 2>/dev/null || \ - cp "$filename" "$dblink" - if [[ -f "$filename.sig" ]]; then - ln -s "$filename.sig" "$dblink.sig" 2>/dev/null || \ - ln "$filename.sig" "$dblink.sig" 2>/dev/null || \ - cp "$filename.sig" "$dblink.sig" - fi - - popd >/dev/null -} - -create_db() { - # $LOCKFILE is already guaranteed to be absolute so this is safe - dirname=${LOCKFILE%/*} - - filename=${REPO_DB_PREFIX}.${REPO_DB_NAME}.${REPO_DB_SUFFIX} - # this ensures we create it on the same filesystem, making moves atomic - tempname=$dirname/.tmp.$filename - - pushd "$tmpdir/${REPO_DB_NAME}" >/dev/null - local files=(*) - if [[ ${files[*]} = '*' ]]; then - # we have no packages remaining? zip up some emptyness - warning "No packages remain, creating empty database." - files=(-T /dev/null) - fi - bsdtar -cf - "${files[@]}" | compress_as "$filename" > "$tempname" - popd >/dev/null - - create_signature "$tempname" -} - -trap_exit() { - # unhook all traps to avoid race conditions - trap '' EXIT TERM HUP QUIT INT ERR - - echo - error "$@" - clean_up 1 -} - -clean_up() { - local exit_code=${1:-$?} - - # unhook all traps to avoid race conditions - trap '' EXIT TERM HUP QUIT INT ERR - - [[ -d $tmpdir ]] && rm -rf "$tmpdir" - (( CLEAN_LOCK )) && [[ -f $LOCKFILE ]] && rm -f "$LOCKFILE" - - exit "$exit_code" -} - -# PROGRAM START -case $1 in - -h|--help) usage; exit 0;; -esac - -# figure out what program we are -cmd=${0##*/} - -if [[ $cmd != "links-add" && $cmd != "links-remove" ]]; then - error "Invalid command name '%s' specified." "$cmd" - exit 1 -fi - -tmpdir=$(mktemp -d "${TMPDIR:-/tmp}/repo-tools.XXXXXXXXXX") || (\ - error "Cannot create temp directory for database building."; \ - exit 1) - -for repo in "pkg" "${REPO_DB_NAME}"; do - mkdir "$tmpdir/$repo" -done - -trap 'clean_up' EXIT -for signal in TERM HUP QUIT; do - trap "trap_exit \"$(gettext "%s signal caught. Exiting...")\" \"$signal\"" "$signal" -done -trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT -trap 'trap_exit "$(gettext "An unknown error has occurred. Exiting...")"' ERR - -declare -a args -# parse arguments -while (( $# )); do - case $1 in - -q|--quiet) QUIET=1 ;; - -n|--new) ONLYADDNEW=1 ;; - -s|--sign) SIGN=1 ;; - -k|--key) KEY=1 ; shift; GPGKEY=$1 ;; - -v|--verify) VERIFY=1 ;; - *) args+=("$1") ;; - esac - shift -done - -REPO_DB_FILE=${args[0]} -if [[ -z $REPO_DB_FILE ]]; then - usage - exit 1 -fi - -if [[ $REPO_DB_FILE == /* ]]; then - LOCKFILE=$REPO_DB_FILE.lck -else - LOCKFILE=$PWD/$REPO_DB_FILE.lck -fi - -verify_repo_extension "$REPO_DB_FILE" - -REPO_DB_PREFIX=${REPO_DB_FILE##*/} -REPO_DB_PREFIX=${REPO_DB_PREFIX%.links.*} -REPO_DB_SUFFIX=${REPO_DB_FILE##*.links.} - -if (( SIGN || VERIFY )); then - check_gpg -fi - -if (( VERIFY && ${#args[@]} == 1 )); then - dbfile=${repodir}/$REPO_DB_PREFIX.${REPO_DB_NAME}.$REPO_DB_SUFFIX - - if [[ -f $dbfile ]]; then - verify_signature "$dbfile" - fi - exit 0 -fi - -prepare_repo_db - -fail=0 -for arg in "${args[@]:1}"; do - case $cmd in - links-add) add "$arg" ;; - links-remove) remove "$arg" ;; - esac || fail=1 -done - -# if the whole operation was a success, re-zip and rotate databases -if (( !fail )); then - msg "Creating updated database file '%s'" "$REPO_DB_FILE" - create_db - rotate_db -else - msg "No packages modified, nothing to do." - exit 1 -fi - -exit 0 diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/links-remove b/artools/0.26.1/artools/debian/artools/usr/bin/links-remove deleted file mode 120000 index c3c8f21..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/links-remove +++ /dev/null @@ -1 +0,0 @@ -links-add \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/mkchroot b/artools/0.26.1/artools/debian/artools/usr/bin/mkchroot deleted file mode 100755 index 2a2a0b1..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/mkchroot +++ /dev/null @@ -1,255 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - -#!/hint/bash - -CHROOTVERSION=0.10 - - -working_dir='' -umode='' - -files=() -chroot_args=() - -usage() { - echo "Usage: ${0##*/} [options] working-dir package-list..." - echo ' options:' - echo ' -U Use pacman -U to install packages' - echo ' -C Location of a pacman config file' - echo ' -M Location of a makepkg config file' - echo ' -c Set pacman cache' - echo ' -f Copy file from the host to the chroot' - echo ' -s Do not run setarch' - echo ' -h This message' - exit 1 -} - -opts='hUC:M:c:f:s' - -while getopts ${opts} arg; do - case "${arg}" in - U) umode=U ;; - C) pacman_conf="$OPTARG" ;; - M) makepkg_conf="$OPTARG" ;; - c) cache_dir="$OPTARG" ;; - f) files+=("$OPTARG") ;; - s) nosetarch=1 ;; - h|?) usage ;; - *) error "invalid argument '%s'" "$arg"; usage ;; - esac - if [[ $arg != U ]]; then - chroot_args+=("-$arg") - [[ -v OPTARG ]] && chroot_args+=("$OPTARG") - fi -done -shift $(( OPTIND - 1 )) - -(( $# < 2 )) && die 'You must specify a directory and one or more packages.' - -check_root - -working_dir="$(readlink -f "$1")" -shift 1 - -[[ -z $working_dir ]] && die 'Please specify a working directory.' - -if (( ${#cache_dirs[@]} == 0 )); then - mapfile -t cache_dirs < <(pacman-conf CacheDir) -fi - -umask 0022 - -[[ -e $working_dir ]] && die "Working directory '%s' already exists" "$working_dir" - -mkdir -p "$working_dir" - -[[ ! -d $working_dir ]] && mkdir -p "$working_dir" - -lock 9 "${working_dir}.lock" "Locking chroot" - -if is_btrfs "$working_dir"; then - rmdir "$working_dir" - if ! btrfs subvolume create "$working_dir"; then - die "Couldn't create subvolume for '%s'" "$working_dir" - fi - chmod 0755 "$working_dir" -fi - -for f in "${files[@]}"; do - mkdir -p "$(dirname "$working_dir$f")" - cp "$f" "$working_dir$f" -done - -basestrap -${umode}Mc ${pacman_conf:+-C "$pacman_conf"} "$working_dir" \ - "${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages' - -printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$working_dir/etc/locale.gen" -echo 'LANG=en_US.UTF-8' > "$working_dir/etc/locale.conf" -# echo 'KEYMAP=en' > "$working_dir/etc/vconsole.conf" -echo "${CHROOTVERSION}" > "$working_dir/.artools" - -dbus-uuidgen --ensure="$working_dir"/etc/machine-id - -exec chroot-run \ - "${chroot_args[@]}" \ - "$working_dir" locale-gen diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/mkchrootpkg b/artools/0.26.1/artools/debian/artools/usr/bin/mkchrootpkg deleted file mode 100755 index 9ca9d2f..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/mkchrootpkg +++ /dev/null @@ -1,578 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} - - -export BUILDTOOL=artools-pkg -export BUILDTOOLVER=0.26 - -shopt -s nullglob - -default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg) -makepkg_args=("${default_makepkg_args[@]}") -verifysource_args=() -chrootdir= -passeddir= -makepkg_user= -declare -a install_pkgs -declare -i ret=0 - -keepbuilddir=0 -update_first=0 -clean_first=0 -run_namcap=0 -run_checkpkg=0 -temp_chroot=0 - -bindmounts=() - -copy=$USER -[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER -[[ -z "$copy" || $copy = root ]] && copy=copy -src_owner=${SUDO_USER:-$USER} - -usage() { - echo "Usage: ${0##*/} [options] -r [--] [makepkg args]" - echo ' Run this script in a PKGBUILD dir to build a package inside a' - echo ' clean chroot. Arguments passed to this script after the' - echo ' end-of-options marker (--) will be passed to makepkg.' - echo '' - echo ' The chroot dir consists of the following directories:' - echo ' /{root, copy} but only "root" is required' - echo ' by default. The working copy will be created as needed' - echo '' - echo 'The chroot "root" directory must be created via the following' - echo 'command:' - echo ' mkchroot /root base-devel' - echo '' - echo 'This script reads {SRC,SRCPKG,PKG,LOG}DEST, MAKEFLAGS and PACKAGER' - echo 'from makepkg.conf(5), if those variables are not part of the' - echo 'environment.' - echo '' - echo "Default makepkg args: ${default_makepkg_args[*]}" - echo '' - echo 'Flags:' - echo '-h This help' - echo '-c Clean the chroot before building' - echo '-d Bind directory into build chroot as read-write' - echo '-D Bind directory into build chroot as read-only' - echo '-u Update the working copy of the chroot before building' - echo ' This is useful for rebuilds without dirtying the pristine' - echo ' chroot' - echo '-r The chroot dir to use' - echo '-I Install a package into the working copy of the chroot' - echo '-l The directory to use as the working copy of the chroot' - echo ' Useful for maintaining multiple copies' - echo " Default: $copy" - echo '-n Run namcap on the package' - echo '-C Run checkpkg on the package' - echo '-N Disable check() function' - echo '-T Build in a temporary directory' - echo '-U Run makepkg as a specified user' - exit 1 -} - -# {{{ functions - -# Usage: sync_chroot $chrootdir $copydir [$copy] -sync_chroot() { - local chrootdir=$1 - local copydir=$2 - local copy=${3:-$2} - - if [[ "$chrootdir/root" -ef "$copydir" ]]; then - error 'Cannot sync copy with itself: %s' "$copydir" - return 1 - fi - - # Get a read lock on the root chroot to make - # sure we don't clone a half-updated chroot - slock 8 "$chrootdir/root.lock" \ - "Locking clean chroot [%s]" "$chrootdir/root" - - stat_busy "Synchronizing chroot copy [%s] -> [%s]" "$chrootdir/root" "$copy" - if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then - subvolume_delete_recursive "$copydir" || - die "Unable to delete subvolume %s" "$copydir" - btrfs subvolume snapshot "$chrootdir/root" "$copydir" >/dev/null || - die "Unable to create subvolume %s" "$copydir" - else - mkdir -p "$copydir" - rsync -a --delete -q -W -x "$chrootdir/root/" "$copydir" - fi - stat_done - - # Drop the read lock again - lock_close 8 - - # Update mtime - touch "$copydir" -} - -# Usage: delete_chroot $copydir [$copy] -delete_chroot() { - local copydir=$1 - local copy=${1:-$2} - - stat_busy "Removing chroot copy [%s]" "$copy" - if is_subvolume "$copydir" && ! mountpoint -q "$copydir"; then - subvolume_delete_recursive "$copydir" || - die "Unable to delete subvolume %s" "$copydir" - else - # avoid change of filesystem in case of an umount failure - rm --recursive --force --one-file-system "$copydir" || - die "Unable to delete %s" "$copydir" - fi - - # remove lock file - rm -f "$copydir.lock" - stat_done -} - -install_packages() { - local -a pkgnames - local ret - - pkgnames=("${install_pkgs[@]##*/}") - - cp -- "${install_pkgs[@]}" "$copydir/root/" - chroot-run \ - -b "${bindmounts[@]}" \ - "$copydir" \ - bash -c 'yes y | pacman -U -- "$@"' -bash "${pkgnames[@]/#//root/}" - ret=$? - rm -- "${pkgnames[@]/#/$copydir/root/}" - - return $ret -} - -prepare_chroot() { - (( keepbuilddir )) || rm -rf "$copydir/build" - - local builduser_uid builduser_gid - builduser_uid="$(id -u "$makepkg_user")" - builduser_gid="$(id -g "$makepkg_user")" - local install="install -o $builduser_uid -g $builduser_gid" - local x - - # We can't use useradd without chrooting, otherwise it invokes PAM modules - # which we might not be able to load (i.e. when building i686 packages on - # an x86_64 host). - sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,shadow,group} - printf >>"$copydir/etc/group" 'builduser:x:%d:\n' "$builduser_gid" - printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' "$builduser_uid" "$builduser_gid" - printf >>"$copydir/etc/shadow" 'builduser:!!:%d::::::\n' "$(( $(date -u +%s) / 86400 ))" - - $install -d "$copydir"/{build,startdir,{pkg,srcpkg,src,log}dest} - - sed -e '/^MAKEFLAGS=/d' -e '/^PACKAGER=/d' -i "$copydir/etc/makepkg.conf" - for x in BUILDDIR=/build PKGDEST=/pkgdest SRCPKGDEST=/srcpkgdest SRCDEST=/srcdest LOGDEST=/logdest \ - "MAKEFLAGS='${MAKEFLAGS:-}'" "PACKAGER='${PACKAGER:-}'" - do - grep -q "^$x" "$copydir/etc/makepkg.conf" && continue - echo "$x" >>"$copydir/etc/makepkg.conf" - done - - cat > "$copydir/etc/sudoers.d/builduser-pacman" </dev/null || true - declare -p BUILDTOOL 2>/dev/null - declare -p BUILDTOOLVER 2>/dev/null - printf '_chrootbuild "$@" || exit\n' - - if (( run_namcap )); then - declare -f _chrootnamcap - printf '_chrootnamcap || exit\n' - fi - } >"$copydir/chrootbuild" - chmod +x "$copydir/chrootbuild" -} - -# These functions aren't run in makechrootpkg, -# so no global variables -_chrootbuild() { - # No coredumps - ulimit -c 0 - - . /etc/locale.conf - - # shellcheck source=/dev/null - . /etc/profile - - # Beware, there are some stupid arbitrary rules on how you can - # use "$" in arguments to commands with "sudo -i". ${foo} or - # ${1} is OK, but $foo or $1 isn't. - # https://bugzilla.sudo.ws/show_bug.cgi?id=765 - sudo --preserve-env=SOURCE_DATE_EPOCH \ - -preserve-env=BUILDTOOL \ - --preserve-env=BUILDTOOLVER \ - -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" - ret=$? - case $ret in - 0|14) - return 0;; - *) - return $ret;; - esac -} - -_chrootnamcap() { - pacman -S --needed --noconfirm namcap - for pkgfile in /startdir/PKGBUILD /pkgdest/*; do - echo "Checking ${pkgfile##*/}" - sudo -u builduser namcap "$pkgfile" 2>&1 | tee "/logdest/${pkgfile##*/}-namcap.log" - done -} - -download_sources() { - setup_workdir - chown "$makepkg_user:" "$WORKDIR" - - # Ensure sources are downloaded - sudo -u "$makepkg_user" --preserve-env=GNUPGHOME,SSH_AUTH_SOCK \ - env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \ - makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" || - die "Could not download sources." -} - -move_logfiles() { - local l - for l in "$copydir"/logdest/*; do - [[ $l == */logpipe.* ]] && continue - chown "$src_owner" "$l" - mv "$l" "$LOGDEST" - done -} - -move_products() { - local pkgfile - for pkgfile in "$copydir"/pkgdest/*; do - chown "$src_owner" "$pkgfile" - mv "$pkgfile" "$PKGDEST" - - # Fix broken symlink because of temporary chroot PKGDEST /pkgdest - if [[ "$PWD" != "$PKGDEST" && -L "$PWD/${pkgfile##*/}" ]]; then - ln -sf "$PKGDEST/${pkgfile##*/}" - fi - done - - move_logfiles - - for s in "$copydir"/srcpkgdest/*; do - chown "$src_owner" "$s" - mv "$s" "$SRCPKGDEST" - - # Fix broken symlink because of temporary chroot SRCPKGDEST /srcpkgdest - if [[ "$PWD" != "$SRCPKGDEST" && -L "$PWD/${s##*/}" ]]; then - ln -sf "$SRCPKGDEST/${s##*/}" - fi - done -} -# }}} - -opts='hcur:I:l:nNCTb:U:' - -while getopts "${opts}" arg; do - case "$arg" in - c) clean_first=1 ;; - b) bindmounts+=("$OPTARG") ;; - u) update_first=1 ;; - r) passeddir="$OPTARG" ;; - I) install_pkgs+=("$OPTARG") ;; - l) copy="$OPTARG" ;; - n) run_namcap=1; makepkg_args+=(--install) ;; - N) makepkg_args+=(--nocheck) ;; - C) run_checkpkg=1 ;; - T) temp_chroot=1; copy+="-$$" ;; - U) makepkg_user="$OPTARG" ;; - h|*) usage ;; - esac -done - -[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.' -[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' -makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} - -check_root SOURCE_DATE_EPOCH,BUILDTOOL,BUILDTOOLVER,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER - -# Canonicalize chrootdir, getting rid of trailing / -chrootdir=$(readlink -e "$passeddir") -[[ ! -d $chrootdir ]] && die "No chroot dir defined, or invalid path '%s'" "$passeddir" -[[ ! -d $chrootdir/root ]] && die "Missing chroot dir root directory. Try using: mkchroot %s/root base-devel" "$chrootdir" - -if [[ ${copy:0:1} = / ]]; then - copydir=$copy -else - copydir="$chrootdir/$copy" -fi - -# Pass all arguments after -- right to makepkg -makepkg_args+=("${@:$OPTIND}") - -# See if -R or -e was passed to makepkg -for arg in "${@:$OPTIND}"; do - case ${arg%%=*} in - --skip*|--holdver) verifysource_args+=("$arg") ;; - --repackage|--noextract) keepbuilddir=1 ;; - --*) ;; - -*R*|-*e*) keepbuilddir=1 ;; - esac -done - -umask 0022 - -ORIG_HOME=$HOME -IFS=: read -r _ _ _ _ _ HOME _ < <(getent passwd "${SUDO_USER:-$USER}") -load_makepkg_config -HOME=$ORIG_HOME - -# Use PKGBUILD directory if these don't exist -[[ -d $PKGDEST ]] || PKGDEST=$PWD -[[ -d $SRCDEST ]] || SRCDEST=$PWD -[[ -d $SRCPKGDEST ]] || SRCPKGDEST=$PWD -[[ -d $LOGDEST ]] || LOGDEST=$PWD - -# Lock the chroot we want to use. We'll keep this lock until we exit. -lock 9 "$copydir.lock" "Locking chroot copy [%s]" "$copy" - -if [[ ! -d $copydir ]] || (( clean_first )); then - sync_chroot "$chrootdir" "$copydir" "$copy" -fi - -bindmounts+=("-B:${PWD}:/startdir" "-B:${SRCDEST}:/srcdest") - -(( update_first )) && chroot-run \ - -b "${bindmounts[*]}" \ - "$copydir" \ - pacman -Syuu --noconfirm - -if [[ -n ${install_pkgs[*]:-} ]]; then - install_packages - ret=$? - # If there is no PKGBUILD we are done - [[ -f PKGBUILD ]] || exit $ret -fi - -if [[ "$(id -u "$makepkg_user")" == 0 ]]; then - error "Running makepkg as root is not allowed." - exit 1 -fi - -download_sources - -prepare_chroot - -if chroot-run \ - -b "${bindmounts[*]}" \ - "$copydir" \ - /chrootbuild "${makepkg_args[@]}" -then - mapfile -t pkgnames < <(sudo -u "$makepkg_user" bash -c 'source PKGBUILD; printf "%s\n" "${pkgname[@]}"') - move_products -else - (( ret += 1 )) - move_logfiles -fi - -(( temp_chroot )) && delete_chroot "$copydir" "$copy" - -if (( ret != 0 )); then - if (( temp_chroot )); then - die "Build failed" - else - die "Build failed, check %s/build" "$copydir" - fi -else - if (( run_checkpkg )); then - msg "Running checkpkg" - - mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ - --dbpath "$copydir"/var/lib/pacman \ - -Sddp "${pkgnames[@]}") - - if ! wait $!; then - warning "Skipped checkpkg due to missing repo packages" - exit 0 - fi - # download package files if any non-local location exists - for remotepkg in "${remotepkgs[@]}"; do - if [[ $remotepkg != file://* ]]; then - msg2 "Downloading current versions" - chroot-run "$copydir" pacman --noconfirm -Swdd "${pkgnames[@]}" - mapfile -t remotepkgs < <(pacman --config "$copydir"/etc/pacman.conf \ - --dbpath "$copydir"/var/lib/pacman \ - -Sddp "${pkgnames[@]}") - break - fi - done - msg2 "Checking packages" - sudo -u "$makepkg_user" checkpkg --rmdir --warn "${remotepkgs[@]/#file:\/\//}" - fi - true -fi diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/multilib-stagingpkg b/artools/0.26.1/artools/debian/artools/usr/bin/multilib-stagingpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/multilib-stagingpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/multilib-testingpkg b/artools/0.26.1/artools/debian/artools/usr/bin/multilib-testingpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/multilib-testingpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/multilibpkg b/artools/0.26.1/artools/debian/artools/usr/bin/multilibpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/multilibpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/pkg2yaml b/artools/0.26.1/artools/debian/artools/usr/bin/pkg2yaml deleted file mode 100755 index 4ac2927..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/pkg2yaml +++ /dev/null @@ -1,287 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ yaml - -write_yaml_header(){ - printf '%s' '---' -} - -write_empty_line(){ - printf '\n%s\n' ' ' -} - -write_yaml_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s%s: %s\n" '' "$key" "$val" -} - -write_yaml_seq(){ - local ident="$1" val="$2" - printf "\n%${ident}s- %s\n" '' "$val" -} - -write_yaml_seq_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s- %s: %s\n" '' "$key" "$val" -} - -#}}} - - -#{{{ functions - -srcyaml_write_attr(){ - local ident1="$1" ident2="$2" ident3="$3" - local attrname=$4 attrvalues=("${@:5}") - - # normalize whitespace, strip leading and trailing - attrvalues=("${attrvalues[@]//+([[:space:]])/ }") - attrvalues=("${attrvalues[@]#[[:space:]]}") - attrvalues=("${attrvalues[@]%[[:space:]]}") - - case $attrname in - pkgver|pkgrel|epoch|url|install|changelog) - for v in "${attrvalues[@]}"; do - Yaml+=$(write_yaml_map "$ident3" "$attrname" "$v") - done - ;; - *) - Yaml+=$(write_yaml_map "$ident1" "$attrname") - for v in "${attrvalues[@]}"; do - Yaml+=$(write_yaml_seq "$ident2" "$v") - done - ;; - esac -} - -pkgbuild_extract_to_yaml() { - local pkgname=$1 attrname=$2 isarray=$3 outvalue= - - if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; then - [[ -z $pkgname ]] && srcyaml_write_attr 2 4 2 "$attrname" "${outvalue[@]}" - [[ -n $pkgname ]] && srcyaml_write_attr 4 6 2 "$attrname" "${outvalue[@]}" - fi -} - -srcyaml_write_section_details() { - local attr package_arch a - local multivalued_arch_attrs=(source provides conflicts depends replaces - optdepends makedepends checkdepends) -# "${known_hash_algos[@]/%/sums}") - - for attr in "${singlevalued[@]}"; do - pkgbuild_extract_to_yaml "$1" "$attr" 0 - done - - for attr in "${multivalued[@]}"; do - pkgbuild_extract_to_yaml "$1" "$attr" 1 - done - - get_pkgbuild_attribute "$1" 'arch' 1 'package_arch' - for a in "${package_arch[@]}"; do - # 'any' is special. there's no support for, e.g. depends_any. - [[ $a = any ]] && continue - - for attr in "${multivalued_arch_attrs[@]}"; do - pkgbuild_extract_to_yaml "$1" "${attr}_$a" 1 - done - done -} - -yaml_write_global() { - local singlevalued=(pkgver pkgrel epoch url install changelog) #pkgdesc - local multivalued=(arch groups license checkdepends makedepends - depends provides conflicts replaces) - #noextract options backup optdepends - #source validpgpkeys "${known_hash_algos[@]/%/sums}") - - Yaml+=$(write_empty_line) - Yaml+=$(write_yaml_map 0 "pkgbase") - Yaml+=$(write_yaml_map 2 "name" "${pkgbase:-$pkgname}") - ${details} && srcyaml_write_section_details '' - Yaml+=$(write_empty_line) -} - -yaml_write_package() { - local singlevalued=(url install changelog) #pkgdesc - local multivalued=(arch groups license checkdepends depends - provides conflicts replaces) #options backup optdepends) - - Yaml+=$(write_yaml_map 0 "packages") - for pkg in "${pkgname[@]}"; do - Yaml+=$(write_yaml_seq_map 2 "pkgname" "$pkg") - ${details} && srcyaml_write_section_details "$pkg" - done - Yaml+=$(write_empty_line) -} - -yaml_write_fileinfo(){ - local version - version=$(get_full_version) - pkgbase=${pkgbase:-$pkgname} - Yaml+=$(write_yaml_map 0 "version" "${version:-0}") - Yaml+=$(write_empty_line) - local pkgfile - pkgfile=$(print_all_package_names) - Yaml+=$(write_yaml_map 0 "files") - for f in ${pkgfile}; do - Yaml+=$(write_yaml_seq 2 "${f##*/}") - done - Yaml+=$(write_empty_line) -} - -write_srcyaml(){ - Yaml=$(write_yaml_header) - yaml_write_global - yaml_write_package - yaml_write_fileinfo - printf '%s' "${Yaml}" -} - -#}}} - -usage() { - echo "Usage: ${0##*/} [options]" - echo " -d Don't include details" - echo ' -h This help' - echo '' - exit "$1" -} - -details=true - -opts='dh' - -while getopts "${opts}" arg; do - case "${arg}" in - d) details=false ;; - h|?) usage 0 ;; - *) echo "invalid argument '${arg}'"; usage 1 ;; - esac -done - -shift $(( OPTIND - 1 )) - -srcpath=$(readlink -f "$1") - -[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath" -package="$srcpath"/PKGBUILD; shift - -# shellcheck disable=1090 -. "${package}" - -load_makepkg_config - -write_srcyaml diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/rebuildpkg b/artools/0.26.1/artools/debian/artools/usr/bin/rebuildpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/rebuildpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/signpkg b/artools/0.26.1/artools/debian/artools/usr/bin/signpkg deleted file mode 100755 index c05fb54..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/signpkg +++ /dev/null @@ -1,180 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2018-19 artoo@artixlinux.org -# Copyright (C) 2018 Artix Linux Developers -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} - -#!/hint/bash - -#{{{ functions - -find_cached_pkgfile() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local pkg="$1" - for dir in "${searchdirs[@]}"; do - [[ -d "$dir" ]] || continue - [[ -e "$dir/$pkg" ]] && results+=("$dir/$pkg") - done - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -get_pkgbasename() { - local name="$1" - local rm_pkg=${name%.pkg.tar*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - echo "$rm_pkg" -} - -#}}} - - -load_makepkg_config - -passfiles=("$@") - -sign_pkg(){ - local file_to_sign="$1" - - if [ ! -e "$file_to_sign" ]; then - error "%s does not exist!" "$file_to_sign" - exit 1 - fi - - if [[ -n "${BUILDBOT_GPGP}" ]]; then - msg "Signing [%s]" "${file_to_sign##*/}" - gpg --batch --passphrase "${BUILDBOT_GPGP}" --detach-sign "$file_to_sign" - else - msg "Signing [%s] with key %s" "${file_to_sign##*/}" "${GPGKEY}..." - gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign" - fi -} - -for pkg in "${passfiles[@]}"; do - msg "Searching %s ..." "$pkg" - if pkgfile=$(find_cached_pkgfile "$pkg");then - msg2 "Found: %s" "${pkgfile}" - [[ -e "${pkgfile}".sig ]] && rm "${pkgfile}".sig - sign_pkg "${pkgfile}" - fi -done diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/stagingpkg b/artools/0.26.1/artools/debian/artools/usr/bin/stagingpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/stagingpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/bin/testingpkg b/artools/0.26.1/artools/debian/artools/usr/bin/testingpkg deleted file mode 120000 index 604ab02..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/bin/testingpkg +++ /dev/null @@ -1 +0,0 @@ -commitpkg \ No newline at end of file diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/makepkg.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/makepkg.conf deleted file mode 100644 index 9d1b2f2..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/makepkg.conf +++ /dev/null @@ -1,161 +0,0 @@ -#!/hint/bash -# shellcheck disable=2034 - -# -# /etc/makepkg.conf -# - -######################################################################### -# SOURCE ACQUISITION -######################################################################### -# -#-- The download utilities that makepkg should use to acquire sources -# Format: 'protocol::agent' -DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u' - 'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' - 'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' - 'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' - 'rsync::/usr/bin/rsync --no-motd -z %u %o' - 'scp::/usr/bin/scp -C %u %o') - -# Other common tools: -# /usr/bin/snarf -# /usr/bin/lftpget -c -# /usr/bin/wget - -#-- The package required by makepkg to download VCS sources -# Format: 'protocol::package' -VCSCLIENTS=('bzr::bzr' - 'fossil::fossil' - 'git::git' - 'hg::mercurial' - 'svn::subversion') - -######################################################################### -# ARCHITECTURE, COMPILE FLAGS -######################################################################### -# -CARCH="x86_64" -CHOST="x86_64-pc-linux-gnu" - -#-- Compiler and Linker Flags -#CPPFLAGS="" -CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \ - -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ - -fstack-clash-protection -fcf-protection" -CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" -LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" -#RUSTFLAGS="-C opt-level=2" -#-- Make Flags: change this for DistCC/SMP systems -#MAKEFLAGS="-j2" -#-- Debugging flags -DEBUG_CFLAGS="-g -fvar-tracking-assignments" -DEBUG_CXXFLAGS="-g -fvar-tracking-assignments" -#DEBUG_RUSTFLAGS="-C debuginfo=2" - -######################################################################### -# BUILD ENVIRONMENT -######################################################################### -# -# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign) -# A negated environment option will do the opposite of the comments below. -# -#-- distcc: Use the Distributed C/C++/ObjC compiler -#-- color: Colorize output messages -#-- ccache: Use ccache to cache compilation -#-- check: Run the check() function if present in the PKGBUILD -#-- sign: Generate PGP signature file -# -BUILDENV=(!distcc color !ccache check !sign) -# -#-- If using DistCC, your MAKEFLAGS will also need modification. In addition, -#-- specify a space-delimited list of hosts running in the DistCC cluster. -#DISTCC_HOSTS="" -# -#-- Specify a directory for package building. -#BUILDDIR=/tmp/makepkg - -######################################################################### -# GLOBAL PACKAGE OPTIONS -# These are default values for the options=() settings -######################################################################### -# -# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto) -# A negated option will do the opposite of the comments below. -# -#-- strip: Strip symbols from binaries/libraries -#-- docs: Save doc directories specified by DOC_DIRS -#-- libtool: Leave libtool (.la) files in packages -#-- staticlibs: Leave static library (.a) files in packages -#-- emptydirs: Leave empty directories in packages -#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip -#-- purge: Remove files specified by PURGE_TARGETS -#-- debug: Add debugging flags as specified in DEBUG_* variables -#-- lto: Add compile flags for building with link time optimization -# -OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto) - -#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2 -INTEGRITY_CHECK=(sha256) -#-- Options to be used when stripping binaries. See `man strip' for details. -STRIP_BINARIES="--strip-all" -#-- Options to be used when stripping shared libraries. See `man strip' for details. -STRIP_SHARED="--strip-unneeded" -#-- Options to be used when stripping static libraries. See `man strip' for details. -STRIP_STATIC="--strip-debug" -#-- Manual (man and info) directories to compress (if zipman is specified) -MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}) -#-- Doc directories to remove (if !docs is specified) -DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) -#-- Files to be removed from all packages (if purge is specified) -PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) -#-- Directory to store source code in for debug packages -DBGSRCDIR="/usr/src/debug" - -######################################################################### -# PACKAGE OUTPUT -######################################################################### -# -# Default: put built package and cached source in build directory -# -#-- Destination: specify a fixed directory where all packages will be placed -#PKGDEST=/home/packages -#-- Source cache: specify a fixed directory where source files will be cached -#SRCDEST=/home/sources -#-- Source packages: specify a fixed directory where all src packages will be placed -#SRCPKGDEST=/home/srcpackages -#-- Log files: specify a fixed directory where all log files will be placed -#LOGDEST=/home/makepkglogs -#-- Packager: name/email of the person or organization building packages -#PACKAGER="John Doe " -#-- Specify a key to use for package signing -#GPGKEY="" - -######################################################################### -# COMPRESSION DEFAULTS -######################################################################### -# -COMPRESSGZ=(gzip -c -f -n) -COMPRESSBZ2=(bzip2 -c -f) -COMPRESSXZ=(xz -c -z -) -COMPRESSZST=(zstd -c -T0 --ultra -20 -) -COMPRESSLRZ=(lrzip -q) -COMPRESSLZO=(lzop -q) -COMPRESSZ=(compress -c -f) -COMPRESSLZ4=(lz4 -q) -COMPRESSLZ=(lzip -c -f) - -######################################################################### -# EXTENSION DEFAULTS -######################################################################### -# -PKGEXT='.pkg.tar.zst' -SRCEXT='.src.tar.gz' - -######################################################################### -# OTHER -######################################################################### -# -#-- Command used to run pacman as root, instead of trying sudo and su -#PACMAN_AUTH=() -# vim: set ft=sh ts=2 sw=2 et: diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-default.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-default.conf deleted file mode 100644 index 64559bc..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-default.conf +++ /dev/null @@ -1,92 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[gremlins] -#Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -#[galaxy-gremlins] -#Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-docker.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-docker.conf deleted file mode 100644 index 01a1688..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-docker.conf +++ /dev/null @@ -1,99 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -NoExtract = usr/share/help/* !usr/share/help/en* -NoExtract = usr/share/gtk-doc/html/* usr/share/doc/* -NoExtract = usr/share/locale/* usr/share/X11/locale/* usr/share/i18n/* -NoExtract = !*locale*/en*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.* -NoExtract = !usr/share/*locales/en_?? !usr/share/*locales/i18n* !usr/share/*locales/iso* -NoExtract = !usr/share/*locales/trans* -NoExtract = usr/share/man/* usr/share/info/* -NoExtract = usr/share/vim/vim*/lang/* - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -#[lib32] -#Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gnome-wobble.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gnome-wobble.conf deleted file mode 100644 index bcc3a2d..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gnome-wobble.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[gnome-wobble] -Include = /etc/pacman.d/mirrorlist - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-goblins.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-goblins.conf deleted file mode 100644 index a085590..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-goblins.conf +++ /dev/null @@ -1,98 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gremlins.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gremlins.conf deleted file mode 100644 index 26ff03e..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-gremlins.conf +++ /dev/null @@ -1,92 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-kde-wobble.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-kde-wobble.conf deleted file mode 100644 index 640417d..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-kde-wobble.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[kde-wobble] -Include = /etc/pacman.d/mirrorlist - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-goblins.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-goblins.conf deleted file mode 100644 index 971a4bc..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-goblins.conf +++ /dev/null @@ -1,110 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[goblins] -Include = /etc/pacman.d/mirrorlist - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-goblins] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -[lib32-goblins] -Include = /etc/pacman.d/mirrorlist - -[lib32-gremlins] -Include = /etc/pacman.d/mirrorlist - -[lib32] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-gremlins.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-gremlins.conf deleted file mode 100644 index 379dfda..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32-gremlins.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -[gremlins] -Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -[galaxy-gremlins] -Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -[lib32-gremlins] -Include = /etc/pacman.d/mirrorlist - -[lib32] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32.conf deleted file mode 100644 index a5e6621..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/pacman-lib32.conf +++ /dev/null @@ -1,101 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -NoProgressBar -# We cannot check disk space from within a chroot environment -#CheckSpace -VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Artix Linux -# packagers with `pacman-key --populate artix`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The gremlins repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[gremlins] -#Include = /etc/pacman.d/mirrorlist - -[system] -Include = /etc/pacman.d/mirrorlist - -[world] -Include = /etc/pacman.d/mirrorlist - -#[galaxy-gremlins] -#Include = /etc/pacman.d/mirrorlist - -[galaxy] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the lib32 repositories as required here. - -#[lib32-gremlins] -#Include = /etc/pacman.d/mirrorlist - -[lib32] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/patches/artix-bash.patch b/artools/0.26.1/artools/debian/artools/usr/share/artools/patches/artix-bash.patch deleted file mode 100644 index 15daaba..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/patches/artix-bash.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- /dev/null -+++ b/artix.bashrc -@@ -0,0 +1,46 @@ -+use_color=true -+ -+# Set colorful PS1 only on colorful terminals. -+# dircolors --print-database uses its own built-in database -+# instead of using /etc/DIR_COLORS. Try to use the external file -+# first to take advantage of user additions. Use internal bash -+# globbing instead of external grep binary. -+safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM -+match_lhs="" -+[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" -+[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(/dev/null \ -+ && match_lhs=$(dircolors --print-database) -+[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true -+ -+if ${use_color} ; then -+ # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 -+ if type -P dircolors >/dev/null ; then -+ if [[ -f ~/.dir_colors ]] ; then -+ eval $(dircolors -b ~/.dir_colors) -+ elif [[ -f /etc/DIR_COLORS ]] ; then -+ eval $(dircolors -b /etc/DIR_COLORS) -+ fi -+ fi -+ -+ if [[ ${EUID} == 0 ]] ; then -+ PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] ' -+ else -+ PS1='\[\033[01;36m\][\u@\h\[\033[01;37m\] \W\[\033[01;36m\]]\$\[\033[00m\] ' -+ fi -+ -+ alias ls='ls --color=auto' -+ alias grep='grep --colour=auto' -+ alias egrep='egrep --colour=auto' -+ alias fgrep='fgrep --colour=auto' -+else -+ if [[ ${EUID} == 0 ]] ; then -+ # show root@ when we don't have colors -+ PS1='\u@\h \W \$ ' -+ else -+ PS1='\u@\h \w \$ ' -+ fi -+fi -+ -+unset use_color safe_term match_lhs sh ---- a/dot.bashrc -+++ b/dot.bashrc -@@ -5,5 +5,5 @@ - # If not running interactively, don't do anything - [[ $- != *i* ]] && return - --alias ls='ls --color=auto' --PS1='[\u@\h \W]\$ ' -+# alias ls='ls --color=auto' -+# PS1='[\u@\h \W]\$ ' - ---- a/system.bashrc -+++ a/system.bashrc -@@ -1,5 +1,5 @@ - # --# /etc/bash.bashrc -+# /etc/bash/bashrc - # - - # If not running interactively, don't do anything -@@ -19,4 +19,8 @@ - ;; - esac - -+for sh in /etc/bash/bashrc.d/*.bashrc ; do -+ [[ -r ${sh} ]] && source "${sh}" -+done -+ - [ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion - ---- a/system.bash_logout -+++ a/system.bash_logout -@@ -1,3 +1,3 @@ - # --# /etc/bash.bash_logout -+# /etc/bash/bash_logout - # - diff --git a/artools/0.26.1/artools/debian/artools/usr/share/artools/valid-names.conf b/artools/0.26.1/artools/debian/artools/usr/share/artools/valid-names.conf deleted file mode 100644 index 57bdbdd..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/artools/valid-names.conf +++ /dev/null @@ -1,42 +0,0 @@ -#!/hint/bash - -valid_names=( - core - extra - community - multilib - testing - community-testing - multilib-testing - staging - community-staging - multilib-staging - rebuild - gnome-unstable - kde-unstable -) - -stable=( - "${valid_names[0]}" - "${valid_names[1]}" - "${valid_names[2]}" - "${valid_names[3]}" -) - -gremlins=( - "${valid_names[4]}" - "${valid_names[5]}" - "${valid_names[6]}" -) - -goblins=( - "${valid_names[7]}" - "${valid_names[8]}" - "${valid_names[9]}" - "${valid_names[10]}" -) - -wobble=( - "${valid_names[11]}" - "${valid_names[12]}" -) diff --git a/artools/0.26.1/artools/debian/artools/usr/share/doc/artools/changelog.Debian.gz b/artools/0.26.1/artools/debian/artools/usr/share/doc/artools/changelog.Debian.gz deleted file mode 100644 index fcecf0b3531bf223217eb0366aadcddaf80ae496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmV;D0B!#tiwFP!000020~N}<3c^4TM&UkB@s}!Yn5+;qUa-|d3!h*#LtNO*!d@`G zy|Fud9F92zpRl0Xwsm8gC5ooZPcM6vIEcQ!$5DD$#;O8VxTwpHJ)(HwBr_U=8|ODG z?jO;FgZAMcXO7uT-f5ZY5Qh`+D7psiaGhUE)}q;TmO9$PP)k((0QKk6i;VyP0LB|b AC;$Ke diff --git a/artools/0.26.1/artools/debian/artools/usr/share/doc/artools/copyright b/artools/0.26.1/artools/debian/artools/usr/share/doc/artools/copyright deleted file mode 100644 index 9713bc9..0000000 --- a/artools/0.26.1/artools/debian/artools/usr/share/doc/artools/copyright +++ /dev/null @@ -1,35 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: artools -Source: https://gitea.artixlinux.org/artix/artools - -Files: * -Copyright: 2022 Artixlinux -License: GPL-2+ - -Files: debian/* -Copyright: 2022 Nathan Owens -License: GPL-2+ - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see - . - On Debian systems, the complete text of the GNU General - Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". - -# Please also look if there are files or directories which have a -# different copyright/license attached and list them here. -# Please avoid picking licenses with terms that are more restrictive than the -# packaged work, as it may make Debian's contributions unacceptable upstream. -# -# If you need, there are some extra license texts available in two places: -# /usr/share/debhelper/dh_make/licenses/ -# /usr/share/common-licenses/ diff --git a/artools/0.26.1/artools/debian/changelog b/artools/0.26.1/artools/debian/changelog deleted file mode 100644 index cdf28b8..0000000 --- a/artools/0.26.1/artools/debian/changelog +++ /dev/null @@ -1,5 +0,0 @@ -artools (0.26.1-1) unstable; urgency=medium - - * Initial release - - -- Nathan Owens Sun, 09 Jan 2022 13:20:08 -0600 diff --git a/artools/0.26.1/artools/debian/control b/artools/0.26.1/artools/debian/control deleted file mode 100644 index 7ad91d9..0000000 --- a/artools/0.26.1/artools/debian/control +++ /dev/null @@ -1,16 +0,0 @@ -Source: artools -Section: misc -Priority:medium -Maintainer: Nathan Owens -Build-Depends: debhelper-compat (= 13) -Standards-Version: 4.5.1 -Homepage: https://gitea.artixlinux.org/artix/artools -#Vcs-Browser: https://salsa.debian.org/debian/artools -#Vcs-Git: https://salsa.debian.org/debian/artools.git -Rules-Requires-Root: no - -Package: artools -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, pacman -Description: Artix linux packaging - Tools used for Artix linux packaging diff --git a/artools/0.26.1/artools/debian/copyright b/artools/0.26.1/artools/debian/copyright deleted file mode 100644 index 9713bc9..0000000 --- a/artools/0.26.1/artools/debian/copyright +++ /dev/null @@ -1,35 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: artools -Source: https://gitea.artixlinux.org/artix/artools - -Files: * -Copyright: 2022 Artixlinux -License: GPL-2+ - -Files: debian/* -Copyright: 2022 Nathan Owens -License: GPL-2+ - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see - . - On Debian systems, the complete text of the GNU General - Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". - -# Please also look if there are files or directories which have a -# different copyright/license attached and list them here. -# Please avoid picking licenses with terms that are more restrictive than the -# packaged work, as it may make Debian's contributions unacceptable upstream. -# -# If you need, there are some extra license texts available in two places: -# /usr/share/debhelper/dh_make/licenses/ -# /usr/share/common-licenses/ diff --git a/artools/0.26.1/artools/debian/debhelper-build-stamp b/artools/0.26.1/artools/debian/debhelper-build-stamp deleted file mode 100644 index f0bde23..0000000 --- a/artools/0.26.1/artools/debian/debhelper-build-stamp +++ /dev/null @@ -1 +0,0 @@ -artools diff --git a/artools/0.26.1/artools/debian/files b/artools/0.26.1/artools/debian/files deleted file mode 100644 index 9fcc4d0..0000000 --- a/artools/0.26.1/artools/debian/files +++ /dev/null @@ -1,2 +0,0 @@ -artools_0.26.1-1_amd64.buildinfo misc medium -artools_0.26.1-1_amd64.deb misc medium diff --git a/artools/0.26.1/artools/debian/patches/1 b/artools/0.26.1/artools/debian/patches/1 deleted file mode 100644 index 57f6b88..0000000 --- a/artools/0.26.1/artools/debian/patches/1 +++ /dev/null @@ -1,37 +0,0 @@ -Description: - TODO: Put a short summary on the line above and replace this paragraph - with a longer explanation of this change. Complete the meta-information - with other relevant fields (see below for details). To make it easier, the - information below has been extracted from the changelog. Adjust it or drop - it. - . - artools (0.26.1-1) unstable; urgency=medium - . - * Initial release -Author: Nathan Owens - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: https://bugs.debian.org/ -Bug-Ubuntu: https://launchpad.net/bugs/ -Forwarded: -Reviewed-By: -Last-Update: 2022-01-09 - ---- /dev/null -+++ artools-0.26.1/etc/artools/artools-base.conf -@@ -0,0 +1,9 @@ -+############################################# -+################ artools-base ############### -+############################################# -+ -+# build dir where buildpkg or buildiso chroots are created -+# CHROOTS_DIR=/var/lib/artools -+ -+# the workspace directory -+# WORKSPACE_DIR="${USER_HOME}/artools-workspace" diff --git a/artools/0.26.1/artools/debian/patches/add-flto-to-LDFLAGS-for-clang.patch b/artools/0.26.1/artools/debian/patches/add-flto-to-LDFLAGS-for-clang.patch deleted file mode 100644 index b3c139d..0000000 --- a/artools/0.26.1/artools/debian/patches/add-flto-to-LDFLAGS-for-clang.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 26ee6ff6adbcd8560ec3a65cf219d2ab98edb804 Mon Sep 17 00:00:00 2001 -From: Allan McRae -Date: Fri, 24 Dec 2021 17:59:32 +1000 -Subject: [PATCH] LTO: Add -flto to LDFLAGS for clang - -GCC automatically detects when it is linking LTO objects, but clang does -not. Add -flto to LDFLAGS to make this work for clang too. - -Signed-off-by: Allan McRae ---- - scripts/libmakepkg/buildenv/lto.sh.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/scripts/libmakepkg/buildenv/lto.sh.in b/scripts/libmakepkg/buildenv/lto.sh.in -index 1f1ca53f..c3bd0fa4 100644 ---- a/scripts/libmakepkg/buildenv/lto.sh.in -+++ b/scripts/libmakepkg/buildenv/lto.sh.in -@@ -33,5 +33,6 @@ buildenv_lto() { - if check_option "lto" "y"; then - CFLAGS+=" -flto" - CXXFLAGS+=" -flto" -+ LDFLAGS+=" -flto" - fi - } diff --git a/artools/0.26.1/artools/debian/patches/comparepkg-fix.patch b/artools/0.26.1/artools/debian/patches/comparepkg-fix.patch deleted file mode 100644 index 90a0988..0000000 --- a/artools/0.26.1/artools/debian/patches/comparepkg-fix.patch +++ /dev/null @@ -1,16 +0,0 @@ - bin/pkg/comparepkg.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bin/pkg/comparepkg.in b/bin/pkg/comparepkg.in -index 50119ee..f68a919 100644 ---- artools/bin/pkg/comparepkg.in -+++ artools/bin/pkg/comparepkg.in -@@ -54,7 +54,7 @@ compare_u(){ - if [ "$result" -eq -1 ];then - # local arel=${archver##*-} brel=${artixver##*-} - # local reldiff -- reldiff=$(( $arel-${brel%.*} )) -+# reldiff=$(( $arel-${brel%.*} )) - msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" - write_list "${a}:$pkg" pkg_upgrades - fi diff --git a/artools/0.26.1/artools/debian/patches/series b/artools/0.26.1/artools/debian/patches/series deleted file mode 100644 index 6a1dab6..0000000 --- a/artools/0.26.1/artools/debian/patches/series +++ /dev/null @@ -1,2 +0,0 @@ -1 -comparepkg-fix.patch diff --git a/artools/0.26.1/artools/debian/rules b/artools/0.26.1/artools/debian/rules deleted file mode 100755 index b46f278..0000000 --- a/artools/0.26.1/artools/debian/rules +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/make -f -# See debhelper(7) (uncomment to enable) -# output every command that modifies files on the build system. -#export DH_VERBOSE = 1 - - -# see FEATURE AREAS in dpkg-buildflags(1) -#export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -# see ENVIRONMENT in dpkg-buildflags(1) -# package maintainers to append CFLAGS -#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic -# package maintainers to append LDFLAGS -#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed - -%: - dh $@ - -override_dh_auto_build: - make PREFIX=/usr - -# dh_make generated override targets -# This is example for Cmake (See https://bugs.debian.org/641051 ) -#override_dh_auto_configure: -# dh_auto_configure -- \ -# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) diff --git a/artools/0.26.1/artools/debian/source/format b/artools/0.26.1/artools/debian/source/format deleted file mode 100644 index 163aaf8..0000000 --- a/artools/0.26.1/artools/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/artools/0.26.1/artools/lib/base/chroot-version.sh b/artools/0.26.1/artools/lib/base/chroot-version.sh deleted file mode 100644 index b5aaab7..0000000 --- a/artools/0.26.1/artools/lib/base/chroot-version.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/hint/bash - -CHROOTVERSION=0.10 diff --git a/artools/0.26.1/artools/lib/base/chroot.sh b/artools/0.26.1/artools/lib/base/chroot.sh deleted file mode 100644 index 22486ec..0000000 --- a/artools/0.26.1/artools/lib/base/chroot.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/hint/bash - -#{{{ chroot - -orig_argv=("$0" "$@") -check_root() { - local keepenv="$1" - - (( EUID == 0 )) && return - if type -P sudo >/dev/null; then - # shellcheck disable=2154 - exec sudo --preserve-env="$keepenv" -- "${orig_argv[@]}" - else - # shellcheck disable=2154 - exec su root -c "$(printf ' %q' "${orig_argv[@]}")" - fi -} - -is_btrfs() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] -} - -is_subvolume() { - [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" == 256 ]] -} - -# is_same_fs() { -# [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]] -# } - -subvolume_delete_recursive() { - local subvol - - is_subvolume "$1" || return 0 - - while IFS= read -d $'\0' -r subvol; do - if ! subvolume_delete_recursive "$subvol"; then - return 1 - fi - done < <(find "$1" -mindepth 1 -xdev -depth -inum 256 -print0) - if ! btrfs subvolume delete "$1" &>/dev/null; then - error "Unable to delete subvolume %s" "$subvol" - return 1 - fi - - return 0 -} - -# }}} diff --git a/artools/0.26.1/artools/lib/base/common.sh b/artools/0.26.1/artools/lib/base/common.sh deleted file mode 100644 index 4629a9a..0000000 --- a/artools/0.26.1/artools/lib/base/common.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/hint/bash - -#{{{ common - -get_makepkg_conf() { - makepkg_conf="${DATADIR}/makepkg.conf" - [[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf" -} - -get_pacman_conf() { - local repo="$1" - pacman_conf="${DATADIR}/pacman-${repo}.conf" - [[ -f "${USER_CONF_DIR}/pacman-${repo}.conf" ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/base/message.sh b/artools/0.26.1/artools/lib/base/message.sh deleted file mode 100644 index ae1f833..0000000 --- a/artools/0.26.1/artools/lib/base/message.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/hint/bash - -#{{{ message - -#set +u +o posix - -# shellcheck disable=1091 -. /usr/share/makepkg/util.sh - -export LANG=C - -shopt -s extglob - -if [[ -t 2 && "$TERM" != dumb ]]; then - colorize -else - # shellcheck disable=2034 - declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW='' -fi - -stat_busy() { - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2 -} - -stat_done() { - # shellcheck disable=2059 - printf "${BOLD}done${ALL_OFF}\n" >&2 -} - -lock_close() { - local fd=$1 - exec {fd}>&- -} - -lock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -n "$1"; then - stat_busy "$3" - flock "$1" - stat_done - fi -} - -slock() { - if ! [[ "/dev/fd/$1" -ef "$2" ]]; then - mkdir -p -- "$(dirname -- "$2")" - eval "exec $1>"'"$2"' - fi - if ! flock -sn "$1"; then - stat_busy "$3" - flock -s "$1" - stat_done - fi -} - -_setup_workdir=false -setup_workdir() { - [[ -z ${WORKDIR:-} ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX") - _setup_workdir=true - trap 'trap_abort' INT QUIT TERM HUP - trap 'trap_exit' EXIT -} - -trap_abort() { - trap - EXIT INT QUIT TERM HUP - abort -} - -trap_exit() { - local r=$? - trap - EXIT INT QUIT TERM HUP - cleanup $r -} - -cleanup() { - if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then - rm -rf "$WORKDIR" - fi - exit "${1:-0}" -} - -abort() { - error 'Aborting...' - cleanup 255 -} - -die() { - (( $# )) && error "$@" - cleanup 255 -} - -#}}} diff --git a/artools/0.26.1/artools/lib/base/mount.sh b/artools/0.26.1/artools/lib/base/mount.sh deleted file mode 100644 index 2705717..0000000 --- a/artools/0.26.1/artools/lib/base/mount.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/hint/bash - -#{{{ mount - -ignore_error() { - "$@" 2>/dev/null - return 0 -} - -trap_setup(){ - [[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap' - trap "$1" EXIT -} - -chroot_mount() { -# msg2 "mount: [%s]" "$2" - mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") -} - -chroot_add_resolv_conf() { - local chrootdir=$1 resolv_conf=$1/etc/resolv.conf - - [[ -e /etc/resolv.conf ]] || return 0 - - # Handle resolv.conf as a symlink to somewhere else. - if [[ -L $chrootdir/etc/resolv.conf ]]; then - # readlink(1) should always give us *something* since we know at this point - # it's a symlink. For simplicity, ignore the case of nested symlinks. - resolv_conf=$(readlink "$chrootdir/etc/resolv.conf") - if [[ $resolv_conf = /* ]]; then - resolv_conf=$chrootdir$resolv_conf - else - resolv_conf=$chrootdir/etc/$resolv_conf - fi - - # ensure file exists to bind mount over - if [[ ! -f $resolv_conf ]]; then - install -Dm644 /dev/null "$resolv_conf" || return 1 - fi - elif [[ ! -e $chrootdir/etc/resolv.conf ]]; then - # The chroot might not have a resolv.conf. - return 0 - fi - - chroot_mount /etc/resolv.conf "$resolv_conf" --bind -} - -chroot_mount_conditional() { - local cond=$1; shift - if eval "$cond"; then - chroot_mount "$@" - fi -} - -chroot_setup(){ - local mnt="$1" os="$2" args='-t tmpfs -o nosuid,nodev,mode=0755' - $os && args='--bind' - chroot_mount_conditional "! mountpoint -q '$mnt'" "$mnt" "$mnt" --bind && - chroot_mount proc "$mnt/proc" -t proc -o nosuid,noexec,nodev && - chroot_mount sys "$mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro && - ignore_error chroot_mount_conditional "[[ -d '$mnt/sys/firmware/efi/efivars' ]]" \ - efivarfs "$mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && - chroot_mount udev "$mnt/dev" -t devtmpfs -o mode=0755,nosuid && - chroot_mount devpts "$mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && - chroot_mount shm "$mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && - chroot_mount /run "$mnt/run" ${args} && - chroot_mount tmp "$mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid -} - -chroot_api_mount() { - CHROOT_ACTIVE_MOUNTS=() - trap_setup chroot_api_umount - chroot_setup "$1" false -} - -chroot_api_umount() { - if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then -# msg2 "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}" - umount "${CHROOT_ACTIVE_MOUNTS[@]}" - fi - unset CHROOT_ACTIVE_MOUNTS -} - -#}}} diff --git a/artools/0.26.1/artools/lib/base/yaml.sh b/artools/0.26.1/artools/lib/base/yaml.sh deleted file mode 100644 index ba8c83c..0000000 --- a/artools/0.26.1/artools/lib/base/yaml.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/hint/bash - -#{{{ yaml - -write_yaml_header(){ - printf '%s' '---' -} - -write_empty_line(){ - printf '\n%s\n' ' ' -} - -write_yaml_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s%s: %s\n" '' "$key" "$val" -} - -write_yaml_seq(){ - local ident="$1" val="$2" - printf "\n%${ident}s- %s\n" '' "$val" -} - -write_yaml_seq_map(){ - local ident="$1" key="$2" val="$3" - printf "\n%${ident}s- %s: %s\n" '' "$key" "$val" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/calamares.sh b/artools/0.26.1/artools/lib/iso/calamares.sh deleted file mode 100644 index 2e599d9..0000000 --- a/artools/0.26.1/artools/lib/iso/calamares.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/hint/bash - -#{{{ calamares - -write_services_conf(){ - local key1="$1" val1="$2" key2="$3" val2="$4" - local yaml - yaml=$(write_yaml_header) - yaml+=$(write_yaml_map 0 "$key1" "$val1") - yaml+=$(write_yaml_map 0 "$key2" "$val2") - yaml+=$(write_yaml_map 0 'services') - for svc in "${SERVICES[@]}"; do - yaml+=$(write_yaml_seq 2 "$svc") - done - yaml+=$(write_empty_line) - printf '%s' "${yaml}" -} - -write_services_openrc_conf(){ - local conf="$1"/services-openrc.conf - write_services_conf 'initdDir' '/etc/init.d' 'runlevelsDir' '/etc/runlevels' > "$conf" -} - -write_services_runit_conf(){ - local conf="$1"/services-runit.conf - write_services_conf 'svDir' '/etc/runit/sv' 'runsvDir' '/etc/runit/runsvdir' > "$conf" -} - -write_services_s6_conf(){ - local conf="$1"/services-s6.conf - write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$conf" -} - -write_services_suite66_conf(){ - local conf="$1"/services-suite66.conf - write_services_conf 'svDir' '/etc/66/service' 'runsvDir' '/var/lib/66/system' > "$conf" -} - -write_services_dinit_conf(){ - local conf="$1"/services-dinit.conf - write_services_conf 'initdDir' '/etc/dinit.d' 'runsvDir' '/etc/dinit.d/boot.d' > "$conf" -} - -configure_calamares(){ - local mods="$1/etc/calamares/modules" - if [[ -d "$mods" ]];then - msg2 "Configuring: Calamares" - write_services_"${INITSYS}"_conf "$mods" - sed -e "s|services-openrc|services-${INITSYS}|" \ - -i "$1"/etc/calamares/settings.conf - fi -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/config.sh b/artools/0.26.1/artools/lib/iso/config.sh deleted file mode 100644 index 4def9ce..0000000 --- a/artools/0.26.1/artools/lib/iso/config.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/hint/bash - -#{{{ session - -configure_services(){ - local mnt="$1" - add_svc_"${INITSYS}" "$mnt" "${SERVICES[*]}" -} - - -write_live_session_conf(){ - local conf='' - conf+=$(printf '%s\n' '# live session configuration') - conf+=$(printf "\nAUTOLOGIN=%s\n" "${AUTOLOGIN}") - conf+=$(printf "\nPASSWORD=%s\n" "${PASSWORD}") - printf '%s' "$conf" -} - -configure_chroot(){ - local fs="$1" - msg "Configuring [%s]" "${fs##*/}" - configure_services "$fs" - configure_calamares "$fs" - [[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools" - msg2 "Writing: live.conf" - write_live_session_conf > "$fs/etc/artools/live.conf" - msg "Done configuring [%s]" "${fs##*/}" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/dracut.sh b/artools/0.26.1/artools/lib/iso/dracut.sh deleted file mode 100644 index 0504f3e..0000000 --- a/artools/0.26.1/artools/lib/iso/dracut.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/hint/bash - -#{{{ dracut - -prepare_initramfs_dracut(){ - local mnt="$1" - local kver - kver=$(<"$mnt"/usr/src/linux/version) - - printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf - - msg "Starting build: %s" "${kver}" - artix-chroot "$mnt" dracut -fqM /boot/initramfs.img "$kver" - msg "Image generation successful" - - cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img - - prepare_boot_extras "$mnt" -} - -configure_grub_dracut(){ - msg "Configuring grub kernel options ..." - local kopts=() - kopts=( - "root=live:LABEL=${iso_label}" - 'rd.live.squashimg=rootfs.img' - 'rd.live.image' - 'rootflags=auto' - ) - [[ "${profile}" != 'base' ]] && kopts+=("rd.live.join=livefs.img") - - local ro_opts=() - local rw_opts=() -# 'rd.writable.fsimg=1' - - sed -e "s|@kopts@|${kopts[*]}|" \ - -e "s|@ro_opts@|${ro_opts[*]}|" \ - -e "s|@rw_opts@|${rw_opts[*]}|" \ - -i "${iso_root}"/boot/grub/kernels.cfg -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/firmware.sh b/artools/0.26.1/artools/lib/iso/firmware.sh deleted file mode 100644 index fdba940..0000000 --- a/artools/0.26.1/artools/lib/iso/firmware.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/hint/bash - -#{{{ firmware - -prepare_boot_extras(){ - local src="$1" dest - dest=${iso_root}/boot - - for fw in intel amd; do - cp "$src"/boot/"$fw"-ucode.img "$dest/$fw"-ucode.img - done - - cp "$src"/boot/memtest86+/memtest.bin "$dest"/memtest - cp "$src"/usr/share/licenses/common/GPL2/license.txt "$dest"/memtest.COPYING -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/grub.sh b/artools/0.26.1/artools/lib/iso/grub.sh deleted file mode 100644 index 7200ed9..0000000 --- a/artools/0.26.1/artools/lib/iso/grub.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/hint/bash - -#{{{ grub - -prepare_grub(){ - local platform=i386-pc img='core.img' prefix=/boot/grub - local lib="$1"/usr/lib/grub - local theme="$1"/usr/share/grub - local livecfg="$2"/usr/share/grub - local grub=${iso_root}/boot/grub efi=${iso_root}/efi/boot - - prepare_dir "${grub}/${platform}" - - cp "${livecfg}"/cfg/*.cfg "${grub}" - - cp "${lib}/${platform}"/* "${grub}/${platform}" - - msg2 "Building %s ..." "${img}" - - grub-mkimage -d "${grub}/${platform}" -o "${grub}/${platform}/${img}" -O "${platform}" -p "${prefix}" biosdisk iso9660 - - cat "${grub}/${platform}"/cdboot.img "${grub}/${platform}/${img}" > "${grub}/${platform}"/eltorito.img - - platform=x86_64-efi - img=bootx64.efi - - prepare_dir "${efi}" - prepare_dir "${grub}/${platform}" - - cp "${lib}/${platform}"/* "${grub}/${platform}" - - msg2 "Building %s ..." "${img}" - - grub-mkimage -d "${grub}/${platform}" -o "${efi}/${img}" -O "${platform}" -p "${prefix}" iso9660 - - prepare_dir "${grub}"/themes - - cp -r "${theme}"/themes/artix "${grub}"/themes - cp -r "${livecfg}"/{locales,tz} "${grub}" - - if [[ -f /usr/share/grub/unicode.pf2 ]];then - msg2 "Copying %s ..." "unicode.pf2" - cp /usr/share/grub/unicode.pf2 "${grub}"/unicode.pf2 - else - msg2 "Creating %s ..." "unicode.pf2" - grub-mkfont -o "${grub}"/unicode.pf2 /usr/share/fonts/misc/unifont.bdf - fi - - local size=4M mnt="${mnt_dir}/efiboot" efi_img="${iso_root}/boot/efi.img" - msg2 "Creating fat image of %s ..." "${size}" - truncate -s "${size}" "${efi_img}" - mkfs.fat -n ARTIX_EFI "${efi_img}" &>/dev/null - prepare_dir "${mnt}" - mount_img "${efi_img}" "${mnt}" - prepare_dir "${mnt}"/efi/boot - msg2 "Building %s ..." "${img}" - grub-mkimage -d "${grub}/${platform}" -o "${mnt}"/efi/boot/"${img}" -O "${platform}" -p "${prefix}" iso9660 - umount_img "${mnt}" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/initcpio.sh b/artools/0.26.1/artools/lib/iso/initcpio.sh deleted file mode 100644 index 8116bfe..0000000 --- a/artools/0.26.1/artools/lib/iso/initcpio.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/hint/bash - -#{{{ initcpio - -make_checksum(){ - local file="$1" - msg2 "Creating md5sum ..." - cd "${iso_root}${live_dir}" - md5sum "$file" > "$file".md5 - cd "${OLDPWD}" -} - -make_sig () { - local file="$1" - msg2 "Creating signature file..." - chown "${owner}:$(id --group "${owner}")" "${iso_root}${live_dir}" - su "${owner}" -c "gpg --detach-sign --output $file.sig --default-key ${GPG_KEY} $file" - chown "root:root" "${iso_root}${live_dir}" -} - -export_gpg_publickey() { - key_export=${WORKSPACE_DIR}/pubkey.gpg - if [[ ! -e "${key_export}" ]]; then - gpg --batch --output "${key_export}" --export "${GPG_KEY}" - fi -} - -prepare_initramfs_mkinitcpio() { - local mnt="$1" packages=() mkinitcpio_conf k - - mkinitcpio_conf=mkinitcpio-default.conf - [[ "${profile}" == 'base' ]] && mkinitcpio_conf=mkinitcpio-pxe.conf - k=$(<"$mnt"/usr/src/linux/version) - - read_from_list "${common_dir}/Packages-boot" - basestrap "${basestrap_args[@]}" "$mnt" "${packages[@]}" - - if [[ -n "${GPG_KEY}" ]]; then - exec {ARTIX_GNUPG_FD}<>"${key_export}" - export ARTIX_GNUPG_FD - fi - - artix-chroot "$mnt" mkinitcpio -k "$k" \ - -c /etc/"$mkinitcpio_conf" \ - -g /boot/initramfs.img - - if [[ -n "${GPG_KEY}" ]]; then - exec {ARTIX_GNUPG_FD}<&- - unset ARTIX_GNUPG_FD - fi - if [[ -f "${key_export}" ]]; then - rm "${key_export}" - fi - cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img - prepare_boot_extras "$mnt" -} - -configure_grub_mkinitcpio() { - msg "Configuring grub kernel options ..." - local ro_opts=() - local rw_opts=() - local kopts=("label=${iso_label}") - - [[ "${profile}" != 'base' ]] && kopts+=('overlay=livefs') - - sed -e "s|@kopts@|${kopts[*]}|" \ - -e "s|@ro_opts@|${ro_opts[*]}|" \ - -e "s|@rw_opts@|${rw_opts[*]}|" \ - -i "${iso_root}"/boot/grub/kernels.cfg -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/iso.sh b/artools/0.26.1/artools/lib/iso/iso.sh deleted file mode 100644 index 26a33c6..0000000 --- a/artools/0.26.1/artools/lib/iso/iso.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/hint/bash - -#{{{ iso - -get_disturl(){ - # shellcheck disable=1091 - . /usr/lib/os-release - echo "${HOME_URL}" -} - -get_osname(){ - # shellcheck disable=1091 - . /usr/lib/os-release - echo "${NAME}" -} - -assemble_iso(){ - msg "Creating ISO image..." - local mod_date - mod_date=$(date -u +%Y-%m-%d-%H-%M-%S-00 | sed -e s/-//g) - local appid - appid="$(get_osname) Live/Rescue CD" - local publisher - publisher="$(get_osname) <$(get_disturl)>" - - xorriso -as mkisofs \ - --modification-date="${mod_date}" \ - --protective-msdos-label \ - -volid "${iso_label}" \ - -appid "${appid}" \ - -publisher "${publisher}" \ - -preparer "Prepared by artools/${0##*/}" \ - -r -graft-points -no-pad \ - --sort-weight 0 / \ - --sort-weight 1 /boot \ - --grub2-mbr "${iso_root}"/boot/grub/i386-pc/boot_hybrid.img \ - -partition_offset 16 \ - -b boot/grub/i386-pc/eltorito.img \ - -c boot.catalog \ - -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \ - -eltorito-alt-boot \ - -append_partition 2 0xef "${iso_root}"/boot/efi.img \ - -e --interval:appended_partition_2:all:: -iso_mbr_part_type 0x00 \ - -no-emul-boot \ - -iso-level 3 \ - -o "${iso_dir}/${iso_file}" \ - "${iso_root}"/ -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/mount.sh b/artools/0.26.1/artools/lib/iso/mount.sh deleted file mode 100644 index 88e5262..0000000 --- a/artools/0.26.1/artools/lib/iso/mount.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/hint/bash - -#{{{ mount - -track_img() { - msg2 "mount: [%s]" "$2" - mount "$@" && IMG_ACTIVE_MOUNTS=("$2" "${IMG_ACTIVE_MOUNTS[@]}") -} - -mount_img() { - IMG_ACTIVE_MOUNTS=() - mkdir -p "$2" - track_img "$1" "$2" -} - -umount_img() { - if [[ -n "${IMG_ACTIVE_MOUNTS[*]}" ]];then - msg2 "umount: [%s]" "${IMG_ACTIVE_MOUNTS[@]}" - umount "${IMG_ACTIVE_MOUNTS[@]}" - unset IMG_ACTIVE_MOUNTS - rm -r "$1" - fi -} - -track_fs() { - msg2 "overlayfs mount: [%s]" "$5" - mount "$@" && FS_ACTIVE_MOUNTS=("$5" "${FS_ACTIVE_MOUNTS[@]}") -} - -mount_overlayfs(){ - FS_ACTIVE_MOUNTS=() - local lower upper="$1" work="$2" - mkdir -p "${mnt_dir}/work" - mkdir -p "$upper" - case $upper in - */livefs) lower="$work/rootfs" ;; - */bootfs) - lower="$work/rootfs" - [[ -d "$work/livefs" ]] && lower="$work/livefs:$work/rootfs" - ;; - esac - # shellcheck disable=2140 - track_fs -t overlay overlay -olowerdir="$lower",upperdir="$upper",workdir="${mnt_dir}/work" "$upper" -} - -umount_overlayfs(){ - if [[ -n "${FS_ACTIVE_MOUNTS[*]}" ]];then - msg2 "overlayfs umount: [%s]" "${FS_ACTIVE_MOUNTS[@]}" - umount "${FS_ACTIVE_MOUNTS[@]}" - unset FS_ACTIVE_MOUNTS - rm -rf "${mnt_dir}/work" - fi -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/profile.sh b/artools/0.26.1/artools/lib/iso/profile.sh deleted file mode 100644 index ebf653c..0000000 --- a/artools/0.26.1/artools/lib/iso/profile.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/hint/bash - -#{{{ profile - -show_profile(){ - msg2 "iso_file: %s" "${iso_file}" - msg2 "AUTOLOGIN: %s" "${AUTOLOGIN}" - msg2 "PASSWORD: %s" "${PASSWORD}" - msg2 "SERVICES: %s" "${SERVICES[*]}" -} - -load_profile(){ - local profile_dir="${DATADIR}/iso-profiles" - [[ -d "${WORKSPACE_DIR}"/iso-profiles ]] && profile_dir="${WORKSPACE_DIR}"/iso-profiles - - root_list="$profile_dir/${profile}/Packages-Root" - root_overlay="$profile_dir/${profile}/root-overlay" - - [[ -f "$profile_dir/${profile}/Packages-Live" ]] && live_list="$profile_dir/${profile}/Packages-Live" - [[ -d "$profile_dir/${profile}/live-overlay" ]] && live_overlay="$profile_dir/${profile}/live-overlay" - - common_dir="${DATADIR}/iso-profiles/common" - [[ -d "$profile_dir"/common ]] && common_dir="${profile_dir}"/common - - [[ -f $profile_dir/${profile}/profile.conf ]] || return 1 - - # shellcheck disable=1090 - [[ -r "$profile_dir/${profile}"/profile.conf ]] && . "$profile_dir/${profile}"/profile.conf - - AUTOLOGIN=${AUTOLOGIN:-true} - - PASSWORD=${PASSWORD:-'artix'} - - if [[ -z "${SERVICES[*]}" ]];then - SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand') - fi - - return 0 -} - -read_from_list() { - local list="$1" - local _space="s| ||g" - local _clean=':a;N;$!ba;s/\n/ /g' - local _com_rm="s|#.*||g" - - local _init="s|@initsys@|${INITSYS}|g" - - msg2 "Loading Packages: [%s] ..." "${list##*/}" - packages+=($(sed "$_com_rm" "$list" \ - | sed "$_space" \ - | sed "$_init" \ - | sed "$_clean")) -} - -read_from_services() { - for svc in "${SERVICES[@]}"; do - case "$svc" in - sddm|gdm|lightdm|mdm|greetd|lxdm|xdm) packages+=("$svc-${INITSYS}") ;; - NetworkManager) packages+=("networkmanager-${INITSYS}") ;; - connmand) packages+=("connman-${INITSYS}") ;; - cupsd) packages+=("cups-${INITSYS}") ;; - bluetoothd) packages+=("bluez-${INITSYS}") ;; - syslog-ng|metalog) packages+=("$svc-${INITSYS}") ;; - esac - done -} - -load_pkgs(){ - local pkglist="$1" - packages=() - - if [[ "${pkglist##*/}" == "Packages-Root" ]]; then - read_from_list "${common_dir}/Packages-base" - read_from_list "${common_dir}/Packages-apps" - read_from_list "${common_dir}/Packages-${INITSYS}" - [[ -n "${live_list}" ]] && read_from_list "${common_dir}/Packages-xorg" - read_from_list "$pkglist" - read_from_services - else - read_from_list "$pkglist" - fi -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/services.sh b/artools/0.26.1/artools/lib/iso/services.sh deleted file mode 100644 index ebc59ed..0000000 --- a/artools/0.26.1/artools/lib/iso/services.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/hint/bash - -#{{{ services - -add_svc_openrc(){ - local mnt="$1" names="$2" rlvl="${3:-default}" - for svc in $names; do - if [[ -f $mnt/etc/init.d/$svc ]];then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" rc-update add "$svc" "$rlvl" &>/dev/null - fi - done -} - -add_svc_runit(){ - local mnt="$1" names="$2" rlvl="${3:-default}" - for svc in $names; do - if [[ -d $mnt/etc/runit/sv/$svc ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" ln -s /etc/runit/sv/"$svc" /etc/runit/runsvdir/"$rlvl" &>/dev/null - fi - done -} - -add_svc_s6(){ - local mnt="$1" names="$2" rlvl="${3:-default}" error ret - local db=/etc/s6/rc/compiled - for svc in $names; do - error=false - chroot "$mnt" s6-rc-db -c "$db" type "$svc" &> /dev/null || error=true - ret="$?" - if [ $ret -eq 0 ] && [[ "$error" == false ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" s6-rc-bundle-update -c "$db" add "$rlvl" "$svc" - fi - done - - local rlvl=/etc/s6/current - # rebuild s6-linux-init binaries - chroot "$mnt" rm -r "$rlvl" - chroot "$mnt" s6-linux-init-maker -1 -N -f /etc/s6/skel -G "/usr/bin/agetty -L -8 tty7 115200" -c "$rlvl" "$rlvl" - chroot "$mnt" mv "$rlvl"/bin/init "$rlvl"/bin/s6-init - chroot "$mnt" cp -a "$rlvl"/bin /usr -} - -add_svc_suite66(){ - local mnt="$1" names="$2" - for svc in $names; do - if [[ -f "$mnt"/etc/66/service/"$svc" ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" 66-enable -t default "$svc" &>/dev/null - fi - done -} - -add_svc_dinit(){ - local mnt="$1" names="$2" - for svc in $names; do - if [[ -d $mnt/etc/dinit.d/boot.d ]]; then - msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" - chroot "$mnt" ln -s ../"$svc" /etc/dinit.d/boot.d/"$svc" &>/dev/null - fi - done -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/squash.sh b/artools/0.26.1/artools/lib/iso/squash.sh deleted file mode 100644 index b860342..0000000 --- a/artools/0.26.1/artools/lib/iso/squash.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/hint/bash - -#{{{ squash - -make_ext_img(){ - local src="$1" - local size=32G - local mnt="${mnt_dir}/${src##*/}" - mkdir -p "${work_dir}"/embed"${live_dir}" - local extimg="${work_dir}/embed${live_dir}/${src##*/}".img - - msg2 "Creating ext4 image of %s ..." "${size}" - truncate -s ${size} "${extimg}" - local ext4_args=() - ext4_args+=("-O ^has_journal,^resize_inode" -E lazy_itable_init=0 -m 0) - mkfs.ext4 "${ext4_args[@]}" -F "${extimg}" &>/dev/null - tune2fs -c 0 -i 0 "${extimg}" &> /dev/null - mount_img "${extimg}" "${mnt}" - msg2 "Copying %s ..." "${src}/" - cp -aT "${src}/" "${mnt}/" - umount_img "${mnt}" -} - -has_changed(){ - local src="$1" dest="$2" - if [[ -f "${dest}" ]]; then - local has_changes - has_changes=$(find "${src}" -newer "${dest}") - if [[ -n "${has_changes}" ]]; then - msg2 "Possible changes for %s ..." "${src}" - msg2 "%s" "${has_changes}" - msg2 "SquashFS image %s is not up to date, rebuilding..." "${dest}" - rm "${dest}" - else - msg2 "SquashFS image %s is up to date, skipping." "${dest}" - return 1 - fi - fi -} - -# $1: image path -make_sfs() { - local sfs_in="$1" - if [[ ! -e "${sfs_in}" ]]; then - error "The path %s does not exist" "${sfs_in}" - retrun 1 - fi - - mkdir -p "${iso_root}${live_dir}" - - local img_name=${sfs_in##*/}.img - - local sfs_out="${iso_root}${live_dir}/${img_name}" - - if has_changed "${sfs_in}" "${sfs_out}"; then - - msg "Generating SquashFS image for %s" "${sfs_in}" - - local mksfs_args=() - - if ${persist};then - make_ext_img "${sfs_in}" - mksfs_args+=("${work_dir}/embed") - else - mksfs_args+=("${sfs_in}") - fi - - mksfs_args+=("${sfs_out}") - - mksfs_args+=(-comp "${COMPRESSION}" "${COMPRESSION_ARGS[@]}" -noappend) - - mksquashfs "${mksfs_args[@]}" - - if ! ${use_dracut}; then - make_checksum "${img_name}" - if [[ -n ${GPG_KEY} ]];then - make_sig "${iso_root}${live_dir}/${img_name}" - fi - fi - if ${persist}; then - rm -r "${work_dir}/embed" - fi - fi -} - -#}}} diff --git a/artools/0.26.1/artools/lib/iso/trap.sh b/artools/0.26.1/artools/lib/iso/trap.sh deleted file mode 100644 index 7c740d8..0000000 --- a/artools/0.26.1/artools/lib/iso/trap.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/hint/bash - -#{{{ trap - -error_function() { - local func="$1" - # first exit all subshells, then print the error - if (( ! BASH_SUBSHELL )); then - error "A failure occurred in %s()." "$func" - plain "Aborting..." - fi - umount_overlayfs - umount_img - exit 2 -} - -run_safe() { - local restoretrap func="$1" - set -e - set -E - restoretrap=$(trap -p ERR) - trap 'error_function $func' ERR - - "$func" - - eval "$restoretrap" - set +E - set +e -} - -trap_exit() { - local sig=$1; shift - error "$@" - umount_overlayfs - trap -- "$sig" - kill "-$sig" "$$" -} - -prepare_traps(){ - for sig in TERM HUP QUIT; do - # shellcheck disable=2064 - trap "trap_exit $sig \"$(gettext "%s signal caught. Exiting...")\" \"$sig\"" "$sig" - done - trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT -# trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR -} - -#}}} diff --git a/artools/0.26.1/artools/lib/pkg/common.sh b/artools/0.26.1/artools/lib/pkg/common.sh deleted file mode 100644 index 1ae0c43..0000000 --- a/artools/0.26.1/artools/lib/pkg/common.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/hint/bash - -#{{{ common functions - -get_compliant_name(){ - local gitname="$1" - case "$gitname" in - *+) gitname=${gitname//+/plus} - esac - echo "$gitname" -} - -get_pkg_org(){ - local pkg="$1" org sub - case ${pkg} in - ruby-*) org="packagesRuby" ;; - perl-*) org="packagesPerl" ;; - python-*|python2-*) org="packagesPython" ;; - *) sub=${pkg:0:1}; org="packages${sub^^}" ;; - esac - echo "$org" -} - -api_put() { - curl -s -X PUT "$@" -} - -api_delete() { - curl -s -X DELETE "$@" -} - -api_post() { - curl -s -X POST "$@" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/pkg/deploy.sh b/artools/0.26.1/artools/lib/pkg/deploy.sh deleted file mode 100644 index 0cce3ff..0000000 --- a/artools/0.26.1/artools/lib/pkg/deploy.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/hint/bash - -#{{{ functions - -find_cached_pkgfile() { - local searchdirs=("$PKGDEST" "$PWD") results=() - local pkg="$1" - for dir in "${searchdirs[@]}"; do - [[ -d "$dir" ]] || continue - [[ -e "$dir/$pkg" ]] && results+=("$dir/$pkg") - done - case ${#results[*]} in - 0) - return 1 - ;; - 1) - printf '%s\n' "${results[0]}" - return 0 - ;; - *) - error 'Multiple packages found:' - printf '\t%s\n' "${results[@]}" >&2 - return 1 - ;; - esac -} - -get_pkgbasename() { - local name="$1" - local rm_pkg=${name%.pkg.tar*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - rm_pkg=${rm_pkg%-*} - echo "$rm_pkg" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/pkg/git.sh b/artools/0.26.1/artools/lib/pkg/git.sh deleted file mode 100644 index bc1f1bf..0000000 --- a/artools/0.26.1/artools/lib/pkg/git.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/hint/bash - -#{{{ git - -get_local_head(){ - git log --pretty=%H ...refs/heads/master^ | head -n 1 -} - -get_remote_head(){ - git ls-remote origin -h refs/heads/master | cut -f1 -} - -has_changeset(){ - local head_l="$1" head_r="$2" - if [[ "$head_l" == "$head_r" ]]; then - msg2 "remote changes: no" - return 1 - else - msg2 "remote changes: yes" - return 0 - fi -} - -pull_tree(){ - local tree="$1" local_head="$2" os="${3:-Artix}" - local remote_head - remote_head=$(get_remote_head) - - msg "Checking (%s) (%s)" "${tree}" "$os" - if has_changeset "${local_head}" "${remote_head}";then - git pull origin master - fi -} - -#}}} diff --git a/artools/0.26.1/artools/lib/pkg/gitea.sh b/artools/0.26.1/artools/lib/pkg/gitea.sh deleted file mode 100644 index fecfb72..0000000 --- a/artools/0.26.1/artools/lib/pkg/gitea.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/hint/bash - -#{{{ gitea api - -add_team_to_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Adding team (%s) to package repo [%s]" "$team" "$name" - - api_put "$url" -H "accept: application/json" -} - -remove_team_from_repo() { - local name="$1" - local org="$2" - local team="$3" - local url - - url="${GIT_URL}/api/v1/repos/$org/$name/teams/$team?access_token=${GIT_TOKEN}" - - msg2 "Removing team (%s) from package repo [%s]" "$team" "$name" - - api_delete "$url" -H "accept: application/json" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/pkg/jenkins.sh b/artools/0.26.1/artools/lib/pkg/jenkins.sh deleted file mode 100644 index 29c7e0f..0000000 --- a/artools/0.26.1/artools/lib/pkg/jenkins.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/hint/bash - -#{{{ jenkins - -write_jenkinsfile(){ - local pkg="$1" - local jenkins=$pkg/Jenkinsfile - - echo "@Library('artix-ci') import org.artixlinux.RepoPackage" > "$jenkins" - { - echo '' - echo 'PackagePipeline(new RepoPackage(this))' - echo '' - } >> "$jenkins" - - git add "$jenkins" -} - -write_agentyaml(){ - local pkg="$1" - local agent="$pkg"/.artixlinux/agent.yaml label='master' - [[ -d $pkg/.artixlinux ]] || mkdir "$pkg"/.artixlinux - - echo '---' > "$agent" - { - echo '' - echo "label: $label" - echo '' - } >> "$agent" - - git add "$agent" -} - -commit_jenkins_files(){ - local pkg="$1" - - write_jenkinsfile "$pkg" - write_agentyaml "$pkg" - - git commit -m "initial commit" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/pkg/repo.sh b/artools/0.26.1/artools/lib/pkg/repo.sh deleted file mode 100644 index b439527..0000000 --- a/artools/0.26.1/artools/lib/pkg/repo.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/hint/bash - -##{{{ repo - -shopt -s extglob - -load_valid_names(){ - local conf - conf="${DATADIR}"/valid-names.conf - [[ -f "$conf" ]] || return 1 - # shellcheck source=/usr/share/artools/valid-names.conf - [[ -r "$conf" ]] && . "$conf" - return 0 -} - -set_arch_repos(){ - local _testing="$1" _staging="$2" _unstable="$3" - [[ -z ${valid_names[*]} ]] && load_valid_names - ARCH_REPOS=("${stable[@]}") - $_testing && ARCH_REPOS+=("${gremlins[@]}") - $_staging && ARCH_REPOS+=("${goblins[@]}") - $_unstable && ARCH_REPOS+=("${wobble[@]}") -} - -find_repo(){ - local pkg="$1" pkgarch="${2:-${CARCH}}" repo - for r in "${ARCH_REPOS[@]}"; do - [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" - [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any - [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" - done - echo "$repo" -} - -find_pkg(){ - local searchdir="$1" pkg="$2" result - result=$(find "$searchdir" -mindepth 2 -maxdepth 2 -type d -name "$pkg") - echo "$result" -} - -tree_loop(){ - local func="$1" pkgs - for tree in "${ARTIX_TREE[@]}"; do - pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) - for _package in ${pkgs}; do - "$func" "$_package" - done - done -} - -#}}} diff --git a/artools/0.26.1/artools/lib/pkg/table.sh b/artools/0.26.1/artools/lib/pkg/table.sh deleted file mode 100644 index fa75320..0000000 --- a/artools/0.26.1/artools/lib/pkg/table.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/hint/bash - -#{{{ table - -msg_table_header(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" -} - -msg_row_yellow(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_green(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" -} - -msg_row_red(){ - local mesg=$1; shift - # shellcheck disable=2059 - printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" -} - -#}}} diff --git a/artools/0.26.1/artools/lib/util-base.sh b/artools/0.26.1/artools/lib/util-base.sh deleted file mode 100644 index d6904ef..0000000 --- a/artools/0.26.1/artools/lib/util-base.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/hint/bash - -#{{{ base conf - -DATADIR=${DATADIR:-'@datadir@/artools'} -SYSCONFDIR=${SYSCONFDIR:-'@sysconfdir@/artools'} - -if [[ -n $SUDO_USER ]]; then - eval "USER_HOME=~$SUDO_USER" -else - USER_HOME=$HOME -fi - -USER_CONF_DIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}/artools" - -prepare_dir(){ - [[ ! -d $1 ]] && mkdir -p "$1" -} - -load_base_config(){ - - local conf="$1/artools-base.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-base.conf - [[ -r "$conf" ]] && . "$conf" - - CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'} - - WORKSPACE_DIR=${WORKSPACE_DIR:-"${USER_HOME}/artools-workspace"} - - return 0 -} - -#}}} - -load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}" - -prepare_dir "${WORKSPACE_DIR}" -prepare_dir "${USER_CONF_DIR}" diff --git a/artools/0.26.1/artools/lib/util-iso.sh b/artools/0.26.1/artools/lib/util-iso.sh deleted file mode 100644 index f2ae4e9..0000000 --- a/artools/0.26.1/artools/lib/util-iso.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/hint/bash - -#{{{ iso conf - -load_iso_config(){ - - local conf="$1/artools-iso.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-iso.conf - [[ -r "$conf" ]] && . "$conf" - - ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"} - - ISO_VERSION=${ISO_VERSION:-"$(date +%Y%m%d)"} - - INITSYS=${INITSYS:-'openrc'} - - GPG_KEY=${GPG_KEY:-''} - - COMPRESSION="${COMPRESSION:-zstd}" - - COMPRESSION_LEVEL="${COMPRESSION_LEVEL:-15}" - - if [[ -z "${COMPRESSION_ARGS[*]}" ]]; then - COMPRESSION_ARGS=(-Xcompression-level "${COMPRESSION_LEVEL}") - fi - - if [[ "${COMPRESSION}" == 'xz' ]]; then - COMPRESSION_ARGS=(-Xbcj x86) - fi - - return 0 -} - -#}}} - -load_iso_config "${USER_CONF_DIR}" || load_iso_config "${SYSCONFDIR}" - -prepare_dir "${ISO_POOL}" diff --git a/artools/0.26.1/artools/lib/util-pkg.sh b/artools/0.26.1/artools/lib/util-pkg.sh deleted file mode 100644 index 30acc3b..0000000 --- a/artools/0.26.1/artools/lib/util-pkg.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/hint/bash - -#{{{ pkg conf - -load_pkg_config(){ - - local conf="$1/artools-pkg.conf" - - [[ -f "$conf" ]] || return 1 - - # shellcheck source=/etc/artools/artools-pkg.conf - [[ -r "$conf" ]] && . "$conf" - - local git_domain="gitea.artixlinux.org" - - GIT_URL=${GIT_URL:-"https://${git_domain}"} - - GIT_SSH=${GIT_SSH:-"gitea@${git_domain}"} - - GIT_TOKEN=${GIT_TOKEN:-''} - - TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} - - ARTIX_TREE=( - packages community - packages-{gfx,media,net} - ) - - local dev_tree=( - packages-{llvm,python,perl,java,ruby,misc} - python-{world,galaxy,galaxy-groups,misc} - ) - - local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) - - local desktop_tree=( - packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} - packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} - ) - - [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ - TREE_NAMES_ARTIX=( - packages-kernel - "${init_tree[@]}" - "${dev_tree[@]}" - "${desktop_tree[@]}" - packages-devel - packages-lib32 - ) - - ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}") - - TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} - - [[ -z ${ARCH_TREE[*]} ]] && \ - ARCH_TREE=(svntogit-{packages,community}) - - REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"} - - REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'} - - HOST_TREE_ARCH=${HOST_TREE_ARCH:-'https://github.com/archlinux'} - - DBEXT=${DBEXT:-'gz'} - - return 0 -} - -#}}} - -load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}" - -prepare_dir "${REPOS_ROOT}" -prepare_dir "${TREE_DIR_ARTIX}" -prepare_dir "${TREE_DIR_ARCH}" diff --git a/artools/0.26.1/artools_0.26.1-1.dsc b/artools/0.26.1/artools_0.26.1-1.dsc index 6075d6d..73e00aa 100644 --- a/artools/0.26.1/artools_0.26.1-1.dsc +++ b/artools/0.26.1/artools_0.26.1-1.dsc @@ -1,6 +1,3 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA512 - Format: 3.0 (quilt) Source: artools Binary: artools @@ -21,21 +18,3 @@ Checksums-Sha256: Files: 9a46f2694252377d63db7b559a69acaf 50212 artools_0.26.1.orig.tar.gz 78abdb6baf78d3112fb7f61ed0f8c272 3112 artools_0.26.1-1.debian.tar.xz - ------BEGIN PGP SIGNATURE----- - -iQJLBAEBCgA1FiEEaGFl8HhSoLfV0hzL3FpvgJJkHi0FAmHbR1QXHG5kb3dlbnNA -YXJ0aXhsaW51eC5vcmcACgkQ3FpvgJJkHi24qg//bdEVCpdydCpZ4z07GRqLIMSw -xZICwFKsIxZWvIcD3XgkkQ3Mm+nOnmWpRycmWulNyWH5M6O2+CNSa24N/Ouucj9r -dwQhY3a/uNyqx8IZaj0S9WpvM2eKBuzg7zVEPCUQ6bUYzDGIkBz29XiMpO8WndBo -U2omhiTJ57XcovOj0Q0FT1hNCyJTsxbvUWZM8Nte3GkBFgksKXUzqQzRxNlAlKL9 -2v4De0mYGrKg/qMyxBaWg5OGFHZq/ugG4f/tL1c8Zkz5tI2+rEbXOCkYaNf6g5FO -Luf2DGzmc6G0lM4Ln8+XueCYQ+YAEiNUcvC7WnVccUei404bO/43kBEhpJ4AsAT5 -cZLjlPolEGsXTvJ5Wk5SGTwyDY3I2dAflfJSu+l1IOaYUxtpCH1OK7tA5wCscpzq -NHGfyv+uviWqQGPjOjJDUZTnyHRZOAOSUbb4sV/q37pkztSjjXBpgWXYiHsUcA6h -3ryFaLU/DFJE0SAHH4pdp63N3oTe2Vcxn2xxzq0EYM5c2g3QS0w0hrV1Ww4X6IPg -qtSBfHO+5URRNb6oWEUsfkz4t62HfnzVNYpU5/XC8ps2AZFoTR8MJibZVLdajlf6 -Y26p+jE6nzBD7dMlvYvNeW6A0X5d5kasKXZjrF6YuGOXMnkKDRhzE8JpfFJuAuXw -P1b+BRcXMo7M/rP6KGo= -=PRDO ------END PGP SIGNATURE----- diff --git a/artools/0.26.1/artools_0.26.1-1_amd64.buildinfo b/artools/0.26.1/artools_0.26.1-1_amd64.buildinfo deleted file mode 100644 index b4aa245..0000000 --- a/artools/0.26.1/artools_0.26.1-1_amd64.buildinfo +++ /dev/null @@ -1,199 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA512 - -Format: 1.0 -Source: artools -Binary: artools -Architecture: amd64 source -Version: 0.26.1-1 -Checksums-Md5: - 0d39cb3aaab0fda4d2b290700dacad7f 1751 artools_0.26.1-1.dsc - 4eacff5378b93e0ba8f727687fa8803f 44370 artools_0.26.1-1_amd64.deb -Checksums-Sha1: - 45a14fe5a49b5b225a70db3dfa0a9c85964ab7a2 1751 artools_0.26.1-1.dsc - 56a18f3c6da4efe0eec7e5bccbaa8946c634435d 44370 artools_0.26.1-1_amd64.deb -Checksums-Sha256: - 758b57574f6c6abc9e3afcaec08029bd955b76a70ba9013915639bc3701d7b95 1751 artools_0.26.1-1.dsc - aa686ef61135df67182987291f10cb68d751de49e1fca1713e742a33a4207635 44370 artools_0.26.1-1_amd64.deb -Build-Origin: Ubuntu -Build-Architecture: amd64 -Build-Date: Sun, 09 Jan 2022 14:36:36 -0600 -Build-Tainted-By: - merged-usr-via-aliased-dirs -Installed-Build-Depends: - autoconf (= 2.69-14), - automake (= 1:1.16.4-2), - autopoint (= 0.21-4ubuntu3), - autotools-dev (= 20180224.1+nmu1), - base-files (= 11.1ubuntu5), - base-passwd (= 3.5.51), - bash (= 5.1-3ubuntu2), - binutils (= 2.37-7ubuntu1), - binutils-common (= 2.37-7ubuntu1), - binutils-x86-64-linux-gnu (= 2.37-7ubuntu1), - bsdextrautils (= 2.36.1-8ubuntu2), - bsdutils (= 1:2.36.1-8ubuntu2), - build-essential (= 12.9ubuntu2), - bzip2 (= 1.0.8-4ubuntu3), - coreutils (= 8.32-4ubuntu2), - cpp (= 4:11.2.0-1ubuntu1), - cpp-11 (= 11.2.0-7ubuntu2), - dash (= 0.5.11+git20210120+802ebd4-1build1), - debconf (= 1.5.77), - debhelper (= 13.3.4ubuntu2), - debianutils (= 4.11.2), - debugedit (= 1:5.0-0ubuntu2), - dh-autoreconf (= 20), - dh-strip-nondeterminism (= 1.12.0-1), - diffutils (= 1:3.8-0ubuntu1), - dpkg (= 1.20.9ubuntu2), - dpkg-dev (= 1.20.9ubuntu2), - dwz (= 0.14-1build1), - file (= 1:5.39-3), - findutils (= 4.8.0-1ubuntu2), - g++ (= 4:11.2.0-1ubuntu1), - g++-11 (= 11.2.0-7ubuntu2), - gcc (= 4:11.2.0-1ubuntu1), - gcc-11 (= 11.2.0-7ubuntu2), - gcc-11-base (= 11.2.0-7ubuntu2), - gettext (= 0.21-4ubuntu3), - gettext-base (= 0.21-4ubuntu3), - grep (= 3.7-0ubuntu1), - groff-base (= 1.22.4-7), - gzip (= 1.10-4ubuntu1), - hostname (= 3.23ubuntu1), - init-system-helpers (= 1.60build1), - install-info (= 6.7.0.dfsg.2-6), - intltool-debian (= 0.35.0+20060710.5), - libacl1 (= 2.2.53-10ubuntu2), - libarchive-zip-perl (= 1.68-1), - libasan6 (= 11.2.0-7ubuntu2), - libatomic1 (= 11.2.0-7ubuntu2), - libattr1 (= 1:2.4.48-6build2), - libaudit-common (= 1:3.0-2ubuntu2), - libaudit1 (= 1:3.0-2ubuntu2), - libbinutils (= 2.37-7ubuntu1), - libblkid1 (= 2.36.1-8ubuntu2), - libbz2-1.0 (= 1.0.8-4ubuntu3), - libc-bin (= 2.34-0ubuntu3), - libc-dev-bin (= 2.34-0ubuntu3), - libc6 (= 2.34-0ubuntu3), - libc6-dev (= 2.34-0ubuntu3), - libcap-ng0 (= 0.7.9-2.2build1), - libcap2 (= 1:2.44-1build1), - libcc1-0 (= 11.2.0-7ubuntu2), - libcom-err2 (= 1.46.3-1ubuntu3), - libcrypt-dev (= 1:4.4.18-4ubuntu1), - libcrypt1 (= 1:4.4.18-4ubuntu1), - libctf-nobfd0 (= 2.37-7ubuntu1), - libctf0 (= 2.37-7ubuntu1), - libdb5.3 (= 5.3.28+dfsg1-0.8ubuntu1), - libdebconfclient0 (= 0.256ubuntu3), - libdebhelper-perl (= 13.3.4ubuntu2), - libdpkg-perl (= 1.20.9ubuntu2), - libdw1 (= 0.185-1build1), - libelf1 (= 0.185-1build1), - libfile-stripnondeterminism-perl (= 1.12.0-1), - libgcc-11-dev (= 11.2.0-7ubuntu2), - libgcc-s1 (= 11.2.0-7ubuntu2), - libgcrypt20 (= 1.8.7-5ubuntu2), - libgdbm-compat4 (= 1.19-2), - libgdbm6 (= 1.19-2), - libgmp10 (= 2:6.2.1+dfsg-1ubuntu2), - libgomp1 (= 11.2.0-7ubuntu2), - libgpg-error0 (= 1.38-2build1), - libgssapi-krb5-2 (= 1.18.3-6), - libicu67 (= 67.1-7ubuntu1), - libisl23 (= 0.24-1), - libitm1 (= 11.2.0-7ubuntu2), - libk5crypto3 (= 1.18.3-6), - libkeyutils1 (= 1.6.1-2ubuntu1), - libkrb5-3 (= 1.18.3-6), - libkrb5support0 (= 1.18.3-6), - liblsan0 (= 11.2.0-7ubuntu2), - liblz4-1 (= 1.9.3-2), - liblzma5 (= 5.2.5-2), - libmagic-mgc (= 1:5.39-3), - libmagic1 (= 1:5.39-3), - libmount1 (= 2.36.1-8ubuntu2), - libmpc3 (= 1.2.0-1build1), - libmpfr6 (= 4.1.0-3build1), - libnsl-dev (= 1.3.0-2build1), - libnsl2 (= 1.3.0-2build1), - libpam-modules (= 1.3.1-5ubuntu11), - libpam-modules-bin (= 1.3.1-5ubuntu11), - libpam-runtime (= 1.3.1-5ubuntu11), - libpam0g (= 1.3.1-5ubuntu11), - libpcre2-8-0 (= 10.37-0ubuntu2), - libpcre3 (= 2:8.39-13build3), - libperl5.32 (= 5.32.1-3ubuntu3), - libpipeline1 (= 1.5.3-1build1), - libquadmath0 (= 11.2.0-7ubuntu2), - libseccomp2 (= 2.5.1-1ubuntu1), - libselinux1 (= 3.1-3build2), - libsigsegv2 (= 2.13-1ubuntu2), - libsmartcols1 (= 2.36.1-8ubuntu2), - libssl1.1 (= 1.1.1l-1ubuntu1.1), - libstdc++-11-dev (= 11.2.0-7ubuntu2), - libstdc++6 (= 11.2.0-7ubuntu2), - libsub-override-perl (= 0.09-2), - libsystemd0 (= 248.3-1ubuntu8.1), - libtinfo6 (= 6.2+20201114-2build1), - libtirpc-common (= 1.3.2-2), - libtirpc-dev (= 1.3.2-2), - libtirpc3 (= 1.3.2-2), - libtool (= 2.4.6-15), - libtsan0 (= 11.2.0-7ubuntu2), - libubsan1 (= 11.2.0-7ubuntu2), - libuchardet0 (= 0.0.7-1build1), - libudev1 (= 248.3-1ubuntu8.1), - libunistring2 (= 0.9.10-6), - libuuid1 (= 2.36.1-8ubuntu2), - libxml2 (= 2.9.12+dfsg-4), - libzstd1 (= 1.4.8+dfsg-2.1), - linux-libc-dev (= 5.13.0-23.23), - login (= 1:4.8.1-1ubuntu9), - lsb-base (= 11.1.0ubuntu3), - lto-disabled-list (= 16), - m4 (= 1.4.18-5ubuntu1), - make (= 4.3-4ubuntu1), - man-db (= 2.9.4-2), - mawk (= 1.3.4.20200120-2), - ncurses-base (= 6.2+20201114-2build1), - ncurses-bin (= 6.2+20201114-2build1), - patch (= 2.7.6-7), - perl (= 5.32.1-3ubuntu3), - perl-base (= 5.32.1-3ubuntu3), - perl-modules-5.32 (= 5.32.1-3ubuntu3), - po-debconf (= 1.0.21+nmu1), - rpcsvc-proto (= 1.4.2-0ubuntu5), - sed (= 4.7-1ubuntu1), - sensible-utils (= 0.0.14), - sysvinit-utils (= 2.96-7ubuntu1), - tar (= 1.34+dfsg-1build1), - util-linux (= 2.36.1-8ubuntu2), - xz-utils (= 5.2.5-2), - zlib1g (= 1:1.2.11.dfsg-2ubuntu7) -Environment: - DEB_BUILD_OPTIONS="parallel=4" - DEB_BUILD_PROFILES="noudeb" - LANG="en_US.UTF-8" - SOURCE_DATE_EPOCH="1641756008" - ------BEGIN PGP SIGNATURE----- - -iQJLBAEBCgA1FiEEaGFl8HhSoLfV0hzL3FpvgJJkHi0FAmHbR1QXHG5kb3dlbnNA -YXJ0aXhsaW51eC5vcmcACgkQ3FpvgJJkHi0IZhAApaYkdKtvoyYjjOLsdziq0vrZ -wVJwRd3UpHkR7+uycoU9VIwcWmC9xQLqkEItZbWihoOuAMzwUfrgavGPLgz0i96s -Jhrq1IoJepCHgWpM8Q6un8hdtO20UzIQ8kFi0pHnBZI8DEXFPjYZJlHccVk/G5pX -SDXMdFS4URBu5VdHIue/BABtYDh8yAOQ02hFEbLlLNkdVTKFvXj1sh2mu5fMSsqC -4sSrC9uE0DMgQZA2lM9iQkmj1djBOczrcMzWwGiy8/DINlsz6ELxrhXv677GV0pj -h5PnSdr562u94Fbjrc4yujq5vVxi2zzAd8f7SmYHB85TN5RZ/EJ3QTq7xstnoIbA -GUmLg/NZdGa0wnp6JZP7SSbeXrJ7ZSJ5EtpGlHB+e9mzATf7z/pHw6j8tOBjPmvH -ZsDRJzHVdtxJycR6CSqCSOnZofyDE/zJcfNJy8kc48PE1B8U6scyrpklNgmjY0ws -btwsuaf7QH0OLsXv5EhcvTcpuyF4ZX7cMMEHPnUz+Qp2fi8J46qhIM8h+spzEjKr -AaWxf9ls7zTKbwOZDivFuinSZi+a4QpkxyApcQfIEvdyNL7X/gG+aptc7oPlOlgM -wE1pVVKHN3PeMaE309nPVpiP4nGiyqDg0cD+fVIemfWagffdM8OIVQUb1mDLPV48 -Kdn55cIls/XHq49I3g0= -=zhrT ------END PGP SIGNATURE----- diff --git a/artools/0.26.1/artools_0.26.1-1_amd64.changes b/artools/0.26.1/artools_0.26.1-1_amd64.changes deleted file mode 100644 index 4df9304..0000000 --- a/artools/0.26.1/artools_0.26.1-1_amd64.changes +++ /dev/null @@ -1,56 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA512 - -Format: 1.8 -Date: Sun, 09 Jan 2022 13:20:08 -0600 -Source: artools -Binary: artools -Built-For-Profiles: noudeb -Architecture: source amd64 -Version: 0.26.1-1 -Distribution: unstable -Urgency: medium -Maintainer: Nathan Owens -Changed-By: Nathan Owens -Description: - artools - Artix linux packaging -Changes: - artools (0.26.1-1) unstable; urgency=medium - . - * Initial release -Checksums-Sha1: - 45a14fe5a49b5b225a70db3dfa0a9c85964ab7a2 1751 artools_0.26.1-1.dsc - 3488d9b1c0df03c5188d3a674ee7b80c15334a38 50212 artools_0.26.1.orig.tar.gz - 0a235203dc49a0432ad84457e70d0b10f9a9114f 3112 artools_0.26.1-1.debian.tar.xz - 29e7d0958463b3250208270653ad97197f608a9e 6524 artools_0.26.1-1_amd64.buildinfo - 56a18f3c6da4efe0eec7e5bccbaa8946c634435d 44370 artools_0.26.1-1_amd64.deb -Checksums-Sha256: - 758b57574f6c6abc9e3afcaec08029bd955b76a70ba9013915639bc3701d7b95 1751 artools_0.26.1-1.dsc - 11fdef1e63cd0c7a3a9ecdeec718a3353352ff9e76a331b4063eebc72a922c49 50212 artools_0.26.1.orig.tar.gz - 5a0b79934ad26a7a8af500700650112ed22b886b21893613ceb646c860b3efcf 3112 artools_0.26.1-1.debian.tar.xz - 064e5ba76b1b81d58ee7645dd12050b56c9158d5f6700209e807523fa48ee0bf 6524 artools_0.26.1-1_amd64.buildinfo - aa686ef61135df67182987291f10cb68d751de49e1fca1713e742a33a4207635 44370 artools_0.26.1-1_amd64.deb -Files: - 0d39cb3aaab0fda4d2b290700dacad7f 1751 misc medium artools_0.26.1-1.dsc - 9a46f2694252377d63db7b559a69acaf 50212 misc medium artools_0.26.1.orig.tar.gz - 78abdb6baf78d3112fb7f61ed0f8c272 3112 misc medium artools_0.26.1-1.debian.tar.xz - 89afd53a2c3161fdb7f16ea417611e69 6524 misc medium artools_0.26.1-1_amd64.buildinfo - 4eacff5378b93e0ba8f727687fa8803f 44370 misc medium artools_0.26.1-1_amd64.deb - ------BEGIN PGP SIGNATURE----- - -iQJLBAEBCgA1FiEEaGFl8HhSoLfV0hzL3FpvgJJkHi0FAmHbR1QXHG5kb3dlbnNA -YXJ0aXhsaW51eC5vcmcACgkQ3FpvgJJkHi1iHA//d8n+uN3AKykL0OTVYCK4Ypkk -3pvdpUw5vJH/0/JskXt1MFFxMo2qywQszYKCHaEwksItUb/1rp7NC6k9O0JoqzHT -ve7MQ6LfHb+A241wFwoBX6GvRASmXtIJFt2tdHa3Bjinq1am6muOLnEagj1k8qqC -pB/vNDbpsAAcZbEEa+bXyFpsXcb3Vzu0IFjqPxOcixUBMnb8NKbiNWUrA4Qhf5aW -DDlWH+x9415Ysm0/Du5OhPTKHylbaPF6xc0Ulkn246Ek3bpi9txFN7exq+awWN3h -bksG37xPi5cXNtcCHQiMwl865r8rKDBmx5TarctpwtuWMG+YU25aQa8dicIGv4Bp -hGUH7/jUAe/7wzWITdHMQ8/8S9Lz5jcgqIiolYCK5e+EDMYsflYcZrYKdhJKiNwE -gGNhiJe/ALlZzaQ4BmIdX2r4N4cXxmiwPp9aBidpqwuGRjMOi7Fe/HbTxvYF1Acv -GAjdDtSzSKM875x17Z8LNY5r3WqUc+GV3UQgE9rIWL3BfbYZKzw1GFOF4/VRlrrF -3CrcpXADSJtG2f3A4J/GcbxnWGVz2Ive8EAzje4QsIStq6QqoOl2jkMUEi7HFJ8H -djDwcKLMmmMFE7tpF6Bvqn3SA23SkKE3v/oQWpAAjL2UXhCz+V/z1nnK3eLvUc8R -wFGfPZv5YmiOG0oA92U= -=cvnx ------END PGP SIGNATURE-----