Commit graph

262 commits

Author SHA1 Message Date
adf06cae7c Updated manuals to be current with 91b5c79c5a 2024-03-30 21:55:28 -04:00
91b5c79c5a Further documentation and overhaul of the help menu CLI
- Shields.io badges added to README.md with clarification on
  functionality present in pacwrap.
- Stipulate the requirement for libalpm 14 or greater in README.md
- Module documentation written in markdown located in /docs/ for
  filesystems and permissions modules
- Help CLI refactored with format improvements and fixes.
- Lock assert calls for container composition, creation, and remote sync
- Added value opperand for process module in main frontend module
2024-03-30 21:47:20 -04:00
7d0942496e Removed stray unlock callback from aggregator 2024-03-29 23:40:53 -04:00
b97655461f Aggregator module no longer responsible for unlock callback
- Moved Lock.unlock() callback to front-end callers as aggregator module
  no longer is responsible for this invocation.
- Download fail state added to download event module
2024-03-29 23:18:33 -04:00
ae6c935640 Fixed summary event condition for cached packages and whitespace bug 2024-03-28 16:19:48 -04:00
a2fc165f46 Progress ticker for transaction aggregation
- Verbosity of the output has been greatly reduced during aggregated
  transactions. Implemented is a progress ticker which serves as a
  header for when a container requires to be operated upon.
- PACWRAP_VERBOSE=[0|1] or TERM=dumb environment variables can be used
  to otherwise toggle the old, verbose printout.
- signal_trap function moved to utils module.
2024-03-27 21:16:35 -04:00
6957adae1d Pin serde_yaml to 0.9.33 and update Cargo.lock
- Due to dtolnay's decision to not continue maintenance of serde_yaml,
  at present serde_yaml will be pinned to 0.9.33 until a better solution
  is available. Vendoring is not out of the question, but presently is a
  premature thing to do.
- Removal of Clone derive attribute in lock module and some minor
  tidy up elsewhere.
2024-03-26 15:29:56 -04:00
0aa14b23bc Lock file to ensure no concurrent operations on container store
- lock module provides a lock file facility via the Lock impl to ensure
  conflicts do not occur with concurrent operations on the same pacwrap
  data directory and container store.
- pacwrap-signal thread spawned during aggregate transactions to provide
  graceful, forced signal trapping. Requires three iterations of a normal
  signal to forcibly quit the program.
- metadata getter and flags setter functions moved out of TransactionHandle
  into the TransactionMetadata impl
2024-03-24 20:55:09 -04:00
dd5d011bfa Signal trapping at safe break points during transactions
- Graceful signal handling for transaction aggregation and filesystem
  synchronization.
- Store filesystem state data in .new file and merge after completion
- Altered set_flags function signature to borrow TransFlag
- Qualify error type before attempting to extract error data from alpm
  after failed transaction. Alpm.rs can trigger a segfault if the error
  type is unhandled or the data is otherwise not present.
2024-03-21 23:27:04 -04:00
bcfda682c2 Addition of new type in summary module, some tidy up, fix of small errata
- Filter non-existant roots with obtain_base_handle in cache module
- Inclusion of new TableColumns type called OldNewNet
- Shell command module is now correctly qualified by qualify_process
- Removal of unnecessary clone derive for event structs
- Idiomatic whitespace generation
- Missing space in string for gpg key prompt
2024-03-21 20:38:55 -04:00
e60aafe2f8 Updated Cargo.lock 2024-03-20 16:42:18 -04:00
670bb2b2c7 Do not obtain state for symbolic containers 2024-03-20 16:30:49 -04:00
777906ae71 Release transaction on error 2024-03-19 03:36:34 -04:00
1e56dcec11 Bump to biflags 2.4.2 2024-03-16 18:51:04 -04:00
3e341d7ca8 Fixed argument validation during creation with sync module 2024-03-15 18:18:19 -04:00
b621c34cd0 Alpm.rs 3.0.5 compatibility 2024-03-15 18:07:54 -04:00
4c76ab0aec Symbolic containers
- Adjusted list sorting and fixed bug with column alignment
- Creation of symbolic containers exposed at frontend via utilities
  subcommand module via --utils --symbolic.
- Symbolic container filter removed from register function in cache
  module
- Container API adjusted to allow symbolic container composition
2024-03-13 15:35:51 -04:00
a7d7a55d85 Post-deserialize validation for container dependencies 2024-03-13 09:48:15 -04:00
aeb8941060 Addition of --delete/-m to remove module, fixed arg validation in utils 2024-03-11 15:49:43 -04:00
7ef03e38dc Frontend sync module overhaul, minor refactoring and cleanup
- Frontend sync module has been overhauled and cleaned up with
  additional argument bounds checks.
- Adjusted validation control flow during container creation with
  sync or compose modules to ensure containers aren't prematurely
  instantiated without valid environmental and operational parameters.
- Moved and integrated a genericised instantiate_container function
  into the sync module in the core library
- Configuration error message altered to include path instead of
  container name.
2024-03-11 01:29:36 -04:00
db4097bd73 Updated feature matrix in README.md 2024-03-10 00:22:05 -05:00
264e9cec1f Few bug fixes, minor improvements and cleanup.
- Container creation in sync module now only syncs targets as required
- More robust validation for --target parameters
- Targets marked for reinitialization can now accept a configuration
  from a file if specified.
