Compare commits

..

54 Commits
0.6.4 ... 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
artoo
371f93ea7f Merge pull request #41 from artix-linux/devel
Devel
2018-02-08 23:21:22 +01:00
udeved
3fb842f36a buildtree2: rm leftover help msg 2018-02-08 23:20:36 +01:00
udeved
78fbb97bd9 buildtree2: fix comparing 2018-02-08 23:07:45 +01:00
udeved
23d75a7c12 buildtree2, buildtree: disable bash patching 2018-02-08 22:23:19 +01:00
udeved
8626be9c0b update import lists 2018-02-08 22:22:25 +01:00
udeved
557aac62e4 buildpkg2: reduce chroots used 2018-02-08 22:02:08 +01:00
udeved
f261bb9e5b update example jenkinsfile 2018-02-08 22:01:42 +01:00
udeved
3281655692 update pacman.conf files 2018-02-08 22:01:20 +01:00
udeved
dfd3961d9c mkchrootpkg, chroot-run: arch patches 2018-02-08 21:22:08 +01:00
udeved
0939e6d5a2 buildtree2: fixes 2018-02-08 10:57:33 +01:00
udeved
a9652ed8cf buildtree2: rm trunk only 2018-02-07 21:19:25 +01:00
udeved
c6d43721cb buildtree: use new patch 2018-02-07 21:15:34 +01:00
udeved
b4900e760d artix bash patch: use no path 2018-02-07 21:15:06 +01:00
udeved
346e05d943 update packages import list 2018-02-07 20:54:52 +01:00
udeved
c786e6900f buildpkg2: fix syntax 2018-02-07 20:40:53 +01:00
udeved
d42bfb6893 deploypkg2: rm move() 2018-02-07 20:15:19 +01:00
udeved
40be81f3f3 update jenkinsfile examples 2018-02-07 20:11:26 +01:00
udeved
db8ba96909 buildtree2: sync all repos in one go 2018-01-31 01:36:48 +01:00
udeved
5750465180 buildtree2: reimplement comparing 2018-01-31 00:51:33 +01:00
udeved
2d042b1545 update example pipelines & bash patch 2018-01-30 12:04:41 +01:00
udeved
a66c12ebc1 buildtree2: fixes 2018-01-30 12:03:40 +01:00
udeved
28c7ea361c buildtree2, buildpkg2: rm pkg move; use pacman-default.conf in stable repos 2018-01-29 18:17:44 +01:00
udeved
40e3623b3a basestrap, mkchroot: arch patches 2018-01-29 18:16:03 +01:00
udeved
2d998df432 buildtree2: small var renaming 2018-01-27 12:17:00 +01:00
udeved
d10dbed4b2 mkchrootpkg: backport arch patches 2018-01-27 04:52:12 +01:00
udeved
f74dd7654a buildtree2: default to rebase pulls 2018-01-27 04:51:36 +01:00
udeved
313db49bba deploypkg2 & buildtree2 fixes 2018-01-27 03:35:31 +01:00
udeved
0235f2f9cd update example jenkinsfile 2018-01-27 03:34:46 +01:00
udeved
e08c5a9659 util:: make sure that makepkg.conf is always parsed as text 2018-01-25 17:20:09 +01:00
udeved
c38319b40c fix example pipelines 2018-01-25 13:40:59 +01:00
udeved
c7d07f4408 update example pipelines 2018-01-25 11:51:04 +01:00
udeved
cf5239b814 buildtree2: fixes 2018-01-25 11:50:36 +01:00
udeved
d77b860628 buildtree2: add move_pkg() to standardize commit messages for repo move 2018-01-24 22:32:44 +01:00
udeved
4a53b6dfd1 add old import lists 2018-01-24 21:35:05 +01:00
udeved
88a3135dc2 deploypkg2: fix moving 2018-01-24 21:13:37 +01:00
udeved
b72dcdae89 update pipeline files 2018-01-24 21:13:09 +01:00
udeved
9e7b0aba10 add pipelines 2018-01-23 09:36:18 +01:00
udeved
9d32b0ca9e deploypkg2: fix 2018-01-23 09:35:57 +01:00
artoo
e496c4d3dd Merge pull request #40 from artix-linux/gitsubtree
Gitsubtree
2018-01-23 00:27:28 +01:00
udeved
146021408d util-pkg-tree: use new unified patch 2018-01-23 00:26:48 +01:00
udeved
c40ec0eca2 make pkg tools work with arch structure 2018-01-23 00:18:14 +01:00
udeved
fbba7656f9 util-pkg-tree: host tree fixes 2018-01-22 12:44:24 +01:00
udeved
a2c90b7613 buildtree2: add options to handle subtrees 2018-01-21 15:33:40 +01:00
udeved
925f5e197a upd Makefile 2018-01-17 20:24:08 +01:00
udeved
7a2170ea14 buildpkg2, buildtree2 fixes 2018-01-17 20:23:56 +01:00
udeved
f81910a891 data: readd old pac conf 2018-01-17 20:23:25 +01:00
udeved
b731228828 wip buildpkg,buildtree,deploypkg 2018-01-16 22:19:25 +01:00
udeved
b82294fcb9 install old scripts 2018-01-16 22:18:40 +01:00
udeved
2b4b3107bf add separate scripts to keeep old scripts working, first test 2018-01-15 01:15:41 +01:00
udeved
a906875af7 Merge branch 'devel' of github.com:artix-linux/artools into gitsubtree 2018-01-15 00:36:25 +01:00
udeved
4b4e07e743 buildiso: rename enable_live array 2018-01-15 00:34:26 +01:00
udeved
2127988036 builldiso: rm openrc specific services array; use services array 2018-01-15 00:22:48 +01:00
udeved
710a8dc57f first changes to adopt new git subtree 2018-01-15 00:15:56 +01:00
38 changed files with 1943 additions and 786 deletions

