Compare commits

...

21 Commits

Author SHA1 Message Date
02edf46d6a buildtree: set maintainer 2022-06-10 00:41:08 +02:00
860d2272ba buildtree: don't braid push ci 2022-06-09 01:26:01 +02:00
0d9e54c4e3 buildtree: braid push the ci fiiles 2022-06-09 00:09:37 +02:00
26bd425d55 buildtree: add func to set maintainer 2022-06-08 10:04:23 +02:00
c08f82044c commitpkg: only run braid update if push is success 2022-06-06 18:05:10 +02:00
74af21ca25 batchpkg: drop -u arg on move 2022-06-06 12:44:21 +02:00
e3b8439b04 commitpkg: fix update msg 2022-06-06 01:35:24 +02:00
e00096d503 braid (#63)
* use braid instead of git-subrepo

Reviewed-on: artix/artools#63
2022-06-06 01:28:53 +02:00
f7ebc6bd11 mkdepgraph: include mode to graph artix-rebuild-order output 2022-05-28 09:30:37 +02:00
b5fa7084b2 mkdepgraph: remove printf vars 2022-05-27 19:58:03 +02:00
7eabdb0e46 add mkdepgraph 2022-05-27 19:54:00 +02:00
10c013bf33 data: update makepkg.conf 2022-05-27 19:54:00 +02:00
74618d77a5 comparepkg: don't check for result when moving 2022-05-12 13:06:56 +02:00
196761740b repo: rename var 2022-05-09 15:24:05 +02:00
a814655956 repo: simplify find_repo() return 2022-05-08 23:37:02 +02:00
7b03050ab9 comparepkg: rename var 2022-05-08 20:59:38 +02:00
0b1ff8d060 comparepkg: fix var 2022-05-08 19:12:09 +02:00
f66761aa57 comparepkg: use get_group() 2022-05-08 19:10:30 +02:00
f33d9bdac1 artix-chroot: remove obsolete help 2022-05-03 22:54:52 +02:00
f50c66cdd7 artix-chroot: remove -a arg 2022-05-03 22:45:58 +02:00
fd1bc87ef0 makefile: remove compat symlink, remove deploypkg symlinks 2022-05-03 22:45:27 +02:00
14 changed files with 206 additions and 311 deletions

View File

@@ -1,4 +1,4 @@
V=0.27 V=0.28
TOOLS = artools TOOLS = artools
PREFIX ?= /usr PREFIX ?= /usr
@@ -41,7 +41,8 @@ PKG_BIN = \
bin/pkg/signpkg \ bin/pkg/signpkg \
bin/pkg/checkrepo \ bin/pkg/checkrepo \
bin/pkg/gitearepo \ bin/pkg/gitearepo \
bin/pkg/tidyarch bin/pkg/tidyarch \
bin/pkg/mkdepgraph
LN_COMMITPKG = \ LN_COMMITPKG = \
extrapkg \ extrapkg \
@@ -72,20 +73,6 @@ LN_BUILDPKG = \
buildpkg-kde-wobble \ buildpkg-kde-wobble \
buildpkg-gnome-wobble buildpkg-gnome-wobble
LN_DEPLOYPKG = \
deploypkg-system \
deploypkg-world \
deploypkg-gremlins \
deploypkg-goblins \
deploypkg-galaxy \
deploypkg-galaxy-gremlins \
deploypkg-galaxy-goblins \
deploypkg-lib32 \
deploypkg-lib32-gremlins \
deploypkg-lib32-goblins \
deploypkg-kde-wobble \
deploypkg-gnome-wobble
PKG_DATA = \ PKG_DATA = \
data/pacman/makepkg.conf \ data/pacman/makepkg.conf \
data/valid-names.conf data/valid-names.conf
@@ -156,9 +143,6 @@ install_pkg:
for l in $(LN_COMMITPKG); do $(LN) commitpkg $(DESTDIR)$(BINDIR)/$$l; done for l in $(LN_COMMITPKG); do $(LN) commitpkg $(DESTDIR)$(BINDIR)/$$l; done
for l in $(LN_BUILDPKG); do $(LN) buildpkg $(DESTDIR)$(BINDIR)/$$l; done for l in $(LN_BUILDPKG); do $(LN) buildpkg $(DESTDIR)$(BINDIR)/$$l; done
for l in $(LN_DEPLOYPKG); do $(LN) deploypkg $(DESTDIR)$(BINDIR)/$$l; done
$(LN) artix-chroot $(DESTDIR)$(BINDIR)/artools-chroot
install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS) install $(DIRMODE) $(DESTDIR)$(DATADIR)/$(TOOLS)
install $(FILEMODE) $(PKG_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS) install $(FILEMODE) $(PKG_DATA) $(DESTDIR)$(DATADIR)/$(TOOLS)

