Initial commit
This commit is contained in:
commit
73120dca56
10 changed files with 383 additions and 0 deletions
54
.SRCINFO
Normal file
54
.SRCINFO
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
pkgbase = libpamac-aur
|
||||||
|
pkgdesc = Pamac package manager library based on libalpm
|
||||||
|
pkgver = 11.7.3
|
||||||
|
pkgrel = 4
|
||||||
|
url = https://github.com/manjaro/libpamac/
|
||||||
|
install = pamac.install
|
||||||
|
arch = i686
|
||||||
|
arch = x86_64
|
||||||
|
arch = arm
|
||||||
|
arch = armv6h
|
||||||
|
arch = armv7h
|
||||||
|
arch = aarch64
|
||||||
|
license = GPL-3.0-or-later
|
||||||
|
makedepends = asciidoc
|
||||||
|
makedepends = gettext
|
||||||
|
makedepends = gobject-introspection
|
||||||
|
makedepends = itstool
|
||||||
|
makedepends = meson
|
||||||
|
makedepends = ninja
|
||||||
|
makedepends = systemd
|
||||||
|
makedepends = vala>=0.46
|
||||||
|
depends = appstream
|
||||||
|
depends = appstream-glib>=0.7.18-1
|
||||||
|
depends = archlinux-appstream-data
|
||||||
|
depends = bash
|
||||||
|
depends = dbus-glib
|
||||||
|
depends = git
|
||||||
|
depends = glib2>=2.42
|
||||||
|
depends = glibc
|
||||||
|
depends = gnutls>=3.4
|
||||||
|
depends = json-glib
|
||||||
|
depends = libalpm.so=15
|
||||||
|
depends = libnotify
|
||||||
|
depends = libsoup3
|
||||||
|
depends = pacman>=7.0
|
||||||
|
depends = polkit
|
||||||
|
depends = vte3>=0.38
|
||||||
|
depends = flatpak
|
||||||
|
provides = libpamac.so=11
|
||||||
|
provides = libpamac-appstream.so=11
|
||||||
|
provides = libpamac=11.7.3
|
||||||
|
conflicts = libpamac
|
||||||
|
conflicts = libpamac-all
|
||||||
|
options = !emptydirs
|
||||||
|
options = !strip
|
||||||
|
backup = etc/pamac.conf
|
||||||
|
source = libpamac-11.7.3-4.zip::https://github.com/manjaro/libpamac//archive/087af94264cf1e79a809a2f5dbb570a617e09d45.zip
|
||||||
|
source = fix-appstream-data.sh
|
||||||
|
source = fix-appstream-data.hook
|
||||||
|
b2sums = 81e60cdb7e3391505626903b53c858b9faf586b5158d1ba6d232382d7103cb7a1d8eb18a880e50a24097eb7243d4b17842fa7f1fe321793e962d1bd4862b5207
|
||||||
|
b2sums = 8107b9fa09bcb78d9f5cc60b3e57681c19013822eee2ec73d6ba41b35be2337cdeb15c8959879dea0c6022110328cd3ae373e2e9a0be6b29ea29220144ccea99
|
||||||
|
b2sums = e7c51e95d0a14ac872df803a15ba6afb96d500b0c9f274b5c34e994557a4b4b6bcbdb100172dd16d7862f97719927d6b313171ffc1a41046badc81dbbc6f4d16
|
||||||
|
|
||||||
|
pkgname = libpamac-aur
|
||||||
19
.gitignore
vendored
Normal file
19
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Ignore everything
|
||||||
|
*
|
||||||
|
|
||||||
|
# But not these files...
|
||||||
|
!.gitignore
|
||||||
|
!PKGBUILD
|
||||||
|
!.SRCINFO
|
||||||
|
!LICENSE
|
||||||
|
!chroot-build
|
||||||
|
!.nvchecker.toml
|
||||||
|
!/keys
|
||||||
|
!/keys/pgp
|
||||||
|
!/keys/pgp/*.asc
|
||||||
|
!/LICENSES
|
||||||
|
!/LICENSES/*.txt
|
||||||
|
!REUSE.toml
|
||||||
|
!*.hook
|
||||||
|
!*.install
|
||||||
|
!.sh
|
||||||
3
.nvchecker.toml
Normal file
3
.nvchecker.toml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[libpamac-aur]
|
||||||
|
source = "git"
|
||||||
|
git = "https://github.com/manjaro/libpamac.git"
|
||||||
12
LICENSE
Normal file
12
LICENSE
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
Copyright Arch Linux Contributors
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for
|
||||||
|
any purpose with or without fee is hereby granted.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
|
||||||
|
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
||||||
|
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
|
||||||
|
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||||
|
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
1
LICENSES/0BSD.txt
Symbolic link
1
LICENSES/0BSD.txt
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../LICENSE
|
||||||
120
PKGBUILD
Normal file
120
PKGBUILD
Normal file
|
|
@ -0,0 +1,120 @@
|
||||||
|
# Maintainer: Christian Schendel <doppelhelix@gmail.com>
|
||||||
|
# Contributor: Zeph <zeph33@gmail.com>
|
||||||
|
# https://gitlab.manjaro.org/packages/extra/libpamac
|
||||||
|
ENABLE_FLATPAK=1
|
||||||
|
ENABLE_SNAPD=0
|
||||||
|
|
||||||
|
pkgname=libpamac-aur
|
||||||
|
pkgver=11.7.3
|
||||||
|
pkgrel=4
|
||||||
|
_pkgfixver=$pkgver
|
||||||
|
|
||||||
|
_commit='087af94264cf1e79a809a2f5dbb570a617e09d45'
|
||||||
|
b2sums=('81e60cdb7e3391505626903b53c858b9faf586b5158d1ba6d232382d7103cb7a1d8eb18a880e50a24097eb7243d4b17842fa7f1fe321793e962d1bd4862b5207'
|
||||||
|
'8107b9fa09bcb78d9f5cc60b3e57681c19013822eee2ec73d6ba41b35be2337cdeb15c8959879dea0c6022110328cd3ae373e2e9a0be6b29ea29220144ccea99'
|
||||||
|
'e7c51e95d0a14ac872df803a15ba6afb96d500b0c9f274b5c34e994557a4b4b6bcbdb100172dd16d7862f97719927d6b313171ffc1a41046badc81dbbc6f4d16')
|
||||||
|
|
||||||
|
pkgdesc="Pamac package manager library based on libalpm"
|
||||||
|
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
|
||||||
|
url="https://github.com/manjaro/libpamac/"
|
||||||
|
license=('GPL-3.0-or-later')
|
||||||
|
depends=(
|
||||||
|
appstream
|
||||||
|
'appstream-glib>=0.7.18-1'
|
||||||
|
archlinux-appstream-data
|
||||||
|
bash
|
||||||
|
dbus-glib
|
||||||
|
git
|
||||||
|
'glib2>=2.42'
|
||||||
|
glibc
|
||||||
|
'gnutls>=3.4'
|
||||||
|
json-glib
|
||||||
|
'libalpm.so=15'
|
||||||
|
libnotify
|
||||||
|
libsoup3
|
||||||
|
'pacman>=7.0'
|
||||||
|
polkit
|
||||||
|
'vte3>=0.38'
|
||||||
|
)
|
||||||
|
makedepends=(
|
||||||
|
asciidoc
|
||||||
|
gettext
|
||||||
|
gobject-introspection
|
||||||
|
itstool
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
systemd
|
||||||
|
'vala>=0.46'
|
||||||
|
)
|
||||||
|
backup=(
|
||||||
|
'etc/pamac.conf'
|
||||||
|
)
|
||||||
|
conflicts=(
|
||||||
|
'libpamac'
|
||||||
|
'libpamac-all'
|
||||||
|
)
|
||||||
|
provides=(
|
||||||
|
'libpamac.so=11'
|
||||||
|
'libpamac-appstream.so=11'
|
||||||
|
"libpamac=$_pkgfixver"
|
||||||
|
)
|
||||||
|
options=(!emptydirs !strip)
|
||||||
|
install=pamac.install
|
||||||
|
source=(
|
||||||
|
"libpamac-$pkgver-$pkgrel.zip::$url/archive/$_commit.zip"
|
||||||
|
'fix-appstream-data.sh'
|
||||||
|
'fix-appstream-data.hook'
|
||||||
|
)
|
||||||
|
|
||||||
|
define_meson=''
|
||||||
|
if [ "${ENABLE_FLATPAK}" = 1 ]; then
|
||||||
|
depends+=('flatpak')
|
||||||
|
define_meson+=' -Denable-flatpak=true'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${ENABLE_SNAPD}" = 1 ]; then
|
||||||
|
depends+=('snapd' 'snapd-glib')
|
||||||
|
define_meson+=' -Denable-snap=true'
|
||||||
|
fi
|
||||||
|
|
||||||
|
create_links() {
|
||||||
|
# create soname links
|
||||||
|
find "$pkgdir" -type f -name '*.so*' ! -path '*xorg/*' -print0 | while read -d $'\0' _lib; do
|
||||||
|
_soname=$(dirname "${_lib}")/$(readelf -d "${_lib}" | grep -Po 'SONAME.*: \[\K[^]]*' || true)
|
||||||
|
_base=$(echo ${_soname} | sed -r 's/(.*)\.so.*/\1.so/')
|
||||||
|
[[ -e "${_soname}" ]] || ln -s $(basename "${_lib}") "${_soname}"
|
||||||
|
[[ -e "${_base}" ]] || ln -s $(basename "${_soname}") "${_base}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$srcdir/libpamac-$_commit"
|
||||||
|
# adjust version string
|
||||||
|
sed -i -e "s|\"$_pkgfixver\"|\"$pkgver-$pkgrel\"|g" src/version.vala
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$srcdir/libpamac-$_commit"
|
||||||
|
mkdir -p builddir
|
||||||
|
cd builddir
|
||||||
|
meson setup \
|
||||||
|
--buildtype=release \
|
||||||
|
-Denable-aur=true \
|
||||||
|
-Denable-appstream=true \
|
||||||
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc $define_meson
|
||||||
|
# build
|
||||||
|
meson compile
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/libpamac-$_commit/builddir"
|
||||||
|
DESTDIR="$pkgdir" ninja install
|
||||||
|
# fix appstream issue
|
||||||
|
install -Dm644 "$srcdir/fix-appstream-data.hook" "$pkgdir/etc/pacman.d/hooks/fix-appstream-data.hook"
|
||||||
|
install -Dm755 "$srcdir/fix-appstream-data.sh" "$pkgdir/etc/pacman.d/hooks.bin/fix-appstream-data.sh"
|
||||||
|
create_links
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# vim: set ft=sh ts=4 sw=4 et:
|
||||||
30
REUSE.toml
Normal file
30
REUSE.toml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = [
|
||||||
|
"PKGBUILD",
|
||||||
|
"README.md",
|
||||||
|
"keys/**",
|
||||||
|
".SRCINFO",
|
||||||
|
".nvchecker.toml",
|
||||||
|
".gitignore",
|
||||||
|
"*.install",
|
||||||
|
"*.sysusers",
|
||||||
|
"*.tmpfiles",
|
||||||
|
"*.logrotate",
|
||||||
|
"*.pam",
|
||||||
|
"*.service",
|
||||||
|
"*.socket",
|
||||||
|
"*.timer",
|
||||||
|
"*.desktop",
|
||||||
|
"*.hook",
|
||||||
|
]
|
||||||
|
SPDX-FileCopyrightText = "Arch Linux contributors"
|
||||||
|
SPDX-License-Identifier = "0BSD"
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = [
|
||||||
|
"fix-appstream-data.sh",
|
||||||
|
]
|
||||||
|
SPDX-FileCopyrightText = "Arch Linux contributors"
|
||||||
|
SPDX-License-Identifier = "0BSD"
|
||||||
65
chroot-build
Executable file
65
chroot-build
Executable file
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: Christian Schendel
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
use_tmpfs=true
|
||||||
|
CHROOT="/tmp/mkarchroot"
|
||||||
|
|
||||||
|
check_available_ram() {
|
||||||
|
if [ "$(awk '/^MemAvailable:/ { print $2; }' /proc/meminfo)" -lt 50000 ]; then
|
||||||
|
use_tmpfs=false
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
create_chroot_directory() {
|
||||||
|
if [ $use_tmpfs ]; then
|
||||||
|
sudo mount --mkdir -t tmpfs -o defaults,size=20G tmpfs $CHROOT
|
||||||
|
else
|
||||||
|
sudo mkdir -p "$CHROOT"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
create_chroot_environment() {
|
||||||
|
if [[ ! -d "$CHROOT/root" ]]; then
|
||||||
|
mkarchroot -M ~/.config/pacman/makepkg.conf "$CHROOT/root" base-devel
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
build_package(){
|
||||||
|
arch-nspawn "$CHROOT/root" pacman -Syu
|
||||||
|
if makechrootpkg -c -r "$CHROOT" -- -Asf . ; then
|
||||||
|
makepkg --printsrcinfo >.SRCINFO
|
||||||
|
else
|
||||||
|
delete_chroot_environment && echo -e "\n\e[1;31m==> BUILD FAILED: \e[1;37m$CHROOT removed\e[0m " && exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
sign_package(){
|
||||||
|
PACKAGE="$(makepkg --packagelist)"
|
||||||
|
gpg --use-agent --output "$PACKAGE.sig" --detach-sign "$PACKAGE"
|
||||||
|
}
|
||||||
|
|
||||||
|
delete_chroot_environment() {
|
||||||
|
if [ "$(stat -f --format=%T "$CHROOT")" == "btrfs" ]; then
|
||||||
|
{
|
||||||
|
sudo btrfs subvolume delete "$CHROOT/root/var/lib/portables"
|
||||||
|
sudo btrfs subvolume delete "$CHROOT/root/var/lib/machines"
|
||||||
|
sudo btrfs subvolume delete "$CHROOT/root"
|
||||||
|
sudo rm -Rf $CHROOT
|
||||||
|
} >>/dev/null 2>&1
|
||||||
|
elif [ "$(stat -f --format=%T "$CHROOT")" == "tmpfs" ]; then
|
||||||
|
sudo umount -f $CHROOT
|
||||||
|
fi
|
||||||
|
sudo rm -Rf $CHROOT
|
||||||
|
}
|
||||||
|
|
||||||
|
check_available_ram
|
||||||
|
create_chroot_directory
|
||||||
|
create_chroot_environment
|
||||||
|
build_package
|
||||||
|
sign_package
|
||||||
|
delete_chroot_environment
|
||||||
|
|
||||||
|
# vim: set ts=4 sw=4 et:
|
||||||
14
fix-appstream-data.hook
Normal file
14
fix-appstream-data.hook
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Type = Path
|
||||||
|
Target = usr/share/swcatalog/xmls/*.xml.gz
|
||||||
|
|
||||||
|
# attention: hook name before: update-appstream-cache.hook
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = fix appstream datas for pamac
|
||||||
|
When = PostTransaction
|
||||||
|
Depends = gzip
|
||||||
|
Exec = /etc/pacman.d/hooks.bin/fix-appstream-data.sh
|
||||||
|
NeedsTargets
|
||||||
65
pamac.install
Normal file
65
pamac.install
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
msg() {
|
||||||
|
ALL_OFF="\e[1;0m"
|
||||||
|
BOLD="\e[1;1m"
|
||||||
|
GREEN="${BOLD}\e[1;32m"
|
||||||
|
local mesg=$1; shift
|
||||||
|
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_conf() {
|
||||||
|
PAMAC_NEW="$(date +%m%d%M%S)"
|
||||||
|
if [ -f "/etc/pamac.conf.pacsave" ]; then
|
||||||
|
msg "You had an old /etc/pamac.conf.pacsave file. We restore it for you."
|
||||||
|
msg "You can find your new pamac.conf saved as \`/etc/pamac-new-${PAMAC_NEW}.conf\`"
|
||||||
|
mv /etc/pamac.conf /etc/pamac-new-${PAMAC_NEW}.conf
|
||||||
|
mv /etc/pamac.conf.pacsave /etc/pamac.conf
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
post_install() {
|
||||||
|
# remove file (#28, #29)
|
||||||
|
[[ -e /var/tmp/pamac/dbs/sync/refresh_timestamp ]] && rm -f /var/tmp/pamac/dbs/sync/refresh_timestamp
|
||||||
|
# enable flatpak repo
|
||||||
|
if [ -f /usr/bin/flatpak ]; then
|
||||||
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
fi
|
||||||
|
# enable systemd timers
|
||||||
|
mkdir -p /etc/systemd/system/timers.target.wants
|
||||||
|
ln -sf /usr/lib/systemd/system/pamac-cleancache.timer /etc/systemd/system/timers.target.wants/pamac-cleancache.timer
|
||||||
|
# ln -sf /usr/lib/systemd/system/pamac-mirrorlist.timer /etc/systemd/system/timers.target.wants/pamac-mirrorlist.timer
|
||||||
|
# polkit agent
|
||||||
|
printf '==> An authentication agent is required\n'
|
||||||
|
printf ' Cinnamon, Deepin, GNOME, GNOME Flashback, KDE, LXDE, LXQt, MATE and Xfce\n'
|
||||||
|
printf ' have an authentication agent already.\n'
|
||||||
|
printf ' See https://wiki.archlinux.org/index.php/Polkit#Authentication_agents\n'
|
||||||
|
printf ' for other desktop environments.\n'
|
||||||
|
# restore old conf
|
||||||
|
restore_conf
|
||||||
|
}
|
||||||
|
|
||||||
|
post_upgrade() {
|
||||||
|
# remove file (#28, #29)
|
||||||
|
[[ -e /var/tmp/pamac/dbs/sync/refresh_timestamp ]] && rm -f /var/tmp/pamac/dbs/sync/refresh_timestamp
|
||||||
|
|
||||||
|
# restore old conf
|
||||||
|
if [ "$(vercmp $2 7.3.5-3)" -lt 0 ]; then
|
||||||
|
restore_conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(vercmp $2 8.0.3-5)" -lt 0 ]; then
|
||||||
|
# remove wrong placed symlinks
|
||||||
|
msg "Updating timer symlinks"
|
||||||
|
[[ -e /etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer ]] && rm -f /etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer
|
||||||
|
# [[ -e /etc/systemd/system/multi-user.target.wants/pamac-mirrorlist.timer ]] && rm -f /etc/systemd/system/multi-user.target.wants/pamac-mirrorlist.timer
|
||||||
|
# enable systemd timers
|
||||||
|
mkdir -p /etc/systemd/system/timers.target.wants
|
||||||
|
ln -sf /usr/lib/systemd/system/pamac-cleancache.timer /etc/systemd/system/timers.target.wants/pamac-cleancache.timer
|
||||||
|
# ln -sf /usr/lib/systemd/system/pamac-mirrorlist.timer /etc/systemd/system/timers.target.wants/pamac-mirrorlist.timer
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
post_remove() {
|
||||||
|
# disable systemd timers
|
||||||
|
rm -f /etc/systemd/system/timers.target.wants/pamac-cleancache.timer
|
||||||
|
# rm -f /etc/systemd/system/timers.target.wants/pamac-mirrorlist.timer
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue