Kaydet (Commit) 45c08d92 authored tarafından Efe Çetin's avatar Efe Çetin

Add Arch Linux support.

üst b487c1b5
#!/bin/bash
_get_build_deps(){
needed=""
for i in ${builddepends[@]}
do
[ -f /info/$i ] || needed="$needed $i"
done
if [ "$needed" != "" ] ; then
err "Missing: $needed"
su -c "pacman -S $needed" || exit 1
fi
}
......@@ -7,6 +7,8 @@ elif [ -d /var/lib/dpkg/ ] ; then
export DISTRO="Debian"
elif [ -d /var/lib/inary ] ; then
export DISTRO="Sulin"
elif [ -d /var/lib/pacman ] ; then
export DISTRO="Arch Linux"
else
export DISTRO="Unknown"
fi
......
......@@ -4,6 +4,8 @@ if [ "$HOST" == "" ] ; then
export HOST=debian
elif [ -d /var/lib/inary ] ; then
export HOST=inary
elif [ -d /var/lib/pacman ] ; then
export HOST=arch
else
export HOST=default
fi
......
......@@ -4,6 +4,8 @@ if [ "$TARGET" == "" ] ; then
export TARGET=debian
elif [ -d /var/lib/inary ] ; then
export TARGET=inary
elif [ -d /var/lib/pacman ] ; then
export TARGET=arch
else
export TARGET=default
fi
......@@ -20,6 +22,10 @@ elif [ "$TARGET" == "inary" ] ; then
if [ "$arch" == "" ] ; then
arch="$(uname -m)"
fi
elif [ "$TARGET" == "arch" ] ; then
if [ "$arch" == "" ] ; then
arch="$(uname -m)"
fi
fi
set -e
info "Target=$TARGET"
......
#!/bin/bash
SOURCE_DATE_EPOCH=$(date +'%s')
if ! type -p gettext >/dev/null; then
gettext() {
printf "%s\n" "$@"
}
fi
write_kv_pair() {
local key="$1"
shift
for val in "$@"; do
if [[ $val = *$'\n'* ]]; then
error "$(gettext "Invalid value for %s: %s")" "$key" "$val"
exit $E_PKGBUILD_ERROR
fi
printf "%s = %s\n" "$key" "$val"
done
}
list_package_files() {
(
export LC_COLLATE=C
shopt -s dotglob globstar
# bash 5.0 only works with combo directory + file globs
printf '%s\0' **/*
)
}
__write_pkginfo() {
#Create .PKGINFO
echo -e "# Generated by unibuild"
echo -e "# using $(fakeroot -v)"
echo -e "pkgname = $name"
echo -e "pkgbase = $name"
echo -e "pkgver = $version-$release"
echo -e "pkgdesc = $description"
echo -e "url = $url"
echo -e "builddate = $SOURCE_DATE_EPOCH"
echo -e "packager = $maintainer"
echo -e "size = $(du -sb $INSTALLDIR | cut -f1)"
echo -e "arch = $arch"
echo -e "license = $license"
write_kv_pair "replaces" "${replaces[@]}"
write_kv_pair "group" "${groups[@]}"
write_kv_pair "conflict" "${conflicts[@]}"
write_kv_pair "provides" "${provides[@]}"
write_kv_pair "backup" "${backup[@]}"
write_kv_pair "depend" "${depends[@]}"
write_kv_pair "optdepend" "${optdepends[@]//+([[:space:]])/ }"
write_kv_pair "makedepend" "${builddepends[@]}"
write_kv_pair "checkdepend" "${checkdepends[@]}"
}
__write_buildinfo() {
#Create .BUILDINFO
echo -e "format = 2" >> $PKGDIR/.BUILDINFO
echo -e "pkgname = $name" >> $PKGDIR/.BUILDINFO
echo -e "pkgbase = $name" >> $PKGDIR/.BUILDINFO
echo -e "pkgver = $version-$release" >> $PKGDIR/.BUILDINFO
echo -e "pkgarch = $arch" >> $PKGDIR/.BUILDINFO
local sum="$(sha256sum "$CURDIR/$name")"
sum=${sum%% *}
echo -e "pkgbuild_sha256sum = $sum" >> $PKGDIR/.BUILDINFO
echo -e "packager = $maintainer" >> $PKGDIR/.BUILDINFO
echo -e "builddate = $SOURCE_DATE_EPOCH" >> $PKGDIR/.BUILDINFO
echo -e "builddir = $BUILDDIR" >> $PKGDIR/.BUILDINFO
local pkginfos_parsed=($(LC_ALL=pkexec sh -c "pacman -Qi" | awk -F': ' '\
/^Name .*/ {printf "%s", $2} \
/^Version .*/ {printf "-%s", $2} \
/^Architecture .*/ {print "-"$2} \
'))
write_kv_pair "installed" "${pkginfos_parsed[@]}"
}
_create_metadata(){
__write_pkginfo >> $PKGDIR/.PKGINFO
__write_buildinfo >> $PKGDIR/.BUILDINFO
}
_package(){
cp -prfv $INSTALLDIR/* $PKGDIR/
cd $PKGDIR
#Create .MTREE
list_package_files | LANG=C bsdtar -cnf - --format=mtree \
--options='!all,use-set,type,uid,gid,mode,time,size,md5,sha256,link' \
--null --files-from - --exclude .MTREE | gzip -c -f -n > .MTREE
tar --zstd -cf $CURDIR/$name-$version-$release.pkg.tar.zst * .PKGINFO .BUILDINFO
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment