]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Sat, 11 Jan 2025 12:50:07 +0000 (12:50 +0000)]
strings: Add a function to search for a match in string array
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 12:43:00 +0000 (12:43 +0000)]
parser: Use string functions to manage filelists
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 12:39:56 +0000 (12:39 +0000)]
parser: Minor cleanup when searching for a template
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 12:37:21 +0000 (12:37 +0000)]
parser: Refactor creating declarations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 12:30:01 +0000 (12:30 +0000)]
parser: Tidy up for finding declarations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 12:27:49 +0000 (12:27 +0000)]
parser: Refactor joining strings
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 12:21:41 +0000 (12:21 +0000)]
parser: Refactor creating a new parser
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 11:56:37 +0000 (11:56 +0000)]
dist: Free the context after reading the makefile
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 11:47:39 +0000 (11:47 +0000)]
tests: Fix the parser tester
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 Jan 2025 11:12:30 +0000 (11:12 +0000)]
build: Free transaction after performing the install check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 18:48:52 +0000 (18:48 +0000)]
dist: Release the context after we are done
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 18:01:44 +0000 (18:01 +0000)]
cli: Fail if the context wasn't freed in the end
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 17:58:18 +0000 (17:58 +0000)]
pty: Make the buffers significantly smaller
We don't really need that much buffer space here and it probably allows
for better CPU caching if the entire struct is smaller.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 17:52:49 +0000 (17:52 +0000)]
build: Refactor processing Perl dependencies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 17:51:56 +0000 (17:51 +0000)]
pty: Implement to stream a filelist into stdin
This is an improved implementation that even supports writing some data
if there is not enough buffer space to write the full filename at once.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 16:44:40 +0000 (16:44 +0000)]
build: Simplify mounting the ccache
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 16:31:29 +0000 (16:31 +0000)]
stripper: Only copy regular source files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 16:31:02 +0000 (16:31 +0000)]
transaction: In build mode, always install the best set of packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 16:30:29 +0000 (16:30 +0000)]
build: Allow uninstalling and downgrading packages
This is required if we want to be able to obsolete things here.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 16:30:05 +0000 (16:30 +0000)]
linter: Don't try to perform ELF checks on start files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 16:29:36 +0000 (16:29 +0000)]
macros: Package /usr/lib*/cmake in development packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 15:22:51 +0000 (15:22 +0000)]
stripper: Support stripping binaries without a Build ID
We should not have these in practise, but there might be cases where we
cannot extract the ID correctly.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 15:15:15 +0000 (15:15 +0000)]
build: Simplify error message when build dependencies cannot be installed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 15:12:23 +0000 (15:12 +0000)]
strings: Add a function to dump a string array
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 15:11:57 +0000 (15:11 +0000)]
pakfire: Don't uninstall source packages by accident
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 10 Jan 2025 15:00:21 +0000 (15:00 +0000)]
pakfire: Call pool_setarchpolicy() directly
This will avoid any builtin logic from libsolv which considers ix86
alternatives which we don't support here.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Jan 2025 17:20:46 +0000 (17:20 +0000)]
ELF: Skip any invalid DWARF sections
On some start files in glibc, this error is thrown and I think it is
safe to just ignore it.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Jan 2025 16:33:31 +0000 (16:33 +0000)]
ELF: Actually return NULL if there is no Build ID
Before, we allocated an empty string which is unnecessary and confused
me further down the line.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 9 Jan 2025 16:32:57 +0000 (16:32 +0000)]
pty: Ensure to register SIGWINCH in the parent process
This makes the entire terminal resizing work again...
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 16:16:42 +0000 (16:16 +0000)]
cli: progressbar: Fix integer underflow
It could happen that we required more space than had and then the
expandable part of the progressbar became negative.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 15:23:35 +0000 (15:23 +0000)]
stripper: Add the debuglink only when we have extracted the debuginfo
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 15:23:05 +0000 (15:23 +0000)]
strings: Add function to merge multiple strings into an array
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 15:08:00 +0000 (15:08 +0000)]
stripper: Create directories where we are creating the files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 15:04:40 +0000 (15:04 +0000)]
stripper: Rename functions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 15:02:28 +0000 (15:02 +0000)]
stripper: Don't try to extract debuginfo from *.o files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 13:13:14 +0000 (13:13 +0000)]
stripper: Strip any LTO information
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:45:25 +0000 (11:45 +0000)]
stripper: Rename to self
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:41:19 +0000 (11:41 +0000)]
linter: Skip script interpreter check for ELF files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:39:47 +0000 (11:39 +0000)]
linter: Skip linting kernel modules
There is pretty much nothing we can do with them.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:36:25 +0000 (11:36 +0000)]
linter: Move skipping files we never want to lint
This saves us from initializing the linter and reading the entire
payload.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:31:32 +0000 (11:31 +0000)]
build: Remove extra step when installing any custom packages
Since there is only one place where this happens, we can also add this
all to the existing large transaction.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:22:08 +0000 (11:22 +0000)]
build: Install source package/update in one step
This patch makes launching a new environment even faster. Everything
will always be resolved in one go and installed in one huge transaction.
Any dependency errors will be caught really early on and we will have
less noise in the console/log.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:11:58 +0000 (11:11 +0000)]
build: Find pre-requirements without a shell script
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:11:39 +0000 (11:11 +0000)]
pty: Add helper function to stream a buffer into stdin
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 8 Jan 2025 11:11:15 +0000 (11:11 +0000)]
util: which: Fix return code on invalid input
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 23:03:04 +0000 (23:03 +0000)]
package: Allow building noarch on any host architecture
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 23:02:38 +0000 (23:02 +0000)]
linter: Skip valgrind for the SSP check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 23:02:11 +0000 (23:02 +0000)]
linter: Whitelist the runtime linker for the SSP check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 23:01:31 +0000 (23:01 +0000)]
stripper: Never try to strip any firmware
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 21:40:26 +0000 (21:40 +0000)]
build: Fix order of arguments to set the arch
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 21:35:03 +0000 (21:35 +0000)]
strings: Don't clear the entire buffer when resetting a string
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 21:34:44 +0000 (21:34 +0000)]
strings: setn: Don't copy anything if length is zero
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 21:30:07 +0000 (21:30 +0000)]
strings: Create a function to copy a fixed-length string
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 6 Jan 2025 21:18:51 +0000 (21:18 +0000)]
string: Choose a more sensible error code when we run out of space
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 17:36:06 +0000 (17:36 +0000)]
jail: Remove headers for removed functions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 17:24:18 +0000 (17:24 +0000)]
build: Exclude *.py[co] and *.packlist from BUILDROOT check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 17:14:34 +0000 (17:14 +0000)]
build: Set PKG_CONFIG_PATH a little bit elegantly
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 17:14:25 +0000 (17:14 +0000)]
env: Add a function to append values
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 17:06:08 +0000 (17:06 +0000)]
build: Create buildroot outside the build environment
This will help us to avoid all the path maths and we will simply
bind-mount the temporary directory into the build environment instead.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 16:34:40 +0000 (16:34 +0000)]
CLI: Remove option to pass the build ID
I don't think we need this and currently it is a no-op.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 16:33:32 +0000 (16:33 +0000)]
tests: build: Use the correct macros to check for errors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 16:31:35 +0000 (16:31 +0000)]
tests: build: Pass the configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 16:31:21 +0000 (16:31 +0000)]
tests: Always globally load the test configuration file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 16:19:18 +0000 (16:19 +0000)]
Drop PAKFIRE_PRIVATE
Everything is now private so we won't need this guard any more.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 15:48:34 +0000 (15:48 +0000)]
CLI: Create a convenience function to set up a build environment
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 15:44:19 +0000 (15:44 +0000)]
build: Fix conflicting flag name
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 15:38:12 +0000 (15:38 +0000)]
CLI: Only pass distro globally for all build commands
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 15:25:34 +0000 (15:25 +0000)]
CLI: Rename config to args
We use the name config for too many things it was not very clear where
things were coming from. Hence this change.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 14:43:36 +0000 (14:43 +0000)]
cli: Remove legacy distro configuration loading code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 14:38:47 +0000 (14:38 +0000)]
build: Pass the configuration to Pakfire
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 14:00:17 +0000 (14:00 +0000)]
tests: Fix them after the recent changes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 13:48:19 +0000 (13:48 +0000)]
pakfire: Pass the configuration as a config object
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 13:30:03 +0000 (13:30 +0000)]
build: Create and manage the Pakfire instance ourselves
This allows us to pass arguments around easier and keep the
configuration closer together.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 5 Jan 2025 13:04:38 +0000 (13:04 +0000)]
debian: Install all files in the main package
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 15:52:41 +0000 (15:52 +0000)]
pakfire: Tell the compiler that we always expect a path for openat()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 15:48:32 +0000 (15:48 +0000)]
strings: Copy strings a lot when appending to an array
The static analyzer thinks we are leaking memory, and so we have to make
things a little bit easier for it.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 15:28:15 +0000 (15:28 +0000)]
build: Implement buildroot check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 15:27:26 +0000 (15:27 +0000)]
file: Build a function to search a file for a string
This is done by mapping the file into memory and performing a fast
string search.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 15:21:03 +0000 (15:21 +0000)]
strings: Implement a fast search that even works over large buffers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 14:14:02 +0000 (14:14 +0000)]
filelist: Implement binary search for paths
This is a fast path if we are looking for an exact match which will be a
lot faster than the linear pattern matching search.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 13:57:30 +0000 (13:57 +0000)]
build: Drop the old find-requires script
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 13:56:19 +0000 (13:56 +0000)]
build: Implement symlink dependencies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 13:41:02 +0000 (13:41 +0000)]
packages: Automatically ignore any dependencies that are provided by the package itself
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 13:33:23 +0000 (13:33 +0000)]
stripper: There should be no need to check if the destination exists now
We should have performed deduplication.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 13:29:56 +0000 (13:29 +0000)]
stripper: Be smarter when copying sources
The naive approach was not very good when it came to copying sources.
Sometimes there are too many and we keep sitting here for a minute.
It is smarter to collect all files first and then look them up and copy
them only once in the end.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 13:29:10 +0000 (13:29 +0000)]
filelist: Increment progress after a file has been processed
The progressbar suspiciously was "done" when there was still some work
to do and the application looked like it had stalled.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 4 Jan 2025 13:28:30 +0000 (13:28 +0000)]
ELF: Don't log when finding a source file
This is a huge amount of output for C++ projects where there are so many
of those files.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 18:07:16 +0000 (18:07 +0000)]
scripts: Remove the old find-provides script
All the functionality has been replaced.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 18:06:13 +0000 (18:06 +0000)]
ELF: Fix reading note sections
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:59:47 +0000 (17:59 +0000)]
ELF: Fix offset for aux sections for dependencies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:59:27 +0000 (17:59 +0000)]
ELF: Declare offsets outside of the switch block
This should make clang happy.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:52:09 +0000 (17:52 +0000)]
ELF: Actually return findings on the CF protection check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:47:40 +0000 (17:47 +0000)]
ELF: Don't return an error if there are no sections
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:47:27 +0000 (17:47 +0000)]
build: Return a more detailed error message if deps search fails
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:31:02 +0000 (17:31 +0000)]
build: ELF files must always be executable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:29:33 +0000 (17:29 +0000)]
build: Use convenience function to match filenames
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 17:27:05 +0000 (17:27 +0000)]
ELF: Fetch provided dependencies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 12:08:34 +0000 (12:08 +0000)]
ELF: Add a function to fetch the SONAME
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 11:51:23 +0000 (11:51 +0000)]
build: Process pkg-config provides
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 11:33:17 +0000 (11:33 +0000)]
build: Move filtering dependencies into the package object
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>