Compare commits

..

1 Commits
0.6.5 ... 0.7

Author SHA1 Message Date
artoo
87185b7d99 Devel (#44)
* artools-0.7 rm old

* start 0.7

* Makefile: rm old sym

* commitpkg: init pretend switch

* commitpkg: fix to_new()

* deploypkg: add sign switch

* jenkinsfile: use signing on build success

* commitpkg: add a commit option for imported pkgs

* buildtree: patch linux package

* jenkinsfiles fixes

* update example jenkinsfile

* commitpkg: simplify usage

* update example pipelines

* update example jenkinsfile

* commitpkg: fix trunk release

* update jenkinsfile

* import linux and linux-lts

* buildtree: import and compare all artix git repos

* buildtree: add single package import
commitpkg: clean up

* buildtree: add git tree vars

* buildtree: write patches in patchdir

* jenkinsfiles update

* buildtree, commitpkg: small fixes

* buildtree: show artix repo in compare

* nkchrootpkg: use env in chroot to set env vars

* buildtree, commitpkg: fixes

* update imports

* buildtree: simplify show_artix_repo()

* mkchrootpkg: clean up _chrootbuild

* buildtree: add downgrades switch

* buildtree: use patch_pkg()

* commitpkg: add a remove switch for commitpkg mode

* commitpkg: fix remove option

* update imports

* buildtree: enable importing new packages in trunk
commitpkg: cosmetics in display_settings()

* update imports
2018-02-13 20:38:15 +01:00
28 changed files with 1067 additions and 2323 deletions

View File

@@ -1,4 +1,4 @@
Version=0.6 Version=0.7
PREFIX = /usr/local PREFIX = /usr/local
SYSCONFDIR = /etc SYSCONFDIR = /etc
@@ -31,15 +31,12 @@ BIN_PKG = \
bin/checkpkg \ bin/checkpkg \
bin/lddd \ bin/lddd \
bin/finddeps \ bin/finddeps \
bin/findupdates \
bin/find-libdeps \ bin/find-libdeps \
bin/mkchrootpkg \ bin/mkchrootpkg \
bin/buildpkg \ bin/buildpkg \
bin/buildtree \ bin/buildtree \
bin/deploypkg \ bin/deploypkg \
bin/buildpkg2 \ bin/commitpkg
bin/buildtree2 \
bin/deploypkg2
LIBS_PKG = \ LIBS_PKG = \
$(wildcard lib/util-pkg*.sh) $(wildcard lib/util-pkg*.sh)
@@ -50,6 +47,18 @@ SHARED_PKG = \
PATCHES = \ PATCHES = \
$(wildcard data/patches/*.patch) $(wildcard data/patches/*.patch)
COMMITPKG_SYMS = \
extrapkg \
corepkg \
testingpkg \
stagingpkg \
communitypkg \
community-testingpkg \
community-stagingpkg \
multilibpkg \
multilib-testingpkg \
multilib-stagingpkg
BIN_ISO = \ BIN_ISO = \
bin/buildiso \ bin/buildiso \
bin/deployiso bin/deployiso
@@ -122,11 +131,11 @@ install_pkg:
install -dm0755 $(DESTDIR)$(PREFIX)/bin install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_PKG} $(DESTDIR)$(PREFIX)/bin install -m0755 ${BIN_PKG} $(DESTDIR)$(PREFIX)/bin
ln -sf buildpkg $(DESTDIR)$(PREFIX)/bin/buildpkg-testing
ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides
for l in ${COMMITPKG_SYMS}; do ln -sf commitpkg $(DESTDIR)$(PREFIX)/bin/$$l; done
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_PKG} $(DESTDIR)$(PREFIX)/lib/artools install -m0644 ${LIBS_PKG} $(DESTDIR)$(PREFIX)/lib/artools
@@ -156,7 +165,7 @@ install_iso:
install -dm0755 $(DESTDIR)$(PREFIX)/bin install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_ISO} $(DESTDIR)$(PREFIX)/bin install -m0755 ${BIN_ISO} $(DESTDIR)$(PREFIX)/bin
ln -sf buildiso $(DESTDIR)$(PREFIX)/bin/buildiso-testing ln -sf buildiso $(DESTDIR)$(PREFIX)/bin/buildiso-gremlins
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_ISO} $(DESTDIR)$(PREFIX)/lib/artools install -m0644 ${LIBS_ISO} $(DESTDIR)$(PREFIX)/lib/artools
@@ -182,7 +191,7 @@ uninstall_pkg:
for f in ${LIST_IMPORT}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d/$$f; done for f in ${LIST_IMPORT}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d/$$f; done
for f in ${BIN_PKG}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done for f in ${BIN_PKG}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
rm -f $(DESTDIR)$(PREFIX)/bin/buildpkg-testing for l in ${COMMITPKG_SYMS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done
for f in ${SHARED_PKG}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done for f in ${SHARED_PKG}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${PATCHES}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/patches/$$f; done for f in ${PATCHES}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/patches/$$f; done
for f in ${LIBS_PKG}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done for f in ${LIBS_PKG}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
@@ -196,7 +205,7 @@ uninstall_isobase:
uninstall_iso: uninstall_iso:
for f in ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done for f in ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/buildiso-testing rm -f $(DESTDIR)$(PREFIX)/bin/buildiso-gremlins
for f in ${SHARED_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done for f in ${SHARED_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${LIBS_ISO}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done for f in ${LIBS_ISO}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done

View File

@@ -26,10 +26,10 @@ prepare_build(){
netgroups=${netgroups_url}/netgroups-${initsys}.yaml netgroups=${netgroups_url}/netgroups-${initsys}.yaml
local pacman_conf pac_file="pacman.conf" local pacman_conf pac_file="pacman-default.conf"
case "${stablility}" in case "${stablility}" in
'testing') pac_file="pacman-${stablility}.conf" ;; 'gremlins') pac_file="pacman-${stablility}.conf" ;;
esac esac
pacman_conf="${DATADIR}/$pac_file" pacman_conf="${DATADIR}/$pac_file"

View File

@@ -20,15 +20,12 @@ SYSCONFDIR='@sysconfdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh import ${LIBDIR}/util.sh
import ${LIBDIR}/util-chroot.sh import ${LIBDIR}/util-chroot.sh
import ${LIBDIR}/util-pkg.sh
show_pkg(){ show_pkg(){
cd $1 source PKGBUILD
source PKGBUILD for n in ${pkgname[@]}; do
for n in ${pkgname[@]}; do msg2 "%s" "$n"
msg2 "%s" "$n" done
done
cd ..
} }
display_settings(){ display_settings(){
@@ -38,15 +35,14 @@ display_settings(){
msg "OPTIONS:" msg "OPTIONS:"
msg2 "chroots_pkg: %s" "${chroots_pkg}" msg2 "chroots_pkg: %s" "${chroots_pkg}"
msg2 "repository: %s" "${repository}" msg2 "repository: %s" "${repository}"
msg2 "stablility: %s" "${stablility}"
msg "ARGS:" msg "ARGS:"
msg2 "create_first: %s" "${create_first}" msg2 "create_first: %s" "${create_first}"
msg2 "makepkg_args: %s" "${makepkg_args[*]}" msg2 "makepkg_args: %s" "${makepkg_args[*]}"
msg2 "mkchrootpkg_args: %s" "${mkchrootpkg_args[*]}" msg2 "mkchrootpkg_args: %s" "${mkchrootpkg_args[*]}"
msg "BUILD:" msg "BUILD:"
show_pkg "${package}" show_pkg
} }
load_user_info load_user_info
@@ -55,27 +51,23 @@ load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artoo
create_first=false create_first=false
pretend=false pretend=false
lib32=false
mkchroot_args=() mkchroot_args=()
mkchrootpkg_args=(-c -n) mkchrootpkg_args=(-c -n)
install_pkgs=() repository='default'
package=''
cmd=${0##*/}
stablility=${cmd##*-}
repository=${PWD##*/}
base_devel=('base-devel')
prepare_build(){ prepare_build(){
local pac_file='pacman.conf' mp_file='makepkg.conf' local pac_file= mp_file='makepkg.conf'
case "${stablility}" in base_devel=('base-devel')
'testing') pac_file="pacman-${stablility}.conf" ;;
case ${repository} in
'system'|'world'|'galaxy') repository='default' ;;
lib32*) base_devel+=('multilib-devel') ;;
galaxy-gremlins|galaxy-goblins) repository=${repository#*-} ;;
esac esac
local pac_file="pacman-${repository}.conf"
${lib32} && base_devel+=('multilib-devel')
local pacman_conf="${DATADIR}/$pac_file" local pacman_conf="${DATADIR}/$pac_file"
[[ -f $AT_USERCONFDIR/$pac_file ]] && pacman_conf="$AT_USERCONFDIR/$pac_file" [[ -f $AT_USERCONFDIR/$pac_file ]] && pacman_conf="$AT_USERCONFDIR/$pac_file"
@@ -88,29 +80,19 @@ prepare_build(){
mkchroot_args+=(-C "${pacman_conf}" -M "${makepkg_conf}" "${work_dir}/root") mkchroot_args+=(-C "${pacman_conf}" -M "${makepkg_conf}" "${work_dir}/root")
mkchrootpkg_args+=(-r "${work_dir}" "${makepkg_args[@]}") mkchrootpkg_args+=(-r "${work_dir}" "${makepkg_args[@]}")
timer_start=$(get_timer)
} }
build(){ build(){
local timer_start=$(get_timer) local timer_start=$(get_timer)
if [[ -f ${package}/PKGBUILD ]];then
cd ${package}
else
die "Directory must contain a PKGBUILD!"
fi
msg "Start building [%s] (%s)" "${package}" "${repository}"
exec mkchrootpkg "${mkchrootpkg_args[@]}" exec mkchrootpkg "${mkchrootpkg_args[@]}"
show_elapsed_time "${FUNCNAME}" "${timer_start}" show_elapsed_time "${FUNCNAME}" "${timer_start}"
} }
usage() { usage() {
echo "Usage: ${0##*/} [options] -- [makepkg_args]" echo "Usage: ${0##*/} [options] -- [makepkg_args]"
echo " -p <pkg> Package to build [default: ${package}]" echo " -r <dir> Repository [default: ${repository}]"
echo " -r <dir> Chroots directory [default: ${chroots_pkg}]"
echo ' -z <repo> Repo name'
echo ' -c Create root chroot' echo ' -c Create root chroot'
echo ' -m Multilib chroot'
echo ' -q Query settings and pretend build' echo ' -q Query settings and pretend build'
echo ' -h This help' echo ' -h This help'
echo '' echo ''
@@ -121,22 +103,18 @@ usage() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts='p:r:z:cmqh' opts='r:cqh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
p) package="$OPTARG" ;; r) repository="$OPTARG" ;;
r) chroots_pkg="$OPTARG" ;;
z) repository="$OPTARG" ;;
c) create_first=true ;; c) create_first=true ;;
m) lib32=true ;;
q) pretend=true ;; q) pretend=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '%s'" "${arg}"; usage 1 ;; *) echo "invalid argument '%s'" "${arg}"; usage 1 ;;
esac esac
done done
# shift $(($OPTIND - 1))
makepkg_args+=("${@:$OPTIND}") makepkg_args+=("${@:$OPTIND}")
check_root check_root
@@ -169,4 +147,4 @@ else
pacman -Syu --noconfirm || abort pacman -Syu --noconfirm || abort
fi fi
build "${package}" build

View File

@@ -1,151 +0,0 @@
#!/bin/bash
#
# 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.
version=@version@
shopt -s nullglob
LIBDIR='@libdir@'
DATADIR='@datadir@'
SYSCONFDIR='@sysconfdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-chroot.sh
import ${LIBDIR}/util-pkg.sh
show_pkg(){
source PKGBUILD
for n in ${pkgname[@]}; do
msg2 "%s" "$n"
done
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "chroots_pkg: %s" "${chroots_pkg}"
msg2 "repository: %s" "${repository}"
msg "ARGS:"
msg2 "create_first: %s" "${create_first}"
msg2 "makepkg_args: %s" "${makepkg_args[*]}"
msg2 "mkchrootpkg_args: %s" "${mkchrootpkg_args[*]}"
msg "BUILD:"
show_pkg
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
create_first=false
pretend=false
mkchroot_args=()
mkchrootpkg_args=(-c -n)
repository='default'
prepare_build(){
local pac_file= mp_file='makepkg.conf'
base_devel=('base-devel')
case ${repository} in
'system'|'world'|'galaxy') repository='default' ;;
lib32*) base_devel+=('multilib-devel') ;;
galaxy-gremlins|galaxy-goblins) repository=${repository#*-} ;;
esac
local pac_file="pacman-${repository}.conf"
local pacman_conf="${DATADIR}/$pac_file"
[[ -f $AT_USERCONFDIR/$pac_file ]] && pacman_conf="$AT_USERCONFDIR/$pac_file"
work_dir="${chroots_pkg}/${repository}-${target_arch}"
local makepkg_conf="${DATADIR}/$mp_file"
[[ -f $AT_USERCONFDIR/$mp_file ]] && makepkg_conf="$AT_USERCONFDIR/$mp_file"
mkchroot_args+=(-C "${pacman_conf}" -M "${makepkg_conf}" "${work_dir}/root")
mkchrootpkg_args+=(-r "${work_dir}" "${makepkg_args[@]}")
}
build(){
local timer_start=$(get_timer)
exec mkchrootpkg "${mkchrootpkg_args[@]}"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
}
usage() {
echo "Usage: ${0##*/} [options] -- [makepkg_args]"
echo " -r <dir> Repository [default: ${repository}]"
echo ' -c Create root chroot'
echo ' -q Query settings and pretend build'
echo ' -h This help'
echo ''
echo "Default makepkg_args args: ${makepkg_args[*]}"
echo ''
exit $1
}
orig_argv=("$0" "$@")
opts='r:cqh'
while getopts "${opts}" arg; do
case "${arg}" in
r) repository="$OPTARG" ;;
c) create_first=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '%s'" "${arg}"; usage 1 ;;
esac
done
makepkg_args+=("${@:$OPTIND}")
check_root
prepare_build
${pretend} && display_settings && exit
if ${create_first} || [[ ! -d ${work_dir}/root ]];then
msg "Creating chroot for [%s] (%s)..." "${repository}" "${target_arch}"
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}"
mkdir -p "${work_dir}"
setarch "${target_arch}" mkchroot \
"${mkchroot_args[@]}" "${base_devel[@]}" || abort
else
lock 9 "${work_dir}/root.lock" "Locking clean chroot"
chroot-run "${mkchroot_args[@]}" \
pacman -Syu --noconfirm || abort
fi
build