View File

@@ -23,7 +23,7 @@ artools
- pkg: - pkg:
* namcap * namcap
* git-subrepo * ruby-braid
* rsync * rsync
- iso: - iso:

View File

@@ -18,112 +18,21 @@ m4_include(lib/base/message.sh)
m4_include(lib/base/chroot.sh) m4_include(lib/base/chroot.sh)
m4_include(lib/base/mount.sh) m4_include(lib/base/mount.sh)
#{{{ functions
chroot_part_mount() {
msg2 "mount: [%s]" "$2"
mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}")
}
chroot_part_umount() {
chroot_api_umount
msg2 "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
unset CHROOT_ACTIVE_PART_MOUNTS
}
detect(){
local detected
detected="$(os-prober | tr ' ' '_' | paste -s -d ' ')"
printf "%s\n" "${detected}"
}
# $1: os-prober array
get_os_name(){
local str=$1
str="${str#*:}"
str="${str#*:}"
str="${str%:*}"
printf "%s\n" "$str"
}
mount_os(){
CHROOT_ACTIVE_PART_MOUNTS=()
CHROOT_ACTIVE_MOUNTS=()
trap_setup chroot_part_umount
chroot_part_mount "$2" "$1"
local mounts
mounts=$(perl -ane 'printf("%s:%s\n", @F[0,1]) if $F[0] =~ m#^UUID=#;' "$1"/etc/fstab)
for entry in ${mounts}; do
entry=${entry//UUID=}
local dev=${entry%:*} mp=${entry#*:}
case "${entry#*:}" in
'/'|'swap'|'none') continue ;;
*) chroot_part_mount "/dev/disk/by-uuid/${dev}" "$1${mp}" ;;
esac
done
chroot_setup "$1" true
chroot_add_resolv_conf "$1"
}
select_os(){
local os_list=( "$(detect)" ) count=${#os_list[@]}
if [[ ${count} -gt 1 ]];then
msg "Detected systems:"
local i=0
for os in "${os_list[@]}"; do
local last=${os##*:}
case $last in
'efi') count=$((count-1)) ;;
*) msg2 "$i) $(get_os_name "$os")"; i=$((i+1)) ;;
esac
done
i=0
msg "Select system to mount [0-%s] : " "$((count-1))"
read -r select
else
select=0
fi
local os_str=${os_list[$select]} type
type=$os_str
root=${os_str%%:*}
type=${type##*:}
if [[ "${type##*:}" == 'linux' ]];then
msg "Mounting (%s) [%s]" "$(get_os_name "$os_str")" "$root"
mount_os "$1" "$root"
else
die "You can't mount %s!" "$select"
fi
}
#}}}
automount=false
usage() { usage() {
printf 'usage: %s -a [or] %s chroot-dir [command]\n' "${0##*/}" "${0##*/}" printf 'usage: %s chroot-dir [command]\n' "${0##*/}"
printf ' -a Automount detected linux system\n'
printf ' -h Print this help message\n' printf ' -h Print this help message\n'
printf '\n' printf '\n'
printf " If 'command' is unspecified, %s will launch /bin/sh.\n" "${0##*/}" printf " If 'command' is unspecified, %s will launch /bin/sh.\n" "${0##*/}"
printf '\n' printf '\n'
printf " If 'automount' is true, %s will launch /bin/bash\n" "${0##*/}"
printf ' and %s\n' "${chrootdir}"
printf '\n'
printf '\n' printf '\n'
exit "$1" exit "$1"
} }
opts=':ha' opts=':h'
while getopts ${opts} arg; do while getopts ${opts} arg; do
case "${arg}" in case "${arg}" in
a) automount=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
esac esac
done done
@@ -131,20 +40,12 @@ shift $(( OPTIND - 1 ))
check_root check_root
if ${automount};then chrootdir=$1
chrootdir=/mnt shift
run_args=(/bin/bash)
select_os "${chrootdir}" [[ -d ${chrootdir} ]] || die "Can't create chroot on non-directory %s" "${chrootdir}"
else
chrootdir=$1
shift
run_args=("$@")
[[ -d ${chrootdir} ]] || die "Can't create chroot on non-directory %s" "${chrootdir}" chroot_api_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}"
chroot_add_resolv_conf "${chrootdir}"
chroot_api_mount "${chrootdir}" || die "failed to setup API filesystems in chroot %s" "${chrootdir}" SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "$@"
chroot_add_resolv_conf "${chrootdir}"
fi
SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "${run_args[@]}"

