]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Sat, 8 Feb 2025 14:17:06 +0000 (14:17 +0000)]
archive writer: Add convenience function to write JSON files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 14:11:18 +0000 (14:11 +0000)]
oci: Move the layer inside an uncompressed outer tarball
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 14:06:44 +0000 (14:06 +0000)]
archive writer: Add function to add a larger file from disk
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 14:06:21 +0000 (14:06 +0000)]
archive writer: Split off creating a new file entry
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 14:05:18 +0000 (14:05 +0000)]
archive writer: Split off copying payload
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 13:01:07 +0000 (13:01 +0000)]
compress: Drop old compression code
This became a little bit messy with so many options and therefore I
replaced this with the new archive writer.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 12:58:04 +0000 (12:58 +0000)]
oci: Use the archive writer to create the layer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 12:36:36 +0000 (12:36 +0000)]
packager: Rebase based on the new archive writer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 12:34:26 +0000 (12:34 +0000)]
archive writer: Add function to add a file from memory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 12:33:39 +0000 (12:33 +0000)]
archive writer: Store the timestamp when we wrote the archive
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 11:36:26 +0000 (11:36 +0000)]
archive writer: Implement writing files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 11:08:50 +0000 (11:08 +0000)]
archive writer: Implement setting progress title
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 11:05:46 +0000 (11:05 +0000)]
archive writer: Add a progress indicator
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 10:59:31 +0000 (10:59 +0000)]
archive writer: Setup the link resolver
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 10:55:57 +0000 (10:55 +0000)]
archive writer: Configure libarchive depending on the format
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 10:29:41 +0000 (10:29 +0000)]
archive writer: Add scaffolding
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 8 Feb 2025 10:15:03 +0000 (10:15 +0000)]
xfopen: Move transparent compression/decompression functions into a separate file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 23:06:53 +0000 (23:06 +0000)]
oci: Add a simple way how to create an OCI image
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 23:05:04 +0000 (23:05 +0000)]
pakfire: Add a simple function to install packages
This will come handy when generating images.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 23:04:05 +0000 (23:04 +0000)]
file: Don't silently fail if archives should not be hashed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 23:03:30 +0000 (23:03 +0000)]
compress: Add the option to make gzipped archives
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 23:02:24 +0000 (23:02 +0000)]
compress: Don't rewind on just opened files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 20:02:35 +0000 (20:02 +0000)]
xfer: Return properly on error
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 19:58:47 +0000 (19:58 +0000)]
log buffer: Fix error code when enqueuing a line
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 19:58:11 +0000 (19:58 +0000)]
xfer: Ensure we always send the entire buffer
cURL returns OK even if only parts of the buffer have been sent, so we
need to walk through the loop again to make sure all data is sent.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 17:56:43 +0000 (17:56 +0000)]
jobs: Go back to the event-driven model to send logs
When the builder is not located in the same data center it can happen
that the send buffer fills up which results in a broken TCP connection
if we continue to send any data.
We will now first of all buffer any messages that have only been
partially sent and listen for when the socket is ready to receive the
rest. If so, we will flush our buffer.
Afterwards we will call the send callback which will go and look for any
more data to send.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 17:55:01 +0000 (17:55 +0000)]
xfer: Rename the receive buffer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 16:04:07 +0000 (16:04 +0000)]
job: Don't crash when no packages have been uploaded
I remove a check earlier which this code relied on.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 15:56:47 +0000 (15:56 +0000)]
xfer: Be less verbose when sending socket messages
cURL is already logging this for us.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 15:39:34 +0000 (15:39 +0000)]
xfer: Be patient when the websocket buffer is full
When the log stream is starting a little while into the build, there
might be a big burst of data sent through the socket which might fill it
up. Then we need to be more patient and send the message again
remembering what has been sent before.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 12:06:05 +0000 (12:06 +0000)]
Always require WebSocket support in cURL
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 12:01:04 +0000 (12:01 +0000)]
jenkins: Drop building for Ubuntu 24.04
This version does not have a recent enough version of cURL and
therefore, the build fails. I don't think we need to support anything
old here that does not support WebSockets.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 11:40:45 +0000 (11:40 +0000)]
job: Send timestamp when streaming the log
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 11:40:23 +0000 (11:40 +0000)]
log buffer: Store a timestamp with each line
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 7 Feb 2025 11:39:02 +0000 (11:39 +0000)]
util: Add function to format timeval to ISO 8601 format
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 22:30:27 +0000 (22:30 +0000)]
python: package: Drop storing a reference to the context
This was an ugly hack to create a new package list which we don't need
any more. This caused the application to occasionally crash because ctx
wasn't set at all times.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 22:28:21 +0000 (22:28 +0000)]
package: Let reverse requires create its own package list
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 22:12:03 +0000 (22:12 +0000)]
python: Fix more error codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 22:04:14 +0000 (22:04 +0000)]
python: Refactor creating a Python list from package list
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 20:59:23 +0000 (20:59 +0000)]
tests: Add a simple test to create a daemon
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 20:50:57 +0000 (20:50 +0000)]
jail: Listen to SIGTERM and terminate the jail
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 20:34:02 +0000 (20:34 +0000)]
python: Add option to read prerequires from packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 18:30:29 +0000 (18:30 +0000)]
build: Always turn tmpfs usage on for local builds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 18:30:09 +0000 (18:30 +0000)]
pakfire: Require a flag to turn on using tmpfs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 18:15:40 +0000 (18:15 +0000)]
job: Permit to finish jobs without uploads
This is even called when the build has failed in which case we don't
have any packages that we can use here.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 16:20:41 +0000 (16:20 +0000)]
archive: Untangle reading the filelist and extraction
The idea here was to re-use existing code, but I am not sure this is
currently very helpful to anyone.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 16:19:53 +0000 (16:19 +0000)]
file: Re-enable parsing checksums again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 15:09:39 +0000 (15:09 +0000)]
compress: Remove header for dropped pakfire_extract() function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 11:39:46 +0000 (11:39 +0000)]
tests: python: Open an archive in stub mode
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 11:23:06 +0000 (11:23 +0000)]
tests: python: Add some tests for the main Pakfire class
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 11:04:39 +0000 (11:04 +0000)]
python: Minor code cleanup
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 11:00:53 +0000 (11:00 +0000)]
python: Rename File.digest() to File.checksum()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 6 Feb 2025 10:57:31 +0000 (10:57 +0000)]
archive: Return the error code when fetching the filelist
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:11:46 +0000 (11:11 +0000)]
po: Update translations
This is mainly to update po/POTFILES.in
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:09:03 +0000 (11:09 +0000)]
tests: python: Add some simple tests for pakfire.version_compare()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:04:15 +0000 (11:04 +0000)]
python: Remove unused Python exceptions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 11:01:20 +0000 (11:01 +0000)]
tests: python: Test pakfire.supported_arches()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:54:05 +0000 (10:54 +0000)]
repo: Tidy up writing repository configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:53:31 +0000 (10:53 +0000)]
repo: Don't return an empty mirrorlist URL, return NULL instead
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:52:56 +0000 (10:52 +0000)]
repos: Fix exporting keys
Before, the key was randomly written into the file descriptor.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:52:09 +0000 (10:52 +0000)]
keys: Make a simple function to export a key as a string
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:28:04 +0000 (10:28 +0000)]
python: Fix setting/reading the context's cache path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:21:48 +0000 (10:21 +0000)]
tests: python: Update renamed checksum field
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:18:11 +0000 (10:18 +0000)]
pakfire: Initialize the directory file descriptor
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:07:52 +0000 (10:07 +0000)]
log buffer: Implemnent ring buffer behaviour
I don't know why I didn't implement this straight away as this was
always intended to be a ring buffer.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 10:04:21 +0000 (10:04 +0000)]
job: Correctly set pidfd on initialization
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 09:39:53 +0000 (09:39 +0000)]
jobs: Allow turning on/off log streaming by the job
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 09:34:41 +0000 (09:34 +0000)]
job: Handle message to abort a build job
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 5 Feb 2025 09:24:57 +0000 (09:24 +0000)]
daemon: Handle messages sent to a specific job
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 18:13:22 +0000 (18:13 +0000)]
python: Improve readability of the code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 18:09:20 +0000 (18:09 +0000)]
python: Add switch to turn on stub mode
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 18:06:20 +0000 (18:06 +0000)]
pakfire: Add stub mode
This should be used in the build service or other situations where we
only need dependency solving.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 18:06:05 +0000 (18:06 +0000)]
pakfire: Move path setup
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 17:53:56 +0000 (17:53 +0000)]
pakfire: Split initialization into smaller functions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 17:33:06 +0000 (17:33 +0000)]
daemon: Change process title to show status
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 17:13:15 +0000 (17:13 +0000)]
strings: Add function to truncate strings
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 15:51:20 +0000 (15:51 +0000)]
repo: Ignore any unsupported metadata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 15:48:45 +0000 (15:48 +0000)]
repo: Remove support for repository metadata version zero
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 15:46:03 +0000 (15:46 +0000)]
repo: Ignore any malformed repository metadata from disk
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 15:45:29 +0000 (15:45 +0000)]
httpclient: Remove resetting a pointer
I don't think we need to do this here.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 15:44:41 +0000 (15:44 +0000)]
daemon: Remove the control connection from the HTTP client
This is necessary after the connection was unexpectedly closed.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 15:23:28 +0000 (15:23 +0000)]
repo: Reset metadata if parsing failed
This is needed in case there were some required fields missing. We then
consider the metadata invalid and won't use it any more.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 15:06:11 +0000 (15:06 +0000)]
repo: Store/search for repomd.json in the repository's root
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:56:51 +0000 (14:56 +0000)]
repo: Force refresh if we have no metadata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:56:10 +0000 (14:56 +0000)]
repo: Mark repository metadata as version 1
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:37:31 +0000 (14:37 +0000)]
cli: Send more stuff to the console instead of syslog
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:24:27 +0000 (14:24 +0000)]
hasher: Make the static analyzer happy
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:22:27 +0000 (14:22 +0000)]
hasher: Actually return any errors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 14:20:40 +0000 (14:20 +0000)]
packager: Use Zstandard level 20 for compression
This is the maximum that seems to make sense. There is pretty much no
gain from any higher levels, but time will increase by about 3x.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 11:43:54 +0000 (11:43 +0000)]
daemon: Move log streaming into the main process
Now, we can get entirely rid of individual control connections for jobs.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 11:31:49 +0000 (11:31 +0000)]
daemon: Add a common function to send messages into the control socket
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 11:20:33 +0000 (11:20 +0000)]
jobs: Drop the control connect and explicitely launch them
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 10:57:10 +0000 (10:57 +0000)]
compress: Enable long mode (if available)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 4 Feb 2025 10:37:50 +0000 (10:37 +0000)]
hashes: Replace the old digest mechanism
This is splitting the hasher into a separate object so that we have more
flexibility here. It also renames the digests struct into "hashes" which
is a little bit shorter and I thought that it makes more sense.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 15:06:55 +0000 (15:06 +0000)]
digests: Constify source when importing digests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 14:58:33 +0000 (14:58 +0000)]
repo: Remove debugging line
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 14:53:44 +0000 (14:53 +0000)]
repo: Fix composing import paths
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 14:28:16 +0000 (14:28 +0000)]
repo: Move sync decision
There are actually not a lot of changes, I just needed to move a lot of
static functions.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 14:21:36 +0000 (14:21 +0000)]
xfer: Refactor code to retry
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 3 Feb 2025 14:19:05 +0000 (14:19 +0000)]
repo: Perform a full scan for local repositories without metadata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>