Commit graph

262 commits

Author SHA1 Message Date
46807df79f Process utility with CLI table generator 2024-01-29 02:23:08 -05:00
7b69deccf0 Typo in manual 2024-01-29 02:23:08 -05:00
210f3b9b26 Re-ordered InstanceRuntime struct 2024-01-29 02:23:08 -05:00
cfa96f4858 Release 0.6.4 - Fixes to three regressions
- Filesystem synchronization module now rewinds buffer after initial
  header check
- Logical error in link deletion fixed. Orphaned symbolic links now get
  deleted.
- During the staging state of a transaction, the ordering of
  archlinux-keyring in the queue could fail to trigger a refresh of the
  master keyring.
2024-01-29 02:22:28 -05:00
1913200df6 Fixed two regressions in the filesystem module and one in the stage
module
2024-01-29 02:07:13 -05:00
72ed4d8720 Release 0.6.3 -- fixed progress bar 2024-01-25 01:03:24 -05:00
bcfa7e5709 Progress event supporting concurrency 2024-01-25 01:03:09 -05:00
a7cf9e9be1 Release 0.6.2
- Bugfix applied for aggregated package filtering
2024-01-22 11:31:31 -05:00
f5bbb0827f Bugfix as a partial revision to b84f90d17d 2024-01-22 09:48:29 -05:00
0e19e7da8a Release 0.6.1 -- Minor bug fixes
- Download progress parameterisation fixed
- Build scripts now create missing directories
- Cargo.lock updated
2024-01-22 00:17:30 -05:00
c3534cae7f Configuration bug patched, with unnecessary static allocation removed. 2024-01-21 23:40:03 -05:00
8998fd4839 Applied 9b495390d2 2024-01-14 21:40:15 -05:00
ff70ac644b Release 0.6.0
Highlights:

- Container configuration file format changes from SCREAMING_SNAKE to
  snake_case, permissions tag renamed to module, and container types
  are now: Symbolic, Base, Slice, and Aggregate.
- to_root and to_home modules updated to provide a more straightforward
  way to declare mount paths.
- seccomp bpf filters are now compiled and applied to containers by
  default at runtime.
  This also applies to transaction and fakeroot environments.
- Integration of global configuration format
- Now able to initialize in a fresh home directory without intervention
- Source code is now formatted by rustfmt
2024-01-14 21:04:46 -05:00
9b495390d2 Structural simplification, rustfmt configuration applied, and snake_case
for declared modules within tag vars

- For the sake of coherency, there are now four types of containers:
  Symbolic, Base, Slice, and Aggregate. These names better reflect the
  associated container types.
- Global configuration template is now written to disk prior to
  instantiation
- Inclusion of .rustfmt.toml with formatting applied to source files
- Breaking format change: SCREAMING_CASE has been replaced with
  snake_case for tag variables
- Simplified data structure in cache module
- InstanceCache type within the cache module replaces 'registered_base',
  'registered_dep', and 'registered_root', with 'filter'.
- Cleaned up argument parsing match statements in the front-end modules.
- Specifying dependencies with a comma deliniation is now supported
- Manual updated to reflect argument changes.
- query module updated to utilise internal APIs
- Some minor improvements to error handling.
- Removed redundant calls to --clear-env with bubblewrap.
- Scripting no longer outputs ANSI charcodes to unsupported terminals
2024-01-14 20:51:57 -05:00
3b5951cea6 GPG keystore initialization, reimplemented progress event modules,
additions to global configuration module, and bug fixes.

- Progress verbosity option for progress indicators
- Logging verbsoity option for future implementation of logging
  infrastructure
- Small addendum to cache API, with get_instance providing a Result enum
- Validate the program is running under a non-privileged user upon
  front-end invocation
2024-01-10 17:31:43 -05:00
fa9de91330 Implemented foreign package removal with --force-foreign and some fixes.
- Front-end remove module now checks if target instance exists
- BASE type containers will no longer sync foreign packages, even if
  dependency metadata is present.
2024-01-07 21:44:22 -05:00
8f99fd468e Implemented UID&GID check to prevent privileged execution. 2024-01-07 02:44:55 -05:00
04a267c6d0 Panic if build is attempted on unsupported operating environment 2024-01-07 02:37:59 -05:00
29ca143ca4 Implemented global configuration, preliminary package ignore list, with
further integration of error-handling framework.

- Cleaned up imports and other miscellaenous tidying up.
2024-01-07 02:32:03 -05:00
6dc266edbd Removal of debugging code 2024-01-04 20:57:20 -05:00
c9cb0511e7 Typo in function name 2024-01-03 19:39:17 -05:00
7ed366f809 Inclusion of GPL headers to declare copyright and licensing
- LICENSE has been included since the incarnation of this project,
  therefore nothing changes except providing prominent notice.
- Cleaned up distribution scripting, with inclusion of updated headers
2024-01-03 18:21:04 -05:00
7cadcaba6d Seccomp BPF filtering module with libseccomp bindings and fixes
- Fixed bug with LANG constant purposefully introduced to test error
  handling