View File

@@ -17,55 +17,354 @@ DATADIR='@datadir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
import ${LIBDIR}/util-pkg-tree.sh get_local_head(){
echo $(git log --pretty=%H ...refs/heads/$1^ | head -n 1)
}
get_remote_head(){
echo $(git ls-remote origin -h refs/heads/$1 | cut -f1)
}
is_dirty() {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] || return 1
return 0
}
is_untracked(){
[[ $(git ls-files --others --exclude-standard) != "" ]] || return 1
return 0
}
pull_tree(){
local branch="master" tree="$1"
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
local timer=$(get_timer)
msg "Checking [%s] ..." "$tree"
msg2 "local: %s" "${local_head}"
msg2 "remote: %s" "${remote_head}"
if [[ "${local_head}" == "${remote_head}" ]]; then
info "nothing to do"
else
info "needs pull"
git pull origin $branch
fi
msg "Done [%s]" "$tree"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
clone_tree(){
local timer=$(get_timer) tree="$1" host_tree="$2"
msg "Preparing [%s] ..." "$tree"
info "clone"
git clone $host_tree.git
msg "Done [%s]" "$tree"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
pull_tree_arch(){
cd ${tree_dir_arch}
for tree in packages community;do
if [[ -d ${tree} ]];then
cd ${tree}
pull_tree "${tree}"
cd ..
else
clone_tree "${tree}" "${host_tree_arch}/${tree}"
fi
done
}
pull_tree_artix(){
cd ${tree_dir_artix}
for tree in packages packages-galaxy;do
if [[ -d ${tree} ]];then
cd ${tree}
git config --bool pull.rebase true
pull_tree "${tree}"
cd ..
else
clone_tree "${tree}" "${host_tree_artix}/${tree}"
fi
done
}
read_import_list(){
local tree="$1"
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
import_list=$(sed "$_com_rm" "${list_dir_import}/$tree.list" | sed "$_space" | sed "$_clean")
}
patch_pkg(){
local pkg="$1" repo="$2"
case $pkg in
'glibc')
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/trunk/PKGBUILD
;;
'tp_smapi'|'acpi_call'|'r8168')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
;;
'linux')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
sed -e 's|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION="-ARTIX"|' \
-e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-i $pkg/trunk/config
cd $pkg/trunk
updpkgsums
cd ../..
;;
'licenses')
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' -i $pkg/trunk/PKGBUILD
;;
esac
}
get_import_path(){
local tree="$1" import_path=
case $tree in
packages) import_path=${tree_dir_arch}/packages ;;
packages-galaxy) import_path=${tree_dir_arch}/community ;;
esac
echo $import_path
}
find_repo(){
local pkg="$1" repo=
if [[ -d $pkg/repos/core-x86_64 ]];then
repo=core-x86_64
elif [[ -d $pkg/repos/core-any ]];then
repo=core-any
fi
if [[ -d $pkg/repos/extra-x86_64 ]];then
repo=extra-x86_64
elif [[ -d $pkg/repos/extra-any ]];then
repo=extra-any
fi
if [[ -d $pkg/repos/testing-x86_64 ]];then
repo=testing-x86_64
elif [[ -d $pkg/repos/testing-any ]];then
repo=testing-any
fi
if [[ -d $pkg/repos/staging-x86_64 ]];then
repo=staging-x86_64
elif [[ -d $pkg/repos/staging-any ]];then
repo=staging-any
fi
if [[ -d $pkg/repos/community-x86_64 ]];then
repo=community-x86_64
elif [[ -d $pkg/repos/community-any ]];then
repo=community-any
fi
if [[ -d $pkg/repos/community-testing-x86_64 ]];then
repo=community-testing-x86_64
elif [[ -d $pkg/repos/community-testing-any ]];then
repo=community-testing-any
fi
if [[ -d $pkg/repos/community-staging-x86_64 ]];then
repo=community-staging-x86_64
elif [[ -d $pkg/repos/community-staging-any ]];then
repo=community-staging-any
fi
if [[ -d $pkg/repos/multilib-x86_64 ]];then
repo=multilib-x86_64
fi
if [[ -d $pkg/repos/multilib-testing-x86_64 ]];then
repo=multilib-testing-x86_64
fi
if [[ -d $pkg/repos/multilib-staging-x86_64 ]];then
repo=multilib-staging-x86_64
fi
echo $repo
}
view_artix_repo(){
local repo="$1"
case $repo in
core-*) repo=system ;;
extra-*) repo=world ;;
community-*) repo=galaxy ;;
multilib-x86_64) repo=lib32 ;;
testing-*) repo=gremlins ;;
staging-*) repo=goblins ;;
multilib-testing-x86_64) repo=lib32-gremlins ;;
multilib-staging-x86_64) repo=lib32-goblins ;;
community-testing-*) repo=galaxy-gremlins ;;
community-staging-*) repo=galaxy-goblins ;;
esac
echo $repo
}
show_downgrade_table(){
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
for tree in packages packages-galaxy;do
for pkg_path in ${tree_dir_artix}/$tree/*; do
local artixrepo=$(find_repo "$pkg_path")
if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/repos/$artixrepo/PKGBUILD 2>/dev/null
local pkg=${pkg_path##*/}
local artixver=$(get_full_version $pkg)
local src=$(get_import_path "$tree" "$pkg")
local archrepo=$(find_repo "$src/$pkg")
if [[ -d $src/$pkg/repos/$archrepo ]];then
source $src/$pkg/repos/$archrepo/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
fi
if [ $(vercmp $artixver $archver) -gt 0 ];then
local ar=$(view_artix_repo "$artixrepo")
msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
unset pkgver epoch pkgrel artixver archver _package
fi
done
done
}
show_upgrade_table(){
declare -A UPDATES
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
for tree in packages packages-galaxy;do
for pkg_path in ${tree_dir_artix}/$tree/*; do
local artixrepo=$(find_repo "$pkg_path")
if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/trunk/PKGBUILD 2>/dev/null
local pkg=${pkg_path##*/}
local artixver=$(get_full_version $pkg)
local src=$(get_import_path "$tree" "$pkg")
local archrepo=$(find_repo "$src/$pkg")
if [[ -d $src/$pkg/repos/$archrepo ]];then
source $src/$pkg/trunk/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
local ar=$(view_artix_repo "$artixrepo")
UPDATES[$pkg]="$pkg_path/repos/$artixrepo/PKGBUILD $src/$pkg/repos/$archrepo/PKGBUILD"
msg_row_update "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
unset pkgver epoch pkgrel artixver archver _package
fi
done
done
find "${patches_dir}/" -name *.patch -delete
for upd in "${!UPDATES[@]}"; do
diff -u ${UPDATES[$upd]} > ${patches_dir}/"$upd"-archlinux.patch
done
}
from_arch(){
local pkg="$1" archtree="$2" artixtree="$3" src= dest=
src=${tree_dir_arch}/$archtree/$pkg/trunk
dest=${tree_dir_artix}/$artixtree/$pkg/trunk
source $src/PKGBUILD 2>/dev/null
cd ${tree_dir_arch}/$archtree
msg "Package: %s" "$pkg"
local archver=$(get_full_version $pkg)
msg2 "Arch Version: %s" "$archver"
if [[ -d $dest ]];then
source $dest/PKGBUILD 2>/dev/null
cd ${tree_dir_artix}/$artixtree
local artixver=$(get_full_version $pkg)
msg2 "Artix Version: %s" "$artixver"
info "artixver: %s" "$artixver"
if [ $(vercmp $artixver $archver) -lt 0 ];then
info "Importing from archlinux (%s)" "$archtree"
rsync "${rsync_args[@]}" $src/ $dest/
patch_pkg "$pkg" "$tree"
else
warning "Versions match! Nothing to do!"
fi
else
cd ${tree_dir_artix}/$artixtree
info "Importing from archlinux (%s)" "$archtree"
mkdir $pkg
rsync "${rsync_args[@]}" $src/ $dest/
patch_pkg "$pkg" "$tree"
fi
}
import_from_arch(){
for tree in packages packages-galaxy;do
info "Importing from archlinux %s" "$tree"
read_import_list "$tree"
cd ${tree_dir_artix}/$tree
for pkg in ${import_list[@]};do
[[ "$tree" == 'packages' ]] && from_arch "$pkg" "$tree" "$tree"
[[ "$tree" == 'packages-galaxy' ]] && from_arch "$pkg" "community" "$tree"
done
done
}
sync_repos(){
pull_tree_arch
pull_tree_artix
}
display_settings(){ display_settings(){
show_version show_version
show_config show_config
msg "REPOS:"
msg2 "repo_tree_artix: %s" "${repo_tree_artix[*]}"
msg2 "repo_tree_arch: %s" "${repo_tree_arch[*]}"
msg "OPTIONS:" msg "OPTIONS:"
msg2 "repository: %s" "${repository}" msg2 "package: %s" "${package}"
msg "ARGS:" msg "ARGS:"
msg2 "artix: %s" "${artix}" msg2 "sync: %s" "${sync}"
msg2 "arch: %s" "${arch}" msg2 "upgrades: %s" "${upgrades}"
msg2 "compare: %s" "${compare}" msg2 "downgrades: %s" "${downgrades}"
msg2 "import_arch: %s" "${import_arch}" msg2 "import_packages: %s" "${import_packages}"
# msg2 "gitpush: %s" "${gitpush}" msg2 "import_community: %s" "${import_community}"
msg2 "import_all: %s" "${import_all}"
msg "PATHS:" msg "PATHS:"
msg2 "tree_dir_artix: %s" "${tree_dir_artix}" msg2 "tree_dir_artix: %s" "${tree_dir_artix}"
msg2 "tree_dir_arch: %s" "${tree_dir_arch}" msg2 "tree_dir_arch: %s" "${tree_dir_arch}"
msg2 "patches_dir: %s" "${patches_dir}/${repository}" msg2 "patches_dir: %s" "${patches_dir}"
} }
load_user_info load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf" load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
pretend=false pretend=false
arch=false sync=false
artix=false upgrades=false
compare=false downgrades=false
import_arch=false import_packages=false
# gitpush=false import_community=false
repository='system' #${PWD##*/} import_all=false
package=''
git_artix='packages'
git_arch='packages'
rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs)
usage() { usage() {
echo "Usage: ${0##*/} [options]" echo "Usage: ${0##*/} [options]"
echo " -r <repo> Repository [default:${repository}]" echo ' -p <pkg> Package name'
echo " -a Sync arch tree" echo " -s Clone or pull repos"
echo " -s Sync artix tree" echo ' -u Show upgrade packages'
echo " -c Compare artix and arch versions" echo ' -d Show downgrade packages'
echo ' -i Import arch packages' echo ' -i Import from arch packages'
# echo ' -p Push import packages' echo ' -j Import from arch community'
echo ' -k Import arch packages'
echo ' -q Query settings' echo ' -q Query settings'
echo ' -h This help' echo ' -h This help'
echo '' echo ''
@@ -75,17 +374,17 @@ usage() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
# opts='r:aipscqh' opts='p:sudijkqh'
opts='r:aiscqh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
r) repository="$OPTARG" ;; p) package="$OPTARG" ;;
a) arch=true ;; s) sync=true ;;
s) artix=true ;; u) upgrades=true ;;
c) compare=true ;; d) downgrades=true ;;
i) import_arch=true ;; i) import_packages=true ;;
# p) gitpush=true ;; j) import_community=true; git_artix='packages-galaxy'; git_arch='community' ;;
k) import_all=true ;;
q) pretend=true ;; q) pretend=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;; *) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -96,14 +395,18 @@ shift $(($OPTIND - 1))
prepare_dir "${tree_dir_artix}" prepare_dir "${tree_dir_artix}"
prepare_dir "${tree_dir_arch}" prepare_dir "${tree_dir_arch}"
prepare_dir "${patches_dir}/${repository}" prepare_dir "${patches_dir}"
${pretend} && display_settings && exit 1 ${pretend} && display_settings && exit 1
${artix} && sync_tree_artix ${sync} && sync_repos
${arch} && sync_tree_arch ${upgrades} && show_upgrade_table
${compare} && show_version_table "${repository}" ${downgrades} && show_downgrade_table
${import_arch} && import_from_arch "${repository}" #"${gitpush}" ${import_all} && import_from_arch
${import_packages} && from_arch "${package}" "${git_arch}" "${git_artix}"
${import_community} && from_arch "${package}" "${git_arch}" "${git_artix}"

