-
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Questions #12
Comments
I would very much be willing to do so, though I still recommend using the signed release tags instead.
Yes, there are. Disclaimer: I am the author of this crate and not at all familiar with https://github.com/Richterrettich/rpm-rs.
|
Good to know, thank you for the response. Should I also expect it to work with packages from RHEL / CentOS 7, or are there known limitations with certain older packages? Could you point me towards any examples of code which pulls various tags from the Header? Roughly similar to this code: [0]. The closest I could find was this code [1] but it doesn't include all of the other fields, which I need for my use case. [0] https://github.com/Richterrettich/rpm-rs/blob/master/src/rpm/headers/header.rs#L392-L436 |
You’re welcome.
There are a few known types of unsupported packages. Generally, rpm-oxide should accept any package that a somewhat recent (4.14+) RPM generates, and the vast majority of packages generated by older RPM versions. The cases below are the differences I am aware of:
If any of these differences are a problem in practice, would you mind opening an issue? Please file a separate issue for each problem.
That is indeed a limitation. You can fish the needed data out of the header yourself, but that is clumsy and error-prone. Can you file an issue for the missing tags, ideally with a list of tags you need? |
Thanks again for the very thorough response. I will file an issue, however I wouldn't want you to go too far out of your way to address those issues, as I think for my purposes it is a little difficult to justify starting out with a library without any documentation or many of the APIs I might need. That's not to diminish your work at all! Certainly there are a lot of benefits to this library with one of them being your experience with upstream (I've see some of your conversations in the upstream repos occasionally). It's just that my project is mostly just for fun as opposed to a serious production library, and I don't want to get too sidetracked just yet, so documentation and ease of use are more important to me at this moment (although at some point I may want to circle back and re-evaluate). |
@DemiMarie So, further question. A few weeks after I wrote this issue the current owner/maintainer of https://github.com/Richterrettich/rpm-rs pretty much dropped off of the internet, he hasn't responded to emails or messages in nearly 8 months now. In light of that, a bunch of interested developers have been having a discussion for the past several months about what to do. Ultimately the repo got forked to https://github.com/rpm-rs/rpm-rs/, but we haven't actually taken the step of creating a whole new crate yet. Would you have any interest in trying to merge efforts into a single "rpm-oxide" library published on crates.io under that name? |
@dralley: I would indeed be interested in merging efforts. Some notes on rpm-oxide as it stands now:
|
@DemiMarie That is excellent! In practical terms, do you have strong feelings about how that should be handled? e.g would you be comfortable with the combined library living at https://github.com/rpm-rs/rpm-rs/ (where we could add you as a collaborator) |
I would be, yes. I do have some pretty strong feelings about how code should be maintained, notably in regards to security. I would strongly prefer to use the same approach that Qubes OS does, where every commit must be signed and the main branch should always have a signed tag. Since rpm-oxide is production code, and rpm-rs currently is not IIUC, it would be lower risk from a Qubes perspective to start with the former, and submit code from the latter via PRs. |
Understandable
I think that should be doable, I'm not sure we can do that for existing git history, but new commits most likely yes.
I believe it has at least some production usage via https://crates.io/crates/cargo-generate-rpm, and the author claimed that their workplace was using it to generate RPMs. Granted I am not sure how deep or extensive the usage has been in comparison but it is at least nonzero. I think the most apparent sticking points are
|
Thank you
For existing history it is not necessary, due to Git’s Merkle tree nature. Alternatively, if we import the existing rpm-rs code into this repo via PRs (and then replace the contents of the other repo with the contents this one) it would happen automatically.
rpm-oxide is used by every Qubes OS user for dom0 updates and template downloads, which means that well over 10,000 people use it regularly IIUC. If it breaks, users will not be able to install the update to fix it, which is bad. Hence, I would strongly prefer to start with this repository as-is and make incremental changes to it, to minimize the risk of regressions. Additionally, previous versions of rpm-oxide has been tested on the entire Fedora 25 and Fedora 32 repositories (dom0 versions used by R4.0 and R4.1 respectively) with only one failure (a package in the Fedora 25 repo that had invalid UTF-8 in a string field).
That is fair. Especially old versions of RPM are not nice to link against. I had to work around a call to
In Qubes OS linking against the system RPM libraries is preferable, as they are needed anyway and minimizing dependencies is important. That said, I would be fine with having switchable backends so that
I’ll have to think about this one. Most stuff in Qubes OS is GPL’d. @marmarek would this repo being Apache 2.0 only be a problem, or does it need to be GPLv2 compatible? |
For this repository, it should be fine I think. We don't (need to) link it with other parts, we use a standalone binary built from it. |
FYI, we managed to get ahold of the Probably for now we will use that, and then figure out which parts make sense to merge together or replace over time. |
As expected the original author is the sticking point on the licensing issue. I'm sure he would agree if we could reach him, but, well... |
For context, I'm (slowly) writing https://github.com/dralley/rpmrepo_rs as a side project and I need a library for parsing metadata from RPM package headers and verifying signatures.
The text was updated successfully, but these errors were encountered: