Compare commits

..

33 Commits
0.3 ... 0.4.2

Author SHA1 Message Date
artoo
525460b6ed Merge pull request #19 from artix-linux/devel
Devel-0.4.2
2017-08-02 23:47:41 +02:00
udeved
b0166d330e deploypkg: fix typos 2017-08-02 23:46:04 +02:00
udeved
cb4f83d765 cleaning 2017-08-02 23:32:33 +02:00
udeved
3134c3a4e8 deploypkg: add move mode 2017-08-02 23:30:31 +02:00
udeved
53c2b55044 remove heavy docbook depend 2017-08-02 19:46:46 +02:00
udeved
5d330d8f0a buildiso: default to base profile
buildyaml: default to base profile
deployiso: default to base profile
2017-08-02 17:09:33 +02:00
udeved
de93035152 data: don't import linux-lts in archlinux branch 2017-08-02 16:55:43 +02:00
udeved
4349f297a8 util-iso: include profile name in iso filename 2017-08-02 12:58:15 +02:00
udeved
81c8b63f0a buildpkg: display repo name 2017-08-01 19:52:01 +02:00
udeved
554f7611ba data: update artools.conf 2017-08-01 19:51:33 +02:00
udeved
754617f711 doc: update artools.conf.xml 2017-08-01 19:51:06 +02:00
udeved
0acc0a180a util-pkg-chroot: chown repo 2017-08-01 19:50:32 +02:00
artoo
1e4dc7cfcb Merge pull request #17 from artix-linux/devel
Devel-0.4.1
2017-07-31 21:03:08 +02:00
udeved
441257841c fix checks 2017-07-31 18:54:33 +02:00
udeved
33b4a689c1 buildpkg: make repository name optarg; add sig check
deploypkg: add some checks for existing pkg & sig
2017-07-31 17:59:43 +02:00
udeved
35016b7af4 buildpkg: add repo_add switch 2017-07-31 10:09:08 +02:00
artoo
20546c493a Merge pull request #16 from artix-linux/devel
Devel-0.4.1
2017-07-30 21:44:21 +02:00
udeved
02829b046f util-pkg-publish: silence the lock check 2017-07-30 21:43:17 +02:00
udeved
2feeb4f30f import.list.d: add qt5 to world list 2017-07-30 21:42:46 +02:00
udeved
50db8cf691 delete left over files 2017-07-30 15:50:07 +02:00
udeved
c272625422 util-pkg-tree: fix import commit msg
deploypkg: use new repo code
2017-07-30 03:46:39 +02:00
udeved
b8c9063e21 util-pkg-publish: simplify repo code 2017-07-30 03:45:35 +02:00
udeved
be70f7ed2c util-profile: set new netgroups url 2017-07-30 03:45:01 +02:00
udeved
3f05c3e97d version 0.4 2017-07-30 01:12:04 +02:00
artoo
edb486c662 Merge pull request #15 from artix-linux/devel
Devel
2017-07-30 01:10:03 +02:00
udeved
088ae05ad8 util-pkg-publish: fix silly error 2017-07-29 23:29:10 +02:00
udeved
0cbbe9f23f buildiso, buildyaml: remove profile multilib, basic and extra switches 2017-07-29 23:03:08 +02:00
udeved
f591a6b94e util-pkg-publish: add better repo lock check 2017-07-29 22:44:38 +02:00
artoo
47d7a47d96 Merge pull request #14 from artix-linux/devel
Devel-0.4
2017-07-28 17:03:40 +02:00
udeved
f0a5f0f442 util-yaml: clean old code 2017-07-28 10:32:48 +02:00
udeved
d3b67b4a1b buildiso: fix trap
buildyaml: fix profile loading
deployiso: cosmetics
2017-07-28 03:42:28 +02:00
udeved
00e041a143 util-yaml: fix netgroups 2017-07-28 02:48:36 +02:00
udeved
3b70c77f35 remove iso build lists 2017-07-28 02:42:58 +02:00
31 changed files with 266 additions and 1955 deletions

View File