View File

@@ -1,318 +0,0 @@
#!/bin/bash
#
# 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.
version=@version@
LIBDIR='@libdir@'
SYSCONFDIR='@sysconfdir@'
DATADIR='@datadir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
get_local_head(){
echo $(git log --pretty=%H ...refs/heads/$1^ | head -n 1)
}
get_remote_head(){
echo $(git ls-remote origin -h refs/heads/$1 | cut -f1)
}
is_dirty() {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] || return 1
return 0
}
is_untracked(){
[[ $(git ls-files --others --exclude-standard) != "" ]] || return 1
return 0
}
pull_tree(){
local branch="master" tree="$1"
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
local timer=$(get_timer)
msg "Checking [%s] ..." "$tree"
msg2 "local: %s" "${local_head}"
msg2 "remote: %s" "${remote_head}"
if [[ "${local_head}" == "${remote_head}" ]]; then
info "nothing to do"
else
info "needs pull"
git pull origin $branch
fi
msg "Done [%s]" "$tree"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
clone_tree(){
local timer=$(get_timer) tree="$1" host_tree="$2"
msg "Preparing [%s] ..." "$tree"
info "clone"
git clone $host_tree.git
msg "Done [%s]" "$tree"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
pull_tree_arch(){
cd ${tree_dir_arch}
for tree in packages community;do
if [[ -d ${tree} ]];then
cd ${tree}
pull_tree "${tree}"
cd ..
else
clone_tree "${tree}" "${host_tree_arch}/${tree}"
fi
done
}
pull_tree_artix(){
cd ${tree_dir_artix}
for tree in packages packages-galaxy;do
if [[ -d ${tree} ]];then
cd ${tree}
git config --bool pull.rebase true
pull_tree "${tree}"
cd ..
else
clone_tree "${tree}" "${host_tree_artix}/${tree}"
fi
done
}
read_import_list(){
local tree="$1"
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
import_list=$(sed "$_com_rm" "${list_dir_import}/$tree.list" | sed "$_space" | sed "$_clean")
}
patch_pkg(){
local pkg="$1" repo="$2"
case $pkg in
'glibc')
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/$repo/PKGBUILD
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/trunk/PKGBUILD
;;
'tp_smapi'|'acpi_call'|'r8168')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/$repo/PKGBUILD
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
;;
esac
}
get_import_path(){
local tree="$1" import_path=
case $tree in
packages) import_path=${tree_dir_arch}/packages ;;
packages-galaxy) import_path=${tree_dir_arch}/community ;;
esac
echo $import_path
}
find_repo(){
local pkg="$1" repo=
if [[ -d $pkg/repos/core-x86_64 ]];then
repo=core-x86_64
elif [[ -d $pkg/repos/core-any ]];then
repo=core-any
fi
if [[ -d $pkg/repos/extra-x86_64 ]];then
repo=extra-x86_64
elif [[ -d $pkg/repos/extra-any ]];then
repo=extra-any
fi
if [[ -d $pkg/repos/testing-x86_64 ]];then
repo=testing-x86_64
elif [[ -d $pkg/repos/testing-any ]];then
repo=testing-any
fi
if [[ -d $pkg/repos/staging-x86_64 ]];then
repo=staging-x86_64
elif [[ -d $pkg/repos/staging-any ]];then
repo=staging-any
fi
if [[ -d $pkg/repos/community-x86_64 ]];then
repo=community-x86_64
elif [[ -d $pkg/repos/community-any ]];then
repo=community-any
fi
if [[ -d $pkg/repos/community-testing-x86_64 ]];then
repo=community-testing-x86_64
elif [[ -d $pkg/repos/community-testing-any ]];then
repo=community-testing-any
fi
if [[ -d $pkg/repos/community-staging-x86_64 ]];then
repo=community-staging-x86_64
elif [[ -d $pkg/repos/community-staging-any ]];then
repo=community-staging-any
fi
if [[ -d $pkg/repos/multilib-x86_64 ]];then
repo=multilib-x86_64
fi
if [[ -d $pkg/repos/multilib-testing-x86_64 ]];then
repo=multilib-testing-x86_64
fi
if [[ -d $pkg/repos/multilib-staging-x86_64 ]];then
repo=multilib-staging-x86_64
fi
echo $repo
}
show_version_table(){
local tree="$1"
declare -A UPDATES
msg_table_header "%-30s %-30s %-30s %-30s" "Repository" "Package" "Artix version" "Arch version"
for pkg in ${tree_dir_artix}/$tree/*; do
local artixrepo=$(find_repo "$pkg")
if [[ -f $pkg/repos/$artixrepo/PKGBUILD ]];then
source $pkg/repos/$artixrepo/PKGBUILD 2>/dev/null
package=${pkg##*/}
cd $pkg/repos/$artixrepo
artixver=$(get_full_version $package)
local src=$(get_import_path "$tree" "$package")
local archrepo=$(find_repo "$src/$package")
if [[ -f $src/$package/repos/$archrepo/PKGBUILD ]];then
source $src/$package/repos/$archrepo/PKGBUILD 2>/dev/null
cd $src/$package/repos/$archrepo
archver=$(get_full_version $package)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
UPDATES[$package]="$pkg/repos/$artixrepo/PKGBUILD $src/$package/repos/$archrepo/PKGBUILD"
msg_row_update "%-30s %-30s %-30s %-30s" "${archrepo%-*}" "$package" "$artixver" "$archver"
fi
unset pkgver epoch pkgrel artixver archver package
fi
done
find "${patches_dir}/$tree/" -name *.patch -delete
for upd in "${!UPDATES[@]}"; do
msg "Writing %s update patch ..." "$upd"
diff -u ${UPDATES[$upd]} > ${patches_dir}/$tree/"$upd"-archlinux.patch
done
}
import_from_arch(){
local timer=$(get_timer) tree="$1"
read_import_list "$tree"
if [[ -n ${import_list[@]} ]];then
cd ${tree_dir_artix}/$tree
for pkg in ${import_list[@]};do
local src=$(get_import_path "$tree")
local dest=${tree_dir_artix}/$tree
rsync "${rsync_args[@]}" $src/$pkg/ $dest/$pkg/
local repo=$(find_repo "$pkg")
source $src/$pkg/repos/$repo/PKGBUILD 2>/dev/null
local ver=$(get_full_version $pkg)
msg "Repo: [%s] Package: %s-%s" "$repo" "$pkg" "$ver"
patch_pkg "$pkg" "repos/$repo"
unset pkgver epoch pkgrel ver
done
fi
show_elapsed_time "${FUNCNAME}" "${timer}"
}
sync_repos(){
pull_tree_arch
pull_tree_artix
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "git_tree: %s" "${git_tree}"
msg "ARGS:"
msg2 "sync: %s" "${sync}"
msg2 "import_arch: %s" "${import_arch}"
msg2 "compare: %s" "${compare}"
msg "PATHS:"
msg2 "tree_dir_artix: %s" "${tree_dir_artix}"
msg2 "tree_dir_arch: %s" "${tree_dir_arch}"
msg2 "patches_dir: %s" "${patches_dir}/${git_tree}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
pretend=false
sync=false
import_arch=false
compare=false
move=false
git_tree='packages'
rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs)
usage() {
echo "Usage: ${0##*/} [options]"
echo " -g <git> Git repo [default:${git_tree}]"
echo " -s Sync repos"
echo ' -i Import arch packages'
echo ' -c Compare packages'
echo ' -q Query settings'
echo ' -h This help'
echo ''
echo ''
exit $1
}
orig_argv=("$0" "$@")
opts='g:sciqh'
while getopts "${opts}" arg; do
case "${arg}" in
g) git_tree="$OPTARG" ;;
s) sync=true ;;
i) import_arch=true ;;
c) compare=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
done
shift $(($OPTIND - 1))
prepare_dir "${tree_dir_artix}"
prepare_dir "${tree_dir_arch}"
prepare_dir "${patches_dir}/${git_tree}"
${pretend} && display_settings && exit 1
${sync} && sync_repos
${compare} && show_version_table "${git_tree}"
${import_arch} && import_from_arch "${git_tree}"

View File

@@ -17,12 +17,131 @@ DATADIR='@datadir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
move_pkg(){ commit_pkg(){
local pkg="$1" src_repo="$2" dest_repo="$3" tree="$4" cd ${tree_dir_artix}/${git_tree}/${package}
cd ${tree_dir_artix}/$tree/$pkg/repos source trunk/PKGBUILD
git mv --force $src_repo $dest_repo local ver=$(get_full_version ${package})
git add -u $dest_repo if ${remove};then
git commit -m "Move '$pkg' from [$src_repo] to [$dest_repo]" local action='remove'
local pkg=${package}-$ver
if [[ "${source_repo}" == 'trunk' ]];then
pkg=${package}
info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
git rm -r trunk
else
info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
git rm -r repos/${source_repo}-$CARCH
fi
git commit -m "[${source_repo}] '$pkg' ${action}"
${push} && git push origin master
else
local action='modify'
info "[%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}"
git add .
git commit -m "[${source_repo}] '${package}-$ver' ${action}"
${push} && git push origin master
fi
} }
release_pkg(){
if [[ -d ${tree_dir_artix}/${git_tree}/${package} ]];then
cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD
[[ $arch == 'any' ]] && CARCH=any
if [[ ${source_repo} != 'trunk' ]];then
cd repos
dest=${target_repo}-$CARCH
action='move'
[[ -d $dest ]] && git rm -r $dest
git mv ${source_repo}-$CARCH $dest
cd ..
else
dest=${target_repo}-$CARCH
action='add'
[[ -d repos/$dest ]] && git rm -r repos/$dest
[[ ! -d repos ]] && mkdir repos
cp -r trunk repos/$dest
fi
local ver=$(get_full_version ${package})
info "[%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}"
git add .
git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}"
${push} && git push origin master
fi
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "git_tree: %s" "${git_tree}"
msg2 "source_repo: %s" "${source_repo}"
msg2 "target_repo: %s" "${target_repo}"
msg2 "package: %s" "${package}"
msg "ARGS:"
msg2 "remove: %s" "${remove}"
msg2 "push: %s" "${push}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
source_repo='trunk'
package=''
remove=false
push=false
pretend=false
git_tree='packages'
cmd=${0##*/}
target_repo=${cmd%pkg}
case ${target_repo} in
community*|multilib*) git_tree='packages-galaxy' ;;
esac
usage() {
echo "Usage: ${0##*/} [options]"
echo " -s <name> Source repository [default:${source_repo}]"
echo ' -p <pkg> Package name'
echo ' -r Delete from repo'
echo ' -u Push'
echo ' -q Query settings and pretend'
echo ' -h This help'
echo ''
echo ''
exit $1
}
orig_argv=("$0" "$@")
opts='p:s:urqh'
while getopts "${opts}" arg; do
case "${arg}" in
s) source_repo="$OPTARG" ;;
p) package="$OPTARG" ;;
r) remove=true ;;
u) push=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
done
shift $(($OPTIND - 1))
${pretend} && display_settings && exit 1
if [[ "${cmd}" == 'commitpkg' ]];then
commit_pkg
else
release_pkg
fi

View File

