]>
git.ipfire.org Git - pakfire.git/log
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>
Michael Tremer [Sat, 16 Jan 2021 13:28:52 +0000 (13:28 +0000)]
libpakfire: execute: Read all output from commands and log it
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 16 Jan 2021 11:16:01 +0000 (11:16 +0000)]
libpakfire: execute: Rename LOG_OUTPUT to INTERACTIVE
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Jan 2021 22:33:55 +0000 (22:33 +0000)]
libpakfire: execute: Read content from stdout/stderr and sent it to the logger
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Jan 2021 21:17:03 +0000 (21:17 +0000)]
libpakfire: execute: Create fds to read output in parent process
This will be used to log any output of the executed command in the
parent process.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Jan 2021 13:45:32 +0000 (13:45 +0000)]
libpakfire: execute: Call chroot() and personality() only when necessary
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Jan 2021 13:36:09 +0000 (13:36 +0000)]
tests: python: Check return codes of pakfire_execute()
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Jan 2021 13:35:44 +0000 (13:35 +0000)]
libpakfire: execute: Tidy up return codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Jan 2021 13:14:27 +0000 (13:14 +0000)]
libpakfire: execute: Use clone() instead of fork()
This avoids copying the whole process (which could be quite large) and
spawn the new process into a new namespace straight away without needing
to call unshare(2) later.
This should be a little bit faster when executing many commands.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Jan 2021 12:59:06 +0000 (12:59 +0000)]
libpakfire: execute: Bring back execute environment
This allows us to only pass one argument to pakfire_execute_fork
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 23:47:35 +0000 (23:47 +0000)]
builder: Drop private network setting
The build chroot will never have network enabled, but the shell does.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 23:46:23 +0000 (23:46 +0000)]
Drop old unshare code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 23:43:38 +0000 (23:43 +0000)]
libpakfire: execute: Unshare environment when entering chroot
The shell has networking enabled automatically.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 23:08:50 +0000 (23:08 +0000)]
libpakfire: Add pakfire_execute_command
This is a convenience function when only a simple command without any
arguments is called and it saves us from allocating argv in the calling
function.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 23:04:18 +0000 (23:04 +0000)]
libpakfire: execute: Cast perso to unsigned int for printing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 23:03:05 +0000 (23:03 +0000)]
libpakfire: Re-indent execute.c
This file was accidentially indented using both spaces and tabs.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 23:00:17 +0000 (23:00 +0000)]
libpakfire: execute: Cast argv to non-const as late as possible
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 22:58:54 +0000 (22:58 +0000)]
builder: Use pakfire_execute to run shell
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 22:58:01 +0000 (22:58 +0000)]
libpakfire: execute: Remove environment and accept arguments as they are passed to execve
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 22:55:39 +0000 (22:55 +0000)]
python: Increase i when copying environment
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 19:39:19 +0000 (19:39 +0000)]
libpakfire: Increase pool debug level when compiled with SOLVER_DEBUG
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 19:37:51 +0000 (19:37 +0000)]
libpakfire: Set pool to RPM format
On Debian and other non-RPM distributions the default format might be
something different which reconfigures evr comparison and the name of
the "all" architecture.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 16:34:33 +0000 (16:34 +0000)]
Make "pakfire provides" work
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 14:19:47 +0000 (14:19 +0000)]
pakfire-builder: shell: Add --install argument
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 14:10:06 +0000 (14:10 +0000)]
libpakfire: Pass Pakfire to pakfire_create as argument
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 13:01:12 +0000 (13:01 +0000)]
Update translations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 12:59:47 +0000 (12:59 +0000)]
tests: Give better names to assertions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 12:44:46 +0000 (12:44 +0000)]
tests: Remove all typedefs and use structs instead
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Jan 2021 12:40:01 +0000 (12:40 +0000)]
tests: Make all tests static
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>