]>
git.ipfire.org Git - people/ric9/pakfire.git/log
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>
Michael Tremer [Fri, 3 Jan 2025 10:58:11 +0000 (10:58 +0000)]
build: Fix the Python ABI and store it as a requirement
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 10:43:52 +0000 (10:43 +0000)]
find-requires: Remove more replaced code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 10:17:48 +0000 (10:17 +0000)]
ELF: Parse any runtime dependencies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 09:50:10 +0000 (09:50 +0000)]
string: Move array functions into strings.c
The inline option has some limitations and it makes things messy. The
compiler will hopefully inline these functions no matter what.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 09:30:42 +0000 (09:30 +0000)]
strings: Help the compiler to understand what array we mean
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 09:03:05 +0000 (09:03 +0000)]
ELF: Add a custom pointer when walking through all sections
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:53:26 +0000 (08:53 +0000)]
find-requires: Remove things that have been implemented elsewhere
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:52:39 +0000 (08:52 +0000)]
build: Require ELF interpreters
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:52:14 +0000 (08:52 +0000)]
ELF: Add a function to fetch the interpreter
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:51:43 +0000 (08:51 +0000)]
build: Don't try to find dependencies for debug files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:42:07 +0000 (08:42 +0000)]
ELF: Create a function to easily walk through all program headers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:30:58 +0000 (08:30 +0000)]
ELF: Read the number of program headers only once
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:16:19 +0000 (08:16 +0000)]
build: Find pkg-config requires in C
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 08:15:46 +0000 (08:15 +0000)]
env: Allow string formatting when setting a value
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 07:53:53 +0000 (07:53 +0000)]
packages: Accept format arguments when adding a new dependency
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 06:38:31 +0000 (06:38 +0000)]
Remove libpakfire as a shared object
There seems to very little point in having a shared library with a
stable API. Most stuff is opaque anyways and there won't be any
third-party programs that can take advantage of this. Therefore we can
save ourselves the extra work that it takes to make this all exported
and stable for now.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 06:04:48 +0000 (06:04 +0000)]
strings: Include string.h
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 06:04:06 +0000 (06:04 +0000)]
ELF: Move any source file handling
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 06:03:12 +0000 (06:03 +0000)]
pakfire: Add openat() relative to the root
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 06:02:34 +0000 (06:02 +0000)]
pakfire: Keep a fd open to the root
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 3 Jan 2025 06:02:12 +0000 (06:02 +0000)]
pakfire: Remove unused lock
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 19:40:50 +0000 (19:40 +0000)]
string: Import errno.h
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 19:40:18 +0000 (19:40 +0000)]
build: Allow uninstallation of incompatible packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 19:06:53 +0000 (19:06 +0000)]
build: Correctly handle dependency problems on the install test
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 16:42:07 +0000 (16:42 +0000)]
ELF: Improve the stripped check
This now checks if we have relocation information and any sections
starting with .debug_* or .zdebug_*.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 16:36:11 +0000 (16:36 +0000)]
ELF: Fetch the string index only once
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 16:20:01 +0000 (16:20 +0000)]
stripper: Strip relocation information again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 16:19:40 +0000 (16:19 +0000)]
ELF: Base the SSP check on the dynamic section
This works even if we have fully stripped the binary.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 16:19:06 +0000 (16:19 +0000)]
strings: Add a simple function to compare two strings
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 15:53:17 +0000 (15:53 +0000)]
linter: Put less pressure on the reference counter
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 15:53:02 +0000 (15:53 +0000)]
file: Remove libelf stuff and use our own abstraction
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 15:45:20 +0000 (15:45 +0000)]
linter: Remove the unused ELF stuff
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 15:43:01 +0000 (15:43 +0000)]
ELF: Move RUNPATH check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 2 Jan 2025 14:52:28 +0000 (14:52 +0000)]
ELF: Move the CF Protection check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:56:45 +0000 (17:56 +0000)]
ELF: Move RELRO check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:42:44 +0000 (17:42 +0000)]
ELF: Move execstack check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:39:04 +0000 (17:39 +0000)]
ELF: Move SSP check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:37:52 +0000 (17:37 +0000)]
stripper: Don't strip unneeded stuff
We will otherwise loose the symtab and then we cannot perform the SSP
check any more.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:28:59 +0000 (17:28 +0000)]
ELF: Move the PIE check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:25:35 +0000 (17:25 +0000)]
linter: Use the new strip check for debug information
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:23:58 +0000 (17:23 +0000)]
linter: Use new functions to check the Build ID
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:22:36 +0000 (17:22 +0000)]
ELF: Implement reading the Debuglink
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:19:00 +0000 (17:19 +0000)]
linter: Use the ELF strip check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>