@@ -16,7 +16,43 @@ SYSCONFDIR='@sysconfdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg-publish.sh import ${LIBDIR}/util-pkg.sh
del_from_repo(){
local ver
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH");then
info "pkgfile: %s" "${pkgfile##*/}"
repo-remove -R $repo_path/$repo.db.tar.xz $name
rm -v $repo_path/${pkgfile##*/}{,.sig}
fi
done
}
add_to_repo(){
local ver pkgfile=
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH"); then
info "pkgfile: %s" "${pkgfile##*/}"
if ${sign_pkg};then
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
signfile ${pkgfile}
fi
ln -sf ${pkgfile}{,.sig} $repo_path/
repo-add -R $repo_path/$repo.db.tar.xz $pkgfile
fi
done
}
display_settings(){ display_settings(){
show_version show_version
@@ -24,14 +60,11 @@ display_settings(){
msg "OPTIONS:" msg "OPTIONS:"
msg2 "repository: %s" "${repository}" msg2 "repository: %s" "${repository}"
msg2 "to_repository: %s" "${to_repository}"
msg2 "package: %s" "${package[@]}"
msg2 "target_arch: %s" "${target_arch}"
msg "ARGS:" msg "ARGS:"
msg2 "add_pkg: %s" "${add_pkg}" msg2 "add_pkg: %s" "${add_pkg}"
msg2 "del_pkg: %s" "${del_pkg}" msg2 "del_pkg: %s" "${del_pkg}"
msg2 "move_pkg: %s" "${move_pkg}" msg2 "sign_pkg: %s" "${sign_pkg}"
} }
load_user_info load_user_info
@@ -43,22 +76,15 @@ load_vars /etc/makepkg.conf
pretend=false pretend=false
add_pkg=false add_pkg=false
del_pkg=false del_pkg=false
move_pkg=false repository=
package='' sign_pkg=false
repository=${PWD##*/}
to_repository=${PWD##*/}
rsync_args=(-rtxisP --progress --delete -e ssh)
usage() { usage() {
echo "Usage: ${0##*/} [options]" echo "Usage: ${0##*/} [options]"
echo " -a Repository arch [default:${target_arch}]" echo " -d Destination repository [default:${repository}]"
echo " -r Repository [default:${repository}]" echo ' -a Add package to repository'
echo " -t Repository to move to [default:${to_repository}]" echo ' -r Remove package from repository'
echo " -p Package name to add/delete" echo ' -s Sign package'
echo ' -x Add package to repository'
echo ' -y Delete package from repository'
echo ' -m Move packages from source to destination repository'
echo ' -q Query settings and pretend upload' echo ' -q Query settings and pretend upload'
echo ' -h This help' echo ' -h This help'
echo '' echo ''
@@ -68,17 +94,14 @@ usage() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts='p:a:r:t:xymqh' opts='d:arsqh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
a) target_arch="$OPTARG" ;; d) repository="$OPTARG" ;;
r) repository="$OPTARG" ;; a) add_pkg=true ;;
p) package="$OPTARG" ;; r) del_pkg=true ;;
t) to_repository="$OPTARG" ;; s) sign_pkg=true ;;
m) move_pkg=true ;;
x) add_pkg=true ;;
y) del_pkg=true ;;
q) pretend=true ;; q) pretend=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;; *) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -87,16 +110,12 @@ done
shift $(($OPTIND - 1)) shift $(($OPTIND - 1))
timer_start=$(get_timer)
prepare_dir "${repos_root}" prepare_dir "${repos_root}"
${pretend} && display_settings && exit 1 ${pretend} && display_settings && exit 1
${move_pkg} && move_to_repo "${repository}" "${to_repository}" "${target_arch}" ${del_pkg} && del_from_repo "${repository}"
${del_pkg} && del_from_repo "${repository}" "${target_arch}" "${package}" ${add_pkg} && add_to_repo "${repository}"
${add_pkg} && add_to_repo "${repository}" "${target_arch}" "${package}"
exit 0 exit 0

View File

@@ -1,118 +0,0 @@
#!/bin/bash
#
# 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.
version=@version@
LIBDIR='@libdir@'
SYSCONFDIR='@sysconfdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
del_from_repo(){
local ver
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH");then
info "pkgfile: %s" "${pkgfile##*/}"
repo-remove -R $repo_path/$repo.db.tar.xz $name
rm -v $repo_path/${pkgfile##*/}{,.sig}
fi
done
}
add_to_repo(){
local ver pkgfile=
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH"); then
info "pkgfile: %s" "${pkgfile##*/}"
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
signfile ${pkgfile}
ln -sf ${pkgfile}{,.sig} $repo_path/
repo-add -R $repo_path/$repo.db.tar.xz $pkgfile
fi
done
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "repository: %s" "${repository}"
msg "ARGS:"
msg2 "add_pkg: %s" "${add_pkg}"
msg2 "del_pkg: %s" "${del_pkg}"
msg2 "move_pkg: %s" "${move_pkg}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
pretend=false
add_pkg=false
del_pkg=false
repository=
usage() {
echo "Usage: ${0##*/} [options]"
echo " -d Destination repository [default:${repository}]"
echo ' -a Add package to repository'
echo ' -r Remove package from repository'
echo ' -q Query settings and pretend upload'
echo ' -h This help'
echo ''
echo ''
exit $1
}
orig_argv=("$0" "$@")
opts='d:arqh'
while getopts "${opts}" arg; do
case "${arg}" in
d) repository="$OPTARG" ;;
a) add_pkg=true ;;
r) del_pkg=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
done
shift $(($OPTIND - 1))
timer_start=$(get_timer)
prepare_dir "${repos_root}"
${pretend} && display_settings && exit 1
${del_pkg} && del_from_repo "${repository}"
${add_pkg} && add_to_repo "${repository}"
exit 0

View File

@@ -1,53 +0,0 @@
#!/bin/bash
#
# 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.
version=@version@
LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
import ${LIBDIR}/util-pkg-tree.sh
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
declare -A UPDATES
msg_table_header "%-30s %-30s %-30s %-30s" "Repository" "Package" "Artix version" "Arch version"
for repo in ${repo_tree_artix[@]}; do
for pkg in ${tree_dir_artix}/$repo/*; do
if [[ -f $pkg/PKGBUILD ]];then
source $pkg/PKGBUILD 2>/dev/null
package=${pkg##*/}
artixver=$(get_full_version $package)
src=$(get_import_path "$repo" "$package")
if [[ -f $src/PKGBUILD ]];then
source $src/PKGBUILD 2>/dev/null
archver=$(get_full_version $package)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
UPDATES[$package]="$src/PKGBUILD $pkg/PKGBUILD"
msg_row_update "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
else
msg_row "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
fi
fi
unset pkgver epoch pkgrel artixver archver package
done
done
for upd in "${!UPDATES[@]}"; do
msg "Diff: %s" "$upd"
diff -u ${UPDATES[$upd]}
done

View File

@@ -199,9 +199,16 @@ EOF
# These functions aren't run in makechrootpkg, # These functions aren't run in makechrootpkg,
# so no global variables # so no global variables
_chrootbuild() { _chrootbuild() {
# No coredumps
ulimit -c 0
exec </dev/console exec </dev/console
export LANG=en_US.UTF-8
export LANG=C
export TERM=$TERM
. /etc/profile . /etc/profile
sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
} }

View File

@@ -1,55 +0,0 @@
#!/bin/bash
# alias git=hub
super_repo=/home/artux/artools-workspace/artix/packages
copy_pkgs(){
for repo in system world;do
local old_repo=/home/artux/artools-workspace/artix/$repo
cd $old_repo
local packages=$(find . -mindepth 1 -maxdepth 1 -type d)
# git checkout testing
for p in ${packages[@]};do
local pkg=${p#*/}
mkdir -p $super_repo/$pkg/$repo
# cp -v $pkg/* $super_repo/$pkg/trunk/
cp -v $pkg/* $super_repo/$pkg/$repo/
done
done
rm -r $super_repo/.git
}
create_pkg_repo(){
cd $super_repo
local packages=$(find . -mindepth 1 -maxdepth 1 -type d)
for p in ${packages[@]};do
local pkg=${p#*/}
cd $pkg
git init
git add .
git commit -m "initial commit $pkg"
hub create artix-packages/$pkg
git push origin master
cd ..
done
}
add_pkg_subtree(){
for repo in system world;do
local old_repo=/home/artux/artools-workspace/artix/$repo
cd $old_repo
local packages=$(find . -mindepth 1 -maxdepth 1 -type d)
cd $super_repo
for p in ${packages[@]};do
local pkg=${p#*/}
git remote add -f $pkg git@github.com:artix-packages/$pkg.git
git subtree add --prefix $pkg $pkg master --squash
# git subtree add --prefix $pkg git@github.com:artix-packages/$pkg.git master --squash
done
done
}
# copy_pkgs
# create_pkg_repo
add_pkg_subtree

View File

@@ -22,33 +22,31 @@ pipeline {
echo "currentCommit: ${currentCommit}" echo "currentCommit: ${currentCommit}"
def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n') def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n')
echo "changedFilesStatus: " + changedFilesStatus
def changedPkgStatus = [] def changedPkgStatus = []
def pkgPath = [] def pkgPath = []
int entrySize = 0 int entryCount = 0
for ( int i = 0; i < changedFilesStatus.size(); i++ ) { for ( int i = 0; i < changedFilesStatus.size(); i++ ) {
def entry = changedFilesStatus[i].split() def entry = changedFilesStatus[i].split()
def fileStatus = entry[0] def fileStatus = entry[0]
entrySize = entry.size() entryCount = entry.size()
for ( int j = 1; j < entry.size(); j++ ) { for ( int j = 1; j < entry.size(); j++ ) {
if ( entry[j].contains('PKGBUILD') && entry[j].contains('repos') ){ if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){
changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD') changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD')
pkgPath << entry[j].minus('/PKGBUILD') pkgPath << entry[j].minus('/PKGBUILD')
} }
} }
} }
int pkgCount = changedPkgStatus.size() int pkgCount = changedPkgStatus.size()
int pkgPathCount = pkgPath.size() int pkgPathCount = pkgPath.size()
echo "pkgCount: ${pkgCount}" echo "pkgCount: ${pkgCount}"
echo "pkgPath: ${pkgPath}" echo "entryCount: ${entryCount}"
echo "entrySize: ${entrySize}"
echo "pkgPathCount: ${pkgPathCount}" echo "pkgPathCount: ${pkgPathCount}"
echo "changedPkgStatus: ${changedPkgStatus}" echo "changedPkgStatus: ${changedPkgStatus}"
if ( pkgCount > 0 ) { if ( pkgCount > 0 ) {
if ( entrySize == 2 && pkgCount == 2 ) { if ( entryCount == 2 && pkgCount == 2 ) {
def pkgEntry1 = changedPkgStatus[0].split() def pkgEntry1 = changedPkgStatus[0].split()
def pkgEntry2 = changedPkgStatus[1].split() def pkgEntry2 = changedPkgStatus[1].split()
def srcPath = [] def srcPath = []
@@ -59,78 +57,115 @@ pipeline {
pkgStatus << pkgEntry2[0] pkgStatus << pkgEntry2[0]
def buildInfo1 = srcPath[0].tokenize('/') def buildInfo1 = srcPath[0].tokenize('/')
def buildInfo2 = srcPath[1].tokenize('/') def buildInfo2 = srcPath[1].tokenize('/')
for ( s in pkgStatus ) {
if ( s == "M" ) { if ( pkgStatus[0] == "M" ) {
IS_ADD = 'true' IS_ADD = 'true'
if ( srcPath[0].contains('community-testing') ) { if ( srcPath[0].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins' ADD_REPO = 'galaxy-gremlins'
} else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) { } else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) {
ADD_REPO = 'galaxy' ADD_REPO = 'galaxy'
}
if ( srcPath[0].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
} else if ( srcPath[0].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
}
} }
if ( s == 'D' ) { if ( srcPath[0].contains('multilib-testing') ) {
IS_REMOVE = 'true' ADD_REPO = 'lib32-gremlins'
if ( srcPath[1].contains('community-testing') ) { } else if ( srcPath[0].contains('multilib-x86_64') ) {
RM_REPO = 'galaxy-gremlins' ADD_REPO = 'lib32'
} else if ( srcPath[1].contains('community-x86_64') || srcPath[0].contains('community-any') ) { }
RM_REPO = 'galaxy' } else if ( pkgStatus[1] == "M" ) {
} IS_ADD = 'true'
if ( srcPath[1].contains('multilib-testing') ) { if ( srcPath[1].contains('community-testing') ) {
RM_REPO = 'lib32-gremlins' ADD_REPO = 'galaxy-gremlins'
} else if ( srcPath[1].contains('multilib-x86_64') ) { } else if ( srcPath[1].contains('community-x86_64') || srcPath[1].contains('community-any') ) {
RM_REPO = 'lib32' ADD_REPO = 'galaxy'
} }
if ( srcPath[1].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
} else if ( srcPath[1].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
} }
} }
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( entrySize == 3 && pkgCount == 2 ) { if ( pkgStatus[0] == "D" ) {
IS_REMOVE = 'true'
if ( srcPath[0].contains('community-testing') ) {
RM_REPO = 'galaxy-gremlins'
} else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) {
RM_REPO = 'galaxy'
}
if ( srcPath[0].contains('multilib-testing') ) {
RM_REPO = 'lib32-gremlins'
} else if ( srcPath[0].contains('multilib-x86_64') ) {
RM_REPO = 'lib32'
}
} else if ( pkgStatus[1] == "D" ) {
IS_REMOVE = 'true'
if ( srcPath[1].contains('community-testing') ) {
RM_REPO = 'galaxy-gremlins'
} else if ( srcPath[1].contains('community-x86_64') || srcPath[1].contains('community-any') ) {
RM_REPO = 'galaxy'
}
if ( srcPath[1].contains('multilib-testing') ) {
RM_REPO = 'lib32-gremlins'
} else if ( srcPath[1].contains('multilib-x86_64') ) {
RM_REPO = 'lib32'
}
}
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( entryCount == 3 && pkgCount == 2 ) {
def pkgEntry = changedPkgStatus[0].split() def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0] def pkgStatus = pkgEntry[0]
def buildInfo1 = pkgPath[0].tokenize('/') def buildInfo1 = pkgPath[0].tokenize('/')
def buildInfo2 = pkgPath[1].tokenize('/') def buildInfo2 = pkgPath[1].tokenize('/')
if ( pkgStatus.contains('R') ) { if ( pkgStatus.contains('R') ) {
IS_ADD = 'true' IS_ADD = 'true'
IS_REMOVE = 'true' IS_REMOVE = 'true'
if ( pkgPath[0].contains('community-staging') ) {
RM_REPO = 'galaxy-goblins' if ( pkgPath[0].contains('community-staging') && pkgPath[1].contains('community-testing') ) {
}
if ( pkgPath[1].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins' ADD_REPO = 'galaxy-gremlins'
} RM_REPO = 'galaxy-goblins'
if ( pkgPath[1].contains('community-staging') ) { } else if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-staging') ) {
RM_REPO = 'galaxy-gremlins'
}
if ( pkgPath[0].contains('community-testing') ) {
ADD_REPO = 'galaxy-goblins' ADD_REPO = 'galaxy-goblins'
RM_REPO = 'galaxy-gremlins'
} }
if ( pkgPath[0].contains('multilib-staging') ) {
RM_REPO = 'lib32-goblins' if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-x86_64') || pkgPath[0].contains('community-any') ) {
} ADD_REPO = 'galaxy-gremlins'
if ( pkgPath[1].contains('multilib-testing') ) { RM_REPO = 'galaxy'
} else if ( pkgPath[0].contains('community-x86_64') || pkgPath[0].contains('community-any') && pkgPath[1].contains('community-testing') ) {
ADD_REPO = 'galaxy'
RM_REPO = 'galaxy-gremlins'
}
if ( pkgPath[0].contains('multilib-staging') && pkgPath[1].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins' ADD_REPO = 'lib32-gremlins'
} RM_REPO = 'lib32-goblins'
if ( pkgPath[1].contains('multilib-staging') ) { } else if ( pkgPath[0].contains('multilib-testing') && pkgPath[1].contains('multilib-staging') ) {
RM_REPO = 'lib32-gremlins'
}
if ( pkgPath[0].contains('multilib-testing') ) {
ADD_REPO = 'lib32-goblins' ADD_REPO = 'lib32-goblins'
RM_REPO = 'lib32-gremlins'
}
if ( pkgPath[0].contains('multilib-testing') && pkgPath[1].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
RM_REPO = 'lib32-gremlins'
} else if ( pkgPath[0].contains('multilib-x86_64') && pkgPath[1].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
RM_REPO = 'lib32'
} }
} }
PKG_TRUNK = buildInfo1[0] + '/trunk' PKG_TRUNK = buildInfo1[0] + '/trunk'
} }
if ( pkgCount == 1 ) { if ( pkgCount == 1 ) {
def pkgEntry = changedPkgStatus[0].split() def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0] def pkgStatus = pkgEntry[0]
def srcPath = pkgEntry[1] def srcPath = pkgEntry[1]
def buildInfo = srcPath.tokenize('/') def buildInfo = srcPath.tokenize('/')
if ( srcPath.contains('community-staging') ) { if ( srcPath.contains('community-staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) { if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true' IS_BUILD = 'true'
@@ -190,7 +225,7 @@ pipeline {
PKG_PATH = srcPath PKG_PATH = srcPath
PKG_TRUNK = buildInfo[0] + '/trunk' PKG_TRUNK = buildInfo[0] + '/trunk'
} }
} }
} }
} }
@@ -204,13 +239,13 @@ pipeline {
} }
steps { steps {
dir("${PKG_PATH}") { dir("${PKG_PATH}") {
echo "buildpkg2 -r ${ADD_REPO}" sh "buildpkg -r ${ADD_REPO}"
} }
} }
post { post {
success { success {
dir("${PKG_PATH}") { dir("${PKG_PATH}") {
echo "deploypkg2 -a -d ${ADD_REPO}" sh "deploypkg -a -d ${ADD_REPO} -s"
} }
} }
} }
@@ -221,7 +256,7 @@ pipeline {
} }
steps { steps {
dir("${PKG_TRUNK}") { dir("${PKG_TRUNK}") {
echo "deploypkg2 -a -d ${ADD_REPO}" sh "deploypkg -a -d ${ADD_REPO}"
} }
} }
} }
@@ -231,7 +266,7 @@ pipeline {
} }
steps { steps {
dir("${PKG_TRUNK}") { dir("${PKG_TRUNK}") {
echo "deploypkg2 -r -d ${RM_REPO}" sh "deploypkg -r -d ${RM_REPO}"
} }
} }
} }

