Commit Graph

1062 Commits

Author SHA1 Message Date
Martchus b9921d60db Add builduser to same groups as on host
This prevents permission errors when relying on a user's group
for accessing certain files (made available within the container
via bind mounts).
2023-12-26 18:18:41 +01:00
Martchus e81f5e016b Log systemd-nspawn invocation parameters
When debugging it is useful to know what parameters where
used.
2023-12-26 18:18:39 +01:00
Martchus 41a1da26ef Set TERM within the systemd-nspawn container in makechrootpkg
This is required by WINE to prevent
```
unknown: I need something more specific
```
2023-12-26 18:15:34 +01:00
Martchus 1e26863d0d Adjust systemd-nspawn flags
* Increase maximum number of open files (the default of 1000 is too less
  for some packages)
* Use /etc/resolv.conf from host (otherwise systemd-nspawn uses a config
  which does not work on my host setup)
* Now in-line with upstream: Remove --keep-unit since it causes sometimes
  errors and does not seem to be required
2023-12-26 18:14:33 +01:00
Kevin Mihelich 31b3ed8ce1 makechrootpkg: don't delete MAKEFLAGS and PACKAGER 2023-12-26 18:08:37 +01:00
Kevin Mihelich 3f25277782 archbuild: no setarch 2023-12-26 18:08:37 +01:00
Kevin Mihelich 4666f5577f makechrootpkg: no default logging 2023-12-26 18:08:37 +01:00
Kevin Mihelich cb79cd540d arch-nspawn: arm fix 2023-12-26 18:08:35 +01:00
Kevin Mihelich 7ab36cedc6 makechrootpkg: distcc 2023-12-26 18:03:19 +01:00
Kevin Mihelich 13131d1122 arch-nspawn: keep mirrorlist 2023-12-26 18:03:19 +01:00
Kevin Mihelich 0d3d6ea1e9 makechrootpkg: cache dir 2023-12-26 18:03:19 +01:00
Levente Polyak 02bc8bfbc0
chore(release): version v1.0.4 2023-09-27 00:38:17 +02:00
Levente Polyak f632659563
fix(clone): ssh connection may require user input (key unlocking etc)
Anything that requires user input (such as a key unlock or hostkey
verify) will block the terminal and wait for input which will never
come.

When cloning or configuring a repo via ssh we therefore initially
connect to gitlab to warm the connection.

Afterwards users are expected to either have setup a ssh ControlMaster
or use something like a ssh agent.

Fixes #148

Component: pkgctl repo clone/configure

Co-Authored-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-26 22:44:58 +02:00
Christian Heusel 7e41adf00b
chore: add a config file for git cliff
This is done so that the generated changelog carries more information
(i.e. the scope of the change).

Co-Authored-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-26 21:13:08 +02:00
Levente Polyak a316b50f88
fix(makepkg.conf): use breezy for the bzr protocol in makepkg.conf
Pacman does not resolve provides for the protocol packages, hence we
need to switch to the new package name for bzr.

Related-to: https://gitlab.archlinux.org/pacman/pacman/-/merge_requests/78
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-19 01:32:22 +02:00
Levente Polyak 547961681a
fix(pkgctl): avoid pacman db dependency checks during repo detection
By default the sync operation enables dependency checks during the
preparation of the transaction. This isn't necessary for the print
option, but is done nevertheless, which leads to issues for example
during soname dependency problems. The result is a none functional
automatic repo detection.

Fix this by explicitly disabling dependency version checks. We specify
this option twice to skip all dependency checks.

Fixes #189

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-10 00:03:42 +02:00
Jelle van der Waa 8190a22480
feat(release): always generate a .SRCINFO file on release
When releasing a package always generate a .SRCINFO file so we can build
tooling based upon these files instead of having to parse bash in a
non-bash language.

Some tests have shown around 30 seconds or generating the metadata on
packages like thunderbird. The implementation in makepkg becomes semi
slow for some split packages that provide a huge number of individual
packages, but it seems reasonably fast so we can instead have a uniform
state of always providing .SRCINFO files.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-04 23:41:00 +02:00
Christian Heusel f31ea3a48e
fix(build): fix repo detection for special chars in package name
Currently we used grep -E, in a way that special characters in the
package name such as the '+' in 'ls++' also became part of the regex.

