ethereum / webthree-umbrella

Former home of cpp-ethereum (Oct 2015 to Aug 2016)
http://cpp-ethereum.org
GNU General Public License v3.0
493 stars 372 forks source link

Fix xenial ppa #301

Closed devluxg closed 8 years ago

devluxg commented 8 years ago

The ppa instructions are failing on xenial and it releases in just a few weeks, please update PPA

If fixed, also update documentation: http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/installing-binaries/linux-ubuntu-ppa.html

We should also rename the mix command to mixide because of conflicts: https://github.com/ethereum/mix/issues/285

bobsummerwill commented 8 years ago

Thanks for the report, @devluxg.

See also https://github.com/ethereum/webthree-umbrella/issues/275 and https://github.com/ethereum/webthree-umbrella/issues/228.

I need to get myself up-to-speed on how the PPA automation and setup works. It needs some love!

devluxg commented 8 years ago

You're welcome, have you considered asking ubuntu proper to include you guys in the distro? That way you wouldn't need PPA.

bobsummerwill commented 8 years ago

I haven't considered that, no, @devluxg.

Are you aware if there are specific guidelines on what kind of stuff is considered for such inclusion?

devluxg commented 8 years ago

No I think it just to be open source and someone needs to commit to maintaining the packages. Bitcoin is there, so no reason for ethereum not to be.

I would contact debian and ubuntu dev mailing lists and volunteer to be the upstream maintaner. I think that is pretty much the entire process.

bobsummerwill commented 8 years ago

Right - OK, well thanks for the suggestion. It's another option for us to consider!

chriseth commented 8 years ago

That's a great option! I might feel a bit better if we first "fix" the packages by providing separate solidity and mix packages that come with the right version. Shouldn't be too big of a problem, though.

devluxg commented 8 years ago

For our purposes we're only using geth. I got that to build no problem on Xenial. The other products seem to have dependency issues, for instance on something called qt5webengine that I cannot find anywhere in the xenial repos and also the version of cryptopp in xenial is 5.6.1 and your minimum dep version is 5.6.2. To be honest I'm not seeing any difference between the two point releases. At least none that you are relying on in your codebase. I could be wrong though.

bobsummerwill commented 8 years ago

Yes - I think we would want to get the components split up first, right, @chriseth, so we have a 1-1 mapping from repos to packages:

devluxg commented 8 years ago

I would do an ethereum-all and an ethereum-headless and possibly ethereum-sources. Point being to install everything and leave it at that.
Most people who are doing this on ubuntu are either looking for a desktop wallet or something to act as a blockchain interface layer for other services.

If there are tools that they may need later it does no good to require separate package installs it just gets frustrating to chase down. OTOH if they are looking for "only" a specific component, for instance for use in a docker container, most of the management tools already know how to custom compile just the specific piece.

Just my 2c.

bobsummerwill commented 8 years ago

It will depend what we do with our release cadences.

We are likely going to decouple these pieces entirely, and they won't be lock-step released anymore. So bundling them wouldn't make sense anymore.

devluxg commented 8 years ago

Ok but please at least consider doing an "all" meta-package. This would allow components to update in whatever order but only a single package to install and manage.

Understand where I'm coming from. In most cases large IT shops are a bit hamstrung on what can be installed especially if they have an IT security department that is doing it's job properly. Thus getting permission if for example I was working with a bank, is much easier to do for 1 package that drops all the tools I might need, than a bunch of separate packages.

Give it some thought, and thanks!

bobsummerwill commented 8 years ago

Ooh ... meta-packages. Well, if that is easy enough, then for sure.

bobsummerwill commented 8 years ago

Hey @devluxg - Please could you add some details here on exactly HOW the PPAs are failing for xenial? Thanks!

jacohend commented 8 years ago

@bobsummerwill devluxg basically included all the info we know. No xenial PPAs detected, so I switched back to next newest, the wily source. Tried to download cpp-ethereum, got same error as devluxg:

version of cryptopp in xenial is 5.6.1 and your minimum dep version is 5.6.2

When installing qt-based apps like Mix, the installation fails on qt5webengine, which doesn't exist in the xenial repos, also as stated by devluxg.

Xenial is coming out in a month and many ubuntu users will be upgrading.

bobsummerwill commented 8 years ago

Thanks, so it sounds like we're going to need to create an extra PPA, which will presumably be pretty much a clone of the existing ones with some minor version tweaks, perhaps?

@chriseth Had to make a PPA change a few days back, so we have gained a little knowledge of how that setup works (it was done by somebody else who isn't working on the project anymore).

chriseth commented 8 years ago

These are the instructions for wily: https://github.com/ethereum/ethereum-ppa/tree/wily Perhaps some kind soul who already runs xenial could modify them? The version error about cryptopp is strange, did they downgrade?

chriseth commented 8 years ago

hm, I don't see crypotpp version 5.6.2 mentioned here: https://github.com/ethereum/ethereum-ppa/blob/wily/debian/control will set up a xenial vm and try

bobsummerwill commented 8 years ago

We're actually using CryptoPP-5.6.3 on at least OS X.

chriseth commented 8 years ago

Progress: I was able to get cryptopp 6.5.2 into the ppa for xenial. Created a xenial job on jenkins but it seems our ppa uploads are ignored on launchpad.

5chdn commented 8 years ago

renamed mix to mix-ide in archlinux. maybe we can do this in ubuntu too? ref: https://github.com/ethereum/mix/issues/285

chriseth commented 8 years ago

Job failure (in all ubuntu versions) was due to the fact that the release branch was modified between runs and thus the "original source" file changed and was rejected by the build server. Incremented the version number (appended +1) to fix this.

bobsummerwill commented 8 years ago

When do the PPA runs happen? I'm just a little confused as to what "between runs" actually means in this context?

Are these triggered in build-ethbinaries for both develop and release branches? Which happen daily.

chriseth commented 8 years ago

Runs for "release" are manual, "develop" is triggered once a day. The jobs are calld ppa-build-release and ppa-build-develop. build-ethbinaries is something else (the ppa run does not actually build binaries, it is done on the lauchpad servers).

bobsummerwill commented 8 years ago

Right - thanks for the info.

So are the OS X, Windows and Ubuntu release pipelines all running independently, then?

chriseth commented 8 years ago

Hopefully last obstacle to overcome: File conflict between (our) libcryptopp-dev_5.6.2 and (xenial's) libcrypto++-dev_5.6.1-9.

chriseth commented 8 years ago

Also, the libjsoncpp package is now called libjsoncpp1 - this already changed in wily and is again different in xenial.

bobsummerwill commented 8 years ago

Good grief! Are these name changes crappy workarounds for incompatible versions or something? Or just packages becoming "official" or "unofficial" or similar?

chfast commented 8 years ago

It's probably up to library maintainer. The one of conventions is to include library major version number in the name.

bobsummerwill commented 8 years ago

So we still need to add all the "installing packages" steps for Xenial, @chriseth, which I guess are cut-and-paste from Wily, plus the minor package name tweaks you mentioned above? Maybe you could make the PR, as you know the details? Thanks! And I can merge/publish.

https://github.com/ethereum/homestead-guide/blob/master/source/ethereum-clients/cpp-ethereum/building-from-source/linux.rst