View File

@@ -22,33 +22,31 @@ pipeline {
echo "currentCommit: ${currentCommit}" echo "currentCommit: ${currentCommit}"
def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n') def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n')
echo "changedFilesStatus: " + changedFilesStatus
def changedPkgStatus = [] def changedPkgStatus = []
def pkgPath = [] def pkgPath = []
int entrySize = 0 int entryCount = 0
for ( int i = 0; i < changedFilesStatus.size(); i++ ) { for ( int i = 0; i < changedFilesStatus.size(); i++ ) {
def entry = changedFilesStatus[i].split() def entry = changedFilesStatus[i].split()
def fileStatus = entry[0] def fileStatus = entry[0]
entrySize = entry.size() entryCount = entry.size()
for ( int j = 1; j < entry.size(); j++ ) { for ( int j = 1; j < entry.size(); j++ ) {
if ( entry[j].contains('PKGBUILD') && entry[j].contains('repos') ){ if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){
changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD') changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD')
pkgPath << entry[j].minus('/PKGBUILD') pkgPath << entry[j].minus('/PKGBUILD')
} }
} }
} }
int pkgCount = changedPkgStatus.size() int pkgCount = changedPkgStatus.size()
int pkgPathCount = pkgPath.size() int pkgPathCount = pkgPath.size()
echo "pkgCount: ${pkgCount}" echo "pkgCount: ${pkgCount}"
echo "pkgPath: ${pkgPath}" echo "entryCount: ${entryCount}"
echo "entrySize: ${entrySize}"
echo "pkgPathCount: ${pkgPathCount}" echo "pkgPathCount: ${pkgPathCount}"
echo "changedPkgStatus: ${changedPkgStatus}" echo "changedPkgStatus: ${changedPkgStatus}"
if ( pkgCount > 0 ) { if ( pkgCount > 0 ) {
if ( entrySize == 2 && pkgCount == 2 ) { if ( entryCount == 2 && pkgCount == 2 ) {
def pkgEntry1 = changedPkgStatus[0].split() def pkgEntry1 = changedPkgStatus[0].split()
def pkgEntry2 = changedPkgStatus[1].split() def pkgEntry2 = changedPkgStatus[1].split()
def srcPath = [] def srcPath = []
@@ -59,60 +57,101 @@ pipeline {
pkgStatus << pkgEntry2[0] pkgStatus << pkgEntry2[0]
def buildInfo1 = srcPath[0].tokenize('/') def buildInfo1 = srcPath[0].tokenize('/')
def buildInfo2 = srcPath[1].tokenize('/') def buildInfo2 = srcPath[1].tokenize('/')
for ( s in pkgStatus ) {
if ( s == "M" ) { if ( pkgStatus[0] == 'M' ) {
IS_ADD = 'true' IS_ADD = 'true'
if ( srcPath[0].contains('testing') ) { if ( srcPath[0].contains('testing') ) {
ADD_REPO = 'gremlins' ADD_REPO = 'gremlins'
} else if ( srcPath[0].contains('core') ) { } else if ( srcPath[0].contains('core') ) {
ADD_REPO = 'system' ADD_REPO = 'system'
} else if ( srcPath[0].contains('extra') ) { } else if ( srcPath[0].contains('extra') ) {
ADD_REPO = 'world' ADD_REPO = 'world'
}
} }
if ( s == 'D' ) { } else if ( pkgStatus[1] == 'M' ) {
IS_REMOVE = 'true' IS_ADD = 'true'
if ( srcPath[1].contains('testing') ) { if ( srcPath[1].contains('testing') ) {
RM_REPO = 'gremlins' ADD_REPO = 'gremlins'
} else if ( srcPath[1].contains('core') ) { } else if ( srcPath[1].contains('core') ) {
RM_REPO = 'system' ADD_REPO = ''
} else if ( srcPath[1].contains('extra') ) { } else if ( srcPath[1].contains('extra') ) {
RM_REPO = 'world' ADD_REPO = 'world'
}
} }
} }
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( entrySize == 3 && pkgCount == 2 ) { if ( pkgStatus[0] == 'D' ) {
IS_REMOVE = 'true'
if ( srcPath[0].contains('testing') ) {
RM_REPO = 'gremlins'
} else if ( srcPath[0].contains('core') ) {
RM_REPO = 'system'
} else if ( srcPath[0].contains('extra') ) {
RM_REPO = 'world'
}
} else if ( pkgStatus[1] == 'D' ) {
IS_REMOVE = 'true'
if ( srcPath[1].contains('testing') ) {
RM_REPO = 'gremlins'
} else if ( srcPath[1].contains('core') ) {
RM_REPO = 'system'
} else if ( srcPath[1].contains('extra') ) {
RM_REPO = 'world'
}
}
PKG_TRUNK = buildInfo1[0] + '/trunk'
}
if ( entryCount == 3 && pkgCount == 2 ) {
def pkgEntry = changedPkgStatus[0].split() def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0] def pkgStatus = pkgEntry[0]
def buildInfo1 = pkgPath[0].tokenize('/') def buildInfo1 = pkgPath[0].tokenize('/')
def buildInfo2 = pkgPath[1].tokenize('/') def buildInfo2 = pkgPath[1].tokenize('/')
if ( pkgStatus.contains('R') ) { if ( pkgStatus.contains('R') ) {
IS_ADD = 'true' IS_ADD = 'true'
IS_REMOVE = 'true' IS_REMOVE = 'true'
if ( pkgPath[0].contains('staging') ) {
RM_REPO = 'goblins' if ( pkgPath[0].contains('staging') && pkgPath[1].contains('testing') ) {
}
if ( pkgPath[1].contains('testing') ) {
ADD_REPO = 'gremlins' ADD_REPO = 'gremlins'
} RM_REPO = 'goblins'
if ( pkgPath[1].contains('staging') ) { } else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('staging') ) {
RM_REPO = 'gremlins'
}
if ( pkgPath[0].contains('testing') ) {
ADD_REPO = 'goblins' ADD_REPO = 'goblins'
RM_REPO = 'gremlins'
}
if ( pkgPath[0].contains('core') && pkgPath[1].contains('testing')) {
ADD_REPO = 'gremlins'
RM_REPO = 'system'
} else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('core')) {
ADD_REPO = 'system'
RM_REPO = 'gremlins'
}
if ( pkgPath[0].contains('extra') && pkgPath[1].contains('testing')) {
ADD_REPO = 'gremlins'
RM_REPO = 'world'
} else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('extra')) {
ADD_REPO = 'world'
RM_REPO = 'gremlins'
}
if ( pkgPath[0].contains('core') && pkgPath[1].contains('extra')) {
ADD_REPO = 'world'
RM_REPO = 'system'
} else if ( pkgPath[0].contains('extra') && pkgPath[1].contains('core')) {
ADD_REPO = 'system'
RM_REPO = 'world'
} }
} }
PKG_TRUNK = buildInfo1[0] + '/trunk' PKG_TRUNK = buildInfo1[0] + '/trunk'
} }
if ( pkgCount == 1 ) { if ( pkgCount == 1 ) {
def pkgEntry = changedPkgStatus[0].split() def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0] def pkgStatus = pkgEntry[0]
def srcPath = pkgEntry[1] def srcPath = pkgEntry[1]
def buildInfo = srcPath.tokenize('/') def buildInfo = srcPath.tokenize('/')
if ( srcPath.contains('staging') ) { if ( srcPath.contains('staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) { if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true' IS_BUILD = 'true'
@@ -153,7 +192,7 @@ pipeline {
PKG_PATH = srcPath PKG_PATH = srcPath
PKG_TRUNK = buildInfo[0] + '/trunk' PKG_TRUNK = buildInfo[0] + '/trunk'
} }
} }
} }
} }
@@ -167,13 +206,13 @@ pipeline {
} }
steps { steps {
dir("${PKG_PATH}") { dir("${PKG_PATH}") {
echo "buildpkg2 -r ${ADD_REPO}" sh "buildpkg -r ${ADD_REPO}"
} }
} }
post { post {
success { success {
dir("${PKG_PATH}") { dir("${PKG_PATH}") {
echo "deploypkg2 -a -d ${ADD_REPO}" sh "deploypkg -a -d ${ADD_REPO} -s"
} }
} }
} }
@@ -184,7 +223,7 @@ pipeline {
} }
steps { steps {
dir("${PKG_TRUNK}") { dir("${PKG_TRUNK}") {
echo "deploypkg2 -a -d ${ADD_REPO}" sh "deploypkg -a -d ${ADD_REPO}"
} }
} }
} }
@@ -194,7 +233,7 @@ pipeline {
} }
steps { steps {
dir("${PKG_TRUNK}") { dir("${PKG_TRUNK}") {
echo "deploypkg2 -r -d ${RM_REPO}" sh "deploypkg -r -d ${RM_REPO}"
} }
} }
} }

