]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Wed, 16 Aug 2023 15:55:30 +0000 (15:55 +0000)]
packages: Validate UUIDs when reading from the database
Since we are using the UUID in the filesystem paths, we must make sure
that no malicious content is in the field.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 16 Aug 2023 15:47:48 +0000 (15:47 +0000)]
contrib: Enable the testing repository by default
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 16 Aug 2023 15:45:03 +0000 (15:45 +0000)]
packages: Simplify the directory structures once again
I don't think that we will have lots of subdirectories here so that
filesystems won't be able to cope. However, it would be nice to use the
same structure throughout.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 16 Aug 2023 15:41:37 +0000 (15:41 +0000)]
package: Use the correct attribute for directories in the SOLV database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 16 Aug 2023 15:37:33 +0000 (15:37 +0000)]
repo: Fix file structure
Because it is possible to have multiple builds with the same nevra in
the same repository, we need to store packages in a subdirectory to be
able to uniquely identify them. That is also helpful when we want to
avoid downloading a package when expecting a different UUID.
This patch changes that packages will now be put into some subdirectory
structure so multiple archives with the same name can coexist.
The downloader and caching mechanism for repositories had to be tweaked
to honour the subdirectory structure.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 2 Aug 2023 15:33:14 +0000 (15:33 +0000)]
pakfire: Read configuration from a file descriptor
This is easier to handle especially when creating temporary environments
where we just want to shoot the configuration into Pakfire().
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 2 Aug 2023 15:08:15 +0000 (15:08 +0000)]
_pakfire: util: Refactor PyObject_AsFileHandle using fmemcookie
Python is not very good at handling file objects, so we wrap them into
this little tool.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 1 Aug 2023 18:48:40 +0000 (18:48 +0000)]
parser: Remove any global variables
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 27 Jul 2023 13:54:48 +0000 (13:54 +0000)]
pakfire: Fix integer overflow in bit fields
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 12:57:49 +0000 (12:57 +0000)]
_pakfire: Consume any exceptions in log callback
We cannot do anything with them here, so we need to de-fuse the
exception so that we won't run into errors when the originally called
Python function returns.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Jul 2023 17:02:46 +0000 (17:02 +0000)]
hub: Increase robustness if the server goes away
This patch will retry a couple of requests on certain errors.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 12:04:33 +0000 (12:04 +0000)]
libpakfire: build: Use better return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 12:01:33 +0000 (12:01 +0000)]
libpakfire: digest: Use better return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:59:49 +0000 (11:59 +0000)]
libpakfire: dependencies: Use better return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:54:29 +0000 (11:54 +0000)]
libpakfire: config: Use better return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:53:52 +0000 (11:53 +0000)]
libpakfire: arch: Use better return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:48:18 +0000 (11:48 +0000)]
libpakfire: archive: Return better return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:40:44 +0000 (11:40 +0000)]
libpakfire: strings: Create better return codes for all functions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:37:19 +0000 (11:37 +0000)]
key: Fix wrong passing of string
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:33:49 +0000 (11:33 +0000)]
libpakfire: pakfire_create: Return a better return code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 25 Jul 2023 11:33:31 +0000 (11:33 +0000)]
libpakfire: Enhance logging to pass custom errno
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 21 Jul 2023 18:15:45 +0000 (18:15 +0000)]
dependencies: Create and destroy the pool for each version check
The former solution obviously wasn't very thread-safe.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 21 Jul 2023 14:28:59 +0000 (14:28 +0000)]
_pakfire: Add version_compare() that does not require Pakfire
This is useful if we do not have a Pakfire instance at hand and will
save us the overhead of creating one every time.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Jul 2023 10:45:49 +0000 (10:45 +0000)]
find-provides: Only handle shared objects
The previous pattern matched other files like "*.socket".
Fixes: #13027 - Pakfire thinks .socket files are .so files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Jul 2023 10:16:54 +0000 (10:16 +0000)]
build: Remove BUILDROOT check
This searched for any references to BUILDROOT in any generated files.
However, this is hard to implement without using the nested function
which unfortunately requires an executable stack which is not permitted
in IPFire.
Since the check is usually not having a massive impact, this patch
removes it for now with the intention to bring it back at a later time.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Jul 2023 15:50:14 +0000 (15:50 +0000)]
jail: Group prctl() calls together
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Jul 2023 15:35:15 +0000 (15:35 +0000)]
jail: Create a new time namespace
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Jul 2023 16:45:47 +0000 (16:45 +0000)]
jail: Change mount propagation before switching root
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Jul 2023 16:45:20 +0000 (16:45 +0000)]
jail: Fix file descriptor check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Jul 2023 16:44:50 +0000 (16:44 +0000)]
jail: Use pivot_root() again instead of chroot()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 30 Jun 2023 13:32:34 +0000 (13:32 +0000)]
jail: Handle signals in epoll() loop
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 30 Jun 2023 13:30:45 +0000 (13:30 +0000)]
jail: Initialize all file descriptors with -1
It is not a good idea to use zero as that might be a valid fd.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 29 Jun 2023 08:21:11 +0000 (08:21 +0000)]
cgroups: Add BPF program to filter device node access
This is currently permitting everything which we don't want to sustain
in the long-term.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 29 Jun 2023 08:17:12 +0000 (08:17 +0000)]
configure: Link against libbpf
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 21 Jun 2023 15:25:19 +0000 (15:25 +0000)]
jail: Don't drop any capabilities
This is not what we finally need, but we will try to give the jail as
many capabilities in its own namespace as possible.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 21 Jun 2023 13:42:09 +0000 (13:42 +0000)]
cgroup: Return error when the cgroup could not be created
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 21 Jun 2023 13:31:27 +0000 (13:31 +0000)]
jail: Refactor searching for env variable function
This used a variable size array on the stack before which is not needed.
This version should be slightly faster and the compiler should be able
to inline it.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 20 Jun 2023 14:43:10 +0000 (14:43 +0000)]
jail: Allow accessing loop devices
This is not great, but the only way we can mount any images inside the
jail as loop devices are not namespaced (yet).
Jails of this style can access any loop devices set up by the system and
for other jails.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 19 Jun 2023 15:42:57 +0000 (15:42 +0000)]
builds: Install tools that are required to build a certain image
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 19 Jun 2023 15:27:21 +0000 (15:27 +0000)]
build: Find all packages to be installed and create a new repository with them
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 14 Jun 2023 15:52:36 +0000 (15:52 +0000)]
build: mkimage: Take a fd for the output
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 14 Jun 2023 15:51:44 +0000 (15:51 +0000)]
util: Add function to copy all data from one fd to another
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 14 Jun 2023 15:15:50 +0000 (15:15 +0000)]
build: Add scaffolding to create images
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 21:26:37 +0000 (21:26 +0000)]
tests: archive: Fix compiling
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 21:24:31 +0000 (21:24 +0000)]
tests: Drop PGP test key
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 21:23:38 +0000 (21:23 +0000)]
contrib: Update keys of IPFire 3
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 21:16:41 +0000 (21:16 +0000)]
keys: Carry the comment with us and require it
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 20:28:50 +0000 (20:28 +0000)]
_pakfire: Import/export keys as strings
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 20:28:21 +0000 (20:28 +0000)]
keys: Do not insist on reading the comment line first
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 20:26:38 +0000 (20:26 +0000)]
repos: Write database signature to the correct place
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 20:26:09 +0000 (20:26 +0000)]
repos: Fix re-reading repository key
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 19:15:19 +0000 (19:15 +0000)]
keys: Wipe memory after importing keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 18:46:21 +0000 (18:46 +0000)]
keys: Export signing/verification routines in Python
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 18:46:03 +0000 (18:46 +0000)]
keys: Flush buffers after creating a signature
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 18:45:43 +0000 (18:45 +0000)]
keys: Fix handling IDs (again)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 18:11:26 +0000 (18:11 +0000)]
keys: Convert the key ID to integer in Python
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 18:01:07 +0000 (18:01 +0000)]
_pakfire: Implement loading keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 17:59:45 +0000 (17:59 +0000)]
keys: Make the ID an array of bytes again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 17:08:17 +0000 (17:08 +0000)]
_pakfire: keys: Fix error handling when returning algorithm
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 17:08:01 +0000 (17:08 +0000)]
tests: Add some simple tests for keys in Python
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 17:03:52 +0000 (17:03 +0000)]
pakfire: Import everything from _pakfire
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 17:03:32 +0000 (17:03 +0000)]
_pakfire: Export the key algorithm constants
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 17:03:10 +0000 (17:03 +0000)]
_pakfire: keys: Treat IDs as integers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 17:01:18 +0000 (17:01 +0000)]
keys: Change key id into uint64_t
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 16:41:45 +0000 (16:41 +0000)]
_pakfire: Drop listing keys
We no longer keep keys stored.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 16:24:56 +0000 (16:24 +0000)]
keys: Drop delete operation
Since we don't have a keystore any more, there is no need to implement
this.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 15:53:02 +0000 (15:53 +0000)]
repos: Implement creating a detached signature for databases
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 15:44:37 +0000 (15:44 +0000)]
repos: Drop flags argument from compose function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 15:24:57 +0000 (15:24 +0000)]
keys: Implement signature verification
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 14:10:10 +0000 (14:10 +0000)]
keys: Refactor importing keys
This is now using the base64 decoder and insists on reading the comment
line.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 13:56:54 +0000 (13:56 +0000)]
util: Implement decoding base64 data and add tests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 12:43:43 +0000 (12:43 +0000)]
Drop the old keystore as it is not longer being used
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 1 Jun 2023 12:40:55 +0000 (12:40 +0000)]
keys: Replace usage of PGP by signify
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 30 May 2023 10:03:15 +0000 (10:03 +0000)]
libpakfire: Drop fetching PGP keys from keyservers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 30 May 2023 18:14:08 +0000 (18:14 +0000)]
build: Set CCACHE_DIR
This is mostly for completeness and not to cause any problems when there
is a custom ccache configuration inside the jail.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 30 May 2023 18:11:56 +0000 (18:11 +0000)]
build: Set CCACHE_TEMPDIR to /tmp
This will cause that ccache creates any temporary files in /tmp instead
of the cache dir. This caused massive bandwidth and slightly slow builds
with a shared NFS cache.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 26 May 2023 17:15:04 +0000 (17:15 +0000)]
daemon: Wrap Pakfire entirely into a thread
This is an attempt to fix a couple of concurrency issues which cause
that Pakfire does not cleanup any files on disk.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 26 May 2023 16:59:14 +0000 (16:59 +0000)]
daemon: Make job_id a property
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 25 May 2023 14:22:24 +0000 (14:22 +0000)]
config: Allow longer section & key names
This allows us to use UUIDs as repository names
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 25 May 2023 13:32:30 +0000 (13:32 +0000)]
file: Replace /usr/bin/env with the absolute path if possible
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 25 May 2023 12:06:01 +0000 (12:06 +0000)]
build: Fix creating the build environment without a snapshot
For some reason, I really messed this one up.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 25 May 2023 10:27:09 +0000 (10:27 +0000)]
archive: Implement extracting archives into arbitrary locations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 May 2023 13:55:19 +0000 (13:55 +0000)]
installcheck: Add a function that checks whether a package can be installed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 May 2023 13:54:24 +0000 (13:54 +0000)]
_pakfire: archive: Allow opening packages in any repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 May 2023 12:15:27 +0000 (12:15 +0000)]
request: Implement multiinstall for kernel as pooljobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 May 2023 12:05:46 +0000 (12:05 +0000)]
request: Fix passing solver flags
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 10:23:39 +0000 (10:23 +0000)]
jail: Set up the loopback interface
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 07:43:14 +0000 (07:43 +0000)]
client: Add switch to disable test builds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 07:42:31 +0000 (07:42 +0000)]
cgroups: Prevent falling through to default statement all the time
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 06:19:03 +0000 (06:19 +0000)]
daemon: Do not upload any packages for test jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 4 May 2023 15:43:10 +0000 (15:43 +0000)]
cgroups: Don't create groups in system root for unprivileged users
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 4 May 2023 15:20:07 +0000 (15:20 +0000)]
cgroups: Fix checks for file descriptors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 06:09:54 +0000 (06:09 +0000)]
pakfire: Log user/group and subids
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 06:09:44 +0000 (06:09 +0000)]
pakfire: Split comment
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 06:07:52 +0000 (06:07 +0000)]
pwd: Use libsubid
This is an attempt to read any subids using libsubid from shadow.
However, it seems that libsubid is not entirely thread-safe and randomly
fails. Hence this code is kept disabled for now.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 5 May 2023 06:07:19 +0000 (06:07 +0000)]
pakfire: Be more verbose when pakfire_create fails
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 4 May 2023 17:00:25 +0000 (17:00 +0000)]
pakfire: Move SUBIDs into user/group structs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 4 May 2023 16:44:37 +0000 (16:44 +0000)]
util: Drop function to fetch user home directory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 4 May 2023 16:41:47 +0000 (16:41 +0000)]
pakfire: Fetch more user/group information at startup
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 3 May 2023 16:12:46 +0000 (16:12 +0000)]
hub: Finish builds with a regular POST request
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>