Commit graph

89 commits

Author SHA1 Message Date
def0ec3d05 Fixed package summary output, and cleaned up output for erroneous
transaction handling.
2023-09-07 19:02:02 -04:00
4fb1e8922d Arguments parser with generics 2023-09-06 00:24:22 -04:00
b0ad9f58fa Code cleanup with some refactoring 2023-09-03 02:58:22 -04:00
a865584398 Optimised dependency resolution, with improved inverse dependency resolution 2023-09-03 02:57:27 -04:00
41b65085ed pacwrap 0.2.9
- Fixed wrong function call in filesystem.rs
- Preliminary support for logging with log.rs
- Implemented bitflags crate to simplify transaction parameters.
2023-09-01 00:42:17 -04:00
78fb2a386e Release 0.2.8
- Bug fixes to parallelised filesystem state synchronization
- Improved error handling in multiple components
2023-08-29 01:47:32 -04:00
1a19c780d0 Clean up of try_into match functions, minor error handling improvements,
and removal of unsafe code in termcontrol.
2023-08-29 00:59:25 -04:00
e62c38a508 Renamed linker.rs to filesystem.rs 2023-08-28 13:23:39 -04:00
2101f33a42 Improved error handling, bugfixes for threaded filesystem
synchronization, and transactional state machine tidied up.

- Linker struct was refactored into FilesystemStateSync
- HardLinkDS was refactored into FilesystemState
- unhandled.rs removed
- Memory usage was improved in half during filesystem synchronization by
  incorporating the Rc and Arc<str> type
- Implemented thread block between parallel iterators
  and split up filesystem cleanup into two separate subroutines.
  Parallel, out-of-order file and directory deltion is simply not
  possible.
- Tons of cleanup and refactoring also was done.
2023-08-28 13:01:39 -04:00
f2e91be582 Release 0.2.7 - Maintenance Release
- pacman's gpg keyring is now updated when archlinux-keyring package is
  installed into a base container.
- Some refactoring and cleanup
- Cargo.lock updated and added to version control
- Bug fixed with link synchronisation on specified non-root target
2023-08-22 07:53:19 -04:00
bf7c64a2ce Release 0.2.6
- Threadpools for link synchronization with parllel iterators (13-16%
  improvement in performance)
- Bugfix preventing erroneous error state during package install when
  foreign packages are out of date.
- Cleanup of unused variables in configuration traits
- Pinned serde to 1.0.171 due to binary blob inclusion for serde_derive
- Pinned nix to 0.22.3, as required by os_pipe, to reduce dependency count by 6
- Refactored instance traits for safer, more structured, representation of containers
- Cleanup of bash compatibility interface
- Error handling for file operations during link synchronization
2023-08-20 22:54:15 -04:00
36632c4f57 Release 0.2.5
- Fixed synchronization bug with package installation
- termcontrol's unsafe code replaced with safe code
2023-08-04 19:50:36 -04:00
1bb523739f Update to 0.2.4 2023-07-31 05:55:20 -04:00
d3109de859 Some additional tidying up + fixed up verbiage 2023-07-30 12:22:00 -04:00
a13ba6c59e State machine refactored into new submodule, alongside some tidying up. 2023-07-30 11:10:20 -04:00
6dd3d221c5 Local dependency resolution completed for removal of packages
- Among that effort, there was some reorganisation and restructuring
2023-07-25 23:55:51 -04:00
f54cf73c10 Improved error handling for linker 2023-07-22 11:39:15 -04:00
cab8d48573 Update to 0.2.2
- Front-end UX improvements to synchronization engine
- Bugfixes to linker
- Some clean-up here and there, as well.
2023-07-22 08:18:38 -04:00
7af57f5cea Bump to 0.2.1: Symlink synchronization fixed and completed. 2023-07-19 03:44:04 -04:00
478f56c132 Fixing bug with full switch arguments in execution module. 2023-07-17 11:40:22 -04:00
4aa382e556 Version 0.2 -- Release
It's rough around the edges, but it's fully functional for what it is.

Changes:

- Container package synchronization and linking functionality not dependent upon bash.
- Filesystem synchronization
- pacwrap-sync script has been deprecated and removed.
- Support for package installation from libalpm front-end.
- Experimental support for package removal from libalpm front-end.
- Compatibility layer to bash updated to support obtaining explicit
  packages without requiring a pacman invocation in the container.
2023-07-17 10:44:43 -04:00
81482c20f0 Refactoring and transformation of update routine into a state machine
alongside dependency resolution.