View File

@@ -28,9 +28,9 @@ batch_move() {
src=${src#*:} src=${src#*:}
local dest=${entry%%:*} local dest=${entry%%:*}
if ${runlist}; then if ${runlist}; then
"${dest}"pkg -s "${src}" -u -p "${pkg}" "${dest}"pkg -s "${src}" -p "${pkg}"
else else
msg "%s" "${dest}pkg -s ${src} -u -p ${pkg}" msg "%s" "${dest}pkg -s ${src} -p ${pkg}"
fi fi
done < "$pkglist" done < "$pkglist"
} }
@@ -65,10 +65,10 @@ batch_update() {
local dest=${entry%:*} local dest=${entry%:*}
if ${runlist}; then if ${runlist}; then
buildtree -i -p "${pkg}" buildtree -i -p "${pkg}"
"${dest}"pkg -u -p "${pkg}" "${dest}"pkg -p "${pkg}"
else else
msg "buildtree -i -p ${pkg}" msg "buildtree -i -p ${pkg}"
msg2 "${dest}pkg -u -p ${pkg}" msg2 "${dest}pkg -p ${pkg}"
fi fi
done < "$pkglist" done < "$pkglist"
} }
@@ -78,8 +78,8 @@ batch_update() {
usage() { usage() {
printf 'Usage: %s [optional listname]\n' "${0##*/}" printf 'Usage: %s [optional listname]\n' "${0##*/}"
printf ' -r Run generated commands\n' printf ' -r Run generated commands\n'
printf ' -c Create subrepos from list\n' printf ' -c Create pkgrepos from list\n'
printf ' -u Update subrepos from list\n' printf ' -u Update pkgrepos from list\n'
printf ' -h This help\n' printf ' -h This help\n'
printf '\n' printf '\n'
printf '\n' printf '\n'

View File

@@ -23,23 +23,31 @@ m4_include(lib/pkg/jenkins.sh)
#{{{ new git repo #{{{ new git repo
subrepo_new(){ pkgrepo_new(){
cd "${TREE_DIR_ARTIX}/${group}" || return cd "${TREE_DIR_ARTIX}/${group}" || return
local org gitname local org gitname
org=$(get_pkg_org "${package}") org=$(get_pkg_org "${package}")
gitname=$(get_compliant_name "${package}") gitname=$(get_compliant_name "${package}")
gitearepo -cr "$gitname" if [[ ! -d "${package}" ]]; then
gitearepo -cr "$gitname"
add_team_to_repo "$gitname" "$org" "${team}" add_team_to_repo "$gitname" "$org" "${team}"
msg2 "Subrepo clone [%s] from (%s)" "${package}" "$org/$gitname" msg2 "Adding [%s] from (%s)" "${package}" "$org/$gitname"
git subrepo clone "${GIT_SSH}":"$org/$gitname".git "${package}" braid add "${GIT_SSH}":"$org/$gitname".git "${package}"
prepare_dir "${TREE_DIR_ARTIX}/${group}/${package}/trunk" prepare_dir "${TREE_DIR_ARTIX}/${group}/${package}/trunk"
commit_jenkins_files "${package}" commit_ci "${package}"
# if braid push "${package}"; then
# braid update "${package}"
# fi
else
die "Package %s already exists!" "${package}"
fi
} }
#}}} #}}}
@@ -52,7 +60,7 @@ config_tree() {
Artix) Artix)
if "$vars"; then if "$vars"; then
dist_tree=("${ARTIX_TREE[@]}") dist_tree=("${ARTIX_TREE[@]}")
dist_url="${GIT_SSH}:artixlinux" dist_url="${GIT_SSH}:pkgbuild"
dist_dir=${TREE_DIR_ARTIX} dist_dir=${TREE_DIR_ARTIX}
else else
git config --bool pull.rebase true git config --bool pull.rebase true
@@ -102,11 +110,20 @@ update_tree() {
#{{{ patch #{{{ patch
set_maintainer() {
local name email path="$1"
name=$(git config --get user.name)
email=$(git config --get user.email)
sed -e "1s|Maintainer:.*|Maintainer: $name <$email>|" \
-i "$path"/PKGBUILD
}
patch_pkg(){ 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 sed -e 's|arch-meson|artix-meson|' -i "$pkgpath"/PKGBUILD
set_maintainer "$pkgpath"
case $pkg in case $pkg in
glibc) glibc)
msg2 "Patching %s" "$pkg" msg2 "Patching %s" "$pkg"
@@ -188,14 +205,14 @@ from_arch(){
[[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}" [[ -z $srcpath ]] && die "Package '%s' does not exist!" "${package}"
repo=$(find_repo "$srcpath") repo=$(find_repo "$srcpath")
msg "repo: %s" "${repo#*/}" msg "repo: %s" "$repo"
archpath=$srcpath/$repo archpath=$srcpath/repos/$repo
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
show_deps "$archpath" show_deps "$archpath"
if [[ -f "$artixpath"/.gitrepo ]]; then if [[ -f "$artixpath"/Jenkinsfile ]]; then
artixpath="$artixpath"/trunk artixpath="$artixpath"/trunk
if [[ -d "$artixpath" ]];then if [[ -d "$artixpath" ]];then
@@ -214,7 +231,7 @@ view_build(){
archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}") archpath=$(find_pkg "${TREE_DIR_ARCH}" "${package}")
[[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}" [[ -z $archpath ]] && die "Package '%s' does not exist!" "${package}"
repo=$(find_repo "${archpath}") repo=$(find_repo "${archpath}")
archpath=$archpath/$repo archpath=$archpath/repos/$repo
msg "repo: %s" "${repo#*/}" msg "repo: %s" "${repo#*/}"
show_deps "$archpath" show_deps "$archpath"
} }
@@ -269,7 +286,7 @@ usage() {
printf " -a Don't clone or pull arch repos\n" printf " -a Don't clone or pull arch repos\n"
printf " -b Don't clone or pull artix repos\n" printf " -b Don't clone or pull artix repos\n"
printf ' -i Import a package from arch repos\n' printf ' -i Import a package from arch repos\n'
printf ' -n New remote subrepo and clone it\n' printf ' -n New remote pkgrepo and add it\n'
printf ' -v Check if a package is in the artix tree(s)\n' printf ' -v Check if a package is in the artix tree(s)\n'
printf ' -c View package depends\n' printf ' -c View package depends\n'
printf ' -x Exclude testing (only with -i)\n' printf ' -x Exclude testing (only with -i)\n'
@@ -314,4 +331,4 @@ ${check} && check_tree
${import} && from_arch ${import} && from_arch
${createnew} && subrepo_new ${createnew} && pkgrepo_new

View File

@@ -22,30 +22,6 @@ m4_include(lib/pkg/repo.sh)
#{{{ functions #{{{ functions
push_tree(){
local tree="$1"
msg "Update (%s)" "${tree}"
git push origin master
}
subrepo_push(){
local pkg="$1"
msg2 "Subrepo push (%s)" "$pkg"
git subrepo push "$pkg" || die "%s push failed" "$pkg"
}
subrepo_clean(){
local pkg="$1"
msg2 "Subrepo clean (%s)" "$pkg"
git subrepo clean "$pkg"
}
subrepo_pull(){
local pkg="$1"
msg2 "Subrepo pull (%s)" "$pkg"
git subrepo pull "$pkg"
}
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
@@ -135,11 +111,11 @@ repo_commit_pkg() {
} }
run(){ run(){
local artixpath head group local artixpath head tree
artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}") artixpath=$(find_pkg "${TREE_DIR_ARTIX}" "${package}")
if [[ -n ${artixpath} ]];then if [[ -n ${artixpath} ]];then
group=${artixpath%/*} tree=${artixpath%/*}
cd "${group}" || return cd "$tree" || return
head=$(get_local_head) head=$(get_local_head)
cd "${artixpath}" || return cd "${artixpath}" || return
@@ -152,21 +128,20 @@ run(){
repo_commit_pkg repo_commit_pkg
fi fi
cd "${group}" || return cd "$tree" || return
if ${push}; then msg "Checking (%s) (Artix)" "${tree##*/}"
msg "Checking (%s) (Artix)" "${group##*/}" pull_tree "${tree##*/}" "$head"
pull_tree "${group##*/}" "$head"
if braid push "${package}"; then
braid update "${package}"
msg "Update (%s)" "${tree##*/}"
git push origin master
git prune
[[ "${cmd}" != 'commitpkg' ]] && check_team
else
warning "'braid push %s' failed.\n" "${package}"
fi fi
subrepo_push "${package}"
subrepo_clean "${package}"
${push} && push_tree "${group##*/}"
git prune
[[ "${cmd}" != 'commitpkg' ]] && check_team
else else
die "Package '%s' does not exist!" "${package}" die "Package '%s' does not exist!" "${package}"
fi fi
@@ -192,7 +167,6 @@ load_valid_names
repo_src='trunk' repo_src='trunk'
package='' package=''
remove=false remove=false
push=false
pkgbuild=trunk/PKGBUILD pkgbuild=trunk/PKGBUILD
@@ -204,21 +178,19 @@ usage() {
printf " -s <name> Source repository [default: %s]\n" "${repo_src}" printf " -s <name> Source repository [default: %s]\n" "${repo_src}"
printf ' -p <pkg> Package name\n' printf ' -p <pkg> Package name\n'
printf ' -r Delete from repo (commitpkg only)\n' printf ' -r Delete from repo (commitpkg only)\n'
printf ' -u Push\n'
printf ' -h This help\n' printf ' -h This help\n'
printf '\n' printf '\n'
printf '\n' printf '\n'
exit "$1" exit "$1"
} }
opts='p:s:urh' opts='p:s:rh'
while getopts "${opts}" arg; do while getopts "${opts}" arg; do
case "${arg}" in case "${arg}" in
s) repo_src="$OPTARG" ;; s) repo_src="$OPTARG" ;;
p) package="$OPTARG" ;; p) package="$OPTARG" ;;
r) remove=true ;; r) remove=true ;;
u) push=true ;;
h|?) usage 0 ;; h|?) usage 0 ;;
esac esac
done done