@@ -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
@@ -74,16 +71,6 @@ CPIOINST = \
CPIO = \
initcpio/script/artix_shutdown
MAN_XML = \
buildpkg.xml \
buildtree.xml \
buildiso.xml \
deployiso.xml \
deploypkg.xml \
buildyaml.xml \
artools.conf.xml \
profile.conf.xml
BIN_YAML = \
bin/buildyaml
@@ -94,7 +81,7 @@ LIBS_YAML = \
SHARED_YAML = \
data/linux.preset
all: $(BIN_BASE) $(BIN_PKG) $(BIN_ISO) $(BIN_YAML) doc
all: $(BIN_BASE) $(BIN_PKG) $(BIN_ISO) $(BIN_YAML)
edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \
-e "s|@sysconfdir[@]|$(DESTDIR)$(SYSCONFDIR)/artools|g" \
@@ -108,13 +95,8 @@ edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \
@chmod a-w "$@"
@chmod +x "$@"
doc:
mkdir -p man
$(foreach var,$(MAN_XML),xsltproc /usr/share/docbook2X/xslt/man/docbook.xsl docbook/$(var) | db2x_manxml --output-dir man ;)
clean:
rm -f $(BIN_BASE) ${BIN_PKG} ${BIN_ISO}
rm -rf man
install_base:
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools
@@ -150,14 +132,7 @@ install_pkg:
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_PKG} $(DESTDIR)$(PREFIX)/share/artools
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man1
gzip -c man/buildpkg.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildpkg.1.gz
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
@@ -176,14 +151,6 @@ install_iso:
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_ISO} $(DESTDIR)$(PREFIX)/share/artools
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man1
gzip -c man/buildiso.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildiso.1.gz
gzip -c man/deployiso.1 > $(DESTDIR)$(PREFIX)/share/man/man1/deployiso.1.gz
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man5
gzip -c man/artools.conf.5 > $(DESTDIR)$(PREFIX)/share/man/man5/artools.conf.5.gz
gzip -c man/profile.conf.5 > $(DESTDIR)$(PREFIX)/share/man/man5/profile.conf.5.gz
install_yaml:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_YAML} $(DESTDIR)$(PREFIX)/bin
@@ -194,9 +161,6 @@ install_yaml:
install -dm0755 $(DESTDIR)$(PREFIX)/share/artools
install -m0644 ${SHARED_YAML} $(DESTDIR)$(PREFIX)/share/artools
install -dm0755 $(DESTDIR)$(PREFIX)/share/man/man1
gzip -c man/buildyaml.1 > $(DESTDIR)$(PREFIX)/share/man/man1/buildyaml.1.gz
uninstall_base:
for f in ${SYSCONF}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/$$f; done
for f in ${BIN_BASE}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
@@ -211,11 +175,8 @@ uninstall_pkg:
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
for f in ${SHARED_PKG}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${LIBS_PKG}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildpkg.1.gz
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
@@ -223,16 +184,11 @@ uninstall_iso:
for f in ${CPIOHOOKS}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/hooks/$$f; done
for f in ${CPIOINST}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/install/$$f; done
for f in ${CPIO}; do rm -f $(DESTDIR)$(SYSCONFDIR)/initcpio/$$f; done
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildiso.1.gz
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/deployiso.1.gz
rm -f $(DESTDIR)$(PREFIX)/share/man/man5/artools.conf.5.gz
rm -f $(DESTDIR)$(PREFIX)/share/man/man5/profile.conf.5.gz
uninstall_yaml:
for f in ${BIN_YAML}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
for f in ${LIBS_YAML}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
for f in ${SHARED_YAML}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildyaml.1.gz
install: install_base install_pkg install_iso install_yaml

View File

@@ -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
@@ -125,7 +82,7 @@ mkchroot_args=()
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 +113,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 +139,4 @@ check_requirements
${pretend} && display_settings && exit 1
run build "${build_list_iso}"
build

View File

@@ -37,13 +37,11 @@ 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:"
msg2 "arch: %s" "${target_arch}"
${repo_add} && msg2 "repository: %s" "${repository}"
msg2 "chroots_pkg: %s" "${chroots_pkg}"
msg "ARGS:"
@@ -54,6 +52,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 +63,7 @@ display_settings(){
fi
msg "BUILD QUEUE:"
run show_pkg "${build_list_pkg}"
run show_pkg "${build_list}"
}
load_user_info
@@ -83,11 +82,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 +107,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 +115,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 +125,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 +148,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 +183,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}"