- In Addition target parameterisation to the arguments parser with --target/-t
- Bug fixes to the progress event.
2023-07-14 01:24:29 -04:00
8943e77fed Total progression in dl_event, separate pathway for query, and ignore
function in arguments parser.
2023-07-11 02:32:12 -04:00
68af25e824 Bug fixes and optimisations applied to package and link synchronization
- InstanceCache populate_from() function.
- Functional parity almost reached with pacwrap-bash.
2023-07-09 10:01:27 -04:00
566796d174 Old, crufty arguments parser overhauled. 2023-07-07 12:05:27 -04:00
98b47c416d Preliminary implementation of pacman front-end with link synchronization 2023-07-07 03:08:37 -04:00
9dc737ba04 pacwrap 0.1.3
- pacwrap-bash's migration over to pacwrap's bash
  configuration interface is now mostly complete.
- Rework of the permission module API
- X11 permission module has now morphed into the DISPLAY module with
  Wayland support.
- /usr/bin/kill is no longer spawned to reap processes
- Signal traps implemented alongside term attribute control.
- xdg-dbus-proxy socket block now increments at 500 microseconds.
- Job control for services executed in tandum with bwrap
- Miscellaneous fixes, cleanup, and other reworks.
2023-06-23 22:33:49 -04:00
fbd925f1b0 pacwrap 0.1.2
- Further changes to configuration structure
- Cleaned up execute_container function.
- Print warning when session retainment is enabled for the console/tty.
- ExecutionArgs no longer requires variables for instantiation.
- Multiple paths or env vars are now specifiable under one
  permission/filesystem entry.
- Now passing the arguments --unshare-user and --disable-userns to
  bubblewrap
- bin/pacwrap has been deprecated by pacwrap-rust.
2023-06-18 21:10:14 -04:00
f283e0206c pacwrap 0.1.1
- Block until dbus is active and fail in the event of a time-out.
- Fixed version string
2023-06-18 04:34:01 -04:00
d361820622 Removed pacwrap-exec. Functionality is now provided by pacwrap-rust. 2023-06-18 00:08:50 -04:00
ecab602dab Initial commit of pacwrap-rust. 2023-06-18 00:07:56 -04:00
e855232848 Removal of pacwrap-exec from build script as pacwrap's Rust port now
provides this functionality.
2023-06-18 00:06:17 -04:00
5344e13f58 Compatibility for integration of pacwrap's initial port to Rust. 2023-06-18 00:05:10 -04:00
3c6fc32bab pacwrap 0.9.18
Major overhaul of container execution script; bubblewrap containers are now configurable through pacwrap, alongside support for xdg-dbus-proxy

    pacwrap-sync: Minor cleanup
    pacwrap-common: Changed instance configuration directory from root to instance
    pacwrap-common: Generated pacman.conf now includes LogFile entry pointing to pacwrap's log file.
    pacwrap-utils: Replication script now supports LINK roots.
    pacwrap-utils: Refresh configuration function
    pacwrap-ps: Process groups can now be selected via PID with an argument
    pacwrap-exec: Forked bwrap processes will now be terminated on exit.
    pacwrap-exec: Implemented D-Bus proxy with job control.
    pacwrap-exec: Configuration parsers for building bubblewrap containers.
2023-06-05 09:26:24 -04:00
c9b471c07f pacwrap 0.9.17
Misceallenous clean up, refactoring, fixes, and optimisations.

