Compare commits
	
		
			21 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 1e4dc7cfcb | ||
|   | 441257841c | ||
|   | 33b4a689c1 | ||
|   | 35016b7af4 | ||
|   | 20546c493a | ||
|   | 02829b046f | ||
|   | 2feeb4f30f | ||
|   | 50db8cf691 | ||
|   | c272625422 | ||
|   | b8c9063e21 | ||
|   | be70f7ed2c | ||
|   | 3f05c3e97d | ||
|   | edb486c662 | ||
|   | 088ae05ad8 | ||
|   | 0cbbe9f23f | ||
|   | f591a6b94e | ||
|   | 47d7a47d96 | ||
|   | f0a5f0f442 | ||
|   | d3b67b4a1b | ||
|   | 00e041a143 | ||
|   | 3b70c77f35 | 
							
								
								
									
										9
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| Version=0.3 | ||||
| Version=0.4 | ||||
|  | ||||
| PREFIX = /usr/local | ||||
| SYSCONFDIR = /etc | ||||
| @@ -51,9 +51,6 @@ LIBS_PKG = \ | ||||
| SHARED_PKG = \ | ||||
| 	data/makepkg.conf | ||||
|  | ||||
| LIST_ISO = \ | ||||
| 	$(wildcard data/iso.list.d/*.list) | ||||
|  | ||||
| BIN_ISO = \ | ||||
| 	bin/buildiso \ | ||||
| 	bin/deployiso | ||||
| @@ -155,9 +152,6 @@ install_pkg: | ||||
| 	gzip -c man/buildtree.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildtree.1.gz | ||||
|  | ||||
| install_iso: | ||||
| 	install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools/iso.list.d | ||||
| 	install -m0644 ${LIST_ISO} $(DESTDIR)$(SYSCONFDIR)/artools/iso.list.d | ||||
|  | ||||
| 	install -dm0755 $(DESTDIR)$(PREFIX)/bin | ||||
| 	install -m0755 ${BIN_ISO} $(DESTDIR)$(PREFIX)/bin | ||||
|  | ||||
| @@ -215,7 +209,6 @@ uninstall_pkg: | ||||
| 	rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildtree.1.gz | ||||
|  | ||||
| uninstall_iso: | ||||
| 	for f in ${LIST_ISO}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/iso.list.d/$$f; done | ||||
| 	for f in ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done | ||||
| 	for f in ${SHARED_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done | ||||
|  | ||||
|   | ||||
| @@ -19,56 +19,17 @@ SYSCONFDIR='@sysconfdir@' | ||||
| import ${LIBDIR}/util.sh | ||||
| import ${LIBDIR}/util-iso.sh | ||||
|  | ||||
| prepare_build(){ | ||||
|     timer_start=$(get_timer) | ||||
|     profile=$1 | ||||
|     local profile_dir=${run_dir}/${profile} | ||||
|  | ||||
|     load_profile "${profile_dir}" | ||||
|  | ||||
|     local user_conf=${profile_dir}/user-repos.conf pac_arch='default' pacman_conf | ||||
|     [[ "${target_arch}" == 'x86_64' ]] && pac_arch='multilib' | ||||
|     if [[ -f ${user_conf} ]];then | ||||
|         info "detected: %s" "user-repos.conf" | ||||
|         check_user_repos_conf "${user_conf}" | ||||
|         pacman_conf=${tmp_dir}/custom-pacman.conf | ||||
|         cat ${DATADIR}/pacman-$pac_arch.conf ${user_conf} > "$pacman_conf" | ||||
|     else | ||||
|         pacman_conf="${DATADIR}/pacman-$pac_arch.conf" | ||||
|     fi | ||||
|  | ||||
|     iso_file=$(gen_iso_fn).iso | ||||
|  | ||||
|     mkchroot_args+=(-C ${pacman_conf}) | ||||
|     work_dir=${chroots_iso}/${profile}/${target_arch} | ||||
|  | ||||
|     iso_dir="${cache_dir_iso}/${profile}" | ||||
|  | ||||
|     iso_root=${chroots_iso}/${profile}/iso | ||||
|     mnt_dir=${chroots_iso}/${profile}/mnt | ||||
|     prepare_dir "${mnt_dir}" | ||||
|     prepare_dir "${iso_dir}" | ||||
| } | ||||
|  | ||||
| show_profile(){ | ||||
|     local prof="$1" | ||||
|     prepare_build "$prof" | ||||
|     prepare_build | ||||
|     msg2 "iso_file: %s" "${iso_file}" | ||||
|     if ${verbose};then | ||||
|         msg2 "autologin: %s" "${autologin}" | ||||
|  | ||||
|         [[ ${target_arch} == 'x86_64' ]] && msg2 "multilib: %s" "${multilib}" | ||||
|  | ||||
|         msg2 "extra: %s" "${extra}" | ||||
|  | ||||
|         msg2 "netinstall: %s" "${netinstall}" | ||||
|         msg2 "chrootcfg: %s" "${chrootcfg}" | ||||
|         ${netinstall} && msg2 "netgroups: %s" "$(get_yaml)" | ||||
|         msg2 "netgroups: %s" "$(get_yaml)" | ||||
|  | ||||
|         msg2 "hostname: %s" "${hostname}" | ||||
|         msg2 "username: %s" "${username}" | ||||
|         msg2 "password: %s" "${password}" | ||||
|         msg2 "login_shell: %s" "${login_shell}" | ||||
|         msg2 "addgroups: %s" "${addgroups}" | ||||
|  | ||||
|         msg2 "enable_live: %s" "${enable_live[*]}" | ||||
| @@ -82,12 +43,8 @@ display_settings(){ | ||||
|     show_version | ||||
|     show_config | ||||
|  | ||||
| #     msg "PROFILE:" | ||||
| #     msg2 "build_lists: %s" "$(show_build_lists ${list_dir_iso})" | ||||
| #     msg2 "build_list_iso: %s" "${build_list_iso}" | ||||
|     msg2 "is_build_list: %s" "${is_build_list}" | ||||
|  | ||||
|     msg "OPTIONS:" | ||||
|     msg2 "profile: %s" "${profile}" | ||||
|     msg2 "arch: %s" "${target_arch}" | ||||
|     msg2 "initsys: %s" "${initsys}" | ||||
|     msg2 "kernel: %s" "${kernel}" | ||||
| @@ -104,8 +61,8 @@ display_settings(){ | ||||
|     msg2 "dist_release: %s" "${dist_release}" | ||||
|     msg2 "dist_branding: %s" "${dist_branding}" | ||||
|  | ||||
|     msg "BUILD QUEUE:" | ||||
|     run show_profile "${build_list_iso}" | ||||
|     msg "BUILD:" | ||||
|     show_profile | ||||
| } | ||||
|  | ||||
| load_user_info | ||||
| @@ -122,10 +79,11 @@ verbose=false | ||||
| persist=false | ||||
|  | ||||
| mkchroot_args=() | ||||
| profile=lxqt | ||||
|  | ||||
| usage() { | ||||
|     echo "Usage: ${0##*/} [options]" | ||||
|     echo "    -p <profile>       Buildset or profile [default: ${build_list_iso}]" | ||||
|     echo "    -p <profile>       Profile [default: ${profile}]" | ||||
|     echo "    -a <arch>          Arch [default: ${target_arch}]" | ||||
|     echo '    -r <dir>           Chroots directory' | ||||
|     echo "                       [default: ${chroots_iso}]" | ||||
| @@ -156,7 +114,7 @@ opts='p:a:r:t:k:i:g:czxmvqh' | ||||
|  | ||||
| while getopts "${opts}" arg; do | ||||
|     case "${arg}" in | ||||
|         p) build_list_iso="$OPTARG" ;; | ||||
|         p) profile="$OPTARG" ;; | ||||
|         a) target_arch="$OPTARG" ;; | ||||
|         r) chroots_iso="$OPTARG" ;; | ||||
|         t) cache_dir_iso="$OPTARG" ;; | ||||
| @@ -182,4 +140,4 @@ check_requirements | ||||
|  | ||||
| ${pretend} && display_settings && exit 1 | ||||
|  | ||||
| run build "${build_list_iso}" | ||||
| build | ||||
|   | ||||
| @@ -37,9 +37,6 @@ display_settings(){ | ||||
|     show_version | ||||
|     show_config | ||||
|  | ||||
| #     msg "PROFILE:" | ||||
| #     msg2 "build_lists: %s" "$(show_build_lists ${list_dir_pkg})" | ||||
| #     msg2 "build_list_pkg: %s" "${build_list_pkg}" | ||||
|     msg2 "is_build_list: %s" "${is_build_list}" | ||||
|  | ||||
|     msg "OPTIONS:" | ||||
| @@ -54,6 +51,7 @@ display_settings(){ | ||||
|     msg2 "purge: %s" "${purge}" | ||||
|     msg2 "namcap: %s" "${namcap}" | ||||
|     msg2 "sign: %s" "${sign}" | ||||
|     msg2 "repo_add: %s" "${repo_add}" | ||||
|  | ||||
|     msg "PATHS:" | ||||
|     msg2 "pkg_dir: %s" "${pkg_dir}" | ||||
| @@ -64,7 +62,7 @@ display_settings(){ | ||||
|     fi | ||||
|  | ||||
|     msg "BUILD QUEUE:" | ||||
|     run show_pkg "${build_list_pkg}" | ||||
|     run show_pkg "${build_list}" | ||||
| } | ||||
|  | ||||
| load_user_info | ||||
| @@ -83,11 +81,13 @@ pretend=false | ||||
| is_build_list=false | ||||
| sign=false | ||||
| is_multilib=false | ||||
| repo_add=false | ||||
|  | ||||
| mkchroot_args=() | ||||
| mkchrootpkg_args=() | ||||
|  | ||||
| install_pkgs=() | ||||
| repository=${PWD##*/} | ||||
|  | ||||
| prepare_build(){ | ||||
|     local pac_arch='default' | ||||
| @@ -106,7 +106,7 @@ prepare_build(){ | ||||
|  | ||||
|     [[ "$pac_arch" == 'multilib' ]] && target_arch='x86_64' | ||||
|  | ||||
|     mkchroot_args+=(-C ${pacman_conf} -M ${makepkg_conf} -U "${build_mirror}") | ||||
|     mkchroot_args+=(-C ${pacman_conf} -M ${makepkg_conf}) | ||||
|  | ||||
|     mkchrootpkg_args+=(-r ${work_dir}) | ||||
|  | ||||
| @@ -114,7 +114,7 @@ prepare_build(){ | ||||
|  | ||||
|     prepare_dir "${work_dir}" | ||||
|  | ||||
|     eval_build_list "${list_dir_pkg}" "${build_list_pkg}" | ||||
|     eval_build_list "${build_list}" | ||||
|  | ||||
|     packages=('base-devel') | ||||
|     ${is_multilib} && packages+=('multilib-devel') | ||||
| @@ -124,16 +124,18 @@ prepare_build(){ | ||||
|  | ||||
| usage() { | ||||
|     echo "Usage: ${0##*/} [options]" | ||||
|     echo "    -p <pkg>           Build list or pkg [default: ${build_list_pkg}]" | ||||
|     echo "    -p <pkg>           Build list or pkg [default: ${build_list}]" | ||||
|     echo "    -a <arch>          Arch [default: ${target_arch}]" | ||||
|     echo '    -r <dir>           Chroots directory' | ||||
|     echo "                       [default: ${chroots_pkg}]" | ||||
|     echo '    -i <pkgs>          Install packages into the working copy of the chroot' | ||||
|     echo "    -z <repo>          The repo name to add the package(s)  [default: ${repository}]" | ||||
|     echo '    -o                 Create chroot' | ||||
|     echo '    -d                 Delete chroot' | ||||
|     echo '    -c                 Clean chroot copy' | ||||
|     echo '    -u                 Update chroot copy' | ||||
|     echo '    -w                 Clean up cache and sources' | ||||
|     echo '    -x                 Add the package(s) to the repo' | ||||
|     echo '    -n                 Install and run namcap check' | ||||
|     echo '    -s                 Sign packages' | ||||
|     echo '    -q                 Query settings and pretend build' | ||||
| @@ -145,19 +147,21 @@ usage() { | ||||
|  | ||||
| orig_argv=("$0" "$@") | ||||
|  | ||||
| opts='p:a:r:i:odcuwnsqh' | ||||
| opts='p:a:r:i:z:odcuwnsxqh' | ||||
|  | ||||
| while getopts "${opts}" arg; do | ||||
|     case "${arg}" in | ||||
|         p) build_list_pkg="$OPTARG" ;; | ||||
|         p) build_list="$OPTARG" ;; | ||||
|         a) target_arch="$OPTARG" ;; | ||||
|         r) chroots_pkg="$OPTARG" ;; | ||||
|         i) install_pkgs+=("$OPTARG"); mkchrootpkg_args+=(-I "${install_pkgs[*]}") ;; | ||||
|         z) repository="$OPTARG" ;; | ||||
|         o) create_first=true ;; | ||||
|         d) delete_first=true ;; | ||||
|         c) clean_first=true ; mkchrootpkg_args+=(-c) ;; | ||||
|         u) update_first=true ; mkchrootpkg_args+=(-u) ;; | ||||
|         w) purge=true ;; | ||||
|         x) repo_add=true ;; | ||||
|         n) namcap=true; mkchrootpkg_args+=(-n) ;; | ||||
|         s) sign=true ;; | ||||
|         q) pretend=true ;; | ||||
| @@ -178,4 +182,4 @@ ${delete_first} && delete_chroot "${work_dir}/root" "${work_dir}" | ||||
|  | ||||
| ${create_first} && create_chroot "${mkchroot_args[@]}" "${work_dir}/root" "${packages[@]}" | ||||
|  | ||||
| run make_pkg "${build_list_pkg}" | ||||
| run make_pkg "${build_list}" | ||||
|   | ||||
| @@ -20,34 +20,16 @@ import ${LIBDIR}/util.sh | ||||
| import ${LIBDIR}/util-yaml-check.sh | ||||
| import ${LIBDIR}/util-profile.sh | ||||
|  | ||||
| prepare_check(){ | ||||
|     local profile="$1" | ||||
|     local profile_dir=${run_dir}/${profile} | ||||
|  | ||||
|     load_profile "${profile_dir}" | ||||
|  | ||||
|     yaml_dir=${cache_dir_netinstall}/${profile}/${target_arch} | ||||
|  | ||||
|     prepare_dir "${yaml_dir}" | ||||
| } | ||||
|  | ||||
| show_profile(){ | ||||
|     prepare_check "$1" | ||||
|     prepare_build | ||||
|     msg2 "yaml_dir: %s" "${yaml_dir}" | ||||
|     msg2 "autologin: %s" "${autologin}" | ||||
|  | ||||
|     [[ ${target_arch} == 'x86_64' ]] && msg2 "multilib: %s" "${multilib}" | ||||
|  | ||||
|     msg2 "extra: %s" "${extra}" | ||||
|  | ||||
|     msg2 "netinstall: %s" "${netinstall}" | ||||
|     msg2 "chrootcfg: %s" "${chrootcfg}" | ||||
|     ${netinstall} && msg2 "netgroups: %s" "$(get_yaml)" | ||||
|     msg2 "netgroups: %s" "$(get_yaml)" | ||||
|  | ||||
|     msg2 "hostname: %s" "${hostname}" | ||||
|     msg2 "username: %s" "${username}" | ||||
|     msg2 "password: %s" "${password}" | ||||
|     msg2 "login_shell: %s" "${login_shell}" | ||||
|     msg2 "addgroups: %s" "${addgroups}" | ||||
|  | ||||
|     msg2 "enable_live: %s" "${enable_live[*]}" | ||||
| @@ -62,12 +44,8 @@ display_settings(){ | ||||
|     show_version | ||||
|     show_config | ||||
|  | ||||
| #     msg "PROFILE:" | ||||
| #     msg2 "build_lists: %s" "$(show_build_lists ${list_dir_iso})" | ||||
| #     msg2 "build_list_iso: %s" "${build_list_iso}" | ||||
|     msg2 "is_build_list: %s" "${is_build_list}" | ||||
|  | ||||
|     msg "OPTIONS:" | ||||
|     msg2 "profile: %s" "${profile}" | ||||
|     msg2 "arch: %s" "${target_arch}" | ||||
|     msg2 "initsys: %s" "${initsys}" | ||||
|     msg2 "kernel: %s" "${kernel}" | ||||
| @@ -76,8 +54,8 @@ display_settings(){ | ||||
|     msg2 "calamares: %s" "${calamares}" | ||||
|     msg2 "group: %s" "${group}" | ||||
|  | ||||
|     msg "CHECK QUEUE:" | ||||
|     run show_profile "${build_list_iso}" | ||||
|     msg "BUILD:" | ||||
|     show_profile | ||||
| } | ||||
|  | ||||
| load_user_info | ||||
| @@ -93,10 +71,11 @@ calamares=false | ||||
| pretend=false | ||||
| group=false | ||||
| cache_dir_netinstall="${workspace_dir}/netinstall" | ||||
| profile=lxqt | ||||
|  | ||||
| usage() { | ||||
|     echo "Usage: ${0##*/} [options]" | ||||
|     echo "    -p <profile>       Buildset or profile [default: ${build_list_iso}]" | ||||
|     echo "    -p <profile>       Buildset or profile [default: ${profile}]" | ||||
|     echo "    -a <arch>          Arch [default: ${target_arch}]" | ||||
|     echo "    -k <name>          Kernel to use[default: ${kernel}]" | ||||
|     echo "    -i <name>          Init system to use [default: ${initsys}]" | ||||
| @@ -115,7 +94,7 @@ opts='p:a:i:k:gcqh' | ||||
|  | ||||
| while getopts "${opts}" arg; do | ||||
|     case "${arg}" in | ||||
|         p) build_list_iso="$OPTARG" ;; | ||||
|         p) profile="$OPTARG" ;; | ||||
|         a) target_arch="$OPTARG" ;; | ||||
|         i) initsys="$OPTARG" ;; | ||||
|         k) kernel="$OPTARG" ;; | ||||
| @@ -129,10 +108,8 @@ done | ||||
|  | ||||
| shift $(($OPTIND - 1)) | ||||
|  | ||||
| eval_build_list "${list_dir_iso}" "${build_list_iso}" | ||||
|  | ||||
| ${pretend} && display_settings && exit 1 | ||||
|  | ||||
| ${group} && write_pacman_group_yaml "${build_list_iso}" && exit 0 | ||||
| ${group} && write_pacman_group_yaml "${profile}" && exit 0 | ||||
|  | ||||
| run make_profile_yaml "${build_list_iso}" | ||||
| build | ||||
|   | ||||
| @@ -18,18 +18,12 @@ SYSCONFDIR='@sysconfdir@' | ||||
| import ${LIBDIR}/util.sh | ||||
| import ${LIBDIR}/util-iso-publish.sh | ||||
|  | ||||
| show_profile(){ | ||||
|     prepare_transfer "$1" | ||||
|     info "Profile: [$1]" | ||||
|     msg2 "src_dir: ${src_dir}" | ||||
|     msg2 "target_dir: ${target_dir}" | ||||
| } | ||||
|  | ||||
| display_settings(){ | ||||
|     show_version | ||||
|     show_config | ||||
|  | ||||
|     msg "OPTIONS:" | ||||
|     msg2 "profile: %s" "${profile}" | ||||
|     msg2 "uplimit: %s kB/s" "${uplimit}" | ||||
| #     msg2 "dist_release: %s" "${dist_release}" | ||||
|  | ||||
| @@ -51,7 +45,8 @@ display_settings(){ | ||||
|     msg2 "project: %s" "${project}" | ||||
|  | ||||
|     msg "UPLOAD:" | ||||
|     show_profile "${profile}" | ||||
|     msg2 "src_dir: ${src_dir}" | ||||
|     msg2 "target_dir: ${target_dir}" | ||||
| } | ||||
|  | ||||
| load_user_info | ||||
| @@ -62,13 +57,13 @@ pretend=false | ||||
| update=false | ||||
| verbose=false | ||||
| torrent=false | ||||
| profile='' | ||||
| profile=lxqt | ||||
|  | ||||
| rsync_args=(-aP --progress -e ssh) | ||||
|  | ||||
| usage() { | ||||
|     echo "Usage: ${0##*/} [options]" | ||||
|     echo "    -p                 Source folder to upload" | ||||
|     echo "    -p                 Source folder to upload [default: ${profile}]" | ||||
|     echo "    -l                 Limit bandwidth in kB/s [default:${uplimit}]" | ||||
|     echo '    -u                 Update remote directory' | ||||
|     echo '    -t                 Create iso torrent' | ||||
| @@ -101,6 +96,8 @@ timer_start=$(get_timer) | ||||
|  | ||||
| rsync_args+=(--bwlimit=${uplimit}) | ||||
|  | ||||
| prepare_transfer | ||||
|  | ||||
| ${pretend} && display_settings #&& exit 1 | ||||
|  | ||||
| sync_dir "${profile}" | ||||
| sync_dir | ||||
|   | ||||
| @@ -109,8 +109,8 @@ prepare_dir "${repos_local}" | ||||
|  | ||||
| ${pretend} && display_settings #&& exit 1 | ||||
|  | ||||
| ${add_pkg} && repo_add_pkg "${repository}" "${target_arch}" "${package}" | ||||
| ${del_pkg} && repo_del_pkg "${repository}" "${target_arch}" "${package}" | ||||
| ${add_pkg} && repo_update "${repository}" "${target_arch}" "${package}" "add" | ||||
| ${del_pkg} && repo_update "${repository}" "${target_arch}" "${package}" "remove" | ||||
|  | ||||
| ${download} && repo_download "${repository}" | ||||
| ${upload} && repo_upload "${repository}" | ||||
|   | ||||
| @@ -1,39 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # 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. | ||||
|  | ||||
| version=@version@ | ||||
|  | ||||
| if [ $# -eq 0 ]; then | ||||
|     echo " | ||||
|     usage: testiso <isofile> [id|ic|sd|sc|vd|vc] | ||||
|  | ||||
|     id    boot iso as IDE disk | ||||
|     ic    boot iso as IDE cd-rom | ||||
|     sd    boot iso as SCSI disk | ||||
|     sc    boot iso as SCSI cd-rom | ||||
|     vd    boot iso as virtio disk | ||||
|     vc    boot iso as virtio cd-rom | ||||
|     " | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| case "${2}" in | ||||
|     id) IF="ide"; MEDIA="disk";; | ||||
|     ic) IF="ide"; MEDIA="cdrom";; | ||||
|     sd) IF="scsi"; MEDIA="disk";; | ||||
|     sc) IF="scsi"; MEDIA="cdrom";; | ||||
|     vd) IF="virtio"; MEDIA="disk";; | ||||
|     vc) IF="virtio"; MEDIA="cdrom";; | ||||
|     *) IF="scsi"; MEDIA="cdrom";; | ||||
| esac | ||||
|  | ||||
| echo qemu -m 256 -drive file=${1},if=${IF},media=${MEDIA},boot=on | ||||
| qemu -m 256 -drive file=${1},if=${IF},media=${MEDIA},boot=on | ||||
| @@ -38,13 +38,10 @@ | ||||
| ################ buildpkg ################ | ||||
|  | ||||
| # default pkg build list; name without .list extension | ||||
| # build_list_pkg=default | ||||
| # build_list=default | ||||
|  | ||||
| ################ buildiso ################ | ||||
|  | ||||
| # default iso build list; name without .list extension | ||||
| # build_list_iso=default | ||||
|  | ||||
| # the dist release; default: auto | ||||
| # dist_release=rolling | ||||
|  | ||||
|   | ||||
| @@ -1,30 +0,0 @@ | ||||
| autoconf | ||||
| automake | ||||
| binutils | ||||
| bison | ||||
| libeudev | ||||
| fakeroot | ||||
| file | ||||
| findutils | ||||
| flex | ||||
| gawk | ||||
| gcc | ||||
| gettext | ||||
| grep | ||||
| groff | ||||
| gzip | ||||
| libtool | ||||
| m4 | ||||
| make | ||||
| pacman | ||||
| patch | ||||
| pkg-config | ||||
| sed | ||||
| sudo | ||||
| texinfo | ||||
| libutil-linux-nosystemd | ||||
| util-linux-nosystemd | ||||
| which | ||||
| >multilib gcc-multilib | ||||
| >multilib lib32-fakeroot | ||||
| >multilib lib32-libltdl | ||||
| @@ -0,0 +1,35 @@ | ||||
| qt5-3d | ||||
| qt5-canvas3d | ||||
| qt5-charts | ||||
| qt5-connectivity | ||||
| qt5-datavis3d | ||||
| qt5-declarative | ||||
| qt5-doc | ||||
| qt5-examples | ||||
| qt5-gamepad | ||||
| qt5-graphicaleffects | ||||
| qt5-imageformats | ||||
| qt5-location | ||||
| qt5-multimedia | ||||
| qt5-networkauth | ||||
| qt5-quickcontrols | ||||
| qt5-quickcontrols2 | ||||
| qt5-remoteobjects | ||||
| qt5-script | ||||
| qt5-scxml | ||||
| qt5-sensors | ||||
| qt5-serialbus | ||||
| qt5-serialport | ||||
| qt5-speech | ||||
| qt5-svg | ||||
| qt5-tools | ||||
| qt5-translations | ||||
| qt5-virtualkeyboard | ||||
| qt5-wayland | ||||
| qt5-webchannel | ||||
| qt5-webengine | ||||
| qt5-webkit | ||||
| qt5-websockets | ||||
| qt5-webview | ||||
| qt5-x11extras | ||||
| qt5-xmlpatterns | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| lxqt | ||||
| @@ -2,12 +2,6 @@ | ||||
| ###### use this file in the profile ###### | ||||
| ########################################## | ||||
|  | ||||
| # use multilib packages; x86_64 only | ||||
| # multilib="true" | ||||
|  | ||||
| # use extra packages as defined in pkglist to activate a full profile | ||||
| # extra="false" | ||||
|  | ||||
| ################ install ################ | ||||
|  | ||||
| # default displaymanager: none | ||||
| @@ -17,12 +11,6 @@ | ||||
| # Set to false to disable autologin in the livecd | ||||
| # autologin="true" | ||||
|  | ||||
| # configure calamares for netinstall | ||||
| # netinstall="false" | ||||
|  | ||||
| # configure calamares to use chrootcfg instead of unpackfs; default: unpackfs | ||||
| # chrootcfg="false" | ||||
|  | ||||
| # service runlevels | ||||
| # openrc_boot=('elogind') | ||||
| # openrc_default=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager') | ||||
|   | ||||
| @@ -173,7 +173,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
|         <variablelist> | ||||
|             <varlistentry> | ||||
|                 <term><varname>build_list_pkg=</varname></term> | ||||
|                 <term><varname>build_list=</varname></term> | ||||
|  | ||||
|                 <listitem><para>Default list for buildpkg without the .list | ||||
|                 extension. | ||||
| @@ -189,13 +189,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. | ||||
|         <para>The following options are understood:</para> | ||||
|  | ||||
|         <variablelist> | ||||
|         <varlistentry> | ||||
|             <term><varname>build_list_iso=</varname></term> | ||||
|  | ||||
|             <listitem><para>Default list for buildiso without the .list | ||||
|             extension. | ||||
|             </para></listitem> | ||||
|         </varlistentry> | ||||
|  | ||||
|         <varlistentry> | ||||
|             <term><varname>dist_release=</varname></term> | ||||
|   | ||||
| @@ -75,8 +75,8 @@ along with artools; If not, see <http://www.gnu.org/licenses/>. | ||||
|             <varlistentry> | ||||
|                 <term><option>-p PROFILE...</option></term> | ||||
|  | ||||
|                 <listitem><para>Name of the build list or name of the directory | ||||
|                 you will build. It needs to contain an existing build list or a | ||||
|                 <listitem><para>Name of the name of the directory | ||||
|                 you will build. It needs to contain a | ||||
|                 folder with a valid profile.</para></listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|   | ||||
| @@ -73,7 +73,7 @@ along with artools; If not, see <http://www.gnu.org/licenses/>. | ||||
|             <varlistentry> | ||||
|                 <term><option>-p PROFILE...</option></term> | ||||
|  | ||||
|                 <listitem><para>Name of the build list or name of the directory.</para></listitem> | ||||
|                 <listitem><para>Name of the profile directory.</para></listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|   | ||||
| @@ -73,7 +73,7 @@ along with artools; If not, see <http://www.gnu.org/licenses/>. | ||||
|             <varlistentry> | ||||
|                 <term><option>-p PROFILE...</option></term> | ||||
|  | ||||
|                 <listitem><para>Name of the build list or name of the directory | ||||
|                 <listitem><para>Name of the iso profile directory | ||||
|                 you will upload.</para></listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|   | ||||
| @@ -91,42 +91,6 @@ along with artools; If not, see <http://www.gnu.org/licenses/>. | ||||
|                 </listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|                 <term><varname>netinstall=</varname></term> | ||||
|  | ||||
|                 <listitem><para>Accepts | ||||
|                     <option>false</option> (the default) | ||||
|                     <option>true</option>.</para> | ||||
|                 </listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|                 <term><varname>chrootcfg=</varname></term> | ||||
|  | ||||
|                 <listitem><para>Accepts | ||||
|                     <option>false</option> (the default) | ||||
|                     <option>true</option>.</para> | ||||
|                 </listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|                 <term><varname>extra=</varname></term> | ||||
|  | ||||
|                 <listitem><para>Accepts | ||||
|                         <option>false</option> (the default) | ||||
|                         <option>false</option>.</para> | ||||
|                 </listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|                 <term><varname>multilib=</varname></term> | ||||
|  | ||||
|                 <listitem><para>Accepts | ||||
|                         <option>true</option> (the default) | ||||
|                         <option>false</option>.</para> | ||||
|                 </listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|                 <term><varname>openrc_boot=</varname></term> | ||||
|  | ||||
| @@ -166,14 +130,6 @@ along with artools; If not, see <http://www.gnu.org/licenses/>. | ||||
|                 </para></listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|                 <term><varname>login_shell=</varname></term> | ||||
|  | ||||
|                 <listitem><para>Accepts any login shell for the user, eg. /bin/zsh. | ||||
|                 login_shell defaults to /bin/bash | ||||
|                 </para></listitem> | ||||
|             </varlistentry> | ||||
|  | ||||
|             <varlistentry> | ||||
|                 <term><varname>addgroups=</varname></term> | ||||
|  | ||||
|   | ||||
| @@ -32,17 +32,14 @@ make_torrent(){ | ||||
| } | ||||
|  | ||||
| prepare_transfer(){ | ||||
|     prof="$1" | ||||
|     target_dir="/iso/$prof/" | ||||
|     src_dir="${cache_dir_iso}/$prof/" | ||||
|     target_dir="/iso/${profile}/" | ||||
|     src_dir="${cache_dir_iso}/${profile}/" | ||||
|     ${torrent} && make_torrent | ||||
| } | ||||
|  | ||||
| sync_dir(){ | ||||
|     prof="$1" | ||||
|     prepare_transfer "$prof" | ||||
|     msg "Start upload [%s] ..." "$prof" | ||||
|     msg "Start upload [%s] ..." "${profile}" | ||||
|     rsync "${rsync_args[@]}" ${src_dir} $(connect)${target_dir} | ||||
|     msg "Done upload [%s]" "$prof" | ||||
|     msg "Done upload [%s]" "${profile}" | ||||
|     show_elapsed_time "${FUNCNAME}" "${timer_start}" | ||||
| } | ||||
|   | ||||
| @@ -227,10 +227,7 @@ make_iso() { | ||||
| gen_iso_fn(){ | ||||
|     local vars=() name | ||||
|     vars+=("${os_id}") | ||||
| #     if ! ${chrootcfg};then | ||||
| #         [[ -n ${profile} ]] && vars+=("${profile}") | ||||
| #     fi | ||||
| #     [[ ${initsys} == 'openrc' ]] && vars+=("${initsys}") | ||||
| #     vars+=("${profile}") | ||||
|     vars+=("${dist_release}") | ||||
|     vars+=("${target_arch}") | ||||
|     for n in ${vars[@]};do | ||||
| @@ -370,19 +367,6 @@ make_grub(){ | ||||
|     fi | ||||
| } | ||||
|  | ||||
| check_requirements(){ | ||||
|  | ||||
|     eval_build_list "${list_dir_iso}" "${build_list_iso}" | ||||
|  | ||||
|     [[ -f ${run_dir}/repo_info ]] || die "%s is not a valid iso profiles directory!" "${run_dir}" | ||||
|  | ||||
|     for sig in TERM HUP QUIT; do | ||||
|         trap "trap_exit $sig \"$(gettext "%s signal caught. Exiting...")\" \"$sig\"" "$sig" | ||||
|     done | ||||
|     trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT | ||||
|     trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR | ||||
| } | ||||
|  | ||||
| compress_images(){ | ||||
|     local timer=$(get_timer) | ||||
|     run_safe "make_iso" | ||||
| @@ -408,16 +392,42 @@ prepare_images(){ | ||||
|     show_elapsed_time "${FUNCNAME}" "${timer}" | ||||
| } | ||||
|  | ||||
| archive_logs(){ | ||||
|     local name=$(gen_iso_fn) ext=log.tar.xz src=${tmp_dir}/archives.list | ||||
|     find ${log_dir} -maxdepth 1 -name "$name*.log" -printf "%f\n" > $src | ||||
|     msg2 "Archiving log files [%s] ..." "$name.$ext" | ||||
|     tar -cJf ${log_dir}/$name.$ext -C ${log_dir} -T $src | ||||
|     msg2 "Cleaning log files ..." | ||||
|     find ${log_dir} -maxdepth 1 -name "$name*.log" -delete | ||||
| check_requirements(){ | ||||
|     [[ -f ${run_dir}/repo_info ]] || die "%s is not a valid iso profiles directory!" "${run_dir}" | ||||
|  | ||||
|     for sig in TERM HUP QUIT; do | ||||
|         trap "trap_exit $sig \"$(gettext "%s signal caught. Exiting...")\" \"$sig\"" "$sig" | ||||
|     done | ||||
|     trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT | ||||
|     trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR | ||||
| } | ||||
|  | ||||
| make_profile(){ | ||||
| prepare_build(){ | ||||
|     timer_start=$(get_timer) | ||||
|     local profile_dir=${run_dir}/${profile} | ||||
|  | ||||
|     load_profile "${profile_dir}" | ||||
|  | ||||
|     local pac_arch='default' pacman_conf | ||||
|     [[ "${target_arch}" == 'x86_64' ]] && pac_arch='multilib' | ||||
|  | ||||
|     pacman_conf="${DATADIR}/pacman-$pac_arch.conf" | ||||
|  | ||||
|     iso_file=$(gen_iso_fn).iso | ||||
|  | ||||
|     mkchroot_args+=(-C ${pacman_conf}) | ||||
|     work_dir=${chroots_iso}/${profile}/${target_arch} | ||||
|  | ||||
|     iso_dir="${cache_dir_iso}/${profile}" | ||||
|  | ||||
|     iso_root=${chroots_iso}/${profile}/iso | ||||
|     mnt_dir=${chroots_iso}/${profile}/mnt | ||||
|     prepare_dir "${mnt_dir}" | ||||
|     prepare_dir "${iso_dir}" | ||||
| } | ||||
|  | ||||
| build(){ | ||||
|     prepare_build | ||||
|     msg "Start building [%s]" "${profile}" | ||||
|     if ${clean_first};then | ||||
|         chroot_clean "${chroots_iso}/${profile}/${target_arch}" | ||||
| @@ -435,26 +445,17 @@ make_profile(){ | ||||
|     if ${iso_only}; then | ||||
|         [[ ! -d ${work_dir} ]] && die "Create images: buildiso -p %s -x" "${profile}" | ||||
|         compress_images | ||||
|         ${verbose} && archive_logs | ||||
|         exit 1 | ||||
|     fi | ||||
|     if ${images_only}; then | ||||
|         prepare_images | ||||
|         ${verbose} && archive_logs | ||||
|         warning "Continue compress: buildiso -p %s -zc ..." "${profile}" | ||||
|         exit 1 | ||||
|     else | ||||
|         prepare_images | ||||
|         compress_images | ||||
|         ${verbose} && archive_logs | ||||
|     fi | ||||
|     reset_profile | ||||
|     msg "Finished building [%s]" "${profile}" | ||||
|     show_elapsed_time "${FUNCNAME}" "${timer_start}" | ||||
| } | ||||
|  | ||||
| build(){ | ||||
|     local prof="$1" | ||||
|     prepare_build "$prof" | ||||
|     make_profile | ||||
| } | ||||
|   | ||||
| @@ -61,6 +61,7 @@ clean_up(){ | ||||
|  | ||||
| sign_pkg(){ | ||||
|     local pkg="$1" | ||||
|     [[ -f ${pkg_dir}/${pkg}.sig ]] && rm ${pkg_dir}/${pkg}.sig | ||||
|     user_run "signfile ${pkg_dir}/${pkg}" | ||||
| } | ||||
|  | ||||
| @@ -87,6 +88,9 @@ post_build(){ | ||||
|         local ver=$(get_full_version "$pkg") src | ||||
|         src=$pkg-$ver-$tarch.$ext | ||||
|         move_to_cache "$src" | ||||
|         if ${repo_add};then | ||||
|             deploypkg -r "${repository}" -x -p "$src" | ||||
|         fi | ||||
|     done | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -9,17 +9,17 @@ | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
|  | ||||
| repo_add_pkg(){ | ||||
|     local repo="$1" arch="$2" pkg="$3" | ||||
| #     if [[ ! -f ${cache_dir_pkg}/$arch/$pkg{,.sig} ]];then | ||||
| repo_update(){ | ||||
|     local repo="$1" arch="$2" pkg="$3" action="$4" | ||||
|     if [[ $action == "add" ]];then | ||||
|         if [[ -f ${repos_local}/$repo/os/$arch/$pkg \ | ||||
|             && -f ${repos_local}/$repo/os/$arch/$pkg.sig ]];then | ||||
|             rm ${repos_local}/$repo/os/$arch/$pkg | ||||
|             rm ${repos_local}/$repo/os/$arch/$pkg.sig | ||||
|         fi | ||||
|         ln -s ${cache_dir_pkg}/$arch/$pkg{,.sig} ${repos_local}/$repo/os/$arch/ | ||||
| #     fi | ||||
|     repo-add -R ${repos_local}/$repo/os/$arch/$repo.db.tar.xz ${repos_local}/$repo/os/$arch/$pkg | ||||
| } | ||||
|  | ||||
| repo_del_pkg(){ | ||||
|     local repo="$1" arch="$2" pkg="$3" | ||||
|     repo-remove -R ${repos_local}/$repo/os/$arch/$repo.db.tar.xz $pkg | ||||
|     fi | ||||
|     repo-$action -R ${repos_local}/$repo/os/$arch/$repo.db.tar.xz ${repos_local}/$repo/os/$arch/$pkg | ||||
| } | ||||
|  | ||||
| update_lock(){ | ||||
| @@ -27,6 +27,15 @@ update_lock(){ | ||||
|     rsync "${rsync_args[@]}" --exclude='os' "${repos_local}/$repo/" "$(connect)${repos_remote}/$repo/" | ||||
| } | ||||
|  | ||||
| is_locked(){ | ||||
|     local repo="$1" url="https://${host}/projects/${project}/files/repos" | ||||
|     if wget --spider -v $url/$repo/$repo.lock &>/dev/null;then | ||||
|         return 0 | ||||
|     else | ||||
|         return 1 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| repo_lock(){ | ||||
|     local repo="$1" | ||||
|     if [[ ! -f ${repos_local}/$repo/$repo.lock ]];then | ||||
| @@ -47,8 +56,11 @@ repo_unlock(){ | ||||
|  | ||||
| repo_download(){ | ||||
|     local repo="$1" | ||||
|     rsync "${rsync_args[@]}" "$(connect)${repos_remote}/$repo/" "${repos_local}/$repo/" | ||||
|     [[ -f ${repos_local}/$repo/$repo.lock ]] && die "The '%s' repository is locked" "$repo" | ||||
|     if is_locked "$repo"; then | ||||
|         die "The '%s' repository is locked" "$repo" | ||||
|     else | ||||
|         rsync "${rsync_args[@]}" "$(connect)${repos_remote}/$repo/" "${repos_local}/$repo/" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| repo_upload(){ | ||||
|   | ||||
| @@ -33,7 +33,7 @@ sync_tree_branches(){ | ||||
|             info "needs sync" | ||||
|             git pull origin $b | ||||
|         fi | ||||
|         msg "Done [%s]" "$repo" | ||||
|         msg "Done [%s] (%s)" "$repo" "$b" | ||||
|     done | ||||
|     git checkout master &> /dev/null | ||||
|     show_elapsed_time "${FUNCNAME}" "${timer}" | ||||
| @@ -125,7 +125,9 @@ import_from_arch(){ | ||||
|                 rsync "${rsync_args[@]}" ${tree_dir_arch}/$arch_dir/$pkg/trunk/ ${tree_dir_artix}/$repo/$pkg/ | ||||
|                 if $(is_dirty); then | ||||
|                     git add $pkg | ||||
|                     git commit -m "Archlinux $pkg-$(get_pkgver) import" | ||||
|                     cd $pkg | ||||
|                         git commit -m "Archlinux $pkg-$(get_pkgver) import" | ||||
|                     cd .. | ||||
|                 fi | ||||
|             done | ||||
|         fi | ||||
|   | ||||
| @@ -9,14 +9,37 @@ | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
|  | ||||
| repo_add_pkg(){ | ||||
|     repo="$1" arch="$2" pkg="$3" ext="db.tar.xz" | ||||
|     repo-add "$repo/os/$arch/$repo.$ext" "$repo/os/$arch/$pkg" | ||||
| # $1: list_dir | ||||
| show_build_lists(){ | ||||
|     local list temp | ||||
|     for item in $(ls $1/*.list); do | ||||
|         temp=${item##*/} | ||||
|         list=${list:-}${list:+|}${temp%.list} | ||||
|     done | ||||
|     echo $list | ||||
| } | ||||
|  | ||||
| repo_del_pkg(){ | ||||
|     repo="$1" arch="$2" pkg="$3" ext="db.tar.xz" | ||||
|     repo-remove "$repo/os/$arch/$repo.$ext" "$repo/os/$arch/$pkg" | ||||
| read_build_list(){ | ||||
|     local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g" | ||||
|     build_list=$(sed "$_com_rm" "$1.list" | sed "$_space" | sed "$_clean") | ||||
| } | ||||
|  | ||||
| # $1: build list | ||||
| eval_build_list(){ | ||||
|     eval "case $1 in | ||||
|         $(show_build_lists ${list_dir_pkg})) is_build_list=true; read_build_list ${list_dir_pkg}/$1 ;; | ||||
|         *) is_build_list=false ;; | ||||
|     esac" | ||||
| } | ||||
|  | ||||
| run(){ | ||||
|     if ${is_build_list};then | ||||
|         for item in ${build_list[@]};do | ||||
|             $1 $item | ||||
|         done | ||||
|     else | ||||
|         $1 $2 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| in_array() { | ||||
|   | ||||
| @@ -39,16 +39,12 @@ load_profile(){ | ||||
|     [[ -z ${autologin} ]] && autologin="true" | ||||
|     [[ ${displaymanager} == 'none' ]] && autologin="false" | ||||
|  | ||||
|     [[ -z ${multilib} ]] && multilib="true" | ||||
|  | ||||
|     [[ -z ${hostname} ]] && hostname="artix" | ||||
|  | ||||
|     [[ -z ${username} ]] && username="artix" | ||||
|  | ||||
|     [[ -z ${password} ]] && password="artix" | ||||
|  | ||||
|     [[ -z ${login_shell} ]] && login_shell='/bin/bash' | ||||
|  | ||||
|     if [[ -z ${addgroups} ]];then | ||||
|         addgroups="video,power,storage,optical,network,lp,scanner,wheel,users" | ||||
|     fi | ||||
| @@ -63,48 +59,31 @@ load_profile(){ | ||||
|  | ||||
|     [[ ${displaymanager} != "none" ]] && openrc_default+=('xdm') | ||||
|  | ||||
|     [[ -z ${netinstall} ]] && netinstall='false' | ||||
|  | ||||
|     [[ -z ${chrootcfg} ]] && chrootcfg='false' | ||||
|  | ||||
|     enable_live=('artix-live' 'pacman-init') | ||||
|  | ||||
|     netgroups="https://raw.githubusercontent.com/artix-linux/iso-profiles/master/shared/netgroups" | ||||
|     netgroups="https://raw.githubusercontent.com/artix-linux/netgroups/master" | ||||
|  | ||||
|     basic='true' | ||||
|     [[ -z ${extra} ]] && extra='false' | ||||
|  | ||||
|     ${extra} && basic='false' | ||||
|  | ||||
|     root_list=${run_dir}/shared/Packages-Root | ||||
|     root_list=${run_dir}/base/Packages-Root | ||||
|     [[ -f "$profdir/Packages-Root" ]] && root_list="$profdir/Packages-Root" | ||||
|  | ||||
|     root_overlay="${run_dir}/shared/root-overlay" | ||||
|     root_overlay="${run_dir}/base/root-overlay" | ||||
|     [[ -d "$profdir/root-overlay" ]] && root_overlay="$profdir/root-overlay" | ||||
|  | ||||
|     [[ -f "$profdir/Packages-Desktop" ]] && desktop_list=$profdir/Packages-Desktop | ||||
|     [[ -d "$profdir/desktop-overlay" ]] && desktop_overlay="$profdir/desktop-overlay" | ||||
|  | ||||
|     live_list="${run_dir}/shared/Packages-Live" | ||||
|     live_list="${run_dir}/base/Packages-Live" | ||||
|     [[ -f "$profdir/Packages-Live" ]] && live_list="$profdir/Packages-Live" | ||||
|  | ||||
|     live_overlay="${run_dir}/shared/live-overlay" | ||||
|     live_overlay="${run_dir}/base/live-overlay" | ||||
|     [[ -d "$profdir/live-overlay" ]] && live_overlay="$profdir/live-overlay" | ||||
|  | ||||
|     if ${netinstall};then | ||||
|         sort -u ${run_dir}/shared/Packages-Net ${live_list} > ${tmp_dir}/packages-live-net.list | ||||
|         live_list=${tmp_dir}/packages-live-net.list | ||||
|     else | ||||
|         chrootcfg="false" | ||||
|     fi | ||||
|  | ||||
|     return 0 | ||||
| } | ||||
|  | ||||
| reset_profile(){ | ||||
|     unset displaymanager | ||||
|     unset autologin | ||||
|     unset multilib | ||||
|     unset hostname | ||||
|     unset username | ||||
|     unset password | ||||
| @@ -112,10 +91,6 @@ reset_profile(){ | ||||
|     unset openrc_boot | ||||
|     unset openrc_default | ||||
|     unset enable_live | ||||
|     unset login_shell | ||||
|     unset netinstall | ||||
|     unset chrootcfg | ||||
|     unset extra | ||||
|     unset root_list | ||||
|     unset desktop_list | ||||
|     unset live_list | ||||
| @@ -134,9 +109,6 @@ write_live_session_conf(){ | ||||
|     echo '# autologin' >> ${conf} | ||||
|     echo "autologin=${autologin}" >> ${conf} | ||||
|     echo '' >> ${conf} | ||||
|     echo '# login shell' >> ${conf} | ||||
|     echo "login_shell=${login_shell}" >> ${conf} | ||||
|     echo '' >> ${conf} | ||||
|     echo '# live username' >> ${conf} | ||||
|     echo "username=${username}" >> ${conf} | ||||
|     echo '' >> ${conf} | ||||
| @@ -152,32 +124,18 @@ load_pkgs(){ | ||||
|     local pkglist="$1" arch="$2" init="$3" _kv="$4" | ||||
|     info "Loading Packages: [%s] ..." "${pkglist##*/}" | ||||
|  | ||||
|     local _init="s|>openrc||g" #_init_rm="s|>runit.*||g" | ||||
|     local _init="s|>$init||g" | ||||
|     case "$init" in | ||||
|         'openrc') _init_rm1="s|>runit.*||g"; _init_rm2="s|>s6*||g" ;; | ||||
|         's6') _init_rm1="s|>runit.*||g"; _init_rm2="s|>openrc.*||g" ;; | ||||
|         'runit') _init_rm1="s|>s6.*||g"; _init_rm2="s|>openrc.*||g" ;; | ||||
|     esac | ||||
|  | ||||
|     local _basic="s|>basic.*||g" | ||||
|     if ${basic};then | ||||
|         _basic="s|>basic||g" | ||||
|     fi | ||||
|  | ||||
|     local _extra="s|>extra.*||g" | ||||
|     if ${extra};then | ||||
|         _extra="s|>extra||g" | ||||
|     fi | ||||
|  | ||||
|     local _multi _arch _arch_rm | ||||
|     local _arch="s|>x86_64||g" _arch_rm="s|>i686.*||g" | ||||
|  | ||||
|     if [[ "$arch" == 'i686' ]];then | ||||
|         _arch="s|>i686||g" | ||||
|         _arch_rm="s|>x86_64.*||g" | ||||
|         _multi="s|>multilib.*||g" | ||||
|     else | ||||
|         _arch="s|>x86_64||g" | ||||
|         _arch_rm="s|>i686.*||g" | ||||
|         if ${multilib};then | ||||
|             _multi="s|>multilib||g" | ||||
|         else | ||||
|             _multi="s|>multilib.*||g" | ||||
|         fi | ||||
|     fi | ||||
|  | ||||
|     local _blacklist="s|>blacklist.*||g" \ | ||||
| @@ -191,11 +149,10 @@ load_pkgs(){ | ||||
|             | sed "$_blacklist" \ | ||||
|             | sed "$_purge" \ | ||||
|             | sed "$_init" \ | ||||
|             | sed "$_init_rm1" \ | ||||
|             | sed "$_init_rm2" \ | ||||
|             | sed "$_arch" \ | ||||
|             | sed "$_arch_rm" \ | ||||
|             | sed "$_multi" \ | ||||
|             | sed "$_kernel" \ | ||||
|             | sed "$_basic" \ | ||||
|             | sed "$_extra" \ | ||||
|             | sed "$_clean")) | ||||
| } | ||||
|   | ||||
| @@ -12,36 +12,48 @@ | ||||
| import ${LIBDIR}/util-yaml.sh | ||||
|  | ||||
| write_netgroup_yaml(){ | ||||
|     msg2 "Writing %s ..." "${2##*/}" | ||||
|     echo "---" > "$2" | ||||
|     echo "- name: '$1'" >> "$2" | ||||
|     echo "  description: '$1'" >> "$2" | ||||
|     echo "  selected: false" >> "$2" | ||||
|     echo "  hidden: false" >> "$2" | ||||
|     echo "  critical: false" >> "$2" | ||||
|     echo "  packages:" >> "$2" | ||||
|     local name="$1" yaml="$2" | ||||
|     msg2 "Writing %s ..." "${yaml##*/}" | ||||
|     echo "---" > "$yaml" | ||||
|     echo "- name: '$name'" >> "$yaml" | ||||
|     echo "  description: '$name'" >> "$yaml" | ||||
|     echo "  selected: false" >> "$yaml" | ||||
|     echo "  hidden: false" >> "$yaml" | ||||
|     echo "  critical: false" >> "$yaml" | ||||
|     echo "  packages:" >> "$yaml" | ||||
|     for p in ${packages[@]};do | ||||
|         echo "       - $p" >> "$2" | ||||
|         echo "       - $p" >> "$yaml" | ||||
|     done | ||||
| } | ||||
|  | ||||
| write_pacman_group_yaml(){ | ||||
|     packages=$(pacman -Sgq "$1") | ||||
|     local group="$1" | ||||
|     packages=$(pacman -Sgq "$group") | ||||
|     prepare_dir "${cache_dir_netinstall}/pacman" | ||||
|     write_netgroup_yaml "$1" "${cache_dir_netinstall}/pacman/$1.yaml" | ||||
|     write_netgroup_yaml "$group" "${cache_dir_netinstall}/pacman/$group.yaml" | ||||
| } | ||||
|  | ||||
| gen_fn(){ | ||||
|     echo "${yaml_dir}/$1-${target_arch}-${initsys}.yaml" | ||||
| } | ||||
|  | ||||
| make_profile_yaml(){ | ||||
|     prepare_check "$1" | ||||
| prepare_build(){ | ||||
|     local profile_dir=${run_dir}/${profile} | ||||
|  | ||||
|     load_profile "${profile_dir}" | ||||
|  | ||||
|     yaml_dir=${cache_dir_netinstall}/${profile}/${target_arch} | ||||
|  | ||||
|     prepare_dir "${yaml_dir}" | ||||
| } | ||||
|  | ||||
| build(){ | ||||
|     prepare_build | ||||
|     load_pkgs "${root_list}" "${target_arch}" "${initsys}" "${kernel}" | ||||
|     write_netgroup_yaml "$1" "$(gen_fn "Packages-Root")" | ||||
|     write_netgroup_yaml "${profile}" "$(gen_fn "Packages-Root")" | ||||
|     if [[ -f "${desktop_list}" ]]; then | ||||
|         load_pkgs "${desktop_list}" "${target_arch}" "${initsys}" "${kernel}" | ||||
|         write_netgroup_yaml "$1" "$(gen_fn "Packages-Desktop")" | ||||
|         write_netgroup_yaml "${profile}" "$(gen_fn "Packages-Desktop")" | ||||
|     fi | ||||
|     ${calamares} && configure_calamares "${yaml_dir}" | ||||
|     reset_profile | ||||
|   | ||||
| @@ -93,21 +93,6 @@ write_initcpio_conf(){ | ||||
|     echo "kernel: ${kernel}" >> "$conf" | ||||
| } | ||||
|  | ||||
| write_unpack_conf(){ | ||||
|     local conf="${modules_dir}/unpackfs.conf" | ||||
|     msg2 "Writing %s ..." "${conf##*/}" | ||||
|     echo "---" > "$conf" | ||||
|     echo "unpack:" >> "$conf" | ||||
|     echo "    - source: \"/run/artix/bootmnt/${os_id}/${target_arch}/rootfs.sfs\"" >> "$conf" | ||||
|     echo "      sourcefs: \"squashfs\"" >> "$conf" | ||||
|     echo "      destination: \"\"" >> "$conf" | ||||
|     if [[ -f "${desktop_list}" ]] ; then | ||||
|         echo "    - source: \"/run/artix/bootmnt/${os_id}/${target_arch}/desktopfs.sfs\"" >> "$conf" | ||||
|         echo "      sourcefs: \"squashfs\"" >> "$conf" | ||||
|         echo "      destination: \"\"" >> "$conf" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| write_users_conf(){ | ||||
|     local conf="${modules_dir}/users.conf" | ||||
|     msg2 "Writing %s ..." "${conf##*/}" | ||||
| @@ -127,15 +112,6 @@ write_users_conf(){ | ||||
|     echo "avatarFilePath:  ~/.face" >> "$conf" # mostly used file-name for avatar | ||||
| } | ||||
|  | ||||
| write_packages_conf(){ | ||||
|     local conf="${modules_dir}/packages.conf" | ||||
|     msg2 "Writing %s ..." "${conf##*/}" | ||||
|     echo "---" > "$conf" | ||||
|     echo "backend: pacman" >> "$conf" | ||||
|     echo '' >> "$conf" | ||||
|     echo "update_db: true" >> "$conf" | ||||
| } | ||||
|  | ||||
| write_welcome_conf(){ | ||||
|     local conf="${modules_dir}/welcome.conf" | ||||
|     msg2 "Writing %s ..." "${conf##*/}" | ||||
| @@ -158,9 +134,7 @@ write_welcome_conf(){ | ||||
|     echo "      - storage" >> "$conf" | ||||
|     echo "      - ram" >> "$conf" | ||||
|     echo "      - root" >> "$conf" | ||||
|     if ${netinstall};then | ||||
|         echo "      - internet" >> "$conf" | ||||
|     fi | ||||
|     echo "      - internet" >> "$conf" | ||||
| } | ||||
|  | ||||
| write_umount_conf(){ | ||||
| @@ -172,17 +146,7 @@ write_umount_conf(){ | ||||
| } | ||||
|  | ||||
| get_yaml(){ | ||||
|     local args=() yaml | ||||
|     if ${chrootcfg};then | ||||
|         args+=("chrootcfg") | ||||
|     else | ||||
|         args+=("packages") | ||||
|     fi | ||||
|     args+=("${initsys}") | ||||
|     for arg in ${args[@]};do | ||||
|         yaml=${yaml:-}${yaml:+-}${arg} | ||||
|     done | ||||
|     echo "${yaml}.yaml" | ||||
|     echo "netgroups-${initsys}.yaml" | ||||
| } | ||||
|  | ||||
| write_netinstall_conf(){ | ||||
| @@ -213,26 +177,13 @@ write_settings_conf(){ | ||||
|     echo "        - keyboard" >> "$conf" | ||||
|     echo "        - partition" >> "$conf" | ||||
|     echo "        - users" >> "$conf" && write_users_conf | ||||
|     if ${netinstall};then | ||||
|         echo "        - netinstall" >> "$conf" && write_netinstall_conf | ||||
|     fi | ||||
|     echo "        - netinstall" >> "$conf" && write_netinstall_conf | ||||
|     echo "        - summary" >> "$conf" | ||||
|     echo "    - exec:" >> "$conf" | ||||
|     echo "        - partition" >> "$conf" | ||||
|     echo "        - mount" >> "$conf" | ||||
|     if ${netinstall};then | ||||
|         if ${chrootcfg}; then | ||||
|             echo "        - chrootcfg" >> "$conf" | ||||
|             echo "        - networkcfg" >> "$conf" | ||||
|         else | ||||
|             echo "        - unpackfs" >> "$conf" && write_unpack_conf | ||||
|             echo "        - networkcfg" >> "$conf" | ||||
|             echo "        - packages" >> "$conf" && write_packages_conf | ||||
|         fi | ||||
|     else | ||||
|         echo "        - unpackfs" >> "$conf" && write_unpack_conf | ||||
|         echo "        - networkcfg" >> "$conf" | ||||
|     fi | ||||
|     echo "        - chrootcfg" >> "$conf" | ||||
|     echo "        - networkcfg" >> "$conf" | ||||
|     echo "        - machineid" >> "$conf" && write_machineid_conf | ||||
|     echo "        - fstab" >> "$conf" | ||||
|     echo "        - locale" >> "$conf" | ||||
|   | ||||
							
								
								
									
										106
									
								
								lib/util.sh
									
									
									
									
									
								
							
							
						
						
									
										106
									
								
								lib/util.sh
									
									
									
									
									
								
							| @@ -8,80 +8,6 @@ | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
|  | ||||
| # $1: section | ||||
| parse_section() { | ||||
|     local is_section=0 | ||||
|     while read line; do | ||||
|         [[ $line =~ ^\ {0,}# ]] && continue | ||||
|         [[ -z "$line" ]] && continue | ||||
|         if [ $is_section == 0 ]; then | ||||
|             if [[ $line =~ ^\[.*?\] ]]; then | ||||
|                 line=${line:1:$((${#line}-2))} | ||||
|                 section=${line// /} | ||||
|                 if [[ $section == $1 ]]; then | ||||
|                     is_section=1 | ||||
|                     continue | ||||
|                 fi | ||||
|                 continue | ||||
|             fi | ||||
|         elif [[ $line =~ ^\[.*?\] && $is_section == 1 ]]; then | ||||
|             break | ||||
|         else | ||||
|             pc_key=${line%%=*} | ||||
|             pc_key=${pc_key// /} | ||||
|             pc_value=${line##*=} | ||||
|             pc_value=${pc_value## } | ||||
|             eval "$pc_key='$pc_value'" | ||||
|         fi | ||||
|     done < "$2" | ||||
| } | ||||
|  | ||||
| get_repos() { | ||||
|     local section repos=() filter='^\ {0,}#' | ||||
|     while read line; do | ||||
|         [[ $line =~ "${filter}" ]] && continue | ||||
|         [[ -z "$line" ]] && continue | ||||
|         if [[ $line =~ ^\[.*?\] ]]; then | ||||
|             line=${line:1:$((${#line}-2))} | ||||
|             section=${line// /} | ||||
|             case ${section} in | ||||
|                 "options") continue ;; | ||||
|                 *) repos+=("${section}") ;; | ||||
|             esac | ||||
|         fi | ||||
|     done < "$1" | ||||
|     echo ${repos[@]} | ||||
| } | ||||
|  | ||||
| check_user_repos_conf(){ | ||||
|     local repositories=$(get_repos "$1") uri='file://' | ||||
|     for repo in ${repositories[@]}; do | ||||
|         msg2 "parsing repo [%s] ..." "${repo}" | ||||
|         parse_section "${repo}" "$1" | ||||
|         [[ ${pc_value} == $uri* ]] && die "Using local repositories is not supported!" | ||||
|     done | ||||
| } | ||||
|  | ||||
| # $1: list_dir | ||||
| show_build_lists(){ | ||||
|     local list temp | ||||
|     for item in $(ls $1/*.list); do | ||||
|         temp=${item##*/} | ||||
|         list=${list:-}${list:+|}${temp%.list} | ||||
|     done | ||||
|     echo $list | ||||
| } | ||||
|  | ||||
| # $1: make_conf_dir | ||||
| show_build_profiles(){ | ||||
|     local cpuarch temp | ||||
|     for item in $(ls $1/*.conf); do | ||||
|         temp=${item##*/} | ||||
|         cpuarch=${cpuarch:-}${cpuarch:+|}${temp%.conf} | ||||
|     done | ||||
|     echo $cpuarch | ||||
| } | ||||
|  | ||||
| get_timer(){ | ||||
|     echo $(date +%s) | ||||
| } | ||||
| @@ -189,7 +115,7 @@ init_buildpkg(){ | ||||
|  | ||||
|     [[ -d ${AT_USERCONFDIR}/pkg.list.d ]] && list_dir_pkg=${AT_USERCONFDIR}/pkg.list.d | ||||
|  | ||||
|     [[ -z ${build_list_pkg} ]] && build_list_pkg='default' | ||||
|     [[ -z ${build_list} ]] && build_list='default' | ||||
|  | ||||
|     cache_dir_pkg=${workspace_dir}/pkg | ||||
|  | ||||
| @@ -199,12 +125,6 @@ init_buildpkg(){ | ||||
| init_buildiso(){ | ||||
|     chroots_iso="${chroots_dir}/buildiso" | ||||
|  | ||||
|     list_dir_iso="${SYSCONFDIR}/iso.list.d" | ||||
|  | ||||
|     [[ -d ${AT_USERCONFDIR}/iso.list.d ]] && list_dir_iso=${AT_USERCONFDIR}/iso.list.d | ||||
|  | ||||
|     [[ -z ${build_list_iso} ]] && build_list_iso='default' | ||||
|  | ||||
|     cache_dir_iso="${workspace_dir}/iso" | ||||
|  | ||||
|     prepare_dir "${cache_dir_iso}" | ||||
| @@ -312,30 +232,6 @@ show_config(){ | ||||
|     fi | ||||
| } | ||||
|  | ||||
| read_build_list(){ | ||||
|     local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g" | ||||
|     build_list=$(sed "$_com_rm" "$1.list" | sed "$_space" | sed "$_clean") | ||||
| } | ||||
|  | ||||
| # $1: list_dir | ||||
| # $2: build list | ||||
| eval_build_list(){ | ||||
|     eval "case $2 in | ||||
|         $(show_build_lists $1)) is_build_list=true; read_build_list $1/$2 ;; | ||||
|         *) is_build_list=false ;; | ||||
|     esac" | ||||
| } | ||||
|  | ||||
| run(){ | ||||
|     if ${is_build_list};then | ||||
|         for item in ${build_list[@]};do | ||||
|             $1 $item | ||||
|         done | ||||
|     else | ||||
|         $1 $2 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| check_root() { | ||||
|     (( EUID == 0 )) && return | ||||
|     if type -P sudo >/dev/null; then | ||||
|   | ||||
		Reference in New Issue
	
	Block a user