View File

@@ -31,23 +31,32 @@ write_list(){
printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/"$name".list printf "%s\n" "$line" >> "${TREE_DIR_ARTIX}"/"$name".list
} }
get_group() {
local group
group="${artixpath%/*}"
group=${group##*/}
printf "%s\n" "${group#*-}"
}
compare_m(){ compare_m(){
case ${artixrepo} in # if [ "$result" -eq 0 ];then
*testing*|*staging*|*rebuild) case "$artixrepo" in
if [[ "${a}" == "${b}" ]]; then *testing*|*staging*|*rebuild)
msg_row "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" if [[ "${archrepo}" == "${artixrepo}" ]]; then
elif [[ "${a}" == 'staging' && "${b}" == 'rebuild' ]]; then msg_row "${table}" "${archrepo}" "${artixrepo}" "$pkg" "$archver" "$artixver" "$(get_group)"
msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" elif [[ "${archrepo}" == 'staging' && "${artixrepo}" == 'rebuild' ]]; then
else msg_row_yellow "${table}" "${archrepo}" "${artixrepo}" "$pkg" "$archver" "$artixver" "$(get_group)"
msg_row_green "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}"
if [[ -n "$archrepo" ]]; then
write_list "${a}:${b}:$pkg" pkg_moves
else else
write_list "@repo@:${b}:$pkg" artix msg_row_green "${table}" "${archrepo}" "${artixrepo}" "$pkg" "$archver" "$artixver" "$(get_group)"
if [[ -n "${archrepo}" ]]; then
write_list "${archrepo}:${artixrepo}:$pkg" pkg_moves
else
write_list "@repo@:${artixrepo}:$pkg" artix
fi
fi fi
fi ;;
;; esac
esac # fi
} }
compare_u(){ compare_u(){
@@ -55,15 +64,15 @@ compare_u(){
# local arel=${archver##*-} brel=${artixver##*-} # local arel=${archver##*-} brel=${artixver##*-}
# local reldiff # local reldiff
# reldiff=$(( $arel-${brel%.*} )) # reldiff=$(( $arel-${brel%.*} ))
msg_row_red "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_red "${table}" "${archrepo}" "${artixrepo}" "$pkg" "$archver" "$artixver" "$(get_group)"
write_list "${a}:$pkg" pkg_upgrades write_list "${archrepo}:$pkg" pkg_upgrades
fi fi
} }
compare_d(){ compare_d(){
if [ "$result" -eq 1 ];then if [ "$result" -eq 1 ];then
if [[ -n "$archver" ]] && [[ -n "$archrepo" ]];then if [[ -n "$archver" ]] && [[ -n "${archrepo}" ]];then
msg_row_yellow "${table}" "${a}" "${b}" "$pkg" "$archver" "$artixver" "${group#*-}" msg_row_yellow "${table}" "${archrepo}" "${artixrepo}" "$pkg" "$archver" "$artixver" "$(get_group)"
fi fi
fi fi
} }
@@ -78,27 +87,22 @@ get_archpath(){
} }
pre_compare(){ pre_compare(){
local func="$1" pkgpath="$2" result group pkg local artixpath="$1" func="$2" pkg
group="${pkgpath%/*}" pkg=${artixpath##*/}
group=${group##*/}
pkg=${pkgpath##*/}
local artixrepo archrepo pkgbuild artixver archver archpath node a b local artixrepo archrepo pkgbuild artixver archver archpath epoch
artixrepo=$(find_repo "$pkgpath")
pkgbuild=$pkgpath/$artixrepo/PKGBUILD
if [[ -f $pkgbuild ]]; then artixrepo=$(find_repo "$artixpath")
pkgbuild=$artixpath/$CARCH/$artixrepo/PKGBUILD
if [[ -f "$pkgbuild" ]]; then
# shellcheck disable=1090 # shellcheck disable=1090
. "$pkgbuild" 2>/dev/null . "$pkgbuild" 2>/dev/null
artixver=$(get_full_version) artixver=$(get_full_version)
archpath=$(get_archpath "$pkg") archpath=$(get_archpath "$pkg")
archrepo=$(find_repo "${archpath}") archrepo=$(find_repo "$archpath")
pkgbuild=$archpath/$archrepo/PKGBUILD pkgbuild=$archpath/repos/$archrepo/PKGBUILD
node=${artixrepo%/*} archrepo="${archrepo%-*}"
a=${archrepo#*/} b=${artixrepo#*/}
a="${a%-*}"
[[ "$node" != "$CARCH" ]] && b=${b%-*}
if [[ -f "$pkgbuild" ]]; then if [[ -f "$pkgbuild" ]]; then
# shellcheck disable=1090 # shellcheck disable=1090
@@ -106,27 +110,26 @@ pre_compare(){
archver=$(get_full_version) archver=$(get_full_version)
fi fi
local result
result=$(vercmp "$artixver" "$archver") result=$(vercmp "$artixver" "$archver")
"$func" "$func"
unset epoch
fi fi
} }
compare_upgrades(){ compare_upgrades(){
local pkgpath="${1%/*}" local artixpath="${1%/*}"
pre_compare compare_u "$pkgpath" pre_compare "$artixpath" compare_u
} }
compare_downgrades(){ compare_downgrades(){
local pkgpath="${1%/*}" local artixpath="${1%/*}"
pre_compare compare_d "$pkgpath" pre_compare "$artixpath" compare_d
} }
compare_move(){ compare_move(){
local pkgpath="${1%/*}" local artixpath="${1%/*}"
pre_compare compare_m "$pkgpath" pre_compare "$artixpath" compare_m
} }
#}}} #}}}
@@ -165,7 +168,7 @@ upgrades=false
downgrades=false downgrades=false
move=false move=false
readonly table="%-18s %-18s %-25s %-27s %-27s %-10s" readonly table="%-18s %-18s %-29s %-27s %-27s %-7s"
usage() { usage() {
printf 'Usage: %s [options]\n' "${0##*/}" printf 'Usage: %s [options]\n' "${0##*/}"

77
bin/pkg/mkdepgraph.in Normal file
View File

@@ -0,0 +1,77 @@
#!/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.
mk_tree_graph(){
printf "%s\n" "$(pactree "${tree_args[@]}" "${package}")" \
| dot -T "${ext}" > "${graph_dir}/${package}.${ext}"
}
mk_rebuild_graph(){
local tmpfile
tmpfile=/tmp/rebuild.dot
rebuild_args+=(-d "${tmpfile}")
artix-rebuild-order "${packages[@]}" "${rebuild_args[@]}"
dot -T "${ext}" "${tmpfile}" > "${graph_dir}/rebuild.${ext}"
rm -f "${tmpfile}"
}
usage() {
printf "Usage: %s [options] <package|packages>\n" "${0##*/}"
printf " -m <tree|rebuild> default mode: [%s]\n" "$mode"
printf " rebuild mode accepts packages input\n"
printf " -r list packages that depend on the named package (tree)\n"
printf " -u show dependencies with no duplicates (tree)\n"
printf " -d <#> limit the depth of recursion (tree)\n"
printf " default: [%s]\n" "$depth"
printf " -o <#> controls at which depth to stop printing optional deps\n"
printf " default: [%s]\n" "$optdepth"
printf " (-1 for no limit) (tree)\n"
printf " -i only use the pkgnames provided as input (rebuild)\n"
printf " -h display this help message\n"
exit "$1"
}
graph_dir=${XDG_PICTURES_DIR:-$(xdg-user-dir PICTURES)/artix}
ext="png"
mode=tree
tree_args=(-gs)
rebuild_args=()
depth=0
optdepth=-1
opts=':m:d:o:iruh'
while getopts "$opts" arg; do
case "${arg}" in
m) mode="$OPTARG" ;;
r) tree_args+=(-r) ;;
u) tree_args+=(-ul) ;;
d) depth="$OPTARG"; tree_args+=(-d "$depth") ;;
o) optdepth="$OPTARG"; tree_args+=(-o"$optdepth") ;;
i) rebuild_args+=(--no-reverse-depends) ;;
h|?) usage 0 ;;
esac
done
shift $(( OPTIND - 1 ))
[[ -d "${graph_dir}" ]] || mkdir -p "${graph_dir}"
case "$mode" in
tree) package=("$@"); mk_tree_graph ;;
rebuild) packages=("$@"); mk_rebuild_graph ;;
*) usage 1 ;;
esac