pacwrap-sync: Caching of difference between revisions of link stores in memory during transaction.
pacwrap-sync: Only diff between two revisions of a link store if there are changes to the filesystem tree.
pacwrap-sync: Further reduction of log verbosity.
pacwrap-sync: Cleaned up script_init(), implemented proper resolution of specified targets.
pacwrap-sync: Removed pacman-mirrorlist from generated package ignore lists.
pacwrap-common: Changed INSTANCE_DB_DIR to INSTANCE_LC_DIR, and changed location to $PACWRAP_RUNTIME_DIR/hlds.
pacwrap-common: Generated pacman.conf no longer includes CheckSpace with the addition of two NoExtract entries
pacwrap-common: Global variables for root arrays.
pacwrap-common: get_foreign_packages() now caches package list arrays
pacwrap-common: check_root() check for existant root filesystems
pacwrap-utils: Introduction of --desktop-entry option to create desktop entries for applications.
pacwrap-utils: Cleaned up output with --list; introduced --disk-depth, --disk-util, and --disk-sum options.
pacwrap-utils: Size column for --list is no longer displayed without --disk-util.
pacwrap-utils: edit_file() function can now edit pacwrap-associated desktop entries.
pacwrap-utils: Additional human-parsable options.
pacwrap-utils: --delete argument refactored to --remove.
pacwrap-utils: --force option to disable and bypass check_active_instances
pacwrap-utils: --show-bytes option to disable size formatting.
pacwrap-utils: --open function, which allows the user to open the container's filesystem directory in their preferred file manager.
pacwrap-man: No longer display summary when --help=topic is specified.
pacwrap-man: Further documentation efforts.
2023-05-29 00:32:09 -04:00
fc33f40c0d pacwrap 0.9.16
pacwrap-sync: Optimised container configurator.
pacwrap-sync: Reduced log verbosity.
pacwrap-ps: Fixed direct invocation.
pacwrap-ps: Replaced UTF-8 characters with proper, dynamic escape sequences.
pacwrap-common: Updated pacman_conf() to conform with the changes announced on 16/05/2023.
pacwrap-common: Fixed typo in pacman_conf()
pacwrap-utils: Cleaned up edit_file() function
pacwrap-utils: Fixed file not found errors when editing non-existant file.
pacwrap-utils: Replaced tab with escape sequence.
2023-05-19 12:55:39 -04:00
36608a02cc pacwrap v0.9.15
pacwrap-sync: Don't ask for confirmation unless arguments are otherwise specified for target.
pacwrap-ps: Full process tree enumeration with parent process traversal.
pacwrap-ps: Forking detection no longer relies on runtime metadata stored in $XDG_RUNTIME_DIR.
pacwrap-ps: Proper instance argument algorithm.
pacwrap-ps: -c, --children which invoked the 'Child PIDs' column has been deprecated and removed.
pacwrap-ps: Process list enumeration output code overhauled. Displays child processes in chronological order.
pacwrap-ps: Formatting is no longer applied to non-summary output.
pacwrap-ps: Shell execution warning to notify user of potential errata.
pacwrap-ps: Instance name parsing algorithm.
pacwrap-ps: Removal of time-based runtime metadata check.
pacwrap-ps: Refactored summary to process_status and --summary to --status.
pacwrap-utils: check_active_instances() to verify it is safe to perform dangerous operations on containers.
pacwrap-exec: Runtime configuration replaced with runtime lock.
pacwrap-create; Fixed package install confirmation.
pacwrap-man: Updated to reflect changes in pacwrap-ps, as well as other miscellaneous changes.
2023-05-17 19:26:08 -04:00
6fb340223e pacwrap v0.9.14
pacwrap-sync: Use PACWRAP_PASSTHROUGH_CMD for passthrough to system package manager.
pacwrap-exec: Concurrenct instance limiter. Set $CONCURRENT_LIMIT in container configuration to limit the amount of concurrently running containers.
pacwrap-common: Query PACWRAP_PASSTHROUGH_CMD environment variable to customise passthrough for alternate package management wrapper.
pacwrap-common: CONCURRENT_LIMIT configuration option
pacwrap-ps: process tree enumeration and saved ~4ms of time per process
pacwrap-ps: --enumerate-tree, and --enumerate-bwrap options to enumerate process tree
pacwrap-ps: --arg and --exec arguments which split up arguments and executable columns into two distinct columns.p
pacwrap-ps: Column formatting rework; --wrap will wrap the arguments column. Default behaviour is now to truncate.
pacwrap-ps: Log only -Pk invocations.
pacwrap-ps: Proper long-form process arguments display.
pacwrap-man: Additions and clarifications to documentation.
pacwrap-sync: Fixed order of root amount conditional.
pacwrap-sync: Added $VERBOSITY for foreign database synchronization to sterrout
pacwrap-common: Reverted idiotic mistake.
pacwrap, pacwrap-create, pacwrap-utils: Human parsable --verbose flag.

Replaced all pipes to cut with KSH93 string truncation
2023-05-16 01:32:08 -04:00
80ac7528c6 pacwrap v0.9.13
pacwrap-ps: Human parsable command switches
pacwrap-ps: Ability to enumerate bubblewrap processes associated with pacwrap
pacwrpa-ps: Abandoned children processes are now enumerated with a warning
pacwrap-man: --help=process documentation
pacwrap-common: Pipe warnings and errors to stderr
2023-05-14 04:27:38 -04:00
7ee1462085 pacwrap v0.9.12
pacwrap-sync: -g and -p options to manually invoke container configuration
pacwrap-sync: Setting the environment variable PACWRAP_PASSTHROUGH will passthrough pacwrap-sync parameters to 'sudo pacman' at the end of transaction.
pacwrap-sync: Renamed --explicit to --explicit-foreign to diambiguate and differentiate from pacwrap --explicit
pacwrap: --explicit to passthrough -S, -Q, and -R to pacwrap-exec
pacwrap-exec: -p/--pacman option to execute pacman in specificed instance with stated arguments
pacwrap-common: PACWRAP_PACCACHE_ARGUMENTS variable. It can be set in the environment to override.
pacwrap-man: Updated documentation to reflect current feature sets.
pacwrap-man: Fixed distro_check() to not output garbage when being packaged.

