This repository contains a collection of Rust crates related to Linux packaging.
See the various project directories for more.
Rust projects related to Linux packaging
License: Mozilla Public License 2.0
Hello,
I found some float timestamp values in the repomd.xml
file of RPM repository (private repository handle by Cobbler).
It can be handled by using Option<f64>
instead of Option<u64>
.
If you are ok, I can send you a Pull Request (the update with test are already done).
Jonathan
using debian_packaging
v0.15.0
and
rustc --version
rustc 1.68.1
after a cargo check
I got:
Finished dev [unoptimized + debuginfo] target(s) in 0.15s
warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, nom v4.2.3
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 122`
both seem to be coming from the pgp dep:
cargo tree
├── pgp v0.8.0
│ │ ├── aes v0.7.5
...
│ │ │ └── opaque-debug v0.3.0
│ │ ├── buf_redux v0.8.4
...
│ │ │ └── opaque-debug v0.3.0
│ │ ├── nom v4.2.3
│ │ │ └── memchr v2.5.0
│ │ │ [build-dependencies]
I made a bare repo with just pgp and found that once I brought it up to version 0.10.0 I no longer had the warning
(using main
, which is currently commit a00f146 - just two commits after debian-packaging/0.16.0
. Shouldn't be platform-specific, but most of my testing was with cargo/rustc 1.71.0 on an Ubuntu focal x86_64 host.)
While trying to mirror the Ubuntu focal distribution to local media, I ran across what appears to be a difference in how Debian and Ubuntu structure their trees of Contents
files. The result is that debian-repo-tool
panics part of the way through the Ubuntu copy. The same panic happens with Ubuntu jammy.
The full backtrace is a little messy (and currently lost in the scrollback), but by printing out some of the fields, I think it is because the Ubuntu archive has a single Contents-<arch>
file at the root of the dist, and Debian has several <component>/Contents-<arch>
files. This throws off the release file parsing, and the code tries to start the slice at -1 in impl<'a> TryFrom<ReleaseFileEntry<'a>> for ContentsFileEntry<'a>
:
I'm attaching a YAML file that reproduces the error, though I admit that it is not the most efficient (I think it ends up copying 2GB before panicking). Open to suggestions on how you think a smaller unit test should look (e.g. throw in the whole Release file for Ubuntu, or just an excerpt inline).
The patch is also not my finest work (still working through the early chapters of The Rust Book), but I got a little lost tracking down whether the rest of the code really handles component == ""
(which is I guess how you might label the Ubuntu Contents-<arch>
file), so it just returns DebianError::ReleaseIndicesEntryWrongType
if there is no component directory prefix. From what I can tell, applying that patch allows me to make a mostly-functional copy of the Ubuntu jammy repository.
Thanks for open-sourcing this code!
I had to rip out RPM reading support from linux-package-analyzer because the rpm-rs crate appears to be unmaintained and its lack of modern dependencies is making it difficult to keep dependencies modern.
This issue tracks restoring the functionality.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.