]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Fri, 12 Feb 2021 16:51:44 +0000 (16:51 +0000)]
Drop PakfireServer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 12 Feb 2021 16:45:43 +0000 (16:45 +0000)]
Drop unused arch.py
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 12 Feb 2021 16:43:08 +0000 (16:43 +0000)]
repo: Add function to scan repos for archives
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 16:58:38 +0000 (16:58 +0000)]
tests: Prepare repository tests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 16:54:10 +0000 (16:54 +0000)]
pakfire: Rename local repository to @system
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 16:35:26 +0000 (16:35 +0000)]
db: Read install time back from database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 16:21:09 +0000 (16:21 +0000)]
package: Give build_host/build_time proper names and types
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 16:10:46 +0000 (16:10 +0000)]
packages: Capitalize headlines
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 16:06:29 +0000 (16:06 +0000)]
relationlists: Sort before printing them
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 15:44:37 +0000 (15:44 +0000)]
packages: Add weak dependencies supplements/enhances
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 15:33:07 +0000 (15:33 +0000)]
packages: dump: Process dependencies in a big loop
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 15:22:29 +0000 (15:22 +0000)]
packages: Truncate dependencies correctly at the markers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 14:59:15 +0000 (14:59 +0000)]
package: Use solvable_*_deparray instead of idarray
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 14:49:43 +0000 (14:49 +0000)]
db: Time how long the import takes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 14:30:13 +0000 (14:30 +0000)]
pakfire: Improve performance when importing relation lists
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 13:37:29 +0000 (13:37 +0000)]
Drop Python implementation of the local repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 13:33:25 +0000 (13:33 +0000)]
request: Check whether installed repository is set
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 13:09:36 +0000 (13:09 +0000)]
db: Load dependencies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 11:06:35 +0000 (11:06 +0000)]
package: Rename pakfire_package_create2 to pakfire_package_create
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 11 Feb 2021 11:04:18 +0000 (11:04 +0000)]
package: Keep a copy of the repository
This increases performance when the repository needs to be accessed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 10 Feb 2021 15:23:33 +0000 (15:23 +0000)]
package: Rename pakfire_package_create to pakfire_package_create_from_solvable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 10 Feb 2021 15:06:15 +0000 (15:06 +0000)]
db: Load filelists
To avoid running an extra query for the filelist, we simply have SQLite
concatenate the filelist and we split it again after.
It would have been nicer to use NUL to concatenate the string, but that
is unfortunately difficult in SQLite, so that we use newline and replace
it later so that we can only run memcpy() once instead of once per line.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 10 Feb 2021 11:47:51 +0000 (11:47 +0000)]
db: Import more text fields into the package database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 9 Feb 2021 19:18:58 +0000 (19:18 +0000)]
db: Internalize repository after load
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 9 Feb 2021 19:05:09 +0000 (19:05 +0000)]
db: Load a couple of attributes for packages into repo
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 9 Feb 2021 18:18:22 +0000 (18:18 +0000)]
pakfire: Automatically create the installed repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 9 Feb 2021 18:12:28 +0000 (18:12 +0000)]
pakfire: Tidy up initialisation
The code that sets up the pool has now entirely moved into a separate
function.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 Feb 2021 20:48:52 +0000 (20:48 +0000)]
libpakfire: Drop pakfire_strdup
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 Feb 2021 20:41:17 +0000 (20:41 +0000)]
libpakfire: Drop pakfire_realloc
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 Feb 2021 20:39:14 +0000 (20:39 +0000)]
libpakfire: Drop pakfire_malloc
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 Feb 2021 19:32:16 +0000 (19:32 +0000)]
libpakfire: Drop pakfire_calloc
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 8 Feb 2021 19:27:17 +0000 (19:27 +0000)]
libpakfire: Drop pakfire_free
There is no point in using an own function to free any memory.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 18:30:19 +0000 (18:30 +0000)]
libpakfire: Run scriptlets from database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 17:49:54 +0000 (17:49 +0000)]
scriptlets: Constify list of scriptlet types
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 17:42:37 +0000 (17:42 +0000)]
db: Create a unique index over package UUIDs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 17:39:55 +0000 (17:39 +0000)]
db: Implement removing packages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 17:36:41 +0000 (17:36 +0000)]
db: Fix field number for vendor (and do not overwrite UUID)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 17:11:12 +0000 (17:11 +0000)]
db: Add function which returns how many packages are installed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 17:03:12 +0000 (17:03 +0000)]
db: Add test for add_package()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 7 Feb 2021 17:02:37 +0000 (17:02 +0000)]
repo: Do not call pakfire_repo_identical() without a repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 6 Feb 2021 17:41:01 +0000 (17:41 +0000)]
relationlists: Rename _count() and _get_clone()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 6 Feb 2021 17:34:54 +0000 (17:34 +0000)]
relationlist: Refactor create
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 6 Feb 2021 17:05:03 +0000 (17:05 +0000)]
db: Import dependencies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 17:36:43 +0000 (17:36 +0000)]
libpakfire: db: Add scriptlets
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 17:33:27 +0000 (17:33 +0000)]
libpakfire: scriptlets live in "scriptlets/"
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 17:33:07 +0000 (17:33 +0000)]
libpakfire: archive: Do not break on successful memory allocation
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 17:32:37 +0000 (17:32 +0000)]
libpakfire: scriptlets: Actually free on free()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 17:31:10 +0000 (17:31 +0000)]
libpakfire: execute: Call chdir("/") after chroot
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 16:24:46 +0000 (16:24 +0000)]
libpakfire: scriptlets: Move them into an own data structure
We deal with scriptlets in several places and carrying them around as
loose pointers to some data is not very comfortable.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 14:49:49 +0000 (14:49 +0000)]
libpakfire: db: Initialise r
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 14:47:41 +0000 (14:47 +0000)]
libpakfire: db: Drop unused build_date column
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 14:30:29 +0000 (14:30 +0000)]
libpakfire: Drop dependency on libgcrypt
This library was chosen as a lightweight and more easy to use
alternative to OpenSSL.
Unfortunately it does not seem to be up to standard in terms of
reliability, performance and most importantly security.
Therefore we are using OpenSSL which is the de-facto standard library,
well-audited and has a transparent development process.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 14:26:17 +0000 (14:26 +0000)]
archive: Use OpenSSL instead of libcrypt to compute hashes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 12:22:15 +0000 (12:22 +0000)]
libpakfire: Link against OpenSSL
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 30 Jan 2021 12:18:19 +0000 (12:18 +0000)]
tests: Add a basic test for filelists
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 24 Jan 2021 16:49:32 +0000 (16:49 +0000)]
libpakfire: Drop filelists from packages
Filelists are now being allocated when needed.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 24 Jan 2021 16:43:13 +0000 (16:43 +0000)]
libpakfire: Remove dropped functions from symbols table
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 24 Jan 2021 16:41:23 +0000 (16:41 +0000)]
libpakfire: filelist: Implement sorting filelists
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 24 Jan 2021 16:34:30 +0000 (16:34 +0000)]
libpakfire: Refactor files
This used to be used to implement lists which was a right mess.
Lists are now filelists and files are now files only.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 24 Jan 2021 15:15:10 +0000 (15:15 +0000)]
libpakfire: filelist: Refactor filelist
The code that was written was not even used and has now been rewritten
in order to make it usable and to remove any linked-list stuff from
PakfireFile.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 24 Jan 2021 14:55:16 +0000 (14:55 +0000)]
libpakfire: filelist: Move object declaration into .c file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 24 Jan 2021 14:54:12 +0000 (14:54 +0000)]
libpakfire: db: Add files to filelist
This is incomplete because we can currently not access some attributes
from the file object.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 23 Jan 2021 16:35:22 +0000 (16:35 +0000)]
libpakfire: steps: Make them independent from libsolv
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 23 Jan 2021 16:34:45 +0000 (16:34 +0000)]
libpakfire: db: Drop build_id column from INSERT statement
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 23 Jan 2021 16:20:49 +0000 (16:20 +0000)]
libpakfire: db: Add check function to check database integrity
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 18:10:59 +0000 (18:10 +0000)]
tests: Add some tests for database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 18:08:56 +0000 (18:08 +0000)]
libpakfire: db: Fix typo in optimize
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 18:03:55 +0000 (18:03 +0000)]
libpakfire: db: Fix reading settings
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 17:24:01 +0000 (17:24 +0000)]
libpakfire: db: Drop old build_id column
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 17:14:35 +0000 (17:14 +0000)]
libpakfire: db: Add packages to database when installed
This does not add any metadata, yet.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 13:03:53 +0000 (13:03 +0000)]
libpakfire: db: Add foreign keys to tables
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 12:10:52 +0000 (12:10 +0000)]
libpakfire: db: Add scriptlets table
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 12:04:07 +0000 (12:04 +0000)]
libpakfire: db: Add files table
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 22 Jan 2021 10:25:35 +0000 (10:25 +0000)]
libpakfire: db: Add dependencies table
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 21 Jan 2021 19:51:36 +0000 (19:51 +0000)]
libpakfire: db: Create packages table
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 21 Jan 2021 19:39:55 +0000 (19:39 +0000)]
libpakfire: db: Self-populate schema
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 21 Jan 2021 11:34:37 +0000 (11:34 +0000)]
libpakfire: db: Set database to WAL mode
We disable autocheckpointing since we are expected to writer rather
large transactions and we would like to keep the database as compact as
possible, too. That is achieved by truncating the WAL log in the end
where the data is being copied into the main database and the WAL log
being emptied after.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 21 Jan 2021 11:24:07 +0000 (11:24 +0000)]
libpakfire: db: Set some sensible defaults for the connection
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 21 Jan 2021 11:21:43 +0000 (11:21 +0000)]
libpakfire: execute: status might have been used uninitialised
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 21 Jan 2021 11:19:08 +0000 (11:19 +0000)]
python: execute: Raise OS error when starting the process failed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 22:11:27 +0000 (22:11 +0000)]
libpakfire: db: Setup some basic database logging
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 22:03:51 +0000 (22:03 +0000)]
libpakfire: db: Use SQLite3
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 21:39:32 +0000 (21:39 +0000)]
libpakfire: db: Add flags to decide whether we need write access
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 21:33:17 +0000 (21:33 +0000)]
libpakfire: db: Export functions like everything else
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 21:28:52 +0000 (21:28 +0000)]
libpakfire: Remove LMDB
This does not seem to be the right tool for our task
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 21:23:57 +0000 (21:23 +0000)]
libpakfire: Call database routines when packages are added/removed
These functions are empty right now and serve as placeholders
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 21:17:57 +0000 (21:17 +0000)]
libpakfire: transaction: Pass the open database down to steps
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 20 Jan 2021 21:03:04 +0000 (21:03 +0000)]
libpakfire: transaction: Open the database when needed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 20:27:49 +0000 (20:27 +0000)]
libpakfire: db: Assume that the private directory already exists
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 20:27:19 +0000 (20:27 +0000)]
libpakfire: Define and always create private dir
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 20:00:24 +0000 (20:00 +0000)]
libpakfire: Skip freeing repositories when pool isn't set
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 19:59:57 +0000 (19:59 +0000)]
libpakfire: Add lmdb database environment
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 18:35:59 +0000 (18:35 +0000)]
libpakfire: Do not allocate more space than we need
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 17:51:52 +0000 (17:51 +0000)]
Depend on lmdb
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 17:12:28 +0000 (17:12 +0000)]
libpakfire: execute: Allow passing the logging callback from Python
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 19 Jan 2021 12:48:43 +0000 (12:48 +0000)]
libpakfire: execute: Reduce logging callback to one function
This function is now being passed the loglevel and can therefore
distinguish between stdout and stderr.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 18 Jan 2021 20:55:32 +0000 (20:55 +0000)]
libpakfire: archive: Only load support for what we use
This reduces the footprint of libpakfire in memory as well as not
opening us up to any vulnerabilities in filters and formats of
libarchive that we do not use.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 17 Jan 2021 18:03:42 +0000 (18:03 +0000)]
libpakfire: execute: Statically allocate the log buffer
This prevents the buffer from growing unboundedly, but limits us to only
process log messages of up to the buffer size.
I have chosen 64k which should be more than enought that we never run
into this situation.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 16 Jan 2021 13:50:58 +0000 (13:50 +0000)]
libpakfire: execute: Make logging functions exchangeable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 16 Jan 2021 13:31:38 +0000 (13:31 +0000)]
tests: execute: Add test with multiple newlines in one read
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>