]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Sat, 22 Mar 2025 15:51:37 +0000 (15:51 +0000)]
log stream: Add an experimental implementation to stream from PTY
This is the first step to split all the complicated line buffering from
the PTY code.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 15:50:53 +0000 (15:50 +0000)]
log streamer: Move line sanitization from PTY
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 15:02:12 +0000 (15:02 +0000)]
pty: Major refactor
This adds loads of comments to hopefully make this thing more robust. So
far we don't really seem to be able to implement all the features we
need without destroying others.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 14:20:23 +0000 (14:20 +0000)]
jail: Pass the program exit code as return code of the loop
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 14:19:46 +0000 (14:19 +0000)]
tests: command: Always return zero after the pipe is finished
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 20 Mar 2025 16:47:16 +0000 (16:47 +0000)]
pty: Always disable character echoing
This usually happens later in case of the interactive version, but since
we don't need to configure much in the pipe case, we can just set this
as default.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 20 Mar 2025 11:30:38 +0000 (11:30 +0000)]
pty: Add a function to set up interactive mode
This way we can split off the initialization code a little bit better
from the main initialization of the PTY object.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 18:02:26 +0000 (18:02 +0000)]
pty: Refactor how we capture output
This will now avoid copying all the data around between the kernel and
userland and will also simply use our own callbacks which helps us to
keep the code a little bit less of an if/else hell.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 17:20:01 +0000 (17:20 +0000)]
jail: Remove use of removed PTY flags
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 17:19:07 +0000 (17:19 +0000)]
pty: Re-organise flags
The CONNECT* flags have been used for two purposes which got mixed up on
the way which is why the standard input was not connected for callbacks.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 17:08:04 +0000 (17:08 +0000)]
pty: Add more logging when reading/writing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 17:05:55 +0000 (17:05 +0000)]
pty: Automatically drain when the event loop finishes
There was the problem that some content could have remained stuck in the
buffers on occasion.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 16:59:40 +0000 (16:59 +0000)]
tests: Fail with error code if fgetc() returns an error
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 16:37:17 +0000 (16:37 +0000)]
transaction: Tidy up cleanup code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 10:48:20 +0000 (10:48 +0000)]
jail: Tidy up creating a new jail
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 10:41:30 +0000 (10:41 +0000)]
python: pakfire: Keep a reference to the Python context
Since we are registering all sorts of callbacks to here, we cannot
deallocate the Ctx object, or we won't be able to use them any more.
This is being fixed by holding a reference to the Python object instead
of the context itself. That will at least help us with lots of these
problems.
There is still, however, the problem that both the Python Ctx and
Pakfire object can be dereferenced when the backend objects will remain
existing.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 10:40:44 +0000 (10:40 +0000)]
python: Pakfire: Remove old callbacks from headers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 10:39:44 +0000 (10:39 +0000)]
tests: python: Don't call depreated unit test function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 10:38:40 +0000 (10:38 +0000)]
python: ctx: Always forward all messages to the logger
We will let the Python logger filter out what we don't need.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 09:31:13 +0000 (09:31 +0000)]
python: execute: Implement passing data into stdin
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Mar 2025 09:11:35 +0000 (09:11 +0000)]
python: execute: Raise any output
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Mar 2025 11:46:29 +0000 (11:46 +0000)]
python: execute: Allow returning the output of the command
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Mar 2025 11:31:42 +0000 (11:31 +0000)]
jail: Remove unused function declaration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Mar 2025 11:22:58 +0000 (11:22 +0000)]
python: execute: Implement setting the nice value
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Mar 2025 11:22:16 +0000 (11:22 +0000)]
jail: Fix return code of nice function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Mar 2025 11:17:20 +0000 (11:17 +0000)]
python: Bring back a basic version of Pakfire.execute()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 17 Mar 2025 11:15:53 +0000 (11:15 +0000)]
python: Re-add CommandExecutionError
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 12:01:25 +0000 (12:01 +0000)]
python: Send the progress title in the start callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:53:25 +0000 (11:53 +0000)]
progress: Add a status callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:37:25 +0000 (11:37 +0000)]
progress: Allow to push/pop the status
That way, we can return to something more useful.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:26:59 +0000 (11:26 +0000)]
strings: Add a function to pop the last element of an array
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:15:23 +0000 (11:15 +0000)]
tests: Fix compilation of the archive test
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:13:57 +0000 (11:13 +0000)]
transaction: Drop old status callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:09:08 +0000 (11:09 +0000)]
transaction: Add a unified progress meter
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 11:08:30 +0000 (11:08 +0000)]
progress: Never show any status for child-progress meters
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 10:53:49 +0000 (10:53 +0000)]
progress: Add support for a status message
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 10:53:16 +0000 (10:53 +0000)]
archive: Add support for a parent progress indicator for extraction
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 15 Mar 2025 10:44:45 +0000 (10:44 +0000)]
progress: Rename status to state
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 17:59:02 +0000 (17:59 +0000)]
python: transaction: Add function to run the transaction
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 17:58:40 +0000 (17:58 +0000)]
python: ctx: Initialize the callbacks
Just to be safe...
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 17:57:39 +0000 (17:57 +0000)]
python: ctx: Ensure we are holding the GIL
This is required because we usally return the GIL when we are jumping
into Pakfire functions as these tend to take some time when running.
When we are jumping back into the Python code, we need to acquire the
GIL again.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 16:04:19 +0000 (16:04 +0000)]
python: Add functions to register a progress callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 15:20:47 +0000 (15:20 +0000)]
python: Allow passing a confirm callback from Python
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 11:04:48 +0000 (11:04 +0000)]
python: Add a basic Transaction class
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 11:00:54 +0000 (11:00 +0000)]
transaction: Remove unused flags
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 10:56:31 +0000 (10:56 +0000)]
db: Fail graciously when we could not open the database
This mainly changes the return code and does some minor code cleanups
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 10:40:06 +0000 (10:40 +0000)]
po: Update translations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 14 Mar 2025 10:39:12 +0000 (10:39 +0000)]
macros: Add yet another kind of GitHub URL
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 20:57:54 +0000 (20:57 +0000)]
arch: Don't use TLS to store the utsname struct
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 20:28:16 +0000 (20:28 +0000)]
build: Ignore cgroups if they are not fully functional
This is an experimental change to see how this will all turn out on
Jenkins.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 20:08:43 +0000 (20:08 +0000)]
build: Fix printing erros when repos config could not be written
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 20:08:13 +0000 (20:08 +0000)]
tests: Fix makefile tests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 20:00:41 +0000 (20:00 +0000)]
repo: Fix writing configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 19:54:35 +0000 (19:54 +0000)]
parser: Make it less verbose
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 19:51:10 +0000 (19:51 +0000)]
jail: Log less when creating/freeing a jail
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:58:12 +0000 (17:58 +0000)]
jenkins: Move the asan logs to the root
Because otherwise I am too stupid to find them.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:46:25 +0000 (17:46 +0000)]
tests: Avoid leaking memory in parser tests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:39:42 +0000 (17:39 +0000)]
jenkins: Upload asan logs only when tests have failed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:28:32 +0000 (17:28 +0000)]
parser: Dump the current status less often
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:27:45 +0000 (17:27 +0000)]
xfopen: Include limits.h
We need this for ULONG_MAX.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:20:43 +0000 (17:20 +0000)]
strings: Have pakfire_string_format_interval write to a preallocated buffer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:20:11 +0000 (17:20 +0000)]
jenkins: Use multiple CPU cores for the static analyzer & LCOV
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:09:18 +0000 (17:09 +0000)]
jenkins: Run the testsuite with address sanitization
There are still some things that are broken (Python), so for now, we
won't care if this fails.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:05:09 +0000 (17:05 +0000)]
configure: Let the compiler figure out what to link for ASAN
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 17:04:23 +0000 (17:04 +0000)]
CLI: Refactor progressbar to use statically allocated buffers
This might take a little bit of pressure off the allocator and we don't
have to deal with asprintf() loosing memory.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:49:30 +0000 (16:49 +0000)]
transactions: Free the job queue
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:49:04 +0000 (16:49 +0000)]
snapshots: Be less verbose when destroying a snapshot
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:48:42 +0000 (16:48 +0000)]
jail: Fix buffer overrun when reading the scriptlet
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:48:08 +0000 (16:48 +0000)]
asan: Use libunwind for better stack traces
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:20:04 +0000 (16:20 +0000)]
tests: Remove various smaller memory "leaks"
There are not critical because the test suite does not run for very
long.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:12:34 +0000 (16:12 +0000)]
jail: Free the timeout timer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:12:19 +0000 (16:12 +0000)]
jail: Use the reference to the loop that we already have
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:01:51 +0000 (16:01 +0000)]
file: Refactor making the filelist
There seems to have been a leak when initializing the string, so we
format it on the stack first and then copy it to the heap later.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 16:00:36 +0000 (16:00 +0000)]
strings: Add function to add formatted strings to a buffer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 15:44:12 +0000 (15:44 +0000)]
log buffer: Free all held lines when freeing the buffer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 15:43:53 +0000 (15:43 +0000)]
db: Ensure to free the deps list after each iteration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 15:38:31 +0000 (15:38 +0000)]
configure: Build with debugging information when using asan
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Feb 2025 15:14:01 +0000 (15:14 +0000)]
configure: Add option to enable the address sanitizer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Feb 2025 19:31:06 +0000 (19:31 +0000)]
jenkins: Remove any traces for Almalinux
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Feb 2025 19:30:23 +0000 (19:30 +0000)]
jenkins: Use more modern command line to install dev tools on Fedora
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Feb 2025 19:26:31 +0000 (19:26 +0000)]
parser: Ignore comments regardless what state the scanner is in
Fixes: #13363 - A comment character anywhere in the build or packages section causes the build to fail
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Feb 2025 19:19:38 +0000 (19:19 +0000)]
dist: Fix return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Feb 2025 19:12:38 +0000 (19:12 +0000)]
parser: Properly handle yyparse() return codes
This patch converts them into our usual errno codes.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 19 Feb 2025 18:42:37 +0000 (18:42 +0000)]
jenkins: Strictly name releases
For Ubuntu, latest points at the latest LTS release, which is not what I
expected. To avoid any confusion, let's name the releases that we want
to support by their number or code name.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 18 Feb 2025 18:09:16 +0000 (18:09 +0000)]
jenkins: Add Ubuntu latest for the tests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 16:30:17 +0000 (16:30 +0000)]
jail: Run setuid/gid mapping even when we are running in /
Since we always create a new namespace, we need to always run this, too.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 16:24:03 +0000 (16:24 +0000)]
ctx: Remove another hard-coded configuration path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 16:21:54 +0000 (16:21 +0000)]
configure: Bump version to 0.9.30
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 16:03:05 +0000 (16:03 +0000)]
build: Permit to uninstall or downgrade packages in installcheck
Whenever we have a snapshot loaded, the solver might want to have a
little bit more liberty to find a solution. As we give it that liberty
later, we should not let the install check become a barrier.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 15:58:19 +0000 (15:58 +0000)]
cli: Fix path of default configuration file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 15:54:11 +0000 (15:54 +0000)]
configure: Compile everything with -std=gnu17
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 15:53:49 +0000 (15:53 +0000)]
cli: pakfire: Log everything to the console by default
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 15:34:14 +0000 (15:34 +0000)]
Makefile: Ship i18n.h
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 15:15:01 +0000 (15:15 +0000)]
build: Fix check for BUILDROOT
The actual variable was not reachable which is changed in this patch.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 14:54:02 +0000 (14:54 +0000)]
PTY: Automatically connect stdout/stderr in some cases
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 14:20:09 +0000 (14:20 +0000)]
PTY: Connect stdout/stderr to /dev/null unless something else was requested
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 14:19:36 +0000 (14:19 +0000)]
archive: Reformat arguments for systemd-sysusers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 14:19:10 +0000 (14:19 +0000)]
archive: Make the systemd sysusers filter logic slightly more obvious
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 13:40:55 +0000 (13:40 +0000)]
packages: Always check if the file size matches
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 16 Feb 2025 13:36:03 +0000 (13:36 +0000)]
OCI: Initialize size
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>