]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Fri, 31 Jan 2025 14:39:43 +0000 (14:39 +0000)]
snapshot: Create a new snapshot if the cache dir does not exist
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 14:38:24 +0000 (14:38 +0000)]
httpclient: Configure some more sensible defaults
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 13:05:47 +0000 (13:05 +0000)]
repo: Anchor the key to the appdata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 12:46:42 +0000 (12:46 +0000)]
xfer: Tidy up mirror handling
No functional changes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 12:34:49 +0000 (12:34 +0000)]
xfer: For queued xfers, make sure we don't use an older mirror
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 12:32:30 +0000 (12:32 +0000)]
mirrorlist: Don't free the JSON object when checking it's type
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 12:19:08 +0000 (12:19 +0000)]
mirrors: Disable instead of "broken"
This patch also implements this all with flags.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 12:12:24 +0000 (12:12 +0000)]
mirrors: Evaluate the status code
With some errors, there is no point at all to keep trying.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 12:00:34 +0000 (12:00 +0000)]
mirrors: Refactor mirror handling
xfers will now immediately get a mirror assigned when they have a
mirrorlist set so that we don't have to play any games later.
When an xfer has failed, we will ask for another mirror and run again.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 11:57:12 +0000 (11:57 +0000)]
mirror: Ensure paths always have a trailing slash
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 10:46:17 +0000 (10:46 +0000)]
contrib: Enable mirror list for stable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 10:45:45 +0000 (10:45 +0000)]
repo: Achor the mirrorlist to the appdata
This is now possible because we won't circle-reference Pakfire any more
since we have the ctx object.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 10:09:52 +0000 (10:09 +0000)]
repo: Instead of passing around flags, automatically free the repo
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 10:03:34 +0000 (10:03 +0000)]
repo: Add reference counting to appdata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 09:56:58 +0000 (09:56 +0000)]
pakfire: Include flags when cloning an instance
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 09:50:52 +0000 (09:50 +0000)]
pakfire: Clean up after failing to create a temporary directory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 Jan 2025 09:44:15 +0000 (09:44 +0000)]
compress: Free the cookie if level parsing fails
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:54:47 +0000 (22:54 +0000)]
pakfire: Include local repo name in path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:53:49 +0000 (22:53 +0000)]
repo: Use function to check repo name
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:50:23 +0000 (22:50 +0000)]
log buffer: Removed unused r
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:47:51 +0000 (22:47 +0000)]
archive: Compose path after all other metadata has been set
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:47:25 +0000 (22:47 +0000)]
repo: Check pointers before trying to free them
This is again for the static analyzer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:39:03 +0000 (22:39 +0000)]
repo: Make the static analyzer happy again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:20:37 +0000 (22:20 +0000)]
repo: Actually copy files to the right place
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 22:07:21 +0000 (22:07 +0000)]
repo: Implement the reverse of pakfire_package_get_path()
This hopefully fixes that we will copy/link packages to themselves.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 21:39:19 +0000 (21:39 +0000)]
repo: Don't try to copy the package into the same repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 21:39:02 +0000 (21:39 +0000)]
repos: Ensure the repo is always internalized
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 21:33:34 +0000 (21:33 +0000)]
tests: repo: Usual EQUALS macro to show the true figures
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 21:00:50 +0000 (21:00 +0000)]
packages: Allow passing a repository for faster caching
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 20:51:06 +0000 (20:51 +0000)]
repo: Automatically sync local repositories with their index
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 20:50:05 +0000 (20:50 +0000)]
packagelist: Add helper function to check if a certain path is on the list
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 20:43:16 +0000 (20:43 +0000)]
packages: Fix destroying a package
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 20:06:06 +0000 (20:06 +0000)]
repo: Have the function to return all packages as list create the list
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 20:05:07 +0000 (20:05 +0000)]
packages: Introduce a function to return the expected path
Since we need the paths in other places, this is the best way.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 19:31:36 +0000 (19:31 +0000)]
repo: Don't do any path voodoo for internal repositories
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 17:07:23 +0000 (17:07 +0000)]
transaction: Use the new check to find available packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 17:06:23 +0000 (17:06 +0000)]
repo: Pass on the correct error code if we could not open the database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 17:00:04 +0000 (17:00 +0000)]
package: Build a unified way to check if a package exists
This performs a quick stat() as well.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 16:59:44 +0000 (16:59 +0000)]
repo: Make path composition public
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 16:14:05 +0000 (16:14 +0000)]
repo: Simply scan again on forced refresh of local repos
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 16:10:36 +0000 (16:10 +0000)]
repo: Make the write metadata function public
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 16:02:43 +0000 (16:02 +0000)]
pakfire: Remove the refresh function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 16:02:13 +0000 (16:02 +0000)]
pakfire: Don't refresh the local repository sooner than the others
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 15:57:41 +0000 (15:57 +0000)]
python: Drop Pakfire.refresh()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 15:56:37 +0000 (15:56 +0000)]
pakfire: Refresh repos once all have been created
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 15:54:04 +0000 (15:54 +0000)]
build: Move creating the local repository into Pakfire
Pakfire is kind of the thing that should do the setup. That way, we have
it all in one place instead of two places of setup.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 15:25:04 +0000 (15:25 +0000)]
cli: The shell environment is obviously local, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 15:21:36 +0000 (15:21 +0000)]
contrib: Remove the local repo from the configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 15:20:41 +0000 (15:20 +0000)]
build: Always create a local build repository in the home directory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 15:19:15 +0000 (15:19 +0000)]
path: Add function to expand paths
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 14:52:23 +0000 (14:52 +0000)]
build: Create a flag to mark locally run builds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:45:10 +0000 (11:45 +0000)]
repo: Increase the Zstandard compression level
The data is actually really small and compresses well, so we can spend
some extra CPU cycles to save disk space and bandwidth.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:43:55 +0000 (11:43 +0000)]
compress: Implement passing the compression level to XZ & Zstd
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:30:21 +0000 (11:30 +0000)]
compress: Fix flushing Zstandard output data
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:18:04 +0000 (11:18 +0000)]
repo: Move compression detection
It is easier to run this when we read the database instead of in the
lower level SOLV reading function because inheriting the FILE handle
becomes difficult.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:17:22 +0000 (11:17 +0000)]
package: Add function to destroy a package
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:11:00 +0000 (11:11 +0000)]
tests: archive: Make the test repository virtual
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:10:35 +0000 (11:10 +0000)]
repo: Make all internal repositories virtual
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:10:04 +0000 (11:10 +0000)]
repo: Since we now support virtual repositories, the don't have to be local
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:04:06 +0000 (11:04 +0000)]
repo: Fix return codes when reading SOLV data
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 11:00:57 +0000 (11:00 +0000)]
repo: Remove unused function to only add package metadata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 10:56:48 +0000 (10:56 +0000)]
cli: Use import function to import archives
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 10:54:50 +0000 (10:54 +0000)]
repo: Optionally return the package object when importing archives
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 10:50:35 +0000 (10:50 +0000)]
repo: Introduce the concept of virtual repositories
These repos can import packages, but they won't copy them but rather
leave them where they were before.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 10:39:16 +0000 (10:39 +0000)]
repos: Revert changing pakfire_path_relpath
Use pakfire_path_relative instead which writes the path to the stack.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 10:24:30 +0000 (10:24 +0000)]
build: Remove fetching unused path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 10:22:49 +0000 (10:22 +0000)]
job: Don't lose build status when closing the log file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 10:18:39 +0000 (10:18 +0000)]
util: Make sure relative paths are always relative
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 09:54:12 +0000 (09:54 +0000)]
repo: Unify code to import packages
This now supports the flat layout that we use for the @local build
repository as well as the UUID layout that we use to publish packages.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 09:15:40 +0000 (09:15 +0000)]
compress: Automatically detect gzip-compressed data
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 09:12:16 +0000 (09:12 +0000)]
repo: Refactor finding the installed repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 09:07:33 +0000 (09:07 +0000)]
repo: Refactor identity function
We could in theory have two repositories with the same name.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 09:06:04 +0000 (09:06 +0000)]
repo: Drop an unused function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 09:04:30 +0000 (09:04 +0000)]
repo: Refactor opening existing repositories
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 08:55:27 +0000 (08:55 +0000)]
repo: Refactor creating a new repo
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 08:39:48 +0000 (08:39 +0000)]
repo: Fix weird argument handling
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 08:36:00 +0000 (08:36 +0000)]
job: Remove the braindead UUID parsing/unparsing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 08:28:47 +0000 (08:28 +0000)]
jobs: Pass all log messages on to the upstream logger
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 08:21:25 +0000 (08:21 +0000)]
log file: Change compression to gzip
Although it would be nice to only use one compression algorithm, the
challenges to use Zstandard are a little bit too large. The compression
is actually not better (if even) and takes up a lot more resources. At
the same time, there is very little support for Zstandard in browsers
and Python itself, which results us writing a lot of extra code to
ensure that the files are often decoded again to be delivered in
plaintext and being DEFLATEd again by the reverse proxies.
So it all makes a lot more sense to use gzip from the start and just be
done with it.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 08:17:22 +0000 (08:17 +0000)]
compress: Add transparent gzip compression
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 30 Jan 2025 08:16:45 +0000 (08:16 +0000)]
configure: Depend on zlib
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 18:36:29 +0000 (18:36 +0000)]
xfer: Don't use chunked encoding for uploads
This is deprecated in HTTP/2 and on the server side we now live without
it. cURL even sends a Content-Length header which is quite helpful.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 17:11:08 +0000 (17:11 +0000)]
string: Don't return the number of elements in an array after append
We don't use this anywhere and it requires to reset r whenever we store
the value in it.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 17:10:21 +0000 (17:10 +0000)]
compress: Drastically increase the Zstandard compression level
All files that we generate are being transferred or stored for a long
time. So it should be wise to always spend the extra CPU cycles.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 17:10:02 +0000 (17:10 +0000)]
log file: Add a human readable filename argument
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 16:49:03 +0000 (16:49 +0000)]
job: Create a log file and write the entire job output to it
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 16:47:46 +0000 (16:47 +0000)]
log file: Reset the file handle immediately
Since we are calling some logging functions from here we might want to
write to the closed file handle.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 16:46:47 +0000 (16:46 +0000)]
buildservice: Always set title on upload
This will always be set, so there is no point in adding this check.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 16:46:23 +0000 (16:46 +0000)]
buildservice: Send digest without choosing some algorithm
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 16:45:52 +0000 (16:45 +0000)]
buildservice: Reformat how to play with arguments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 15:06:15 +0000 (15:06 +0000)]
log stream: Make this more versatile
This is needed because we have differnt types of input and therefore
need to be able to handle them all.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 15:03:52 +0000 (15:03 +0000)]
build: Log something when the result callback returned non-zero
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 15:02:14 +0000 (15:02 +0000)]
job: Properly implement the log stream now
This is now a post event which will always be called when there have
been any other events processed. We will therefore try to send as many
log lines as possible before we terminate.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 14:00:59 +0000 (14:00 +0000)]
tests: compress: Tidy up the code to get better assertion messages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 14:00:35 +0000 (14:00 +0000)]
buildservice: Make setting the upload filename optional
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 14:00:12 +0000 (14:00 +0000)]
compress: Correctly terminate on EOF
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 11:46:39 +0000 (11:46 +0000)]
compress: Refactor transparent Zstandard compression
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 11:09:44 +0000 (11:09 +0000)]
log file: Add new object to write a (compressed) log file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 29 Jan 2025 10:40:57 +0000 (10:40 +0000)]
buildservice: Use the URL to upload the payload
This is just a change in the protocol which hopefully will give us some
more flexibility in the future.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 28 Jan 2025 17:53:18 +0000 (17:53 +0000)]
builds: Remove old target implementation
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>