Age | Commit message (Collapse) | Author |
|
Related to https://gitlab.archlinux.org/archlinux/devtools/-/issues/125
Closes #125
Signed-off-by: Christian Heusel <christian@heusel.eu>
Co-Authored-By: Levente Polyak <anthraxx@archlinux.org>
|
|
Normally the default in Arch is that all home directories are private.
However, this may have been changed locally. To make sure we never
expose secrets, lets use a umask of 0077 when writing the config.
Additionally add some temporary fixup code to migrate the file and
directory permissions of already existing paths.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Output a warning when this option is used to remind packagers to rebuild
the packages with checks once the bootstrap cycle has been completed.
|
|
This would allow to supply the gitlab tokens via the env var
DEVTOOLS_GITLAB_TOKEN and therefore allow users to choose whatever
program they want to fill this env var.
Closes #113
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Adds a check for the configured Git editor (git config core.editor) in
both commitpkg and build.sh.
Additionally, instead of blindly executing vi when all other options are
exhausted, remove it instead as it is a none standard installed editor
anyway.
Closes #106
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Instead of trying to port this ancient script, which doesn't even seem
to work with community, let's instead remove it. We will be adding a
replacement script in pkgctl soon with a smarter and more convenient UX.
|
|
Automatic path conversion is limited to GitLab API v4 and will be
removed in the future. It's expected that the caller does the path
conversion on caller side and only passes a valid path to the API within
its limitations.
Hence convert project names to valid paths:
1. replace single '+' between word boundaries with '-'
2. replace any other '+' with literal 'plus'
3. replace any special chars other than '_', '-' and '.' with '-'
4. replace consecutive '_-' chars with a single '-'
5. replace 'tree' with 'unix-tree' due to GitLab reserved keyword
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
The remote protocol is automatically determined from the author email
address by choosing SSH for all official packager identities and
read-only HTTPS otherwise.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
|
|
This ensures the repository we try to commit and release from uses the
latest distro specs for its local git config. The check errors out early
before touching anything and prints a recommendation how to update the
repo.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
|
|
|
|
It's safest to probe for the validity of the remote origin and abort
early otherwise. This also allows to print some hints how to create or
configure new repositories at appropriate times.
Additionally fetch remote changes and check the local branch contains
the remote branch ref, otherwise abort and print a hint how to pull and
update the branch.
This should add all check needed for the average failure case that may
lead to a weird state or creation of a local tag that may not be
pushable.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
There is no reason anymore to use m4 since we got rid of the includes by
using library files. Let's replace the last usage of m4 and completely
red rid of it.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
We have used the datadir like a kitchen sink, lets clean up a bit by
having a better and well structured layout. Put makepkg and pacman
configs in separate directories: makepkg.conf.d and pacman.conf.d.
|
|
This is a smart and more convenient invocation of the classical
commitpkg and archrelease with auto-discovery for target repositories
and a shorthand option to directly call db-update.
|
|
|
|
|
|
|
|
|
|
This helps to have a convenient way to manage and test our personal
GitLab tokens. Those are used for certain API calls like creating new
repositories.
prefill the access token web view as per
https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#prefill-personal-access-token-name-and-scopes
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
We need to use API calls as we can't create repositories in protected
namespaces by simply pushing a none existing repository. For privacy
reasons this is limited to private personal repositories in GitLab.
|
|
|
|
This will greatly help us to structure the functionality and commands in
a more sane way. We will distribute the sources as actual libraries and
reuse code with imports instead of processing everything with m4 and
duplicating a lot of code.
|
|
This is the first step of a simple and highly structured unified
interface to devtools commands in a single wrapper.
The split is based on groups like `repo`, `build` and `diff`
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This can be quite handy if a packager quickly wants to check the GitLab
page for merge requests or but reports. Quickly calling a cli command
inside the current packaging clone or with the pkgname provided will
open the remote location inside the browser.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This can be very handy for cache warming on the repo server or
to perform mass operations on all PKGBUILDs.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
It makes a lot of sense to have them in a central place that can be
swapped and also re-used across different execution units. Hence lets
move the repos.archlinux.org host to lib/common.sh
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Query Archweb to retrieve a list of all packages of a maintainer by
their pkgbase. AFterwards loop through all packages and clone them.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Manages Git packaging repositories and helps with their configuration
according to distro specs.
Git author information and the used signing key is set up from
makepkg.conf read from any valid location like /etc or XDG_CONFIG_HOME.
The configure command can be used to synchronize the distro specs and
makepkg.conf settings for previously cloned repositories.
The unprivileged option can be used for cloning packaging repositories
without SSH access using read-only HTTPS.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
|
|
We unified the source repositories to a single location. Having to cross
repo move them between physical locations is not required anymore.
|
|
|
|
This allows us to reuse the code and have the conversion in a single
place instead of cluttering rules across different execution units.
It also fixes the implementations according to the specs of
git-check-ref-format.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
|
|
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
|
|
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
|
|
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
|
|
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
Adjusted-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Do not allow uploads of source=() with only weak cryptographic hashing
algorithms but require at least one strong algorithm.
This doesn't 100% enforce it ofcourse, but it allows for an early
failure instead of failing in `db-update`.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Use the first mirror that is configured for each repo in pacman.conf.
With the default configuration, this means to use the first mirror from /etc/pacman.d/mirrorlist.
If a repo is not configured in pacman.conf, fall back to https://geo.mirror.pkgbuild.com.
|
|
The `extglob` option changes the behavior of the shell parser, since
extended glob patterns would otherwise be syntax errors. bash-5.2
changed the way a function definition is processed by calling the parser
instead of relying on the ad-hoc code in bash-5.1 and earlier versions.
This means, in bash-5.2 the shell function was parsed without `extglob`
being enabled because the `shopt` command to enable it was part of the
function body.
Add `shopt` options for `extglob` around function definitions to address
this issue and allow bash-5.2 to correctly parse the function.
Co-authored-by: Frédéric Pierret (fepitre) <frederic.pierret@qubes-os.org>
Co-authored-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Adding such an entry is problematic as it results in locale -a showing:
C
C.UTF-8
C.utf8
POSIX
(other locales)
In the above, C.UTF-8 is built-in whereas C.utf8 comes from locale.gen.
The duplicate locale has the potential to expose undesired behavior in
upstream software: https://github.com/sudo-project/sudo/issues/241
|
|
Previously the script execution did not abort if the msg file editor
exited none-successfully leading to undesired commits with a potentially
unfinished message. Instead abort the commit if the msg file editor is
deliberately terminated with a failure code.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Use the workdir location which gets cleaned up automatically. Previously
this was leaking tmpfiles if the commitpkg command got aborted after
file creation.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
config path: @pkgdatadir@/mount.d/${arch}
config format:
Each line will start with 'ro' and 'rw' will be used, other lines will
be ignore, rest of line is out/path:in/path. e.g.
```
ro /some/path:/proc/cpuinfo
rw /some/some/path:/var/cache/pacman/pkg
```
For example, in the RISC-V port, if we use qemu-user to build, we need
to pass a parameter to makechrootpkg to map a correct /proc/cpuinfo, so
that software that relies on /proc/cpuinfo to obtain information can be
built normally.
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
|
|
systemd by default limits the /tmp folder to be 10% of the host memory:
https://github.com/systemd/systemd/blob/6f2cea06bfce6ad99f0ac37ab12af61ef7549fe3/src/shared/mount-util.h#L33
This is problematic to our builds because many toolchains opt to put
build artifacts in /tmp, and expecting the host memory to be 10 times
larger is not optimal or even realistic sometimes.
This MR attempts to enlarge it to 50% memory as the host machine's
default value of /tmp. This should be a fair compromise between being
overly conservative and taking up too much memory to crash the system.
|
|
It's been deprecated for a few years now.
https://github.com/archlinux/arch-install-scripts/commit/91562aa99cd8237a2dec1aff5101949e40bf7d75
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
|