forked from artix/artools
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
e551f42888 | |||
ad33bccd49 | |||
31eeaa9a0d |
3
Makefile
3
Makefile
@@ -1,4 +1,4 @@
|
||||
VERSION=0.18
|
||||
VERSION=0.19
|
||||
|
||||
CHROOT_VERSION=0.10
|
||||
|
||||
@@ -116,7 +116,6 @@ ISO_LIBS = \
|
||||
|
||||
ISO_UTIL = lib/util-iso.sh
|
||||
|
||||
|
||||
DIRMODE = -dm0755
|
||||
FILEMODE = -m0644
|
||||
MODE = -m0755
|
||||
|
@@ -16,46 +16,28 @@
|
||||
|
||||
prepare_artools
|
||||
|
||||
get_pkgbasename(){
|
||||
local pkg="$1"
|
||||
local pkgbasename name ver rel arch
|
||||
|
||||
pkgbasename=${pkg%.pkg.tar*}
|
||||
arch=${pkgbasename##*-}
|
||||
pkgbasename=${pkgbasename%-"$arch"}
|
||||
|
||||
rel=${pkgbasename##*-}
|
||||
pkgbasename=${pkgbasename%-"$rel"}
|
||||
|
||||
ver=${pkgbasename##*-}
|
||||
|
||||
name=${pkgbasename%-"$ver"}
|
||||
echo $name
|
||||
}
|
||||
|
||||
add(){
|
||||
packages+=("$pkg.$ext")
|
||||
action='add'
|
||||
ln -sf "${pkgfile}"{,.sig} "$repo_path"/
|
||||
pkg=${pkgname%.*}
|
||||
for ext in zst xz;do
|
||||
if pkgfile=$(find_cached_pkgfile "$pkg.$ext");then
|
||||
msg "Found: %s" "${pkgfile}"
|
||||
packages+=("$pkg.$ext")
|
||||
action='add'
|
||||
ln -sf "${pkgfile}"{,.sig} "$repo_path"/
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
remove(){
|
||||
local to_remove=$(get_pkgbasename "$pkg.$ext")
|
||||
packages+=("$to_remove")
|
||||
packages+=("$pkgname")
|
||||
action='remove'
|
||||
rm "$repo_path"/"$to_remove"*pkg.tar*
|
||||
rm "$repo_path"/"$pkgname"*pkg.tar*
|
||||
}
|
||||
|
||||
repo_action(){
|
||||
local packages=() action= func="$1"
|
||||
for pkgname in ${passfiles[@]}; do
|
||||
pkg=${pkgname%.*}
|
||||
for ext in zst xz;do
|
||||
if pkgfile=$(find_cached_pkgfile "$pkg.$ext");then
|
||||
msg "Found: %s" "${pkgfile}"
|
||||
"$func"
|
||||
fi
|
||||
done
|
||||
"$func"
|
||||
done
|
||||
cd $repo_path
|
||||
if [[ -n "$action" ]]; then
|
||||
|
@@ -14,7 +14,7 @@
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
|
||||
write_attr(){
|
||||
srcyaml_write_attr(){
|
||||
local ident1="$1" ident2="$2" ident3="$3"
|
||||
local attrname=$4 attrvalues=("${@:5}")
|
||||
|
||||
@@ -24,47 +24,41 @@ write_attr(){
|
||||
attrvalues=("${attrvalues[@]%[[:space:]]}")
|
||||
|
||||
case $attrname in
|
||||
makedepends|checkdepends|depends|provides|arch)
|
||||
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
|
||||
;;
|
||||
*)
|
||||
for v in ${attrvalues[@]};do
|
||||
Yaml+=$(write_yaml_map $ident3 "$attrname" "$v")
|
||||
done
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
extract_info() {
|
||||
pkgbuild_extract_to_yaml() {
|
||||
local pkgname=$1 attrname=$2 isarray=$3 outvalue=
|
||||
|
||||
if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; then
|
||||
[[ -z $pkgname ]] && write_attr 2 4 2 "$attrname" "${outvalue[@]}"
|
||||
[[ -n $pkgname ]] && write_attr 4 6 2 "$attrname" "${outvalue[@]}"
|
||||
[[ -z $pkgname ]] && srcyaml_write_attr 2 4 2 "$attrname" "${outvalue[@]}"
|
||||
[[ -n $pkgname ]] && srcyaml_write_attr 4 6 2 "$attrname" "${outvalue[@]}"
|
||||
fi
|
||||
}
|
||||
|
||||
write_details() {
|
||||
srcyaml_write_section_details() {
|
||||
local attr package_arch a
|
||||
local multivalued_arch_attrs=(provides depends makedepends checkdepends)
|
||||
|
||||
local singlevalued=()
|
||||
local multivalued=(arch provides depends checkdepends)
|
||||
|
||||
if [[ -z "$1" ]];then
|
||||
singlevalued=(pkgver pkgrel epoch)
|
||||
multivalued=(arch provides depends makedepends checkdepends)
|
||||
fi
|
||||
local multivalued_arch_attrs=(source provides conflicts depends replaces
|
||||
optdepends makedepends checkdepends)
|
||||
# "${known_hash_algos[@]/%/sums}")
|
||||
|
||||
for attr in "${singlevalued[@]}"; do
|
||||
extract_info "$1" "$attr" 0
|
||||
pkgbuild_extract_to_yaml "$1" "$attr" 0
|
||||
done
|
||||
|
||||
for attr in "${multivalued[@]}"; do
|
||||
extract_info "$1" "$attr" 1
|
||||
pkgbuild_extract_to_yaml "$1" "$attr" 1
|
||||
done
|
||||
|
||||
get_pkgbuild_attribute "$1" 'arch' 1 'package_arch'
|
||||
@@ -73,47 +67,55 @@ write_details() {
|
||||
[[ $a = any ]] && continue
|
||||
|
||||
for attr in "${multivalued_arch_attrs[@]}"; do
|
||||
extract_info "$1" "${attr}_$a" 1
|
||||
pkgbuild_extract_to_yaml "$1" "${attr}_$a" 1
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
write_pkg_yaml(){
|
||||
|
||||
Yaml=$(write_yaml_header)
|
||||
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)
|
||||
|
||||
local full=$(get_full_version)
|
||||
|
||||
local ver=${full:-0}
|
||||
|
||||
pkgbase=${pkgbase:-${pkgname[0]}}
|
||||
|
||||
Yaml+=$(write_yaml_map 0 "pkgbase")
|
||||
Yaml+=$(write_yaml_map 2 "pkgname" "${pkgbase}")
|
||||
${details} && write_details ''
|
||||
Yaml+=$(write_yaml_map 2 "fullver" "${ver}")
|
||||
|
||||
Yaml+=$(write_yaml_map 2 "name" "${pkgbase:-$pkgname}")
|
||||
${details} && srcyaml_write_section_details ''
|
||||
Yaml+=$(write_empty_line)
|
||||
}
|
||||
|
||||
Yaml+=$(write_yaml_map 0 "package")
|
||||
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} && write_details "$pkg"
|
||||
${details} && srcyaml_write_section_details "$pkg"
|
||||
done
|
||||
|
||||
Yaml+=$(write_empty_line)
|
||||
}
|
||||
|
||||
yaml_write_fileinfo(){
|
||||
local version=$(get_full_version)
|
||||
Yaml+=$(write_yaml_map 0 "version" "${version:-0}")
|
||||
Yaml+=$(write_empty_line)
|
||||
local pkgfile=$(print_all_package_names)
|
||||
|
||||
Yaml+=$(write_yaml_map 0 "pkgfile")
|
||||
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}"
|
||||
}
|
||||
|
||||
@@ -139,11 +141,13 @@ done
|
||||
|
||||
shift $(( $OPTIND - 1 ))
|
||||
|
||||
[[ -f "$1"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$1"
|
||||
PACKAGE="$1"/PKGBUILD; shift
|
||||
srcpath=$(readlink -f "$1")
|
||||
|
||||
[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath"
|
||||
PACKAGE="$srcpath"/PKGBUILD; shift
|
||||
|
||||
. "$PACKAGE"
|
||||
|
||||
load_makepkg_config
|
||||
|
||||
write_pkg_yaml
|
||||
write_srcyaml
|
||||
|
111
data/pacman/pacman-docker.conf
Normal file
111
data/pacman/pacman-docker.conf
Normal file
@@ -0,0 +1,111 @@
|
||||
#
|
||||
# /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
|
||||
#TotalDownload
|
||||
CheckSpace
|
||||
VerbosePkgLists
|
||||
|
||||
|
||||
# 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 archlinux 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
|
||||
|
||||
#
|
||||
# ARCHLINUX
|
||||
#
|
||||
|
||||
#[extra]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[community]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
||||
|
||||
#[multilib]
|
||||
#Include = /etc/pacman.d/mirrorlist-arch
|
Reference in New Issue
Block a user