Compare commits

..

2 Commits
0.19.4 ... 0.19

Author SHA1 Message Date
98ad5abd88 dpcker: upd pacman.conf 2020-06-08 02:15:45 +02:00
660a7025a7 add docker data 2020-06-08 02:10:01 +02:00
9 changed files with 289 additions and 198 deletions

View File

@@ -116,6 +116,12 @@ ISO_LIBS = \
ISO_UTIL = lib/util-iso.sh ISO_UTIL = lib/util-iso.sh
DOCKER_DATA = \
data/docker/pacman-docker.conf
DOCKER_ALPM = \
data/docker/package-cleanup.hook
DIRMODE = -dm0755 DIRMODE = -dm0755
FILEMODE = -m0644 FILEMODE = -m0644
MODE = -m0755 MODE = -m0755
@@ -153,6 +159,13 @@ $(BIN): %: %.in Makefile
clean: clean:
$(RM) $(BIN) $(UTIL) $(RM) $(BIN) $(UTIL)
install_docker:
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install $(FILEMODE) $(DOCKER_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS)
install $(DIRMODE) $(DESTDIR)$(DATADIR)/libalpm/hooks
install $(FILEMODE) $(DOCKER_ALPM) $(DESTDIR)$(DATADIR)/libalpm/hooks
install_base: install_base:
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
install $(FILEMODE) $(BASE_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) install $(FILEMODE) $(BASE_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)

View File

@@ -94,13 +94,15 @@ show_deps(){
. $src/PKGBUILD 2>/dev/null . $src/PKGBUILD 2>/dev/null
[[ $arch == 'any' ]] && CARCH=any
local archver=$(get_full_version) local archver=$(get_full_version)
[[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}" [[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}"
msg2 "pkgname: %s" "${pkgname[*]}" msg2 "pkgname: %s" "${pkgname[*]}"
[[ -n $pkgdesc ]] && msg2 "pkgdesc: %s" "${pkgdesc}" [[ -n $pkgdesc ]] && msg2 "pkgdesc: %s" "${pkgdesc}"
msg2 "Arch Version: %s" "$archver" msg2 "Arch Version: %s" "$archver"
msg2 "arch: %s" "$arch" msg2 "arch: %s" "$CARCH"
[[ -n ${makedepends[@]} ]] && msg2 "makedepends: %s" "${makedepends[*]}" [[ -n ${makedepends[@]} ]] && msg2 "makedepends: %s" "${makedepends[*]}"
[[ -n ${checkdepends[@]} ]] && msg2 "checkdepends: %s" "${checkdepends[*]}" [[ -n ${checkdepends[@]} ]] && msg2 "checkdepends: %s" "${checkdepends[*]}"
@@ -131,9 +133,9 @@ from_arch(){
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
local repo=$(find_repo "$srcpath") local repo=$(find_repo "$srcpath")
msg "repo: %s" "${repo#*/}" msg "repo: %s" "$repo"
local archpath=$srcpath/$repo local archpath=$srcpath/repos/$repo
local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}") local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
show_deps "$archpath" show_deps "$archpath"
@@ -154,8 +156,8 @@ view_build(){
local archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}") local archpath=$(find_pkg "${TREE_DIR_ARCH}" "${PACKAGE}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}" [[ -z $archpath ]] && die "Package '%s' does not exist!" "${PACKAGE}"
local repo=$(find_repo "${archpath}") local repo=$(find_repo "${archpath}")
archpath=$archpath/$repo archpath=$archpath/repos/$repo
msg "repo: %s" "${repo#*/}" msg2 "repo: %s" "$repo"
show_deps "$archpath" show_deps "$archpath"
} }

View File

