- 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.
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
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
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
- 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.
- 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
- 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
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
- 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.
- 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
- 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
- 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.