View File

@@ -7,47 +7,13 @@
# TREE_DIR_ARTIX=${WORKSPACE_DIR}/artixlinux # TREE_DIR_ARTIX=${WORKSPACE_DIR}/artixlinux
# customize buildtree; uncomment to include # customize buildtree
# TREE_NAMES_ARTIX=( # ARTIX_TREE=(
# packages-kernel # main
# packages-llvm # initsys
# packages-openrc # desktop
# packages-runit # addons
# packages-s6 # lib32
# packages-suite66
# packages-dinit
# packages-perl
# packages-java
# packages-ruby
# packages-gtk
# packages-qt5
# packages-qt6
# packages-xorg
# packages-plasma
# kde-utils
# kde-devel
# kde-media
# kde-games
# kde-edu
# kde-net
# kde-pim
# packages-gnome
# packages-cinnamon
# packages-lxqt
# packages-lxde
# packages-mate
# packages-xfce
# packages-wm
# packages-devel
# packages-qt6
# packages-office
# packages-misc
# python-world
# python-galaxy
# python-galaxy-groups
# python-misc
# packages-python
# packages-lib32
# ) # )
# TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux # TREE_DIR_ARCH=${WORKSPACE_DIR}/archlinux

View File

@@ -45,12 +45,13 @@ CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-fstack-clash-protection -fcf-protection" -fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
LTOFLAGS="-flto=auto"
#RUSTFLAGS="-C opt-level=2" #RUSTFLAGS="-C opt-level=2"
#-- 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" DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="-g" DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
#DEBUG_RUSTFLAGS="-C debuginfo=2" #DEBUG_RUSTFLAGS="-C debuginfo=2"
######################################################################### #########################################################################

