Note: This is a test release intended to ensure nothing breaks when the
associated crates are published to crates.io.
- Update to version '0.8.7-pre'.
- Testing new `Cargo.toml` workspace manifest, of which brings manifest
keys in all three pacwrap crates together. Most package keys now, with
the exception of crate-specific metadata, are now located in the
workspace manifest.
- Update common.sh to accomodate this change.
- Update README.md to again use relative paths.
- Initialize gnupg database during container composition
- Handle exit code 1 of agent as a general failure and changed resulting
verbiage to 'general agent fault'. Shifted error codes up by one.
- Check if FD 1 is a terminal for colour detection in pacwrap-key
- Documentation for desktop utils command module
- Split authorship and license sections in manual
- Cleaned up and reformatted some parameters in manual output
- Don't include symbolic containers with queue in filesystem module
- Tidy-up refactor of a few different functions across the library
and inclusion of dbus module docs
- Updated pacwrap.1 manpage and manual.md
- Dbus module documentation enumerating the available modules to
configure xdg-dbus-proxy in containers
- Eliminated key.sh and replaced it with package(), a generic bash
function for packaging version-aware resources and scripting
- In order to make use of standard git tarballs, manpage generation is
now invoked by hand with resulting manpages comitted to git, and then
version information is added with dist scripting.
- Some refactoring and tidying up of manual formatting
- Present a verbose string only for development or git builds
- Obtain build date from modification time. This will ensure a
deterministic build timestamp is still available for tarball-derived
builds.
- Inclusion of pacwrap-key, a fork of pacman-key, adapted for use with
pacwrap and associated containers. CLI is now reminiscent of pacwrap's
own native CLI for clean integration.
- Removed problematic /etc/bash.bashrc fakeroot mount supplanted by
schema update to /etc/bash.bashrc
- Inclusion of pacwrap-key with container schema
- Build and integration scripting cleaned up with improved error handling
- Handle rewind I/O error properly by returning blank state in
filesystem.rs module
- Upon initialization of container, setup default timezone.
- Corrected path to new configuration location in pacwrap-common script
- Updated definition for --force-foreign in manual.rs module
- Patched erroneously unbracketed conditional in proc.rs module
- Changed DSL storage location from ~/.config/pacwrap/instance/ to
~/.config/pacwrap/container/
- In the progress.rs module, discard held reference once progress
is complete.
- Package holding implemented
- Logical errors fixed in foreign preparation state
- Version URLs updated in manual.rs
- proc module now has --all option for process lists
- Switched to IEC units for transaction summaries
- Display bug fixed with basic transaction summary
- Removed symbolic container creation from pacwrap-utils script
- Seperation of concerns with warnings in exec module
- Getting started documentation for new users
- Refactored ExecutionArgs struct in args module
- Addition of a new manual: docs/config.md
- Updated docs/manual.md to reflect present help manual
- Help documents can be accessed with command nouns.
- Comment out multilib repo in default repositories.conf file
- Remove pacwrap-base-dist from default pacwrap.yml hold_pkgs array
- Default configuration files included can be changed at build time with
PACWRAP_DIST_CONF and PACWRAP_DIST_REPO_CONF environment variables.
- Improvements to the runtime environment allowing for shell access in
filesystem slices.
- Command-line verbs to improve UX accessibility
- Bloat moved out of error module
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
- 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
- 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
configuration
- makepkg.conf for building dist-package in build chroot
- runtime.sh to package a lightweight runtime image for pacwrap-agent
- Link to flatpak-xdg-utils binaries to /usr/local/bin in
pacwrap-base-dist package.
- go-md2man is no longer a required build-time dependency for manpage
generation
- Improved input validation for exec module
- Improved target handle validation and error handling.
Miscellaneous changes:
- /store/ renamed to /state/ in data directory for coherent terminology
- Updated filesystem sync to not warn about directory deletion during async queue