]>
git.ipfire.org Git - pakfire.git/log
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>
Michael Tremer [Wed, 1 Jan 2025 17:17:00 +0000 (17:17 +0000)]
linter: Replace the ELF check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:14:54 +0000 (17:14 +0000)]
linter: Use the new ELF object
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:08:30 +0000 (17:08 +0000)]
stripper: Only strip files that are not stripped, yet
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:08:11 +0000 (17:08 +0000)]
ELF: Add function to check if a file is stripped
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 17:00:22 +0000 (17:00 +0000)]
file: Actually only replace /usr/bin/env as interpreter
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 16:55:22 +0000 (16:55 +0000)]
stripper: Use the new ELF abstraction to read the Build ID
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 16:54:22 +0000 (16:54 +0000)]
ELF: Add function to read the Build ID
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 16:46:10 +0000 (16:46 +0000)]
ELF: Add a convenience function to open from a file object
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 16:37:10 +0000 (16:37 +0000)]
ELF: Keep a simple reference to the ELF header at all times
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 16:25:20 +0000 (16:25 +0000)]
ELF: Store the path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 16:22:53 +0000 (16:22 +0000)]
elf: Begin scaffolding for an object that handles ELF files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Jan 2025 15:55:32 +0000 (15:55 +0000)]
digests: Don't rewind file after processing to keep r set
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 18:26:38 +0000 (18:26 +0000)]
build: Fix ELF check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 18:22:52 +0000 (18:22 +0000)]
file: Fix script interpreters again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 18:21:06 +0000 (18:21 +0000)]
file: Allow passing the mode on fopen()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 18:19:21 +0000 (18:19 +0000)]
util: Terminate pakfire_copy() even if feof() does not work
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:55:36 +0000 (14:55 +0000)]
linter: Silence the RUNPATH check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:54:29 +0000 (14:54 +0000)]
stripper: Remove any previously existing debuglinks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:54:10 +0000 (14:54 +0000)]
stripper: Ignore if source files don't exist
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:53:36 +0000 (14:53 +0000)]
FHS: Permit sub-directories in /usr/src/debug
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:52:57 +0000 (14:52 +0000)]
Jenkins: Disable the broken branch check
For some reason this is (yet again) not working.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:37:53 +0000 (14:37 +0000)]
packages: Ignore dependencies starting with "#"
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:05:45 +0000 (14:05 +0000)]
path: Convince the static analyzer that path is set
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 14:03:56 +0000 (14:03 +0000)]
xfer: Only call linkat() with a valid file descriptor
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 13:58:29 +0000 (13:58 +0000)]
stripper: Initialize tmppath in case there is an error
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 13:56:54 +0000 (13:56 +0000)]
util: Implement rewind() that returns any errors
The Clang Static Analyzer complains that we don't check errno after
using rewind(). This patch adds a new version of this function which
returns an error.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 13:37:42 +0000 (13:37 +0000)]
linter: Fix RELRO check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 13:37:17 +0000 (13:37 +0000)]
packagelist: Fix keep going logic
This is supposed to store the last error code and return it when the
flag is set.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 13:23:52 +0000 (13:23 +0000)]
linter: Fix check if we have an ELF file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 13:03:34 +0000 (13:03 +0000)]
Revert "tests: Don't collect coverage information about tests"
This reverts commit
bcb8a8de463b9a29969ef7acd78a58021f0bda55 .
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:22:44 +0000 (12:22 +0000)]
stripper: (Re-)compress all debug information using Zstandard
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:19:24 +0000 (12:19 +0000)]
CFLAGS: Deduplicate debugging information
https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#index-fdebug-types-section
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:14:31 +0000 (12:14 +0000)]
Makefile: Link tests with -lgcov again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:12:43 +0000 (12:12 +0000)]
scripts: Remove the old strip script
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:11:53 +0000 (12:11 +0000)]
stripper: Actually strip binaries
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:11:00 +0000 (12:11 +0000)]
linter: Don't complain if there is no symbol table
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:10:38 +0000 (12:10 +0000)]
file: Add function to replace file content from another fd
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 12:03:55 +0000 (12:03 +0000)]
linter: Check that files in /usr/lib/debug are ELF and not stripped
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 11:52:35 +0000 (11:52 +0000)]
filelist: Fix removing items
This also now shrinks the array whenever possible so that we won't waste
any memory if the filelist shrinks by a large amount.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Dec 2024 11:49:48 +0000 (11:49 +0000)]
filelist: Clear number of entries after the filelist has been cleared
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 30 Dec 2024 15:33:34 +0000 (15:33 +0000)]
stripper: Write the debug information directory the Build ID file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 30 Dec 2024 15:16:13 +0000 (15:16 +0000)]
file: Add option to pass flags to open()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 30 Dec 2024 14:39:48 +0000 (14:39 +0000)]
stripper: Extract debug information into a separate file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 30 Dec 2024 14:39:03 +0000 (14:39 +0000)]
stripper: Extract sources in the main process again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>