Compare commits

...

46 Commits

Author SHA1 Message Date
525c7dd0ee pkg: update makepkg.conf.d
All checks were successful
Artools shellcheck / lint (push) Successful in 8m37s
2025-02-23 02:04:30 +01:00
744eb3ca96 artixpkg: fix --no-patch logic import
All checks were successful
Artools shellcheck / lint (push) Successful in 1m2s
2025-02-22 04:21:33 +01:00
3dd3f806ef artixpkg: add --no-patch import flag
All checks were successful
Artools shellcheck / lint (push) Successful in 1m59s
2025-02-17 20:33:06 +01:00
fa245021bf makepkg-conf (#141)
All checks were successful
Artools shellcheck / lint (push) Successful in 34s
Reviewed-on: #141
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-12-07 10:32:40 +01:00
fd74b22bc2 arch-patches (#140)
All checks were successful
Artools shellcheck / lint (push) Successful in 1m9s
Reviewed-on: #140
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-12-06 15:11:22 +01:00
538e5051e5 artixpkg: add custom arch mapping for importing packages
Some checks failed
Artools shellcheck / lint (push) Has been cancelled
There are some packages that track upstream arch but have different
names. This can be handled using a special mapping similar to what is
done in artix-checkupdates.
2024-09-05 14:45:39 -05:00
ba2542c697 artixpkg: remove archlinux to artixlinux sed on import
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 38s
Artools shellcheck / lint (push) Successful in 36s
This is not always desirable. For some packages, the upstream url really
is archlinux.org. This can be taken care of in artix-patches instead.
2024-08-26 10:38:56 -05:00
23c6cecdcc artixpkg: remove unneeded sed condition from import
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 36s
Artools shellcheck / lint (push) Successful in 42s
Changing "(Arch Linux)" to "(Artix Linux)" is not used in practice by
any package and doing such name changes like this is better handled in
artix-patches instead of it being a blunt hammer on all imported
packages.
2024-07-26 20:13:35 -05:00
828844fd9a artixpkg git push: remove parallel
All checks were successful
Artools shellcheck / lint (push) Successful in 35s
2024-05-13 17:03:59 +02:00
760f5e8281 artools/0.34.x (#135)
All checks were successful
Artools shellcheck / lint (push) Successful in 35s
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-authored-by: Cory Sanin <corysanin@artixlinux.org>
Reviewed-on: #135
2024-05-13 15:41:42 +02:00
bb1585ad7b add initial zsh completions (#132)
All checks were successful
Artools shellcheck / lint (push) Successful in 38s
Not as advanced as the bash completions but better than nothing.

Co-authored-by: artoo <artoo@artixlinux.org>
Reviewed-on: #132
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-committed-by: Dudemanguy <dudemanguy@artixlinux.org>
2024-04-27 22:02:55 +02:00
be6506d6ee artixpkg git ci: fix team (#133)
All checks were successful
Artools shellcheck / lint (push) Successful in 39s
Reviewed-on: #133
2024-04-17 23:08:48 +02:00
35a9c2f305 artools/0.34.x (#131)
All checks were successful
Artools shellcheck / lint (push) Successful in 43s
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-authored-by: Cory Sanin <corysanin@artixlinux.org>
Reviewed-on: #131
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-04-17 17:05:39 +02:00
5347f45cc5 Merge pull request 'chroot-run: set PATH in chroot' (#129) from env-fix into master
All checks were successful
Artools shellcheck / lint (push) Successful in 46s
Reviewed-on: #129
2024-04-10 23:08:20 +02:00
c7f11a5bd5 chroot-run: set PATH in chroot
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 48s
2024-04-10 23:05:38 +02:00
f3794ff2ad Merge pull request 'artixpkg: use artix-patches on import' (#119) from corysanin/artools:artix-patches into master
All checks were successful
Artools shellcheck / lint (push) Successful in 47s
Reviewed-on: #119
2024-04-03 21:56:40 +02:00
c6811cca48 update repo URL 2024-04-03 14:42:23 -05:00
a1f296ff2b moving patch scripts 2024-04-03 14:41:13 -05:00
ac5e0f4b3d simplify PKGBUILD paths 2024-04-03 14:41:13 -05:00
2ecfb04dc6 artixpkg: use artix-patches on import 2024-04-03 14:41:13 -05:00
e81eac2021 artixpkg: update usage (#124)
All checks were successful
Artools shellcheck / lint (push) Successful in 41s
Reviewed-on: #124
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-04-02 14:54:11 +02:00
e612d2c6d2 artixpkg git: fix ci lib source
All checks were successful
Artools shellcheck / lint (push) Successful in 46s
2024-04-01 19:27:32 +02:00
2bed697813 Merge pull request 'repopkg: --include-sigs on add' (#123) from repopkg into master
All checks were successful
Artools shellcheck / lint (push) Successful in 42s
Reviewed-on: #123
2024-04-01 14:47:19 +02:00
ba4ac669e7 repopkg: --include-sigs on add
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 33s
2024-04-01 14:45:20 +02:00
47babd20fd Merge pull request 'artixpkg: refactor ci into git sub cmd' (#122) from refactor-ci into master
All checks were successful
Artools shellcheck / lint (push) Successful in 34s
Reviewed-on: #122
2024-04-01 14:39:38 +02:00
d35422a74e artixpkg: refactor ci into git sub cmd
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 36s
2024-04-01 13:09:37 +02:00
94b8957494 artixpkg ci: remove redundant --switch opt
All checks were successful
Artools shellcheck / lint (push) Successful in 42s
2024-03-31 12:22:06 +02:00
a0a485294c artixpkg ci: remove obsolete jobs opt
All checks were successful
Artools shellcheck / lint (push) Successful in 38s
2024-03-30 21:48:10 +01:00
7b67601e44 artixpkg ci: remove parallel agent config, leads to problems with gpg agents signing the commit
All checks were successful
Artools shellcheck / lint (push) Successful in 42s
2024-03-30 21:37:58 +01:00
8db0c1ca39 artixpkg admin: fix maintainer parallel
All checks were successful
Artools shellcheck / lint (push) Successful in 41s
2024-03-27 10:12:14 +01:00
190340e375 artixpkg admin: fix maintainer usage example
All checks were successful
Artools shellcheck / lint (push) Successful in 45s
2024-03-27 00:45:44 +01:00
f7a61731ba agent-branches (#118)
All checks were successful
Artools shellcheck / lint (push) Successful in 38s
Reviewed-on: #118
2024-03-26 18:27:50 +01:00
e959ce10c3 artixpkg admin: fix maintainer parallel (#121)
All checks were successful
Artools shellcheck / lint (push) Successful in 35s
Reviewed-on: #121
2024-03-25 23:14:22 +01:00
d2bbf9d8c4 Merge pull request 'packagersign: fix signing' (#120) from psign into master
Some checks failed
Artools shellcheck / lint (push) Has been cancelled
Reviewed-on: #120
2024-03-25 23:13:48 +01:00
1dafa0fb38 packagersign: fix signing
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 52s
2024-03-25 22:50:11 +01:00
982a9ed678 artixpkg: fix ci usage
All checks were successful
Artools shellcheck / lint (push) Successful in 48s
2024-03-23 14:25:20 +01:00
19a6ff09f1 minor-fixes (#117)
All checks were successful
Artools shellcheck / lint (push) Successful in 46s
Co-authored-by: Cory Sanin <corysanin@artixlinux.org>
Reviewed-on: #117
2024-03-22 23:03:09 +01:00
fac634cf14 Merge pull request 'artixpkg: add "admin maintainer" to bash completion' (#115) from corysanin/artools:completion-maintainer into master
All checks were successful
Artools shellcheck / lint (push) Successful in 43s
Reviewed-on: #115
Reviewed-by: artoo <artoo@artixlinux.org>
2024-03-22 21:09:03 +01:00
71ed464c33 artixpkg: add "admin maintainer" to bash completion 2024-03-22 14:54:58 -05:00
f7286a0661 artixpkg: remove --manual flag (#110)
All checks were successful
Artools shellcheck / lint (push) Successful in 47s
It is possible to autodetect whether or not a short name is being used.
Remove this flag to avoid breaking the interface.

Co-authored-by: artoo <artoo@artixlinux.org>
Reviewed-on: #110
Co-authored-by: Dudemanguy <dudemanguy@artixlinux.org>
Co-committed-by: Dudemanguy <dudemanguy@artixlinux.org>
2024-03-22 20:45:27 +01:00
aee7c07a04 Artixpkg admin: maintainer (#114)
All checks were successful
Artools shellcheck / lint (push) Successful in 47s
Reviewed-on: #114
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-03-22 19:15:12 +01:00
fbcfa79426 artixpkg admin: config archive org (#112)
All checks were successful
Artools shellcheck / lint (push) Successful in 42s
Reviewed-on: #112
2024-03-21 23:31:05 +01:00
87bd203d3e artixpkg: rename completion and update "admin topic" args (#113)
All checks were successful
Artools shellcheck / lint (push) Successful in 51s
bash completion file needs to be the same name as the command it's for

Reviewed-on: #113
Co-authored-by: Cory Sanin <corysanin@artixlinux.org>
Co-committed-by: Cory Sanin <corysanin@artixlinux.org>
2024-03-21 23:29:51 +01:00
ac0472d9ff Merge pull request 'artixpkg admin: add --delete topics' (#111) from rm-all-topics into master
All checks were successful
Artools shellcheck / lint (push) Successful in 45s
Reviewed-on: #111
2024-03-21 02:21:31 +01:00
e80c07d2fc artixpkg admin: add --delete topics
All checks were successful
Artools shellcheck / lint (pull_request) Successful in 46s
2024-03-21 02:04:11 +01:00
7584684bea artixpkg admin: archive repo after landfill transfer (#109)
All checks were successful
Artools shellcheck / lint (push) Successful in 48s
Reviewed-on: #109
Co-authored-by: Artoo <artoo@artixlinux.org>
Co-committed-by: Artoo <artoo@artixlinux.org>
2024-03-21 01:10:34 +01:00
49 changed files with 804 additions and 383 deletions

View File

@@ -80,7 +80,7 @@ conf_base:
conf_pkg:
@install -d $(BUILDDIR)/makepkg.conf.d $(BUILDDIR)/artools
@cp -a $(MAKEPKG_CONFIGS) $(BUILDDIR)/makepkg.conf.d
@cp -ra $(MAKEPKG_CONFIGS) $(BUILDDIR)/makepkg.conf.d
@cp -a $(TOOLS_CONFIGS_PKG) $(BUILDDIR)/artools
conf_iso:
@@ -111,11 +111,13 @@ install_pkg: binprogs_pkg
for conf in $(notdir $(TOOLS_CONFIGS_PKG)); do install -Dm0644 $(BUILDDIR)/$(TOOLS)/$$conf $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)/$${conf##*/}; done
for conf in $(notdir $(MAKEPKG_CONFIGS)); do install -Dm0644 $(BUILDDIR)/makepkg.conf.d/$$conf $(DESTDIR)$(DATADIR)/makepkg.conf.d/$${conf##*/}; done
cp -ra $(BUILDDIR)/makepkg.conf.d -t $(DESTDIR)$(DATADIR)
for a in $(SETARCH_ALIASES); do install -m0644 $$a -t $(DESTDIR)$(DATADIR)/setarch-aliases.d; done
ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides
install -Dm0644 $(BUILDDIR)/contrib/completion/bash/$(TOOLS) $(DESTDIR)$(PREFIX)/share/bash-completion/completions/$(TOOLS)
install -Dm0644 $(BUILDDIR)/contrib/completion/bash/artixpkg $(DESTDIR)$(PREFIX)/share/bash-completion/completions/artixpkg
install -Dm0644 $(BUILDDIR)/contrib/completion/zsh/_artixpkg $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_artixpkg
install_iso: binprogs_iso
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)
@@ -133,13 +135,12 @@ uninstall:
for f in $(notdir $(LIBRARY)); do rm -f $(DESTDIR)$(DATADIR)/lib/$$f; done
rm -rf $(DESTDIR)$(DATADIR)/lib
for conf in $(notdir $(TOOLS_CONFIGS)); do rm -f $(DESTDIR)$(SYSCONFDIR)/$(TOOLS)/$${conf##*/}; done
for conf in $(notdir $(MAKEPKG_CONFIGS)); do rm -f $(DESTDIR)$(DATADIR)/makepkg.conf.d/$${conf##*/}; done
rm -rf $(DESTDIR)$(DATADIR)/makepkg.conf.d
for conf in $(notdir $(PACMAN_CONFIGS)); do rm -f $(DESTDIR)$(DATADIR)/pacman.conf.d/$${conf##*/}; done
for f in $(notdir $(SETARCH_ALIASES)); do rm -f $(DESTDIR)$(DATADIR)/setarch-aliases.d/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
rmdir --ignore-fail-on-non-empty \
$(DESTDIR)$(DATADIR)/setarch-aliases.d \
$(DESTDIR)$(DATADIR)/makepkg.conf.d \
$(DESTDIR)$(DATADIR)/pacman.conf.d \
$(DESTDIR)$(DATADIR) \
$(DESTDIR)$(SYSCONFDIR)/$(TOOLS)

View File

@@ -32,3 +32,15 @@
# default packaging org
# GIT_ORG='packages'
# default archiving org
# GIT_ORG_ARCHIVE='landfill'
# default jenkins agents
# AGENTS=(orion taurus)
# whether to include custom maintainer line when importing from arch
# PATCH_MAINTAINER=false
# override the default git url for patches repo
# PATCH_URL=${GIT_SSH}:artix/artix-patches.git

View File

@@ -0,0 +1,18 @@
#!/hint/bash
#
# /etc/makepkg.conf.d/fortran.conf
#
#########################################################################
# FORTRAN LANGUAGE SUPPORT
#########################################################################
# Flags used for the Fortran compiler, similar in spirit to CFLAGS. Read
# linkman:gfortran[1] for more details on the available flags.
#FFLAGS="-O2 -pipe"
#FCFLAGS="$FFLAGS"
# Additional compiler flags appended to `FFLAGS` and `FCFLAGS` for use in debugging. Usually
# this would include: ``-g''. Read linkman:gfortran[1] for more details on the wide
# variety of compiler flags available.
#DEBUG_FFLAGS="-g"

View File

@@ -0,0 +1,19 @@
#!/hint/bash
# shellcheck disable=2034
#
# /etc/makepkg.conf.d/rust.conf
#
#########################################################################
# RUST LANGUAGE SUPPORT
#########################################################################
# Flags used for the Rust compiler, similar in spirit to CFLAGS. Read
# linkman:rustc[1] for more details on the available flags.
RUSTFLAGS="-Cforce-frame-pointers=yes"
# Additional compiler flags appended to `RUSTFLAGS` for use in debugging.
# Usually this would include: ``-C debuginfo=2''. Read linkman:rustc[1] for
# more details on the available flags.
DEBUG_RUSTFLAGS="-C debuginfo=2"

View File

@@ -43,17 +43,16 @@ CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
# -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
-Wl,-z,pack-relative-relocs"
LTOFLAGS="-flto=auto"
RUSTFLAGS=""
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
@@ -82,7 +81,7 @@ BUILDENV=(!distcc color !ccache check !sign)
# These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto !autodeps)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@@ -94,6 +93,7 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization
#-- autodeps: Automatically add depends/provides
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)
@@ -113,6 +113,8 @@ DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#-- Prefix and directories for library autodeps
LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
#########################################################################
# PACKAGE OUTPUT

View File

@@ -0,0 +1 @@
../conf.d/fortran.conf

View File

@@ -0,0 +1 @@
../conf.d/rust.conf

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -35,6 +35,8 @@ Color
CheckSpace
VerbosePkgLists
ParallelDownloads = 10
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -35,6 +35,8 @@ Color
CheckSpace
VerbosePkgLists
ParallelDownloads = 10
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -35,6 +35,8 @@ Color
CheckSpace
VerbosePkgLists
ParallelDownloads = 10
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -36,6 +36,8 @@ NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
DownloadUser = alpm
#DisableSandbox
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.

View File

@@ -1,57 +1,28 @@
#/usr/bin/env bash
LIBDIR=${LIBDIR:-'@libdir@'}
_artixpkg_pkgbase() {
local LIBDIR
LIBDIR=${LIBDIR:-'/usr/share/artools/lib'}
source "${LIBDIR}"/pkg/git/config.sh
source "${LIBDIR}"/pkg/util.sh
ls -1 "${TREE_DIR_ARTIX}" | tr '\n' ' '
}
_artixpkg_remotepkgbase() {
curl -s "https://checkupdates.artixlinux.org/api/1.0/packages?startswith=$1"
}
_artixpkg_maintainers() {
curl -s "https://checkupdates.artixlinux.org/api/1.0/maintainers"
}
_artixpkg_completion() {
local cur prev comps comps_all repos autorepos teams agents ARTIX_DB ARTIX_TEAMS AGENTS ARTIX_DB_MAP cwords comp_cword_exflag
# TODO: get list, from /src/lib/pkg/db/db.sh?
ARTIX_DB=(
system-goblins
system-gremlins
system
world-goblins
world-gremlins
world
lib32-goblins
lib32-gremlins
lib32
galaxy-goblins
galaxy-gremlins
galaxy
)
# TODO: get from db.sh
ARTIX_TEAMS=(
"${ARTIX_DB[2]}"
"${ARTIX_DB[5]}"
"${ARTIX_DB[8]}"
"${ARTIX_DB[11]}"
)
# TODO: get from db.sh
AGENTS=(
orion
taurus
)
# TODO: get from db.sh
ARTIX_DB_MAP=(
goblins
gremlins
stable
)
local cur prev comps comps_all repos autorepos teams agents cwords comp_cword_exflag
source "${LIBDIR}"/pkg/db/db.sh 2>/dev/null
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
for ((i = COMP_CWORD - 1; i >= 0; i--)); do
if [[ ${COMP_WORDS[i]} != -* ]]; then
last_non_flag_word="${COMP_WORDS[i]}"
@@ -62,9 +33,11 @@ _artixpkg_completion() {
comps=""
comps_all=""
comp_cword_exflag=0
comp_cword_all=0
for ((i = 0; i < ${#COMP_WORDS[@]} - 1; i++)); do
word="${COMP_WORDS[i]}"
comps_all+=" $word"
((comp_cword_all++))
if [[ $word != -* ]]; then
comps+=" $word"
((comp_cword_exflag++))
@@ -105,19 +78,16 @@ _artixpkg_completion() {
case "${comp_cword_exflag}" in
1)
COMPREPLY=($(compgen -W "admin ci git repo version -h --help" -- "${cur}"))
COMPREPLY=($(compgen -W "admin git repo version -h --help" -- "${cur}"))
return 0
;;
2)
case ${prev} in
admin)
COMPREPLY=($(compgen -W "query team topic transfer -h --help" -- ${cur}))
;;
ci)
COMPREPLY=($(compgen -W "config -h --help" -- ${cur}))
COMPREPLY=($(compgen -W "maintainer query team topic transfer -h --help" -- ${cur}))
;;
git)
COMPREPLY=($(compgen -W "clone config create pull push -h --help" -- ${cur}))
COMPREPLY=($(compgen -W "ci clone config create pull push -h --help" -- ${cur}))
;;
repo)
COMPREPLY=($(compgen -W "add remove move import show -h --help" -- ${cur}))
@@ -133,14 +103,7 @@ _artixpkg_completion() {
local repoAddCommon="-p --push -r --rebuild -n --nocheck -h --help"
case "${comp_cword_exflag}" in
3)
case "${comps_all}" in
*-m*|*--manual*)
COMPREPLY=($(compgen -W "$repoAddCommon $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-m --manual $repoAddCommon $autorepos" -- ${cur}))
;;
esac
COMPREPLY=($(compgen -W "$repoAddCommon $autorepos $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "$repoAddCommon $(_artixpkg_pkgbase)" -- ${cur}))
@@ -150,14 +113,7 @@ _artixpkg_completion() {
"artixpkg repo remove"*)
case "${comp_cword_exflag}" in
3)
case "${comps_all}" in
*-m*|*--manual*)
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-m --manual -p --push -h --help $repos" -- ${cur}))
;;
esac
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-p --push -h --help $(_artixpkg_pkgbase)" -- ${cur}))
@@ -167,14 +123,7 @@ _artixpkg_completion() {
"artixpkg repo move"*)
case "${comp_cword_exflag}" in
3|4)
case "${comps_all}" in
*-m*|*--manual*)
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-m --manual -p --push -h --help $repos" -- ${cur}))
;;
esac
COMPREPLY=($(compgen -W "-p --push -h --help $autorepos $repos" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-p --push -h --help $(_artixpkg_pkgbase)" -- ${cur}))
@@ -206,12 +155,15 @@ _artixpkg_completion() {
"-t"|"--team")
COMPREPLY=($(compgen -W "$teams" -- ${cur}))
;;
"-m"|"--maintainer"|"-s"|"--search"|"-t"|"--team"|"-j"|"--jobs")
"-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-s"|"--search"|"-j"|"--jobs")
# these flags expect a parameter
COMPREPLY=()
;;
*)
COMPREPLY=($(compgen -W "-m --maintainer --protocol -s --search -t --team -a --agent -j --jobs --all -h --help" -- ${cur}))
COMPREPLY=($(compgen -W "-m --maintainer --protocol -s --search -t --team -a --agent -j --jobs --all -h --help $(_artixpkg_remotepkgbase ${cur})" -- ${cur}))
;;
esac
;;
@@ -244,7 +196,10 @@ _artixpkg_completion() {
;;
"artixpkg git pull"*)
case "${prev}" in
"-t"|"--topic"|"-m"|"--maintainer"|"-j"|"--jobs")
"-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-t"|"--topic"|"-j"|"--jobs")
# these flags expect a parameter
COMPREPLY=()
;;
@@ -262,7 +217,10 @@ _artixpkg_completion() {
;;
"artixpkg git push"*)
case "${prev}" in
"-m"|"--maintainer"|"-t"|"--topic"|"-j"|"--jobs")
"-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-t"|"--topic"|"-j"|"--jobs")
# this flag expects a parameter
COMPREPLY=()
;;
@@ -271,23 +229,32 @@ _artixpkg_completion() {
;;
esac
;;
"artixpkg ci config"*)
"artixpkg git ci"*)
case "${prev}" in
"-j"|"--jobs")
# this flag expects a parameter
COMPREPLY=()
;;
"-a"|"--agent")
COMPREPLY=($(compgen -W "$agents" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-a --agent -s --switch -j --jobs -h --help $(_artixpkg_pkgbase)" -- ${cur}))
COMPREPLY=($(compgen -W "-a --agent -h --help $(_artixpkg_pkgbase)" -- ${cur}))
;;
esac
;;
"artixpkg admin maintainer"*)
case "${comp_cword_all}" in
3)
COMPREPLY=($(compgen -W "-a --adopt --o --orphan -h --help" -- ${cur}))
;;
*)
COMPREPLY=($(compgen -W "-h --help $(_artixpkg_pkgbase)" -- ${cur}))
;;
esac
;;
"artixpkg admin query"*)
case "${prev}" in
"-m"|"--maintainer"|"-t"|"--topic")
"-m"|"--maintainer")
COMPREPLY=($(compgen -W "$(_artixpkg_maintainers)" -- ${cur}))
;;
"-t"|"--topic")
# this flag expects a parameter
COMPREPLY=()
;;
@@ -308,12 +275,12 @@ _artixpkg_completion() {
;;
"artixpkg admin topic"*)
case "${prev}" in
"-a"|"--add"|"-d"|"--del"|"-j"|"--jobs")
"-a"|"--add"|"-r"|"--remove"|"-j"|"--jobs")
# this flag expects a parameter
COMPREPLY=()
;;
*)
COMPREPLY=($(compgen -W "-a --add -d --del -j --jobs -h --help $(_artixpkg_pkgbase)" -- ${cur}))
COMPREPLY=($(compgen -W "-a --add -r --remove -d --del -j --jobs -h --help $(_artixpkg_pkgbase)" -- ${cur}))
;;
esac
;;

View File

@@ -0,0 +1,205 @@
#compdef artixpkg
local -a addcmd admincmd cicmd clonecmd configcmd createcmd gitcmd importcmd \
initialcmd maintainercmd movecmd querycmd pullcmd pushcmd removecmd \
repocmd showcmd teamcmd topiccmd transfercmd versioncmd
_regex_words maintainer '' \
'-a' \
'--adopt' \
'-h' \
'--help' \
'-o' \
'--orphan'
maintainercmd=("$reply[@]")
_regex_words query '' \
'-h' \
'--help' \
'-m' \
'-t'
querycmd=("$reply[@]")
_regex_words team '' \
'-a' \
'--add' \
'-c' \
'--check' \
'-h' \
'--help' \
'-r' \
'--remove'
teamcmd=("$reply[@]")
_regex_words topic '' \
'-a' \
'--add' \
'-d' \
'--delete' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-r' \
'--remove'
topiccmd=("$reply[@]")
_regex_words transfer '' \
'-h' \
'--help'
transfercmd=("$reply[@]")
_regex_words admin '' \
'-h:Help text' \
'--help:Help text' \
'maintainer:Manage repo maintainer:$maintainercmd' \
'query:Query maintainers and topics:$querycmd' \
'team:Manage repo team:$teamcmd' \
'topic:Manage topics:$topiccmd' \
'transfer:Transfer obsolete repositories to landfill:$transfercmd'
admincmd=("$reply[@]")
_regex_words ci '' \
'-a' \
'--agent' \
'-h' \
'--help'
cicmd=("$reply[@]")
_regex_words clone '' \
'-a' \
'--agent' \
'--all' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-m' \
'--maintainer' \
'--protocol' \
'-s' \
'--search' \
'-t' \
'--team'
clonecmd=("$reply[@]")
_regex_words config '' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'--protocol'
configcmd=("$reply[@]")
_regex_words create '' \
'-a' \
'--agent' \
'-c' \
'--create' \
'-h' \
'--help' \
'-t' \
'--team'
createcmd=("$reply[@]")
_regex_words pull '' \
'--all' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-m' \
'--maintainer' \
'-t' \
'--topic'
pullcmd=("$reply[@]")
_regex_words push '' \
'-h' \
'--help' \
'-j' \
'--jobs' \
'-m' \
'--maintainer' \
'-t' \
'--topic'
pushcmd=("$reply[@]")
_regex_words git '' \
'ci:Configure CI agent:$cicmd' \
'clone:Clone a package:$clonecmd' \
'config:Configure a clone:$configcmd' \
'create:Create a new gitea package repository:$createcmd' \
'-h:Help text' \
'--help:Help text' \
'pull:Pull a package repository:$pullcmd' \
'push:Push a package repository:$pushcmd'
gitcmd=("$reply[@]")
_regex_words add '' \
'-h' \
'--help' \
'-n' \
'--nocheck' \
'-p' \
'--push' \
'-r' \
'--rebuild'
addcmd=("$reply[@]")
_regex_words import '' \
'--del' \
'-h' \
'--help' \
'--tag'
importcmd=("$reply[@]")
_regex_words move '' \
'-h' \
'--help' \
'-p' \
'--push'
movecmd=("$reply[@]")
_regex_words remove '' \
'-h' \
'--help' \
'-p' \
'--push'
removecmd=("$reply[@]")
_regex_words show '' \
'-b' \
'--base' \
'-h' \
'--help' \
'-p' \
'--pkgs'
showcmd=("$reply[@]")
_regex_words repo '' \
'add:Add pkgbase to repo:$addcmd' \
'-h:Help text' \
'--help:Help text' \
'import:Import latest tag from arch upstream:$importcmd' \
'move:Move pkgbase between repos:$movecmd' \
'remove:Remove pkgbase from repo:$removecmd' \
'show:Show pkgbase repo db:$showcmd'
repocmd=("$reply[@]")
_regex_words version '' \
'-h' \
'--help'
versioncmd=("$reply[@]")
_regex_words initial '' \
'admin:Manage topics:$admincmd' \
'git:Manage git:$gitcmd' \
'-h:Help text' \
'--help:Help text' \
'repo:Pacman database modification:$repocmd' \
'version:Show artixpkg version:$versioncmd'
initialcmd=("$reply[@]")
_regex_arguments _artixpkg /$'[^\0]##\0'/ "${initialcmd[@]}"
_artixpkg "$@"

View File

@@ -17,6 +17,7 @@ artixpkg_admin_usage() {
Usage: ${COMMAND} [COMMAND] [OPTIONS]
COMMANDS
maintainer Manage repo maintainer
query Query maintainers and topics
team Manage repo team
topic Manage topics
@@ -27,8 +28,10 @@ artixpkg_admin_usage() {
EXAMPLES
$ ${COMMAND} transfer libfoo libbar
$ ${COMMAND} query --maintainer tux
$ ${COMMAND} query --topic kf5
$ ${COMMAND} query --topic mytopic
$ ${COMMAND} topic --add mytopic libfoo
$ ${COMMAND} team --add ${ARTIX_TEAMS[3]} libfoo
$ ${COMMAND} maintainer --adopt libfoo libbar
_EOF_
}
@@ -78,6 +81,14 @@ artixpkg_admin() {
artixpkg_admin_transfer "$@"
exit 0
;;
maintainer)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/admin/maintainer.sh
source "${LIBDIR}"/pkg/admin/maintainer.sh
artixpkg_admin_maintainer "$@"
exit 0
;;
-*)
die "invalid argument: %s" "$1"
;;

View File

@@ -0,0 +1,139 @@
#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_ADMIN_MAINTAINER_SH:-} ]] || return 0
ARTOOLS_INCLUDE_ADMIN_MAINTAINER_SH=1
set -e
artixpkg_admin_maintainer_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
OPTIONS
-a, --adopt Adopt repo
-o, --orphan Orphan repo
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} --adopt libfoo
$ ${COMMAND} --orphan libfoo libbar
_EOF_
}
artixpkg_admin_maintainer() {
if (( $# < 1 )); then
artixpkg_admin_maintainer_usage
exit 0
fi
# options
local pkgbases=()
local pkgbase
local ADOPT=0
local ORPHAN=0
local packager_name
local maintainer
local -r orphan="orphan"
local RUNCMD=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
while (( $# )); do
case $1 in
-h|--help)
artixpkg_admin_maintainer_usage
exit 0
;;
-a|--adopt)
ADOPT=1
RUNCMD+=" $1"
shift
;;
-o|--orphan)
ORPHAN=1
RUNCMD+=" $1"
shift
;;
--)
shift
break
;;
-*)
die "invalid argument: %s" "$1"
;;
*)
break
;;
esac
done
pkgbases+=("$@")
# shellcheck source=src/lib/pkg/packager.sh
source "${LIBDIR}"/pkg/packager.sh
if [[ -n ${PACKAGER} ]]; then
if ! packager_name=$(get_packager_name "${PACKAGER}") || \
! packager_email=$(get_packager_email "${PACKAGER}"); then
die "invalid PACKAGER format '${PACKAGER}' in makepkg.conf"
fi
if ! is_packager_name_valid "${packager_name}"; then
die "invalid PACKAGER '${PACKAGER}' in makepkg.conf"
fi
if is_packager_email_official "${packager_email}"; then
maintainer="maintainer-${packager_name}"
fi
fi
if [[ -n ${GIT_TOKEN} ]]; then
# parallelization
if [[ ${jobs} != 1 ]] && (( ${#pkgbases[@]} > 1 )); then
# force colors in parallel if parent process is colorized
if [[ -n ${BOLD} ]]; then
export ARTOOLS_COLOR=always
fi
if ! parallel --bar --jobs "${jobs}" "${RUNCMD}" ::: "${pkgbases[@]}"; then
die 'Failed to manange some packages, please check the output'
exit 1
fi
exit 0
fi
for pkgbase in "${pkgbases[@]}"; do
local gitname
gitname=$(get_compliant_name "${pkgbase}")
if (( ADOPT )); then
if ! add_topic "${gitname}" "$maintainer"; then
warning "failed to add topic: $maintainer"
fi
if ! remove_topic "${gitname}" "$orphan"; then
warning "failed to remove topic: $orphan"
fi
fi
if (( ORPHAN )); then
if ! add_topic "${gitname}" "$orphan"; then
warning "failed to add topic: $orphan"
fi
if ! remove_topic "${gitname}" "$maintainer"; then
warning "failed to remove topic: $maintainer"
fi
fi
done
fi
}

View File

@@ -15,15 +15,17 @@ artixpkg_admin_topic_usage() {
OPTIONS
-a, --add NAME Add a topic to repo
-d, --del NAME Delete a topic from repo
-r, --remove NAME Remove a topic from repo
-d, --delete Delete all topics from repo
-j, --jobs N Run up to N jobs in parallel (default: $(nproc))
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} --add mytopic libfoo
$ ${COMMAND} --del mytopic libbar
$ ${COMMAND} --remove mytopic libbar
$ ${COMMAND} --add mytopic libfoo libbar
$ ${COMMAND} --del mytopic libfoo libbar
$ ${COMMAND} --remove mytopic libfoo libbar
$ ${COMMAND} --delete libfoo
_EOF_
}
@@ -40,8 +42,9 @@ artixpkg_admin_topic() {
local pkgbase
local ADD_TOPIC
local DEL_TOPIC
local RM_TOPIC
local ADD=0
local RM=0
local DEL=0
local jobs=
jobs=$(nproc)
@@ -50,23 +53,28 @@ artixpkg_admin_topic() {
while (( $# )); do
case $1 in
-h|--help)
artixpkg_admin_topic_usage
exit 0
;;
-a|--add)
(( $# <= 1 )) && die "missing argument for %s" "$1"
ADD_TOPIC="$2"
ADD=1
RUNCMD+=" -a ${ADD_TOPIC}"
RUNCMD+=" $1 ${ADD_TOPIC}"
shift 2
;;
-d|--del)
-r|--remove)
(( $# <= 1 )) && die "missing argument for %s" "$1"
DEL_TOPIC="$2"
DEL=1
RUNCMD+=" -d ${DEL_TOPIC}"
RM_TOPIC="$2"
RM=1
RUNCMD+=" $1 ${RM_TOPIC}"
shift 2
;;
-h|--help)
artixpkg_admin_topic_usage
exit 0
-d|--delete)
DEL=1
RUNCMD+=" $1"
shift
;;
-j|--jobs)
(( $# <= 1 )) && die "missing argument for %s" "$1"
@@ -109,13 +117,19 @@ artixpkg_admin_topic() {
# topics meta
if (( ADD )); then
if ! add_topic "${gitname}" "${ADD_TOPIC}"; then
warning "failed to add the topic: ${ADD_TOPIC}"
warning "failed to add topic: ${ADD_TOPIC}"
fi
fi
if (( RM )); then
if ! remove_topic "${gitname}" "${RM_TOPIC}"; then
warning "failed to remove topic: ${RM_TOPIC}"
fi
fi
if (( DEL )); then
if ! remove_topic "${gitname}" "${DEL_TOPIC}"; then
warning "failed to delete the topic: ${DEL_TOPIC}"
if ! remove_all_topics "${gitname}" "${GIT_ORG}"; then
warning "failed to delete all topics: ${gitname}"
fi
fi

View File

@@ -33,7 +33,6 @@ artixpkg_admin_transfer() {
# options
local pkgbases=()
local pkgbase
local waste_org="landfill"
local command=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
@@ -63,7 +62,9 @@ artixpkg_admin_transfer() {
local gitname
gitname=$(get_compliant_name "${pkgbase}")
transfer_repo "${gitname}" "${waste_org}"
transfer_repo "${gitname}" "${GIT_ORG_ARCHIVE}"
archive_repo "${gitname}" "${GIT_ORG_ARCHIVE}"
remove_all_topics "${gitname}" "${GIT_ORG_ARCHIVE}"
done
fi
}

View File

@@ -78,7 +78,7 @@ transfer_repo() {
local pkgbase="$1"
local new_owner="$2"
local json url
json="{ \"new_owner\": \"$new_owner\", \"team_ids\": [] }"
json="{ \"new_owner\": \"$new_owner\", \"team_ids\": [], \"archived\": \"true\" }"
url="${API_URL}/repos/${GIT_ORG}/$pkgbase/transfer"
stat_busy "Transfer package repo [$pkgbase] in org ($new_owner)"
@@ -164,4 +164,38 @@ check_repo_team() {
stat_done
}
archive_repo() {
local pkgbase="$1"
local org="$2"
local url
local json
url="${API_URL}/repos/$org/$pkgbase"
json="{ \"archived\": true }"
stat_busy "Archive repo [$pkgbase] in org ($org)"
api_patch "$url" \
-H "accept: application/json" \
-H "content-type: application/json" \
-H "Authorization: token ${GIT_TOKEN}" \
-d "$json"
stat_done
}
remove_all_topics() {
local pkgbase="$1"
local org="$2"
local url
local json
url="${API_URL}/repos/$org/$pkgbase/topics"
json="{ \"topics\": [] }"
stat_busy "Delete all topics from [$pkgbase]"
api_put "$url" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: token ${GIT_TOKEN}" \
-d "$json"
stat_done
}
#}}}

View File

@@ -1,55 +0,0 @@
#!/hint/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_CI_SH:-} ]] || return 0
ARTOOLS_INCLUDE_CI_SH=1
set -e
artixpkg_ci_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [COMMAND] [OPTIONS]
COMMANDS
config Configure ci and build agent
OPTIONS
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} config libfoo
_EOF_
}
artixpkg_ci() {
if (( $# < 1 )); then
artixpkg_ci_usage
exit 0
fi
# option checking
while (( $# )); do
case $1 in
-h|--help)
artixpkg_ci_usage
exit 0
;;
config)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/ci/config.sh
source "${LIBDIR}"/pkg/ci/config.sh
artixpkg_ci_config "$@"
exit 0
;;
-*)
die "invalid argument: %s" "$1"
;;
*)
die "invalid command: %s" "$1"
;;
esac
done
}

View File

@@ -30,11 +30,6 @@ readonly ARTIX_TEAMS=(
"${ARTIX_DB[11]}"
)
readonly AGENTS=(
orion
taurus
)
readonly REPO_DB='.artixlinux/pkgbase.yaml'
readonly REPO_CI='.artixlinux/Jenkinsfile'
@@ -360,3 +355,24 @@ show_srcinfo_base() {
show_srcinfo_pkgs() {
pkg2yaml . | yq '.pkgnames'
}
write_jenkinsfile() {
printf "@Library('artix-ci@%s') import org.artixlinux.RepoPackage\n" "${1}" > "${REPO_CI}"
{
printf '\n'
printf 'PackagePipeline(new RepoPackage(this))\n'
} >> "${REPO_CI}"
}
migrate_agent_branch() {
local branch=${AGENTS[0]}
for a in "${AGENTS[@]}"; do
if grep @"$a" "${REPO_CI}" &>/dev/null; then
branch="$a"
fi
done
if grep @galaxy "${REPO_CI}" &>/dev/null; then
branch=${AGENTS[1]}
fi
write_jenkinsfile "${branch}"
}

View File

@@ -18,6 +18,7 @@ artixpkg_git_usage() {
create Create a new Gitea package repository
pull Pull a package repository
push Push a package repository
ci Configure CI agent
OPTIONS
-h, --help Show this help text
@@ -25,9 +26,10 @@ artixpkg_git_usage() {
EXAMPLES
$ ${COMMAND} clone libfoo linux libbar
$ ${COMMAND} clone --maintainer tux
$ ${COMMAND} config --topic mytopic
$ ${COMMAND} config --maintainer tux
$ ${COMMAND} clone --search mytopic
$ ${COMMAND} config libfoo
$ ${COMMAND} create -c libfoo
$ ${COMMAND} ci -a ${AGENTS[1]} libfoo
_EOF_
}
@@ -60,6 +62,14 @@ artixpkg_git() {
artixpkg_git_config "$@"
exit 0
;;
ci)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/git/ci.sh
source "${LIBDIR}"/pkg/git/ci.sh
artixpkg_git_ci "$@"
exit 0
;;
create)
_ARTOOLS_COMMAND+=" $1"
shift

View File

@@ -2,8 +2,8 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${ARTOOLS_INCLUDE_CI_CONFIG_SH:-} ]] || return 0
ARTOOLS_INCLUDE_CI_CONFIG_SH=1
[[ -z ${ARTOOLS_INCLUDE_GIT_CI_SH:-} ]] || return 0
ARTOOLS_INCLUDE_GIT_CI_SH=1
# shellcheck source=src/lib/pkg/db/db.sh
source "${LIBDIR}"/pkg/db/db.sh
@@ -11,15 +11,7 @@ source "${LIBDIR}"/pkg/db/db.sh
set -e
write_jenkinsfile() {
printf "@Library('artix-ci@%s') import org.artixlinux.RepoPackage\n" "${1}" > "${REPO_CI}"
{
printf '\n'
printf 'PackagePipeline(new RepoPackage(this))\n'
} >> "${REPO_CI}"
}
artixpkg_ci_config_usage() {
artixpkg_git_ci_usage() {
local -r COMMAND=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE]...
@@ -27,50 +19,35 @@ artixpkg_ci_config_usage() {
OPTIONS
-a, --agent NAME Set the CI agent (default: ${AGENTS[0]})
Possible values: $(yaml_array ${AGENTS[@]})
-s, --switch Switch agent
-j, --jobs N Run up to N jobs in parallel (default: $(nproc))
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} --agent ${AGENTS[1]} libfoo
$ ${COMMAND} --switch --agent ${AGENTS[1]} libfoo
$ ${COMMAND} *
_EOF_
}
artixpkg_ci_config() {
artixpkg_git_ci() {
# options
local jobs=
jobs=$(nproc)
local paths=()
local AGENT=${AGENTS[0]}
local SWITCH=0
local CREATED=0
# variables
local RUNCMD=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
local path realpath pkgbase
while (( $# )); do
case $1 in
-h|--help)
artixpkg_ci_config_usage
artixpkg_git_ci_usage
exit 0
;;
-s|--switch)
SWITCH=1
shift
;;
-a|--agent)
(( $# <= 1 )) && die "missing argument for %s" "$1"
AGENT="$2"
RUNCMD+=" $1 ${AGENT}"
shift 2
;;
-j|--jobs)
(( $# <= 1 )) && die "missing argument for %s" "$1"
jobs=$2
SWITCH=1
shift 2
;;
--)
@@ -92,23 +69,11 @@ artixpkg_ci_config() {
if [[ -f PKGBUILD ]]; then
paths=(".")
else
artixpkg_ci_config_usage
artixpkg_git_ci_usage
exit 1
fi
fi
# parallelization
if [[ ${jobs} != 1 ]] && (( ${#paths[@]} > 1 )); then
if [[ -n ${BOLD} ]]; then
export ARTOOLS_COLOR=always
fi
if ! parallel --bar --jobs "${jobs}" "${RUNCMD}" ::: "${paths[@]}"; then
die 'Failed to configure some packages, please check the output'
exit 1
fi
exit 0
fi
for path in "${paths[@]}"; do
if ! realpath=$(realpath -e "${path}"); then
error "No such directory: ${path}"
@@ -133,6 +98,8 @@ artixpkg_ci_config() {
git add "${REPO_CI}"
git commit -m "add ci support"
CREATED=1
fi
if [[ ! -f ${REPO_DB} ]]; then
@@ -147,14 +114,17 @@ artixpkg_ci_config() {
fi
git add "${REPO_DB}"
git commit -m "create repo db"
fi
if (( SWITCH )); then
msg "Switching to agent (${AGENT}) ..."
write_jenkinsfile "${AGENT}"
git add "${REPO_CI}"
git commit -m "switch agent"
if (( ! CREATED )); then
git add "${REPO_CI}"
git commit -m "switch agent"
fi
fi
)

View File

@@ -7,8 +7,8 @@ ARTOOLS_INCLUDE_GIT_CLONE_SH=1
# shellcheck source=src/lib/pkg/git/config.sh
source "${LIBDIR}"/pkg/git/config.sh
# shellcheck source=src/lib/pkg/ci/config.sh
source "${LIBDIR}"/pkg/ci/config.sh
# shellcheck source=src/lib/pkg/git/ci.sh
source "${LIBDIR}"/pkg/git/ci.sh
# shellcheck source=src/lib/pkg/admin/team.sh
source "${LIBDIR}"/pkg/admin/team.sh
@@ -169,7 +169,7 @@ artixpkg_git_clone() {
fi
artixpkg_git_config "${CONFIG_OPTS[@]}" "${pkgbase}"
artixpkg_ci_config "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_git_ci "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_admin_team "${TEAM_OPTS[@]}" "${pkgbase}"
done
}

View File

@@ -23,54 +23,6 @@ artixpkg_git_config_usage() {
_EOF_
}
get_packager_name() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local name
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
name=$(echo "${packager}"|sed -E "s/${packager_pattern}/\1/")
printf "%s" "${name}"
}
get_packager_email() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local email
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
email=$(echo "${packager}"|sed -E "s/${packager_pattern}/\2/")
printf "%s" "${email}"
}
is_packager_name_valid() {
local packager_name=$1
if [[ -z ${packager_name} ]]; then
return 1
elif [[ ${packager_name} == "John Tux" ]]; then
return 1
elif [[ ${packager_name} == "Unknown Packager" ]]; then
return 1
fi
return 0
}
is_packager_email_official() {
local packager_email=$1
if [[ -z ${packager_email} ]]; then
return 1
elif [[ $packager_email =~ .+@artixlinux.org ]]; then
return 0
fi
return 1
}
artixpkg_git_config() {
# options
local GIT_REPO_BASE_URL=${GIT_HTTPS}
@@ -136,8 +88,10 @@ artixpkg_git_config() {
# Load makepkg.conf variables to be available for packager identity
msg "Collecting packager identity from makepkg.conf"
# shellcheck source=config/makepkg/x86_64.conf
load_makepkg_config
# shellcheck source=src/lib/pkg/packager.sh
source "${LIBDIR}"/pkg/packager.sh
if [[ -n ${PACKAGER} ]]; then
if ! packager_name=$(get_packager_name "${PACKAGER}") || \
! packager_email=$(get_packager_email "${PACKAGER}"); then

View File

@@ -9,8 +9,8 @@ ARTOOLS_INCLUDE_GIT_CREATE_SH=1
source "${LIBDIR}"/pkg/git/clone.sh
# shellcheck source=src/lib/pkg/git/config.sh
source "${LIBDIR}"/pkg/git/config.sh
# shellcheck source=src/lib/pkg/ci/config.sh
source "${LIBDIR}"/pkg/ci/config.sh
# shellcheck source=src/lib/pkg/git/ci.sh
source "${LIBDIR}"/pkg/git/ci.sh
# shellcheck source=src/lib/pkg/admin/team.sh
source "${LIBDIR}"/pkg/admin/team.sh
@@ -116,7 +116,7 @@ artixpkg_git_create() {
artixpkg_git_clone "${AGENT_OPTS[@]}" "${TEAM_OPTS[@]}" "${pkgbase}"
elif (( CONFIG )); then
artixpkg_git_config "${pkgbase}"
artixpkg_ci_config "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_git_ci "${AGENT_OPTS[@]}" "${pkgbase}"
artixpkg_admin_team "${TEAM_OPTS[@]}" "${pkgbase}"
fi

View File

@@ -16,14 +16,12 @@ artixpkg_git_push_usage() {
OPTIONS
-m, --maintainer NAME Push all packages of the named maintainer
-t, --topic NAME Push all packages of the named topic
-j, --jobs N Run up to N jobs in parallel (default: $(nproc))
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} libfoo linux libbar
$ ${COMMAND} --maintainer tux
$ ${COMMAND} --topic mytopic
$ ${COMMAND} -j 8 --topic mytopic
_EOF_
}
@@ -38,11 +36,6 @@ artixpkg_git_push() {
# options
local MAINTAINER=
local TOPIC=
local CONFIGURE_OPTIONS=()
local jobs=
jobs=$(nproc)
local command=${_ARTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
while (( $# )); do
case $1 in
@@ -60,11 +53,6 @@ artixpkg_git_push() {
TOPIC="$2"
shift 2
;;
-j|--jobs)
(( $# <= 1 )) && die "missing argument for %s" "$1"
jobs=$2
shift 2
;;
--)
shift
break
@@ -90,19 +78,6 @@ artixpkg_git_push() {
mapfile -t pkgbases < <(search_topic "${TOPIC}" | yq -P -r '.data | .[].name' | sort)
fi
# parallelization
if [[ ${jobs} != 1 ]] && (( ${#pkgbases[@]} > 1 )); then
# force colors in parallel if parent process is colorized
if [[ -n ${BOLD} ]]; then
export ARTOOLS_COLOR=always
fi
if ! parallel --bar --jobs "${jobs}" "${command}" ::: "${pkgbases[@]}"; then
die 'Failed to push some packages, please check the output'
exit 1
fi
exit 0
fi
for pkgbase in "${pkgbases[@]}"; do
if [[ -d ${pkgbase} ]]; then
( cd "${pkgbase}" || return

54
src/lib/pkg/packager.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
get_packager_name() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local name
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
name=$(echo "${packager}"|sed -E "s/${packager_pattern}/\1/")
printf "%s" "${name}"
}
get_packager_email() {
local packager=$1
local packager_pattern="(.+) <(.+@.+)>"
local email
if [[ ! $packager =~ $packager_pattern ]]; then
return 1
fi
email=$(echo "${packager}"|sed -E "s/${packager_pattern}/\2/")
printf "%s" "${email}"
}
is_packager_name_valid() {
local packager_name=$1
if [[ -z ${packager_name} ]]; then
return 1
elif [[ ${packager_name} == "John Tux" ]]; then
return 1
elif [[ ${packager_name} == "Unknown Packager" ]]; then
return 1
fi
return 0
}
is_packager_email_official() {
local packager_email=$1
if [[ -z ${packager_email} ]]; then
return 1
elif [[ $packager_email =~ .+@artixlinux.org ]]; then
return 0
fi
return 1
}
# shellcheck source=config/makepkg/x86_64.conf
load_makepkg_config

View File

@@ -11,6 +11,8 @@ source "${LIBDIR}"/pkg/db/db.sh
set -e
load_makepkg_config
has_remote_changes() {
local status
msg "Checking for remote changes ..."
@@ -41,9 +43,12 @@ artixpkg_repo_usage() {
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} add world libfoo
$ ${COMMAND} remove world libfoo
$ ${COMMAND} move world-gremlins world libfoo
$ ${COMMAND} add ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} remove ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} move ${ARTIX_DB_MAP[1]} ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} add ${ARTIX_DB[4]} libfoo
$ ${COMMAND} remove ${ARTIX_DB[4]} libfoo
$ ${COMMAND} move ${ARTIX_DB[3]} ${ARTIX_DB[4]} libfoo
$ ${COMMAND} import libfoo
$ ${COMMAND} show libfoo
_EOF_

View File

@@ -38,8 +38,6 @@ artixpkg_repo_add_usage() {
Usage: ${COMMAND} [OPTIONS] [DEST_REPO] [PKGBASE]...
OPTIONS
-m, --manual Disable auto repo
Possible auto values: $(yaml_array ${ARTIX_DB_MAP[@]})
-p, --push Push pkgbase
-r, --rebuild Triggers a rebuild
-n, --nocheck Disable the check function
@@ -48,7 +46,7 @@ artixpkg_repo_add_usage() {
EXAMPLES
$ ${COMMAND} ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --push ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --auto --push ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} --push ${ARTIX_DB_MAP[2]} libfoo
_EOF_
}
@@ -67,7 +65,7 @@ artixpkg_repo_add() {
local REBUILD=0
local NOCHECK=0
local ADD=1
local AUTO=1
local AUTO=0
while (( $# )); do
case $1 in
@@ -75,10 +73,6 @@ artixpkg_repo_add() {
artixpkg_repo_add_usage
exit 0
;;
-m|--manual)
AUTO=0
shift
;;
-p|--push)
PUSH=1
shift
@@ -104,10 +98,8 @@ artixpkg_repo_add() {
shift
pkgbases+=("$@")
if (( AUTO )); then
if ! in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
die "${DEST} does not exist!"
fi
if in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
AUTO=1
else
if ! in_array "${DEST}" "${ARTIX_DB[@]}"; then
die "${DEST} does not exist!"
@@ -168,6 +160,8 @@ artixpkg_repo_add() {
delete_obsolete_map_keys
migrate_agent_branch
if [[ -n $(git status --porcelain --untracked-files=no) ]]; then
stat_busy 'Staging files'

View File

@@ -7,22 +7,61 @@ ARTOOLS_INCLUDE_REPO_IMPORT_SH=1
set -e
PATCHDIR=${PATCHDIR:-"${WORKSPACE_DIR}/artix-patches"}
declare -A arch_map=(
["archlinux-mirrorlist"]="pacman-mirrorlist"
["artix-rebuild-order"]="arch-rebuild-order"
["virtualbox-host-modules-artix"]="virtualbox-host-modules-arch"
)
update_patches(){
if [[ ! -d "${PATCHDIR}" ]]; then
# ${GIT_ORG}
if ! git clone "${PATCH_URL}" "${PATCHDIR}"; then
error "failed to clone %s" "${PATCHDIR}"
fi
else
if ! git -C "${PATCHDIR}" pull; then
error "Failed to pull artix-patches"
fi
fi
}
patch_pkgbase(){
local name="$1"
case "${name}" in
linux|linux-lts|linux-zen|linux-hardened|linux-rt*)
sed -e 's|KBUILD_BUILD_HOST=.*|KBUILD_BUILD_HOST=artixlinux|' -i PKGBUILD
sed -e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-i config
;;
*)
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' \
-e 's|(Arch Linux)|(Artix Linux)|' \
-e 's|arch-meson|artix-meson|' \
-i PKGBUILD
;;
esac
local patches="${PATCHDIR}/patches/${name}"
sed -e 's|arch-meson|artix-meson|' -i PKGBUILD
if "${PATCH_MAINTAINER}" && [ -n "${PACKAGER}" ]; then
sed -e 's|# Maintainer:|# Contributor:|' -i PKGBUILD
printf '%s\n%s\n' "# Maintainer: ${PACKAGER}" "$(cat "PKGBUILD")" >"PKGBUILD"
fi
if [ -d "${patches}" ]; then
if [ -f "${patches}/env.txt" ]; then
while read -r line; do
IFS="=" read -r key value <<< "$line"
if [[ -z "${key}" ]] || [[ -z "${value}" ]]; then
die "Invalid key value pair in env.txt"
fi
if declare -p "${key}" &> /dev/null; then
die "Environment variable %s already exists." "${key}"
fi
export "${key}=${value}"
done < "${patches}/env.txt"
fi
for file in "${patches}"/*; do
if [ -x "${file}" ]; then
echo "$> ${name}/$(basename "${file}")"
"${file}" "${TREE_DIR_ARTIX}/${name}"
elif [[ "${file}" == *.diff ]]; then
echo "$> git apply ${name}/$(basename "${file}")"
git -C "${TREE_DIR_ARTIX}/${name}" apply "${file}"
fi
done
fi
git --no-pager diff PKGBUILD
}
@@ -34,12 +73,14 @@ artixpkg_repo_import_usage() {
OPTIONS
--tag TAG Switch the current workspace to a specified version tag
--del Delete files before rsync import
-n --no-patch No patch import
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} libfoo
$ ${COMMAND} --tag TAG libfoo
$ ${COMMAND} --tag TAG --del libfoo
$ ${COMMAND} --no-patch libfoo
_EOF_
}
@@ -53,6 +94,7 @@ artixpkg_repo_import() {
local pkgbases=()
local pkgbase
local TAG
local NP=0
local rsync_args=()
rsync_args+=(
-axcihW
@@ -83,6 +125,10 @@ artixpkg_repo_import() {
rsync_args+=(--delete-before)
shift
;;
-n|--no-patch)
NP=1
shift
;;
-h|--help)
artixpkg_repo_import_usage
exit 0
@@ -96,6 +142,8 @@ artixpkg_repo_import() {
esac
done
update_patches
pkgbases+=("$@")
for pkgbase in "${pkgbases[@]}"; do
@@ -108,9 +156,11 @@ artixpkg_repo_import() {
fi
( cd "${pkgbase}" || return
upstream="${arch_map["$pkgbase"]:-$pkgbase}"
stat_busy "Checking for upstream url"
if ! git config --local --get remote.upstream.url &>/dev/null; then
git remote add upstream "${GIT_UPSTREAM_URL}/${pkgbase}".git
git remote add upstream "${GIT_UPSTREAM_URL}/${upstream}".git
fi
stat_done
@@ -141,8 +191,10 @@ artixpkg_repo_import() {
msg "Importing upstream changeset for ${version}"
rsync "${rsync_args[@]}" "${temp}"/ "$(pwd)"/ #&>/dev/null
msg2 "Patching ${pkgbase} ..."
patch_pkgbase "${pkgbase}"
if ! (( NP )); then
msg2 "Patching ${pkgbase} ..."
patch_pkgbase "${pkgbase}"
fi
fi
)
fi

View File

@@ -14,15 +14,13 @@ artixpkg_repo_move_usage() {
Usage: ${COMMAND} [OPTIONS] [SOURCE_REPO] [DEST_REPO] [PKGBASE]...
OPTIONS
-m, --manual Disable auto repo
Possible auto values: $(yaml_array ${ARTIX_DB_MAP[@]})
-p, --push Push pkgbase
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} ${ARTIX_DB[4]} ${ARTIX_DB[5]} libfoo
$ ${COMMAND} --push ${ARTIX_DB[4]} ${ARTIX_DB[5]} libfoo
$ ${COMMAND} --auto --push ${ARTIX_DB_MAP[1]} ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} --push ${ARTIX_DB_MAP[1]} ${ARTIX_DB_MAP[2]} libfoo
_EOF_
}
@@ -37,7 +35,7 @@ artixpkg_repo_move() {
local pkgbase
local PUSH=0
local AUTO=1
local AUTO=0
local DEST
local SRC
@@ -48,10 +46,6 @@ artixpkg_repo_move() {
artixpkg_repo_move_usage
exit 0
;;
-m|--manual)
AUTO=0
shift
;;
-p|--push)
PUSH=1
shift
@@ -65,17 +59,12 @@ artixpkg_repo_move() {
esac
done
SRC="$1"
SRC="$1"
DEST="$2"
shift 2
if (( AUTO )); then
if ! in_array "${SRC}" "${ARTIX_DB_MAP[@]}"; then
die "${SRC} does not exist!"
fi
if ! in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
die "${DEST} does not exist!"
fi
if in_array "${SRC}" "${ARTIX_DB_MAP[@]}" && in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
AUTO=1
else
if ! in_array "${SRC}" "${ARTIX_DB[@]}"; then
die "${SRC} does not exist!"
@@ -140,6 +129,8 @@ artixpkg_repo_move() {
delete_obsolete_map_keys
migrate_agent_branch
update_yaml_team "$(auto_detect)"
if [[ -n $(git status --porcelain --untracked-files=no) ]]; then

View File

@@ -14,15 +14,13 @@ artixpkg_repo_remove_usage() {
Usage: ${COMMAND} [OPTIONS] [DEST_REPO] [PKGBASE]...
OPTIONS
-m, --manual Disable auto repo
Possible auto values: $(yaml_array ${ARTIX_DB_MAP[@]})
-p, --push Push pkgbase
-h, --help Show this help text
EXAMPLES
$ ${COMMAND} ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --push ${ARTIX_DB[4]} libfoo
$ ${COMMAND} --auto --push ${ARTIX_DB_MAP[2]} libfoo
$ ${COMMAND} --push ${ARTIX_DB_MAP[2]} libfoo
_EOF_
}
@@ -37,7 +35,7 @@ artixpkg_repo_remove() {
local pkgbase
local PUSH=0
local AUTO=1
local AUTO=0
local DEST=''
while (( $# )); do
@@ -46,10 +44,6 @@ artixpkg_repo_remove() {
artixpkg_repo_remove_usage
exit 0
;;
-m|--manual)
AUTO=0
shift
;;
-p|--push)
PUSH=1
shift
@@ -67,10 +61,8 @@ artixpkg_repo_remove() {
shift
pkgbases=("$@")
if (( AUTO )); then
if ! in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
die "${DEST} does not exist!"
fi
if in_array "${DEST}" "${ARTIX_DB_MAP[@]}"; then
AUTO=1
else
if ! in_array "${DEST}" "${ARTIX_DB[@]}"; then
die "${DEST} does not exist!"
@@ -115,6 +107,8 @@ artixpkg_repo_remove() {
delete_obsolete_map_keys
migrate_agent_branch
if [[ -n $(git status --porcelain --untracked-files=no) ]]; then
stat_busy 'Staging files'

View File

@@ -50,6 +50,8 @@ load_pkg_config(){
GIT_UPSTREAM_URL=${GIT_UPSTREAM_URL:-"https://gitlab.archlinux.org/archlinux/packaging/packages"}
GIT_ORG_ARCHIVE=${GIT_ORG_ARCHIVE:-'landfill'}
TREE_DIR_ARTIX=${TREE_DIR_ARTIX:-"${WORKSPACE_DIR}/artixlinux"}
REPOS_ROOT=${REPOS_ROOT:-"${WORKSPACE_DIR}/repos"}
@@ -58,6 +60,14 @@ load_pkg_config(){
DBEXT=${DBEXT:-'gz'}
PATCH_MAINTAINER=${PATCH_MAINTAINER:-false}
PATCH_URL=${PATCH_URL:-"${GIT_SSH}:artix/artix-patches.git"}
if [[ -z "${AGENTS[*]}" ]]; then
AGENTS=(orion taurus)
fi
return 0
}

View File

@@ -20,10 +20,10 @@ usage() {
Usage: ${COMMAND} [COMMAND] [OPTIONS]
COMMANDS
repo Pacman database modification for package updates, moves, etc.
git Manage Git packaging repositories and their configuration
agent Manage CI and build agent
admin Manage topics, teams and obsolete repos
git Manage Git packaging repositories and their configuration
repo Pacman database modification for package updates, moves, etc.
version Show artixpkg version information
OPTIONS
@@ -41,8 +41,6 @@ export _ARTOOLS_COMMAND='artixpkg'
# shellcheck source=src/lib/pkg/util.sh
source "${LIBDIR}"/pkg/util.sh
load_makepkg_config
cd "${TREE_DIR_ARTIX}"
# command checking
@@ -68,14 +66,6 @@ while (( $# )); do
artixpkg_git "$@"
exit 0
;;
ci)
_ARTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/pkg/ci.sh
source "${LIBDIR}"/pkg/ci.sh
artixpkg_ci "$@"
exit 0
;;
admin)
_ARTOOLS_COMMAND+=" $1"
shift

View File

@@ -9,8 +9,6 @@ source "${LIBDIR}"/base/message.sh
# shellcheck source=src/lib/pkg/diff.sh
source "${LIBDIR}"/pkg/diff.sh
load_makepkg_config
usage() {
cat <<- _EOF_
Usage: ${BASH_SOURCE[0]##*/} [OPTIONS]

View File

@@ -181,7 +181,9 @@ else
set_arch="${CARCH}"
fi
${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "$@"
chroot_args=(/usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/bin)
${CARCH:+setarch "${set_arch}"} chroot "${working_dir}" "${chroot_args[@]}" "$@"
ret=$?

View File

@@ -11,6 +11,13 @@ source "${LIBDIR}"/base/chroot.sh
# shellcheck source=src/lib/pkg/deploy.sh
source "${LIBDIR}"/pkg/deploy.sh
# shellcheck source=config/makepkg/x86_64.conf
load_makepkg_config
export PKGDEST
export GPG_KEY
export GPG_PASS
passfiles=("$@")
sign_pkg(){
@@ -23,16 +30,13 @@ sign_pkg(){
if [[ -n "${GPG_KEY}" ]] && [[ -n "${GPG_PASS}" ]]; then
msg "Signing [%s]" "${file_to_sign##*/}"
if ! gpg --homedir /etc/pacman.d/gnupg --no-permission-warning \
--no-default-keyring --default-key "${GPGP_KEY}" --passphrase "${GPGP_PASS}" \
-q --detach-sign "$file_to_sign"; then
return 1
fi
gpg --homedir /etc/pacman.d/gnupg --no-permission-warning \
--no-default-keyring --default-key "${GPG_KEY}" --passphrase "${GPG_PASS}" \
-q --detach-sign "$file_to_sign"
fi
return 0
}
check_root "" "${BASH_SOURCE[0]}" "$@"
check_root PKGDEST,GPG_KEY,GPG_PASS "${BASH_SOURCE[0]}" "$@"
for pkg in "${passfiles[@]}"; do
msg "Searching %s ..." "$pkg"

View File

@@ -20,6 +20,7 @@ add() {
msg "Found: %s" "${pkgfile}"
packages+=("${pkgname}")
action='add'
action_args+=(--include-sigs)
ln -sfv "${pkgfile}"{,.sig} "${repo_path}"/
fi
}
@@ -41,7 +42,7 @@ repo_action() {
done
( cd "${repo_path}" || return
if [[ -n "${action}" ]]; then
repo-"${action}" -R "${dest_repo}.${db_ext}" "${packages[@]}"
repo-"${action}" "${action_args[@]}" "${dest_repo}.${db_ext}" "${packages[@]}"
fi
)
}
@@ -57,6 +58,7 @@ rm_pkg=false
cmd=${0##*/}
dest_repo=${cmd#*-}
action_args=(-R)
usage() {
printf "Usage: %s [options]\n" "${cmd}"