View File

@@ -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
@@ -96,7 +74,7 @@ cache_dir_netinstall="${workspace_dir}/netinstall"
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 +93,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 +107,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

View File

@@ -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,12 @@ pretend=false
update=false
verbose=false
torrent=false
profile=''
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 +95,8 @@ timer_start=$(get_timer)
rsync_args+=(--bwlimit=${uplimit})
prepare_transfer
${pretend} && display_settings #&& exit 1
sync_dir "${profile}"
sync_dir

View File

@@ -60,6 +60,7 @@ verbose=false
verbose=false
add_pkg=false
del_pkg=false
move=false
package=''
rsync_args=(-rtxisP --progress --delete -e ssh)
@@ -70,6 +71,7 @@ usage() {
echo " -r Repository to sync [default:${repository}]"
echo " -u Upload repository"
echo ' -d Download repository'
echo ' -m Move package from repository to pool'
echo " -p Package name to add/delete"
echo ' -x Add package to repository'
echo ' -y Delete package from repository'
@@ -83,7 +85,7 @@ usage() {
orig_argv=("$0" "$@")
opts='p:a:r:xyduvqh'
opts='p:a:r:xymduvqh'
while getopts "${opts}" arg; do
case "${arg}" in
@@ -93,6 +95,7 @@ while getopts "${opts}" arg; do
x) add_pkg=true ;;
y) del_pkg=true ;;
d) download=true ;;
m) move=true ;;
u) upload=true; rsync_args+=(-L) ;;
v) verbose=true; rsync_args+=(-v --stats) ;;
q) pretend=true; rsync_args+=(-n) ;;
@@ -109,8 +112,10 @@ 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}"
${move} && move_to_pool "${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}"

View File

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

View File

@@ -1,6 +1,6 @@
######################################################
################ artools.conf ##################
######################################################
#############################################
################ artools-base ###############
#############################################
# default taget arch: auto detect
# target_arch=$(uname -m)
@@ -23,7 +23,9 @@
# the workspace directory
# workspace_dir="/home/${OWNER}/artools-workspace"
################ buildtree ###############
#############################################
################ artools-pkg ################
#############################################
# artix package tree
# repo_tree_artix=('system' 'world' 'galaxy')
@@ -35,15 +37,18 @@
# host_tree_arch=git://projects.archlinux.org/svntogit
################ buildpkg ################
# default pkg build list; name without .list extension
# build_list_pkg=default
# build_list=default
################ buildiso ################
# default repos root
# repos_local=${workspace_dir}/repos
# default iso build list; name without .list extension
# build_list_iso=default
#############################################
################ artools-iso ################
#############################################
# the default profile
# profile=base
# the dist release; default: auto
# dist_release=rolling
@@ -60,8 +65,6 @@
# gpg key; leave empty or commented to skip sfs signing
# gpgkey=""
################ deployiso ################
# set upload bandwidth limit in kB/s
# limit=100

View File

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

View File

@@ -90,7 +90,6 @@ links
linux-api-headers
linux-atm
linux-firmware
linux-lts
lz4
lzo
m4

View File

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

View File

@@ -1 +0,0 @@
lxqt

View File

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

View File

