]>
git.ipfire.org Git - people/stevee/pakfire.git/log
Michael Tremer [Wed, 8 Sep 2021 11:54:01 +0000 (11:54 +0000)]
downloader: Compute message digest of downloaded files
This is the first part of where we want to check if we have downloaded a
file that has the expected checksum.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 7 Sep 2021 16:51:46 +0000 (16:51 +0000)]
downloader: Avoid calling fwrite() for empty blocks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 7 Sep 2021 16:50:26 +0000 (16:50 +0000)]
downloader: Use a simple callback function to write received data
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 7 Sep 2021 16:38:55 +0000 (16:38 +0000)]
repo: Remove @ prefix for temporary repository
This enables that pakfire tries to read any package metadata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 15:49:43 +0000 (15:49 +0000)]
repo: Write repomd.json after composing a repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 15:47:20 +0000 (15:47 +0000)]
repo: Avoid memory leak when scanning files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 10:59:32 +0000 (10:59 +0000)]
repo: Implement adding more files to repositories
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 10:50:24 +0000 (10:50 +0000)]
archive: Add a function to copy an archive to somewhere else
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 10:47:29 +0000 (10:47 +0000)]
archive: Allow passing NULL as repo when making a package
This makes using this function easier because it will automatically use
the @dummy repository to store any metadata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 10:31:33 +0000 (10:31 +0000)]
archive: Use fstat() because we are already holding an open fd
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 10:30:59 +0000 (10:30 +0000)]
archive: Change return value of pakfire_archive_get_size to support negative values
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 10:29:57 +0000 (10:29 +0000)]
archive: Make pakfire_archive_make_package return int
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 09:27:52 +0000 (09:27 +0000)]
repo: Make pakfire_repo_add_archive private
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 09:24:50 +0000 (09:24 +0000)]
repo: Have pakfire_repo_add_archive return int
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Aug 2021 09:22:47 +0000 (09:22 +0000)]
_pakfire: Remove unused add_archive() method from Repo
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 19:08:55 +0000 (19:08 +0000)]
repo: Remove write/read_solv functions that take paths
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 19:05:58 +0000 (19:05 +0000)]
repo: Add scaffolding/experimental code to compose repositories
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 19:01:47 +0000 (19:01 +0000)]
util: Add helper function for strftime to format time now
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 16:30:01 +0000 (16:30 +0000)]
repo: Set repo pointer for internal repositories, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 16:14:24 +0000 (16:14 +0000)]
_pakfire: Return some useful repr() for Repo
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 16:14:03 +0000 (16:14 +0000)]
repo: Change pakfire_repo_create to return int
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 14:34:29 +0000 (14:34 +0000)]
archive: Generate a more useful log message when verification fails
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Aug 2021 14:26:29 +0000 (14:26 +0000)]
archive: Initialize r in pakfire_archive_read
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 12 Aug 2021 14:45:38 +0000 (14:45 +0000)]
key: Make secret keys non-world-writable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:55:53 +0000 (19:55 +0000)]
key: Write generated keys into key store
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:42:10 +0000 (19:42 +0000)]
repo: Automatically import repository keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:39:24 +0000 (19:39 +0000)]
key: Write keys to keystore after import
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:38:53 +0000 (19:38 +0000)]
pakfire: Add keystore path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:37:37 +0000 (19:37 +0000)]
key: Tidy up loop that retrieves imported keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:36:56 +0000 (19:36 +0000)]
key: Fix whitespace error
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:34:02 +0000 (19:34 +0000)]
key: Keep import result so that we can call pakfire_find_key
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:30:59 +0000 (19:30 +0000)]
key: pakfire_find_key: Check if input is a NULL pointer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 19:28:52 +0000 (19:28 +0000)]
pakfire: Allow receiving an empty list of keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 7 Aug 2021 09:08:56 +0000 (09:08 +0000)]
keystore: Log when keystore is being destroyed and reset pointer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 6 Aug 2021 12:05:06 +0000 (12:05 +0000)]
keystore: Do not execute cleanup after successful init
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 6 Aug 2021 12:04:26 +0000 (12:04 +0000)]
keystore: Return zero on successful import
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 30 Jul 2021 15:40:40 +0000 (15:40 +0000)]
keystore: Automatically import all keys in /etc/pakfire/trusted.keys.d
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 30 Jul 2021 15:40:13 +0000 (15:40 +0000)]
pakfire: Initialize keystore when pakfire is being initialized
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 30 Jul 2021 15:07:59 +0000 (15:07 +0000)]
keystore: Create a temporary GnuPG database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 29 Jul 2021 15:38:21 +0000 (15:38 +0000)]
keystore: Move GPG stuff into an extra file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 29 Jul 2021 15:37:16 +0000 (15:37 +0000)]
distro: Add key file to distribution configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 20:42:10 +0000 (20:42 +0000)]
pakfire: Move states into bitfields
This should save us a couple of bytes of memory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 20:15:14 +0000 (20:15 +0000)]
archive: Create struct to pass more data to signature checker
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 14:11:39 +0000 (14:11 +0000)]
package: Do not dump sizes if they are empty
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 13:59:03 +0000 (13:59 +0000)]
package: Change type for package size to size_t
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 13:53:38 +0000 (13:53 +0000)]
packager: Dump metadata of written package
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 13:47:13 +0000 (13:47 +0000)]
build: Initialize build environment only when needed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 13:22:06 +0000 (13:22 +0000)]
pakfire-builder: Automatically run dist when passed makefiles
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 13:21:50 +0000 (13:21 +0000)]
dist: Return the name of the generated file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 13:13:50 +0000 (13:13 +0000)]
build: Add more logging
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 12:39:58 +0000 (12:39 +0000)]
archive: Remove archive filename defines
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 12:35:18 +0000 (12:35 +0000)]
archive: Add scaffolding to return keys on verify
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 12:19:04 +0000 (12:19 +0000)]
archive: Strip leading "./" from path name
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 22 Jul 2021 12:16:57 +0000 (12:16 +0000)]
archive: Show hexdigests if there was a checksum mismatch
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 13:41:36 +0000 (13:41 +0000)]
util: Refactor unhexlify without using scanf
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 13:29:05 +0000 (13:29 +0000)]
util: Use pre-processor macros to pass size to hexlify/unhexlify
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 13:25:30 +0000 (13:25 +0000)]
archive: Refactor parser for legacy chksums format
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 13:24:15 +0000 (13:24 +0000)]
util: Move read_hexdigest to pakfire_unhexlify
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 13:20:04 +0000 (13:20 +0000)]
archive: Deal with digests as unsigned char
This is the native type for OpenSSL and libarchive so we can avoid some type casting
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 12:23:15 +0000 (12:23 +0000)]
archive: Refactor loading scriptlets
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 11:58:15 +0000 (11:58 +0000)]
archive: Drop old verification code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 11:55:59 +0000 (11:55 +0000)]
archive: Fail hard when files do not have a checksum
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 11:47:35 +0000 (11:47 +0000)]
archive: Improve verification speed
We validate all checksums before we generate a signature for an archive,
but on verification, we only check the best checksum.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 11:40:10 +0000 (11:40 +0000)]
archive: Verify all checksums
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Jul 2021 11:37:28 +0000 (11:37 +0000)]
packager: Write payload to mtree for correct hashing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 18:11:29 +0000 (18:11 +0000)]
archive: Add flags argument to walk helper function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 17:50:52 +0000 (17:50 +0000)]
archive: Read checksums from mtree
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 17:47:25 +0000 (17:47 +0000)]
archive: Add buckets for digests
To be able to read multiple digests in one go, we simply add multiple
entries to the same checksum object.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 17:10:49 +0000 (17:10 +0000)]
packager: Write type into outer mtree
libarchive requires reading the file name to recognise a line as a valid
entry.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 17:10:28 +0000 (17:10 +0000)]
archive: Implement scaffolding to verify checksums
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 17:09:29 +0000 (17:09 +0000)]
configure: Require libarchive >= 3.5.0
This is required to get the ability to read digests from mtrees.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 11:01:45 +0000 (11:01 +0000)]
archive: Set verify status after successful signature check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 10:53:03 +0000 (10:53 +0000)]
key: Do not free gpgme's result
I interpret the documentation that this is required, however it causes a
double free when the context is being released.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 10:50:09 +0000 (10:50 +0000)]
_pakfire: Fix reference counting of keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 12 Jul 2021 10:39:21 +0000 (10:39 +0000)]
archive: Refactor find_archive_entry
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 17:06:58 +0000 (17:06 +0000)]
archive: Write signatures to archives
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 17:06:30 +0000 (17:06 +0000)]
archive: Open archives in r+ mode
This allows us to write to the files, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 17:05:32 +0000 (17:05 +0000)]
key: Store the timestamp of the signature if wanted
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 17:04:04 +0000 (17:04 +0000)]
archive: Add function that finds the end of an archive to append files
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 15:03:17 +0000 (15:03 +0000)]
archive: Implement creating a signature
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 15:02:16 +0000 (15:02 +0000)]
key: Add function that can sign data
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 13:40:32 +0000 (14:40 +0100)]
execute: Check for CLONE_INTO_CGROUP at compile time
This allows building Pakfire with older kernels, but causes that
processes are not forked into the correct cgroup.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 13:39:16 +0000 (14:39 +0100)]
configure: Fix syntax error in Python module check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 11 Jul 2021 13:34:42 +0000 (14:34 +0100)]
configure: Permit build with Python >= 3.6
OpenSUSE Leap only ships Python 3.6
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 15:21:17 +0000 (15:21 +0000)]
archive: verify: Return status as an argument
This avoids that it can be confused with any error code that is being
returned.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 15:20:54 +0000 (15:20 +0000)]
pakfire_archive_verify_strerror: Handle all possible errors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 14:57:48 +0000 (14:57 +0000)]
archive: Set verify status to "not signed" before checking for signatures
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 14:49:59 +0000 (14:49 +0000)]
pakfire: Change type from Pakfire to struct pakfire
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 14:26:11 +0000 (14:26 +0000)]
filelist: Change type from PakfireFilelist to struct pakfire_filelist
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 14:21:25 +0000 (14:21 +0000)]
archive: Change type from PakfireArchive to struct pakfire_archive
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 14:14:19 +0000 (14:14 +0000)]
Makefile: Fix whitespace issue
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 14:13:46 +0000 (14:13 +0000)]
pakfire: Drop old CLI
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 14:12:29 +0000 (14:12 +0000)]
pakfire: Implement deleting keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 10:29:06 +0000 (10:29 +0000)]
pakfire: Add scaffolding to manually sign packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 10:19:58 +0000 (10:19 +0000)]
_pakfire: Fix memory leaks in generating key lists
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 10:12:58 +0000 (10:12 +0000)]
key: Refactor exporting keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 9 Jul 2021 09:50:47 +0000 (09:50 +0000)]
key: Refactor importing keys
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 8 Jul 2021 17:06:30 +0000 (17:06 +0000)]
pakfire: Add some scaffolding to verify archives
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 8 Jul 2021 17:02:47 +0000 (17:02 +0000)]
_pakfire: Add function to simply open archives
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 8 Jul 2021 16:44:03 +0000 (16:44 +0000)]
pakfire: Move key commands to a subparser
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>