- Cleaned up process module
- Prompt module no longer emboldens listed targets for confirmation
2024-03-10 00:14:26 -05:00
68594a28e7 Cargo.lock refreshed 2024-03-10 00:14:26 -05:00
5da6dc5ba2 128 mebibyte input limit for filesystem state data
- Bug fix applied to transaction filter
- Miscellaneous cleanup in filesystem module
2024-03-10 00:14:21 -05:00
03ce77c235 Container composition, granularity for aggregation targets, remainder of
prototype removed

- Remainder of the bash prototype has been deprecated and removed along
  with the bash compatibility layer
- Container composition which allows users to instantiate and reinitialize
  containers from an existing configuration or specified configuration file.
- Utilities ported such as desktop entry creation, container list, and
  container deletion.
- Packages can be removed from multiple separate targets as specified
- Multiple targets can now be aggregated with --target-only
- PACWRAP_ROOT environment variable for overriding the container root
  directory for a given container's runtime environment
2024-03-07 17:37:42 -05:00
c7c764b6e5 Tidying up, some bugfixes, and refactoring
- Fixed double prompting of held or ignored packages
- Refactored constants and utils modules
2024-02-27 19:04:19 -05:00
85bec1ed34 Resolved minor oversight with filesystem state refresh
- Only cache present filesystem state in memory during only during
  synchronization, not during a state refresh.
- Explicitly drain queue after completion of refresh and synchronization
2024-02-23 19:42:48 -05:00
23d87b1581 Deprecated code removed, and pacwrap-key argument validation fix 2024-02-23 02:16:34 -05:00
2cee88a8b9 Update to Cargo.lock 2024-02-23 01:49:28 -05:00
20ff89fe6b Filesystem state files are now compressed with zstandard compression
- To ensure a smooth transition between formats, now or in future,
  filesystem state data will be refreshed if it's isn't complaint
  with the presently supported format.
- Bump to version 2 of the container filesystem state format
- FIlesystem state files are now checksummed with SHA256 for fast
  verification of internal data integrity.
- Foreign synchronization will now occur regardless of whether not the
  upstream container was actually updated in the proceeding transaction.
- Cleaned up keyring check in stage module
- Inclusion of ErrorGeneric trait to further extend the utililty of the
  error module. Functions provided therein provide a way to tidy up
  boilerplate error code.
- bytebuffer module for ergonomic parsing of byte data structures
- Addition of missing copyright headers
2024-02-23 01:41:49 -05:00
cf65c87179 Updated to correspond with changes made with commit 2a48da2773 2024-02-18 03:36:25 -05:00
7eb484db58 Switch git log timestamp back to commit date from author date 2024-02-18 03:22:37 -05:00
2a48da2773 No longer invoke pacwrap binary to generate manpages upon packaging
- 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.
2024-02-18 02:44:22 -05:00
bbd695dfee Changes to version metadata acquisition, manual updates, and SECURITY.md 2024-02-17 04:26:41 -05:00
b2ebfe7269 Inclusion of pacwrap-key, some container schema fixes
- 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
2024-02-16 18:17:35 -05:00
62816ddef8 Net column now displays negative values, spacing adjusted for IEC units 2024-02-16 16:33:37 -05:00
96b589a55d Release 0.7.2 -- Bug fix release 2024-02-13 16:11:23 -05:00
fd45a75584 Args parsing consistency as well as scope fix
- Target acquisition logic is now consistent between sync and remove
  module
- Positional scope corrected for package argument acquisition
2024-02-13 16:00:20 -05:00
82a3159b7b Fixed incorrect directory initialization path 2024-02-13 15:47:50 -05:00
32f09e5ba0 Release 0.7.1 - Minor fixes and additions with revised documentation 2024-02-12 23:30:15 -05:00
8e5d9538f4 Updated docs/README.md 2024-02-12 23:28:01 -05:00
deb0000fb0 Some errata fixed, typos, and path updated in bin/pacwrap-common
- 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
2024-02-12 23:26:58 -05:00
7d9fcfaf70 Workaround for cargo publish 2024-02-12 03:18:31 -05:00
6ad47202ff Release 0.7.0 -- First Public Release Build 2024-02-12 00:27:41 -05:00
482abd7f9e Held packages, some last-minute errata fixed
- 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
2024-02-12 00:27:41 -05:00
9a10de46d7 Documentation, tidy up, and some errata fixed
- 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.
2024-02-12 00:27:36 -05:00
a63871a382 Logging verbosity, manual updates, and some refactoring 2024-02-12 00:07:20 -05:00
02bcde6bbe Container filesystem schema replacing local repository 2024-02-12 00:07:20 -05:00
e0f5386b88 Executable front-end refactor, a few bug fixes, and UX improvements
- 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
2024-02-12 00:06:52 -05:00
cb276ccb32 Summary event module for transaction preview and commit
- Table module updated with insert_newline, and new_line builder function
- ColumnAttribute enum introduced for alignment and truncation options.
- SummaryKind tied into global configuration
- Process table now aligns PID to the right.
2024-01-29 02:23:08 -05:00