Commit graph

52 commits

Author SHA1 Message Date
Till Wegmueller
77f02fdfbd
Add depend module for file-level dependency generation
- Introduced `depend.rs` to handle dependency generation for ELF files, scripts, Python modules, and SMF manifests.
- Implemented file classification and analysis logic with configurable bypass rules and runpath handling.
- Added utility functions to resolve file dependencies into manifest actions using a provided repository.
- Updated `Cargo.toml` with `goblin` dependency for ELF processing.
- Enhanced codebase with default runpath insertion, dynamic token expansion, and Python module import detection.
- Included `pkgdepend` documentation for dependency resolution overview.
2025-08-30 18:35:41 +02:00
Till Wegmueller
c8a6c8c781
Introduce pkgtree: CLI tool for analyzing IPS package dependency trees
- Added `pkgtree` with functionalities to analyze dependency trees and detect cycles in IPS package images.
- Implemented CLI options for filtering by publisher, package substring, and output format (Tree/JSON).
- Integrated cycle detection and suggestions for resolving dependency cycles.
- Added testing support for cycle detection.
- Updated workspace dependencies and added `pkgtree` to the workspace configuration.
2025-08-26 12:38:36 +02:00
Till Wegmueller
77147999b3
Add incorporation lock support and update dependencies across the project
- Implemented incorporation lock functionality for packages, including pre-checks, addition, and retrieval methods.
- Enhanced package installation logic to handle incorporation constraints.
- Updated dependency versions in `Cargo.toml` and `Cargo.lock`, aligning with latest compatible releases.
- Introduced new tests to verify incorporation lock behavior, including scenarios with and without locks.
- Refactored code for improved readability and added error handling improvements.
- Fixed minor typos and inconsistencies in comments and log messages.
2025-08-19 14:30:55 +02:00
Till Wegmueller
28a18c088a
implement dependency solver based on resolvo 2025-08-13 22:09:19 +02:00
Till Wegmueller
2777f153c9
Introduce progress reporting infrastructure and error management refinements
- Add `ProgressReporter` trait with `start`, `update`, and `finish` methods for customizable progress tracking during operations.
- Implement `ProgressInfo` struct for detailed progress state reporting, including operation, progress, and context information.
- Create a no-op implementation `NoopProgressReporter` for cases where progress reporting is not needed.
- Enhance `pkg6` with structured error handling using `Pkg6Error` and new diagnostic variants for I/O, JSON, FMRI, and logging errors.
- Update `Image` functionality to leverage progress reporting during catalog downloads and include robust publisher management.
- Introduce `TestProgressReporter` for unit tests to validate progress reporting integration.
2025-08-03 14:28:36 +02:00
Till Wegmueller
dfe8ac1305
Add support for backward compatibility with legacy repository files
- Introduced creation of `pub.p5i` files for publishers to maintain compatibility with older repository formats.
- Implemented saving repository configuration in legacy INI format (`pkg5.repository`).
- Updated tests to validate the generation and structure of legacy files.
- Added new dependencies (`rust-ini`) and updated `Cargo.toml` and `Cargo.lock` accordingly.
2025-08-02 13:17:49 +02:00
Till Wegmueller
845ffec13b
Switch to CBOR for metadata serialization and simplify key management
- Replace `bincode` serialization with `CBOR` for obsoleted package metadata to improve interoperability and error messaging.
- Simplify key handling by directly using FMRI strings as keys, removing the need for intermediate serialization steps.
- Update deserialization, error handling, and logging to align with `CBOR` serialization.
- Add `serde_cbor` as a dependency, updating `Cargo.toml` and `Cargo.lock` accordingly.
- Refactor `ObsoletedPackageKey` to include conversion between FMRI strings and data components.
2025-07-29 23:14:47 +02:00
Till Wegmueller
5b4b719b42
Introduce cleanup functionality for obsoleted packages with TTL support
- Add methods to find and clean up obsoleted packages older than a specified TTL (`find_obsoleted_packages_older_than_ttl` and `cleanup_obsoleted_packages_older_than_ttl`) in `libips`.
- Implement a new `CleanupObsoleted` command in `pkg6repo` to handle cleanup operations.
- Update workspace `Cargo.toml` files with unified attributes for better consistency.
- Adjust dependencies (`libips` version patterns, `thiserror` updates) and enhance metadata management for obsoleted packages.
- Enhance repository operations by adding batch processing and robust logging during cleanup.
2025-07-29 19:08:18 +02:00
Till Wegmueller
9b2f74c5c1
Introduce obsoleted package management system in IPS
- Add `obsoleted.rs` module to handle storing, metadata management, and operations for obsoleted packages.
- Implement commands for marking, listing, searching, restoring, exporting, and importing obsoleted packages (`pkg6repo`).
- Enhance `RepositoryError` with `From` implementations for various error types to manage database and serialization-related errors.
- Introduce reusable data structures for obsoleted package metadata and export representation.
- Update `Cargo.toml` and `Cargo.lock` to include new dependencies (`redb`, `bincode`, etc.).
- Document obsoleted package workflow and integration details in `doc/obsoleted_packages.md` for contributors.
- Refactor repository internals to integrate obsoleted package support without disrupting existing workflow.
- Add robust error handling, logging, and pagination for enhanced usability and scalability.
2025-07-29 16:16:12 +02:00
Till Wegmueller
81eb4a7447
Use walkdir for efficient recursive traversal in FileBackend::build_search_index
- Replace manual recursive directory scanning with `walkdir` for simplified and efficient file traversal.
- Update dependencies in `Cargo.toml` and `Cargo.lock` to include `walkdir`.
- Enhance code maintainability by replacing redundant logic with streamlined traversal and processing.
2025-07-27 19:48:52 +02:00
Till Wegmueller
7889dffdea
Update workspace structure, unify metadata, enhance logging, and expand error handling
- Centralize package metadata in workspace for consistency.
- Upgrade `pkg6dev` and `pkg6repo` to version `0.5.1`, aligning with new workspace configuration.
- Introduce `EnvFilter` for dynamic logging configuration, defaulting to debug level.
- Add `LoggingEnvError` variant to `Pkg6DevError` with structured diagnostics for improved error handling.
2025-07-27 11:08:39 +02:00
Till Wegmueller
bf5d60c77c
Update Cargo.lock dependencies to latest versions to ensure compatibility and improve functionality. 2025-07-27 11:02:37 +02:00
Till Wegmueller
c3ff6ac28e
Introduce Pkg5Importer for importing pkg5 repositories (directory or p5p format) into pkg6, extend error handling with ActionError, update dependencies (tempfile, flate2, and thiserror), and enhance CI workflows. 2025-07-26 23:02:56 +02:00
Till Wegmueller
cb75c045e5
Introduce Pkg6DevError for improved error handling across pkg6dev, replace anyhow with custom error types, enable structured diagnostics with miette, update dependencies, and add tracing for logging. 2025-07-26 21:20:50 +02:00
Till Wegmueller
38fba9b9db
Introduce custom Pkg6RepoError for improved error handling, replace anyhow, and update dependencies and test cases for consistency. 2025-07-26 17:07:59 +02:00
Till Wegmueller
4649608408
Replace anyhow with custom RepositoryError for improved error specificity and consistency. Remove anyhow dependency. 2025-07-26 16:50:10 +02:00
Till Wegmueller
40560e5960
Add xtask for build and test automation, replacing legacy scripts, and integrate commands for environment setup, build, test, and formatting. Update documentation for cargo-xtask usage. 2025-07-26 14:18:30 +02:00
Till Wegmueller
a0fcc13033
Introduce Catalog module with structs and functionality for managing package metadata, enhance file_backend and CLI to handle catalog operations, and update dependencies (chrono and others) to support new features. 2025-07-24 00:28:33 +02:00
Till Wegmueller
63f2d1da62
Add search method to repository module for querying packages, update dependencies to support search functionality. 2025-07-23 23:22:24 +02:00
Till Wegmueller
5d987ca0cb
Refactor package FMRI handling by introducing Fmri struct, update dependencies, and adjust repository and action modules for structured FMRI data processing
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2025-07-22 14:10:37 +02:00
Till Wegmueller
8a32bf3176
Add compression support (Gzip/LZ4) and update dependencies
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2025-07-21 22:37:08 +02:00
Till Wegmueller
1a5e0e053d
Add repository module and update dependencies
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2025-07-21 22:02:05 +02:00
Till Wegmueller
bef5442afd
Adding diff-struct
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2024-08-15 21:27:00 +02:00
Till Wegmueller
5cea5186d7
Add serde and image starter module
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2024-08-14 20:02:29 +02:00
dependabot[bot]
d2b05ebd97
Bump openssl from 0.10.50 to 0.10.55
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.50 to 0.10.55.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.50...openssl-v0.10.55)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-21 22:56:18 +00:00
dependabot[bot]
e9f79ab7d5
Bump h2 from 0.3.16 to 0.3.17
Bumps [h2](https://github.com/hyperium/h2) from 0.3.16 to 0.3.17.
- [Release notes](https://github.com/hyperium/h2/releases)
- [Changelog](https://github.com/hyperium/h2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/h2/compare/v0.3.16...v0.3.17)

---
updated-dependencies:
- dependency-name: h2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-13 17:08:44 +00:00
Till Wegmueller
108b9f026e
Responding to CVE-2023-26964
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2023-04-12 09:24:22 +02:00
Till Wegmueller
5154d3886e
fixing clippy issues
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2023-03-25 13:11:10 +01:00
Till Wegmueller
563175bbca
updating dependencies
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2023-03-25 12:35:05 +01:00
Till Wegmüller
b6c9a44c81
Merge pull request #7 from OpenFlowLabs/dependabot/cargo/bumpalo-3.12.0
Bump bumpalo from 3.6.1 to 3.12.0
2023-03-25 12:29:41 +01:00
Till Wegmüller
0bac6d9d48
Merge pull request #6 from OpenFlowLabs/dependabot/cargo/openssl-src-111.25.01.1.1t
Bump openssl-src from 111.22.0+1.1.1q to 111.25.0+1.1.1t
2023-03-25 12:28:44 +01:00
dependabot[bot]
b9b6f271fe
Bump bumpalo from 3.6.1 to 3.12.0
Bumps [bumpalo](https://github.com/fitzgen/bumpalo) from 3.6.1 to 3.12.0.
- [Release notes](https://github.com/fitzgen/bumpalo/releases)
- [Changelog](https://github.com/fitzgen/bumpalo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fitzgen/bumpalo/compare/3.6.1...3.12.0)

---
updated-dependencies:
- dependency-name: bumpalo
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-25 11:24:56 +00:00
dependabot[bot]
4a0ab51880
Bump openssl-src from 111.22.0+1.1.1q to 111.25.0+1.1.1t
Bumps [openssl-src](https://github.com/alexcrichton/openssl-src-rs) from 111.22.0+1.1.1q to 111.25.0+1.1.1t.
- [Release notes](https://github.com/alexcrichton/openssl-src-rs/releases)
- [Commits](https://github.com/alexcrichton/openssl-src-rs/commits)

---
updated-dependencies:
- dependency-name: openssl-src
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-25 11:24:38 +00:00
dependabot[bot]
d05e91b17d
Bump openssl from 0.10.33 to 0.10.48
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.33 to 0.10.48.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.33...openssl-v0.10.48)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-25 11:18:37 +00:00
Till Wegmueller
4ebecbd153 Adding ports and specfile crates. Switch to thiserror for libraries 2022-09-02 23:48:26 +02:00
Till Wegmueller
2fd593ff41 Cleanup repo 2022-09-01 19:23:09 -03:00
Till Wegmüller
1f26173843
Merge pull request #4 from OpenFlowLabs/dependabot/cargo/regex-1.5.5
Bump regex from 1.4.5 to 1.5.5
2022-06-06 17:26:00 -03:00
dependabot[bot]
b4458da5f3
Bump regex from 1.4.5 to 1.5.5
Bumps [regex](https://github.com/rust-lang/regex) from 1.4.5 to 1.5.5.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.4.5...1.5.5)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:14:34 +00:00
dependabot[bot]
f17a02eb94
Bump hyper from 0.14.7 to 0.14.19
Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.7 to 0.14.19.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.7...v0.14.19)

---
updated-dependencies:
- dependency-name: hyper
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:14:31 +00:00
dependabot[bot]
b733d86070
Bump tokio from 1.5.0 to 1.16.1
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.5.0 to 1.16.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.5.0...tokio-1.16.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 19:59:52 +00:00
Till Wegmueller
09635558ae Switch to rustls for embedded tls
Refine Makefile parsing so we also parse define rules
Implement Recursive Vraiable resolving Algorithm
2022-03-28 15:07:05 -03:00
Till Wegmueller
3481814af2 Switch to anyhow and thiserror
Update clap to version 3
Make golang file parseable by removing line breaks
2022-03-24 19:48:41 -03:00
Till Wegmueller
d129518d33 Add Unicode parsing
Add Linebreak parsing
2021-09-04 23:58:43 -03:00
Till Wegmueller
3c4f75ab5c Fixing makefile targets,
Added Version to userland crate
2021-05-01 16:21:17 -03:00
Till Wegmueller
f67ceb4b05 Hotfix to add ! property value characters 2021-05-01 16:05:28 -03:00
Till Wegmueller
37d7d8ee08 Add userland library for things related to oi userland 2021-04-25 18:40:06 -03:00
Till Wegmueller
de57e52066 Bump Version for release 2021-04-24 23:26:13 -03:00
Till Wegmueller
52390f7303 Bump Version for release 2021-04-24 23:20:36 -03:00
Till Wegmueller
d557773763 Fix tests 2021-04-19 21:34:40 -03:00
Till Wegmueller
40f18ef38f WIP: pest parser 2021-04-19 09:35:05 -03:00