@@ -1,305 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="profile.conf" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>profile.conf-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>artools.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>artools.conf</refname>
<refpurpose>general configuration file for artools</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>artools.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>artools.conf is a general configuration file for all artools binaries. </para>
<para>By default all the options in the file are commented, with a value equal to the
default value. To change it just uncomment and put the desired value.</para>
</refsect1>
<refsect1>
<title>General options for all tools</title>
<para>The following options are understood and used for various tools:</para>
<variablelist>
<varlistentry>
<term><varname>target_arch=</varname></term>
<listitem><para>Takes <option>i686</option> or <option>x86_64</option>.
By default it will try to autodetect the current architecture.
It defines in witch architecture the packages will be built with
buildpkg.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>workspace_dir=</varname></term>
<listitem><para>Workspace dir where packages, iso, repos or build tree. Default is "/home/$OWNER/artools-workspace".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>chroots_dir=</varname></term>
<listitem><para>Build dir where buildpkg or buildiso chroot
environment will be created. Default is "/var/lib/artools".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>build_mirror=</varname></term>
<listitem><para>Default mirror to be used when building
packages or iso.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>account=</varname></term>
<listitem><para>Default user to be used for upload.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>project=</varname></term>
<listitem><para>Default SF project name to be used for upload.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>host_mirrors=</varname></term>
<listitem><para>Array of host mirrors.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for buildtree</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>repo_tree_artix=</varname></term>
<listitem><para>Artix package tree. Default is
"('system' 'world' 'galaxy')".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>host_tree_artix=</varname></term>
<listitem><para>Host tree. Default is "https://github.com/artix-linux".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>repo_tree_arch=</varname></term>
<listitem><para>Archlinux package tree. Default is
"('packages' 'community')".
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>host_tree_arch=</varname></term>
<listitem><para>Host tree for archlinux. Default is
"https://projects.archlinux.org/git/svntogit".
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for buildpkg</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>build_list_pkg=</varname></term>
<listitem><para>Default list for buildpkg without the .list
extension.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for buildiso</title>
<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>
<listitem><para>Release version of the distribution.
</para></listitem>
</varlistentry>
<varlistentry>
<!-- TODO: We should tell where exactly this is used -->
<term><varname>dist_branding=</varname></term>
<listitem><para>Branding of the distribution.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>gpgkey=</varname></term>
<listitem><para>If the gpgkey is supplied, the sfs images on iso will be signed.
If the key is left empty or commented, signing will be skipped.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>initsys=</varname></term>
<listitem><para>Takes <option>openrc</option> (the default)
or <option>notyetimplemented</option>. Selecting and option will change
how the hostname, the displaymanager and services will be configured.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>kernel=</varname></term>
<listitem><para>Takes a string corresponding to an
artix kernel package.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for deployiso</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>tracker_url=</varname></term>
<listitem><para>Default tracker announce for the torrent.
The tracker url can also contain comma separated urls.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>piece_size=</varname></term>
<listitem><para>Default priece size for the torrent in 2^n.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>uplimit=</varname></term>
<listitem><para>Default upload bandwidth limit in kb/s.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options for deploypkg</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>repos_local=</varname></term>
<listitem><para>The local repository root. Default is "${workspace_dir}/repos".
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildiso</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>deployiso</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildtree</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>deploypkg</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildpkg</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@@ -1,181 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildiso" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildiso-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildiso</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildiso</refname>
<refpurpose>buildiso is used to build a particular ISO or a set of ISOs. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildiso</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildiso</command> is used to build a particular ISO or a set of ISOs. </para>
<para>With buildiso you can build ISOs suitable to be booted from a removable media
like a DVD o a USB Stick, it will automatically create the necessary files to
install this ISO using calamares.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<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
folder with a valid profile.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a i686|x86_64</option></term>
<listitem><para>Architecture that the iso will be built. Can be i686 or x86_64.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r DIR</option></term>
<listitem><para>Root working directory where the iso will be built.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t DIR</option></term>
<listitem><para>Iso target directory where the final iso will be stored.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i openrc|s6|runit</option></term>
<listitem><para>The init system on the iso</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-g KEY</option></term>
<listitem><para>The GPG key to use to sign the sfs images.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-k linuxXXX</option></term>
<listitem><para>The kernel on the iso</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Disable clean working directory step.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<listitem><para>Enable persistence mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option></term>
<listitem><para>Only build images, without creating an ISO file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-z</option></term>
<listitem><para>Generate iso from already created images, for example created with the -x option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Verbose output to log file, show profile detail in combination with pretend.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend build.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,160 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildpkg" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildpkg-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildpkg</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildpkg</refname>
<refpurpose>buildpkg is used to build packages in a clean chroot. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildpkg</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildpkg</command> is used to build a particular package or a set of packages. </para>
<para>With buildpkg you can build packages in a clean chroot environment.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<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 cantain a existing build list or a
folder with a valid PKGBUILD.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a i686|x86_64|multilib</option></term>
<listitem><para>Architecture that the iso will be built. Can be i686, x86_64 or multilib.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r DIR</option></term>
<listitem><para>Root working directory where the package will be built.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i PKG</option></term>
<listitem><para>Install packages into the working copy of the chroot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<listitem><para>Create chroot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem><para>Delete chroot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Clean chroot copy.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem><para>Update chroot copy.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-w</option></term>
<listitem><para>Clean up cache and sources.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<listitem><para>Install built package in chroot and run namcap check.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem><para>Sign package.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend build.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,111 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildtree" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildtree-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildtree</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildtree</refname>
<refpurpose>buildtree is used to sync the cromnix and arch package build tree. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildtree</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildtree</command> is used to sync package trees. </para>
<para>With buildtree, you can sync the cromnix and arch linux packae build trees.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-s</option></term>
<listitem><para>Sync Manjaro linux tree.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a</option></term>
<listitem><para>Sync Arch linux tree.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Clean package trees.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,146 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="buildyaml" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>buildyaml-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>buildyaml</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>buildyaml</refname>
<refpurpose>buildyaml is used to generate and validate yaml files used by calamares. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>buildyaml</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>buildyaml</command> is used to generate and validate yaml files used by calamares.</para>
<para>buildyaml is a script to generate and validate yaml files by yaml schemas. Buildiso generates these files also, but buildyaml is a standalone version without the need to build the entire iso.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-p PROFILE...</option></term>
<listitem><para>Name of the build list or name of the directory.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a i686|x86_64</option></term>
<listitem><para>Architecture that the yaml will be created for. Can be i686 or x86_64.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i openrc|s6|runit</option></term>
<listitem><para>The init system the yaml will be created for.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-k linuxXXX</option></term>
<listitem><para>The kernel the yaml will be created for.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Create calamares yaml conf files.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option></term>
<listitem><para>Generate a packman group netgroup yaml file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Validate the yaml file by yaml schema.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,135 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="deployiso" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>deployiso-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>deployiso</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>deployiso</refname>
<refpurpose>deployiso is used to upload a particular ISO or a set of ISOs. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>deployiso</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>deployiso</command> is used to upload a particular ISO or a set of ISOs. </para>
<para>deployiso is a script to upload a specific iso or a buiildset to SF.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-p PROFILE...</option></term>
<listitem><para>Name of the build list or name of the directory
you will upload.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-l</option></term>
<listitem><para>Limit bandwidth in kB/s.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem><para>Update remote iso.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option></term>
<listitem><para>Create a torrent from iso file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Verbose output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend upload.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>profiles.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,145 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="deploypkg" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>deploypkg-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>deploypkg</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>deploypkg</refname>
<refpurpose>deploypkg is used to sync package repositories. </refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>deploypkg</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>deploypkg</command> is used to sync package repositories. </para>
<para>deploypkg is a script to sync a specific repoitory with SF.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-r REPOSITORY...</option></term>
<listitem><para>Name of the repo to sync.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p PACKAGE...</option></term>
<listitem><para>Name of the package to add or delete.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option></term>
<listitem><para>Add a package to the repo db.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-y</option></term>
<listitem><para>Delete a package from the repo.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem><para>Upload a repo.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem><para>Download a repo.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Verbose output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Query settings and pretend upload.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Help.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!--<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
-->
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@@ -1,200 +0,0 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of artools.
Copyright 2015 Manjaro Developers
Copyright 2017 Artoo
artools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
artools 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with artools; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="profile.conf" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>profile.conf-+</title>
<productname>artools</productname>
<authorgroup>
<author>
<contrib></contrib>
<firstname></firstname>
<surname></surname>
<email></email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>profile.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>profile.conf</refname>
<refpurpose>configuration file for the individual profiles </refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>profile.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>profile.conf is a configuration file used to modify how the ISO will be built. </para>
<para>By default all the options in the file are commented, with a value equal to the
default value. To change it just uncomment and put the desired value.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><varname>displaymanager=</varname></term>
<listitem><para>Takes a value of
<option>lightdm</option>,
<option>sddm</option>,
<option>gdm</option>,
<option>mdm</option>,
<option>lxdm</option>. Defaults to "none" value,
which won't configure any display manager.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>autologin=</varname></term>
<listitem><para>Accepts
<option>true</option> (the default)
<option>false</option>.</para>
</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>
<listitem><para>Array of services that will be
enabled in openrc boot runlevel.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>openrc_default=</varname></term>
<listitem><para>Array of services that will be
enabled in openrc default runlevel.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>hostname=</varname></term>
<listitem><para>Hostname for the ISO.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>username=</varname></term>
<listitem><para>Username of the default user
that will be created in the live-cd.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>password=</varname></term>
<listitem><para>Password of the default user
that will be created in the live-cd.
</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>
<listitem><para>Default groups of the default user
in the live-cd and the user created while installing
the iso using calamares.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='artools'><refentrytitle>artools.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='artools'><refentrytitle>buildiso</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

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