View File

@@ -1,4 +1,4 @@
Version=0.6 Version=0.7
PREFIX = /usr/local PREFIX = /usr/local
SYSCONFDIR = /etc SYSCONFDIR = /etc
@@ -31,12 +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/commitpkg
LIBS_PKG = \ LIBS_PKG = \
$(wildcard lib/util-pkg*.sh) $(wildcard lib/util-pkg*.sh)
@@ -47,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
@@ -120,10 +132,10 @@ 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
@@ -153,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
@@ -179,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
@@ -193,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

@@ -32,7 +32,6 @@ usage() {
echo "usage: ${0##*/} [options] root [packages...]" echo "usage: ${0##*/} [options] root [packages...]"
echo " -C <config> Use an alternate config file for pacman" echo " -C <config> Use an alternate config file for pacman"
echo " -c Use the package cache on the host, rather than the target" echo " -c Use the package cache on the host, rather than the target"
echo " -d Allow installation to a non-mountpoint directory"
echo " -G Avoid copying the host's pacman keyring to the target" echo " -G Avoid copying the host's pacman keyring to the target"
echo " -i Avoid auto-confirmation of package selections" echo " -i Avoid auto-confirmation of package selections"
echo " -M Avoid copying the host's mirrorlist to the target" echo " -M Avoid copying the host's mirrorlist to the target"
@@ -47,12 +46,11 @@ usage() {
orig_argv=("$0" "$@") orig_argv=("$0" "$@")
opts=':C:cdGiM' opts=':C:cGiM'
while getopts ${opts} arg; do while getopts ${opts} arg; do
case "${arg}" in case "${arg}" in
C) pacman_conf=$OPTARG ;; C) pacman_conf=$OPTARG ;;
d) directory=true ;;
c) hostcache=true ;; c) hostcache=true ;;
i) interactive=true ;; i) interactive=true ;;
G) copykeyring=false ;; G) copykeyring=false ;;
@@ -77,10 +75,6 @@ ${interactive} || pacman_args+=(--noconfirm)
[[ -d $newroot ]] || die "%s is not a directory" "$newroot" [[ -d $newroot ]] || die "%s is not a directory" "$newroot"
if ! mountpoint -q "$newroot" && ! ${directory}; then
die '%s is not a mountpoint!' "$newroot"
fi
# create obligatory directories # create obligatory directories
create_min_fs "$newroot" create_min_fs "$newroot"

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"
@@ -60,9 +60,8 @@ show_profile(){
msg2 "password: %s" "${password}" msg2 "password: %s" "${password}"
msg2 "addgroups: %s" "${addgroups}" msg2 "addgroups: %s" "${addgroups}"
msg2 "enable_live: %s" "${enable_live[*]}" msg2 "services_live: %s" "${services_live[*]}"
msg2 "openrc_boot: %s" "${openrc_boot[*]}" msg2 "services: %s" "${services[*]}"
msg2 "openrc_default: %s" "${openrc_default[*]}"
fi fi
} }

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,7 +35,6 @@ 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}"
@@ -46,7 +42,7 @@ display_settings(){
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

@@ -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

@@ -87,7 +87,7 @@ copy_hostconf () {
cp -T "$file" "$working_dir$file" cp -T "$file" "$working_dir$file"
done done
sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${cache_dirs[@]})|g" -i "$1/etc/pacman.conf" sed -r "s|^#?\\s*CacheDir.+|CacheDir = ${cache_dirs[*]}|g" -i "$1/etc/pacman.conf"
} }
chroot_extra_mount() { chroot_extra_mount() {

147
bin/commitpkg.in Normal file
View File

@@ -0,0 +1,147 @@
#!/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
commit_pkg(){
cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD
local ver=$(get_full_version ${package})
if ${remove};then
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,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

@@ -71,7 +71,7 @@ else
cache_dirs=(${cache_dir}) cache_dirs=(${cache_dir})
fi fi
basestrap_args=(-Gcd ${pacman_conf:+-C "$pacman_conf"}) basestrap_args=(-Gc ${pacman_conf:+-C "$pacman_conf"})
[[ -n ${mirror} ]] && basestrap_args+=(-M) [[ -n ${mirror} ]] && basestrap_args+=(-M)
umask 0022 umask 0022

View File

@@ -146,7 +146,7 @@ prepare_chroot() {
local keepbuilddir=$3 local keepbuilddir=$3
local run_namcap=$4 local run_namcap=$4
$keepbuilddir || rm -rf "$copydir/build" [[ $keepbuilddir = true ]] || rm -rf "$copydir/build"
local builduser_uid="${SUDO_UID:-$UID}" local builduser_uid="${SUDO_UID:-$UID}"
local builduser_gid="$(id -g "$builduser_uid")" local builduser_gid="$(id -g "$builduser_uid")"
@@ -185,9 +185,10 @@ EOF
{ {
printf '#!/bin/bash\n' printf '#!/bin/bash\n'
declare -f _chrootbuild declare -f _chrootbuild
declare -p SOURCE_DATE_EPOCH 2>/dev/null || true
printf '_chrootbuild "$@" || exit\n' printf '_chrootbuild "$@" || exit\n'
if $run_namcap; then if [[ $run_namcap = true ]]; then
declare -f _chrootnamcap declare -f _chrootnamcap
printf '_chrootnamcap || exit\n' printf '_chrootnamcap || exit\n'
fi fi
@@ -198,10 +199,17 @@ 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 -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
} }
_chrootnamcap() { _chrootnamcap() {
@@ -218,17 +226,16 @@ _chrootnamcap() {
# - USER # - USER
download_sources() { download_sources() {
local copydir=$1 local copydir=$1
local src_owner=$2 local makepkg_user=$2
local builddir="$(mktemp -d)" local builddir
builddir="$(mktemp -d)"
chmod 1777 "$builddir" chmod 1777 "$builddir"
# Ensure sources are downloaded # Ensure sources are downloaded
makepkg_user=${makepkg_user:-$SUDO_USER}
sudo -u "$makepkg_user" env SRCDEST="$SRCDEST" BUILDDIR="$builddir" \ sudo -u "$makepkg_user" env SRCDEST="$SRCDEST" BUILDDIR="$builddir" \
makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o || makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o ||
die "Could not download sources." die "Could not download sources."
(( $? != 0 )) && die "Could not download sources."
# Clean up garbage from verifysource # Clean up garbage from verifysource
rm -rf "$builddir" rm -rf "$builddir"
@@ -263,6 +270,11 @@ move_products() {
for s in "$copydir"/srcpkgdest/*; do for s in "$copydir"/srcpkgdest/*; do
chown "$src_owner" "$s" chown "$src_owner" "$s"
mv "$s" "$SRCPKGDEST" mv "$s" "$SRCPKGDEST"
# Fix broken symlink because of temporary chroot SRCPKGDEST /srcpkgdest
if [[ "$PWD" != "$SRCPKGDEST" && -L "$PWD/${s##*/}" ]]; then
ln -sf "$SRCPKGDEST/${s##*/}"
fi
done done
} }
# }}} # }}}
@@ -376,7 +388,7 @@ main() {
download_sources "$copydir" "$src_owner" download_sources "$copydir" "$src_owner"
prepare_chroot "$copydir" "$USER_HOME" "$keepbuilddir" prepare_chroot "$copydir" "$USER_HOME" "$keepbuilddir" "$run_namcap"
bindmounts_rw+=("${PWD}:/startdir" "${SRCDEST}:/srcdest") bindmounts_rw+=("${PWD}:/startdir" "${SRCDEST}:/srcdest")

274
data/Jenkinsfile.galaxy Normal file
View File

@@ -0,0 +1,274 @@
def ADD_REPO = ''
def RM_REPO = ''
def IS_ADD = 'false'
def IS_REMOVE = 'false'
def IS_BUILD = 'false'
def PKG_TRUNK = ''
def PKG_PATH = ''
pipeline {
agent any
options {
skipDefaultCheckout()
timestamps()
}
stages {
stage('Checkout') {
steps {
script {
checkout scm
def currentCommit = sh(returnStdout: true, script: 'git rev-parse @').trim()
echo "currentCommit: ${currentCommit}"
def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n')
def changedPkgStatus = []
def pkgPath = []
int entryCount = 0
for ( int i = 0; i < changedFilesStatus.size(); i++ ) {
def entry = changedFilesStatus[i].split()
def fileStatus = entry[0]
entryCount = entry.size()
for ( int j = 1; j < entry.size(); j++ ) {
if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){
changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD')
pkgPath << entry[j].minus('/PKGBUILD')
}
}
}
int pkgCount = changedPkgStatus.size()
int pkgPathCount = pkgPath.size()
echo "pkgCount: ${pkgCount}"
echo "entryCount: ${entryCount}"
echo "pkgPathCount: ${pkgPathCount}"
echo "changedPkgStatus: ${changedPkgStatus}"
if ( pkgCount > 0 ) {
if ( entryCount == 2 && pkgCount == 2 ) {
def pkgEntry1 = changedPkgStatus[0].split()
def pkgEntry2 = changedPkgStatus[1].split()
def srcPath = []
def pkgStatus = []
srcPath << pkgEntry1[1]
srcPath << pkgEntry2[1]
pkgStatus << pkgEntry1[0]
pkgStatus << pkgEntry2[0]
def buildInfo1 = srcPath[0].tokenize('/')
def buildInfo2 = srcPath[1].tokenize('/')
if ( pkgStatus[0] == "M" ) {
IS_ADD = 'true'
if ( srcPath[0].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins'
} else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) {
ADD_REPO = 'galaxy'
}
if ( srcPath[0].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
} else if ( srcPath[0].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
}
} else if ( pkgStatus[1] == "M" ) {
IS_ADD = 'true'
if ( srcPath[1].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins'
} else if ( srcPath[1].contains('community-x86_64') || srcPath[1].contains('community-any') ) {
ADD_REPO = 'galaxy'
}
if ( srcPath[1].contains('multilib-testing') ) {
ADD_REPO = 'lib32-gremlins'
} else if ( srcPath[1].contains('multilib-x86_64') ) {
ADD_REPO = 'lib32'
}
}
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 pkgStatus = pkgEntry[0]
def buildInfo1 = pkgPath[0].tokenize('/')
def buildInfo2 = pkgPath[1].tokenize('/')
if ( pkgStatus.contains('R') ) {
IS_ADD = 'true'
IS_REMOVE = 'true'
if ( pkgPath[0].contains('community-staging') && pkgPath[1].contains('community-testing') ) {
ADD_REPO = 'galaxy-gremlins'
RM_REPO = 'galaxy-goblins'
} else if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-staging') ) {
ADD_REPO = 'galaxy-goblins'
RM_REPO = 'galaxy-gremlins'
}
if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-x86_64') || pkgPath[0].contains('community-any') ) {
ADD_REPO = 'galaxy-gremlins'
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'
RM_REPO = 'lib32-goblins'
} else if ( pkgPath[0].contains('multilib-testing') && pkgPath[1].contains('multilib-staging') ) {
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'
}
if ( pkgCount == 1 ) {
def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0]
def srcPath = pkgEntry[1]
def buildInfo = srcPath.tokenize('/')
if ( srcPath.contains('community-staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'galaxy-goblins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('community-testing') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'galaxy-gremlins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('community-x86_64') || srcPath.contains('community-any') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'galaxy'
RM_REPO = ADD_REPO
}
if ( srcPath.contains('multilib-staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'lib32-goblins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('multilib-testing') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'lib32-gremlins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('multilib-x86_64') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'lib32'
RM_REPO = ADD_REPO
}
PKG_PATH = srcPath
PKG_TRUNK = buildInfo[0] + '/trunk'
}
}
}
}
}
stage('Build') {
environment {
BUILDBOT_GPGP = credentials('BUILDBOT_GPGP')
}
when {
expression { return IS_BUILD == 'true' }
}
steps {
dir("${PKG_PATH}") {
sh "buildpkg -r ${ADD_REPO}"
}
}
post {
success {
dir("${PKG_PATH}") {
sh "deploypkg -a -d ${ADD_REPO} -s"
}
}
}
}
stage('Add') {
when {
expression { return IS_ADD == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -a -d ${ADD_REPO}"
}
}
}
stage('Remove') {
when {
expression { return IS_REMOVE == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -r -d ${RM_REPO}"
}
}
}
}
}

241
data/Jenkinsfile.packages Normal file
View File

@@ -0,0 +1,241 @@
def ADD_REPO = ''
def RM_REPO = ''
def IS_ADD = 'false'
def IS_REMOVE = 'false'
def IS_BUILD = 'false'
def PKG_TRUNK = ''
def PKG_PATH = ''
pipeline {
agent any
options {
skipDefaultCheckout()
timestamps()
}
stages {
stage('Checkout') {
steps {
script {
checkout scm
def currentCommit = sh(returnStdout: true, script: 'git rev-parse @').trim()
echo "currentCommit: ${currentCommit}"
def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n')
def changedPkgStatus = []
def pkgPath = []
int entryCount = 0
for ( int i = 0; i < changedFilesStatus.size(); i++ ) {
def entry = changedFilesStatus[i].split()
def fileStatus = entry[0]
entryCount = entry.size()
for ( int j = 1; j < entry.size(); j++ ) {
if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){
changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD')
pkgPath << entry[j].minus('/PKGBUILD')
}
}
}
int pkgCount = changedPkgStatus.size()
int pkgPathCount = pkgPath.size()
echo "pkgCount: ${pkgCount}"
echo "entryCount: ${entryCount}"
echo "pkgPathCount: ${pkgPathCount}"
echo "changedPkgStatus: ${changedPkgStatus}"
if ( pkgCount > 0 ) {
if ( entryCount == 2 && pkgCount == 2 ) {
def pkgEntry1 = changedPkgStatus[0].split()
def pkgEntry2 = changedPkgStatus[1].split()
def srcPath = []
def pkgStatus = []
srcPath << pkgEntry1[1]
srcPath << pkgEntry2[1]
pkgStatus << pkgEntry1[0]
pkgStatus << pkgEntry2[0]
def buildInfo1 = srcPath[0].tokenize('/')
def buildInfo2 = srcPath[1].tokenize('/')
if ( pkgStatus[0] == 'M' ) {
IS_ADD = 'true'
if ( srcPath[0].contains('testing') ) {
ADD_REPO = 'gremlins'
} else if ( srcPath[0].contains('core') ) {
ADD_REPO = 'system'
} else if ( srcPath[0].contains('extra') ) {
ADD_REPO = 'world'
}
} else if ( pkgStatus[1] == 'M' ) {
IS_ADD = 'true'
if ( srcPath[1].contains('testing') ) {
ADD_REPO = 'gremlins'
} else if ( srcPath[1].contains('core') ) {
ADD_REPO = ''
} else if ( srcPath[1].contains('extra') ) {
ADD_REPO = 'world'
}
}
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 pkgStatus = pkgEntry[0]
def buildInfo1 = pkgPath[0].tokenize('/')
def buildInfo2 = pkgPath[1].tokenize('/')
if ( pkgStatus.contains('R') ) {
IS_ADD = 'true'
IS_REMOVE = 'true'
if ( pkgPath[0].contains('staging') && pkgPath[1].contains('testing') ) {
ADD_REPO = 'gremlins'
RM_REPO = 'goblins'
} else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('staging') ) {
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'
}
if ( pkgCount == 1 ) {
def pkgEntry = changedPkgStatus[0].split()
def pkgStatus = pkgEntry[0]
def srcPath = pkgEntry[1]
def buildInfo = srcPath.tokenize('/')
if ( srcPath.contains('staging') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'goblins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('testing') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'gremlins'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('core') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'system'
RM_REPO = ADD_REPO
} else if ( srcPath.contains('extra') ) {
if ( pkgStatus == 'A' || pkgStatus == 'M' ) {
IS_BUILD = 'true'
}
if ( pkgStatus == 'D' ) {
IS_REMOVE = 'true'
}
ADD_REPO = 'world'
RM_REPO = ADD_REPO
}
PKG_PATH = srcPath
PKG_TRUNK = buildInfo[0] + '/trunk'
}
}
}
}
}
stage('Build') {
environment {
BUILDBOT_GPGP = credentials('BUILDBOT_GPGP')
}
when {
expression { return IS_BUILD == 'true' }
}
steps {
dir("${PKG_PATH}") {
sh "buildpkg -r ${ADD_REPO}"
}
}
post {
success {
dir("${PKG_PATH}") {
sh "deploypkg -a -d ${ADD_REPO} -s"
}
}
}
}
stage('Add') {
when {
expression { return IS_ADD == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -a -d ${ADD_REPO}"
}
}
}
stage('Remove') {
when {
expression { return IS_REMOVE == 'true' }
}
steps {
dir("${PKG_TRUNK}") {
sh "deploypkg -r -d ${RM_REPO}"
}
}
}
}
}

View File

@@ -12,14 +12,8 @@
################ artools-pkg ################ ################ artools-pkg ################
############################################# #############################################
# artix package tree
# repo_tree_artix=('system' 'world' 'galaxy' 'lib32')
# host_tree_artix='https://github.com/artix-linux' # host_tree_artix='https://github.com/artix-linux'
# archlinux package tree
# 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

@@ -8,8 +8,7 @@
# autologin="true" # autologin="true"
# service runlevels # service runlevels
# openrc_boot=('elogind') # services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
# openrc_default=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
# default values # default values
# addgroups="video,power,storage,optical,network,lp,scanner,wheel,users" # addgroups="video,power,storage,optical,network,lp,scanner,wheel,users"

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,14 +25,12 @@ libx86emu
ninja ninja
pigeonhole pigeonhole
portaudio portaudio
sassc
yaml-cpp
zeromq
acpi_call
r8168 r8168
tp_smapi
acpi_call-lts
r8168-lts r8168-lts
sassc
tp_smapi
tp_smapi-lts tp_smapi-lts
virtualbox virtualbox
virtualbox-guest-iso virtualbox-guest-iso
yaml-cpp
zeromq

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

@@ -0,0 +1,55 @@
acpi_call
acpi_call-lts
autoconf-archive
cmocka
confuse
cython
dmd
dovecot
gmock
gtest
hub
hwinfo
jansson
lib32-fakeroot
lib32-libltdl
libappindicator
libbson
libdbi
libdbusmenu
libftdi
libindicator
libmongoc
libnewt
libpgm
libphobos
libreplaygain
libsass
libsodium
libx86emu
ninja
pigeonhole
portaudio
python-babel
python-docutils
python-imagesize
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-lts
rust
sassc
tp_smapi
tp_smapi-lts
virtualbox
virtualbox-guest-iso
yaml-cpp
zeromq

View File

@@ -1,84 +1,128 @@
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
compositeproto
convertlit convertlit
coreutils
cpio cpio
damageproto 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
fixesproto file
findutils
flac flac
flex
fontconfig fontconfig
fontsproto
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
@@ -88,43 +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
inputproto
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
kbproto 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
@@ -134,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
@@ -153,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
@@ -173,47 +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
libtxc_dxtn libtool
libunistring
libunwind libunwind
libupnp libupnp
libusb-compat libusb-compat
@@ -228,13 +319,13 @@ libvpx
libwebp libwebp
libwmf libwmf
libx11 libx11
# libxau libxau
libxaw libxaw
# libxcb libxcb
libxcomposite libxcomposite
libxcursor libxcursor
libxdamage libxdamage
# libxdmcp libxdmcp
libxext libxext
libxfixes libxfixes
libxfont2 libxfont2
@@ -259,26 +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
mesa lz4
# meson lzo
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
@@ -286,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
@@ -361,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
@@ -368,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
@@ -409,75 +547,96 @@ qt5-websockets
qt5-webview qt5-webview
qt5-x11extras qt5-x11extras
qt5-xmlpatterns qt5-xmlpatterns
randrproto re2
recordproto readline
renderproto reiserfsprogs
rest
ruby ruby
run-parts
schroedinger schroedinger
scrnsaverproto
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
videoproto 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
xextproto
xf86-input-libinput xf86-input-libinput
xf86-video-dummy xf86-video-dummy
xf86-video-fbdev xf86-video-fbdev
@@ -485,8 +644,7 @@ xf86-video-sisusb
xf86-video-vesa xf86-video-vesa
xf86-video-vmware xf86-video-vmware
xf86-video-voodoo xf86-video-voodoo
xf86vidmodeproto xfsprogs
xineramaproto
xkeyboard-config xkeyboard-config
xmlto xmlto
xorg-bdftopcf xorg-bdftopcf
@@ -498,11 +656,12 @@ 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
xorg-xauth xorg-xauth
xorg-xinit # xorg-xinit
xorg-xkbcomp xorg-xkbcomp
xorg-xmessage xorg-xmessage
xorg-xmodmap xorg-xmodmap
@@ -511,15 +670,18 @@ xorg-xrandr
xorg-xrdb xorg-xrdb
xorg-xset xorg-xset
xorg-xsetroot xorg-xsetroot
# xproto
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

View File

@@ -1,155 +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
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

84
data/pacman-default.conf Normal file
View File

@@ -0,0 +1,84 @@
#
# /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
#
# ARCHLINUX
#
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch

108
data/pacman-goblins.conf Normal file
View File

@@ -0,0 +1,108 @@
#
# /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.
[goblins]
Include = /etc/pacman.d/mirrorlist
[gremlins]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-goblins]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
#
# ARCHLINUX
#
[staging]
Include = /etc/pacman.d/mirrorlist-arch
[testing]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-staging]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch

96
data/pacman-gremlins.conf Normal file
View File

@@ -0,0 +1,96 @@
#
# /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.
[gremlins]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist
[galaxy]
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

View File

@@ -34,7 +34,7 @@ Architecture = auto
#Color #Color
#TotalDownload #TotalDownload
CheckSpace CheckSpace
#VerbosePkgLists VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring # 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. # trusts (see pacman-key and its man page), as well as unsigned packages.
@@ -64,38 +64,42 @@ LocalFileSigLevel = Optional
# The header [repo-name] is crucial - it must be present and # The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo. # uncommented to enable the repo.
[system-testing] [goblins]
Include = /etc/pacman.d/mirrorlist
[gremlins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[system] [system]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[world-testing]
Include = /etc/pacman.d/mirrorlist
[world] [world]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[galaxy-testing] [galaxy-goblins]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system, [lib32-goblins]
# enable the lib32 repositories as required here. Include = /etc/pacman.d/mirrorlist
[lib32-testing] [lib32-gremlins]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[lib32] [lib32]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for #
# tips on creating your own repositories. # ARCHLINUX
#[custom] #
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs [staging]
Include = /etc/pacman.d/mirrorlist-arch
[testing] [testing]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
@@ -103,12 +107,18 @@ Include = /etc/pacman.d/mirrorlist-arch
[extra] [extra]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
[community-staging]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing] [community-testing]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
[community] [community]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch
[multilib-staging]
Include = /etc/pacman.d/mirrorlist-arch
[multilib-testing] [multilib-testing]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -0,0 +1,108 @@
#
# /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.
[gremlins]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
[lib32-gremlins]
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

@@ -34,7 +34,7 @@ Architecture = auto
#Color #Color
#TotalDownload #TotalDownload
CheckSpace CheckSpace
#VerbosePkgLists VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring # 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. # trusts (see pacman-key and its man page), as well as unsigned packages.
@@ -73,17 +73,12 @@ Include = /etc/pacman.d/mirrorlist
[galaxy] [galaxy]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
[lib32] [lib32]
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for #
# tips on creating your own repositories. # ARCHLINUX
#[custom] #
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[extra] [extra]
Include = /etc/pacman.d/mirrorlist-arch Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -1,5 +1,5 @@
--- /dev/null --- /dev/null
+++ b/bash/artix.bashrc +++ b/artix.bashrc
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
+use_color=true +use_color=true
+ +
@@ -47,3 +47,41 @@
+fi +fi
+ +
+unset use_color safe_term match_lhs sh +unset use_color safe_term match_lhs sh
--- a/dot.bashrc
+++ b/dot.bashrc
@@ -5,5 +5,5 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
-alias ls='ls --color=auto'
-PS1='[\u@\h \W]\$ '
+# alias ls='ls --color=auto'
+# PS1='[\u@\h \W]\$ '
--- a/system.bashrc
+++ a/system.bashrc
@@ -1,5 +1,5 @@
#
-# /etc/bash.bashrc
+# /etc/bash/bashrc
#
# If not running interactively, don't do anything
@@ -19,4 +19,8 @@
;;
esac
+for sh in /etc/bash/bashrc.d/*.bashrc ; do
+ [[ -r ${sh} ]] && source "${sh}"
+done
+
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
--- a/system.bash_logout
+++ a/system.bash_logout
@@ -1,3 +1,3 @@
#
-# /etc/bash.bash_logout
+# /etc/bash/bash_logout
#

View File

@@ -1,11 +0,0 @@
--- a/bash/dot.bashrc
+++ b/bash/dot.bashrc
@@ -5,5 +5,5 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
-alias ls='ls --color=auto'
-PS1='[\u@\h \W]\$ '
+# alias ls='ls --color=auto'
+# PS1='[\u@\h \W]\$ '

View File

@@ -1,19 +0,0 @@
--- a/bash/system.bashrc
+++ a/bash/system.bashrc
@@ -1,5 +1,5 @@
#
-# /etc/bash.bashrc
+# /etc/bash/bashrc
#
# If not running interactively, don't do anything
@@ -19,4 +19,8 @@
;;
esac
+for sh in /etc/bash/bashrc.d/*.bashrc ; do
+ [[ -r ${sh} ]] && source "${sh}"
+done
+
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion

View File

@@ -1,8 +0,0 @@
--- a/bash/system.bash_logout
+++ a/bash/system.bash_logout
@@ -1,3 +1,3 @@
#
-# /etc/bash.bash_logout
+# /etc/bash/bash_logout
#

View File

@@ -47,18 +47,16 @@ load_profile(){
addgroups="video,power,storage,optical,network,lp,scanner,wheel,users,audio" addgroups="video,power,storage,optical,network,lp,scanner,wheel,users,audio"
fi fi
if [[ -z ${openrc_boot[@]} ]];then if [[ -z ${services[@]} ]];then
openrc_boot=('elogind') services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
fi fi
if [[ -z ${openrc_default[@]} ]];then [[ ${displaymanager} != "none" ]] && services+=('xdm')
openrc_default=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
if [[ -z ${services_live[@]} ]];then
services_live=('artix-live' 'pacman-init')
fi fi
[[ ${displaymanager} != "none" ]] && openrc_default+=('xdm')
enable_live=('artix-live' 'pacman-init')
[[ -z ${netgroups_url} ]] && netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master" [[ -z ${netgroups_url} ]] && netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
return 0 return 0

View File

@@ -33,11 +33,7 @@ write_servicescfg_conf(){
echo '' >> "$conf" echo '' >> "$conf"
echo 'services:' >> "$conf" echo 'services:' >> "$conf"
echo ' enabled:' >> "$conf" echo ' enabled:' >> "$conf"
for s in ${openrc_boot[@]};do for s in ${services[@]};do
echo " - name: $s" >> "$conf"
echo ' runlevel: boot' >> "$conf"
done
for s in ${openrc_default[@]};do
echo " - name: $s" >> "$conf" echo " - name: $s" >> "$conf"
echo ' runlevel: default' >> "$conf" echo ' runlevel: default' >> "$conf"
done done

View File

@@ -165,14 +165,11 @@ configure_services(){
info "Configuring [%s]" "${initsys}" info "Configuring [%s]" "${initsys}"
case ${initsys} in case ${initsys} in
'openrc') 'openrc')
for svc in ${openrc_boot[@]}; do for svc in ${services[@]}; do
add_svc_rc "$mnt" "$svc" "boot"
done
for svc in ${openrc_default[@]}; do
[[ $svc == "xdm" ]] && set_xdm "$mnt" [[ $svc == "xdm" ]] && set_xdm "$mnt"
add_svc_rc "$mnt" "$svc" "default" add_svc_rc "$mnt" "$svc" "default"
done done
for svc in ${enable_live[@]}; do for svc in ${services_live[@]}; do
add_svc_rc "$mnt" "$svc" "default" add_svc_rc "$mnt" "$svc" "default"
done done
;; ;;

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,213 +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
patch -p1 -i $DATADIR/patches/dot-bashrc.patch
patch -p1 -i $DATADIR/patches/system-bashrc.patch
patch -p1 -i $DATADIR/patches/system-bashrc_logout.patch
patch -p1 -i $DATADIR/patches/artix-bashrc.patch
cd $pkg
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

@@ -27,7 +27,7 @@ load_vars() {
[[ -f $1 ]] || return 1 [[ -f $1 ]] || return 1
for var in {SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER CARCH GPGKEY; do for var in {SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER CARCH GPGKEY; do
[[ -z ${!var} ]] && eval $(grep -a "^${var}=" "$1") [[ -z ${!var:-} ]] && eval "$(grep -a "^${var}=" "$1")"
done done
return 0 return 0
@@ -67,14 +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
[[ -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
[[ -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"