forked from artix/artools
		
	Compare commits
	
		
			31 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 184259c600 | ||
|   | b95c7dee0d | ||
|   | c7c67fbc21 | ||
|   | 21a5c7e916 | ||
|   | 62810d1d85 | ||
|   | 865bd20674 | ||
|   | b46b5c626e | ||
|   | 9ac4576666 | ||
|   | a88f196217 | ||
|   | c0e8ef4c26 | ||
|   | 02b28e82ef | ||
|   | fb6d1d4c1b | ||
|   | 9fc3fbd14d | ||
|   | 72f2781cb9 | ||
|   | 9ddd73c8b4 | ||
|   | 3c92d5c87a | ||
|   | bc8f17cc86 | ||
|   | 1ceb6926e9 | ||
|   | 4d3a993a72 | ||
|   | a52bdc9799 | ||
|   | b62e90f778 | ||
|   | 5d2fda793d | ||
|   | 550663cfd1 | ||
|   | 6c117fb97d | ||
|   | 7e6d832314 | ||
|   | 6fc7b124fc | ||
|   | a011005901 | ||
|   | 5da4fea263 | ||
|   | e1b8a0493b | ||
|   | 8fe1e82226 | ||
|   | aa8725518b | 
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,5 +1,7 @@ | |||||||
| Version=0.7 | Version=0.7 | ||||||
|  |  | ||||||
|  | Chroot_version=0.7 | ||||||
|  |  | ||||||
| PREFIX = /usr/local | PREFIX = /usr/local | ||||||
| SYSCONFDIR = /etc | SYSCONFDIR = /etc | ||||||
|  |  | ||||||
| @@ -97,7 +99,8 @@ all: $(BIN_BASE) $(BIN_PKG) $(BIN_ISO) | |||||||
| edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \ | edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \ | ||||||
| 	-e "s|@sysconfdir[@]|$(DESTDIR)$(SYSCONFDIR)/artools|g" \ | 	-e "s|@sysconfdir[@]|$(DESTDIR)$(SYSCONFDIR)/artools|g" \ | ||||||
| 	-e "s|@libdir[@]|$(DESTDIR)$(PREFIX)/lib/artools|g" \ | 	-e "s|@libdir[@]|$(DESTDIR)$(PREFIX)/lib/artools|g" \ | ||||||
| 	-e "s|@version@|${Version}|" | 	-e "s|@version@|${Version}|" \ | ||||||
|  | 	-e "s|@chroot_version@|${Chroot_version}|" | ||||||
|  |  | ||||||
| %: %.in Makefile | %: %.in Makefile | ||||||
| 	@echo "GEN $@" | 	@echo "GEN $@" | ||||||
|   | |||||||
							
								
								
									
										111
									
								
								bin/buildtree.in
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								bin/buildtree.in
									
									
									
									
									
								
							| @@ -19,42 +19,17 @@ DATADIR='@datadir@' | |||||||