View File

@@ -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,53 +392,62 @@ 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}"
local unused_arch='i686'
if [[ ${target_arch} == 'i686' ]];then
unused_arch='x86_64'
fi
if [[ -d "${chroots_iso}/${profile}/${unused_arch}" ]];then
chroot_clean "${chroots_iso}/${profile}/${unused_arch}"
fi
clean_iso_root "${iso_root}"
fi
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
}

View File

@@ -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,10 @@ 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"
user_own "${repos_local}/${repository}" -R
fi
done
}

View File

@@ -9,17 +9,26 @@
# 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
fi
local dest=${repos_local}/$repo/os/$arch/$pkg
if [[ $action == "remove" ]];then
dest=$pkg
fi
repo-$action -R ${repos_local}/$repo/os/$arch/$repo.db.tar.xz $dest
}
repo_del_pkg(){
move_to_pool(){
local repo="$1" arch="$2" pkg="$3"
repo-remove -R ${repos_local}/$repo/os/$arch/$repo.db.tar.xz $pkg
cp ${repos_local}/$repo/os/$arch/$pkg{,.sig} ${cache_dir_pkg}/$arch/
}
update_lock(){
@@ -27,6 +36,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 +65,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(){

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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)
}
@@ -136,7 +62,7 @@ get_osid(){
echo "${ID}"
}
init_common(){
init_artools_base(){
[[ -z ${target_arch} ]] && target_arch=$(uname -m)
@@ -161,7 +87,7 @@ init_common(){
prepare_dir "${workspace_dir}"
}
init_buildtree(){
init_artools_pkg(){
[[ -z ${tree_dir_artix} ]] && tree_dir_artix=${workspace_dir}/artix
@@ -178,9 +104,7 @@ init_buildtree(){
list_dir_import="${SYSCONFDIR}/import.list.d"
[[ -d ${AT_USERCONFDIR}/import.list.d ]] && list_dir_import=${AT_USERCONFDIR}/import.list.d
}
init_buildpkg(){
chroots_pkg="${chroots_dir}/buildpkg"
list_dir_pkg="${SYSCONFDIR}/pkg.list.d"
@@ -189,27 +113,27 @@ 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
prepare_dir "${cache_dir_pkg}"
repository='system'
[[ -z ${repos_local} ]] && repos_local="${workspace_dir}/repos"
repos_remote="/${repos_local##*/}"
}
init_buildiso(){
init_artools_iso(){
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}"
##### iso settings #####
[[ -z ${profile} ]] && profile='base'
[[ -z ${dist_release} ]] && dist_release=$(get_release)
@@ -224,9 +148,6 @@ init_buildiso(){
[[ -z ${kernel} ]] && kernel="linux-lts"
[[ -z ${gpgkey} ]] && gpgkey=''
}
init_deployiso(){
[[ -z ${uplimit} ]] && uplimit=100
@@ -237,14 +158,6 @@ init_deployiso(){
torrent_meta="$(get_osname)"
}
init_deploypkg(){
repository='system'
[[ -z ${repos_local} ]] && repos_local="${workspace_dir}/repos"
repos_remote="/${repos_local##*/}"
}
load_config(){
@@ -254,17 +167,11 @@ load_config(){
[[ -r ${artools_conf} ]] && source ${artools_conf}
init_common
init_artools_base
init_buildtree
init_artools_pkg
init_buildpkg
init_buildiso
init_deployiso
init_deploypkg
init_artools_iso
return 0
}
@@ -312,30 +219,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