-
Notifications
You must be signed in to change notification settings - Fork 53
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
Question regarding Debian packaging and external dependencies #214
Comments
What you need to know about packaging Monero-related software: Nearly every Monero and Feather release contains security and privacy fixes. The Monero version in Debian stable (v0.18.0.0) is dangerously out of date and contains numerous vulnerabilities. Specific vulnerabilities are not always disclosed. You can infer if a release includes security fixes by looking at the "recommended version" in the Scheduled software upgrades table in the Monero README. In practice, network participants are expected to run the latest version at all times. Monero may hard-fork on months' notice, rendering all prior versions of the software useless, including wallet applications. If you decide to package Feather, I would wish for more active maintenance going forward. Failing to do so puts user funds and privacy at risk. If Debian release policy does not allow you to keep the software up-to-date, I strongly recommend against packaging Feather and to discontinue packaging Monero. |
ACK.
ACK.
ACK. Please let me know if things change in the future and it is no longer safe to unvendor
I agree that the Debian Monero package is not in good shape. If you had said above in (2) that is was OK to build Feather Wallet against the upstream Monero package, the first thing I would have done would have been to involve myself in that package, update it to the current version, and maintain it updated. A good indication of my packaging track record is the Debian Electrum package. https://tracker.debian.org/pkg/electrum I package new versions on a monthly basis and more often if needed, which I make sure enters unstable, testing, and stable-backports (which means that every supported Debian user has easy access to them). In the case of the recent Lightning security bugs, I coordinated with upstream via secure channels before their release and had fixed versions prepared ahead of time so that when the embargo lifted on the security fix the Debian package was uploaded at the same time as upstream published their fixed version. GHSA-9gpc-prj9-89x7 |
Looking more closely at Supercop, it doesn't look like it is a good candidate for a Debian package at the present moment because it currently requires part of the greater Monero project to build. I will keep my eye on it and package it for Debian if that ever changes (the documentation indicates that might be changed in a future release). |
A note on undisclosed security issues: You cannot expect them to be fixed in Debian or any other downstream. The security tracker for the monero package does not show any issue affecting the software in any active release. |
Yes, as a matter of good security practice, I would recommend that all known security bugs be disclosed. |
Security Issues that affect users are usually communicated in a blog post or implied in the changelog. Users are advised to always run the latest version of the software. Issues that affect network stability (such as denial-of-service attacks) are typically only disclosed on a need-to-know basis. If you can't package the latest version, then don't package the software at all. Monero is not stable software, so perhaps you should reconsider whether it belongs in a stable distribution. Debian 11 was Why was the package never updated? And how will you prevent a repeat of this? We are aiming to hard-fork again next year. This will affect Feather, too. This upgrade will introduce Rust as a build dependency. You will need to package the upgrade in months' notice or the software stops working. |
You are right, there should have been a stable upload in Debian 11. At that time I was not involved with packaging Monero. And usually, I run unstable systems, so will rely on users to report their (old)stable software not working. There is no such bug report, so I have not catered to it yet. |
Let me provide a bit of insight into Debian's repository architecture (because the naming doesn't automatically communicate the actual usage) Debian has three main repositories:
New packages are always added to unstable. After 5 days with no serious bug reports (2 days if they have autopkgtests that run without errors), they propagate to testing. Every two years, testing freezes and becomes stable. Unstable is always called sid, but the code names of testing and stable change with each release of a new stable, with the current testing codename becoming the new stable codename. Unstable and testing are rolling releases. They update multiple times per day. Stable is designed for systems that don't change. Specifically, updates to stable generally are not supposed to add new features to a program, only bug fixes. For feature updates to stable, there is a special repository called stable-backports, which backports new releases from testing to stable. Users on stable can choose whether they want to install updates from stable-backports or not. The above is over-simplified, but gives a general idea. Some people, like bgermann, run unstable on their main production systems. I personally run testing, which is probably the most "stable" rolling release of Linux anywhere on the internet. Some people run stable. Good coverage for a program like Monero or Feather Wallet should include timely updates to unstable, which propagate to testing, and are then rebuilt for stable-backports. |
Debian usually wants to build a package using upstream copies of all third-party projects instead of using embedded copies. The primary motivation for doing this is that it simplifies addressing security vulnerabilities, because the upstream project can be updated once and all the programs that incorporate them can be rebuilt automatically. However, if there are compelling reasons not to do so, exceptions can be made.
From what I can tell, Feather wallet has three levels of external dependencies.
Polyseed
andbc-ur
insrc/third-party
.Monero
inmonero
.Boost
,liblmdb
,easylogging++
,miniupnp
,qrcodegen
,randomx
,rapidjson
, andsupercop
inmonero/external
.I read in your feature comparison documentation that some changes are made to your Monero fork (item 2). My questions are:
Monero
code, I would assume that it would not be safe to build against the upstreamMonero
code. Are your changes something you expect to eventually be incorporated upstream, or do you expect to maintain them indefinitely?monero/external
? Bastian, my fellow packager, maintains the Monero Debian package. He has replaced the majority of the contents ofmonero/external
with system packages without issue, but I wanted to make sure Feather Wallet isn't using them in a different way that could be problematic.FYI, there is a fair amount of information about the Monero Debian package at:
https://tracker.debian.org/pkg/monero
Thanks for being willing to help us with the packaging. I really appreciate it.
The text was updated successfully, but these errors were encountered: