]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Tue, 25 Mar 2025 09:34:14 +0000 (09:34 +0000)]
tests: Free string array after use
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 19:38:31 +0000 (19:38 +0000)]
jail: Move the filelist streaming helper from PTY
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 19:34:46 +0000 (19:34 +0000)]
jail: Move the send buffer function from the PTY
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 19:27:24 +0000 (19:27 +0000)]
jail: Refactor the output callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:58:33 +0000 (18:58 +0000)]
build: Remove any traces of the deprecated PTY stdin callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:46:34 +0000 (18:46 +0000)]
jail: Refactor streaming data into the jail
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:44:50 +0000 (18:44 +0000)]
tests: jail: Consume any output of the pipe
This is just because of the log streamer complaining
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:39:36 +0000 (18:39 +0000)]
buffer: Add a helper function that fills a buffer with a callback
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:39:07 +0000 (18:39 +0000)]
log stream: Return the number of bytes written
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:13:39 +0000 (18:13 +0000)]
jail: Only make the parent ends of the pipes non-blocking
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:11:36 +0000 (18:11 +0000)]
buffer: Don't allow to resize the buffer smaller than what it holds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:10:49 +0000 (18:10 +0000)]
buffer: Don't allow the buffer to grow larger than its defined length
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 18:10:15 +0000 (18:10 +0000)]
pakfire: Don't leak our locking fd into the jail
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 16:53:42 +0000 (16:53 +0000)]
jail: Flush any output after we have updated the buffers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 16:49:40 +0000 (16:49 +0000)]
pty: Use our own buffer implementation
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 16:47:31 +0000 (16:47 +0000)]
tests: log stream: Replace PTY test with file handle test
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 16:12:11 +0000 (16:12 +0000)]
pty: Remove code that maps CRNL to NL
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 16:10:01 +0000 (16:10 +0000)]
pty: Remove all sorts of code that is not needed any more
This is all of the non-interactive code.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 24 Mar 2025 15:58:33 +0000 (15:58 +0000)]
jail: Bring back pipes for non-interactive sessions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 23 Mar 2025 13:53:48 +0000 (13:53 +0000)]
jail: Use the PTY only for interactive sessions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 18:21:23 +0000 (18:21 +0000)]
buffer: Always allocate at least one chunk
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 18:21:02 +0000 (18:21 +0000)]
buffer: Automatically shrink the buffer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 18:20:17 +0000 (18:20 +0000)]
buffer: Correctly compute the new desired length when growing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 18:10:14 +0000 (18:10 +0000)]
buffer: Add function to configure the maximum length
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 18:07:09 +0000 (18:07 +0000)]
buffer: Give the functions slightly better names
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 18:04:22 +0000 (18:04 +0000)]
log stream: Use the new buffer implementation
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 18:03:31 +0000 (18:03 +0000)]
buffer: Create a new generic buffer implementation
This is used to hold a dynamically growing buffer.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 16:57:36 +0000 (16:57 +0000)]
log stream: Expect the callback to consume the entire line
This is otherwise getting out of hand and we should not have a place
where this would become an issue.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 16:56:59 +0000 (16:56 +0000)]
jail: Use log stream to perform line-buffered output
This helps us to split the complexity between the PTY and some extra
buffering code.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 16:39:24 +0000 (16:39 +0000)]
tests: log stream: Stream another line
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 16:35:57 +0000 (16:35 +0000)]
python: execute: Use the send buffer callback we already have
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 16:29:34 +0000 (16:29 +0000)]
log stream: Move data as second argument of the callback
That way, we are compatible with the PTY stdout callback.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 16:16:58 +0000 (16:16 +0000)]
log stream: Change first argument of the callback to ctx
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 22 Mar 2025 16:11:44 +0000 (16:11 +0000)]
PTY: Remove the rest of the line buffering code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
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>