View File

@@ -5,7 +5,8 @@
get_compliant_name(){ get_compliant_name(){
local gitname="$1" local gitname="$1"
case "$gitname" in case "$gitname" in
*+) gitname=${gitname//+/plus} *+) gitname=${gitname//+/plus} ;;
*+*) gitname=${gitname//+/-} ;;
esac esac
printf "%s\n" "$gitname" printf "%s\n" "$gitname"
} }

View File

@@ -31,7 +31,7 @@ write_agentyaml(){
git add "$agent" git add "$agent"
} }
commit_jenkins_files(){ commit_ci(){
local pkg="$1" local pkg="$1"
write_jenkinsfile "$pkg" write_jenkinsfile "$pkg"

View File

@@ -25,9 +25,9 @@ set_arch_repos(){
find_repo(){ find_repo(){
local pkg="$1" pkgarch="${2:-${CARCH}}" repo local pkg="$1" pkgarch="${2:-${CARCH}}" repo
for r in "${ARCH_REPOS[@]}"; do for r in "${ARCH_REPOS[@]}"; do
[[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo=repos/"$r-$pkgarch" [[ -f $pkg/repos/$r-$pkgarch/PKGBUILD ]] && repo="$r-$pkgarch"
[[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo=repos/"$r"-any [[ -f $pkg/repos/$r-any/PKGBUILD ]] && repo="$r"-any
[[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$pkgarch/$r" [[ -f $pkg/$pkgarch/$r/PKGBUILD ]] && repo="$r"
done done
printf "%s\n" "$repo" printf "%s\n" "$repo"
} }
@@ -42,8 +42,8 @@ tree_loop(){
local func="$1" pkgs local func="$1" pkgs
for tree in "${ARTIX_TREE[@]}"; do for tree in "${ARTIX_TREE[@]}"; do
mapfile -t pkgs < <(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort) mapfile -t pkgs < <(find "${TREE_DIR_ARTIX}/$tree" -name "$CARCH" | sort)
for _package in "${pkgs[@]}"; do for p in "${pkgs[@]}"; do
"$func" "$_package" "$func" "$p"
done done
done done
} }

View File

@@ -21,35 +21,8 @@ load_pkg_config(){
TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"} TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"}
ARTIX_TREE=( [[ -z ${ARTIX_TREE[*]} ]] && \
packages community ARTIX_TREE=(main initsys desktop addons lib32)
packages-{llvm,gfx,media,net}
)
local dev_tree=(
packages-{python,perl,java,ruby,misc}
python-{world,galaxy,galaxy-groups,misc}
)
local init_tree=(packages-{openrc,runit,s6,suite66,dinit})
local desktop_tree=(
packages-{xorg,gtk,qt5,qt6,kf5,plasma}
kde-{utils,devel,net,pim,media,edu,games}
packages-{lxqt,gnome,cinnamon,mate,xfce,wm,lxde}
)
[[ -z ${TREE_NAMES_ARTIX[*]} ]] && \
TREE_NAMES_ARTIX=(
packages-kernel
"${init_tree[@]}"
"${dev_tree[@]}"
"${desktop_tree[@]}"
packages-devel
packages-lib32
)
ARTIX_TREE+=("${TREE_NAMES_ARTIX[@]}")
TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"} TREE_DIR_ARCH=${TREE_DIR_ARCH:-"${WORKSPACE_DIR}/archlinux"}