<div dir="ltr">Apologies for the cross-post, but I wasn't sure which mailing list would be most appropriate.<div>Also, please note that I am writing this as myself, not as a representative of the Bitcoin project or development community.<br>

<div><br></div><div>The Bitcoin software (the codebase maintained at <a href="https://github.com/bitcoin/bitcoin">https://github.com/bitcoin/bitcoin</a>, also known as the Satoshi client, including bitcoind, the daemon version of the software, and Bitcoin-Qt, the GUI version of the software) is currently available in Ubuntu's software sources, specifically the Universe branch, as far back as Precise (bitcoind) and Raring (Bitcoin-Qt). There are several problems with the way Bitcoin is being distributed by Ubuntu. In this message, I'd like to mention a few of these, and try and find a way to solve the issues.</div>

<div><br></div><div>Bitcoin is not a mature piece of software. It is still in beta, and new versions become available periodically. These new releases vary in nature, from adding new features to fixing bugs, some of which are critical. Bugs that are fixed can be anything from DoS bugs that can allow an attacker to cause nodes to become unresponsive or even crash, to minor graphical glitches in the Bitcoin-Qt GUI, to bugs that can inadvertently cause consensus failures, leading to a fork in the blockchain, such as the March 2013 fork. Some changes may be changes in criteria for transaction relay, such as allowing new transaction types or adjustments to the default fee policy. As I understand it, the way Ubuntu works is that when a new version of Ubuntu comes out, every 6 months, it's considered frozen, and packages that are in the repositories for that version aren't kept up to date. This is a problem for Bitcoin, given its status as a distributed consensus system that relies on the fact that nodes follow the same rules. Debian's version 0.8.3-2 of the package made the switch to using LevelDB included in the upstream code, rather than using the system LevelDB. This is explained in the debian/README.source file. Note, however, that Ubuntu releases prior to Saucy (Raring and older) haven't had this fix applied, which could potentially result in an unpredictable consensus split, as mentioned above.</div>

<div><br></div><div>Additionally, there are other issues with the packaging process. Bitcoin, as of version 0.8.0, switched the blockchain indices from using Berkeley DB to using LevelDB. However, BDB is still used in the bitcoin wallet. All upstream release binaries are built using BDB version 4.8. The only version of Ubuntu which includes this version of BDB in its repositories is Lucid. Later versions build their Bitcoin packages with BDB 5.1. The problem with this is that BDB databases are not backwards-compatible with older versions of BDB. Any bitcoin wallet that is touched (created, or even once opened) by a Bitcoin binary built with a version later than 4.8 will become impossible to open with any Bitcoin binary built with an earlier version, which as mentioned includes the vast majority of Bitcoin binaries used on other platforms. This means that the wallet is not portable between platforms as is expected, and the error message is not one that clearly indicates the problem, as the failure originates in BDB and not the Bitcoin software.</div>

<div><br></div><div>For these reasons and others, including the Bitcoin software in any stable, no-updates release is not a good thing for Ubuntu users nor for the bitcoin network as a whole. There is already a PPA, maintained by Matt Corallo, one of the core developers, and linked to from <a href="http://bitcoin.org/en/download">http://bitcoin.org/en/download</a>. Said PPA provides both the Bitcoin software and the BDB 4.8 packages needed for wallet compatibility with the software on other platforms. Over at Debian, their Bitcoin Packaging Team has been maintaining the package, keeping it in the unstable branch (sid) only, where it is allowed to be updated with new releases of the software. It is not included in the stable repository (wheezy), nor in testing (jessie). If I understand correctly, Ubuntu doesn't have that kind of release. It is my opinion that, given Ubuntu's methods of managing its software, it would be better to not include Bitcoin in the Ubuntu repositories, unless exceptions to the policies could be made, allowing all supported Ubuntu versions to get the latest updates as they come down from upstream. As a first step, the Bitcoin software should be removed from Trusty's repositories, assuming no exception can be made. Ideally, it would also be removed from the older repositories (Precise, Quantal, Raring, Saucy) if it can't be updated, though I'm told that's significantly harder from the perspective of the standard workflows.</div>

</div></div>