Among other miscallenous fixes and cleanup.
2023-05-11 21:54:17 -04:00
ee803d01e0 pacwrap v0.9.11
- Miscellaneous cleanup and fixes
- Interpretation of command line switches has been fixed

pacwrap-common: Additional runtime dependency conditionals
pacwrap-common: Universally defined EXEC_SCRIPT variable
pacwrap-common: get_foreign_packages()
pacwrap-common: Fixed typo
pacwrap-sync: Rudimentary argument validation
pacwrap-sync: Forcibly sync explicit packages from foreign databases with --explicit switch
pacwrap-sync: Fixed validation with manual container configuration
pacwrap-utils: Defined human parsable command switches
pacwrap-ps: Defined --kill switch
2023-05-10 23:03:23 -04:00
828c939797 pacwrap v0.9.10
pacwrap: Migrated from process forking to using the bash source command
pacwrap-common: Conditional to only allow one instantiation of this script
pacwrap-common: log_invalid_arguments() and distro_check()
pacwrap-man: Split from pacwrap into its own script
pacwrap-man: Markdown formatting option with man page support
makefile: install/remove pacwrap-man

And other misceallaneous cleanup and fixes.
Code minification resulted in over 100 lines of code shaved off.
2023-05-10 19:31:58 -04:00
2ec08868b5 pacwrap v0.9.9
pacwrap-ps: Initial commit
pacwrap-ps: Process status list and parsable data output for external shell scripting
pacwrap-ps: Kill process function
pacwrap-exec: runtime metadata written to $XDG_RUNTIME_DIR/.pacwrap/PID
pacwrap-common: XDG runtime variables
pacwrap-common: UID conditional in runtime_check()
pacwrap-utils: Cleaned up column invocation
pacwrap-create: Some miscellaenous cleanup
pacwrap-create: Cleaned up finalise() and introduced sync_base_packages() function
pacwrap-sync: Fixed up and updated check_root function and associated calls
makefile: install & remove pacwrap-ps script
2023-05-08 06:49:15 -04:00
8fc54b8da6 pacwrap-sync: Fixed critical bug in invoke_generate_cache()
DEP/BASE updated -> structures linked -> DEP updated -> link cache generated
                                                                  ^
Second invocation of invoke_generate_cache would result in previous changes being truncated
This should be fixed with an addition to a conditional statement in invoke_generate_cache()

Additional unrelated changes:

pacwrap-sync: Merged two for loops in configure_containers
2023-05-05 00:37:45 -04:00
dfc4508912 Array-to-string fix in container log_to_file() call 2023-04-25 08:12:51 -04:00
bf3c0dd903 Few miscellaneous changes and housekeeping
- pacwrap-sync: Reduced verbosity of configuration logging
- pacwrap-sync: Implemented error checks in configuration functions
- pacwrap-common: Localzation helper function localized_text()
2023-04-25 07:57:02 -04:00
8d7d4d1443 Reverted test parameter 2023-04-25 07:03:34 -04:00
754085cb5b Minor bugfixes, cleanup, and update to pacwrap-create
- pacwrap-create: Only check for updated tarball when current year.month mismatches
  with root.x86_64/version in the tarball
- pacwrap-create: Verify mirror returns HTTP 200
- pacwrap-sync: Fixed log formatting bug with check_root()
- pacwrap-sync: Cleaned up log output and fixed ordering
- makefile: Commited bin/pacwrap-common
2023-04-25 02:29:13 -04:00
a16f74191d pacwrap v0.9.8
- Heavy refactor with code cleanup
- Completed common logging infrastructure
- Distribution agnosticism attained!
- pacwrap-common: Initial commit
- pacwrap-common: Dependency check
- pacwrap-utils: Replication functionality
- pacwrap-sync: Increased resolution of linker progress
- pacwrap-sync: Container configuration with explicit package array
- pacwrap-sync: Improved UX, catching erronous exit codes from pacman
- pacwrap-create: Refactor and cleanup
- pacwrap-create: Replaced pacstrap with tarball installer
2023-04-23 06:41:49 -04:00
72e88098c3 Pacwrap v0.9.7 2023-04-11 19:59:50 -04:00