View File

@@ -12,14 +12,8 @@
################ artools-pkg ################ ################ artools-pkg ################
############################################# #############################################
# to be removed
# repo_tree_artix=('packages' 'galaxy')
# host_tree_artix='https://github.com/artix-linux' # host_tree_artix='https://github.com/artix-linux'
# to be removed
# repo_tree_arch=('packages' 'community')
# host_tree_arch=git://projects.archlinux.org/svntogit # host_tree_arch=git://projects.archlinux.org/svntogit
# default repos root # default repos root

View File

@@ -1,3 +1,5 @@
acpi_call
acpi_call-lts
autoconf-archive autoconf-archive
cmocka cmocka
confuse confuse
@@ -5,6 +7,8 @@ dovecot
hub hub
hwinfo hwinfo
jansson jansson
lib32-fakeroot
lib32-libltdl
libappindicator libappindicator
libbson libbson
libdbi libdbi
@@ -21,12 +25,12 @@ libx86emu
ninja ninja
pigeonhole pigeonhole
portaudio portaudio
r8168
r8168-lts
sassc sassc
tp_smapi
tp_smapi-lts
virtualbox
virtualbox-guest-iso
yaml-cpp yaml-cpp
zeromq zeromq
# acpi_call
# r8168
# tp_smapi
# acpi_call-lts
# r8168-lts
# tp_smapi-lts

View File

@@ -0,0 +1,74 @@
dbus
lvm2
cryptsetup
mdadm
glibc
iptables
man-db
btrfs-progs
bash
dhcpcd
filesystem
gnupg
krb5
libusb
licenses
logrotate
mkinitcpio
pacman
pambase
procps-ng
rpcbind
util-linux
wpa_supplicant
gpm
cronie
accountsservice
alsa-utils
apache
avahi
bluez
colord
cups
dhcp
fluidsynth
git
haveged
libatasmart
libblockdev
libgudev
libinput
libwacom
lirc
mariadb
media-player-info
modemmmanger
networkmanager
openslp
polkit
pulseaudio
qt5-base
rsync
samba
sane
sddm
subversion
syslog-ng
udisks2
upower
xorg-server
xf86-input-libinput
xf86-input-evdev
xf86-video-amdgpu
xf86-video-ati
xf86-video-intel
xf86-video-nouveau
xf86-video-openchrome
xf86-video-sisusb

View File

@@ -1,2 +0,0 @@
lib32-fakeroot
lib32-libltdl

View File

@@ -1,10 +1,18 @@
acpi_call
acpi_call-lts
autoconf-archive autoconf-archive
cmocka cmocka
confuse confuse
cython
dmd
dovecot dovecot
gmock
gtest
hub hub
hwinfo hwinfo
jansson jansson
lib32-fakeroot
lib32-libltdl
libappindicator libappindicator
libbson libbson
libdbi libdbi
@@ -14,6 +22,7 @@ libindicator
libmongoc libmongoc
libnewt libnewt
libpgm libpgm
libphobos
libreplaygain libreplaygain
libsass libsass
libsodium libsodium
@@ -21,16 +30,26 @@ libx86emu
ninja ninja
pigeonhole pigeonhole
portaudio portaudio
sassc python-babel
yaml-cpp python-docutils
zeromq python-imagesize
acpi_call python-jinja
python-pygments
python-pytz
python-snowballstemmer
python-sphinx
python-sphinx-alabaster-theme
python-sphinxcontrib-websupport
python-sphinx_rtd_theme
python-sqlalchemy
python-whoosh
r8168 r8168
tp_smapi
acpi_call-lts
r8168-lts r8168-lts
rust
sassc
tp_smapi
tp_smapi-lts tp_smapi-lts
virtualbox virtualbox
virtualbox-guest-iso virtualbox-guest-iso
lib32-fakeroot yaml-cpp
lib32-libltdl zeromq

View File

@@ -1,241 +1,128 @@
### system ###
tzdata
iana-etc
linux-api-headers
binutils
glibc
gcc
attr
acl
ncurses
readline
# bash
sed
diffutils
expat
db
lz4
lzo
bzip2
gmp
mpfr
m4
gdbm
xz
zlib
file
zstd
icu
perl
openssl
openssl-1.0
autoconf
automake
dash
bison
ldns
less
libaio
libarchive
libassuan
libcap
libedit
libevent
libffi
libgcrypt
libgpg-error
libgssglue
libidn
libidn2
libksba
libmnl
libmpc
libnftnl
libnghttp2
libnl
libpcap
libpipeline
libpsl
libidn2
librpcsecgss
libseccomp
libsecret
libssh2
libtasn1
libtirpc
libtool
libunistring
pcre
glib2
grep
gzip
bridge-utils
ca-certificates
ca-certificates-cacert
coreutils
cracklib
dialog
ding-libs
dnssec-anchors
dosfstools
e2fsprogs
ed
efibootmgr
efivar
elfutils
fakeroot
findutils
flex
gawk
gettext
gnutls
gpgme
groff
hdparm
hwids
ifenslave
iproute2
iputils
iw
jfsutils
kbd
keyutils
#licenses
links
linux-atm
linux-firmware
make
man-pages
mkinitcpio-busybox
mkinitcpio-nfs-utils
nano
nettle
net-tools
nfsidmap
nilfs-utils
npth
nspr
nss
p11-kit
patch
pciutils
pinentry
pkcs11-helper
pkg-config
popt
pptpclient
procinfo-ng
psmisc
pth
reiserfsprogs
run-parts
sdparm
# s-nail
sqlite
sysfsutils
syslinux
tar
texinfo
thin-provisioning-tools
traceroute
usbutils
vi
which
wireless-regdb
wireless_tools
wpa_actiond
xfsprogs
zd1211-firmware
archlinux-keyring
b43-fwcutter
ipw2100-fw
ipw2200-fw
isdn4k-utils
curl
sudo
argon2
### world ###
a52dec a52dec
aalib aalib
acl
adwaita-icon-theme adwaita-icon-theme
alsa-firmware alsa-firmware
alsa-lib alsa-lib
#alsa-utils
apr apr
apr-util apr-util
archlinux-keyring
argon2
aspell aspell
assimp assimp
atk atk
atkmm
at-spi2-atk at-spi2-atk
at-spi2-core at-spi2-core
attr
autoconf
automake
b43-fwcutter
babl babl
# bash
bc bc
binutils
bison
boost boost
bridge-utils
brltty brltty
bzip2
ca-certificates
ca-certificates-cacert
cairo cairo
cairomm
cantarell-fonts cantarell-fonts
cdparanoia cdparanoia
check check
cifs-utils cifs-utils
cln cln
cmake cmake
extra-cmake-modules
convertlit convertlit
coreutils
cpio cpio
cracklib
curl
dash
db
dbus-glib dbus-glib
dbus-python dbus-python
dcadec dcadec
dconf dconf
desktop-file-utils desktop-file-utils
dialog
diffutils
ding-libs
dkms dkms
dnssec-anchors
docbook-dsssl docbook-dsssl
docbook-sgml31 docbook-sgml31
docbook-utils docbook-utils
docbook-xml docbook-xml
docbook-xsl docbook-xsl
dosfstools
dotconf dotconf
double-conversion double-conversion
doxygen doxygen
e2fsprogs
ebook-tools ebook-tools
ed
editorconfig-core-c editorconfig-core-c
efibootmgr
efivar
elfutils
exiv2 exiv2
expat
extra-cmake-modules
faad2 faad2
fakeroot
ffmpeg ffmpeg
ffmpeg2.8 ffmpeg2.8
fftw fftw
file
findutils
flac flac
flex
fontconfig fontconfig
freetype2 freetype2
fribidi fribidi
fuse2 fuse2
fuse3 fuse3
gamin gamin
gawk
gc gc
gcab gcab
gcc
gconf gconf
gcr gcr
gd gd
gdb gdb
gdbm
gdk-pixbuf2 gdk-pixbuf2
gegl02 gegl02
geoip-database
gettext
ghostscript ghostscript
giblib giblib
giflib giflib
glade glade
glib2
glibc
glibmm
glib-networking glib-networking
glu glu
gmp
gnome-common gnome-common
gnutls
gobject-introspection gobject-introspection
gperf gperf
gperftools gperftools
gpgme
gptfdisk gptfdisk
grantlee grantlee
graphite graphite
graphviz graphviz
grep
groff
gsettings-desktop-schemas gsettings-desktop-schemas
gsfonts gsfonts
gsm gsm
@@ -245,41 +132,64 @@ gstreamer
gtk2 gtk2
gtk3 gtk3
gtk-doc gtk-doc
gtkmm3
gtk-sharp-2
gtksourceview3 gtksourceview3
gts gts
guile guile
guile2.0 guile2.0
gzip
harfbuzz harfbuzz
hdparm
hicolor-icon-theme hicolor-icon-theme
hunspell hunspell
hwids
hwloc
hyphen hyphen
iana-etc
icu
ifenslave
ijs ijs
ilmbase ilmbase
imagemagick imagemagick
imlib2 imlib2
iniparser iniparser
intltool intltool
iproute2
iputils
ipw2100-fw
ipw2200-fw
isdn4k-utils
iso-codes iso-codes
itstool itstool
iw
jack jack
jasper jasper
java8-openjdk java8-openjdk
java-common java-common
jbig2dec jbig2dec
jemalloc jemalloc
jfsutils
js js
# json-c json-c
jsoncpp jsoncpp
json-glib json-glib
kbd
keyutils
lame lame
lapack lapack
lcms lcms
lcms2 lcms2
ldb ldb
ldns
less
libaccounts-glib libaccounts-glib
libaccounts-qt libaccounts-qt
libaio
libao libao
libarchive
libass libass
libassuan
libasyncns libasyncns
libatomic_ops libatomic_ops
libavc1394 libavc1394
@@ -289,11 +199,12 @@ libburn
libbytesize libbytesize
libcaca libcaca
libcanberra libcanberra
libcap
libcap-ng libcap-ng
libcddb libcddb
libcdio libcdio
libcdio-paranoia libcdio-paranoia
# libconfig #libconfig
libcroco libcroco
libcue libcue
libdaemon libdaemon
@@ -308,19 +219,28 @@ libdvdcss
libdvdnav libdvdnav
libdvdread libdvdread
libebml libebml
libedit
libepoxy libepoxy
libevdev libevdev
libevent
libexif libexif
libffi
libfontenc libfontenc
libgcrypt
libgdiplus
libgee libgee
libgit2 libgit2
libglade libglade
libglvnd libglvnd
libgpg-error
libgphoto2 libgphoto2
libgssglue
libgusb libgusb
libical libical
libice libice
libid3tag libid3tag
libidn
libidn2
libiec61883 libiec61883
libieee1284 libieee1284
libimobiledevice libimobiledevice
@@ -328,46 +248,63 @@ libiscsi
libisoburn libisoburn
libisofs libisofs
libjpeg-turbo libjpeg-turbo
libksba
liblouis liblouis
liblqr liblqr
libmad libmad
libmatroska libmatroska
libmng libmng
libmnl
libmodplug libmodplug
libmpc
libmpeg2 libmpeg2
libmspack libmspack
libmtp libmtp
libndp libndp
libnftnl
libnghttp2
libnl
libnotify libnotify
# libogg libogg
libomxil-bellagio libomxil-bellagio
libpaper libpaper
libpcap
libpciaccess libpciaccess
libpipeline
libplist libplist
libpng libpng
libproxy libproxy
libpsl
libpwquality libpwquality
libqalculate libqalculate
libqmi libqmi
libraqm libraqm
# libraw1394 libraw1394
librpcsecgss
librsvg librsvg
libsamplerate libsamplerate
libseccomp
libsecret
libshout libshout
libsigc++ libsigc++
libsigsegv libsigsegv
libsm libsm
# libsndfile libsndfile
libsoup libsoup
libsoxr libsoxr
libspiro libspiro
libsrtp libsrtp
libssh libssh
libssh2
libtar libtar
# libthai libtasn1
libthai
libtheora libtheora
libtiff libtiff
libtirpc
libtommath libtommath
libtool
libunistring
libunwind libunwind
libupnp libupnp
libusb-compat libusb-compat
@@ -384,11 +321,11 @@ libwmf
libx11 libx11
libxau libxau
libxaw libxaw
# libxcb libxcb
libxcomposite libxcomposite
libxcursor libxcursor
libxdamage libxdamage
# libxdmcp libxdmcp
libxext libxext
libxfixes libxfixes
libxfont2 libxfont2
@@ -413,27 +350,53 @@ libxvmc
libxxf86vm libxxf86vm
libyaml libyaml
libzip libzip
licenses
links
linux
linux-api-headers
linux-atm
linux-firmware
linux-lts
lirc lirc
llvm llvm
lmdb lmdb
lua lua
xorgproto lz4
mesa lzo
# meson m4
mailcap mailcap
make
man-pages
mercurial
mesa
meson
mkinitcpio-busybox
mkinitcpio-nfs-utils
mobile-broadband-provider-info mobile-broadband-provider-info
mono
mpfr
mtdev mtdev
muparser muparser
musepack musepack
namcap namcap
nano
nasm nasm
ncurses
nettle
net-tools
network-manager-applet network-manager-applet
nfsidmap
nilfs-utils
noto-fonts noto-fonts
npth
nspr
nss
nss-mdns nss-mdns
ntfs-3g ntfs-3g
# nvidia numactl
nvidia
# nvidia-settings # nvidia-settings
# nvidia-utils nvidia-utils
ocl-icd ocl-icd
openal openal
opencore-amr opencore-amr
@@ -441,24 +404,41 @@ openexr
openjade openjade
openjpeg openjpeg
openjpeg2 openjpeg2
openmpi
opensp opensp
openssl
openssl-1.0
opus opus
orc orc
orca orca
p11-kit
pango pango
pangomm
parted parted
patch
pciutils
pcre
pcre2 pcre2
perl
perl-error perl-error
perl-file-which perl-file-which
perl-xml-parser perl-xml-parser
perl-yaml perl-yaml
phonon phonon
phonon-gstreamer phonon-gstreamer
pinentry
pixman pixman
pkcs11-helper
pkg-config
polkit-qt polkit-qt
poppler poppler
popt
potrace potrace
pptpclient
procinfo-ng
protobuf protobuf
psmisc
pth
pyalpm pyalpm
pygobject pygobject
pygtk pygtk
@@ -516,6 +496,7 @@ python-pyelftools
python-pyparsing python-pyparsing
# python-rdflib # python-rdflib
# python-requests # python-requests
python-requests
# python-retrying # python-retrying
# python-service-identity # python-service-identity
python-setuptools python-setuptools
@@ -523,12 +504,14 @@ python-six
# python-soappy # python-soappy
# python-telepathy # python-telepathy
# python-urllib3 # python-urllib3
python-urllib3
python-urwid python-urwid
python-virtualenv python-virtualenv
# python-wpactrl # python-wpactrl
python-wrapt python-wrapt
# python-wstools # python-wstools
pyxdg pyxdg
qt4
qt5-3d qt5-3d
qt5-canvas3d qt5-canvas3d
qt5-charts qt5-charts
@@ -564,68 +547,95 @@ qt5-websockets
qt5-webview qt5-webview
qt5-x11extras qt5-x11extras
qt5-xmlpatterns qt5-xmlpatterns
re2
readline
reiserfsprogs
rest
ruby ruby
run-parts
schroedinger schroedinger
sdl sdl
sdl2 sdl2
sdl_image sdl_image
sdl_sound sdl_sound
sdparm
sed
serf serf
sgml-common sgml-common
shared-mime-info shared-mime-info
slang slang
s-nail
snappy snappy
snowball snowball
socat socat
sound-theme-freedesktop
source-highlight source-highlight
speech-dispatcher speech-dispatcher
speex speex
speexdsp speexdsp
sqlite
startup-notification startup-notification
sudo
sysfsutils
syslinux
t1lib t1lib
taglib taglib
talloc talloc
tar
tcl tcl
tdb tdb
tevent tevent
texinfo
texlive-bin texlive-bin
texlive-core texlive-core
texlive-formatsextra texlive-formatsextra
texlive-latexextra texlive-latexextra
texlive-pictures texlive-pictures
texlive-science texlive-science
thin-provisioning-tools
traceroute
tslib tslib
ttf-bitstream-vera ttf-bitstream-vera
ttf-dejavu ttf-dejavu
ttf-hack ttf-hack
ttf-indic-otf ttf-indic-otf
tzdata
unixodbc unixodbc
unzip unzip
#usbmuxd #usbmuxd
usbutils
v4l-utils v4l-utils
vala vala
valgrind valgrind
vi
vid.stab vid.stab
volume_key volume_key
vte vte
vte3 vte3
vulkan-docs
vulkan-loader-layers
vulkan-tools
wavpack wavpack
wayland wayland
wayland-protocols wayland-protocols
webrtc-audio-processing webrtc-audio-processing
wget wget
which
whois whois
wireless-regdb
wireless_tools
wpa_actiond
wxgtk wxgtk
x265 x265
xapian-core xapian-core
xbitmaps xbitmaps
# xcb-proto xcb-proto
# xcb-util xcb-util
xcb-util-cursor xcb-util-cursor
# xcb-util-image xcb-util-image
# xcb-util-keysyms xcb-util-keysyms
# xcb-util-renderutil xcb-util-renderutil
# xcb-util-wm xcb-util-wm
xdg-utils xdg-utils
xf86-input-libinput xf86-input-libinput
xf86-video-dummy xf86-video-dummy
@@ -634,6 +644,7 @@ xf86-video-sisusb
xf86-video-vesa xf86-video-vesa
xf86-video-vmware xf86-video-vmware
xf86-video-voodoo xf86-video-voodoo
xfsprogs
xkeyboard-config xkeyboard-config
xmlto xmlto
xorg-bdftopcf xorg-bdftopcf
@@ -645,6 +656,7 @@ xorg-font-utils
xorg-luit xorg-luit
xorg-mkfontdir xorg-mkfontdir
xorg-mkfontscale xorg-mkfontscale
xorgproto
xorg-setxkbmap xorg-setxkbmap
xorg-twm xorg-twm
xorg-util-macros xorg-util-macros
@@ -660,15 +672,16 @@ xorg-xset
xorg-xsetroot xorg-xsetroot
xterm xterm
xvidcore xvidcore
xz
yajl yajl
yelp-tools yelp-tools
yelp-xsl yelp-xsl
zd1211-firmware
zip zip
zita-alsa-pcmi zita-alsa-pcmi
zita-resampler zita-resampler
zlib
zsh zsh
zstd
zvbi zvbi
zziplib zziplib
re2
geoip-database
mercurial

