Compare commits

...

24 Commits
0.15.5 ... 0.16

Author SHA1 Message Date
ee55448fe0 buildtree: update patch_pkg() 2019-11-05 21:36:40 +01:00
b3415307b1 buildiso: drop empty yaml lines 2019-11-05 18:32:53 +01:00
2516fccc3b comparepkg: delete list on rerun 2019-11-05 18:23:15 +01:00
45ecb59ffd Makefile: 0.16 2019-11-05 01:03:37 +01:00
11fff303f9 readme: update 2019-11-05 01:00:20 +01:00
b05d1c999f buildiso: write cal postcfg 2019-11-05 00:56:55 +01:00
1572c94389 small fixes 2019-11-04 10:35:31 +01:00
601f7c30ba buildiso: update profile default services 2019-11-03 00:25:37 +01:00
2f37832558 batchpkg: quote vars 2019-11-03 00:25:08 +01:00
bf70341af9 batchpkg: add run option 2019-11-02 16:30:51 +01:00
ea3a06a9bc fix user info 2019-11-02 15:58:50 +01:00
812cf9a317 lib fixes 2019-11-02 15:35:28 +01:00
70aa91ddd8 simplify conf loading 2019-11-02 14:44:07 +01:00
15407b612a batchpkg: add listname arg 2019-11-02 11:09:23 +01:00
8d4adb5b47 chroot-run: always sync localtime from host 2019-11-02 10:40:49 +01:00
85659bfa5e Makefile: update 2019-11-02 01:07:52 +01:00
f0799f85e4 data: rename artools conf files
lib: load new file names
2019-11-02 01:07:36 +01:00
3810656411 conf (#19) 2019-11-01 23:57:02 +01:00
79b99440fc batchpkg & comparepkg: fixes 2019-11-01 21:04:23 +01:00
d353cd8d46 Makefile: include batchpkg 2019-11-01 19:48:31 +01:00
90623d0485 add batchpkg
comparepkg writes a move and upgrade list which batchpkg reads
2019-11-01 19:47:08 +01:00
2c0c3b2032 buildiso: cal conf cleaning 2019-11-01 18:59:18 +01:00
a463f22118 start 0.16 2019-11-01 18:57:56 +01:00
86504ac676 chroot-run: sync host localtime with chroot 2019-11-01 18:56:21 +01:00
27 changed files with 407 additions and 319 deletions

View File

@@ -1,4 +1,4 @@
VERSION=0.15
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)

View File

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

View File

@@ -46,10 +46,6 @@ select_os(){
fi
}
load_user_info
load_config "${USERCONFDIR}/artools/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
automount=false
usage() {

View File

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

View File

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

View File

@@ -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(){
@@ -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

View File

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

View File

@@ -12,13 +12,8 @@
# 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
@@ -71,10 +66,10 @@ else
fi
pacman_conf="${DATADIR}/pacman-${repo}.conf"
[[ -f ${USERCONFDIR}/artools/pacman-${repo}.conf ]] && pacman_conf="${USERCONFDIR}/artools/pacman-${repo}.conf"
[[ -f ${USER_CONF_DIR}/pacman-${repo}.conf ]] && pacman_conf="${USER_CONF_DIR}/pacman-${repo}.conf"
makepkg_conf="${DATADIR}/makepkg.conf"
[[ -f ${USERCONFDIR}/artools/makepkg.conf ]] && makepkg_conf="${USERCONFDIR}/artools/makepkg.conf"
[[ -f ${USER_CONF_DIR}/makepkg.conf ]] && makepkg_conf="${USER_CONF_DIR}/makepkg.conf"
check_root SOURCE_DATE_EPOCH

View File

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

View File

@@ -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
shopt -s extglob

View File

@@ -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(){
@@ -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'

View File

@@ -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
compare(){
@@ -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
@@ -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[@]})

View File

@@ -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
find_cached_pkgfile() {
@@ -130,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

View File

@@ -33,7 +33,7 @@ REPO_DB_PREFIX=
REPO_DB_SUFFIX=
LOCKFILE=
CLEAN_LOCK=0
PREVENT_DOWNGRADE=0
# PREVENT_DOWNGRADE=0
. @libdir@/artools/util-base.sh
@@ -53,7 +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")"
# 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"
@@ -201,18 +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
# 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
@@ -473,7 +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 ;;
# -p|--prevent-downgrade) PREVENT_DOWNGRADE=1 ;;
*) args+=("$1") ;;
esac
shift

View File

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

View 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"

View 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]

View File

@@ -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 ################
#############################################
@@ -53,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
# 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]

View File

@@ -41,142 +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-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}"}
}
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

View File

@@ -80,7 +80,6 @@ configure_system(){
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
@@ -105,7 +104,6 @@ write_users_conf(){
write_services_conf(){
local key1="$1" val1="$2" key2="$3" val2="$4"
local yaml=$(write_yaml_header)
yaml+=$(write_empty_line)
yaml+=$(write_yaml_map 0 "$key1" "$val1")
yaml+=$(write_yaml_map 0 "$key2" "$val2")
yaml+=$(write_yaml_map 0 'services')
@@ -117,18 +115,28 @@ write_services_conf(){
}
write_services_openrc_conf(){
local mods="$1"
write_services_conf 'initdDir' '/etc/init.d' 'runlevelsDir' '/etc/runlevels' > "$mods"/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 mods="$1"
write_services_conf 'svDir' '/etc/runit/sv' 'runsvDir' '/etc/runit/runsvdir' > "$mods"/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 mods="$1"
write_services_conf 'svDir' '/etc/s6/sv' 'dbDir' '/etc/s6/rc/compiled' > "$mods"/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_yaml_map 0 'keyrings')
for k in archlinux artix;do
yaml+=$(write_yaml_seq 2 "$k")
done
yaml+=$(write_empty_line)
printf '%s' "${yaml}"
}
configure_calamares(){
@@ -137,7 +145,9 @@ configure_calamares(){
msg2 "Configuring Calamares"
write_users_conf > "$mods"/users.conf
write_services_"${INITSYS}"_conf "$mods"
sed -e "s|services-openrc|services-${INITSYS}|" -i "$1"/etc/calamares/settings.conf
write_postcfg > "$mods"/postcfg.conf
sed -e "s|services-openrc|services-${INITSYS}|" \
-i "$1"/etc/calamares/settings.conf
fi
}

View File

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

View File

@@ -51,7 +51,7 @@ load_profile(){
ADDGROUPS=${ADDGROUPS:-"video,power,optical,network,lp,scanner,wheel,users,log"}
if [[ -z ${SERVICES[@]} ]];then
SERVICES=('acpid' 'bluetooth' 'cronie' 'cupsd' 'syslog-ng' 'connman')
SERVICES=('acpid' 'bluetoothd' 'cronie' 'cupsd' 'syslog-ng' 'connmand')
fi
if [[ ${DISPLAYMANAGER} != "none" ]];then
@@ -61,9 +61,7 @@ load_profile(){
esac
fi
if [[ -z ${SERVICES_LIVE[@]} ]];then
SERVICES_LIVE=('artix-live' 'pacman-init')
fi
SERVICES_LIVE=('artix-live' 'pacman-init')
return 0
}

View File

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

View File

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

View File

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

View File

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