- Integrated termcontrol with new error handling model
- Moved bwrap_json function to pacwrap-core library
2024-01-03 18:04:24 -05:00
be8a7bfcb2 Error handling framework integrated into core library and other
miscellaneous changes

- Enum encapsulation for Error types within the scope of this crate no
  longer occurs.
- err!, error!, and error_impl!, macros to conceal boilerplate.
- Custom PATH variables are now validated and passed through to
  containers
- Environmental constants refactored and moved to the constants module
- Error type implemented for agent
- ConfigNotFound type implemented in ConfigError
2023-12-31 02:13:07 -05:00
9f85d3dcee Desugaring of calls to dependencies() and explicit_packages() 2023-12-28 17:40:40 -05:00
8988986e91 Pre-emptive update to copyright year and clarification of license verbiage 2023-12-27 02:50:24 -05:00
55a1c8ad0d Release 0.5.3 2023-12-27 02:08:11 -05:00
da113e8824 Some bug fixes, and some tidying up.
- Since pacwrap-dist is now being executed within a containerised
  environment, when called upon by the associated libalpm hook, it is no
  longer at liberty to obtain a valid GID and UID with libfakechroot
  preloaded in memory. Thus the introduction of a set of proxy variables
  is required to pass a valid UID and GID to distribution scripting.
- Environment variables have been moved to the constant module out of
  the display permissions module and exec utils module.
- Utilty functions in the utils module tidied up.
2023-12-27 02:07:47 -05:00
dc7363d02e Release 0.5.2 - Distribution packaging changes
- To help establish reproducible builds, the expectation is that every
  packaged artefact is to be determinist. Therefore repose is now
  invoked with pacwrap-dist.install via the post_install hook
- SOURCE_DATE_EPOCH is now set when building distribution packages
- Fixed libalpm hook blacklist in pacwrap-base-dist
2023-12-26 18:55:22 -05:00
7cea3be485 Release 0.5.1
- Fixed bug with the instantiation of container configuration predicated
  by an order mismatch with variables passed into Instance::new().
2023-12-24 21:14:41 -05:00
6740ed3b93 Release 0.5.0 2023-12-24 00:33:39 -05:00
9a4c3da814 Decluttered and splintered build scripts, some organization and readmes 2023-12-23 23:10:55 -05:00
b84f90d17d Ciborium replaced with bincode, and pacwrap-agent attained UX parity
- Refactored libalpm events into their own module
 - Agent parameters are acquired via a temporary file attached to the
   container (Still TODO: Provide a shared communication channel)
 - filesystem state files now contain magic values with file header
   verification
 - Miscellaneous tidy up work
2023-12-23 23:00:31 -05:00
f3b2b3861d Redundant 2023-12-23 20:00:47 -05:00
79ed7532f7 Formatting 2023-12-22 00:44:52 -05:00
d5977e43b9 Type coherence and API simplification 2023-12-21 01:25:20 -05:00
3019d0fa8a Improvements to creation routine and API delegation
- Handles are now instantiated and provided by the cache
- Improved error handling, and some bug fixes
2023-12-20 22:15:29 -05:00
e2524a69d1 Tidying up 2023-12-19 04:35:34 -05:00
2127a1dec5 Removed allow unused variables 2023-12-19 04:27:57 -05:00
4a3094bbc6 Properly trap long positional values 2023-12-13 18:13:06 -05:00
a161d15db8 Cleanup of config module
- Cleaned up display module in permission module
- Tided up imports in filesystem, dbus, and config module
2023-12-11 15:59:06 -05:00
30c743d091 Fixed target arg in remove module 2023-12-11 15:49:31 -05:00
64a4edc94c Needed cleanup of redundant code in execution routine
- serde_json removed and replaced with serde_yaml for bwrap json
- Some further refactoring of error enums
2023-12-09 15:25:39 -05:00
fe5aa4741b Refactored function name from parse to populate in arguments module 2023-12-01 20:28:34 -05:00
5826e619b1 Indentation cleanup 2023-12-01 17:35:15 -05:00
95f088d773 Changed split(..) to splitn(..,..) to ensure value is split only once 2023-12-01 17:31:19 -05:00
110305bc83 Updated README.md with preliminary logo.svg 2023-12-01 13:36:13 -05:00
d41269c806 DEV permission now accepts a plurality of devices 2023-11-29 17:45:04 -05:00
8b588c4ee8 Updated creation code with new --dep parameter.
- New --dep parameter to be used in place of --target to specify
container dependencies to configure a container on creation, allowing
for multiple containers to be created in one invocation.
- Bug fix applied to creation of base containers
- pacwrap-utils updated to be compatible with the proceeding changes.
2023-11-29 14:45:42 -05:00
728185d960 Improved error handling and further type optimisation
- Moved config registration to core library
- Improved trait structure for filesystem configuration
- constants module cleaned up
2023-11-28 13:20:51 -05:00