View File

@@ -1,154 +0,0 @@
tzdata
iana-etc
linux-api-headers
binutils
glibc
gcc
attr
acl
ncurses
readline
bash
sed
diffutils
expat
db
lz4
lzo
bzip2
gmp
mpfr
m4
gdbm
xz
zlib
file
icu
perl
openssl
openssl-1.0
autoconf
automake
dash
bison
ldns
less
libaio
libarchive
libassuan
libcap
libedit
libevent
libffi
libgcrypt
libgpg-error
libgssglue
libidn
libidn2
libksba
libmnl
libmpc
libnftnl
libnghttp2
libnl
libpcap
libpipeline
libpsl
libidn2
librpcsecgss
libseccomp
libsecret
libssh2
libtasn1
libtirpc
libtool
libunistring
pcre
glib2
grep
gzip
bridge-utils
ca-certificates
ca-certificates-cacert
coreutils
cracklib
dialog
ding-libs
dnssec-anchors
dosfstools
e2fsprogs
ed
efibootmgr
efivar
elfutils
fakeroot
findutils
flex
gawk
gettext
gnutls
gpgme
groff
hdparm
hwids
ifenslave
iproute2
iputils
iw
jfsutils
kbd
keyutils
#licenses
links
linux-atm
linux-firmware
make
man-pages
mkinitcpio-busybox
mkinitcpio-nfs-utils
nano
nettle
net-tools
nfsidmap
nilfs-utils
npth
nspr
nss
p11-kit
patch
pciutils
pinentry
pkcs11-helper
pkg-config
popt
pptpclient
procinfo-ng
psmisc
pth
reiserfsprogs
run-parts
sdparm
# s-nail
sqlite
sysfsutils
syslinux
tar
texinfo
thin-provisioning-tools
traceroute
usbutils
vi
which
wireless-regdb
wireless_tools
wpa_actiond
xfsprogs
zd1211-firmware
archlinux-keyring
b43-fwcutter
ipw2100-fw
ipw2200-fw
isdn4k-utils
curl
sudo
argon2

View File

@@ -1,528 +0,0 @@
a52dec
aalib
adwaita-icon-theme
alsa-firmware
alsa-lib
#alsa-utils
apr
apr-util
aspell
assimp
atk
at-spi2-atk
at-spi2-core
babl
bc
boost
brltty
cairo
cantarell-fonts
cdparanoia
check
cifs-utils
cln
cmake
extra-cmake-modules
compositeproto
convertlit
cpio
damageproto
dbus-glib
dbus-python
dcadec
dconf
desktop-file-utils
dkms
docbook-dsssl
docbook-sgml31
docbook-utils
docbook-xml
docbook-xsl
dotconf
double-conversion
doxygen
ebook-tools
editorconfig-core-c
exiv2
faad2
ffmpeg
ffmpeg2.8
fftw
fixesproto
flac
fontconfig
fontsproto
freetype2
fribidi
fuse2
fuse3
gamin
gc
gcab
gconf
gcr
gd
gdb
gdk-pixbuf2
gegl02
ghostscript
giblib
giflib
glade
glib-networking
glu
gnome-common
gobject-introspection
gperf
gperftools
gptfdisk
grantlee
graphite
graphviz
gsettings-desktop-schemas
gsfonts
gsm
gst-plugins-base
gst-plugins-good
gstreamer
gtk2
gtk3
gtk-doc
gtksourceview3
gts
guile
guile2.0
harfbuzz
hicolor-icon-theme
hunspell
hyphen
ijs
ilmbase
imagemagick
imlib2
iniparser
inputproto
intltool
iso-codes
itstool
jack
jasper
java8-openjdk
java-common
jbig2dec
jemalloc
js
#json-c
jsoncpp
json-glib
kbproto
lame
lapack
lcms
lcms2
ldb
libaccounts-glib
libaccounts-qt
libao
libass
libasyncns
libatomic_ops
libavc1394
libbluray
libbsd
libburn
libbytesize
libcaca
libcanberra
libcap-ng
libcddb
libcdio
libcdio-paranoia
# libconfig
libcroco
libcue
libdaemon
libdatrie
libdbusmenu-qt
libdca
libdmtx
libdrm
libdv
libdvbpsi
libdvdcss
libdvdnav
libdvdread
libebml
libepoxy
libevdev
libexif
libfontenc
libgee
libgit2
libglade
libglvnd
libgphoto2
libgusb
libical
libice
libid3tag
libiec61883
libieee1284
libimobiledevice
libiscsi
libisoburn
libisofs
libjpeg-turbo
liblouis
liblqr
libmad
libmatroska
libmng
libmodplug
libmpeg2
libmspack
libmtp
libndp
libnotify
# libogg
libomxil-bellagio
libpaper
libpciaccess
libplist
libpng
libproxy
libpwquality
libqalculate
libqmi
libraqm
# libraw1394
librsvg
libsamplerate
libshout
libsigc++
libsigsegv
libsm
# libsndfile
libsoup
libsoxr
libspiro
libsrtp
libssh
libtar
# libthai
libtheora
libtiff
libtommath
libtxc_dxtn
libunwind
libupnp
libusb-compat
libusbmuxd
libutempter
libuv
libva
libvdpau
libvisual
libvorbis
libvpx
libwebp
libwmf
libx11
libxau
libxaw
# libxcb
libxcomposite
libxcursor
libxdamage
# libxdmcp
libxext
libxfixes
libxfont2
libxft
libxi
libxinerama
libxkbcommon
libxkbfile
libxml2
libxmu
libxpm
libxrandr
libxrender
libxres
libxshmfence
libxslt
libxss
libxt
libxtst
libxv
libxvmc
libxxf86vm
libyaml
libzip
lirc
llvm
lmdb
lua
mesa
# meson
mailcap
mobile-broadband-provider-info
mtdev
muparser
musepack
namcap
nasm
network-manager-applet
noto-fonts
nss-mdns
ntfs-3g
# nvidia
# nvidia-settings
# nvidia-utils
ocl-icd
openal
opencore-amr
openexr
openjade
openjpeg
openjpeg2
opensp
opus
orc
orca
pango
parted
pcre2
perl-error
perl-file-which
perl-xml-parser
perl-yaml
phonon
phonon-gstreamer
pixman
polkit-qt
poppler
potrace
protobuf
pyalpm
pygobject
pygtk
# pylint
pyqt5
python
python2
# python2-backports
# python2-backports.functools_lru_cache
# python2-configparser
# python2-ipaddress
python-appdirs
python-asn1crypto
# python-astroid
python-attrs
# python-automat
python-beaker
python-cairo
# python-cffi
python-chardet
# python-constantly
# python-cryptography
python-cssselect
python-defusedxml
# python-editdistance
# python-egenix-mx-base
python-evdev
# python-feedparser
# python-fpconst
# python-gdata
# python-geoip
python-hyperlink
python-idna
# python-incremental
# python-isort
# python-iwscan
# python-lazy-object-proxy
# python-lxml
python-mako
python-markupsafe
# python-mccabe
# python-mpd
# python-nose
python-notify
python-numpy
python-packaging
python-pip
python-ply
python-pyasn1
# python-pyasn1-modules
# python-pycparser
# python-pycurl
python-pyelftools
# python-pygame
python-pyparsing
# python-rdflib
# python-requests
# python-retrying
# python-service-identity
python-setuptools
python-six
# python-soappy
# python-telepathy
# python-urllib3
python-urwid
python-virtualenv
# python-wpactrl
python-wrapt
# python-wstools
pyxdg
qt5-3d
qt5-canvas3d
qt5-charts
qt5-connectivity
qt5-datavis3d
qt5-declarative
qt5-doc
qt5-examples
qt5-gamepad
qt5-graphicaleffects
qt5-imageformats
qt5-location
qt5-multimedia
qt5-networkauth
qt5-quickcontrols
qt5-quickcontrols2
qt5-remoteobjects
qt5-script
qt5-scxml
qt5-sensors
qt5-serialbus
qt5-serialport
qt5-speech
qt5-svg
qt5-tools
qt5-translations
qt5-virtualkeyboard
qt5-wayland
qt5-webchannel
qt5-webengine
qt5-webkit
qt5-websockets
qt5-webview
qt5-x11extras
qt5-xmlpatterns
randrproto
recordproto
renderproto
re2
ruby
schroedinger
scrnsaverproto
sdl
sdl2
sdl_image
sdl_sound
serf
sgml-common
shared-mime-info
slang
snappy
snowball
socat
source-highlight
speech-dispatcher
speex
speexdsp
startup-notification
t1lib
taglib
talloc
tcl
tdb
tevent
texlive-bin
texlive-core
texlive-formatsextra
texlive-latexextra
texlive-pictures
texlive-science
tslib
ttf-bitstream-vera
ttf-dejavu
ttf-hack
ttf-indic-otf
unixodbc
unzip
#usbmuxd
v4l-utils
vala
valgrind
videoproto
vid.stab
volume_key
vte
vte3
wavpack
wayland
wayland-protocols
webrtc-audio-processing
wget
whois
wxgtk
x265
xapian-core
xbitmaps
# xcb-proto
# xcb-util
xcb-util-cursor
# xcb-util-image
# xcb-util-keysyms
# xcb-util-renderutil
# xcb-util-wm
xdg-utils
xextproto
xf86-input-libinput
xf86-video-dummy
xf86-video-fbdev
xf86-video-sisusb
xf86-video-vesa
xf86-video-vmware
xf86-video-voodoo
xf86vidmodeproto
xineramaproto
xkeyboard-config
xmlto
xorg-bdftopcf
xorg-fonts-alias
xorg-fonts-encodings
xorg-fonts-misc
xorg-font-util
xorg-font-utils
xorg-luit
xorg-mkfontdir
xorg-mkfontscale
xorg-setxkbmap
xorg-twm
xorg-util-macros
xorg-xauth
xorg-xinit
xorg-xkbcomp
xorg-xmessage
xorg-xmodmap
xorg-xprop
xorg-xrandr
xorg-xrdb
xorg-xset
xorg-xsetroot
# xproto
xterm
xvidcore
yajl
yelp-tools
yelp-xsl
zip
zita-alsa-pcmi
zita-resampler
zsh
zvbi
zziplib
geoip-database
mercurial