This commit switches this to become a literal string matching using awk.

Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-08-27 17:08:23 +02:00
Christian Heusel 9f7808c26e
fix(build): installing packages into the chroot fails for relative links
As the relative links are relative to the pkgctl invocations PWD and not
necessarily relative to the location where makechrootpkg is invoked from
this fails unexpectedly.

This commit fixes this by just using the full path when passing the
location to makechrootpkg.

Fixes https://gitlab.archlinux.org/archlinux/devtools/-/issues/181

Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-08-27 16:55:50 +02:00
Jan Alexander Steffens (heftig) 5f4fd52e38
feat(arch-nspawn): Use a unique scope name instead of --keep-unit
`--keep-unit` is really only for use in services like
`systemd-nspawn@.service`.

The parameter was added in commit 000ea6c7bb because
systemd-nspawn defaults the name of the machine (and thus the generated
scope) to the name of the working directory, which is not unique. Thus
spawning a container from `archbuild/extra-x86_64/foo` while
`archbuild/testing-x86_64/foo` is already running would fail.

We can avoid the unit conflict by giving the container a unique machine
name. Creating a scope also allows us to place the container in a slice
hierarchy for resource control.
2023-07-21 19:41:22 +02:00
Jan Alexander Steffens (heftig) 1b25190176
chore(arch-nspawn): Simplify args construction for systemd-nspawn 2023-07-21 19:41:22 +02:00
Christian Heusel 030e6af880
chore: fix spelling mistake packge -> package
it seems like the mistake was copied to a few locations, this commit
fixes it.

Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-07-06 15:30:49 +02:00
Levente Polyak 662d6c5274
fix(make): use correct version variable for release target 2023-07-05 18:45:54 +02:00
Levente Polyak 3de03e8b1f
chore(release): version v1.0.3 2023-07-05 18:36:07 +02:00
Christian Heusel 720b7c9b05
chore(build): skip invalid architectures on autodetection
This is done so that pkgctl can be better used to build aur packages
which can have arch=(...) settings for which we do not have a clean
chroot builder.

Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-07-05 18:17:32 +02:00
Christian Heusel 0ea7e9e0e5
chore(doc): fix spelling typo in pkgrel detection
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-06-18 01:01:11 +02:00
Christian Heusel be5f54c95c
fix(commitpkg): ensure the PKGBUILD is version controlled
Early exit in case the PKGBUILD is not yet properly under version
control, which can happen for freshly initialized repositories.
Furthermore print an appropriate error message including a hint how to
resolve this.

Fixes #154
Fixes #167

Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-06-17 23:02:36 +02:00
Levente Polyak 5c6e13a672
chore(doc): add missing dependency on fakeroot
We need fakeroot to trick pacman into updating a fresh pacman database
for an unprivileged user.
2023-06-08 00:31:35 +02:00
Levente Polyak a07df0beea
chore(release): version v1.0.2 2023-05-28 01:22:09 +02:00
Levente Polyak c7d627165f
chore(release): adjust Makefile for new release schema
Ask for the next release version and automatically create a signed tag.
Furthermore add a simple release target to call glab for uploading the
required artifacts.
2023-05-28 01:21:40 +02:00
Antonio Rojas e47035e74d
chore(build): improve error wording if no package repo could be detected
Not being in any official repo does not necessarily mean this is a new
package. One could simply be building an AUR or custom local package.
Make the message less confusing in such case.
2023-05-27 22:18:04 +02:00
Daniel M. Capella 9b11b16a7e
chore(doc): remove duplicate subcommand from example help text 2023-05-27 21:44:09 +02:00
Levente Polyak 3283b2ca59
fix(commitpkg): only force existing files to be under version control
Before porting commitpkg to Git, the code has checked the SVN status for
none commited files. During the port this has changed by straight
checking for any passed files if they were under version control or not.

In general the whole logic is very brittle as variables are searched by
regex and directly passed to eval while ignoring any function scoping.
This leads to missing files when they reference the $pkgname inside a
package function but also provide wrong ones when eval simply returns
the first $pkgname while ignoring and function scopes.

In the future this should completely be replaces by .SRCINFO processing.

Fixes #145

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-27 01:53:45 +02:00
Toolybird 71cb9e97bb
fix(archroot): preserve original args for check_root before discarding
arch-nspawn, mkarchroot, makerepropkg all call "shift" after getopts
processing. Save the original args and pass on to check_root to prevent
options being discarded.

Fixes 41d4624879
Fixes #149

