forked from artix/artools
		
	Compare commits
	
		
			28 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f4e3abae46 | |||
| a7cef500ad | |||
| f7c29d1c98 | |||
| f1b2af947b | |||
| 5637ba0f8f | |||
| a383531e5d | |||
| 6b4acbdd94 | |||
| b7fd0a4e41 | |||
| b734357ea9 | |||
| 74d44873e7 | |||
| 91e038c3f5 | |||
| 8548a584f3 | |||
| 38fb213e13 | |||
| fade611ae7 | |||
| 8cdb68ce6a | |||
| 7d949afeb7 | |||
| 6f037f6faf | |||
| ba1e6644ea | |||
| 3f90082cc1 | |||
| 915db85b7d | |||
| a5a29259e5 | |||
| c5f8bc7e20 | |||
| 11dd9be3f1 | |||
| f058b9155b | |||
| 7c3d1343e8 | |||
| 80b14b7f1f | |||
| 29a1e98c0e | |||
| 8bcb311bbd | 
							
								
								
									
										9
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| VERSION=0.24 | V=0.26 | ||||||
|  |  | ||||||
| TOOLS = artools | TOOLS = artools | ||||||
| PREFIX ?= /usr | PREFIX ?= /usr | ||||||
| @@ -22,6 +22,8 @@ BASE_DATA = \ | |||||||
| PKG_CONF = \ | PKG_CONF = \ | ||||||
| 	data/conf/artools-pkg.conf | 	data/conf/artools-pkg.conf | ||||||
|  |  | ||||||
|  | SETARCH_ALIASES = \ | ||||||
|  |  | ||||||
| PKG_BIN = \ | PKG_BIN = \ | ||||||
| 	bin/pkg/buildpkg \ | 	bin/pkg/buildpkg \ | ||||||
| 	bin/pkg/deploypkg \ | 	bin/pkg/deploypkg \ | ||||||
| @@ -105,7 +107,7 @@ FILEMODE = -m0644 | |||||||
| MODE =  -m0755 | MODE =  -m0755 | ||||||
| LN = ln -sf | LN = ln -sf | ||||||
| RM = rm -f | RM = rm -f | ||||||
| M4 = m4 -P | M4 = m4 -P --define=m4_artools_pkg_version=$V | ||||||
| CHMODAW = chmod a-w | CHMODAW = chmod a-w | ||||||
| CHMODX = chmod +x | CHMODX = chmod +x | ||||||
|  |  | ||||||
| @@ -137,6 +139,9 @@ install_base: | |||||||
| 	install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS) | 	install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS) | ||||||
| 	install $(FILEMODE) $(BASE_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS) | 	install $(FILEMODE) $(BASE_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS) | ||||||
|  |  | ||||||
|  | 	install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)/setarch-aliases.d | ||||||
|  | 	for a in ${SETARCH_ALIASES}; do install $(FILEMODE) setarch-aliases.d/$$a $(DESTDIR)$(DATADIR)/$(TOOLS)/setarch-aliases.d; done | ||||||
|  |  | ||||||
| install_pkg: | install_pkg: | ||||||
| 	install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) | 	install $(DIRMODE) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) | ||||||
| 	install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) | 	install $(FILEMODE) $(PKG_CONF) $(DESTDIR)$(SYSCONFDIR)/$(TOOLS) | ||||||
|   | |||||||
| @@ -85,14 +85,12 @@ shift 1 | |||||||
|  |  | ||||||
| [[ -z $working_dir ]] && die 'Please specify a working directory.' | [[ -z $working_dir ]] && die 'Please specify a working directory.' | ||||||
|  |  | ||||||
| pacconf_cmd=$(command -v pacman-conf || command -v pacconf) |  | ||||||
|  |  | ||||||
| if (( ${#cache_dirs[@]} == 0 )); then | if (( ${#cache_dirs[@]} == 0 )); then | ||||||
|     mapfile -t cache_dirs < <($pacconf_cmd --config "${pac_conf:-$working_dir/etc/pacman.conf}" CacheDir) |     mapfile -t cache_dirs < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" CacheDir) | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # shellcheck disable=2016 | # shellcheck disable=2016 | ||||||
| host_mirrors=($("$pacconf_cmd" --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#')) | host_mirrors=($(pacman-conf --repo world Server 2> /dev/null | sed -r 's#(.*/)world/os/.*#\1$repo/os/$arch#')) | ||||||
|  |  | ||||||
| for host_mirror in "${host_mirrors[@]}"; do | for host_mirror in "${host_mirrors[@]}"; do | ||||||
|     if [[ $host_mirror == *file://* ]]; then |     if [[ $host_mirror == *file://* ]]; then | ||||||
| @@ -104,7 +102,7 @@ done | |||||||
|  |  | ||||||
| while read -r line; do | while read -r line; do | ||||||
|     # shellcheck disable=2016 |     # shellcheck disable=2016 | ||||||
|     mapfile -t lines < <($pacconf_cmd --config "${pac_conf:-$working_dir/etc/pacman.conf}" \ |     mapfile -t lines < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" \ | ||||||
|         --repo "$line" Server | sed -r 's#(.*/)[^/]+/os/.+#\1#') |         --repo "$line" Server | sed -r 's#(.*/)[^/]+/os/.+#\1#') | ||||||
|     for line in "${lines[@]}"; do |     for line in "${lines[@]}"; do | ||||||
|         if [[ $line = file://* ]]; then |         if [[ $line = file://* ]]; then | ||||||
| @@ -112,7 +110,7 @@ while read -r line; do | |||||||
|             in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line") |             in_array "$line" "${cache_dirs[@]}" || cache_dirs+=("$line") | ||||||
|         fi |         fi | ||||||
|     done |     done | ||||||
| done < <("$pacconf_cmd" --config "${pac_conf:-$working_dir/etc/pacman.conf}" --repo-list) | done < <(pacman-conf --config "${pac_conf:-$working_dir/etc/pacman.conf}" --repo-list) | ||||||
|  |  | ||||||
| copy_hostconf () { | copy_hostconf () { | ||||||
|     unshare --fork --pid gpg --homedir "$working_dir"/etc/pacman.d/gnupg/ --no-permission-warning --quiet --batch --import --import-options import-local-sigs "$(pacman-conf GpgDir)"/pubring.gpg >/dev/null 2>&1 |     unshare --fork --pid gpg --homedir "$working_dir"/etc/pacman.d/gnupg/ --no-permission-warning --quiet --batch --import --import-options import-local-sigs "$(pacman-conf GpgDir)"/pubring.gpg >/dev/null 2>&1 | ||||||
| @@ -168,7 +166,13 @@ eval "$(grep '^CARCH=' "$working_dir/etc/makepkg.conf")" | |||||||
|  |  | ||||||
| [[ -z $nosetarch ]] || unset CARCH | [[ -z $nosetarch ]] || unset CARCH | ||||||
|  |  | ||||||
| ${CARCH:+setarch "$CARCH"} chroot "${working_dir}" "$@" | if [[ -f "@datadir@/artools/setarch-aliases.d/${CARCH}" ]]; then | ||||||
|  | 	read -r set_arch < "@datadir@/artools/setarch-aliases.d/${CARCH}" | ||||||
|  | else | ||||||
|  | 	set_arch="${CARCH}" | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | ${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "$@" | ||||||
|  |  | ||||||
| ret=$? | ret=$? | ||||||
|  |  | ||||||
|   | |||||||
| @@ -64,10 +64,8 @@ shift 1 | |||||||
|  |  | ||||||
| [[ -z $working_dir ]] && die 'Please specify a working directory.' | [[ -z $working_dir ]] && die 'Please specify a working directory.' | ||||||
|  |  | ||||||
| pacconf_cmd=$(command -v pacman-conf || command -v pacconf) |  | ||||||
|  |  | ||||||
| if (( ${#cache_dirs[@]} == 0 )); then | if (( ${#cache_dirs[@]} == 0 )); then | ||||||
| 	mapfile -t cache_dirs < <($pacconf_cmd CacheDir) | 	mapfile -t cache_dirs < <(pacman-conf CacheDir) | ||||||
| fi | fi | ||||||
|  |  | ||||||
| umask 0022 | umask 0022 | ||||||
|   | |||||||
| @@ -221,6 +221,8 @@ display_settings(){ | |||||||
|  |  | ||||||
|     msg "ISO SETTINGS:" |     msg "ISO SETTINGS:" | ||||||
|     msg2 "ISO_VERSION: %s" "${ISO_VERSION}" |     msg2 "ISO_VERSION: %s" "${ISO_VERSION}" | ||||||
|  |     msg2 "COMPRESSION: %s" "${COMPRESSION}" | ||||||
|  |     [[ "${COMPRESSION}" == 'zstd' ]] && msg2 "COMPRESSION_LEVEL: %s" "${COMPRESSION_LEVEL}" | ||||||
|  |  | ||||||
|     msg "BUILD:" |     msg "BUILD:" | ||||||
|     show_profile |     show_profile | ||||||
| @@ -332,7 +334,7 @@ usage() { | |||||||
|     echo '    -i <name>          Init system to use' |     echo '    -i <name>          Init system to use' | ||||||
|     echo "                       [default: ${INITSYS}]" |     echo "                       [default: ${INITSYS}]" | ||||||
|     echo '    -g <key>           The gpg key for img signing' |     echo '    -g <key>           The gpg key for img signing' | ||||||
|     echo "                       [default: ${GPG_KEY}]" |     echo "                       [default: none]" | ||||||
|     echo '    -m                 Set SquashFS image mode to persistence' |     echo '    -m                 Set SquashFS image mode to persistence' | ||||||
|     echo '    -c                 Disable clean work dir' |     echo '    -c                 Disable clean work dir' | ||||||
|     echo '    -x                 Build chroot only' |     echo '    -x                 Build chroot only' | ||||||
|   | |||||||
| @@ -72,6 +72,12 @@ get_pacman_conf "${repo}" | |||||||
|  |  | ||||||
| get_makepkg_conf | get_makepkg_conf | ||||||
|  |  | ||||||
|  | if [[ -f "${DATADIR}/setarch-aliases.d/${arch}" ]]; then | ||||||
|  | 	read -r set_arch < "${DATADIR}/setarch-aliases.d/${arch}" | ||||||
|  | else | ||||||
|  | 	set_arch="${arch}" | ||||||
|  | fi | ||||||
|  |  | ||||||
| check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME | check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME | ||||||
|  |  | ||||||
| mkchrootpkg_args+=("${@:$OPTIND}") | mkchrootpkg_args+=("${@:$OPTIND}") | ||||||
| @@ -92,7 +98,7 @@ if ${create_first} || [[ ! -d "${chroots_pkg}/${repo}-${arch}" ]];then | |||||||
|  |  | ||||||
|     rm -rf --one-file-system "${chroots_pkg}/${repo}-${arch}" |     rm -rf --one-file-system "${chroots_pkg}/${repo}-${arch}" | ||||||
|     (umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}") |     (umask 0022; mkdir -p "${chroots_pkg}/${repo}-${arch}") | ||||||
|     setarch "${arch}" mkchroot \ |     setarch "${set_arch}" mkchroot \ | ||||||
|         -C "${pacman_conf}" \ |         -C "${pacman_conf}" \ | ||||||
|         -M "${makepkg_conf}" \ |         -M "${makepkg_conf}" \ | ||||||
|         "${chroots_pkg}/${repo}-${arch}/root" \ |         "${chroots_pkg}/${repo}-${arch}/root" \ | ||||||
|   | |||||||
| @@ -117,6 +117,7 @@ patch_pkg(){ | |||||||
|     local pkgpath="$1" |     local pkgpath="$1" | ||||||
|     local pkg=${pkgpath%/*} |     local pkg=${pkgpath%/*} | ||||||
|     pkg=${pkg##*/} |     pkg=${pkg##*/} | ||||||
|  |     sed -e 's|arch-meson|artix-meson|' -i "$pkgpath"/PKGBUILD | ||||||
|     case $pkg in |     case $pkg in | ||||||
|         glibc) |         glibc) | ||||||
|             msg2 "Patching %s" "$pkg" |             msg2 "Patching %s" "$pkg" | ||||||
|   | |||||||
| @@ -18,19 +18,42 @@ m4_include(lib/base/message.sh) | |||||||
| m4_include(lib/pkg/repo.sh) | m4_include(lib/pkg/repo.sh) | ||||||
| m4_include(lib/pkg/table.sh) | m4_include(lib/pkg/table.sh) | ||||||
|  |  | ||||||
|  | #{{{ db libs | ||||||
|  |  | ||||||
|  | extract_db() { | ||||||
|  |     local u="$1" cdir="$2" | ||||||
|  |     rm -rf "$cdir" | ||||||
|  |     mkdir -p "$cdir" | ||||||
|  |     msg2 "%s" "${cdir##*/}" | ||||||
|  |     curl -L -s "$u" | bsdtar -xf - -C "$cdir" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | update_db_cache(){ | ||||||
|  |     msg "Updating database cache ..." | ||||||
|  |     local cachedir url | ||||||
|  |     for repo in "${searchrepos[@]}"; do | ||||||
|  |         cachedir=${db_cache_dir}/linksdb/$repo | ||||||
|  |         url=${REPOS_MIRROR}/$repo/os/${CARCH}/$repo.${linksdb_ext} | ||||||
|  |         extract_db "$url" "$cachedir" | ||||||
|  |     done | ||||||
|  |     msg "Done" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #}}} | ||||||
|  |  | ||||||
| #{{{ sogrep | #{{{ sogrep | ||||||
|  |  | ||||||
| query_db() { | query_db() { | ||||||
|     for repo in "${searchrepos[@]}"; do |     for repo in "${searchrepos[@]}"; do | ||||||
|         local db |         local db | ||||||
|         db=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo}/ |         db=${db_cache_dir}/linksdb/$repo/ | ||||||
|         if [[ -d ${db} ]]; then |         if [[ -d ${db} ]]; then | ||||||
|             while read -rd '' pkg; do |             while read -rd '' pkg; do | ||||||
|                 read -r match |                 read -r match | ||||||
|                 pkg=${pkg#${db}} |                 pkg=${pkg#${db}} | ||||||
|                 pkg="${pkg%/*}" |                 pkg="${pkg%/*}" | ||||||
|                 msg_row "${tableQ}" "${repo}" "${pkg}" "${match}" |                 msg_row "${tableQ}" "$repo" "$pkg" "${match}" | ||||||
|             done < <(grep -rZ "${library}" "${db}") | sort -u |             done < <(grep -rZ "$library" "$db") | sort -u | ||||||
|         fi |         fi | ||||||
|     done |     done | ||||||
| } | } | ||||||
| @@ -41,7 +64,7 @@ query_db() { | |||||||
|  |  | ||||||
| is_db_entry() { | is_db_entry() { | ||||||
|     local pkgname="$1" repo="${REPOS[$2]}" entry |     local pkgname="$1" repo="${REPOS[$2]}" entry | ||||||
|     entry=${db_cache_dir}/${linksdb_ext}/${CARCH}/$repo/$pkgname |     entry=${db_cache_dir}/linksdb/$repo/$pkgname | ||||||
|  |  | ||||||
|     if [[ -d "$entry" ]];then |     if [[ -d "$entry" ]];then | ||||||
|         return 0 |         return 0 | ||||||
| @@ -50,18 +73,17 @@ is_db_entry() { | |||||||
| } | } | ||||||
|  |  | ||||||
| check_db(){ | check_db(){ | ||||||
|     local pkgpath="${1%/*}" |     local pkgpath="${1}" | ||||||
|  |  | ||||||
|     for repo in "${!REPOS[@]}"; do |     for repo in "${!REPOS[@]}"; do | ||||||
|  |  | ||||||
|         local pkgbuild artixver |         local pkgbuild artixver | ||||||
|         [[ -f $pkgpath/$CARCH/$repo/PKGBUILD ]] && pkgbuild=$pkgpath/$CARCH/$repo/PKGBUILD |         if [[ -f $pkgpath/$repo/PKGBUILD ]]; then | ||||||
|         [[ -f $pkgpath/repos/$repo-$CARCH/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-$CARCH/PKGBUILD |             pkgbuild=$pkgpath/$repo/PKGBUILD | ||||||
|         [[ -f $pkgpath/repos/$repo-any/PKGBUILD ]] && pkgbuild=$pkgpath/repos/$repo-any/PKGBUILD |  | ||||||
|  |  | ||||||
|             # shellcheck disable=1090 |             # shellcheck disable=1090 | ||||||
|             . "$pkgbuild" 2>/dev/null |             . "$pkgbuild" 2>/dev/null | ||||||
|             artixver=$(get_full_version) |             artixver=$(get_full_version) | ||||||
|  |  | ||||||
|             for name in "${pkgname[@]}"; do |             for name in "${pkgname[@]}"; do | ||||||
|                 if ! is_db_entry "$name-$artixver" "$repo"; then |                 if ! is_db_entry "$name-$artixver" "$repo"; then | ||||||
|                     msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false" |                     msg_row_red "${tableU}" "$repo" "$name" "$artixver" "false" | ||||||
| @@ -70,6 +92,55 @@ check_db(){ | |||||||
|                 fi |                 fi | ||||||
|             done |             done | ||||||
|             unset artixver pkgbuild pkgver epoch pkgname pkgbase |             unset artixver pkgbuild pkgver epoch pkgname pkgbase | ||||||
|  |         fi | ||||||
|  |     done | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #}}} | ||||||
|  |  | ||||||
|  | # {{{ check obsolete | ||||||
|  |  | ||||||
|  | show_obsolete_table() { | ||||||
|  |     local arch_mirror='https://mirror.f4st.host/archlinux' | ||||||
|  |  | ||||||
|  |     local arch_repo artix_repo artix_db arch_db url | ||||||
|  |     arch_repo="${searchrepos[@]}" | ||||||
|  |     artix_repo="${REPOS[$arch_repo]}" | ||||||
|  |  | ||||||
|  |     artix_db="${db_cache_dir}/artixdb/${artix_repo}" | ||||||
|  |     arch_db="${db_cache_dir}/archdb/${arch_repo}" | ||||||
|  |  | ||||||
|  |     msg "Updating database cache ..." | ||||||
|  |     url=${REPOS_MIRROR}/${artix_repo}/os/$CARCH/${artix_repo}.${db_ext} | ||||||
|  |     extract_db "$url" "${artix_db}" | ||||||
|  |  | ||||||
|  |     url=${arch_mirror}/${arch_repo}/os/$CARCH/${arch_repo}.${db_ext} | ||||||
|  |     extract_db "$url" "${arch_db}" | ||||||
|  |     msg "Done" | ||||||
|  |  | ||||||
|  |     msg_table_header "${tableQ}" "Repo" "Package" "Obsolete" | ||||||
|  |     for p in "${artix_db}"/*; do | ||||||
|  |         local pkg rel | ||||||
|  |         pkg=${p##*/} | ||||||
|  |         rel=${pkg##*-} | ||||||
|  |         rel=${rel%.*} | ||||||
|  |         pkg=${pkg%-*} | ||||||
|  |         local p="$pkg-$rel" | ||||||
|  |  | ||||||
|  |         if [[ "$p" != *openrc* ]] && [[ "$p" != *runit* ]] \ | ||||||
|  |         && [[ "$p" != *s6* ]] && [[ "$p" != *suite66* ]] \ | ||||||
|  |         && [[ "$p" != *eudev* ]] && [[ "$p" != *elogind* ]] \ | ||||||
|  |         && [[ "$p" != *sysusers* ]] && [[ "$p" != *tmpfiles* ]] \ | ||||||
|  |         && [[ "$p" != *execline* ]] && [[ "$p" != *skalibs* ]] \ | ||||||
|  |         && [[ "$p" != *netifrc* ]] && [[ "$p" != *bootlogd* ]] \ | ||||||
|  |         && [[ "$p" != *pam_rundir* ]] && [[ "$p" != *artools* ]] \ | ||||||
|  |         && [[ "$p" != *archlinux* ]] && [[ "$p" != *iso-profiles* ]] \ | ||||||
|  |         && [[ "$p" != *calamares* ]] && [[ "$p" != *iso-initcpio* ]] \ | ||||||
|  |         && [[ "$p" != *dinit* ]] && [[ "$p" != *artix* ]]; then | ||||||
|  |             if [[ ! -d "${arch_db}/$p" ]]; then | ||||||
|  |                 msg_row "${tableQ}" "${artix_repo}" "$p" "true" | ||||||
|  |             fi | ||||||
|  |         fi | ||||||
|     done |     done | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -85,23 +156,10 @@ show_db_table(){ | |||||||
|     tree_loop check_db |     tree_loop check_db | ||||||
| } | } | ||||||
|  |  | ||||||
| update_db_cache(){ |  | ||||||
|     msg "Updating database cache ..." |  | ||||||
|     local cachedir url |  | ||||||
|     for repo in "${searchrepos[@]}"; do |  | ||||||
|         cachedir=${db_cache_dir}/${linksdb_ext}/${CARCH}/${repo} |  | ||||||
|         rm -rf "$cachedir" |  | ||||||
|         mkdir -p "$cachedir" |  | ||||||
|         msg2 "%s" "$repo" |  | ||||||
|         url=${REPOS_MIRROR}/${repo}/os/${CARCH}/${repo}.${linksdb_ext} |  | ||||||
|         curl -L -s "$url" | bsdtar -xf - -C "$cachedir" |  | ||||||
|     done |  | ||||||
|     msg "Done" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools" | db_cache_dir="${XDG_CACHE_HOME:-$USER_HOME/.cache}/artools" | ||||||
|  |  | ||||||
| linksdb_ext="links.tar.${DBEXT}" | linksdb_ext="links.tar.${DBEXT}" | ||||||
|  | db_ext="db.tar.${DBEXT}" | ||||||
|  |  | ||||||
| load_makepkg_config | load_makepkg_config | ||||||
|  |  | ||||||
| @@ -109,9 +167,10 @@ sync=false | |||||||
| check=false | check=false | ||||||
| query=false | query=false | ||||||
| all_db=false | all_db=false | ||||||
|  | obsolete=false | ||||||
|  |  | ||||||
| readonly tableU="%-20s %-35s %-30s %-10s" | readonly tableU="%-20s %-35s %-30s %-10s" | ||||||
| readonly tableQ="%-20s %-45s %s" | readonly tableQ="%-20s %-55s %s" | ||||||
|  |  | ||||||
| load_valid_names | load_valid_names | ||||||
|  |  | ||||||
| @@ -156,6 +215,7 @@ usage() { | |||||||
|     echo "    -s            Sync repo databases" |     echo "    -s            Sync repo databases" | ||||||
|     echo '    -c            Check repos' |     echo '    -c            Check repos' | ||||||
|     echo '    -a            Show repo db (-c)' |     echo '    -a            Show repo db (-c)' | ||||||
|  |     echo '    -o            Check for obsolete packages' | ||||||
|     echo "    -q            Query repo databases for so libs" |     echo "    -q            Query repo databases for so libs" | ||||||
|     echo '    -h            This help' |     echo '    -h            This help' | ||||||
|     echo '' |     echo '' | ||||||
| @@ -163,7 +223,7 @@ usage() { | |||||||
|     exit "$1" |     exit "$1" | ||||||
| } | } | ||||||
|  |  | ||||||
| opts='r:qcsah' | opts='r:qcsaoh' | ||||||
|  |  | ||||||
| while getopts "${opts}" arg; do | while getopts "${opts}" arg; do | ||||||
|     case "${arg}" in |     case "${arg}" in | ||||||
| @@ -172,6 +232,7 @@ while getopts "${opts}" arg; do | |||||||
|         c) check=true ;; |         c) check=true ;; | ||||||
|         a) all_db=true ;; |         a) all_db=true ;; | ||||||
|         q) query=true ;; |         q) query=true ;; | ||||||
|  |         o) obsolete=true ;; | ||||||
|         h|?) usage 0 ;; |         h|?) usage 0 ;; | ||||||
|         *) echo "invalid argument '${arg}'"; usage 1 ;; |         *) echo "invalid argument '${arg}'"; usage 1 ;; | ||||||
|     esac |     esac | ||||||
| @@ -186,3 +247,5 @@ ${sync} && update_db_cache | |||||||
| ${check} && show_db_table | ${check} && show_db_table | ||||||
|  |  | ||||||
| ${query} && show_lib_table | ${query} && show_lib_table | ||||||
|  |  | ||||||
|  | ${obsolete} && show_obsolete_table | ||||||
|   | |||||||
| @@ -46,33 +46,6 @@ subrepo_pull(){ | |||||||
|     git subrepo pull "$pkg" |     git subrepo pull "$pkg" | ||||||
| } | } | ||||||
|  |  | ||||||
| prepare_commit(){ |  | ||||||
|     # create new layout, copy & remove repos |  | ||||||
|     if [[ -d repos ]]; then |  | ||||||
|         msg2 "Switching to new layout ..." |  | ||||||
|         [[ ! -d "$CARCH" ]] && mkdir "$CARCH" |  | ||||||
|  |  | ||||||
|         for r in repos/*; do |  | ||||||
|             local name noarch |  | ||||||
|             name=${r#*/} |  | ||||||
|             noarch=${name%-*} |  | ||||||
|             mkdir "$CARCH/${noarch}" |  | ||||||
|             cp repos/"${name}"/* "$CARCH/${noarch}/" |  | ||||||
|             git add "$CARCH/${noarch}" |  | ||||||
|         done |  | ||||||
|  |  | ||||||
|         git rm -r repos |  | ||||||
|         git commit -m "switch to new repo layout" |  | ||||||
|         msg2 "Done switch" |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     if [[ $action == 'add' ]] || [[ $action == 'move' ]] ;then |  | ||||||
|         [[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}" |  | ||||||
|         [[ ! -d "$CARCH" ]] && mkdir "$CARCH" |  | ||||||
|         [[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}" |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
|  |  | ||||||
| check_rebuild(){ | check_rebuild(){ | ||||||
|     if [[ -d "$CARCH"/"${valid_names[10]}" ]] \ |     if [[ -d "$CARCH"/"${valid_names[10]}" ]] \ | ||||||
|     && [[ "${repo_dest}" == "${valid_names[7]}" ]]; then |     && [[ "${repo_dest}" == "${valid_names[7]}" ]]; then | ||||||
| @@ -86,14 +59,12 @@ check_rebuild(){ | |||||||
| } | } | ||||||
|  |  | ||||||
| check_team(){ | check_team(){ | ||||||
|     if [[ "${repo_src}" == "${valid_names[0]}" \ |     if [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ | ||||||
|         && "${repo_dest}" == "${valid_names[1]}" ]] || \ |         [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[0]}" ]] || \ | ||||||
|         [[ "${repo_src}" == "${valid_names[1]}" \ |         [[ "${repo_src}" == "${valid_names[1]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ | ||||||
|         && "${repo_dest}" == "${valid_names[0]}" ]] || \ |         [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[1]}" ]] || \ | ||||||
|         [[ "${repo_src}" == "${valid_names[1]}" \ |         [[ "${repo_src}" == "${valid_names[0]}" && "${repo_dest}" == "${valid_names[2]}" ]] || \ | ||||||
|         && "${repo_dest}" == "${valid_names[2]}" ]] || \ |         [[ "${repo_src}" == "${valid_names[2]}" && "${repo_dest}" == "${valid_names[0]}" ]]; then | ||||||
|         [[ "${repo_src}" == "${valid_names[2]}" \ |  | ||||||
|         && "${repo_dest}" == "${valid_names[1]}" ]] ;then |  | ||||||
|  |  | ||||||
|         local org gitname |         local org gitname | ||||||
|         org=$(get_pkg_org "${package}") |         org=$(get_pkg_org "${package}") | ||||||
| @@ -106,11 +77,6 @@ check_team(){ | |||||||
| path_config() { | path_config() { | ||||||
|     [[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD |     [[ "${repo_src}" != 'trunk' ]] && pkgbuild="$CARCH/${repo_src}"/PKGBUILD | ||||||
|  |  | ||||||
|     if [[ ! -f "$pkgbuild" ]]; then |  | ||||||
|         pkgbuild=repos/"${repo_src}-${CARCH}"/PKGBUILD |  | ||||||
|         [[ -f repos/"${repo_src}"-any/PKGBUILD ]] && pkgbuild=repos/"${repo_src}"-any/PKGBUILD |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|     # shellcheck disable=1090 |     # shellcheck disable=1090 | ||||||
|     . "$pkgbuild" |     . "$pkgbuild" | ||||||
| } | } | ||||||
| @@ -132,7 +98,6 @@ commit_pkg() { | |||||||
|         if [[ "${repo_src}" == 'trunk' ]];then |         if [[ "${repo_src}" == 'trunk' ]];then | ||||||
|             git rm -r trunk |             git rm -r trunk | ||||||
|         else |         else | ||||||
|             prepare_commit |  | ||||||
|             git rm -r "$CARCH/${repo_src}" |             git rm -r "$CARCH/${repo_src}" | ||||||
|         fi |         fi | ||||||
|     else |     else | ||||||
| @@ -146,11 +111,15 @@ commit_pkg() { | |||||||
|  |  | ||||||
| repo_commit_pkg() { | repo_commit_pkg() { | ||||||
|     local commit_msg |     local commit_msg | ||||||
|  |  | ||||||
|  |     [[ -d "$CARCH/${repo_dest}" ]] && git rm -r "$CARCH/${repo_dest}" | ||||||
|  |     [[ ! -d "$CARCH" ]] && mkdir "$CARCH" | ||||||
|  |     [[ ! -d "$CARCH/${repo_dest}" ]] && mkdir "$CARCH/${repo_dest}" | ||||||
|  |  | ||||||
|     if [[ "${repo_src}" == 'trunk' ]]; then |     if [[ "${repo_src}" == 'trunk' ]]; then | ||||||
|         action='add' |         action='add' | ||||||
|         commit_msg=$(get_repo_commit_msg) |         commit_msg=$(get_repo_commit_msg) | ||||||
|         msg "Action: %s" "$commit_msg" |         msg "Action: %s" "$commit_msg" | ||||||
|         prepare_commit |  | ||||||
|         check_rebuild |         check_rebuild | ||||||
|         cp trunk/* "$CARCH/${repo_dest}"/ |         cp trunk/* "$CARCH/${repo_dest}"/ | ||||||
|     else |     else | ||||||
| @@ -158,7 +127,6 @@ repo_commit_pkg() { | |||||||
|         [[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild" |         [[ ! -f $pkgbuild ]] && die "%s does not exist!" "$pkgbuild" | ||||||
|         commit_msg=$(get_repo_commit_msg) |         commit_msg=$(get_repo_commit_msg) | ||||||
|         msg "Action: %s" "$commit_msg" |         msg "Action: %s" "$commit_msg" | ||||||
|         prepare_commit |  | ||||||
|         cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/ |         cp "$CARCH/${repo_src}"/* "$CARCH/${repo_dest}"/ | ||||||
|         git rm -r "$CARCH/${repo_src}" |         git rm -r "$CARCH/${repo_src}" | ||||||
|     fi |     fi | ||||||
|   | |||||||
| @@ -52,6 +52,9 @@ compare_m(){ | |||||||
|  |  | ||||||
| compare_u(){ | compare_u(){ | ||||||
|     if [ "$result" -eq -1 ];then |     if [ "$result" -eq -1 ];then | ||||||
|  | #         local arel=${archver##*-} brel=${artixver##*-} | ||||||
|  | #         local reldiff | ||||||
|  | #         reldiff=$(( $arel-${brel%.*} )) | ||||||
|         msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" |         msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" | ||||||
|         write_list "${a}:$pkg" pkg_upgrades |         write_list "${a}:$pkg" pkg_upgrades | ||||||
|     fi |     fi | ||||||
|   | |||||||
| @@ -15,6 +15,9 @@ | |||||||
| m4_include(lib/base/message.sh) | m4_include(lib/base/message.sh) | ||||||
| m4_include(lib/base/chroot.sh) | m4_include(lib/base/chroot.sh) | ||||||
|  |  | ||||||
|  | export BUILDTOOL=artools-pkg | ||||||
|  | export BUILDTOOLVER=m4_artools_pkg_version | ||||||
|  |  | ||||||
| shopt -s nullglob | shopt -s nullglob | ||||||
|  |  | ||||||
| default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg) | default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg) | ||||||
| @@ -193,6 +196,8 @@ EOF | |||||||
|         printf '#!/bin/bash\n' |         printf '#!/bin/bash\n' | ||||||
|         declare -f _chrootbuild |         declare -f _chrootbuild | ||||||
|         declare -p SOURCE_DATE_EPOCH 2>/dev/null || true |         declare -p SOURCE_DATE_EPOCH 2>/dev/null || true | ||||||
|  |         declare -p BUILDTOOL 2>/dev/null | ||||||
|  | 		declare -p BUILDTOOLVER 2>/dev/null | ||||||
|         printf '_chrootbuild "$@" || exit\n' |         printf '_chrootbuild "$@" || exit\n' | ||||||
|  |  | ||||||
|         if (( run_namcap )); then |         if (( run_namcap )); then | ||||||
| @@ -218,7 +223,10 @@ _chrootbuild() { | |||||||
|     # use "$" in arguments to commands with "sudo -i".  ${foo} or |     # use "$" in arguments to commands with "sudo -i".  ${foo} or | ||||||
|     # ${1} is OK, but $foo or $1 isn't. |     # ${1} is OK, but $foo or $1 isn't. | ||||||
|     # https://bugzilla.sudo.ws/show_bug.cgi?id=765 |     # https://bugzilla.sudo.ws/show_bug.cgi?id=765 | ||||||
|     sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" |     sudo --preserve-env=SOURCE_DATE_EPOCH \ | ||||||
|  |         -preserve-env=BUILDTOOL \ | ||||||
|  | 		--preserve-env=BUILDTOOLVER \ | ||||||
|  |         -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" | ||||||
|     ret=$? |     ret=$? | ||||||
|     case $ret in |     case $ret in | ||||||
|         0|14) |         0|14) | ||||||
| @@ -241,7 +249,7 @@ download_sources() { | |||||||
|     chown "$makepkg_user:" "$WORKDIR" |     chown "$makepkg_user:" "$WORKDIR" | ||||||
|  |  | ||||||
|     # Ensure sources are downloaded |     # Ensure sources are downloaded | ||||||
|     sudo -u "$makepkg_user" --preserve-env=GNUPGHOME \ |     sudo -u "$makepkg_user" --preserve-env=GNUPGHOME,SSH_AUTH_SOCK \ | ||||||
|         env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \ |         env SRCDEST="$SRCDEST" BUILDDIR="$WORKDIR" \ | ||||||
|         makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" || |         makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o "${verifysource_args[@]}" || | ||||||
|         die "Could not download sources." |         die "Could not download sources." | ||||||
| @@ -305,7 +313,7 @@ done | |||||||
| [[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' | [[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.' | ||||||
| makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} | makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}} | ||||||
|  |  | ||||||
| check_root SOURCE_DATE_EPOCH,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER | check_root SOURCE_DATE_EPOCH,BUILDTOOL,BUILDTOOLVER,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER | ||||||
|  |  | ||||||
| # Canonicalize chrootdir, getting rid of trailing / | # Canonicalize chrootdir, getting rid of trailing / | ||||||
| chrootdir=$(readlink -e "$passeddir") | chrootdir=$(readlink -e "$passeddir") | ||||||
|   | |||||||
| @@ -17,6 +17,24 @@ m4_include(lib/base/yaml.sh) | |||||||
|  |  | ||||||
| #{{{ functions | #{{{ functions | ||||||
|  |  | ||||||
|  | print_package_names() { | ||||||
|  |     local version=$(get_full_version) | ||||||
|  |     local architecture pkg | ||||||
|  |     for pkg in ${pkgname[@]}; do | ||||||
|  |         architecture=$(get_pkg_arch $pkg) | ||||||
|  |         printf "%s/%s-%s-%s%s\n" "$PKGDEST" "$pkg" "$version" "$architecture" "$PKGEXT" | ||||||
|  |     done | ||||||
|  | } | ||||||
|  |  | ||||||
|  | print_debug_package_names() { | ||||||
|  |     local version=$(get_full_version) | ||||||
|  |     local architecture | ||||||
|  |     if check_option "debug" "y" && check_option "strip" "y"; then | ||||||
|  |         architecture=$(get_pkg_arch) | ||||||
|  |         printf "%s/%s-%s-%s-%s%s\n" "$PKGDEST" "$pkgbase" "debug" "$version" "$architecture" "$PKGEXT" | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  |  | ||||||
| srcyaml_write_attr(){ | srcyaml_write_attr(){ | ||||||
|     local ident1="$1" ident2="$2" ident3="$3" |     local ident1="$1" ident2="$2" ident3="$3" | ||||||
|     local attrname=$4 attrvalues=("${@:5}") |     local attrname=$4 attrvalues=("${@:5}") | ||||||
| @@ -108,13 +126,19 @@ yaml_write_fileinfo(){ | |||||||
|     pkgbase=${pkgbase:-$pkgname} |     pkgbase=${pkgbase:-$pkgname} | ||||||
|     Yaml+=$(write_yaml_map 0 "version" "${version:-0}") |     Yaml+=$(write_yaml_map 0 "version" "${version:-0}") | ||||||
|     Yaml+=$(write_empty_line) |     Yaml+=$(write_empty_line) | ||||||
|     local pkgfile |     local pkgfile debug_pkg | ||||||
|     pkgfile=$(print_all_package_names) |     pkgfile=$(print_package_names) | ||||||
|     Yaml+=$(write_yaml_map 0 "files") |     Yaml+=$(write_yaml_map 0 "files") | ||||||
|     for f in ${pkgfile}; do |     for f in ${pkgfile}; do | ||||||
|         Yaml+=$(write_yaml_seq 2 "${f##*/}") |         Yaml+=$(write_yaml_seq 2 "${f##*/}") | ||||||
|     done |     done | ||||||
|     Yaml+=$(write_empty_line) |     Yaml+=$(write_empty_line) | ||||||
|  |     debug_pkg=$(print_debug_package_names) | ||||||
|  |     Yaml+=$(write_yaml_map 0 "debug") | ||||||
|  |     for d in ${debug_pkg}; do | ||||||
|  |         Yaml+=$(write_yaml_seq 2 "${d##*/}") | ||||||
|  |     done | ||||||
|  |     Yaml+=$(write_empty_line) | ||||||
| } | } | ||||||
|  |  | ||||||
| write_srcyaml(){ | write_srcyaml(){ | ||||||
|   | |||||||
| @@ -8,8 +8,14 @@ | |||||||
| # the dist release; default: auto | # the dist release; default: auto | ||||||
| # ISO_VERSION=$(date +%Y%m%d) | # ISO_VERSION=$(date +%Y%m%d) | ||||||
|  |  | ||||||
| # possible values: openrc, runit, s6, suite66 | # possible values: openrc, runit, s6, suite66, dinit | ||||||
| # INITSYS="openrc" | # INITSYS="openrc" | ||||||
|  |  | ||||||
| # gpg key; leave empty or commented to skip img signing | # gpg key; leave empty or commented to skip img signing | ||||||
| # GPG_KEY="" | # GPG_KEY="" | ||||||
|  |  | ||||||
|  | # possible values: zstd (default), xz | ||||||
|  | # COMPRESSION="zstd" | ||||||
|  |  | ||||||
|  | # zstd only: range 1..22 | ||||||
|  | # COMPRESSION_LEVEL=15 | ||||||
|   | |||||||
| @@ -10,30 +10,38 @@ | |||||||
| # customize buildtree; uncomment to include | # customize buildtree; uncomment to include | ||||||
| # TREE_NAMES_ARTIX=( | # TREE_NAMES_ARTIX=( | ||||||
| #         packages-kernel | #         packages-kernel | ||||||
|  | #         packages-llvm | ||||||
| #         packages-openrc | #         packages-openrc | ||||||
| #         packages-runit | #         packages-runit | ||||||
| #         packages-s6 | #         packages-s6 | ||||||
| #         packages-suite66 | #         packages-suite66 | ||||||
| #         python-world | #         packages-dinit | ||||||
| #         packages-perl | #         packages-perl | ||||||
| #         packages-java | #         packages-java | ||||||
| #         packages-ruby | #         packages-ruby | ||||||
| #         packages-kf5 | #         packages-gtk | ||||||
|  | #         packages-qt5 | ||||||
|  | #         packages-qt6 | ||||||
|  | #         packages-xorg | ||||||
| #         packages-plasma | #         packages-plasma | ||||||
| #         packages-kde | #         packages-kde | ||||||
| #         packages-gnome | #         packages-gnome | ||||||
| #         packages-cinnamon | #         packages-cinnamon | ||||||
| #         packages-lxqt | #         packages-lxqt | ||||||
|  | #         packages-lxde | ||||||
| #         packages-mate | #         packages-mate | ||||||
| #         packages-xfce | #         packages-xfce | ||||||
| #         packages-wm | #         packages-wm | ||||||
| #         packages-devel | #         packages-devel | ||||||
| #         packages-lib32 |  | ||||||
| #         packages-qt6 | #         packages-qt6 | ||||||
| #         packages-office | #         packages-office | ||||||
| #         packages-misc | #         packages-misc | ||||||
| #         packages-python | #         python-world | ||||||
| #         python-galaxy | #         python-galaxy | ||||||
|  | #         python-galaxy-groups | ||||||
|  | #         python-misc | ||||||
|  | #         packages-python | ||||||
|  | #         packages-lib32 | ||||||
| # ) | # ) | ||||||
|  |  | ||||||
| # TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux | # TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux | ||||||
|   | |||||||
| @@ -11,10 +11,10 @@ | |||||||
| # | # | ||||||
| #-- The download utilities that makepkg should use to acquire sources | #-- The download utilities that makepkg should use to acquire sources | ||||||
| #  Format: 'protocol::agent' | #  Format: 'protocol::agent' | ||||||
| DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u' | DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u' | ||||||
|           'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' |           'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' | ||||||
|           'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' |           'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' | ||||||
|           'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' |           'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' | ||||||
|           'rsync::/usr/bin/rsync --no-motd -z %u %o' |           'rsync::/usr/bin/rsync --no-motd -z %u %o' | ||||||
|           'scp::/usr/bin/scp -C %u %o') |           'scp::/usr/bin/scp -C %u %o') | ||||||
|  |  | ||||||
| @@ -49,8 +49,8 @@ LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" | |||||||
| #-- Make Flags: change this for DistCC/SMP systems | #-- Make Flags: change this for DistCC/SMP systems | ||||||
| #MAKEFLAGS="-j2" | #MAKEFLAGS="-j2" | ||||||
| #-- Debugging flags | #-- Debugging flags | ||||||
| DEBUG_CFLAGS="-g -fvar-tracking-assignments" | DEBUG_CFLAGS="-g" | ||||||
| DEBUG_CXXFLAGS="-g -fvar-tracking-assignments" | DEBUG_CXXFLAGS="-g" | ||||||
| #DEBUG_RUSTFLAGS="-C debuginfo=2" | #DEBUG_RUSTFLAGS="-C debuginfo=2" | ||||||
|  |  | ||||||
| ######################################################################### | ######################################################################### | ||||||
| @@ -93,7 +93,7 @@ BUILDENV=(!distcc color !ccache check !sign) | |||||||
| #-- debug:      Add debugging flags as specified in DEBUG_* variables | #-- debug:      Add debugging flags as specified in DEBUG_* variables | ||||||
| #-- lto:        Add compile flags for building with link time optimization | #-- lto:        Add compile flags for building with link time optimization | ||||||
| # | # | ||||||
| OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto) | OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto) | ||||||
|  |  | ||||||
| #-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2 | #-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2 | ||||||
| INTEGRITY_CHECK=(sha256) | INTEGRITY_CHECK=(sha256) | ||||||
|   | |||||||
| @@ -36,6 +36,11 @@ write_services_suite66_conf(){ | |||||||
|     write_services_conf 'svDir' '/etc/66/service' 'runsvDir' '/var/lib/66/system' > "$conf" |     write_services_conf 'svDir' '/etc/66/service' 'runsvDir' '/var/lib/66/system' > "$conf" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | write_services_dinit_conf(){ | ||||||
|  |     local conf="$1"/services-dinit.conf | ||||||
|  |     write_services_conf 'initdDir' '/etc/dinit.d' 'runsvDir' '/etc/dinit.d/boot.d' > "$conf" | ||||||
|  | } | ||||||
|  |  | ||||||
| configure_calamares(){ | configure_calamares(){ | ||||||
|     local mods="$1/etc/calamares/modules" |     local mods="$1/etc/calamares/modules" | ||||||
|     if [[ -d "$mods" ]];then |     if [[ -d "$mods" ]];then | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ prepare_initramfs_dracut(){ | |||||||
|     printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf |     printf "%s\n" 'add_dracutmodules+=" dmsquash-live"' > "$mnt"/etc/dracut.conf.d/50-live.conf | ||||||
|  |  | ||||||
|     msg "Starting build: %s" "${kver}" |     msg "Starting build: %s" "${kver}" | ||||||
|     artools-chroot "$mnt" dracut -fqM /boot/initramfs.img "$kver" |     artix-chroot "$mnt" dracut -fqM /boot/initramfs.img "$kver" | ||||||
|     msg "Image generation successful" |     msg "Image generation successful" | ||||||
|  |  | ||||||
|     cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img |     cp "$mnt"/boot/initramfs.img "${iso_root}"/boot/initramfs-"${arch}".img | ||||||
|   | |||||||
| @@ -5,13 +5,17 @@ | |||||||
| make_checksum(){ | make_checksum(){ | ||||||
|     local file="$1" |     local file="$1" | ||||||
|     msg2 "Creating md5sum ..." |     msg2 "Creating md5sum ..." | ||||||
|  |     cd "${iso_root}${live_dir}" | ||||||
|     md5sum "$file" > "$file".md5 |     md5sum "$file" > "$file".md5 | ||||||
|  |     cd "${OLDPWD}" | ||||||
| } | } | ||||||
|  |  | ||||||
| make_sig () { | make_sig () { | ||||||
|     local file="$1" |     local file="$1" | ||||||
|     msg2 "Creating signature file..." |     msg2 "Creating signature file..." | ||||||
|  |     chown "${owner}:$(id --group "${owner}")" "${iso_root}${live_dir}" | ||||||
|     su "${owner}" -c "gpg --detach-sign --output $file.sig --default-key ${GPG_KEY} $file" |     su "${owner}" -c "gpg --detach-sign --output $file.sig --default-key ${GPG_KEY} $file" | ||||||
|  |     chown "root:root" "${iso_root}${live_dir}" | ||||||
| } | } | ||||||
|  |  | ||||||
| export_gpg_publickey() { | export_gpg_publickey() { | ||||||
| @@ -36,7 +40,7 @@ prepare_initramfs_mkinitcpio() { | |||||||
|         export ARTIX_GNUPG_FD |         export ARTIX_GNUPG_FD | ||||||
|     fi |     fi | ||||||
|  |  | ||||||
|     artools-chroot "$mnt" mkinitcpio -k "$k" \ |     artix-chroot "$mnt" mkinitcpio -k "$k" \ | ||||||
|         -c /etc/"$mkinitcpio_conf" \ |         -c /etc/"$mkinitcpio_conf" \ | ||||||
|         -g /boot/initramfs.img |         -g /boot/initramfs.img | ||||||
|  |  | ||||||
|   | |||||||
| @@ -56,7 +56,8 @@ read_from_list() { | |||||||
| read_from_services() { | read_from_services() { | ||||||
|     for svc in "${SERVICES[@]}"; do |     for svc in "${SERVICES[@]}"; do | ||||||
|         case "$svc" in |         case "$svc" in | ||||||
|             sddm|gdm|lightdm|mdm|greetd|lxdm|xdm) packages+=("$svc-${INITSYS}") ;; |             sddm|gdm|lightdm|mdm|greetd|lxdm|xdm) | ||||||
|  |                 packages+=("$svc-${INITSYS}"); display_manager="$svc" ;; | ||||||
|             NetworkManager) packages+=("networkmanager-${INITSYS}") ;; |             NetworkManager) packages+=("networkmanager-${INITSYS}") ;; | ||||||
|             connmand) packages+=("connman-${INITSYS}") ;; |             connmand) packages+=("connman-${INITSYS}") ;; | ||||||
|             cupsd) packages+=("cups-${INITSYS}") ;; |             cupsd) packages+=("cups-${INITSYS}") ;; | ||||||
|   | |||||||
| @@ -23,24 +23,26 @@ add_svc_runit(){ | |||||||
| } | } | ||||||
|  |  | ||||||
| add_svc_s6(){ | add_svc_s6(){ | ||||||
|     local mnt="$1" names="$2" rlvl="${3:-default}" error ret |     local mnt="$1" names="$2" rlvl="${3:-default}" dep | ||||||
|     local db=/etc/s6/rc/compiled |     dep="$mnt"/etc/s6/sv/"$display_manager"-srv/dependencies.d | ||||||
|     for svc in $names; do |     for svc in $names; do | ||||||
|         error=false |  | ||||||
|         chroot "$mnt" s6-rc-db -c "$db" type "$svc" &> /dev/null || error=true |  | ||||||
|         ret="$?" |  | ||||||
|         if [ $ret -eq 0 ] && [[ "$error" == false ]]; then |  | ||||||
|         msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" |         msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" | ||||||
|             chroot "$mnt" s6-rc-bundle-update -c "$db" add "$rlvl" "$svc" |         chroot "$mnt" s6-service add "$rlvl" "$svc" | ||||||
|  |         if [[ "$svc" == "$display_manager" ]]; then | ||||||
|  |             if [[ -d "$dep" ]]; then | ||||||
|  |                 touch "$dep"/artix-live | ||||||
|  |             fi | ||||||
|         fi |         fi | ||||||
|     done |     done | ||||||
|  |  | ||||||
|     local rlvl=/etc/s6/current |     chroot "$mnt" s6-db-reload -r | ||||||
|  |  | ||||||
|  |     local src=/etc/s6/current skel=/etc/s6/skel getty='/usr/bin/agetty -L -8 tty7 115200' | ||||||
|     # rebuild s6-linux-init binaries |     # rebuild s6-linux-init binaries | ||||||
|     chroot "$mnt" rm -r "$rlvl" |     chroot "$mnt" rm -r "$src" | ||||||
|     chroot "$mnt" s6-linux-init-maker -1 -N -f /etc/s6/skel -G "/usr/bin/agetty -L -8 tty7 115200" -c "$rlvl" "$rlvl" |     chroot "$mnt" s6-linux-init-maker -1 -N -f "$skel" -G "$getty" -c "$src" "$src" | ||||||
|     chroot "$mnt" mv "$rlvl"/bin/init "$rlvl"/bin/s6-init |     chroot "$mnt" mv "$src"/bin/init "$src"/bin/s6-init | ||||||
|     chroot "$mnt" cp -a "$rlvl"/bin /usr |     chroot "$mnt" cp -a "$src"/bin /usr | ||||||
| } | } | ||||||
|  |  | ||||||
| add_svc_suite66(){ | add_svc_suite66(){ | ||||||
| @@ -53,4 +55,14 @@ add_svc_suite66(){ | |||||||
|     done |     done | ||||||
| } | } | ||||||
|  |  | ||||||
|  | add_svc_dinit(){ | ||||||
|  |     local mnt="$1" names="$2" | ||||||
|  |     for svc in $names; do | ||||||
|  |         if [[ -d $mnt/etc/dinit.d/boot.d ]]; then | ||||||
|  |             msg2 "Setting %s: [%s]" "${INITSYS}" "$svc" | ||||||
|  |             chroot "$mnt" ln -s ../"$svc" /etc/dinit.d/boot.d/"$svc" &>/dev/null | ||||||
|  |         fi | ||||||
|  |     done | ||||||
|  | } | ||||||
|  |  | ||||||
| #}}} | #}}} | ||||||
|   | |||||||
| @@ -67,16 +67,14 @@ make_sfs() { | |||||||
|  |  | ||||||
|         mksfs_args+=("${sfs_out}") |         mksfs_args+=("${sfs_out}") | ||||||
|  |  | ||||||
|         mksfs_args+=(-comp zstd -noappend) |         mksfs_args+=(-comp "${COMPRESSION}" "${COMPRESSION_ARGS[@]}" -noappend) | ||||||
|  |  | ||||||
|         mksquashfs "${mksfs_args[@]}" |         mksquashfs "${mksfs_args[@]}" | ||||||
|  |  | ||||||
|         if ! ${use_dracut}; then |         if ! ${use_dracut}; then | ||||||
|             make_checksum "${iso_root}${live_dir}/${img_name}" |             make_checksum "${img_name}" | ||||||
|             if [[ -n ${GPG_KEY} ]];then |             if [[ -n ${GPG_KEY} ]];then | ||||||
|                 chown "${owner}:$(id --group "${owner}")" "${iso_root}${live_dir}" |  | ||||||
|                 make_sig "${iso_root}${live_dir}/${img_name}" |                 make_sig "${iso_root}${live_dir}/${img_name}" | ||||||
|                 chown "root:root" "${iso_root}${live_dir}" |  | ||||||
|             fi |             fi | ||||||
|         fi |         fi | ||||||
|         if ${persist}; then |         if ${persist}; then | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ find_pkg(){ | |||||||
| tree_loop(){ | tree_loop(){ | ||||||
|     local func="$1" pkgs |     local func="$1" pkgs | ||||||
|     for tree in "${ARTIX_TREE[@]}"; do |     for tree in "${ARTIX_TREE[@]}"; do | ||||||
|         pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name repos -o -name "$CARCH" | sort) |         pkgs=$(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) | ||||||
|         for _package in ${pkgs}; do |         for _package in ${pkgs}; do | ||||||
|             "$func" "$_package" |             "$func" "$_package" | ||||||
|         done |         done | ||||||
|   | |||||||
| @@ -5,32 +5,31 @@ | |||||||
| msg_table_header(){ | msg_table_header(){ | ||||||
|     local mesg=$1; shift |     local mesg=$1; shift | ||||||
|     # shellcheck disable=2059 |     # shellcheck disable=2059 | ||||||
|     printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2 |     printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" | ||||||
| } | } | ||||||
|  |  | ||||||
| msg_row_yellow(){ | msg_row_yellow(){ | ||||||
|     local mesg=$1; shift |     local mesg=$1; shift | ||||||
|     # shellcheck disable=2059 |     # shellcheck disable=2059 | ||||||
|     printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2 |     printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" | ||||||
| } | } | ||||||
|  |  | ||||||
| msg_row_green(){ | msg_row_green(){ | ||||||
|     local mesg=$1; shift |     local mesg=$1; shift | ||||||
|     # shellcheck disable=2059 |     # shellcheck disable=2059 | ||||||
|     printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2 |     printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" | ||||||
| } | } | ||||||
|  |  | ||||||
| msg_row(){ | msg_row(){ | ||||||
|     local mesg=$1; shift |     local mesg=$1; shift | ||||||
| #     printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 |  | ||||||
|     # shellcheck disable=2059 |     # shellcheck disable=2059 | ||||||
|     printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" >&2 |     printf "${WHITE} ${mesg}${ALL_OFF}\n" "$@" | ||||||
| } | } | ||||||
|  |  | ||||||
| msg_row_red(){ | msg_row_red(){ | ||||||
|     local mesg=$1; shift |     local mesg=$1; shift | ||||||
|     # shellcheck disable=2059 |     # shellcheck disable=2059 | ||||||
|     printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2 |     printf "${RED} ${mesg} ${ALL_OFF}\n" "$@" | ||||||
| } | } | ||||||
|  |  | ||||||
| #}}} | #}}} | ||||||
|   | |||||||
| @@ -19,6 +19,18 @@ load_iso_config(){ | |||||||
|  |  | ||||||
|     GPG_KEY=${GPG_KEY:-''} |     GPG_KEY=${GPG_KEY:-''} | ||||||
|  |  | ||||||
|  |     COMPRESSION="${COMPRESSION:-zstd}" | ||||||
|  |  | ||||||
|  |     COMPRESSION_LEVEL="${COMPRESSION_LEVEL:-15}" | ||||||
|  |  | ||||||
|  |     if [[ -z "${COMPRESSION_ARGS[*]}" ]]; then | ||||||
|  |         COMPRESSION_ARGS=(-Xcompression-level "${COMPRESSION_LEVEL}") | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     if [[ "${COMPRESSION}" == 'xz' ]]; then | ||||||
|  |         COMPRESSION_ARGS=(-Xbcj x86) | ||||||
|  |     fi | ||||||
|  |  | ||||||
|     return 0 |     return 0 | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -23,19 +23,19 @@ load_pkg_config(){ | |||||||
|  |  | ||||||
|     ARTIX_TREE=( |     ARTIX_TREE=( | ||||||
|         packages community |         packages community | ||||||
|         packages-{gfx,gtk,media,net,qt5,xorg} |         packages-{gfx,media,net} | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     local dev_tree=( |     local dev_tree=( | ||||||
|         packages-{python,perl,java,ruby} |         packages-{llvm,python,perl,java,ruby,misc} | ||||||
|         python-{world,galaxy} |         python-{world,galaxy,galaxy-groups,misc} | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     local init_tree=(packages-{openrc,runit,s6,suite66}) |     local init_tree=(packages-{openrc,runit,s6,suite66,dinit}) | ||||||
|  |  | ||||||
|     local desktop_tree=( |     local desktop_tree=( | ||||||
|         packages-{kf5,plasma,kde,qt6} |         packages-{kf5,plasma,kde,qt5,qt6,xorg,gtk} | ||||||
|         packages-{lxqt,gnome,cinnamon,mate,xfce,wm} |         packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde} | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ |     [[ -z ${TREE_NAMES_ARTIX[*]} ]] && \ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user