View File

@@ -1,111 +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 -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# 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 cromnix`.
#
# 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.
[system-testing]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world-testing]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-testing]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
[lib32-testing]
Include = /etc/pacman.d/mirrorlist
[lib32]
Include = /etc/pacman.d/mirrorlist
#
# ARCHLINUX
#
[testing]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[multilib-testing]
Include = /etc/pacman.d/mirrorlist-arch
[multilib]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -1,90 +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 -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# 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 cromnix`.
#
# 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.
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
[lib32]
Include = /etc/pacman.d/mirrorlist
#
# ARCHLINUX
#
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[multilib]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -81,9 +81,9 @@ msg_table_header(){
printf "${GREEN} ${mesg} ${ALL_OFF}\n" "$@" >&2 printf "${GREEN} ${mesg} ${ALL_OFF}\n" "$@" >&2
} }
msg_row(){ msg_row_downgrade(){
local mesg=$1; shift local mesg=$1; shift
printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2
} }
msg_row_update(){ msg_row_update(){

View File

@@ -1,73 +0,0 @@
#!/bin/bash
#
# 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.
import ${LIBDIR}/util-pkg.sh
del_from_repo(){
local repo="$1" destarch="$2" pkg="$3" ver result
local repo_path=${repos_root}/$repo/os/$destarch
source $pkg/PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if ! result=$(find_cached_package "$name" "$ver" "$CARCH");then
cd $repo_path
repo-remove -R $repo.db.tar.xz $name
fi
done
}
move_to_repo(){
local repo_src="$1" repo_dest="$2" repo_arch="$3"
local repo_path=${repos_root}/$repo_src/os/$repo_arch
local src=$PWD
local filelist=${workspace_dir}/$repo_src.files.txt
local pkglist=${workspace_dir}/$repo_src.pkgs.txt
[[ -n ${PKGDEST} ]] && src=${PKGDEST}
cd $repo_path
msg "Writing repo lists [%s]" "$repo_src"
ls *.pkg.tar.xz{,.sig} > $filelist
ls *.pkg.tar.xz > $pkglist
rm -v *
repo-add $repo_src.db.tar.xz
repo_path=${repos_root}/$repo_dest/os/$repo_arch
local move=$(cat $filelist) pkgs=$(cat $pkglist)
msg "Reading repo lists [%s]" "$repo_dest"
for f in ${move[@]};do
ln -sfv $src/$f $repo_path/
done
cd $repo_path
repo-add -R $repo_dest.db.tar.xz ${pkgs[@]}
}
add_to_repo(){
local repo="$1" destarch="$2" pkg="$3" ver pkgfile=
local repo_path=${repos_root}/$repo/os/$destarch
source $pkg/PKGBUILD
for name in ${pkgname[@]};do
info "finddeps: %s" "$name"
finddeps $name
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH"); then
info "find-libdeps: %s" "$pkgfile"
find-libdeps "$pkgfile"
info "find-libprovides: %s" "$pkgfile"
find-libprovides "$pkgfile"
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
signfile ${pkgfile}
ln -sf ${pkgfile}{,.sig} $repo_path/
cd $repo_path
repo-add -R $repo.db.tar.xz ${pkgfile##*/}
fi
done
}

View File

@@ -1,210 +0,0 @@
#!/bin/bash
#
# 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.
get_local_head(){
echo $(git log --pretty=%H ...refs/heads/$1^ | head -n 1)
}
get_remote_head(){
echo $(git ls-remote origin -h refs/heads/$1 | cut -f1)
}
is_dirty() {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] || return 1
return 0
}
sync_tree(){
local branch="master" repo="$1"
git checkout $branch
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
local timer=$(get_timer)
msg "Checking [%s] ..." "$repo"
msg2 "local: %s" "${local_head}"
msg2 "remote: %s" "${remote_head}"
if [[ "${local_head}" == "${remote_head}" ]]; then
info "nothing to do"
else
info "needs sync"
git pull origin $branch
fi
msg "Done [%s]" "$repo"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
clone_tree(){
local timer=$(get_timer) repo="$1" host_tree="$2"
msg "Preparing [%s] ..." "$repo"
info "clone"
git clone $host_tree.git
msg "Done [%s]" "$repo"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
sync_tree_arch(){
local repo="$1"
cd ${tree_dir_arch}
for repo in ${repo_tree_arch[@]};do
if [[ -d ${repo} ]];then
cd ${repo}
sync_tree "${repo}"
cd ..
else
clone_tree "${repo}" "${host_tree_arch}/${repo}"
fi
done
cd ..
}
sync_tree_artix(){
local repo="$1"
cd ${tree_dir_artix}
for repo in ${repo_tree_artix[@]};do
if [[ -d ${repo} ]];then
cd ${repo}
sync_tree "${repo}"
cd ..
else
clone_tree "${repo}" "${host_tree_artix}/${repo}"
fi
done
cd ..
}
read_import_list(){
local repo="$1"
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
import_list=$(sed "$_com_rm" "${list_dir_import}/$repo.list" | sed "$_space" | sed "$_clean")
}
is_untracked(){
[[ $(git ls-files --others --exclude-standard) != "" ]] || return 1
return 0
}
patch_pkg(){
local pkg="$1"
case $pkg in
'glibc')
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/PKGBUILD
;;
# 'bash')
# sed -e 's|system.bash_logout)|system.bash_logout\n artix.bashrc)|' \
# -e 's|etc/bash.|etc/bash/|g' \
# -e 's|install -dm755 "$pkgdir"/etc/skel/|install -dm755 "$pkgdir"/etc/{skel,bash/bashrc.d}/|' \
# -e 's|/etc/skel/.bash_logout|/etc/skel/.bash_logout\n install -m644 artix.bashrc "$pkgdir"/etc/bash/bashrc.d/artix.bashrc|' \
# -i $pkg/PKGBUILD
#
# cd $pkg
# patch -p1 -i $DATADIR/patches/artix-bash.patch
# updpkgsums
# cd ..
# ;;
'tp_smapi'|'acpi_call'|'r8168')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/PKGBUILD
;;
esac
}
get_import_path(){
local arch_dir arch_repo import_path
local repo="$1" pkg="$2" src=
case $repo in
system|world)
arch_dir=packages
[[ "$repo" == 'system' ]] && arch_repo=core
[[ "$repo" == 'world' ]] && arch_repo=extra
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/$arch_repo-x86_64
[[ -d $import_path/testing-x86_64 ]] && src=$import_path/testing-x86_64
[[ -d $import_path/$arch_repo-any ]] && src=$import_path/$arch_repo-any
[[ -d $import_path/testing-any ]] && src=$import_path/testing-any
;;
galaxy)
arch_repo=community
arch_dir=$arch_repo
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos/$arch_repo
src=$import_path-x86_64
[[ -d $import_path-testing-x86_64 ]] && src=$import_path-testing-x86_64
[[ -d $import_path-any ]] && src=$import_path-any
[[ -d $import_path-testing-any ]] && src=$import_path-testing-any
;;
lib32)
arch_repo=multilib
arch_dir=community
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/$arch_repo-x86_64
[[ -d $import_path/$arch_repo-testing-x86_64 ]] && src=$import_path/$arch_repo-testing-x86_64
;;
esac
echo $src
}
show_version_table(){
local repo="$1"
declare -A UPDATES
msg_table_header "%-30s %-30s %-30s %-30s" "Repository" "Package" "Artix version" "Arch version"
for pkg in ${tree_dir_artix}/$repo/*; do
if [[ -f $pkg/PKGBUILD ]];then
source $pkg/PKGBUILD 2>/dev/null
package=${pkg##*/}
artixver=$(get_full_version $package)
local src=$(get_import_path "$repo" "$package")
if [[ -f $src/PKGBUILD ]];then
source $src/PKGBUILD 2>/dev/null
archver=$(get_full_version $package)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
UPDATES[$package]="$pkg/PKGBUILD $src/PKGBUILD"
msg_row_update "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
fi
fi
unset pkgver epoch pkgrel artixver archver package
done
find "${patches_dir}/$repo/" -name *.patch -delete
for upd in "${!UPDATES[@]}"; do
msg "Writing %s update patch ..." "$upd"
diff -u ${UPDATES[$upd]} > ${patches_dir}/$repo/"$upd"-archlinux.patch
done
}
import_from_arch(){
local timer=$(get_timer) branch='testing' repo="$1" push="$2"
read_import_list "$repo"
if [[ -n ${import_list[@]} ]];then
cd ${tree_dir_artix}/$repo
git checkout $branch &> /dev/null
$(is_dirty) && die "[%s] has uncommited changes!" "${repo}"
git pull origin "$branch"
for pkg in ${import_list[@]};do
local src=$(get_import_path "$repo" "$pkg") dest=${tree_dir_artix}/$repo/$pkg
source $src/PKGBUILD 2>/dev/null
local ver=$(get_full_version $pkg)
msg "Package: %s-%s" "$pkg" "$ver"
msg2 "src: %s" "$src"
msg2 "dest: %s" "$dest"
rsync "${rsync_args[@]}" $src/ $dest/
patch_pkg "$pkg"
# if ${push};then
# local timeout=10
# git add "$pkg"
# git commit -m "$pkg-$ver"
# sleep $timeout
# git push origin "$branch"
# fi
unset pkgver epoch pkgrel ver
done
fi
show_elapsed_time "${FUNCNAME}" "${timer}"
}

View File

@@ -67,16 +67,10 @@ init_artools_pkg(){
[[ -z ${tree_dir_artix} ]] && tree_dir_artix=${workspace_dir}/artix [[ -z ${tree_dir_artix} ]] && tree_dir_artix=${workspace_dir}/artix
# to be removed
[[ -z ${repo_tree_artix[@]} ]] && repo_tree_artix=('system' 'world' 'galaxy' 'lib32')
[[ -z ${host_tree_artix} ]] && host_tree_artix='https://github.com/artix-linux' [[ -z ${host_tree_artix} ]] && host_tree_artix='https://github.com/artix-linux'
[[ -z ${tree_dir_arch} ]] && tree_dir_arch=${workspace_dir}/archlinux [[ -z ${tree_dir_arch} ]] && tree_dir_arch=${workspace_dir}/archlinux
# to be removed
[[ -z ${repo_tree_arch} ]] && repo_tree_arch=('packages' 'community')
[[ -z ${host_tree_arch} ]] && host_tree_arch='git://projects.archlinux.org/svntogit' [[ -z ${host_tree_arch} ]] && host_tree_arch='git://projects.archlinux.org/svntogit'
list_dir_import="${SYSCONFDIR}/import.list.d" list_dir_import="${SYSCONFDIR}/import.list.d"