@@ -16,35 +16,31 @@
prepare_artools prepare_artools
get_path(){
local repo="$1" pkg=trunk/PKGBUILD
if [[ $repo != trunk ]]; then
[[ -f repos/$repo-${ARCH}/PKGBUILD ]] && pkg=repos/$repo-${ARCH}/PKGBUILD
[[ -f repos/$repo-any/PKGBUILD ]] && pkg=repos/$repo-any/PKGBUILD
fi
echo $pkg
}
prepare_commit(){ prepare_commit(){
# create new layout, copy & remove repos local dest="$1" to_rm="${2:-none}"
if [[ -d repos ]]; then if [[ -d repos/$to_rm ]]; then
msg "Switching to new layout ..." git rm -r repos/$to_rm
[[ ! -d "$CARCH" ]] && mkdir "$CARCH" git commit -m "change of package arch"
for r in $(ls repos); do
mkdir "$CARCH/${r%-*}"
cp repos/${r}/* $CARCH/${r%-*}/
git add $CARCH/${r%-*}
done
git rm -r repos
git commit -m "switch to new repo layout"
msg "Done switch"
fi
if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then
[[ -d "$CARCH/${REPO_DEST}" ]] && git rm -r "$CARCH/${REPO_DEST}"
[[ ! -d "$CARCH" ]] && mkdir "$CARCH"
[[ ! -d "$CARCH/${REPO_DEST}" ]] && mkdir "$CARCH/${REPO_DEST}"
fi fi
[[ -d repos/$dest ]] && git rm -r repos/$dest
[[ ! -d repos ]] && mkdir repos
[[ ! -d repos/$dest ]] && mkdir repos/$dest
} }
check_team(){ check_team(){
if [[ "${REPO_SRC}" == "core" && "${REPO_DEST}" == "extra" ]] || \ if [[ ${REPO_SRC} == "core" && ${REPO_DEST} == "extra" ]] || \
[[ "${REPO_SRC}" == "extra" && "${REPO_DEST}" == "core" ]] || \ [[ ${REPO_SRC} == "extra" && ${REPO_DEST} == "core" ]] || \
[[ "${REPO_SRC}" == "extra" && "${REPO_DEST}" == "community" ]] || \ [[ ${REPO_SRC} == "extra" && ${REPO_DEST} == "community" ]] || \
[[ "${REPO_SRC}" == "community" && "${REPO_DEST}" == "extra" ]] ;then [[ ${REPO_SRC} == "community" && ${REPO_DEST} == "extra" ]] ;then
local org=$(get_pkg_org "${PACKAGE}") local org=$(get_pkg_org "${PACKAGE}")
add_repo_to_team "${PACKAGE}" "$org" "${REPO_DEST}" add_repo_to_team "${PACKAGE}" "$org" "${REPO_DEST}"
@@ -52,80 +48,118 @@ check_team(){
fi fi
} }
config() { commit_pkg(){
[[ "${REPO_SRC}" != 'trunk' ]] && pkgbuild="$CARCH/${REPO_SRC}"/PKGBUILD
if [[ ! -f "$pkgbuild" ]]; then
pkgbuild=repos/"${REPO_SRC}-${CARCH}"/PKGBUILD
[[ -f repos/"${REPO_SRC}"-any/PKGBUILD ]] && pkgbuild=repos/"${REPO_SRC}"-any/PKGBUILD
fi
}
commit_pkg() {
if ${remove};then
action='remove'
if [[ "${REPO_SRC}" == 'trunk' ]];then
local pkg=${PACKAGE}
git rm -r trunk
else
local pkg="${PACKAGE}-$(get_full_version)"
prepare_commit
git rm -r "$CARCH/${REPO_SRC}"
fi
local commit_msg="[${REPO_SRC}] '$pkg' ${action}"
msg "Action: %s" "$commit_msg"
else
action='modify'
local commit_msg="[${REPO_SRC}] '${PACKAGE}-$(get_full_version)' ${action}"
msg "Action: %s" "$commit_msg"
git add .
fi
git commit -m "$commit_msg"
}
repo_commit_pkg() {
if [[ "${REPO_SRC}" == 'trunk' ]];then
action='add'
prepare_commit
cp trunk/* "$CARCH/${REPO_DEST}"/
else
action='move'
[[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild"
prepare_commit
cp "$CARCH/${REPO_SRC}"/* "$CARCH/${REPO_DEST}"/
git rm -r "$CARCH/${REPO_SRC}"
fi
local commit_msg="[${REPO_SRC}] -> [${REPO_DEST}] '${PACKAGE}-$(get_full_version)' ${action}"
msg "Action: %s" "$commit_msg"
git add .
git commit -m "$commit_msg"
}
run(){
local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}") local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
if [[ -n ${artixpath} ]];then if [[ -n ${artixpath} ]];then
local group=${artixpath%/*} local group=${artixpath%/*}
cd ${group} cd ${group}
local head=$(get_local_head) local head=$(get_local_head)
cd ${artixpath} cd ${artixpath}
config
. $pkgbuild
if [[ "${cmd}" == 'commitpkg' ]];then local pkgbuild=$(get_path "${REPO_SRC}")
commit_pkg
. $pkgbuild
[[ $arch == 'any' ]] && CARCH=any
local version=$(get_full_version)
local commit_msg=""
if ${remove};then
local action='remove'
if [[ "${REPO_SRC}" == 'trunk' ]];then
local pkg=${PACKAGE}
git rm -r trunk
else
local pkg="${PACKAGE}-$version"
git rm -r repos/"${REPO_SRC}-$CARCH"
fi
commit_msg="[${REPO_SRC}] '$pkg' ${action}"
msg "Action: %s" "$commit_msg"
else else
repo_commit_pkg local action='modify'
commit_msg="[${REPO_SRC}] '${PACKAGE}-$version' ${action}"
msg "Action: %s" "$commit_msg"
git add .
fi fi
git commit -m "$commit_msg"
cd ${group} cd ${group}
${push} && pull_tree "${group##*/}" "$head" ${push} && pull_tree "${group##*/}" "$head"
# subrepo_pull "${PACKAGE}"
subrepo_push "${PACKAGE}"
subrepo_clean "${PACKAGE}"
${push} && push_tree "${group##*/}"
git prune
else
error "Package '%s' does not exist!" "${PACKAGE}"
fi
}
get_rm_arch(){
local rm_arch='none'
case "$CARCH" in
'any') rm_arch="${REPO_DEST}-x86_64" ;;
'x86_64') rm_arch="${REPO_DEST}-any" ;;
esac
echo $rm_arch
}
repo_commit_pkg(){
local artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${PACKAGE}")
if [[ -n ${artixpath} ]];then
local group=${artixpath%/*}
cd ${group}
local head=$(get_local_head)
cd ${artixpath}
local pkgbuild=$(get_path "${REPO_SRC}")
. $pkgbuild
[[ $arch == 'any' ]] && CARCH=any
local version=$(get_full_version)
if [[ ${REPO_SRC} == 'trunk' ]];then
local action='add'
local dest="${REPO_DEST}-$CARCH"
prepare_commit "$dest" "$(get_rm_arch)"
cp trunk/* repos/$dest/
else
local action='move'
local src="${REPO_SRC}-$CARCH" dest="${REPO_DEST}-$CARCH"
[[ ! -f repos/$src/PKGBUILD ]] && die "%s does not exist!" "repos/$src/PKGBUILD"
prepare_commit "$dest" "$(get_rm_arch)"
cp repos/$src/* repos/$dest/
git rm -r repos/$src
fi
local commit_msg="[${REPO_SRC}] -> [${REPO_DEST}] '${PACKAGE}-$version' ${action}"
msg "Action: %s" "$commit_msg"
git add .
git commit -m "$commit_msg"
cd ${group}
${push} && pull_tree "${group##*/}" "$head"
# subrepo_pull "${PACKAGE}" # subrepo_pull "${PACKAGE}"
subrepo_push "${PACKAGE}" subrepo_push "${PACKAGE}"
subrepo_clean "${PACKAGE}" subrepo_clean "${PACKAGE}"
@@ -134,17 +168,22 @@ run(){
git prune git prune
[[ "${cmd}" != 'commitpkg' ]] && check_team check_team
else else
die "Package '%s' does not exist!" "${PACKAGE}" error "Package '%s' does not exist!" "${PACKAGE}"
fi fi
} }
is_valid_repo(){ is_valid_repo(){
case "${REPO_SRC}" in local src="$1" cases=
core|extra|community|multilib|testing|community-testing|multilib-testing|staging|community-staging|multilib-staging|gnome-unstable|kde-unstable|trunk) return 0 ;; set_arch_repos true true true
for r in ${ARCH_REPOS[@]};do
cases=${cases:-}${cases:+|}${r}
done
eval "case $src in
${cases}|trunk) return 0 ;;
*) return 1 ;; *) return 1 ;;
esac esac"
} }
load_makepkg_config load_makepkg_config
@@ -154,8 +193,6 @@ PACKAGE=''
remove=false remove=false
push=false push=false
pkgbuild=trunk/PKGBUILD
cmd=${0##*/} cmd=${0##*/}
REPO_DEST=${cmd%pkg} REPO_DEST=${cmd%pkg}
@@ -188,8 +225,12 @@ done
shift $(($OPTIND - 1)) shift $(($OPTIND - 1))
if $(is_valid_repo);then if $(is_valid_repo "${REPO_SRC}");then
run if [[ "${cmd}" == 'commitpkg' ]];then
commit_pkg
else
repo_commit_pkg
fi
else else
die "source repository '%s' is not valid!" "${REPO_SRC}" error "source repository '%s' is not valid!" "${REPO_SRC}"
fi fi

View File

@@ -26,14 +26,16 @@ get_import_path(){
} }
compare_m(){ compare_m(){
local artixver="$1" artixrepo="$2" archver="$3" archrepo="$4"
local result=$(vercmp "$artixver" "$archver") local result=$(vercmp "$artixver" "$archver")
if [[ $artixrepo == *testing* ]] || [[ $artixrepo == *staging* ]]; then if [[ $artixrepo == *testing* ]] || [[ $artixrepo == *staging* ]]; then
if [[ "${a}" == "${b}" ]]; then if [[ "$archrepo" == "$artixrepo" ]]; then
msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row "${table}" "${archrepo%-*}" "${artixrepo%-*}" "$pkg" "$archver" "$artixver" "${group#*-}"
else else
msg_row_notify "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_notify "${table}" "${archrepo%-*}" "${artixrepo%-*}" "$pkg" "$archver" "$artixver" "${group#*-}"
if [[ -n "$archrepo" ]]; then if [[ -n "$archrepo" ]]; then
printf "%s\n" "${a}:${b}:$pkg" >> ${TREE_DIR_ARTIX}/pkg_moves.list printf "%s\n" "${archrepo%-*}:${artixrepo%-*}:$pkg" >> ${TREE_DIR_ARTIX}/pkg_moves.list
fi fi
fi fi
@@ -41,18 +43,22 @@ compare_m(){
} }
compare_u(){ compare_u(){
local artixver="$1" artixrepo="$2" archver="$3" archrepo="$4"
local result=$(vercmp "$artixver" "$archver") local result=$(vercmp "$artixver" "$archver")
if [ $result -eq -1 ];then if [ $result -eq -1 ];then
msg_row_upgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_upgrade "${table}" "${archrepo%-*}" "${artixrepo%-*}" "$pkg" "$archver" "$artixver" "${group#*-}"
printf "%s\n" "${a}:$pkg" >> ${TREE_DIR_ARTIX}/pkg_upgrades.list printf "%s\n" "${archrepo%-*}:$pkg" >> ${TREE_DIR_ARTIX}/pkg_upgrades.list
fi fi
} }
compare_d(){ compare_d(){
local artixver="$1" artixrepo="$2" archver="$3" archrepo="$4"
local result=$(vercmp "$artixver" "$archver") local result=$(vercmp "$artixver" "$archver")
if [ $result -eq 1 ];then if [ $result -eq 1 ];then
if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then
msg_row_downgrade "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_downgrade "${table}" "${archrepo%-*}" "${artixrepo%-*}" "$pkg" "$archver" "$artixver" "${group#*-}"
fi fi
fi fi
} }
@@ -63,7 +69,7 @@ pre_compare(){
group=${group##*/} group=${group##*/}
local pkg=${pkgpath##*/} local pkg=${pkgpath##*/}
local artixrepo=$(find_repo "$pkgpath") local artixrepo=$(find_repo "$pkgpath")
local pkgbuild=$pkgpath/$artixrepo/PKGBUILD local pkgbuild=$pkgpath/repos/$artixrepo/PKGBUILD
if [[ -f $pkgbuild ]];then if [[ -f $pkgbuild ]];then
. $pkgbuild 2>/dev/null . $pkgbuild 2>/dev/null
@@ -71,19 +77,14 @@ pre_compare(){
local archpath=$(get_import_path $pkg) local archpath=$(get_import_path $pkg)
local archrepo=$(find_repo "${archpath}") local archrepo=$(find_repo "${archpath}")
pkgbuild=$archpath/$archrepo/PKGBUILD pkgbuild=$archpath/repos/$archrepo/PKGBUILD
local node=${artixrepo%/*}
local a=${archrepo#*/} b=${artixrepo#*/}
a="${a%-*}"
[[ "$node" != "$CARCH" ]] && b=${b%-*}
if [[ -f "$pkgbuild" ]];then if [[ -f "$pkgbuild" ]];then
. $pkgbuild 2>/dev/null . $pkgbuild 2>/dev/null
local archver=$(get_full_version) local archver=$(get_full_version)
fi fi
"$func" "$func" "$artixver" "$artixrepo" "$archver" "$archrepo"
unset pkgver epoch pkgrel artixver archver pkgbuild archpath unset pkgver epoch pkgrel artixver archver pkgbuild archpath
fi fi
@@ -138,11 +139,11 @@ show_move_table(){
update_db_cache(){ update_db_cache(){
msg "Updating database cache" msg "Updating database cache"
for repo in "${searchrepos[@]}"; do for repo in "${searchrepos[@]}"; do
local cachedir=${db_cache_dir}/${LINKSDBEXT}/${CARCH}/${repo} local cachedir=${db_cache_dir}/${LINKSDBEXT}/${ARCH}/${repo}
rm -rf "$cachedir" rm -rf "$cachedir"
mkdir -p "$cachedir" mkdir -p "$cachedir"
msg2 "%s" "$repo" msg2 "%s" "$repo"
curl -L -s "${REPOS_MIRROR}/${repo}/os/${CARCH}/${repo}.${LINKSDBEXT}" \ curl -L -s "${REPOS_MIRROR}/${repo}/os/${ARCH}/${repo}.${LINKSDBEXT}" \
| bsdtar -xf - -C "$cachedir" | bsdtar -xf - -C "$cachedir"
done done
msg "Done" msg "Done"
@@ -151,7 +152,7 @@ update_db_cache(){
query_db() { query_db() {
for repo in "${searchrepos[@]}"; do for repo in "${searchrepos[@]}"; do
local prefix= local prefix=
local db=${db_cache_dir}/${LINKSDBEXT}/${CARCH}/${repo}/ local db=${db_cache_dir}/${LINKSDBEXT}/${ARCH}/${repo}/
if [[ -d ${db} ]]; then if [[ -d ${db} ]]; then
while read -rd '' pkg; do while read -rd '' pkg; do
read -r match read -r match
@@ -172,7 +173,7 @@ show_lib_table() {
is_db_entry() { is_db_entry() {
local pkgname="$1" repo="${REPOS[$2]}" local pkgname="$1" repo="${REPOS[$2]}"
if [[ -d ${db_cache_dir}/${LINKSDBEXT}/${CARCH}/$repo/$pkgname ]];then if [[ -d ${db_cache_dir}/${LINKSDBEXT}/${ARCH}/$repo/$pkgname ]];then
return 0 return 0
fi fi
return 1 return 1
@@ -180,23 +181,33 @@ is_db_entry() {
check_db(){ check_db(){
local pkgpath="${1%/*}" local pkgpath="${1%/*}"
local pkg=${pkgpath##*/}
local sarch=(any ${ARCH})
for repo in ${!REPOS[@]};do for repo in ${ARCH_REPOS[@]};do
local pkgbuild= for a in ${sarch[@]};do
[[ -f $pkgpath/$CARCH/$repo/PKGBUILD ]] && pkgbuild=$pkgpath/$CARCH/$repo/PKGBUILD
[[ -f $pkgpath/repos/$repo-$CARCH/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-$CARCH/PKGBUILD
[[ -f $pkgpath/repos/$repo-any/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-any/PKGBUILD
. $pkgbuild 2>/dev/null local pkgbuild=$pkgpath/repos/$repo-$a/PKGBUILD
local artixver=$(get_full_version)
for name in ${pkgname[@]};do
if ! is_db_entry "$name-$artixver" "$repo";then if [[ -f $pkgbuild ]];then
msg_row "${tableU}" "$repo" "$name" "$artixver" "false"
. $pkgbuild 2>/dev/null
local artixver=$(get_full_version)
local is_entry=false
for name in ${pkgname[@]};do
if is_db_entry "$name-$artixver" "$repo";then
is_entry=true
fi
if ! $is_entry;then
msg_row "${tableU}" "$repo" "$name" "$artixver" "$is_entry"
fi
done
unset artixver is_entry pkgbuild pkgver epoch pkgname pkgbase
fi fi
done done
unset artixver pkgbuild pkgver epoch pkgname pkgbase
done done
} }

View File

@@ -16,28 +16,46 @@
prepare_artools 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(){ add(){
pkg=${pkgname%.*} packages+=("$pkg.$ext")
for ext in zst xz;do action='add'
if pkgfile=$(find_cached_pkgfile "$pkg.$ext");then ln -sf "${pkgfile}"{,.sig} "$repo_path"/
msg "Found: %s" "${pkgfile}"
packages+=("$pkg.$ext")
action='add'
ln -sf "${pkgfile}"{,.sig} "$repo_path"/
fi
done
} }
remove(){ remove(){
packages+=("$pkgname") local to_remove=$(get_pkgbasename "$pkg.$ext")
packages+=("$to_remove")
action='remove' action='remove'
rm "$repo_path"/"$pkgname"*pkg.tar* rm "$repo_path"/"$to_remove"*pkg.tar*
} }
repo_action(){ repo_action(){
local packages=() action= func="$1" local packages=() action= func="$1"
for pkgname in ${passfiles[@]}; do for pkgname in ${passfiles[@]}; do
"$func" pkg=${pkgname%.*}
for ext in zst xz;do
if pkgfile=$(find_cached_pkgfile "$pkg.$ext");then
msg "Found: %s" "${pkgfile}"
"$func"
fi
done
done done
cd $repo_path cd $repo_path
if [[ -n "$action" ]]; then if [[ -n "$action" ]]; then
@@ -86,7 +104,7 @@ passfiles="$@"
prepare_dir "${REPOS_ROOT}" prepare_dir "${REPOS_ROOT}"
repo_path=${REPOS_ROOT}/${dest_repo}/os/${CARCH} repo_path=${REPOS_ROOT}/${dest_repo}/os/${ARCH}
if [[ -n ${passfiles[@]} ]]; then if [[ -n ${passfiles[@]} ]]; then
if ${add_pkg}; then if ${add_pkg}; then

View File

@@ -14,7 +14,7 @@
. @libdir@/artools/util-base.sh . @libdir@/artools/util-base.sh
srcyaml_write_attr(){ write_attr(){
local ident1="$1" ident2="$2" ident3="$3" local ident1="$1" ident2="$2" ident3="$3"
local attrname=$4 attrvalues=("${@:5}") local attrname=$4 attrvalues=("${@:5}")
@@ -24,41 +24,47 @@ srcyaml_write_attr(){
attrvalues=("${attrvalues[@]%[[:space:]]}") attrvalues=("${attrvalues[@]%[[:space:]]}")
case $attrname in case $attrname in
pkgver|pkgrel|epoch|url|install|changelog) makedepends|checkdepends|depends|provides|arch)
for v in ${attrvalues[@]};do
Yaml+=$(write_yaml_map $ident3 "$attrname" "$v")
done
;;
*)
Yaml+=$(write_yaml_map $ident1 "$attrname") Yaml+=$(write_yaml_map $ident1 "$attrname")
for v in ${attrvalues[@]};do for v in ${attrvalues[@]};do
Yaml+=$(write_yaml_seq $ident2 "$v") Yaml+=$(write_yaml_seq $ident2 "$v")
done done
;; ;;
*)
for v in ${attrvalues[@]};do
Yaml+=$(write_yaml_map $ident3 "$attrname" "$v")
done
;;
esac esac
} }
pkgbuild_extract_to_yaml() { extract_info() {
local pkgname=$1 attrname=$2 isarray=$3 outvalue= local pkgname=$1 attrname=$2 isarray=$3 outvalue=
if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; then if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; then
[[ -z $pkgname ]] && srcyaml_write_attr 2 4 2 "$attrname" "${outvalue[@]}" [[ -z $pkgname ]] && write_attr 2 4 2 "$attrname" "${outvalue[@]}"
[[ -n $pkgname ]] && srcyaml_write_attr 4 6 2 "$attrname" "${outvalue[@]}" [[ -n $pkgname ]] && write_attr 4 6 2 "$attrname" "${outvalue[@]}"
fi fi
} }
srcyaml_write_section_details() { write_details() {
local attr package_arch a local attr package_arch a
local multivalued_arch_attrs=(source provides conflicts depends replaces local multivalued_arch_attrs=(provides depends makedepends checkdepends)
optdepends makedepends checkdepends)
# "${known_hash_algos[@]/%/sums}") local singlevalued=()
local multivalued=(arch provides depends checkdepends)
if [[ -z "$1" ]];then
singlevalued=(pkgver pkgrel epoch)
multivalued=(arch provides depends makedepends checkdepends)
fi
for attr in "${singlevalued[@]}"; do for attr in "${singlevalued[@]}"; do
pkgbuild_extract_to_yaml "$1" "$attr" 0 extract_info "$1" "$attr" 0
done done
for attr in "${multivalued[@]}"; do for attr in "${multivalued[@]}"; do
pkgbuild_extract_to_yaml "$1" "$attr" 1 extract_info "$1" "$attr" 1
done done
get_pkgbuild_attribute "$1" 'arch' 1 'package_arch' get_pkgbuild_attribute "$1" 'arch' 1 'package_arch'
@@ -67,55 +73,47 @@ srcyaml_write_section_details() {
[[ $a = any ]] && continue [[ $a = any ]] && continue
for attr in "${multivalued_arch_attrs[@]}"; do for attr in "${multivalued_arch_attrs[@]}"; do
pkgbuild_extract_to_yaml "$1" "${attr}_$a" 1 extract_info "$1" "${attr}_$a" 1
done done
done done
} }
yaml_write_global() { write_pkg_yaml(){
local singlevalued=(pkgver pkgrel epoch url install changelog) #pkgdesc
local multivalued=(arch groups license checkdepends makedepends Yaml=$(write_yaml_header)
depends provides conflicts replaces)
#noextract options backup optdepends
#source validpgpkeys "${known_hash_algos[@]/%/sums}")
Yaml+=$(write_empty_line) 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 0 "pkgbase")
Yaml+=$(write_yaml_map 2 "name" "${pkgbase:-$pkgname}") Yaml+=$(write_yaml_map 2 "pkgname" "${pkgbase}")
${details} && srcyaml_write_section_details '' ${details} && write_details ''
Yaml+=$(write_yaml_map 2 "fullver" "${ver}")
Yaml+=$(write_empty_line) Yaml+=$(write_empty_line)
}
yaml_write_package() { Yaml+=$(write_yaml_map 0 "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 for pkg in "${pkgname[@]}"; do
Yaml+=$(write_yaml_seq_map 2 "pkgname" "$pkg") Yaml+=$(write_yaml_seq_map 2 "pkgname" "$pkg")
${details} && srcyaml_write_section_details "$pkg" ${details} && write_details "$pkg"
done 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) Yaml+=$(write_empty_line)
local pkgfile=$(print_all_package_names) local pkgfile=$(print_all_package_names)
Yaml+=$(write_yaml_map 0 "files")
Yaml+=$(write_yaml_map 0 "pkgfile")
for f in ${pkgfile[@]};do for f in ${pkgfile[@]};do
Yaml+=$(write_yaml_seq 2 "${f##*/}") Yaml+=$(write_yaml_seq 2 "${f##*/}")
done done
Yaml+=$(write_empty_line)
}
write_srcyaml(){ Yaml+=$(write_empty_line)
Yaml=$(write_yaml_header)
yaml_write_global
yaml_write_package
yaml_write_fileinfo
printf '%s' "${Yaml}" printf '%s' "${Yaml}"
} }
@@ -141,13 +139,11 @@ done
shift $(( $OPTIND - 1 )) shift $(( $OPTIND - 1 ))
srcpath=$(readlink -f "$1") [[ -f "$1"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$1"
PACKAGE="$1"/PKGBUILD; shift
[[ -f "$srcpath"/PKGBUILD ]] || die "%s/PKGBUILD does not exist!" "$srcpath"
PACKAGE="$srcpath"/PKGBUILD; shift
. "$PACKAGE" . "$PACKAGE"
load_makepkg_config load_makepkg_config
write_srcyaml write_pkg_yaml

View File

@@ -0,0 +1,11 @@
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = *
[Action]
Description = Cleaning up package cache...
Depends = coreutils
When = PostTransaction
Exec = /usr/bin/find /var/cache/pacman/pkg/ -type f -delete

View File

@@ -32,11 +32,10 @@ set_arch_repos(){
} }
find_repo(){ find_repo(){
local pkg="$1" repo= pkgarch="${2:-${CARCH}}" local pkg="$1" repo=
for r in ${ARCH_REPOS[@]};do for r in ${ARCH_REPOS[@]};do
[[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" [[ -f $pkg/repos/$r-${ARCH}/PKGBUILD ]] && repo=$r-${ARCH}
[[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=$r-any
[[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r"
done done
echo $repo echo $repo
} }