forked from artix/artools
Compare commits
63 Commits
Author | SHA1 | Date | |
---|---|---|---|
ee55448fe0 | |||
b3415307b1 | |||
2516fccc3b | |||
45ecb59ffd | |||
11fff303f9 | |||
b05d1c999f | |||
1572c94389 | |||
601f7c30ba | |||
2f37832558 | |||
bf70341af9 | |||
ea3a06a9bc | |||
812cf9a317 | |||
70aa91ddd8 | |||
15407b612a | |||
8d4adb5b47 | |||
85659bfa5e | |||
f0799f85e4 | |||
3810656411 | |||
79b99440fc | |||
d353cd8d46 | |||
90623d0485 | |||
2c0c3b2032 | |||
a463f22118 | |||
86504ac676 | |||
450ac445e4 | |||
56b350ffd0 | |||
a6c4513867 | |||
c50715f258 | |||
77296c4527 | |||
3f419cc41e | |||
60d7ac62a5 | |||
8cc8b66e7f | |||
0ae8c16801 | |||
bb674109ed | |||
ede2ac11e2 | |||
e8913b07c3 | |||
f5f9a2acb8 | |||
c6f7df51d2 | |||
b105207138 | |||
55e98abdc1 | |||
896c031ea9 | |||
8f16db45e8 | |||
47ee03e1a4 | |||
17f49857e2 | |||
68e23f7e47 | |||
c5228a8b43 | |||
84151f360f | |||
a6ca83be7e | |||
0a07a1f1dd | |||
9dedb2e4cb | |||
dcf6ec1d7b | |||
62022faad7 | |||
dea81dd9f9 | |||
e49d2d77bd | |||
4a06d4d2eb | |||
231d054ee9 | |||
2945493eb7 | |||
0f037f1106 | |||
6c4197e76d | |||
8ebdad278e | |||
2bacf6d19e | |||
6700e1a2e6 | |||
f874c8c399 |
23
Makefile
23
Makefile
@@ -1,4 +1,4 @@
|
||||
VERSION=0.14
|
||||
VERSION=0.16
|
||||
|
||||
CHROOT_VERSION=0.10
|
||||
|
||||
@@ -10,8 +10,8 @@ LIBDIR = $(PREFIX)/lib
|
||||
DATADIR = $(PREFIX)/share
|
||||
CPIODIR = $(SYSCONFDIR)/initcpio
|
||||
|
||||
CONF = \
|
||||
data/artools.conf
|
||||
BASE_CONF = \
|
||||
data/conf/artools-base.conf
|
||||
|
||||
BASE_BIN = \
|
||||
bin/base/signfile \
|
||||
@@ -29,6 +29,9 @@ BASE_UTIL = lib/util-base.sh
|
||||
BASE_DATA = \
|
||||
$(wildcard data/base/pacman*.conf)
|
||||
|
||||
PKG_CONF = \
|
||||
data/conf/artools-pkg.conf
|
||||
|
||||
PKG_BIN = \
|
||||
bin/pkg/buildpkg \
|
||||
bin/pkg/deploypkg \
|
||||
@@ -41,7 +44,8 @@ PKG_BIN = \
|
||||
bin/pkg/links-add \
|
||||
bin/pkg/checkpkg \
|
||||
bin/pkg/finddeps \
|
||||
bin/pkg/find-libdeps
|
||||
bin/pkg/find-libdeps \
|
||||
bin/pkg/batchpkg
|
||||
|
||||
LN_COMMITPKG = \
|
||||
extrapkg \
|
||||
@@ -96,6 +100,9 @@ PKG_DATA = \
|
||||
PATCHES = \
|
||||
$(wildcard data/patches/*.patch)
|
||||
|
||||
ISO_CONF = \
|
||||
data/conf/artools-iso.conf
|
||||
|
||||
ISO_BIN = \
|
||||
bin/iso/buildiso \
|
||||
bin/iso/deployiso
|
||||
@@ -151,7 +158,7 @@ clean:
|
||||
|
||||
install_base:
|
||||
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
install $(FILEMODE) $(CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
install $(FILEMODE) $(BASE_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
|
||||
install $(DIRMODE) $(DESTDIR)$(BINDIR)
|
||||
install $(MODE) $(BASE_BIN) $(DESTDIR)$(BINDIR)
|
||||
@@ -164,6 +171,9 @@ install_base:
|
||||
install $(FILEMODE) $(BASE_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS)
|
||||
|
||||
install_pkg:
|
||||
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
|
||||
install $(DIRMODE) $(DESTDIR)$(BINDIR)
|
||||
install $(MODE) $(PKG_BIN) $(DESTDIR)$(BINDIR)
|
||||
|
||||
@@ -189,6 +199,9 @@ install_cpio:
|
||||
+make CPIODIR=$(CPIODIR) DESTDIR=$(DESTDIR) -C initcpio install
|
||||
|
||||
install_iso: install_cpio
|
||||
install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
install $(FILEMODE) $(ISO_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
|
||||
|
||||
install $(DIRMODE) $(DESTDIR)$(BINDIR)
|
||||
install $(MODE) $(ISO_BIN) $(DESTDIR)$(BINDIR)
|
||||
|
||||
|
27
README.md
27
README.md
@@ -39,15 +39,18 @@ artools
|
||||
|
||||
#### Configuration
|
||||
|
||||
artools.conf is the central configuration file for artools.
|
||||
By default, the config is installed in
|
||||
artools-{base,pkg,iso}.conf are the configuration files for artools.
|
||||
By default, the config files are installed in
|
||||
|
||||
/etc/artools/artools.conf
|
||||
```bash
|
||||
/etc/artools/artools-{base,pkg,iso}.conf
|
||||
```
|
||||
|
||||
A user artools.conf can be placed in
|
||||
|
||||
$HOME/.config/artools/artools.conf
|
||||
A user artools-{base,pkg,iso}.conf can be placed in
|
||||
|
||||
```bash
|
||||
$HOME/.config/artools/artools-{base,pkg,iso}.conf
|
||||
```
|
||||
|
||||
If the userconfig is present, artools will load the userconfig values, however, if variables have been set in the systemwide
|
||||
|
||||
@@ -55,13 +58,17 @@ These values take precedence over the userconfig.
|
||||
Best practise is to leave systemwide file untouched.
|
||||
By default it is commented and shows just initialization values done in code.
|
||||
|
||||
Tools configuration is done in artools.conf or by args.
|
||||
Specifying args will override artools.conf settings.
|
||||
Tools configuration is done in artools-{base,pkg,iso}.conf or by args.
|
||||
Specifying args will override artools-{base,pkg,iso}.conf settings.
|
||||
|
||||
Both, pacman.conf and makepkg.conf for chroots are loaded from
|
||||
|
||||
/usr/share/artools/{makepkg,pacman-*}.conf
|
||||
```bash
|
||||
usr/share/artools/{makepkg,pacman-*}.conf
|
||||
```
|
||||
|
||||
and can be overridden dropping them in
|
||||
|
||||
$HOME/.config/artools/
|
||||
```bash
|
||||
$HOME/.config/artools/
|
||||
```
|
||||
|
@@ -46,10 +46,6 @@ select_os(){
|
||||
fi
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
|
||||
automount=false
|
||||
|
||||
usage() {
|
||||
|
@@ -112,10 +112,6 @@ chroot_extra_mount() {
|
||||
chroot_add_resolv_conf "$1"
|
||||
chroot_mount "/etc/hosts" "$1/etc/hosts" -B
|
||||
chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B
|
||||
if [[ -e /etc/localtime ]];then
|
||||
[[ -e $1/etc/localtime ]] || touch $1/etc/localtime
|
||||
chroot_mount "/etc/localtime" "$1/etc/localtime" -B
|
||||
fi
|
||||
|
||||
for cache_dir in ${cache_dirs[@]:1}; do
|
||||
chroot_mount "$cache_dir" "$1${cache_dir}" -Br
|
||||
@@ -137,6 +133,12 @@ chroot_extra_mount() {
|
||||
done
|
||||
}
|
||||
|
||||
sync_host_localtime(){
|
||||
if [[ -e /etc/localtime ]]; then
|
||||
cp -L /etc/localtime "$1"/etc/localtime
|
||||
fi
|
||||
}
|
||||
|
||||
umask 0022
|
||||
|
||||
# Sanity check
|
||||
@@ -146,6 +148,8 @@ elif [[ $(cat "$working_dir/.artools") != ${CHROOTVERSION} ]]; then
|
||||
die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "${CHROOTVERSION}"
|
||||
fi
|
||||
|
||||
sync_host_localtime "${working_dir}"
|
||||
|
||||
chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}"
|
||||
|
||||
chroot_extra_mount "${working_dir}"
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
load_user_info
|
||||
|
||||
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars "${XDG_CONFIG_HOME}/pacman/makepkg.conf" || load_vars "${USER_HOME}/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
file_to_sign="$1"
|
||||
|
@@ -12,7 +12,6 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-iso.sh
|
||||
|
||||
gen_iso_fn(){
|
||||
@@ -33,7 +32,7 @@ gen_iso_fn(){
|
||||
prepare_build(){
|
||||
timer_start=$(get_timer)
|
||||
|
||||
load_profile "${PROFILE}"
|
||||
load_profile
|
||||
|
||||
local pacman_conf pac_file="pacman-default.conf"
|
||||
|
||||
@@ -42,7 +41,7 @@ prepare_build(){
|
||||
esac
|
||||
|
||||
pacman_conf="${DATADIR}/$pac_file"
|
||||
[[ -f ${USERCONFDIR}/artools/$pac_file ]] && pacman_conf="${USERCONFDIR}/artools/$pac_file"
|
||||
[[ -f ${USER_CONF_DIR}/$pac_file ]] && pacman_conf="${USER_CONF_DIR}/$pac_file"
|
||||
|
||||
iso_file=$(gen_iso_fn).iso
|
||||
|
||||
@@ -110,10 +109,6 @@ build(){
|
||||
show_elapsed_time "${FUNCNAME}" "${timer_start}"
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
|
||||
clean_first=true
|
||||
pretend=false
|
||||
images_only=false
|
||||
|
@@ -12,7 +12,7 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-iso.sh
|
||||
|
||||
connect(){
|
||||
echo "${ACCOUNT}@${FILE_HOST}:${FILE_HOME}"
|
||||
@@ -30,10 +30,6 @@ sync_dir(){
|
||||
show_elapsed_time "${FUNCNAME}" "${timer_start}"
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
|
||||
update=false
|
||||
verbose=false
|
||||
|
||||
|
71
bin/pkg/batchpkg.in
Normal file
71
bin/pkg/batchpkg.in
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (C) 2018-19 artoo@artixlinux.org
|
||||
# Copyright (C) 2018 Artix Linux Developers
|
||||
#
|
||||
# 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.
|
||||
|
||||
. /usr/lib/artools/util-pkg.sh
|
||||
|
||||
batch_move() {
|
||||
local name="${1:-pkg_moves}"
|
||||
local pkglist=${TREE_DIR_ARTIX}/$name.list
|
||||
[[ -f $pkglist ]] || die "%s does not exist!" "$pkglist"
|
||||
while read entry;do
|
||||
local pkg=${entry##*:}
|
||||
local src=${entry%:*}
|
||||
src=${src#*:}
|
||||
local dest=${entry%%:*}
|
||||
if ${runlist}; then
|
||||
"${dest}"pkg -s "${src}" -u -p "${pkg}"
|
||||
else
|
||||
msg "%s" "${dest}pkg -s ${src} -u -p ${pkg}"
|
||||
fi
|
||||
done < $pkglist
|
||||
}
|
||||
|
||||
# batch_upgrade() {
|
||||
# local pkglist=${TREE_DIR_ARTIX}/pkg_upgrades.list
|
||||
# [[ -f $pkglist ]] || die "%s does not exist!" "$pkglist"
|
||||
# while read entry;do
|
||||
# local pkg=${entry#*:}
|
||||
# local dest=${entry%:*}
|
||||
# echo "buildtree -i -p ${pkg}"
|
||||
# echo "${dest}pkg -u -p ${pkg}"
|
||||
# done < $pkglist
|
||||
# }
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [optional listname]"
|
||||
echo ' -r Run generated commands'
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
echo ''
|
||||
exit $1
|
||||
}
|
||||
|
||||
movelistname=pkg_moves
|
||||
runlist=false
|
||||
|
||||
opts='rh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
r) runlist=true ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
movelistname="$1"; shift
|
||||
|
||||
batch_move "$movelistname"
|
@@ -12,14 +12,12 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-pkg.sh
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
|
||||
create_first=false
|
||||
rebuild=false
|
||||
no_check=false
|
||||
is_checkpkg=false
|
||||
|
||||
mkchrootpkg_args=(-c -n)
|
||||
|
||||
@@ -27,22 +25,13 @@ cmd=${0##*/}
|
||||
repo=${cmd#*-}
|
||||
base_devel=('base-devel')
|
||||
|
||||
case ${repo} in
|
||||
system|world|galaxy) repo='default' ;;
|
||||
lib32*) base_devel+=('multilib-devel') ;;
|
||||
galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;;
|
||||
esac
|
||||
|
||||
pacman_conf="${DATADIR}/pacman-${repo}.conf"
|
||||
[[ -f ${USERCONFDIR}/artools/pacman-${repo}.conf ]] && pacman_conf="${USERCONFDIR}/artools/pacman-${repo}.conf"
|
||||
|
||||
makepkg_conf="${DATADIR}/makepkg.conf"
|
||||
[[ -f ${USERCONFDIR}/artools/makepkg.conf ]] && makepkg_conf="${USERCONFDIR}/artools/makepkg.conf"
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [options] -- [mkchrootpkg_args]"
|
||||
echo " -r <dir> Create chroots in this directory"
|
||||
echo ' -c Recreate the chroot before building'
|
||||
echo ' -m Major rebuild'
|
||||
echo ' -N Disable check() function'
|
||||
echo ' -C Run checkpkg after built'
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
echo "Default mkchrootpkg_args args: ${mkchrootpkg_args[*]}"
|
||||
@@ -52,17 +41,36 @@ usage() {
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='hcr:'
|
||||
opts='hcCNmr:'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
r) CHROOTS_PKG="$OPTARG" ;;
|
||||
c) create_first=true ;;
|
||||
m) rebuild=true ;;
|
||||
C) is_checkpkg=true; mkchrootpkg_args+=(-C) ;;
|
||||
N) no_check=true; mkchrootpkg_args+=(-N) ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '%s'" "${arg}"; usage 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ${rebuild};then
|
||||
repo='default'
|
||||
else
|
||||
case ${repo} in
|
||||
system|world|galaxy) repo='default' ;;
|
||||
lib32*) base_devel+=('multilib-devel') ;;
|
||||
galaxy-gremlins|galaxy-goblins) repo=${repo#*-} ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
pacman_conf="${DATADIR}/pacman-${repo}.conf"
|
||||
[[ -f ${USER_CONF_DIR}/pacman-${repo}.conf ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf"
|
||||
|
||||
makepkg_conf="${DATADIR}/makepkg.conf"
|
||||
[[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf"
|
||||
|
||||
check_root SOURCE_DATE_EPOCH
|
||||
|
||||
mkchrootpkg_args+=("${@:$OPTIND}")
|
||||
|
@@ -12,9 +12,39 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-pkg.sh
|
||||
|
||||
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/trunk/PKGBUILD
|
||||
;;
|
||||
linux|linux-lts)
|
||||
sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i $pkg/trunk/PKGBUILD
|
||||
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
|
||||
-i $pkg/trunk/config
|
||||
;;
|
||||
bash)
|
||||
sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \
|
||||
-e "s|etc/bash.|etc/bash/|g" \
|
||||
-e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \
|
||||
-i $pkg/trunk/PKGBUILD
|
||||
cd $pkg/trunk
|
||||
patch -Np 1 -i ${DATADIR}/patches/artix-bash.patch
|
||||
updpkgsums
|
||||
cd ../..
|
||||
;;
|
||||
gstreamer|gst-plugins-*|licenses)
|
||||
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
|
||||
-e 's|(Arch Linux)|(Artix Linux)|' \
|
||||
-i $pkg/trunk/PKGBUILD
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
pull_tree_arch(){
|
||||
cd ${TREE_DIR_ARCH}
|
||||
for tree in ${TREE_NAMES_ARCH[@]};do
|
||||
@@ -58,7 +88,7 @@ show_deps(){
|
||||
|
||||
[[ $arch == 'any' ]] && CARCH=any
|
||||
|
||||
local archver=$(get_full_version $pkg)
|
||||
local archver=$(get_full_version)
|
||||
|
||||
msg2 "repo: %s" "$repo"
|
||||
[[ -n ${pkgbase} ]] && msg2 "pkgbase: %s" "${pkgbase}"
|
||||
@@ -73,20 +103,42 @@ show_deps(){
|
||||
[[ -n ${optdepends[@]} ]] && msg2 "optdepends: %s" "${optdepends[@]}"
|
||||
}
|
||||
|
||||
from_arch(){
|
||||
local pkg="$1" src= dest=
|
||||
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "$pkg")
|
||||
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
|
||||
subrepo_new(){
|
||||
local group="${1:-$GROUP}" team="${2:-$TEAM}"
|
||||
local dest=${TREE_DIR_ARTIX}/$group/${PACKAGE}/trunk
|
||||
|
||||
local package=${TREE_DIR_ARCH}/$git_tree_arch/$pkg
|
||||
cd ${TREE_DIR_ARTIX}/$group
|
||||
|
||||
local org=$(get_pkg_org "${PACKAGE}")
|
||||
|
||||
create_repo "${PACKAGE}" "$org"
|
||||
|
||||
add_repo_to_team "${PACKAGE}" "$org" "$team"
|
||||
|
||||
subrepo_clone "${PACKAGE}" "$org"
|
||||
|
||||
prepare_dir "$dest"
|
||||
|
||||
commit_jenkins_files "${PACKAGE}"
|
||||
}
|
||||
|
||||
from_arch(){
|
||||
local src= dest=
|
||||
|
||||
cd ${TREE_DIR_ARTIX}
|
||||
|
||||
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "${PACKAGE}")
|
||||
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "${PACKAGE}"
|
||||
|
||||
local package=${TREE_DIR_ARCH}/$git_tree_arch/${PACKAGE}
|
||||
local repo=$(find_repo "$package" "${staging}" "${unstable}")
|
||||
|
||||
src=$package/repos/$repo
|
||||
|
||||
local git_tree_artix=$(find_tree "${TREE_DIR_ARTIX}" "$pkg")
|
||||
local tree_dir=$(get_artix_tree "$pkg" "$git_tree_artix" "$git_tree_arch")
|
||||
local git_tree_artix=$(find_tree "${TREE_DIR_ARTIX}" "${PACKAGE}")
|
||||
local tree_dir=$(get_artix_tree "${PACKAGE}" "$git_tree_artix" "$git_tree_arch")
|
||||
|
||||
dest=${TREE_DIR_ARTIX}/$tree_dir/$pkg/trunk
|
||||
dest=${TREE_DIR_ARTIX}/$tree_dir/${PACKAGE}/trunk
|
||||
|
||||
msg "tree: %s" "$tree_dir"
|
||||
show_deps "$src" "$repo"
|
||||
@@ -96,25 +148,25 @@ from_arch(){
|
||||
cd ${TREE_DIR_ARTIX}/$git_tree_artix
|
||||
|
||||
. $dest/PKGBUILD 2>/dev/null
|
||||
local artixver=$(get_full_version $pkg)
|
||||
local artixver=$(get_full_version)
|
||||
|
||||
msg2 "Artix Version: %s" "$artixver"
|
||||
else
|
||||
subrepo_new "$pkg" "$tree_dir" "$git_tree_arch"
|
||||
subrepo_new "$tree_dir" "$git_tree_arch"
|
||||
fi
|
||||
|
||||
msg "Sync (%s) from [%s] to [%s]" "$pkg" "$git_tree_arch" "$tree_dir"
|
||||
msg "Sync (%s) from [%s] to [%s]" "${PACKAGE}" "$git_tree_arch" "$tree_dir"
|
||||
|
||||
sync_pkg "$src" "$dest"
|
||||
patch_pkg "$pkg"
|
||||
patch_pkg "${PACKAGE}"
|
||||
}
|
||||
|
||||
view_build(){
|
||||
local pkg="$1" src=
|
||||
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "$pkg")
|
||||
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
|
||||
local src=
|
||||
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "${PACKAGE}")
|
||||
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "${PACKAGE}"
|
||||
|
||||
local pkg_path=${TREE_DIR_ARCH}/$git_tree_arch/$pkg
|
||||
local pkg_path=${TREE_DIR_ARCH}/$git_tree_arch/${PACKAGE}
|
||||
local repo=$(find_repo "$pkg_path" "${staging}" "${unstable}")
|
||||
|
||||
src=$pkg_path/repos/$repo
|
||||
@@ -122,6 +174,16 @@ view_build(){
|
||||
show_deps "$src" "$repo"
|
||||
}
|
||||
|
||||
check_tree(){
|
||||
local git_tree_arch=$(find_tree "${TREE_DIR_ARCH}" "${PACKAGE}")
|
||||
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "${PACKAGE}"
|
||||
local git_tree_artix=$(find_tree "${TREE_DIR_ARTIX}" "${PACKAGE}")
|
||||
local tree_dir=$(get_artix_tree "${PACKAGE}" "$git_tree_artix" "$git_tree_arch")
|
||||
msg "tree_dir: %s" "$tree_dir"
|
||||
[[ -z $git_tree_artix ]] && msg2 "exists: %s" "no"
|
||||
[[ -n $git_tree_artix ]] && msg2 "exists: %s" "yes"
|
||||
}
|
||||
|
||||
sync_repos(){
|
||||
${sync_arch} && pull_tree_arch
|
||||
if ${sync_artix};then
|
||||
@@ -133,10 +195,7 @@ sync_repos(){
|
||||
fi
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars "${XDG_CONFIG_HOME}/pacman/makepkg.conf" || load_vars "${USER_HOME}/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
sync=false
|
||||
@@ -149,6 +208,7 @@ conf=false
|
||||
unstable=false
|
||||
staging=true
|
||||
sync_group=false
|
||||
check=false
|
||||
|
||||
PACKAGE=''
|
||||
|
||||
@@ -169,7 +229,8 @@ usage() {
|
||||
echo ' -n Make new remote subrepo and clone it'
|
||||
echo ' -u Include kde & gnome unstable (only with -i)'
|
||||
echo ' -w Exclude staging (only with -i)'
|
||||
echo ' -v View package depends'
|
||||
echo ' -v Check if a package is in the artix tree(s)'
|
||||
echo ' -c View package depends'
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
echo ''
|
||||
@@ -178,7 +239,7 @@ usage() {
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='p:t:g:uwsinzyvh'
|
||||
opts='p:t:g:uwsinzycvh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
@@ -192,6 +253,7 @@ while getopts "${opts}" arg; do
|
||||
n) createnew=true ;;
|
||||
w) staging=false ;;
|
||||
u) unstable=true ;;
|
||||
c) check=true ;;
|
||||
v) view=true ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
@@ -205,8 +267,10 @@ prepare_dir "${TREE_DIR_ARCH}"
|
||||
|
||||
${sync} && sync_repos
|
||||
|
||||
${view} && view_build "${PACKAGE}"
|
||||
${view} && view_build
|
||||
|
||||
${import} && from_arch "${PACKAGE}"
|
||||
${check} && check_tree
|
||||
|
||||
${createnew} && subrepo_new "${PACKAGE}" "${GROUP}" "${TEAM}"
|
||||
${import} && from_arch
|
||||
|
||||
${createnew} && subrepo_new
|
||||
|
@@ -12,32 +12,86 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-pkg.sh
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
# Source makepkg.conf; fail if it is not found
|
||||
if [[ -r '/etc/makepkg.conf' ]]; then
|
||||
source '/etc/makepkg.conf'
|
||||
# shellcheck source=makepkg-x86_64.conf
|
||||
source '/etc/makepkg.conf'
|
||||
else
|
||||
die '/etc/makepkg.conf not found!'
|
||||
die '/etc/makepkg.conf not found!'
|
||||
fi
|
||||
|
||||
load_user_info
|
||||
# Source user-specific makepkg.conf overrides
|
||||
if [[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf" ]]; then
|
||||
# shellcheck source=/dev/null
|
||||
source "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf"
|
||||
elif [[ -r "$HOME/.makepkg.conf" ]]; then
|
||||
# shellcheck source=/dev/null
|
||||
source "$HOME/.makepkg.conf"
|
||||
fi
|
||||
|
||||
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
usage() {
|
||||
cat <<- _EOF_
|
||||
Usage: ${BASH_SOURCE[0]##*/} [OPTIONS]
|
||||
|
||||
Searches for a locally built package corresponding to the PKGBUILD, and
|
||||
downloads the last version of that package from the Pacman repositories.
|
||||
It then compares the list of .so files provided by each version of the
|
||||
package and outputs if there are soname differences for the new package.
|
||||
A directory is also created using mktemp with files containing a file
|
||||
list for both packages and a library list for both packages.
|
||||
|
||||
OPTIONS
|
||||
-r, --rmdir Remove the temporary directory
|
||||
-w, --warn Print a warning in case of differences
|
||||
-h, --help Show this help text
|
||||
_EOF_
|
||||
}
|
||||
|
||||
RMDIR=0
|
||||
WARN=0
|
||||
|
||||
OPT_SHORT='rwh'
|
||||
OPT_LONG=('rmdir' 'warn' 'help')
|
||||
if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then
|
||||
exit 1
|
||||
fi
|
||||
set -- "${OPTRET[@]}"
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
-r|--rmdir)
|
||||
RMDIR=1
|
||||
;;
|
||||
-w|--warn)
|
||||
WARN=1
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
--)
|
||||
shift; break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [[ ! -f PKGBUILD ]]; then
|
||||
die 'This must be run in the directory of a built package.'
|
||||
fi
|
||||
|
||||
# shellcheck source=PKGBUILD.proto
|
||||
. ./PKGBUILD
|
||||
if [[ $arch == 'any' ]]; then
|
||||
if [[ ${arch[0]} == 'any' ]]; then
|
||||
CARCH='any'
|
||||
fi
|
||||
|
||||
STARTDIR=$(pwd)
|
||||
(( RMDIR )) && trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT
|
||||
TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX)
|
||||
|
||||
for _pkgname in "${pkgname[@]}"; do
|
||||
@@ -90,9 +144,12 @@ for _pkgname in "${pkgname[@]}"; do
|
||||
find-libprovides "$TEMPDIR/$oldpkg" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname-old"
|
||||
find-libprovides "$pkgfile" 2>/dev/null | sort > "$TEMPDIR/libraries-$_pkgname"
|
||||
if ! diff_output="$(sdiff -s "$TEMPDIR/libraries-$_pkgname-old" "$TEMPDIR/libraries-$_pkgname")"; then
|
||||
msg "Sonames differ in %s!" "$_pkgname"
|
||||
message="Sonames differ in $_pkgname!"
|
||||
(( WARN )) && warning "$message" || msg "$message"
|
||||
echo "$diff_output"
|
||||
else
|
||||
msg "No soname differences for %s" "$_pkgname."
|
||||
msg "No soname differences for %s." "$_pkgname"
|
||||
fi
|
||||
done
|
||||
|
||||
(( RMDIR )) || msg "Files saved to %s" "$TEMPDIR"
|
||||
|
@@ -12,7 +12,6 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-pkg.sh
|
||||
|
||||
get_path(){
|
||||
@@ -74,7 +73,7 @@ commit_pkg(){
|
||||
|
||||
${push} && pull_tree "${git_tree}" "$head"
|
||||
|
||||
subrepo_pull "${PACKAGE}"
|
||||
# subrepo_pull "${PACKAGE}"
|
||||
subrepo_push "${PACKAGE}"
|
||||
subrepo_clean "${PACKAGE}"
|
||||
|
||||
@@ -130,7 +129,7 @@ symlink_commit_pkg(){
|
||||
|
||||
${push} && pull_tree "${git_tree}" "$head"
|
||||
|
||||
subrepo_pull "${PACKAGE}"
|
||||
# subrepo_pull "${PACKAGE}"
|
||||
subrepo_push "${PACKAGE}"
|
||||
subrepo_clean "${PACKAGE}"
|
||||
|
||||
@@ -142,10 +141,7 @@ symlink_commit_pkg(){
|
||||
fi
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars "${XDG_CONFIG_HOME}/pacman/makepkg.conf" || load_vars "${USER_HOME}/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
REPO_SRC='trunk'
|
||||
|
@@ -12,20 +12,19 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-pkg.sh
|
||||
|
||||
compare(){
|
||||
local pkgpath="$1" group="$2"
|
||||
local pkg=${pkgpath##*/}
|
||||
local artixrepo=$(find_repo "$package" "${staging}" "${unstable}")
|
||||
local artixrepo=$(find_repo "$pkgpath" "${staging}" "${unstable}")
|
||||
local artixshow=${artixrepo%-*}
|
||||
local pkgbuild=$pkgpath/repos/$artixrepo/PKGBUILD
|
||||
|
||||
if [[ -f $pkgbuild ]];then
|
||||
|
||||
. $pkgbuild 2>/dev/null
|
||||
local artixver=$(get_full_version $pkg)
|
||||
local artixver=$(get_full_version)
|
||||
|
||||
local archpath=$(get_import_path $pkg)
|
||||
|
||||
@@ -36,7 +35,7 @@ compare(){
|
||||
|
||||
if [[ -f $pkgbuild ]];then
|
||||
. $pkgbuild 2>/dev/null
|
||||
local archver=$(get_full_version $pkg)
|
||||
local archver=$(get_full_version)
|
||||
fi
|
||||
|
||||
local result=$(vercmp "$artixver" "$archver")
|
||||
@@ -53,6 +52,10 @@ compare(){
|
||||
msg_row "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||
else
|
||||
msg_row_notify "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||
|
||||
if [[ -n "$archshow" ]]; then
|
||||
printf "%s\n" "$archshow:$artixshow:$pkg" >> ${TREE_DIR_ARTIX}/pkg_moves.list
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -62,6 +65,8 @@ compare(){
|
||||
|
||||
if [ $result -eq -1 ];then
|
||||
msg_row_upgrade "${table}" "$archshow" "$artixshow" "$pkg" "$archver" "$artixver" "${group#*-}"
|
||||
|
||||
printf "%s\n" "$archshow:$pkg" >> ${TREE_DIR_ARTIX}/pkg_upgrades.list
|
||||
fi
|
||||
|
||||
elif ${downgrades};then
|
||||
@@ -80,7 +85,7 @@ compare(){
|
||||
|
||||
is_db_entry() {
|
||||
local pkgname="$1" repo="$(arch2artix $2)"
|
||||
if [[ -d ${USERCACHEDIR}/${LINKSDBEXT}/${ARCH}/$repo/$pkgname ]];then
|
||||
if [[ -d ${USER_CACHE_DIR}/${LINKSDBEXT}/${ARCH}/$repo/$pkgname ]];then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
@@ -101,7 +106,7 @@ check_db(){
|
||||
if [[ -f $pkgbuild ]];then
|
||||
|
||||
. $pkgbuild 2>/dev/null
|
||||
local artixver=$(get_full_version $pkg)
|
||||
local artixver=$(get_full_version)
|
||||
local is_entry=false
|
||||
|
||||
for name in ${pkgname[@]};do
|
||||
@@ -110,7 +115,7 @@ check_db(){
|
||||
is_entry=true
|
||||
fi
|
||||
if ! $is_entry; then
|
||||
msg_row "${table2}" "$repo" "$name" "$artixver" "$is_entry"
|
||||
msg_row "${tableU}" "$repo" "$name" "$artixver" "$is_entry"
|
||||
fi
|
||||
done
|
||||
unset artixver is_entry pkgbuild pkgver epoch pkgname pkgbase
|
||||
@@ -122,28 +127,27 @@ check_db(){
|
||||
update_db_cache(){
|
||||
msg "Updating database cache"
|
||||
for repo in "${searchrepos[@]}"; do
|
||||
local cachedir=${USERCACHEDIR}/${LINKSDBEXT}/${ARCH}/${repo}
|
||||
local cachedir=${USER_CACHE_DIR}/${LINKSDBEXT}/${ARCH}/${repo}
|
||||
rm -rf "$cachedir"
|
||||
mkdir -p "$cachedir"
|
||||
msg2 "%s" "$repo"
|
||||
curl -s "${REPOS_MIRROR}/${repo}/os/${ARCH}/${repo}.${LINKSDBEXT}" \
|
||||
curl -L -s "${REPOS_MIRROR}/${repo}/os/${ARCH}/${repo}.${LINKSDBEXT}" \
|
||||
| bsdtar -xf - -C "$cachedir"
|
||||
done
|
||||
msg "Done"
|
||||
}
|
||||
|
||||
query_db() {
|
||||
msg_table_header "${table3}" "Repo" "Package" "Library"
|
||||
for repo in "${searchrepos[@]}"; do
|
||||
local prefix=
|
||||
local db=${USERCACHEDIR}/${LINKSDBEXT}/${ARCH}/${repo}/
|
||||
local db=${USER_CACHE_DIR}/${LINKSDBEXT}/${ARCH}/${repo}/
|
||||
if [[ -d ${db} ]]; then
|
||||
while read -rd '' pkg; do
|
||||
read -r match
|
||||
pkg=${pkg#${db}}
|
||||
pkg="${pkg%/*}"
|
||||
|
||||
msg_row "${table3}" "${repo}" "${pkg}" "${match}"
|
||||
msg_row "${tableQ}" "${repo}" "${pkg}" "${match}"
|
||||
done < <(grep -rZ "${library}" "${db}") | sort -u
|
||||
fi
|
||||
done
|
||||
@@ -154,18 +158,23 @@ show_version_table(){
|
||||
|
||||
if ${check};then
|
||||
${sync} && update_db_cache
|
||||
msg_table_header "${table2}" "Repo" "Package" "Version" "Database"
|
||||
msg_table_header "${tableU}" "Repo" "Package" "Version" "Database"
|
||||
elif ${query};then
|
||||
${sync} && update_db_cache
|
||||
msg_table_header "${tableQ}" "Repo" "Package" "Library"
|
||||
query_db
|
||||
else
|
||||
msg_table_header "${table}" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" "Group"
|
||||
fi
|
||||
|
||||
if ${move} && [[ -f ${TREE_DIR_ARTIX}/pkg_moves.list ]]; then
|
||||
rm ${TREE_DIR_ARTIX}/pkg_moves.list
|
||||
elif ${upgrades} && [[ -f ${TREE_DIR_ARTIX}/pkg_upgrades.list ]]; then
|
||||
rm ${TREE_DIR_ARTIX}/pkg_upgrades.list
|
||||
fi
|
||||
|
||||
for tree in ${TREE_NAMES_ARTIX[@]};do
|
||||
|
||||
local git=$(find ${TREE_DIR_ARTIX}/$tree/ -mindepth 1 -maxdepth 1 -type d)
|
||||
|
||||
for package in ${git[@]}; do
|
||||
if ${check};then
|
||||
check_db "$package"
|
||||
@@ -176,10 +185,7 @@ show_version_table(){
|
||||
done
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars "${XDG_CONFIG_HOME}/pacman/makepkg.conf" || load_vars "${USER_HOME}/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
unstable=false
|
||||
@@ -199,8 +205,8 @@ artix_repos=(
|
||||
)
|
||||
|
||||
readonly table="%-18s %-18s %-25s %-27s %-27s %-10s"
|
||||
readonly table2="%-20s %-35s %-30s %-10s"
|
||||
readonly table3="%-20s %-45s %s"
|
||||
readonly tableU="%-20s %-35s %-30s %-10s"
|
||||
readonly tableQ="%-20s %-45s %s"
|
||||
|
||||
searchrepos=(${artix_repos[@]})
|
||||
|
||||
|
@@ -12,9 +12,80 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
. @libdir@/artools/util-pkg.sh
|
||||
|
||||
find_cached_pkgfile() {
|
||||
local searchdirs=("$PKGDEST" "$PWD") results=()
|
||||
local pkg="$1"
|
||||
for dir in "${searchdirs[@]}"; do
|
||||
[[ -d $dir ]] || continue
|
||||
results+=$(find "$dir" -type f -name "$pkg")
|
||||
done
|
||||
case ${#results[*]} in
|
||||
0)
|
||||
return 1
|
||||
;;
|
||||
1)
|
||||
printf '%s\n' "${results[0]}"
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
error 'Multiple packages found:'
|
||||
printf '\t%s\n' "${results[@]}" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_pkgbasename(){
|
||||
local pkg="$1"
|
||||
local pkgbasename name ver rel arch
|
||||
|
||||
pkgbasename=${pkg%.pkg.tar.?z}
|
||||
arch=${pkgbasename##*-}
|
||||
pkgbasename=${pkgbasename%-"$arch"}
|
||||
|
||||
rel=${pkgbasename##*-}
|
||||
pkgbasename=${pkgbasename%-"$rel"}
|
||||
|
||||
ver=${pkgbasename##*-}
|
||||
|
||||
name=${pkgbasename%-"$ver"}
|
||||
echo $name
|
||||
}
|
||||
|
||||
update_repo2(){
|
||||
local repo="$1"
|
||||
local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=()
|
||||
|
||||
for name in ${passfiles[@]}; do
|
||||
if pkgfile=$(find_cached_pkgfile "$name");then
|
||||
info "Found: %s" "$name"
|
||||
if ${add_pkg};then
|
||||
local action='add'
|
||||
packages+=("$name")
|
||||
if ${sign_pkg};then
|
||||
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
|
||||
signfile ${pkgfile}
|
||||
fi
|
||||
ln -sf ${pkgfile}{,.sig} $repo_path/
|
||||
elif ${del_pkg};then
|
||||
local action='remove'
|
||||
packages+=("$(get_pkgbasename "$name")")
|
||||
[[ -e $repo_path/$name ]] && rm $repo_path/$name
|
||||
[[ -e $repo_path/$name.sig ]] && rm $repo_path/$name.sig
|
||||
fi
|
||||
fi
|
||||
done
|
||||
cd $repo_path
|
||||
if [[ -n $action ]]; then
|
||||
repo-$action -R $repo.${PKGDBEXT} ${packages[@]}
|
||||
${linksdb} && links-$action $repo.${LINKSDBEXT} ${packages[@]}
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
update_repo(){
|
||||
local repo="$1" pkgfile ver
|
||||
local repo_path=${REPOS_ROOT}/$repo/os/${ARCH} packages=()
|
||||
@@ -29,14 +100,13 @@ update_repo(){
|
||||
|
||||
for name in ${pkgsearch[@]}; do
|
||||
pkgarch=$(get_pkg_arch "$name")
|
||||
ver=$(get_full_version "$name")
|
||||
ver=$(get_full_version)
|
||||
if pkgfile=$(find_cached_package "$name" "$ver" "$pkgarch");then
|
||||
local pkg=${pkgfile##*/}
|
||||
info "Found: %s" "$pkg"
|
||||
if ${add_pkg};then
|
||||
local action='add'
|
||||
packages+=("$pkg")
|
||||
# checkpkg "${pkgfile}" || return 2
|
||||
if ${sign_pkg};then
|
||||
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
|
||||
signfile ${pkgfile}
|
||||
@@ -59,10 +129,7 @@ update_repo(){
|
||||
return 0
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars "${XDG_CONFIG_HOME}/pacman/makepkg.conf" || load_vars "${USER_HOME}/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
add_pkg=false
|
||||
@@ -100,6 +167,12 @@ done
|
||||
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
passfiles="$@"
|
||||
|
||||
prepare_dir "${REPOS_ROOT}"
|
||||
|
||||
update_repo "${dest_repo}"
|
||||
if [[ -n ${passfiles[@]} ]]; then
|
||||
update_repo2 "${dest_repo}"
|
||||
else
|
||||
update_repo "${dest_repo}"
|
||||
fi
|
||||
|
@@ -33,17 +33,18 @@ find . -type d -print0 2>/dev/null| while read -r -d '' d; do
|
||||
for dep in "${depends[@]}"; do
|
||||
# lose the version comparator, if any
|
||||
depname=${dep%%[<>=]*}
|
||||
[[ $depname = "$match" ]] && echo "$d (depends)"
|
||||
[[ $depname = "$match" ]] && msg "$d (depends)"
|
||||
done
|
||||
for dep in "${makedepends[@]}"; do
|
||||
# lose the version comparator, if any
|
||||
depname=${dep%%[<>=]*}
|
||||
[[ $depname = "$match" ]] && echo "$d (makedepends)"
|
||||
[[ $depname = "$match" ]] && msg "$d (makedepends)"
|
||||
done
|
||||
for dep in "${optdepends[@]/:*}"; do
|
||||
# lose the version comaparator, if any
|
||||
depname=${dep%%[<>=]*}
|
||||
[[ $depname = "$match" ]] && echo "$d (optdepends)"
|
||||
[[ $depname = "$match" ]] && msg "$d (optdepends)"
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
|
@@ -33,6 +33,7 @@ REPO_DB_PREFIX=
|
||||
REPO_DB_SUFFIX=
|
||||
LOCKFILE=
|
||||
CLEAN_LOCK=0
|
||||
# PREVENT_DOWNGRADE=0
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
|
||||
@@ -52,6 +53,7 @@ Multiple packages to add can be specified on the command line.\n"
|
||||
printf -- "\n"
|
||||
printf -- "Options:\n"
|
||||
printf -- " -n, --new only add packages that are not already in the database\n"
|
||||
# printf -- "$(gettext " -p, --prevent-downgrade do not add package to database if a newer version is already present\n")"
|
||||
elif [[ $cmd == "links-remove" ]] ; then
|
||||
printf -- "Usage: links-remove [options] <path-to-db> <packagename> ...\n"
|
||||
printf -- "\n"
|
||||
@@ -199,6 +201,18 @@ db_write_entry() {
|
||||
if (( ONLYADDNEW )); then
|
||||
return 0
|
||||
fi
|
||||
# else
|
||||
# pkgentry=$(find_pkgentry "$pkgname")
|
||||
# if [[ -n $pkgentry ]]; then
|
||||
#
|
||||
# local version=$(sed -n '/^%VERSION%$/ {n;p;q}' "$pkgentry/desc")
|
||||
# if (( $(vercmp "$version" "$pkgver") > 0 )); then
|
||||
# warning "$(gettext "A newer version for '%s' is already present in database")" "$pkgname"
|
||||
# if (( PREVENT_DOWNGRADE )); then
|
||||
# return 0
|
||||
# fi
|
||||
# fi
|
||||
# fi
|
||||
fi
|
||||
|
||||
# remove an existing entry if it exists, ignore failures
|
||||
@@ -459,6 +473,7 @@ while (( $# )); do
|
||||
-s|--sign) SIGN=1 ;;
|
||||
-k|--key) KEY=1 ; shift; GPGKEY=$1 ;;
|
||||
-v|--verify) VERIFY=1 ;;
|
||||
# -p|--prevent-downgrade) PREVENT_DOWNGRADE=1 ;;
|
||||
*) args+=("$1") ;;
|
||||
esac
|
||||
shift
|
||||
|
@@ -29,7 +29,9 @@ keepbuilddir=0
|
||||
update_first=0
|
||||
clean_first=0
|
||||
run_namcap=0
|
||||
run_checkpkg=0
|
||||
temp_chroot=0
|
||||
run_nocheck=0
|
||||
|
||||
bindmounts_ro=()
|
||||
bindmounts_rw=()
|
||||
@@ -73,6 +75,8 @@ usage() {
|
||||
echo ' Useful for maintaining multiple copies'
|
||||
echo " Default: $copy"
|
||||
echo '-n Run namcap on the package'
|
||||
echo '-C Run checkpkg on the package'
|
||||
echo '-N Disable check() function'
|
||||
echo '-T Build in a temporary directory'
|
||||
echo '-U Run makepkg as a specified user'
|
||||
exit 1
|
||||
@@ -80,37 +84,31 @@ usage() {
|
||||
|
||||
# {{{ functions
|
||||
|
||||
# Usage: sync_chroot $rootdir $copydir [$copy]
|
||||
# Usage: sync_chroot $chrootdir $copydir [$copy]
|
||||
sync_chroot() {
|
||||
local rootdir=$1
|
||||
local chrootdir=$1
|
||||
local copydir=$2
|
||||
local copy=${3:-$2}
|
||||
|
||||
if [[ "$rootdir" -ef "$copydir" ]]; then
|
||||
if [[ "$chrootdir/root" -ef "$copydir" ]]; then
|
||||
error 'Cannot sync copy with itself: %s' "$copydir"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Get a read lock on the root chroot to make
|
||||
# sure we don't clone a half-updated chroot
|
||||
slock 8 "$rootdir.lock" \
|
||||
"Locking clean chroot [%s]" "$rootdir"
|
||||
slock 8 "$chrootdir/root.lock" \
|
||||
"Locking clean chroot [%s]" "$chrootdir/root"
|
||||
|
||||
stat_busy "Synchronizing chroot copy [%s] -> [%s]" "$rootdir" "$copy"
|
||||
if is_subvolume "$rootdir" && is_same_fs "$rootdir" "$(dirname -- "$copydir")" && ! mountpoint -q "$copydir"; then
|
||||
if is_subvolume "$copydir"; then
|
||||
subvolume_delete_recursive "$copydir" ||
|
||||
die "Unable to delete subvolume %s" "$copydir"
|
||||
else
|
||||
# avoid change of filesystem in case of an umount failure
|
||||
rm --recursive --force --one-file-system "$copydir" ||
|
||||
die "Unable to delete %s" "$copydir"
|
||||
fi
|
||||
btrfs subvolume snapshot "$rootdir" "$copydir" >/dev/null ||
|
||||
stat_busy "Synchronizing chroot copy [%s] -> [%s]" "$chrootdir/root" "$copy"
|
||||
if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then
|
||||
subvolume_delete_recursive "$copydir" ||
|
||||
die "Unable to delete subvolume %s" "$copydir"
|
||||
btrfs subvolume snapshot "$chrootdir/root" "$copydir" >/dev/null ||
|
||||
die "Unable to create subvolume %s" "$copydir"
|
||||
else
|
||||
mkdir -p "$copydir"
|
||||
rsync -a --delete -q -W -x "$rootdir/" "$copydir"
|
||||
rsync -a --delete -q -W -x "$chrootdir/root/" "$copydir"
|
||||
fi
|
||||
stat_done
|
||||
|
||||
@@ -225,14 +223,8 @@ _chrootbuild() {
|
||||
sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
|
||||
ret=$?
|
||||
case $ret in
|
||||
0)
|
||||
0|14)
|
||||
return 0;;
|
||||
14)
|
||||
# whitelist "The package failed to install." but only if there are multiple split packages
|
||||
# in which case they might be conflicting
|
||||
local pkgfiles=(/pkgdest/*.pkg.tar.xz)
|
||||
(( ${#pkgfiles[@]} > 1))
|
||||
return $?;;
|
||||
*)
|
||||
return $ret;;
|
||||
esac
|
||||
@@ -255,9 +247,6 @@ download_sources() {
|
||||
env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \
|
||||
makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" ||
|
||||
die "Could not download sources."
|
||||
|
||||
# Clean up garbage from verifysource
|
||||
# rm -rf "$builddir"
|
||||
}
|
||||
|
||||
move_products() {
|
||||
@@ -293,7 +282,7 @@ move_products() {
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='hcur:I:l:nTD:d:U:'
|
||||
opts='hcur:I:l:nNCTD:d:U:'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "$arg" in
|
||||
@@ -305,6 +294,8 @@ while getopts "${opts}" arg; do
|
||||
I) install_pkgs+=("$OPTARG") ;;
|
||||
l) copy="$OPTARG" ;;
|
||||
n) run_namcap=1; makepkg_args+=(--install) ;;
|
||||
N) run_nocheck=1; makepkg_args+=(--nocheck) ;;
|
||||
C) run_checkpkg=1 ;;
|
||||
T) temp_chroot=1; copy+="-$$" ;;
|
||||
U) makepkg_user="$OPTARG" ;;
|
||||
h|*) usage ;;
|
||||
@@ -341,11 +332,15 @@ for arg in "${@:$OPTIND}"; do
|
||||
esac
|
||||
done
|
||||
|
||||
load_user_info
|
||||
if [[ -n $SUDO_USER ]]; then
|
||||
eval "USER_HOME=~$SUDO_USER"
|
||||
else
|
||||
USER_HOME=$HOME
|
||||
fi
|
||||
|
||||
umask 0022
|
||||
|
||||
load_vars "${USERCONFDIR}/pacman/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars "${XDG_CONFIG_HOME}/pacman/makepkg.conf" || load_vars "${USER_HOME}/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
# Use PKGBUILD directory if these don't exist
|
||||
@@ -358,7 +353,7 @@ load_vars /etc/makepkg.conf
|
||||
lock 9 "$copydir.lock" "Locking chroot copy [%s]" "$copy"
|
||||
|
||||
if [[ ! -d $copydir ]] || (( clean_first )); then
|
||||
sync_chroot "$chrootdir/root" "$copydir" "$copy"
|
||||
sync_chroot "$chrootdir" "$copydir" "$copy"
|
||||
fi
|
||||
|
||||
bindmounts_rw+=("${PWD}:/startdir" "${SRCDEST}:/srcdest")
|
||||
@@ -391,6 +386,11 @@ if chroot-run \
|
||||
"$copydir" \
|
||||
/chrootbuild "${makepkg_args[@]}"
|
||||
then
|
||||
pkgnames=()
|
||||
for pkgfile in "$copydir"/pkgdest/*; do
|
||||
pkgfile=${pkgfile##*/};
|
||||
pkgnames+=("${pkgfile%-*-*-*}");
|
||||
done
|
||||
move_products
|
||||
else
|
||||
(( ret += 1 ))
|
||||
@@ -405,6 +405,15 @@ if (( ret != 0 )); then
|
||||
die "Build failed, check %s/build" "$copydir"
|
||||
fi
|
||||
else
|
||||
if (( run_checkpkg )); then
|
||||
msg "Running checkpkg"
|
||||
msg2 "Downloading current versions"
|
||||
if pacman --noconfirm -Swdd --logfile /dev/null "${pkgnames[@]}"; then
|
||||
msg2 "Checking packages"
|
||||
sudo -u "$makepkg_user" checkpkg --rmdir --warn
|
||||
else
|
||||
warning "Skipped checkpkg due to missing packages"
|
||||
fi
|
||||
fi
|
||||
true
|
||||
fi
|
||||
|
||||
|
9
data/conf/artools-base.conf
Normal file
9
data/conf/artools-base.conf
Normal file
@@ -0,0 +1,9 @@
|
||||
#############################################
|
||||
################ artools-base ###############
|
||||
#############################################
|
||||
|
||||
# build dir where buildpkg or buildiso chroots are created
|
||||
# CHROOTS_DIR=/var/lib/artools
|
||||
|
||||
# the workspace directory
|
||||
# WORKSPACE_DIR="/home/${OWNER}/artools-workspace"
|
21
data/conf/artools-iso.conf
Normal file
21
data/conf/artools-iso.conf
Normal file
@@ -0,0 +1,21 @@
|
||||
#############################################
|
||||
################ artools-iso ################
|
||||
#############################################
|
||||
|
||||
# the iso storage directory
|
||||
# ISO_POOL="${WORKSPACE_DIR}/iso"
|
||||
|
||||
# the dist release; default: auto
|
||||
# ISO_VERSION=$(date +%Y%m%d)
|
||||
|
||||
# possible values: openrc, runit, s6
|
||||
# INITSYS="openrc"
|
||||
|
||||
# gpg key; leave empty or commented to skip sfs signing
|
||||
# GPG_KEY=""
|
||||
|
||||
# set upload bandwidth limit in kB/s
|
||||
# UPLIMIT=1000
|
||||
|
||||
# the server user
|
||||
# ACCOUNT=[SetUser]
|
@@ -1,13 +1,3 @@
|
||||
#############################################
|
||||
################ artools-base ###############
|
||||
#############################################
|
||||
|
||||
# build dir where buildpkg or buildiso chroots are created
|
||||
# CHROOTS_DIR=/var/lib/artools
|
||||
|
||||
# the workspace directory
|
||||
# WORKSPACE_DIR="/home/${OWNER}/artools-workspace"
|
||||
|
||||
#############################################
|
||||
################ artools-pkg ################
|
||||
#############################################
|
||||
@@ -19,16 +9,19 @@
|
||||
|
||||
# TREE_DIR_ARTIX=${WORKSPACE_DIR}/artixlinux
|
||||
|
||||
# customize buildtree, packages and community should be enabled
|
||||
# TREE_NAMES_ARTIX=(
|
||||
# packages
|
||||
# community
|
||||
# packages-kernel
|
||||
# packages-openrc
|
||||
# packages-runit
|
||||
# packages-s6
|
||||
# packages-media
|
||||
# packages-xorg
|
||||
# packages-python
|
||||
# packages-perl
|
||||
# packages-java
|
||||
# packages-qt5
|
||||
# packages-devel
|
||||
# packages-ruby
|
||||
@@ -38,6 +31,7 @@
|
||||
# packages-lxqt
|
||||
# packages-mate
|
||||
# packages-kde
|
||||
# packages-xfce
|
||||
# )
|
||||
|
||||
# HOST_TREE_ARCH=git://git.archlinux.org/svntogit
|
||||
@@ -49,25 +43,3 @@
|
||||
|
||||
# default mirror for sogrep
|
||||
# REPOS_MIRROR="http://mirror1.artixlinux.org/repos"
|
||||
|
||||
#############################################
|
||||
################ artools-iso ################
|
||||
#############################################
|
||||
|
||||
# the iso storage directory
|
||||
# ISO_POOL="${WORKSPACE_DIR}/iso"
|
||||
|
||||
# the dist release; default: auto
|
||||
# ISO_VERSION=$(date +%Y%m%d)
|
||||
|
||||
# possible values: openrc, runit (s6 not yet supported)
|
||||
# INITSYS="openrc"
|
||||
|
||||
# gpg key; leave empty or commented to skip sfs signing
|
||||
# GPG_KEY=""
|
||||
|
||||
# set upload bandwidth limit in kB/s
|
||||
# UPLIMIT=1000
|
||||
|
||||
# the server user
|
||||
# ACCOUNT=[SetUser]
|
128
lib/base/util.sh
128
lib/base/util.sh
@@ -41,139 +41,11 @@ prepare_dir(){
|
||||
[[ ! -d $1 ]] && mkdir -p $1
|
||||
}
|
||||
|
||||
get_disturl(){
|
||||
. /usr/lib/os-release
|
||||
echo "${HOME_URL}"
|
||||
}
|
||||
|
||||
get_osname(){
|
||||
. /usr/lib/os-release
|
||||
echo "${NAME}"
|
||||
}
|
||||
|
||||
init_artools_base(){
|
||||
|
||||
ARCH=$(uname -m)
|
||||
|
||||
CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'}
|
||||
|
||||
WORKSPACE_DIR=${WORKSPACE_DIR:-"/home/${OWNER}/artools-workspace"}
|
||||
|
||||
prepare_dir "${WORKSPACE_DIR}"
|
||||
}
|
||||
|
||||
init_artools_pkg(){
|
||||
|
||||
DOMAIN='artixlinux.org'
|
||||
|
||||
GIT_DOMAIN="gitea.${DOMAIN}"
|
||||
|
||||
GIT_URL="https://${GIT_DOMAIN}"
|
||||
|
||||
GIT_TOKEN=${GIT_TOKEN:-''}
|
||||
|
||||
TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"}
|
||||
|
||||
[[ -z ${TREE_NAMES_ARTIX[@]} ]] && \
|
||||
TREE_NAMES_ARTIX=(
|
||||
packages
|
||||
community
|
||||
packages-kernel
|
||||
packages-openrc
|
||||
packages-runit
|
||||
packages-xorg
|
||||
packages-python
|
||||
packages-perl
|
||||
packages-qt5
|
||||
packages-devel
|
||||
packages-ruby
|
||||
packages-gtk
|
||||
packages-gnome
|
||||
packages-cinnamon
|
||||
packages-lxqt
|
||||
packages-mate
|
||||
packages-kde
|
||||
)
|
||||
|
||||
HOST_TREE_ARTIX=${HOST_TREE_ARTIX:-"gitea@${GIT_DOMAIN}:artixlinux"}
|
||||
|
||||
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
|
||||
|
||||
TREE_NAMES_ARCH=(packages community)
|
||||
|
||||
HOST_TREE_ARCH=${HOST_TREE_ARCH:-'git://git.archlinux.org/svntogit'}
|
||||
|
||||
CHROOTS_PKG="${CHROOTS_DIR}/buildpkg"
|
||||
|
||||
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
|
||||
|
||||
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
|
||||
|
||||
DBEXT=${DBEXT:-'xz'}
|
||||
|
||||
LINKSDBEXT=${LINKSDBEXT:-"links.tar.${DBEXT}"}
|
||||
|
||||
PKGDBEXT=${PKGDBEXT:-"db.tar.${DBEXT}"}
|
||||
}
|
||||
|
||||
init_artools_iso(){
|
||||
CHROOTS_ISO="${CHROOTS_DIR}/buildiso"
|
||||
|
||||
ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"}
|
||||
|
||||
prepare_dir "${ISO_POOL}"
|
||||
|
||||
PROFILE='base'
|
||||
|
||||
ISO_VERSION=${ISO_VERSION:-"$(date +%Y%m%d)"}
|
||||
|
||||
INITSYS=${INITSYS:-'openrc'}
|
||||
|
||||
GPG_KEY=${GPG_KEY:-''}
|
||||
|
||||
UPLIMIT=${UPLIMIT:-1000}
|
||||
|
||||
FILE_HOST="download.${DOMAIN}"
|
||||
|
||||
FILE_HOME=${FILE_HOME:-'/srv/iso'}
|
||||
|
||||
FILE_PORT=${FILE_PORT:-65432}
|
||||
|
||||
ACCOUNT=${ACCOUNT:-'naughtyISOuploader'}
|
||||
}
|
||||
|
||||
load_config(){
|
||||
|
||||
local conf="$1"
|
||||
|
||||
[[ -f "$conf" ]] || return 1
|
||||
|
||||
[[ -r "$conf" ]] && . "$conf"
|
||||
|
||||
init_artools_base
|
||||
|
||||
init_artools_pkg
|
||||
|
||||
init_artools_iso
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
load_user_info(){
|
||||
OWNER=${SUDO_USER:-$USER}
|
||||
|
||||
if [[ -n $SUDO_USER ]]; then
|
||||
eval "USER_HOME=~$SUDO_USER"
|
||||
else
|
||||
USER_HOME=$HOME
|
||||
fi
|
||||
|
||||
USERCONFDIR="${XDG_CONFIG_HOME:-$USER_HOME/.config}"
|
||||
prepare_dir "${USERCONFDIR}"
|
||||
|
||||
USERCACHEDIR="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
|
||||
}
|
||||
|
||||
# orig_argv=("$0" "$@")
|
||||
check_root() {
|
||||
local keepenv=$1
|
||||
|
@@ -12,20 +12,36 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
add_svc_rc(){
|
||||
local mnt="$1" name="$2" rlvl="$3"
|
||||
if [[ -f $mnt/etc/init.d/$name ]];then
|
||||
msg2 "Setting %s ..." "$name"
|
||||
chroot $mnt rc-update add $name $rlvl &>/dev/null
|
||||
fi
|
||||
add_svc_openrc(){
|
||||
local mnt="$1" names="$2" rlvl="${3:-default}"
|
||||
for svc in $names; do
|
||||
if [[ -f $mnt/etc/init.d/$svc ]];then
|
||||
msg2 "Setting %s ..." "$svc"
|
||||
[[ $svc == "xdm" ]] && set_xdm "$mnt"
|
||||
chroot $mnt rc-update add $svc $rlvl &>/dev/null
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
add_svc_runit(){
|
||||
local mnt="$1" name="$2"
|
||||
if [[ -d $mnt/etc/runit/sv/$name ]]; then
|
||||
msg2 "Setting %s ..." "$name"
|
||||
chroot $mnt ln -s /etc/runit/sv/$name /etc/runit/runsvdir/default &>/dev/null
|
||||
fi
|
||||
local mnt="$1" names="$2" rlvl="${3:-default}"
|
||||
for svc in $names; do
|
||||
if [[ -d $mnt/etc/runit/sv/$svc ]]; then
|
||||
msg2 "Setting %s ..." "$svc"
|
||||
chroot $mnt ln -s /etc/runit/sv/$svc /etc/runit/runsvdir/$rlvl &>/dev/null
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
add_svc_s6(){
|
||||
local mnt="$1" names="$2" valid="" rlvl="${3:-default}"
|
||||
for svc in $names; do
|
||||
if [[ -d $mnt/etc/s6/sv/$svc ]]; then
|
||||
msg2 "Setting %s ..." "$svc"
|
||||
valid=${valid:-}${valid:+' '}${svc}
|
||||
fi
|
||||
done
|
||||
chroot $mnt s6-rc-bundle -c /etc/s6/rc/compiled add $rlvl $valid
|
||||
}
|
||||
|
||||
set_xdm(){
|
||||
@@ -51,42 +67,19 @@ configure_logind(){
|
||||
|
||||
configure_services(){
|
||||
local mnt="$1"
|
||||
info "Configuring [%s]" "${INITSYS}"
|
||||
case ${INITSYS} in
|
||||
'openrc')
|
||||
for svc in ${SERVICES[@]}; do
|
||||
[[ $svc == "xdm" ]] && set_xdm "$mnt"
|
||||
add_svc_rc "$mnt" "$svc" "default"
|
||||
done
|
||||
for svc in ${SERVICES_LIVE[@]}; do
|
||||
add_svc_rc "$mnt" "$svc" "default"
|
||||
done
|
||||
;;
|
||||
'runit')
|
||||
for svc in ${SERVICES[@]}; do
|
||||
add_svc_runit "$mnt" "$svc"
|
||||
done
|
||||
for svc in ${SERVICES_LIVE[@]}; do
|
||||
add_svc_runit "$mnt" "$svc"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
info "Done configuring [%s]" "${INITSYS}"
|
||||
info "Configuring [%s] services" "${INITSYS}"
|
||||
add_svc_${INITSYS} "$mnt" "${SERVICES[*]} ${SERVICES_LIVE[*]}"
|
||||
info "Done configuring [%s] services" "${INITSYS}"
|
||||
}
|
||||
|
||||
configure_system(){
|
||||
local mnt="$1"
|
||||
case ${INITSYS} in
|
||||
'openrc' | 'runit')
|
||||
configure_logind "$mnt" "elogind"
|
||||
;;
|
||||
esac
|
||||
configure_logind "$mnt" "elogind"
|
||||
echo ${HOST_NAME} > $mnt/etc/hostname
|
||||
}
|
||||
|
||||
write_users_conf(){
|
||||
local yaml=$(write_yaml_header)
|
||||
yaml+=$(write_empty_line)
|
||||
yaml+=$(write_yaml_map 0 'defaultGroups')
|
||||
local IFS=','
|
||||
for g in ${ADDGROUPS[@]};do
|
||||
@@ -108,41 +101,40 @@ write_users_conf(){
|
||||
printf '%s' "${yaml}"
|
||||
}
|
||||
|
||||
write_servicescfg_conf(){
|
||||
write_services_conf(){
|
||||
local key1="$1" val1="$2" key2="$3" val2="$4"
|
||||
local yaml=$(write_yaml_header)
|
||||
yaml+=$(write_empty_line)
|
||||
case "${INITSYS}" in
|
||||
'runit')
|
||||
yaml+=$(write_yaml_map 0 'svDir' '/etc/runit/sv')
|
||||
yaml+=$(write_yaml_map 0 'runsvDir' '/etc/runit/runsvdir')
|
||||
yaml+=$(write_yaml_map 0 'services')
|
||||
yaml+=$(write_yaml_map 2 'enabled')
|
||||
for svc in ${SERVICES[@]};do
|
||||
yaml+=$(write_yaml_seq_map 4 'name' "$svc")
|
||||
yaml+=$(write_yaml_map 6 'runlevel' 'default')
|
||||
done
|
||||
;;
|
||||
'openrc')
|
||||
yaml+=$(write_yaml_map 0 'initdDir' '/etc/init.d')
|
||||
yaml+=$(write_yaml_map 0 'runlevelsDir' '/etc/runlevels')
|
||||
yaml+=$(write_yaml_map 0 'services')
|
||||
for svc in ${SERVICES[@]};do
|
||||
yaml+=$(write_yaml_seq_map 2 'name' "$svc")
|
||||
yaml+=$(write_yaml_map 4 'runlevel' 'default')
|
||||
done
|
||||
;;
|
||||
esac
|
||||
yaml+=$(write_yaml_map 0 "$key1" "$val1")
|
||||
yaml+=$(write_yaml_map 0 "$key2" "$val2")
|
||||
yaml+=$(write_yaml_map 0 'services')
|
||||
for svc in ${SERVICES[@]};do
|
||||
yaml+=$(write_yaml_seq 2 "$svc")
|
||||
done
|
||||
yaml+=$(write_empty_line)
|
||||
printf '%s' "${yaml}"
|
||||
}
|
||||
|
||||
write_unpackfs_conf(){
|
||||
write_services_openrc_conf(){
|
||||
local conf="$1"/services-openrc.conf
|
||||
write_services_conf 'initdDir' '/etc/init.d' 'runlevelsDir' '/etc/runlevels' > "$conf"
|
||||
}
|
||||
|
||||
write_services_runit_conf(){
|
||||
local conf="$1"/services-runit.conf
|
||||
write_services_conf 'svDir' '/etc/runit/sv' 'runsvDir' '/etc/runit/runsvdir' > "$conf"
|
||||
}
|
||||
|
||||
write_services_s6_conf(){
|
||||
local conf="$1"/services-s6.conf
|
||||
write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$conf"
|
||||
}
|
||||
|
||||
write_postcfg(){
|
||||
local yaml=$(write_yaml_header)
|
||||
yaml+=$(write_empty_line)
|
||||
yaml+=$(write_yaml_map 0 'unpack')
|
||||
yaml+=$(write_yaml_seq_map 2 'source' "/run/artix/bootmnt/artix/x86_64/rootfs.sfs")
|
||||
yaml+=$(write_yaml_map 4 'sourcefs' 'squashfs')
|
||||
yaml+=$(write_yaml_map 4 'destination' '')
|
||||
yaml+=$(write_yaml_map 0 'keyrings')
|
||||
for k in archlinux artix;do
|
||||
yaml+=$(write_yaml_seq 2 "$k")
|
||||
done
|
||||
yaml+=$(write_empty_line)
|
||||
printf '%s' "${yaml}"
|
||||
}
|
||||
@@ -152,21 +144,22 @@ configure_calamares(){
|
||||
if [[ -d "$mods" ]];then
|
||||
msg2 "Configuring Calamares"
|
||||
write_users_conf > "$mods"/users.conf
|
||||
write_servicescfg_conf > "$mods"/services-"${INITSYS}".conf
|
||||
write_unpackfs_conf > "$mods"/unpackfs.conf
|
||||
sed -e "s|openrc|${INITSYS}|" -i "$mods"/postcfg.conf
|
||||
sed -e "s|services-openrc|services-${INITSYS}|" -i "$1"/etc/calamares/settings.conf
|
||||
write_services_"${INITSYS}"_conf "$mods"
|
||||
write_postcfg > "$mods"/postcfg.conf
|
||||
sed -e "s|services-openrc|services-${INITSYS}|" \
|
||||
-i "$1"/etc/calamares/settings.conf
|
||||
fi
|
||||
}
|
||||
|
||||
configure_live_image(){
|
||||
configure_image(){
|
||||
local fs="$1"
|
||||
msg "Configuring [livefs]"
|
||||
msg "Configuring [%s]" "${fs##*/}"
|
||||
configure_hosts "$fs"
|
||||
configure_system "$fs"
|
||||
configure_services "$fs"
|
||||
configure_calamares "$fs"
|
||||
[[ ! -d "$fs/etc/artools" ]] && mkdir -p "$fs/etc/artools"
|
||||
msg2 "Writing live.conf"
|
||||
write_live_session_conf > "$fs/etc/artools/live.conf"
|
||||
msg "Done configuring [livefs]"
|
||||
msg "Done configuring [%s]" "${fs##*/}"
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ prepare_initramfs(){
|
||||
su ${OWNER} -c "gpg --export ${GPG_KEY} >/tmp/GPG_KEY"
|
||||
exec 17<>/tmp/GPG_KEY
|
||||
fi
|
||||
local _kernel=$(cat $mnt/usr/lib/modules/*/version)
|
||||
local _kernel=$(<$mnt/usr/src/linux/version)
|
||||
ARTIX_GNUPG_FD=${GPG_KEY:+17} artools-chroot $mnt \
|
||||
/usr/bin/mkinitcpio -k ${_kernel} \
|
||||
-c /etc/mkinitcpio-artix.conf \
|
||||
@@ -59,14 +59,13 @@ prepare_boot_extras(){
|
||||
}
|
||||
|
||||
configure_grub(){
|
||||
local conf="$1/boot/grub/kernels.cfg"
|
||||
sed -e "s|@iso_label@|${iso_label}|" -i $conf
|
||||
sed -e "s|@iso_label@|${iso_label}|" -i ${iso_root}/boot/grub/kernels.cfg
|
||||
}
|
||||
|
||||
prepare_grub(){
|
||||
local platform=i386-pc img='core.img' prefix=/boot/grub
|
||||
local lib=$1/usr/lib/grub theme=$2/usr/share/grub
|
||||
local grub=$3/boot/grub efi=$3/efi/boot
|
||||
local grub=${iso_root}/boot/grub efi=${iso_root}/efi/boot
|
||||
|
||||
prepare_dir ${grub}/${platform}
|
||||
|
||||
@@ -104,7 +103,7 @@ prepare_grub(){
|
||||
grub-mkfont -o ${grub}/unicode.pf2 /usr/share/fonts/misc/unifont.bdf
|
||||
fi
|
||||
|
||||
local size=4M mnt="${mnt_dir}/efiboot" efi_img="$3/efi.img"
|
||||
local size=4M mnt="${mnt_dir}/efiboot" efi_img="${iso_root}/efi.img"
|
||||
msg2 "Creating fat image of %s ..." "${size}"
|
||||
truncate -s ${size} "${efi_img}"
|
||||
mkfs.fat -n ARTIX_EFI "${efi_img}" &>/dev/null
|
||||
|
@@ -97,16 +97,23 @@ make_sfs() {
|
||||
show_elapsed_time "${FUNCNAME}" "${timer_start}"
|
||||
}
|
||||
|
||||
get_disturl(){
|
||||
. /usr/lib/os-release
|
||||
echo "${HOME_URL}"
|
||||
}
|
||||
|
||||
assemble_iso(){
|
||||
msg "Creating ISO image..."
|
||||
local mod_date=$(date -u +%Y-%m-%d-%H-%M-%S-00 | sed -e s/-//g)
|
||||
local appid="$(get_osname) Live/Rescue CD"
|
||||
local publisher="$(get_osname) <$(get_disturl)>"
|
||||
|
||||
xorriso -as mkisofs \
|
||||
--modification-date=${mod_date} \
|
||||
--protective-msdos-label \
|
||||
-volid "${iso_label}" \
|
||||
-appid "$(get_osname) Live/Rescue CD" \
|
||||
-publisher "$(get_osname) <$(get_disturl)>" \
|
||||
-appid "${appid}" \
|
||||
-publisher "${publisher}" \
|
||||
-preparer "Prepared by artools/${0##*/}" \
|
||||
-r -graft-points -no-pad \
|
||||
--sort-weight 0 / \
|
||||
|
@@ -44,7 +44,10 @@ mount_overlay(){
|
||||
mkdir -p "$upper"
|
||||
case $upper in
|
||||
*/livefs) lower="$work/rootfs" ;;
|
||||
*/bootfs) lower="$work/livefs":"$work/rootfs" ;;
|
||||
*/bootfs)
|
||||
lower="$work/rootfs"
|
||||
[[ -d "$work/livefs" ]] && lower="$work/livefs":"$work/rootfs"
|
||||
;;
|
||||
esac
|
||||
track_fs -t overlay overlay -olowerdir="$lower",upperdir="$upper",workdir="${mnt_dir}/work" "$upper"
|
||||
}
|
||||
|
@@ -12,21 +12,6 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
init_profile(){
|
||||
local profdir="$1" prof="$2"
|
||||
|
||||
ROOT_LIST="$profdir/base/Packages-Root"
|
||||
ROOT_OVERLAY="$profdir/base/root-overlay"
|
||||
LIVE_LIST="$profdir/base/Packages-Live"
|
||||
LIVE_OVERLAY="$profdir/base/live-overlay"
|
||||
|
||||
[[ -f "$profdir/$prof/Packages-Root" ]] && ROOT_LIST="$profdir/$prof/Packages-Root"
|
||||
[[ -d "$profdir/$prof/root-overlay" ]] && ROOT_OVERLAY="$profdir/$prof/root-overlay"
|
||||
|
||||
[[ -f "$profdir/$prof/Packages-Live" ]] && LIVE_LIST="$profdir/$prof/Packages-Live"
|
||||
[[ -d "$profdir/$prof/live-overlay" ]] && LIVE_OVERLAY="$profdir/$prof/live-overlay"
|
||||
}
|
||||
|
||||
show_profile(){
|
||||
msg2 "iso_file: %s" "${iso_file}"
|
||||
msg2 "AUTOLOGIN: %s" "${AUTOLOGIN}"
|
||||
@@ -39,15 +24,18 @@ show_profile(){
|
||||
}
|
||||
|
||||
load_profile(){
|
||||
local prof="$1"
|
||||
local profdir="${DATADIR}/iso-profiles"
|
||||
[[ -d ${WORKSPACE_DIR}/iso-profiles ]] && profdir=${WORKSPACE_DIR}/iso-profiles
|
||||
local profile_dir="${DATADIR}/iso-profiles"
|
||||
[[ -d ${WORKSPACE_DIR}/iso-profiles ]] && profile_dir=${WORKSPACE_DIR}/iso-profiles
|
||||
|
||||
init_profile "$profdir" "$prof"
|
||||
ROOT_LIST="$profile_dir/${PROFILE}/Packages-Root"
|
||||
ROOT_OVERLAY="$profile_dir/${PROFILE}/root-overlay"
|
||||
|
||||
[[ -f $profdir/$prof/profile.conf ]] || return 1
|
||||
[[ -f "$profile_dir/${PROFILE}/Packages-Live" ]] && LIVE_LIST="$profile_dir/${PROFILE}/Packages-Live"
|
||||
[[ -d "$profile_dir/${PROFILE}/live-overlay" ]] && LIVE_OVERLAY="$profile_dir/${PROFILE}/live-overlay"
|
||||
|
||||
[[ -r $profdir/$prof/profile.conf ]] && . $profdir/$prof/profile.conf
|
||||
[[ -f $profile_dir/${PROFILE}/profile.conf ]] || return 1
|
||||
|
||||
[[ -r $profile_dir/${PROFILE}/profile.conf ]] && . $profile_dir/${PROFILE}/profile.conf
|
||||
|
||||
DISPLAYMANAGER=${DISPLAYMANAGER:-'none'}
|
||||
|
||||
@@ -63,25 +51,22 @@ load_profile(){
|
||||
ADDGROUPS=${ADDGROUPS:-"video,power,optical,network,lp,scanner,wheel,users,log"}
|
||||
|
||||
if [[ -z ${SERVICES[@]} ]];then
|
||||
SERVICES=('acpid' 'bluetooth' 'cronie' 'cupsd' 'syslog-ng' 'NetworkManager')
|
||||
SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand')
|
||||
fi
|
||||
|
||||
if [[ ${DISPLAYMANAGER} != "none" ]];then
|
||||
case "${INITSYS}" in
|
||||
'openrc') SERVICES+=('xdm') ;;
|
||||
'runit') SERVICES+=("${DISPLAYMANAGER}") ;;
|
||||
'runit'|'s6') SERVICES+=("${DISPLAYMANAGER}") ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [[ -z ${SERVICES_LIVE[@]} ]];then
|
||||
SERVICES_LIVE=('artix-live' 'pacman-init')
|
||||
fi
|
||||
SERVICES_LIVE=('artix-live' 'pacman-init')
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
write_live_session_conf(){
|
||||
msg2 "Writing live.conf"
|
||||
local conf=''
|
||||
conf+=$(printf '%s\n' '# live session configuration')
|
||||
conf+=$(printf "\nAUTOLOGIN=%s\n" "${AUTOLOGIN}")
|
||||
@@ -97,7 +82,7 @@ load_pkgs(){
|
||||
|
||||
local _init="s|@$init||g"
|
||||
case "$init" in
|
||||
'openrc') _init_rm1="s|@runit.*||g"; _init_rm2="s|@s6*||g" ;;
|
||||
'openrc') _init_rm1="s|@runit.*||g"; _init_rm2="s|@s6.*||g" ;;
|
||||
's6') _init_rm1="s|@runit.*||g"; _init_rm2="s|@openrc.*||g" ;;
|
||||
'runit') _init_rm1="s|@s6.*||g"; _init_rm2="s|@openrc.*||g" ;;
|
||||
esac
|
||||
|
@@ -13,9 +13,6 @@
|
||||
# GNU General Public License for more details.
|
||||
|
||||
error_function() {
|
||||
if [[ -p $logpipe ]]; then
|
||||
rm "$logpipe"
|
||||
fi
|
||||
local func="$1"
|
||||
# first exit all subshells, then print the error
|
||||
if (( ! BASH_SUBSHELL )); then
|
||||
@@ -134,6 +131,8 @@ make_rootfs() {
|
||||
|
||||
copy_overlay "${ROOT_OVERLAY}" "${rootfs}"
|
||||
|
||||
[[ -z ${LIVE_LIST} ]] && configure_image "${rootfs}"
|
||||
|
||||
clean_up_image "${rootfs}"
|
||||
|
||||
: > ${work_dir}/rootfs.lock
|
||||
@@ -155,7 +154,7 @@ make_livefs() {
|
||||
|
||||
copy_overlay "${LIVE_OVERLAY}" "${livefs}"
|
||||
|
||||
configure_live_image "${livefs}"
|
||||
configure_image "${livefs}"
|
||||
|
||||
umount_overlay
|
||||
|
||||
@@ -198,9 +197,12 @@ make_grub(){
|
||||
if [[ ! -e ${work_dir}/grub.lock ]]; then
|
||||
msg "Prepare [/iso/boot/grub]"
|
||||
|
||||
prepare_grub "${work_dir}/rootfs" "${work_dir}/livefs" "${iso_root}"
|
||||
local layer=${work_dir}/rootfs
|
||||
[[ -n ${LIVE_LIST} ]] && layer=${work_dir}/livefs
|
||||
|
||||
configure_grub "${iso_root}"
|
||||
prepare_grub "${work_dir}/rootfs" "$layer"
|
||||
|
||||
configure_grub
|
||||
|
||||
: > ${work_dir}/grub.lock
|
||||
msg "Done [/iso/boot/grub]"
|
||||
@@ -218,7 +220,7 @@ prepare_images(){
|
||||
local timer=$(get_timer)
|
||||
load_pkgs "${ROOT_LIST}" "${INITSYS}"
|
||||
run_safe "make_rootfs"
|
||||
if [[ -f ${LIVE_LIST} ]]; then
|
||||
if [[ -n ${LIVE_LIST} ]]; then
|
||||
load_pkgs "${LIVE_LIST}" "${INITSYS}"
|
||||
run_safe "make_livefs"
|
||||
fi
|
||||
|
@@ -54,9 +54,10 @@ load_team_id(){
|
||||
add_repo_to_team(){
|
||||
local pkg="$1" org="$2" team="$3"
|
||||
local id=$(load_team_id "$org" "$team")
|
||||
local gitname=$(get_compliant_name "$pkg")
|
||||
|
||||
msg2 "Adding package repo [%s] to team (%s)" "$pkg" "$team"
|
||||
msg2 "Adding package repo [%s] to team (%s)" "$gitname" "$team"
|
||||
|
||||
curl -s -X PUT "${GIT_URL}/api/v1/teams/$id/repos/$org/$pkg?access_token=${GIT_TOKEN}" \
|
||||
curl -s -X PUT "${GIT_URL}/api/v1/teams/$id/repos/$org/$gitname?access_token=${GIT_TOKEN}" \
|
||||
-H "accept: application/json"
|
||||
}
|
||||
|
@@ -81,7 +81,7 @@ pull_tree(){
|
||||
local remote_head=$(get_remote_head)
|
||||
|
||||
msg "Checking %s (%s)" "${tree}" "$os"
|
||||
if $(has_changes "${local_head}" "${remote_head}");then
|
||||
if has_changes "${local_head}" "${remote_head}";then
|
||||
git pull origin master
|
||||
fi
|
||||
}
|
||||
@@ -139,22 +139,3 @@ config_tree(){
|
||||
fi
|
||||
cd ..
|
||||
}
|
||||
|
||||
subrepo_new(){
|
||||
local pkg="$1" tree="$2" team="${3:-$2}"
|
||||
local dest=${TREE_DIR_ARTIX}/$tree/$pkg/trunk
|
||||
|
||||
cd ${TREE_DIR_ARTIX}/$tree
|
||||
|
||||
local org=$(get_pkg_org "$pkg")
|
||||
|
||||
create_repo "$pkg" "$org"
|
||||
|
||||
add_repo_to_team "$pkg" "$org" "$team"
|
||||
|
||||
subrepo_clone "$pkg" "$org"
|
||||
|
||||
prepare_dir "$dest"
|
||||
|
||||
commit_jenkins_files "$pkg"
|
||||
}
|
||||
|
@@ -20,55 +20,6 @@ get_compliant_name(){
|
||||
echo $gitname
|
||||
}
|
||||
|
||||
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/trunk/PKGBUILD
|
||||
;;
|
||||
'tp_smapi'|'acpi_call'|'r8168'|'bbswitch'|'broadcom-wl')
|
||||
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
|
||||
;;
|
||||
'nvidia')
|
||||
sed -e 's|-ARCH|-ARTIX|g' -e 's|for Arch kernel|for Artix kernel|g' \
|
||||
-e 's|for LTS Arch kernel|for LTS Artix kernel|g' \
|
||||
-i $pkg/trunk/PKGBUILD
|
||||
;;
|
||||
'linux')
|
||||
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
|
||||
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
|
||||
-e 's|CONFIG_CRYPTO_SPECK=.*|CONFIG_CRYPTO_SPECK=n|' \
|
||||
-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
|
||||
;;
|
||||
'bash')
|
||||
sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \
|
||||
-e "s|etc/bash.|etc/bash/|g" \
|
||||
-e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \
|
||||
-i $pkg/trunk/PKGBUILD
|
||||
|
||||
|
||||
cd $pkg/trunk
|
||||
patch -Np 1 -i ${DATADIR}/patches/artix-bash.patch
|
||||
updpkgsums
|
||||
cd ../..
|
||||
;;
|
||||
gstreamer|gst-plugins-*)
|
||||
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
|
||||
-e 's|(Arch Linux)|(Artix Linux)|' \
|
||||
-i $pkg/trunk/PKGBUILD
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
arch2artix(){
|
||||
local repo="$1" artix=none
|
||||
case "$repo" in
|
||||
@@ -109,7 +60,7 @@ find_repo(){
|
||||
local pkg="$1" stag="$2" unst="$3" repo=
|
||||
|
||||
for r in $(arch_repos "$stag" "$unst");do
|
||||
[[ -f $pkg/repos/$r-x86_64/PKGBUILD ]] && repo=$r-x86_64
|
||||
[[ -f $pkg/repos/$r-${ARCH}/PKGBUILD ]] && repo=$r-${ARCH}
|
||||
[[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=$r-any
|
||||
done
|
||||
echo $repo
|
||||
@@ -149,16 +100,20 @@ get_artix_tree(){
|
||||
$(get_cases ruby)) tree=packages-ruby ;;
|
||||
$(get_cases openrc)) tree=packages-openrc ;;
|
||||
$(get_cases runit)) tree=packages-runit ;;
|
||||
$(get_cases s6)) tree=packages-s6 ;;
|
||||
$(get_cases media)) tree=packages-media ;;
|
||||
$(get_cases xorg)) tree=packages-xorg ;;
|
||||
$(get_cases qt5)) tree=packages-qt5 ;;
|
||||
$(get_cases gtk)) tree=packages-gtk ;;
|
||||
$(get_cases java)) tree=packages-java ;;
|
||||
$(get_cases haskell)) tree=packages-haskell ;;
|
||||
$(get_cases devel)) tree=packages-devel ;;
|
||||
$(get_cases lxqt)) tree=packages-lxqt ;;
|
||||
$(get_cases cinnamon)) tree=packages-cinnamon ;;
|
||||
$(get_cases kde)) tree=packages-kde ;;
|
||||
$(get_cases gnome)) tree=packages-gnome ;;
|
||||
$(get_cases mate)) tree=packages-mate ;;
|
||||
$(get_cases xfce)) tree=packages-xfce ;;
|
||||
*) tree=$artix_tree
|
||||
esac"
|
||||
echo $tree
|
||||
|
@@ -23,3 +23,45 @@ SYSCONFDIR=${SYSCONFDIR:-'@sysconfdir@/artools'}
|
||||
for baselib in ${LIBDIR}/base/*.sh; do
|
||||
. $baselib
|
||||
done
|
||||
|
||||
load_user_info(){
|
||||
OWNER=${SUDO_USER:-$USER}
|
||||
|
||||
if [[ -n $SUDO_USER ]]; then
|
||||
eval "USER_HOME=~$SUDO_USER"
|
||||
else
|
||||
USER_HOME=$HOME
|
||||
fi
|
||||
|
||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$USER_HOME/.config}"
|
||||
|
||||
USER_CONF_DIR="${XDG_CONFIG_HOME}/artools"
|
||||
|
||||
prepare_dir "${USER_CONF_DIR}"
|
||||
|
||||
USER_CACHE_DIR="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools"
|
||||
}
|
||||
|
||||
load_base_config(){
|
||||
|
||||
local conf="$1/artools-base.conf"
|
||||
|
||||
[[ -f "$conf" ]] || return 1
|
||||
|
||||
[[ -r "$conf" ]] && . "$conf"
|
||||
|
||||
|
||||
ARCH=$(uname -m)
|
||||
|
||||
CHROOTS_DIR=${CHROOTS_DIR:-'/var/lib/artools'}
|
||||
|
||||
WORKSPACE_DIR=${WORKSPACE_DIR:-"/home/${OWNER}/artools-workspace"}
|
||||
|
||||
prepare_dir "${WORKSPACE_DIR}"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_base_config "${USER_CONF_DIR}" || load_base_config "${SYSCONFDIR}"
|
||||
|
@@ -12,6 +12,45 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
|
||||
for isolib in ${LIBDIR}/iso/*.sh; do
|
||||
. $isolib
|
||||
done
|
||||
|
||||
load_iso_config(){
|
||||
|
||||
local conf="$1/artools-iso.conf"
|
||||
|
||||
[[ -f "$conf" ]] || return 1
|
||||
|
||||
[[ -r "$conf" ]] && . "$conf"
|
||||
|
||||
CHROOTS_ISO="${CHROOTS_DIR}/buildiso"
|
||||
|
||||
ISO_POOL=${ISO_POOL:-"${WORKSPACE_DIR}/iso"}
|
||||
|
||||
prepare_dir "${ISO_POOL}"
|
||||
|
||||
PROFILE='base'
|
||||
|
||||
ISO_VERSION=${ISO_VERSION:-"$(date +%Y%m%d)"}
|
||||
|
||||
INITSYS=${INITSYS:-'openrc'}
|
||||
|
||||
GPG_KEY=${GPG_KEY:-''}
|
||||
|
||||
UPLIMIT=${UPLIMIT:-1000}
|
||||
|
||||
FILE_HOST="download.${DOMAIN}"
|
||||
|
||||
FILE_HOME=${FILE_HOME:-'/srv/iso'}
|
||||
|
||||
FILE_PORT=${FILE_PORT:-65432}
|
||||
|
||||
ACCOUNT=${ACCOUNT:-'naughtyISOuploader'}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
load_iso_config "${USER_CONF_DIR}" || load_iso_config "${SYSCONFDIR}"
|
||||
|
@@ -12,6 +12,75 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
. @libdir@/artools/util-base.sh
|
||||
|
||||
for pkglib in ${LIBDIR}/pkg/*.sh; do
|
||||
. $pkglib
|
||||
done
|
||||
|
||||
load_pkg_config(){
|
||||
|
||||
local conf="$1/artools-pkg.conf"
|
||||
|
||||
[[ -f "$conf" ]] || return 1
|
||||
|
||||
[[ -r "$conf" ]] && . "$conf"
|
||||
|
||||
DOMAIN='artixlinux.org'
|
||||
|
||||
GIT_DOMAIN="gitea.${DOMAIN}"
|
||||
|
||||
GIT_URL="https://${GIT_DOMAIN}"
|
||||
|
||||
GIT_TOKEN=${GIT_TOKEN:-''}
|
||||
|
||||
TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"}
|
||||
|
||||
[[ -z ${TREE_NAMES_ARTIX[@]} ]] && \
|
||||
TREE_NAMES_ARTIX=(
|
||||
packages
|
||||
community
|
||||
packages-kernel
|
||||
packages-openrc
|
||||
packages-runit
|
||||
packages-xorg
|
||||
packages-python
|
||||
packages-perl
|
||||
packages-java
|
||||
packages-qt5
|
||||
packages-devel
|
||||
packages-ruby
|
||||
packages-gtk
|
||||
packages-gnome
|
||||
packages-cinnamon
|
||||
packages-lxqt
|
||||
packages-mate
|
||||
packages-kde
|
||||
packages-xfce
|
||||
# packages-haskell
|
||||
)
|
||||
|
||||
HOST_TREE_ARTIX=${HOST_TREE_ARTIX:-"gitea@${GIT_DOMAIN}:artixlinux"}
|
||||
|
||||
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}
|
||||
|
||||
TREE_NAMES_ARCH=(packages community)
|
||||
|
||||
HOST_TREE_ARCH=${HOST_TREE_ARCH:-'git://git.archlinux.org/svntogit'}
|
||||
|
||||
CHROOTS_PKG="${CHROOTS_DIR}/buildpkg"
|
||||
|
||||
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
|
||||
|
||||
REPOS_MIRROR=${REPOS_MIRROR:-'http://mirror1.artixlinux.org/repos'}
|
||||
|
||||
DBEXT=${DBEXT:-'xz'}
|
||||
|
||||
LINKSDBEXT=${LINKSDBEXT:-"links.tar.${DBEXT}"}
|
||||
|
||||
PKGDBEXT=${PKGDBEXT:-"db.tar.${DBEXT}"}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
load_pkg_config "${USER_CONF_DIR}" || load_pkg_config "${SYSCONFDIR}"
|
||||
|
Reference in New Issue
Block a user