| import ${LIBDIR}/util.sh | import ${LIBDIR}/util.sh | ||||||
| import ${LIBDIR}/util-pkg.sh | import ${LIBDIR}/util-pkg.sh | ||||||
|  |  | ||||||
| pull_tree(){ |  | ||||||
|     local branch="master" tree="$1" |  | ||||||
|     local local_head=$(get_local_head "$branch") |  | ||||||
|     local remote_head=$(get_remote_head "$branch") |  | ||||||
|     local timer=$(get_timer) |  | ||||||
|     msg "Checking [%s] ..." "$tree" |  | ||||||
|     msg2 "local: %s" "${local_head}" |  | ||||||
|     msg2 "remote: %s" "${remote_head}" |  | ||||||
|     if [[ "${local_head}" == "${remote_head}" ]]; then |  | ||||||
|         info "nothing to do" |  | ||||||
|     else |  | ||||||
|         info "needs pull" |  | ||||||
|         git pull origin $branch |  | ||||||
|     fi |  | ||||||
|     msg "Done [%s]" "$tree" |  | ||||||
|     show_elapsed_time "${FUNCNAME}" "${timer}" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| clone_tree(){ |  | ||||||
|     local timer=$(get_timer) tree="$1" host_tree="$2" |  | ||||||
|     msg "Preparing [%s] ..." "$tree" |  | ||||||
|     info "clone" |  | ||||||
|     git clone $host_tree.git |  | ||||||
|     msg "Done [%s]" "$tree" |  | ||||||
|     show_elapsed_time "${FUNCNAME}" "${timer}" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pull_tree_arch(){ | pull_tree_arch(){ | ||||||
|     cd ${tree_dir_arch} |     cd ${tree_dir_arch} | ||||||
|     for tree in packages community;do |     for tree in packages community;do | ||||||
|         if [[ -d ${tree} ]];then |         if [[ -d ${tree} ]];then | ||||||
|             cd ${tree} |             cd ${tree} | ||||||
|                 pull_tree "${tree}" |                 msg "Checking (%s)" "${tree}" | ||||||
|  |                 pull_tree | ||||||
|             cd .. |             cd .. | ||||||
|         else |         else | ||||||
|             clone_tree "${tree}" "${host_tree_arch}/${tree}" |             msg "Cloning (%s) ..." "$tree" | ||||||
|  |             clone_tree "${host_tree_arch}/${tree}" | ||||||
|         fi |         fi | ||||||
|     done |     done | ||||||
| } | } | ||||||
| @@ -65,10 +40,12 @@ pull_tree_artix(){ | |||||||
|         if [[ -d ${tree} ]];then |         if [[ -d ${tree} ]];then | ||||||
|             cd ${tree} |             cd ${tree} | ||||||
|                 git config --bool pull.rebase true |                 git config --bool pull.rebase true | ||||||
|                 pull_tree "${tree}" |                 msg "Checking (%s)" "${tree}" | ||||||
|  |                 pull_tree | ||||||
|             cd .. |             cd .. | ||||||
|         else |         else | ||||||
|             clone_tree "${tree}" "${host_tree_artix}/${tree}" |             msg "Cloning (%s) ..." "$tree" | ||||||
|  |             clone_tree "${host_tree_artix}/${tree}" | ||||||
|         fi |         fi | ||||||
|     done |     done | ||||||
| } | } | ||||||
| @@ -106,7 +83,7 @@ show_version_table(){ | |||||||
| } | } | ||||||
|  |  | ||||||
| show_artix_table(){ | show_artix_table(){ | ||||||
|      msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" |     msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version" | ||||||
|     for tree in packages packages-galaxy;do |     for tree in packages packages-galaxy;do | ||||||
|         local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d) |         local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d) | ||||||
|         for pkg_path in ${git[@]}; do |         for pkg_path in ${git[@]}; do | ||||||
| @@ -149,39 +126,52 @@ show_artix_table(){ | |||||||
| } | } | ||||||
|  |  | ||||||
| from_arch(){ | from_arch(){ | ||||||
|     local pkg="$1" archtree="$2" artixtree="$3" src= dest= |     local pkg="$1" src= dest= | ||||||
|     src=${tree_dir_arch}/$archtree/$pkg/trunk |     local git_tree_arch=$(find_tree "${tree_dir_arch}" "$pkg") | ||||||
|     dest=${tree_dir_artix}/$artixtree/$pkg/trunk |     [[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg" | ||||||
|  |     src=${tree_dir_arch}/$git_tree_arch/$pkg/trunk | ||||||
|  |  | ||||||
|  |     local git_tree_artix=$(find_tree "${tree_dir_artix}" "$pkg") | ||||||
|  |     dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk | ||||||
|  |  | ||||||
|  |     cd ${tree_dir_arch}/$git_tree_arch | ||||||
|  |  | ||||||
|     source $src/PKGBUILD 2>/dev/null |     source $src/PKGBUILD 2>/dev/null | ||||||
|     cd ${tree_dir_arch}/$archtree |  | ||||||
|     msg "Package: %s" "$pkg" |  | ||||||
|     local archver=$(get_full_version $pkg) |     local archver=$(get_full_version $pkg) | ||||||
|  |  | ||||||
|  |     msg "Package: %s" "$pkg" | ||||||
|     msg2 "Arch Version: %s" "$archver" |     msg2 "Arch Version: %s" "$archver" | ||||||
|  |     [[ -n ${makedepends[@]} ]] && msg2 "makedepends: %s" "${makedepends[*]}" | ||||||
|  |     [[ -n ${checkdepends[@]} ]] && msg2 "depends: %s" "${checkdepends[*]}" | ||||||
|  |     [[ -n ${depends[@]} ]] && msg2 "depends: %s" "${depends[*]}" | ||||||
|  |  | ||||||
|     if [[ -d $dest ]];then |     if [[ -d $dest ]];then | ||||||
|  |         cd ${tree_dir_artix}/$git_tree_artix | ||||||
|  |  | ||||||
|         source $dest/PKGBUILD 2>/dev/null |         source $dest/PKGBUILD 2>/dev/null | ||||||
|         cd ${tree_dir_artix}/$artixtree |  | ||||||
|         local artixver=$(get_full_version $pkg) |         local artixver=$(get_full_version $pkg) | ||||||
|  |  | ||||||
|         msg2 "Artix Version: %s" "$artixver" |         msg2 "Artix Version: %s" "$artixver" | ||||||
|         if [ $(vercmp $artixver $archver) -lt 0 ];then |         info "Update from archlinux (%s)" "$git_tree_arch" | ||||||
|             info "Importing from archlinux (%s)" "$archtree" |         rsync "${rsync_args[@]}" $src/ $dest/ | ||||||
|             rsync "${rsync_args[@]}" $src/ $dest/ |         patch_pkg "$pkg" "$tree" | ||||||
|             patch_pkg "$pkg" "$tree" |  | ||||||
|         else |  | ||||||
|             warning "Versions match! Nothing to do!" |  | ||||||
|         fi |  | ||||||
|     else |     else | ||||||
|         cd ${tree_dir_artix}/$artixtree |         [[ $git_tree_arch == 'packages' ]] && git_tree_artix=$git_tree_arch | ||||||
|         info "Importing from archlinux (%s)" "$archtree" |         [[ $git_tree_arch == 'community' ]] && git_tree_artix='packages-galaxy' | ||||||
|  |  | ||||||
|  |         cd ${tree_dir_artix}/$git_tree_artix | ||||||
|  |  | ||||||
|  |         dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk | ||||||
|         mkdir $pkg |         mkdir $pkg | ||||||
|  |  | ||||||
|  |         info "Import from archlinux (%s)" "$git_tree_arch" | ||||||
|         rsync "${rsync_args[@]}" $src/ $dest/ |         rsync "${rsync_args[@]}" $src/ $dest/ | ||||||
|         patch_pkg "$pkg" "$tree" |         patch_pkg "$pkg" "$tree" | ||||||
|     fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
| sync_repos(){ | sync_repos(){ | ||||||
|     pull_tree_arch |     ${sync_arch} && pull_tree_arch | ||||||
|     pull_tree_artix |     pull_tree_artix | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -194,12 +184,12 @@ display_settings(){ | |||||||
|  |  | ||||||
|     msg "ARGS:" |     msg "ARGS:" | ||||||
|     msg2 "sync: %s" "${sync}" |     msg2 "sync: %s" "${sync}" | ||||||
|  |     msg2 "sync_arch: %s" "${sync_arch}" | ||||||
|     msg2 "compare: %s" "${compare}" |     msg2 "compare: %s" "${compare}" | ||||||
|     msg2 "upgrades: %s" "${upgrades}" |     msg2 "upgrades: %s" "${upgrades}" | ||||||
|     msg2 "downgrades: %s" "${downgrades}" |     msg2 "downgrades: %s" "${downgrades}" | ||||||
|     msg2 "artix: %s" "${artix}" |     msg2 "artix: %s" "${artix}" | ||||||
|     msg2 "import_packages: %s" "${import_packages}" |     msg2 "import: %s" "${import}" | ||||||
|     msg2 "import_community: %s" "${import_community}" |  | ||||||
|  |  | ||||||
|     msg "PATHS:" |     msg "PATHS:" | ||||||
|     msg2 "tree_dir_artix: %s" "${tree_dir_artix}" |     msg2 "tree_dir_artix: %s" "${tree_dir_artix}" | ||||||
| @@ -214,29 +204,26 @@ load_vars /etc/makepkg.conf | |||||||
|  |  | ||||||
| pretend=false | pretend=false | ||||||
| sync=false | sync=false | ||||||
|  | sync_arch=true | ||||||
| compare=false | compare=false | ||||||
| upgrades=true | upgrades=true | ||||||
| downgrades=false | downgrades=false | ||||||
| artix=false | artix=false | ||||||
| import_packages=false | import=false | ||||||
| import_community=false |  | ||||||
| package='' | package='' | ||||||
|  |  | ||||||
| git_artix='packages' |  | ||||||
| git_arch='packages' |  | ||||||
|  |  | ||||||
| rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) | rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs) | ||||||
|  |  | ||||||
| usage() { | usage() { | ||||||
|     echo "Usage: ${0##*/} [options]" |     echo "Usage: ${0##*/} [options]" | ||||||
|     echo '    -p <pkg>      Package name' |     echo '    -p <pkg>      Package name' | ||||||
|     echo "    -s            Clone or pull repos" |     echo "    -s            Clone or pull repos" | ||||||
|  |     echo "    -z            Don't clone or pull arch repos" | ||||||
|     echo '    -c            Compare packages' |     echo '    -c            Compare packages' | ||||||
|     echo '    -u            Show upgrade packages' |     echo '    -u            Show upgrade packages' | ||||||
|     echo '    -d            Show downgrade packages' |     echo '    -d            Show downgrade packages' | ||||||
|     echo '    -a            Show artix specific packages' |     echo '    -a            Show artix specific packages' | ||||||
|     echo '    -i            Import from arch packages' |     echo '    -i            Import a package from arch' | ||||||
|     echo '    -j            Import from arch community' |  | ||||||
|     echo '    -q            Query settings' |     echo '    -q            Query settings' | ||||||
|     echo '    -h            This help' |     echo '    -h            This help' | ||||||
|     echo '' |     echo '' | ||||||
| @@ -246,18 +233,18 @@ usage() { | |||||||
|  |  | ||||||
| orig_argv=("$0" "$@") | orig_argv=("$0" "$@") | ||||||
|  |  | ||||||
| opts='p:csudaijqh' | opts='p:csudaizqh' | ||||||
|  |  | ||||||
| while getopts "${opts}" arg; do | while getopts "${opts}" arg; do | ||||||
|     case "${arg}" in |     case "${arg}" in | ||||||
|         p) package="$OPTARG" ;; |         p) package="$OPTARG" ;; | ||||||
|         s) sync=true ;; |         s) sync=true ;; | ||||||
|  |         z) sync_arch=false ;; | ||||||
|         c) compare=true ;; |         c) compare=true ;; | ||||||
|         u) upgrades=false ;; |         u) upgrades=false ;; | ||||||
|         d) downgrades=true ;; |         d) downgrades=true ;; | ||||||
|         a) artix=true ;; |         a) artix=true ;; | ||||||
|         i) import_packages=true ;; |         i) import=true ;; | ||||||
|         j) import_community=true; git_artix='packages-galaxy'; git_arch='community' ;; |  | ||||||
|         q) pretend=true ;; |         q) pretend=true ;; | ||||||
|         h|?) usage 0 ;; |         h|?) usage 0 ;; | ||||||
|         *) echo "invalid argument '${arg}'"; usage 1 ;; |         *) echo "invalid argument '${arg}'"; usage 1 ;; | ||||||
| @@ -277,6 +264,4 @@ ${compare} && show_version_table | |||||||
|  |  | ||||||
| ${artix} && show_artix_table | ${artix} && show_artix_table | ||||||
|  |  | ||||||
| ${import_packages} && from_arch "${package}" "${git_arch}" "${git_artix}" | ${import} && from_arch "${package}" | ||||||
|  |  | ||||||
| ${import_community} && from_arch "${package}" "${git_arch}" "${git_artix}" |  | ||||||
|   | |||||||
| @@ -11,6 +11,8 @@ | |||||||
|  |  | ||||||
| version=@version@ | version=@version@ | ||||||
|  |  | ||||||
|  | chroot_version=@chroot_version@ | ||||||
|  |  | ||||||
| LIBDIR='@libdir@' | LIBDIR='@libdir@' | ||||||
|  |  | ||||||
| [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | ||||||
| @@ -92,6 +94,7 @@ copy_hostconf () { | |||||||
|  |  | ||||||
| chroot_extra_mount() { | chroot_extra_mount() { | ||||||
|     chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B |     chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B | ||||||
|  |     chroot_mount "/etc/hosts" "$1/etc/hosts" -B | ||||||
|     chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -B |     chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -B | ||||||
|     chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B |     chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B | ||||||
|  |  | ||||||
| @@ -113,8 +116,8 @@ umask 0022 | |||||||
| # Sanity check | # Sanity check | ||||||
| if [[ ! -f "$working_dir/.artools" ]]; then | if [[ ! -f "$working_dir/.artools" ]]; then | ||||||
|     die "'%s' does not appear to be an artix chroot." "$working_dir" |     die "'%s' does not appear to be an artix chroot." "$working_dir" | ||||||
| elif [[ $(cat "$working_dir/.artools") != $version ]]; then | elif [[ $(cat "$working_dir/.artools") != $chroot_version ]]; then | ||||||
|     die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$version" |     die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$chroot_version" | ||||||
| fi | fi | ||||||
|  |  | ||||||
| chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" | chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" | ||||||
|   | |||||||
							
								
								
									
										117
									
								
								bin/commitpkg.in
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								bin/commitpkg.in
									
									
									
									
									
								
							| @@ -17,59 +17,83 @@ DATADIR='@datadir@' | |||||||
|  |  | ||||||
| [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | ||||||
| import ${LIBDIR}/util.sh | import ${LIBDIR}/util.sh | ||||||
|  | import ${LIBDIR}/util-pkg.sh | ||||||
|  |  | ||||||
| commit_pkg(){ | commit_pkg(){ | ||||||
|     cd ${tree_dir_artix}/${git_tree}/${package} |     local git_tree=$(find_tree "${tree_dir_artix}" "${package}") | ||||||
|     source trunk/PKGBUILD |     if [[ -n ${git_tree} ]];then | ||||||
|     local ver=$(get_full_version ${package}) |         cd ${tree_dir_artix}/${git_tree}/${package} | ||||||
|     if ${remove};then |  | ||||||
|         local action='remove' |         source trunk/PKGBUILD | ||||||
|         local pkg=${package}-$ver |         [[ $arch == 'any' ]] && CARCH=any | ||||||
|         if [[ "${source_repo}" == 'trunk' ]];then |         local ver=$(get_full_version "${package}") | ||||||
|             pkg=${package} |  | ||||||
|             info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}" |         if ${remove};then | ||||||
|             git rm -r trunk |             local action='remove' | ||||||
|  |             if [[ "${source_repo}" == 'trunk' ]];then | ||||||
|  |                 local pkg=${package} | ||||||
|  |                 git rm -r trunk | ||||||
|  |             else | ||||||
|  |                 local pkg=${package}-$ver | ||||||
|  |                 git rm -r repos/${source_repo}-$CARCH | ||||||
|  |             fi | ||||||
|  |             msg "Action: [%s] '%s' %s" "${source_repo}" "$pkg" "${action}" | ||||||
|  |             git commit -m "[${source_repo}] '$pkg' ${action}" | ||||||
|         else |         else | ||||||
|             info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}" |             local action='modify' | ||||||
|             git rm -r repos/${source_repo}-$CARCH |             msg "Action: [%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}" | ||||||
|  |             git add . | ||||||
|  |             git commit -m "[${source_repo}] '${package}-$ver' ${action}" | ||||||
|  |         fi | ||||||
|  |  | ||||||
|  |         if ${push};then | ||||||
|  |             msg "Checking (%s)" "${git_tree}" | ||||||
|  |             git pull origin master | ||||||
|  |             git push origin master | ||||||
|         fi |         fi | ||||||
|         git commit -m "[${source_repo}] '$pkg' ${action}" |  | ||||||
|         ${push} && git push origin master |  | ||||||
|     else |     else | ||||||
|         local action='modify' |         error "Package '%s' does not exist!" "${package}" | ||||||
|         info "[%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}" |  | ||||||
|         git add . |  | ||||||
|         git commit -m "[${source_repo}] '${package}-$ver' ${action}" |  | ||||||
|         ${push} && git push origin master |  | ||||||
|     fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
| release_pkg(){ | symlink_commit_pkg(){ | ||||||
|     if [[ -d ${tree_dir_artix}/${git_tree}/${package} ]];then |     local git_tree=$(find_tree "${tree_dir_artix}" "${package}") | ||||||
|  |     if [[ -n ${git_tree} ]];then | ||||||
|         cd ${tree_dir_artix}/${git_tree}/${package} |         cd ${tree_dir_artix}/${git_tree}/${package} | ||||||
|  |  | ||||||
|         source trunk/PKGBUILD |         source trunk/PKGBUILD | ||||||
|         [[ $arch == 'any' ]] && CARCH=any |         [[ $arch == 'any' ]] && CARCH=any | ||||||
|         if [[ ${source_repo} != 'trunk' ]];then |         local ver=$(get_full_version "${package}") | ||||||
|             cd repos |  | ||||||
|             dest=${target_repo}-$CARCH |         if [[ ${source_repo} == 'trunk' ]];then | ||||||
|             action='move' |             local action='add' | ||||||
|             [[ -d $dest ]] && git rm -r $dest |             local dest=${target_repo}-$CARCH | ||||||
|             git mv ${source_repo}-$CARCH $dest |  | ||||||
|             cd .. |             [[ -d repos/$dest ]] && git rm -r repos/$dest | ||||||
|         else |  | ||||||
|             dest=${target_repo}-$CARCH |  | ||||||
|             action='add' |  | ||||||
|             [[ ! -d repos ]] && mkdir repos |             [[ ! -d repos ]] && mkdir repos | ||||||
|             cd repos |  | ||||||
|             [[ -d $dest ]] && git rm -r $dest |  | ||||||
|             cd .. |  | ||||||
|             cp -r trunk repos/$dest |             cp -r trunk repos/$dest | ||||||
|  |         else | ||||||
|  |             local action='move' | ||||||
|  |             local dest=${target_repo}-$CARCH | ||||||
|  |  | ||||||
|  |             cd repos | ||||||
|  |                 [[ -d $dest ]] && git rm -r $dest | ||||||
|  |                 git mv ${source_repo}-$CARCH $dest | ||||||
|  |             cd .. | ||||||
|         fi |         fi | ||||||
|         local ver=$(get_full_version ${package}) |  | ||||||
|         info "[%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}" |         msg "Action: [%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}" | ||||||
|         git add . |         git add . | ||||||
|         git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}" |         git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}" | ||||||
|         ${push} && git push origin master |  | ||||||
|  |         if ${push};then | ||||||
|  |             msg "Checking (%s)" "${git_tree}" | ||||||
|  |             git pull origin master | ||||||
|  |             git push origin master | ||||||
|  |         fi | ||||||
|  |     else | ||||||
|  |         error "Package '%s' does not exist!" "${package}" | ||||||
|     fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -78,7 +102,6 @@ display_settings(){ | |||||||
|     show_config |     show_config | ||||||
|  |  | ||||||
|     msg "OPTIONS:" |     msg "OPTIONS:" | ||||||
|     msg2 "git_tree: %s" "${git_tree}" |  | ||||||
|     msg2 "source_repo: %s" "${source_repo}" |     msg2 "source_repo: %s" "${source_repo}" | ||||||
|     msg2 "target_repo: %s" "${target_repo}" |     msg2 "target_repo: %s" "${target_repo}" | ||||||
|     msg2 "package: %s" "${package}" |     msg2 "package: %s" "${package}" | ||||||
| @@ -100,20 +123,14 @@ remove=false | |||||||
| push=false | push=false | ||||||
| pretend=false | pretend=false | ||||||
|  |  | ||||||
| git_tree='packages' |  | ||||||
|  |  | ||||||
| cmd=${0##*/} | cmd=${0##*/} | ||||||
| target_repo=${cmd%pkg} | target_repo=${cmd%pkg} | ||||||
|  |  | ||||||
| case ${target_repo} in |  | ||||||
|     community*|multilib*) git_tree='packages-galaxy' ;; |  | ||||||
| esac |  | ||||||
|  |  | ||||||
| usage() { | usage() { | ||||||
|     echo "Usage: ${0##*/} [options]" |     echo "Usage: ${0##*/} [options]" | ||||||
|     echo "    -s <name>          Source repository [default:${source_repo}]" |     echo "    -s <name>          Source repository [default:${source_repo}]" | ||||||
|     echo '    -p <pkg>           Package name' |     echo '    -p <pkg>           Package name' | ||||||
|     echo '    -r                 Delete from repo' |     echo '    -r                 Delete from repo (commitpkg only)' | ||||||
|     echo '    -u                 Push' |     echo '    -u                 Push' | ||||||
|     echo '    -q                 Query settings and pretend' |     echo '    -q                 Query settings and pretend' | ||||||
|     echo '    -h                 This help' |     echo '    -h                 This help' | ||||||
| @@ -142,8 +159,12 @@ shift $(($OPTIND - 1)) | |||||||
|  |  | ||||||
| ${pretend} && display_settings && exit 1 | ${pretend} && display_settings && exit 1 | ||||||
|  |  | ||||||
| if [[ "${cmd}" == 'commitpkg' ]];then | if $(is_valid_repo "${source_repo}");then | ||||||
|     commit_pkg |     if [[ "${cmd}" == 'commitpkg' ]];then | ||||||
|  |         commit_pkg | ||||||
|  |     else | ||||||
|  |         symlink_commit_pkg | ||||||
|  |     fi | ||||||
| else | else | ||||||
|     release_pkg |     error "source repository '%s' is not valid!" "${source_repo}" | ||||||
| fi | fi | ||||||
|   | |||||||
| @@ -29,7 +29,8 @@ del_from_repo(){ | |||||||
|         if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH");then |         if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH");then | ||||||
|             info "pkgfile: %s" "${pkgfile##*/}" |             info "pkgfile: %s" "${pkgfile##*/}" | ||||||
|             repo-remove -R $repo_path/$repo.db.tar.xz $name |             repo-remove -R $repo_path/$repo.db.tar.xz $name | ||||||
|             [[ -f $repo_path/${pkgfile##*/}{,.sig} ]] && rm -v $repo_path/${pkgfile##*/}{,.sig} |             [[ -e $repo_path/${pkgfile##*/} ]] && rm -v $repo_path/${pkgfile##*/} | ||||||
|  |             [[ -e $repo_path/${pkgfile##*/}.sig ]] && rm -v $repo_path/${pkgfile##*/}.sig | ||||||
|         fi |         fi | ||||||
|     done |     done | ||||||
| } | } | ||||||
|   | |||||||
| @@ -11,6 +11,8 @@ | |||||||
|  |  | ||||||
| version=@version@ | version=@version@ | ||||||
|  |  | ||||||
|  | chroot_version=@chroot_version@ | ||||||
|  |  | ||||||
| LIBDIR='@libdir@' | LIBDIR='@libdir@' | ||||||
|  |  | ||||||
| [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | ||||||
| @@ -104,7 +106,7 @@ done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i '_proxy$') | |||||||
| env -i "${_env[@]}" \ | env -i "${_env[@]}" \ | ||||||
| basestrap "${basestrap_args[@]}" "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages' | basestrap "${basestrap_args[@]}" "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages' | ||||||
|  |  | ||||||
| echo "$version" > "$working_dir/.artools" | echo "$chroot_version" > "$working_dir/.artools" | ||||||
|  |  | ||||||
| default_locale "set" "$working_dir" | default_locale "set" "$working_dir" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -202,11 +202,15 @@ _chrootbuild() { | |||||||
|     # No coredumps |     # No coredumps | ||||||
|     ulimit -c 0 |     ulimit -c 0 | ||||||
|  |  | ||||||
|  |     # Work around chroot-run not giving a ctty | ||||||
|     exec </dev/console |     exec </dev/console | ||||||
|  |  | ||||||
|     . /etc/profile |     . /etc/profile | ||||||
|  |  | ||||||
|     export LANG=en_US.UTF-8 |     export LANG=en_US.UTF-8 | ||||||
|  |  | ||||||
|  |     # workaround meson locale errors | ||||||
|  |     # supposedly fixed with coming python-3.7 | ||||||
|     locale-gen &> /dev/null |     locale-gen &> /dev/null | ||||||
|  |  | ||||||
|     sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" |     sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@" | ||||||
|   | |||||||
| @@ -1,274 +0,0 @@ | |||||||
| def ADD_REPO = '' |  | ||||||
| def RM_REPO = '' |  | ||||||
| def IS_ADD = 'false' |  | ||||||
| def IS_REMOVE = 'false' |  | ||||||
| def IS_BUILD = 'false' |  | ||||||
| def PKG_TRUNK = '' |  | ||||||
| def PKG_PATH = '' |  | ||||||
|  |  | ||||||
| pipeline { |  | ||||||
|     agent any |  | ||||||
|     options { |  | ||||||
|         skipDefaultCheckout() |  | ||||||
|         timestamps() |  | ||||||
|     } |  | ||||||
|     stages { |  | ||||||
|         stage('Checkout') { |  | ||||||
|             steps { |  | ||||||
|                 script { |  | ||||||
|                     checkout scm |  | ||||||
|  |  | ||||||
|                     def currentCommit = sh(returnStdout: true, script: 'git rev-parse @').trim() |  | ||||||
|                     echo "currentCommit: ${currentCommit}" |  | ||||||
|  |  | ||||||
|                     def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n') |  | ||||||
|                     def changedPkgStatus = [] |  | ||||||
|                     def pkgPath = [] |  | ||||||
|                     int entryCount = 0 |  | ||||||
|                     for ( int i = 0; i < changedFilesStatus.size(); i++ ) { |  | ||||||
|                         def entry = changedFilesStatus[i].split() |  | ||||||
|                         def fileStatus = entry[0] |  | ||||||
|                         entryCount = entry.size() |  | ||||||
|                         for ( int j = 1; j < entry.size(); j++ ) { |  | ||||||
|                             if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){ |  | ||||||
|                                 changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD') |  | ||||||
|                                 pkgPath << entry[j].minus('/PKGBUILD') |  | ||||||
|                             } |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|  |  | ||||||
|                     int pkgCount = changedPkgStatus.size() |  | ||||||
|                     int pkgPathCount = pkgPath.size() |  | ||||||
|                     echo "pkgCount: ${pkgCount}" |  | ||||||
|                     echo "entryCount: ${entryCount}" |  | ||||||
|                     echo "pkgPathCount: ${pkgPathCount}" |  | ||||||
|                     echo "changedPkgStatus: ${changedPkgStatus}" |  | ||||||
|  |  | ||||||
|                     if ( pkgCount > 0 ) { |  | ||||||
|  |  | ||||||
|                         if ( entryCount == 2 && pkgCount == 2 ) { |  | ||||||
|                             def pkgEntry1 = changedPkgStatus[0].split() |  | ||||||
|                             def pkgEntry2 = changedPkgStatus[1].split() |  | ||||||
|                             def srcPath = [] |  | ||||||
|                             def pkgStatus = [] |  | ||||||
|                             srcPath << pkgEntry1[1] |  | ||||||
|                             srcPath << pkgEntry2[1] |  | ||||||
|                             pkgStatus << pkgEntry1[0] |  | ||||||
|                             pkgStatus << pkgEntry2[0] |  | ||||||
|                             def buildInfo1 = srcPath[0].tokenize('/') |  | ||||||
|                             def buildInfo2 = srcPath[1].tokenize('/') |  | ||||||
|  |  | ||||||
|                             if ( pkgStatus[0] == "M" ) { |  | ||||||
|                                 IS_ADD = 'true' |  | ||||||
|                                 if ( srcPath[0].contains('community-testing') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy-gremlins' |  | ||||||
|                                 } else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy' |  | ||||||
|                                 } |  | ||||||
|                                 if ( srcPath[0].contains('multilib-testing') ) { |  | ||||||
|                                     ADD_REPO = 'lib32-gremlins' |  | ||||||
|                                 } else if ( srcPath[0].contains('multilib-x86_64') ) { |  | ||||||
|                                     ADD_REPO = 'lib32' |  | ||||||
|                                 } |  | ||||||
|                             } else if ( pkgStatus[1] == "M" ) { |  | ||||||
|                                 IS_ADD = 'true' |  | ||||||
|                                 if ( srcPath[1].contains('community-testing') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy-gremlins' |  | ||||||
|                                 } else if ( srcPath[1].contains('community-x86_64') || srcPath[1].contains('community-any') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy' |  | ||||||
|                                 } |  | ||||||
|                                 if ( srcPath[1].contains('multilib-testing') ) { |  | ||||||
|                                     ADD_REPO = 'lib32-gremlins' |  | ||||||
|                                 } else if ( srcPath[1].contains('multilib-x86_64') ) { |  | ||||||
|                                     ADD_REPO = 'lib32' |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|  |  | ||||||
|                             if ( pkgStatus[0] == "D" ) { |  | ||||||
|                                 IS_REMOVE = 'true' |  | ||||||
|                                 if ( srcPath[0].contains('community-testing') ) { |  | ||||||
|                                     RM_REPO = 'galaxy-gremlins' |  | ||||||
|                                 } else if ( srcPath[0].contains('community-x86_64') || srcPath[0].contains('community-any') ) { |  | ||||||
|                                     RM_REPO = 'galaxy' |  | ||||||
|                                 } |  | ||||||
|                                 if ( srcPath[0].contains('multilib-testing') ) { |  | ||||||
|                                     RM_REPO = 'lib32-gremlins' |  | ||||||
|                                 } else if ( srcPath[0].contains('multilib-x86_64') ) { |  | ||||||
|                                     RM_REPO = 'lib32' |  | ||||||
|                                 } |  | ||||||
|                             } else if ( pkgStatus[1] == "D" ) { |  | ||||||
|                                 IS_REMOVE = 'true' |  | ||||||
|                                 if ( srcPath[1].contains('community-testing') ) { |  | ||||||
|                                     RM_REPO = 'galaxy-gremlins' |  | ||||||
|                                 } else if ( srcPath[1].contains('community-x86_64') || srcPath[1].contains('community-any') ) { |  | ||||||
|                                     RM_REPO = 'galaxy' |  | ||||||
|                                 } |  | ||||||
|                                 if ( srcPath[1].contains('multilib-testing') ) { |  | ||||||
|                                     RM_REPO = 'lib32-gremlins' |  | ||||||
|                                 } else if ( srcPath[1].contains('multilib-x86_64') ) { |  | ||||||
|                                     RM_REPO = 'lib32' |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|                             PKG_TRUNK = buildInfo1[0] + '/trunk' |  | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                         if ( entryCount == 3 && pkgCount == 2 ) { |  | ||||||
|                             def pkgEntry = changedPkgStatus[0].split() |  | ||||||
|                             def pkgStatus = pkgEntry[0] |  | ||||||
|                             def buildInfo1 = pkgPath[0].tokenize('/') |  | ||||||
|                             def buildInfo2 = pkgPath[1].tokenize('/') |  | ||||||
|  |  | ||||||
|                             if ( pkgStatus.contains('R') ) { |  | ||||||
|                                 IS_ADD = 'true' |  | ||||||
|                                 IS_REMOVE = 'true' |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('community-staging') && pkgPath[1].contains('community-testing') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy-gremlins' |  | ||||||
|                                     RM_REPO = 'galaxy-goblins' |  | ||||||
|                                 } else if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-staging') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy-goblins' |  | ||||||
|                                     RM_REPO = 'galaxy-gremlins' |  | ||||||
|                                 } |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('community-testing') && pkgPath[1].contains('community-x86_64') || pkgPath[0].contains('community-any') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy-gremlins' |  | ||||||
|                                     RM_REPO = 'galaxy' |  | ||||||
|                                 } else if ( pkgPath[0].contains('community-x86_64') || pkgPath[0].contains('community-any') && pkgPath[1].contains('community-testing') ) { |  | ||||||
|                                     ADD_REPO = 'galaxy' |  | ||||||
|                                     RM_REPO = 'galaxy-gremlins' |  | ||||||
|                                 } |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('multilib-staging') && pkgPath[1].contains('multilib-testing') ) { |  | ||||||
|                                     ADD_REPO = 'lib32-gremlins' |  | ||||||
|                                     RM_REPO = 'lib32-goblins' |  | ||||||
|                                 } else if ( pkgPath[0].contains('multilib-testing') && pkgPath[1].contains('multilib-staging') ) { |  | ||||||
|                                     ADD_REPO = 'lib32-goblins' |  | ||||||
|                                     RM_REPO = 'lib32-gremlins' |  | ||||||
|                                 } |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('multilib-testing') && pkgPath[1].contains('multilib-x86_64') ) { |  | ||||||
|                                     ADD_REPO = 'lib32' |  | ||||||
|                                     RM_REPO = 'lib32-gremlins' |  | ||||||
|                                 } else if ( pkgPath[0].contains('multilib-x86_64') && pkgPath[1].contains('multilib-testing') ) { |  | ||||||
|                                     ADD_REPO = 'lib32-gremlins' |  | ||||||
|                                     RM_REPO = 'lib32' |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|                             PKG_TRUNK = buildInfo1[0] + '/trunk' |  | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                         if ( pkgCount == 1 ) { |  | ||||||
|                             def pkgEntry = changedPkgStatus[0].split() |  | ||||||
|                             def pkgStatus = pkgEntry[0] |  | ||||||
|                             def srcPath = pkgEntry[1] |  | ||||||
|                             def buildInfo = srcPath.tokenize('/') |  | ||||||
|  |  | ||||||
|                             if ( srcPath.contains('community-staging') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'galaxy-goblins' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } else if ( srcPath.contains('community-testing') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'galaxy-gremlins' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } else if ( srcPath.contains('community-x86_64') || srcPath.contains('community-any') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'galaxy' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } |  | ||||||
|                             if ( srcPath.contains('multilib-staging') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'lib32-goblins' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } else if ( srcPath.contains('multilib-testing') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'lib32-gremlins' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } else if ( srcPath.contains('multilib-x86_64') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'lib32' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } |  | ||||||
|                             PKG_PATH = srcPath |  | ||||||
|                             PKG_TRUNK = buildInfo[0] + '/trunk' |  | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         stage('Build') { |  | ||||||
|             environment { |  | ||||||
|                 BUILDBOT_GPGP = credentials('BUILDBOT_GPGP') |  | ||||||
|             } |  | ||||||
|             when { |  | ||||||
|                 expression { return  IS_BUILD == 'true' } |  | ||||||
|             } |  | ||||||
|             steps { |  | ||||||
|                 dir("${PKG_PATH}") { |  | ||||||
|                     sh "buildpkg -r ${ADD_REPO}" |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             post { |  | ||||||
|                 success { |  | ||||||
|                     dir("${PKG_PATH}") { |  | ||||||
|                         sh "deploypkg -a -d ${ADD_REPO} -s" |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         stage('Add') { |  | ||||||
|             when { |  | ||||||
|                 expression { return  IS_ADD == 'true' } |  | ||||||
|             } |  | ||||||
|             steps { |  | ||||||
|                 dir("${PKG_TRUNK}") { |  | ||||||
|                     sh "deploypkg -a -d ${ADD_REPO}" |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         stage('Remove') { |  | ||||||
|             when { |  | ||||||
|                 expression { return  IS_REMOVE == 'true' } |  | ||||||
|             } |  | ||||||
|             steps { |  | ||||||
|                 dir("${PKG_TRUNK}") { |  | ||||||
|                     sh "deploypkg -r -d ${RM_REPO}" |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,241 +0,0 @@ | |||||||
| def ADD_REPO = '' |  | ||||||
| def RM_REPO = '' |  | ||||||
| def IS_ADD = 'false' |  | ||||||
| def IS_REMOVE = 'false' |  | ||||||
| def IS_BUILD = 'false' |  | ||||||
| def PKG_TRUNK = '' |  | ||||||
| def PKG_PATH = '' |  | ||||||
|  |  | ||||||
| pipeline { |  | ||||||
|     agent any |  | ||||||
|     options { |  | ||||||
|         skipDefaultCheckout() |  | ||||||
|         timestamps() |  | ||||||
|     } |  | ||||||
|     stages { |  | ||||||
|         stage('Checkout') { |  | ||||||
|             steps { |  | ||||||
|                 script { |  | ||||||
|                     checkout scm |  | ||||||
|  |  | ||||||
|                     def currentCommit = sh(returnStdout: true, script: 'git rev-parse @').trim() |  | ||||||
|                     echo "currentCommit: ${currentCommit}" |  | ||||||
|  |  | ||||||
|                     def changedFilesStatus = sh(returnStdout: true, script: "git show --pretty=format: --name-status ${currentCommit}").tokenize('\n') |  | ||||||
|                     def changedPkgStatus = [] |  | ||||||
|                     def pkgPath = [] |  | ||||||
|                     int entryCount = 0 |  | ||||||
|                     for ( int i = 0; i < changedFilesStatus.size(); i++ ) { |  | ||||||
|                         def entry = changedFilesStatus[i].split() |  | ||||||
|                         def fileStatus = entry[0] |  | ||||||
|                         entryCount = entry.size() |  | ||||||
|                         for ( int j = 1; j < entry.size(); j++ ) { |  | ||||||
|                             if ( entry[j].contains('/PKGBUILD') && entry[j].contains('/repos') ){ |  | ||||||
|                                 changedPkgStatus << "${fileStatus} " + entry[j].minus('/PKGBUILD') |  | ||||||
|                                 pkgPath << entry[j].minus('/PKGBUILD') |  | ||||||
|                             } |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|  |  | ||||||
|                     int pkgCount = changedPkgStatus.size() |  | ||||||
|                     int pkgPathCount = pkgPath.size() |  | ||||||
|                     echo "pkgCount: ${pkgCount}" |  | ||||||
|                     echo "entryCount: ${entryCount}" |  | ||||||
|                     echo "pkgPathCount: ${pkgPathCount}" |  | ||||||
|                     echo "changedPkgStatus: ${changedPkgStatus}" |  | ||||||
|  |  | ||||||
|                     if ( pkgCount > 0 ) { |  | ||||||
|  |  | ||||||
|                         if ( entryCount == 2 && pkgCount == 2 ) { |  | ||||||
|                             def pkgEntry1 = changedPkgStatus[0].split() |  | ||||||
|                             def pkgEntry2 = changedPkgStatus[1].split() |  | ||||||
|                             def srcPath = [] |  | ||||||
|                             def pkgStatus = [] |  | ||||||
|                             srcPath << pkgEntry1[1] |  | ||||||
|                             srcPath << pkgEntry2[1] |  | ||||||
|                             pkgStatus << pkgEntry1[0] |  | ||||||
|                             pkgStatus << pkgEntry2[0] |  | ||||||
|                             def buildInfo1 = srcPath[0].tokenize('/') |  | ||||||
|                             def buildInfo2 = srcPath[1].tokenize('/') |  | ||||||
|  |  | ||||||
|                             if ( pkgStatus[0] == 'M' ) { |  | ||||||
|                                 IS_ADD = 'true' |  | ||||||
|                                 if ( srcPath[0].contains('testing') ) { |  | ||||||
|                                     ADD_REPO = 'gremlins' |  | ||||||
|                                 } else if ( srcPath[0].contains('core') ) { |  | ||||||
|                                     ADD_REPO = 'system' |  | ||||||
|                                 } else if ( srcPath[0].contains('extra') ) { |  | ||||||
|                                     ADD_REPO = 'world' |  | ||||||
|                                 } |  | ||||||
|                             } else if ( pkgStatus[1] == 'M' ) { |  | ||||||
|                                 IS_ADD = 'true' |  | ||||||
|                                 if ( srcPath[1].contains('testing') ) { |  | ||||||
|                                     ADD_REPO = 'gremlins' |  | ||||||
|                                 } else if ( srcPath[1].contains('core') ) { |  | ||||||
|                                     ADD_REPO = '' |  | ||||||
|                                 } else if ( srcPath[1].contains('extra') ) { |  | ||||||
|                                     ADD_REPO = 'world' |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|  |  | ||||||
|                             if ( pkgStatus[0] == 'D' ) { |  | ||||||
|                                 IS_REMOVE = 'true' |  | ||||||
|                                 if ( srcPath[0].contains('testing') ) { |  | ||||||
|                                     RM_REPO = 'gremlins' |  | ||||||
|                                 } else if ( srcPath[0].contains('core') ) { |  | ||||||
|                                     RM_REPO = 'system' |  | ||||||
|                                 } else if ( srcPath[0].contains('extra') ) { |  | ||||||
|                                     RM_REPO = 'world' |  | ||||||
|                                 } |  | ||||||
|                             } else if ( pkgStatus[1] == 'D' ) { |  | ||||||
|                                 IS_REMOVE = 'true' |  | ||||||
|                                 if ( srcPath[1].contains('testing') ) { |  | ||||||
|                                     RM_REPO = 'gremlins' |  | ||||||
|                                 } else if ( srcPath[1].contains('core') ) { |  | ||||||
|                                     RM_REPO = 'system' |  | ||||||
|                                 } else if ( srcPath[1].contains('extra') ) { |  | ||||||
|                                     RM_REPO = 'world' |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|  |  | ||||||
|                             PKG_TRUNK = buildInfo1[0] + '/trunk' |  | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                         if ( entryCount == 3 && pkgCount == 2 ) { |  | ||||||
|                             def pkgEntry = changedPkgStatus[0].split() |  | ||||||
|                             def pkgStatus = pkgEntry[0] |  | ||||||
|                             def buildInfo1 = pkgPath[0].tokenize('/') |  | ||||||
|                             def buildInfo2 = pkgPath[1].tokenize('/') |  | ||||||
|  |  | ||||||
|                             if ( pkgStatus.contains('R') ) { |  | ||||||
|                                 IS_ADD = 'true' |  | ||||||
|                                 IS_REMOVE = 'true' |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('staging') && pkgPath[1].contains('testing') ) { |  | ||||||
|                                     ADD_REPO = 'gremlins' |  | ||||||
|                                     RM_REPO = 'goblins' |  | ||||||
|                                 } else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('staging') ) { |  | ||||||
|                                     ADD_REPO = 'goblins' |  | ||||||
|                                     RM_REPO = 'gremlins' |  | ||||||
|                                 } |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('core') && pkgPath[1].contains('testing')) { |  | ||||||
|                                     ADD_REPO = 'gremlins' |  | ||||||
|                                     RM_REPO = 'system' |  | ||||||
|                                 } else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('core')) { |  | ||||||
|                                     ADD_REPO = 'system' |  | ||||||
|                                     RM_REPO = 'gremlins' |  | ||||||
|                                 } |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('extra') && pkgPath[1].contains('testing')) { |  | ||||||
|                                     ADD_REPO = 'gremlins' |  | ||||||
|                                     RM_REPO = 'world' |  | ||||||
|                                 } else if ( pkgPath[0].contains('testing') && pkgPath[1].contains('extra')) { |  | ||||||
|                                     ADD_REPO = 'world' |  | ||||||
|                                     RM_REPO = 'gremlins' |  | ||||||
|                                 } |  | ||||||
|  |  | ||||||
|                                 if ( pkgPath[0].contains('core') && pkgPath[1].contains('extra')) { |  | ||||||
|                                     ADD_REPO = 'world' |  | ||||||
|                                     RM_REPO = 'system' |  | ||||||
|                                 } else if ( pkgPath[0].contains('extra') && pkgPath[1].contains('core')) { |  | ||||||
|                                     ADD_REPO = 'system' |  | ||||||
|                                     RM_REPO = 'world' |  | ||||||
|                                 } |  | ||||||
|                             } |  | ||||||
|                             PKG_TRUNK = buildInfo1[0] + '/trunk' |  | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                         if ( pkgCount == 1 ) { |  | ||||||
|                             def pkgEntry = changedPkgStatus[0].split() |  | ||||||
|                             def pkgStatus = pkgEntry[0] |  | ||||||
|                             def srcPath = pkgEntry[1] |  | ||||||
|                             def buildInfo = srcPath.tokenize('/') |  | ||||||
|  |  | ||||||
|                             if ( srcPath.contains('staging') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'goblins' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } else if ( srcPath.contains('testing') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'gremlins' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } else if ( srcPath.contains('core') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'system' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } else if ( srcPath.contains('extra') ) { |  | ||||||
|                                 if ( pkgStatus == 'A' || pkgStatus == 'M' ) { |  | ||||||
|                                     IS_BUILD = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 if ( pkgStatus == 'D' ) { |  | ||||||
|                                     IS_REMOVE = 'true' |  | ||||||
|                                 } |  | ||||||
|                                 ADD_REPO = 'world' |  | ||||||
|                                 RM_REPO = ADD_REPO |  | ||||||
|                             } |  | ||||||
|                             PKG_PATH = srcPath |  | ||||||
|                             PKG_TRUNK = buildInfo[0] + '/trunk' |  | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         stage('Build') { |  | ||||||
|             environment { |  | ||||||
|                 BUILDBOT_GPGP = credentials('BUILDBOT_GPGP') |  | ||||||
|             } |  | ||||||
|             when { |  | ||||||
|                 expression { return  IS_BUILD == 'true' } |  | ||||||
|             } |  | ||||||
|             steps { |  | ||||||
|                 dir("${PKG_PATH}") { |  | ||||||
|                     sh "buildpkg -r ${ADD_REPO}" |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             post { |  | ||||||
|                 success { |  | ||||||
|                     dir("${PKG_PATH}") { |  | ||||||
|                         sh "deploypkg -a -d ${ADD_REPO} -s" |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         stage('Add') { |  | ||||||
|             when { |  | ||||||
|                 expression { return  IS_ADD == 'true' } |  | ||||||
|             } |  | ||||||
|             steps { |  | ||||||
|                 dir("${PKG_TRUNK}") { |  | ||||||
|                     sh "deploypkg -a -d ${ADD_REPO}" |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         stage('Remove') { |  | ||||||
|             when { |  | ||||||
|                 expression { return  IS_REMOVE == 'true' } |  | ||||||
|             } |  | ||||||
|             steps { |  | ||||||
|                 dir("${PKG_TRUNK}") { |  | ||||||
|                     sh "deploypkg -r -d ${RM_REPO}" |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -33,7 +33,7 @@ | |||||||
| # initsys="openrc" | # initsys="openrc" | ||||||
|  |  | ||||||
| # unset defaults to given value | # unset defaults to given value | ||||||
| # kernel="linux-lts" | # kernel="linux" | ||||||
|  |  | ||||||
| # custom additional kernel args | # custom additional kernel args | ||||||
| # kernel_args="" | # kernel_args="" | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								data/missing
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								data/missing
									
									
									
									
									
								
							| @@ -1,20 +0,0 @@ | |||||||
| extra/speexdsp |  | ||||||
| extra/spandsp |  | ||||||
| extra/soundtouch |  | ||||||
| extra/sbc |  | ||||||
| extra/neon |  | ||||||
| extra/mjpegtools |  | ||||||
| extra/libmp4v2 |  | ||||||
| extra/js |  | ||||||
| extra/gst-plugins-bad |  | ||||||
| extra/faac |  | ||||||
| extra/enchant |  | ||||||
| extra/chromaprint |  | ||||||
| extra/python-appdirs |  | ||||||
| extra/python-beaker |  | ||||||
| extra/python-mako |  | ||||||
| extra/python-markupsafe |  | ||||||
| extra/python-packaging |  | ||||||
| extra/python-pyparsing |  | ||||||
| extra/ttf-liberation |  | ||||||
| extra/appstream-glib |  | ||||||
| @@ -1,45 +0,0 @@ | |||||||
| qt5-base |  | ||||||
| qt5-xmlpatterns |  | ||||||
| qt5-x11extras |  | ||||||
| qt5-script |  | ||||||
| qt5-svg |  | ||||||
| qt5-serialport |  | ||||||
| qt5-serialbus |  | ||||||
| qt5-networkauth |  | ||||||
| qt5-imageformats |  | ||||||
| qt5-declarative |  | ||||||
| qt5-wayland |  | ||||||
| qt5-sensors |  | ||||||
| qt5-scxml |  | ||||||
| qt5-connectivity |  | ||||||
| qt5-graphicaleffects |  | ||||||
| qt5-gamepad |  | ||||||
| qt5-3d |  | ||||||
| qt5-canvas3d |  | ||||||
| qt5-datavis3d |  | ||||||
| qt5-charts |  | ||||||
| qt5-virtualkeyboard |  | ||||||
| qt5-location |  | ||||||
| qt5-multimedia |  | ||||||
| qt5-speech |  | ||||||
| qt5-quickcontrols |  | ||||||
| qt5-quickcontrols2 |  | ||||||
| qt5-remoteobjects |  | ||||||
| qt5-webchannel |  | ||||||
| qt5-websockets |  | ||||||
| qt5-webglplugin |  | ||||||
|  |  | ||||||
|  |  | ||||||
| qt5-tools |  | ||||||
| qt5-translations |  | ||||||
| qt5-doc |  | ||||||
| qt5-examples |  | ||||||
|  |  | ||||||
| qt5-webengine |  | ||||||
| qt5-webview |  | ||||||
|  |  | ||||||
| qt5-webkit |  | ||||||
|  |  | ||||||
| python2-pyqt5 |  | ||||||
| python-pyqt5 |  | ||||||
| pyqt5-common |  | ||||||
| @@ -91,14 +91,14 @@ msg_row_notify(){ | |||||||
|     printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2 |     printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2 | ||||||
| } | } | ||||||
|  |  | ||||||
| msg_row_downgrade(){ | msg_row(){ | ||||||
|     local mesg=$1; shift |     local mesg=$1; shift | ||||||
|     printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2 |     printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 | ||||||
| } | } | ||||||
|  |  | ||||||
| msg_row_upgrade(){ | msg_row_upgrade(){ | ||||||
|     local mesg=$1; shift |     local mesg=$1; shift | ||||||
|     printf "${RED}${BOLD} ${mesg} ${ALL_OFF}\n" "$@" >&2 |     printf "${RED}${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2 | ||||||
| } | } | ||||||
|  |  | ||||||
| import(){ | import(){ | ||||||
|   | |||||||
| @@ -71,6 +71,36 @@ patch_pkg(){ | |||||||
|     esac |     esac | ||||||
| } | } | ||||||
|  |  | ||||||
|  | find_tree(){ | ||||||
|  |     local tree="$1" pkg="$2" | ||||||
|  |     local result=$(find $tree -mindepth 2 -maxdepth 2 -type d -name "$pkg") | ||||||
|  |     result=${result%/*} | ||||||
|  |     echo ${result##*/} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | clone_tree(){ | ||||||
|  |     local timer=$(get_timer) host_tree="$1" | ||||||
|  |     git clone $host_tree.git | ||||||
|  |     show_elapsed_time "${FUNCNAME}" "${timer}" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | pull_tree(){ | ||||||
|  |     local branch="master" | ||||||
|  |     local local_head=$(get_local_head "$branch") | ||||||
|  |     local remote_head=$(get_remote_head "$branch") | ||||||
|  |     if [[ "${local_head}" == "${remote_head}" ]]; then | ||||||
|  |         msg2 "remote changes: no" | ||||||
|  |     else | ||||||
|  |         msg2 "remote changes: yes" | ||||||
|  |         git pull origin "$branch" | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  | push_tree(){ | ||||||
|  |     local branch="master" | ||||||
|  |     git push origin "$branch" | ||||||
|  | } | ||||||
|  |  | ||||||
| get_import_path(){ | get_import_path(){ | ||||||
|     local tree="$1" import_path= |     local tree="$1" import_path= | ||||||
|     case $tree in |     case $tree in | ||||||
| @@ -80,6 +110,14 @@ get_import_path(){ | |||||||
|     echo $import_path |     echo $import_path | ||||||
| } | } | ||||||
|  |  | ||||||
|  | is_valid_repo(){ | ||||||
|  |     local src="$1" | ||||||
|  |     case $src in | ||||||
|  |         core|extra|community|multilib|testing|staging|community-testing|community-staging|multilib-testing|multilib-staging|trunk) return 0 ;; | ||||||
|  |         *) return 1 ;; | ||||||
|  |     esac | ||||||
|  | } | ||||||
|  |  | ||||||
| find_repo(){ | find_repo(){ | ||||||
|     local pkg="$1" repo= |     local pkg="$1" repo= | ||||||
|  |  | ||||||
| @@ -137,6 +175,18 @@ find_repo(){ | |||||||
|         repo=multilib-staging-x86_64 |         repo=multilib-staging-x86_64 | ||||||
|     fi |     fi | ||||||
|  |  | ||||||
|  |     if [[ -d $pkg/repos/gnome-unstable-x86_64 ]];then | ||||||
|  |         repo=gnome-unstable-x86_64 | ||||||
|  |     elif [[ -d $pkg/repos/gnome-unstable-any ]];then | ||||||
|  |         repo=gnome-unstable-any | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     if [[ -d $pkg/repos/kde-unstable-x86_64 ]];then | ||||||
|  |         repo=kde-unstable-x86_64 | ||||||
|  |     elif [[ -d $pkg/repos/kde-unstable-any ]];then | ||||||
|  |         repo=kde-unstable-any | ||||||
|  |     fi | ||||||
|  |  | ||||||
|     echo $repo |     echo $repo | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -153,6 +203,7 @@ arch_to_artix_repo(){ | |||||||
|         multilib-staging-x86_64) repo=lib32-goblins ;; |         multilib-staging-x86_64) repo=lib32-goblins ;; | ||||||
|         community-testing-*) repo=galaxy-gremlins ;; |         community-testing-*) repo=galaxy-gremlins ;; | ||||||
|         community-staging-*) repo=galaxy-goblins ;; |         community-staging-*) repo=galaxy-goblins ;; | ||||||
|  |         kde-unstable-*|gnome-unstable-*) repo=goblins ;; | ||||||
|     esac |     esac | ||||||
|     echo $repo |     echo $repo | ||||||
| } | } | ||||||
|   | |||||||
| @@ -95,7 +95,7 @@ init_artools_iso(){ | |||||||
|  |  | ||||||
|     [[ -z ${initsys} ]] && initsys="openrc" |     [[ -z ${initsys} ]] && initsys="openrc" | ||||||
|  |  | ||||||
|     [[ -z ${kernel} ]] && kernel="linux-lts" |     [[ -z ${kernel} ]] && kernel="linux" | ||||||
|  |  | ||||||
|     [[ -z ${kernel_args} ]] && kernel_args="" |     [[ -z ${kernel_args} ]] && kernel_args="" | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user