Signed-off-by: Toolybird <toolybird@tuta.io>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-26 01:06:14 +02:00
Levente Polyak 1b808b8e32
chore(release): version v1.0.1 2023-05-24 03:19:26 +02:00
Chih-Hsuan Yen e4c40a9802
fix(completion): incorporate repo layout into offload-build completion
Use new repo names for build targets. This follows /usr/bin/*-build
links other than x86_64_v3 ones.
2023-05-24 03:06:03 +02:00
Levente Polyak a08bc2acf4
feature(clone): add protocol option to force cloning over HTTPS
This is a rather quick and simple implementation to override the current
logic and force clone with HTTPS. Allowing to explicitly clone over HTTPS
is currently required to unblock reproducible builds where no ssh keys
and GitLab user accounts are set up as of now. Hence this quick solution
comes into play to mitigate the regression on reproducible builds
builders.

Revisit the overall auto detection and protocol logic approach for a
later release related to some ideas floating around in pending
merge-requests.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-24 02:50:08 +02:00
Morten Linderud f11cb9018e
feature(commitpkg): auto generate .SRCINFO if present
This currently makes .SRCINFO files opt-in and helps to keep the file up
to date if already present.

Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2023-05-23 03:03:39 +02:00
Jan Alexander Steffens (heftig) d759eadb50
fix(diffpkg): Fix scoping of DIFFOPTIONS when comparing split pkgs
`diff_pkgs` needs to use a local variable for its options, otherwise
they will accumulate for each package diffed.

Whem comparing split packages this lead to earlier mutated DIFFOPTIONS
containing too many labels which resulted in a failure.
2023-05-23 02:20:03 +02:00
Jan Alexander Steffens (heftig) 1c399778f9
fix(commitpkg): reliably check tree status regardless of configuration
Check git status --porcelain, not --short.

`--short` is influenced by user configuration like `status.branch`
making it non-empty even on a clean tree. Use `--porcelain` to avoid
this.
2023-05-23 01:47:00 +02:00
Levente Polyak edc14ef19c
Version 1.0.0 2023-05-21 12:25:44 +02:00
Levente Polyak 6ce666a166
feature(parallel): run up to N jobs in parallel for repo clone/configure
Run up to N jobs in parallel. By default the number of jobs is equal to the
number of available processing units. For sequential processing this option
needs to be passed with 1.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20 16:12:45 +02:00
Levente Polyak bf61b8472a
chore(archroot): force build chroot recreation to adapt new configs
Bumping the chroot version will result in the chroots checking against
the local version and force recreation in case they do not match.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20 15:11:16 +02:00
Levente Polyak 80a8cdcba2
chore(git): use default ssh port 22 url scheme
We only need to specifically use ssh:// protocol prefix if we want to
specify a special port. As we moved to support pulling directly over
port 22 from out GitLab instance we can change the url scheme to the
simple variant.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20 12:20:36 +02:00
Levente Polyak 41d4624879
fix(archroot): pass along the real command and argv by the caller
Before modularizing the repo layout, we used m4_include to assemble
together sources into a single file. Now, we properly use a library
layout without assembling multiple files, which means we cannot anymore
rely on BASH_SOURCE inside the library file. Hence, pass along the
actual command and argv from the check_root caller.

Fixes: src: modularize repo layout into a library

Signed-off-by: Morten Linderud <foxboron@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20 00:20:41 +02:00
Felix Yan 4d3ab0b489
config: update pacman configs for new repository layout
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20 00:08:13 +02:00
Levente Polyak 830dcde2d8
pkgctl build: support worker slots for none tty builds
Allow overriding the worker slot with a dedicated option. Furthermore
detect if the current tty is no pts and fall back to choosing a random
worker slot between 1 and number of available processing units.

Fixes #137

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20 00:08:13 +02:00
Caleb Maclennan 1da97a8b36
doc: Fixup formatting issues in asciidoc man pages 2023-05-20 00:08:13 +02:00
Alexander Epaneshnikov 9330671825
archrelease: fix mangled release package status output
Git push will print its status, hence switch from a busy line
indicator to a single line message and allow Git to print its status
accordingly.

Otherwise we get:
==> Releasing package...Enumerating objects: 6, done.
2023-05-20 00:08:13 +02:00
Christian Heusel 8e3b6bcc5b
pkgctl repo clone: add option to switch working tree
Add an option to call the switch command after clone. Switch to a
specified version. The working tree and the index are updated to match
the version.

Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-20 00:08:13 +02:00