Author Topic: Ubuntu BitShares PPA  (Read 9830 times)

0 Members and 1 Guest are viewing this topic.

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
0.9.3 updated
I'll be submitting a worker proposal to keep this going BitShares 2.0. Possibly setting up distribution server instead of launchpad.

Would people prefer:
1) a new http://ppa.bitshares.org (or something like that) with builds for Debian, Raspbian, Ubuntu on amd64, i386, ARM
or
2) Just keep using Launchpad for Ubuntu

Advantage of (1): All Debian-based distros and architectures can be supported, we keep bitshares branding. Disadvantage of (2): Slight expense (to be built in to worker proposal), have to maintain technical infrastructure.

Advantage of (2): use Canonical infrastructure, people are familiar with it. Downside to (1): limited to Ubuntu amd64 and i386

I guess I can put up two worker proposals and see which one (or both) gets funded.

Also, if you're experienced with PPAs/Debian Development and want to be a part of my worker proposal, please contact me. Same goes with other distributions, maybe we can have a single worker proposal so we can take advantage of scaling and redundancy.
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
In my RPM repo at https://build.opensuse.org/project/show/home:p_conrad:bts I have solved the nodejs/lineman problem by creating a separate lineman package that is used for builds only. For running the GUI you don't need node.js nor lineman.

that's pretty much what I'm doing: I'm just putting lineman into the source code tarball that is only used in builds. So it's not a separate package, but it has several hundred js modules in it. That's the long-term problem, sifting through the licenses and independent packaging of those several hundred js files.
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline pc

  • Hero Member
  • *****
  • Posts: 1530
    • View Profile
    • Bitcoin - Perspektive oder Risiko?
  • BitShares: cyrano
In my RPM repo at https://build.opensuse.org/project/show/home:p_conrad:bts I have solved the nodejs/lineman problem by creating a separate lineman package that is used for builds only. For running the GUI you don't need node.js nor lineman.

The lineman package is rather ugly, it combines several hundred node.js modules. But that's not much of a problem because it is not intended for installation, only for building BTS + derivates. Maybe a similar approach is possible for PPA, I'm not familiar with that.
Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 http://bitcoin.quisquis.de

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
I think it's just the lineman tool, but it would be needed to build everything from source (can't put pre-compiled js in archives for security reasons). To get lineman in debian, I believe we'd need to do the following packaging:
https://wiki.debian.org/Javascript/Nodejs/Tasks/lineman

which would be dozens of packages
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline robrigo

PPA is still up and running, usually updated within hours of release.
Here are some statistics on downloads.
https://people.debian.org/~showard/test/
Looks like ~15-20 people are using this (based on the number that downloaded the last release)

If anyone is interested in taking this over by moving this to a team/organization account on launchpad, please respond to this thread. It's all self contained so someone should be able to do releases to their own repository by adding the ppa:showard314/bitshares repository and then:
Code: [Select]
$ apt-get source bitshares
$ cd bitshares
$ dch -i [and update the version number/release target]
$ ./debian/rules get-orig-source [download the newest source, build the GUI]
$ dpkg-buildpackage -S -sa [builds the source package to upload to the PPA]
$ dput ppa:NAME/PPA_NAME ../bitshares_VERSION.changes
$ dch -i [and update release target for utopic/vivd/etc]
$ dpkg-buildpackage -S [builds the source package to upload to the PPA using the previously uploaded source]
$ dput ppa:NAME/PPA_NAME ../bitshares_VERSION.changes

I think this is the only way to get the GUI on linux prebuilt. It also shows some of the problem with the current project set-up, by relying on node-js it is very difficult to package the GUI in a linux-distribution-friendly way (the GUI can never be in debian or ubuntu, the amount of work to package all the node-js stuff would be astronomical).

Hi maqifrnswa. Thanks for running this PPA. If I had ubuntu installed I would definitely be using it.

Quick question (unrelated) about nodejs and the web_wallet code: is it only used for lineman and not required to run the packaged GUI or is each instance of the GUI including a full nodejs dependency? i.e. when I run a packaged version of bitshares (such as the exe or dmg), is there a node instance running?

From what I can tell it is just used for the lineman tool and not actually part of the web wallet operation.

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
PPA is still up and running, usually updated within hours of release.
Here are some statistics on downloads.
https://people.debian.org/~showard/test/
Looks like ~15-20 people are using this (based on the number that downloaded the last release)

If anyone is interested in taking this over by moving this to a team/organization account on launchpad, please respond to this thread. It's all self contained so someone should be able to do releases to their own repository by adding the ppa:showard314/bitshares repository and then:
Code: [Select]
$ apt-get source bitshares
$ cd bitshares
$ dch -i [and update the version number/release target]
$ ./debian/rules get-orig-source [download the newest source, build the GUI]
$ dpkg-buildpackage -S -sa [builds the source package to upload to the PPA]
$ dput ppa:NAME/PPA_NAME ../bitshares_VERSION.changes
$ dch -i [and update release target for utopic/vivd/etc]
$ dpkg-buildpackage -S [builds the source package to upload to the PPA using the previously uploaded source]
$ dput ppa:NAME/PPA_NAME ../bitshares_VERSION.changes

I think this is the only way to get the GUI on linux prebuilt. It also shows some of the problem with the current project set-up, by relying on node-js it is very difficult to package the GUI in a linux-distribution-friendly way (the GUI can never be in debian or ubuntu, the amount of work to package all the node-js stuff would be astronomical).
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline bitcoinerS

  • Hero Member
  • *****
  • Posts: 592
    • View Profile
Since there are no such thing as "official" binaries any more [1], the PPA is as official as you can get. They were uploaded by a delegate, the source code used to build the packages is signed with a GPG key in the debian-keyring and is inspectable on the launchpad site. The binaries built from the GPG signed code are signed by with the PPA GPG key and will be automatically verified by apt when you download and install. This is the same system bitcoin uses for distribution, as well as mozilla, libreoffice, wine, and several others. In fact, this is a more secure distribution method than download links on github since most users won't verify MD5 sums before installing.

I hope you find these useful!

[1] https://bitsharestalk.org/index.php?topic=7067.msg148186#msg148186

This is great. Thanks. Hopefully there will be some "official" support for this repository from BitShares core team.
>>> approve bitcoiners

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
Since there are no such thing as "official" binaries any more [1], the PPA is as official as you can get. They were uploaded by a delegate, the source code used to build the packages is signed with a GPG key in the debian-keyring and is inspectable on the launchpad site. The binaries built from the GPG signed code are signed by with the PPA GPG key and will be automatically verified by apt when you download and install. This is the same system bitcoin uses for distribution, as well as mozilla, libreoffice, wine, and several others. In fact, this is a more secure distribution method than download links on github since most users won't verify MD5 sums before installing.

I hope you find these useful!

[1] https://bitsharestalk.org/index.php?topic=7067.msg148186#msg148186
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
package and binary names have changed. If you installed previously, they will change on their own automatically with the current upgrade that is being built.

NEW package names: bitshares bitshares-cli
NEW commands: BitShares bitshares_client

the old package names are kept for compatibility for now but will be dropped in the future (few months?)

Ee're figuring out how to make these "official" in the future too, hosted or at least under the control of DSL.
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
We're back! GUI and clients now build on AMD64 and i386 again!
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
UPDATE: The cli has always been kept up to date, but the GUI has been giving us problems lately since out of tree builds are still a little difficult.

First there was an issue with the Russian translations. The russian translation is built after it is needed (see below)

Code: [Select]
[ 96%] Generating qrc_bitshares.cpp
cd /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet && /usr/lib/x86_64-linux-gnu/qt5/bin/rcc -name bitshares -o /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/qrc_bitshares.cpp /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/bitshares.qrc
RCC: Error in '/build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/bitshares.qrc': Cannot find file 'ru_RU.qm'
make[5]: *** [programs/qt_wallet/qrc_bitshares.cpp] Error 1
make[5]: *** Waiting for unfinished jobs....
Updating '/build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/ru_RU.qm'...
    Generated 90 translation(s) (90 finished and 0 unfinished)

however, I think I finally fixed it by manually building the translations before the build starts.

but then it can't find another file, but only in i386 (on amd64 it's fine)
Code: [Select]
[ 95%] /usr/bin/cmake -E cmake_progress_report /build/buildd/bitsharesx-0.4.18/build/CMakeFiles 1
cd /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.18/programs/qt_wallet/images/splash_screen.jpg /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/images
[ 96%] Generating images/qtapp.ico
cd /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet && /usr/bin/cmake -E make_directory /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/images
Generating qrc_bitshares.cpp
cd /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet && /usr/lib/i386-linux-gnu/qt5/bin/rcc -name bitshares -o /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/qrc_bitshares.cpp /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/bitshares.qrc
cd /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.18/programs/qt_wallet/images/qtapp.ico /build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/images
RCC: Error in '/build/buildd/bitsharesx-0.4.18/build/programs/qt_wallet/bitshares.qrc': Cannot find file 'images/qtapp.ico'
make[5]: *** [programs/qt_wallet/qrc_bitshares.cpp] Error 1
make[5]: *** Waiting for unfinished jobs....
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
updates:
1) there are now two packages:
bitsharesx
bitsharesx-cli

the first is the GUI and the cli
the second is cli only

2) we've kept up to date, usually updated within minutes (or at least hours) of release.

However, there is a problem with out-of-tree builds in 0.4.16-RC2 and later:
https://github.com/BitShares/bitshares_toolkit/issues/801

I'm still working on it. Worst case scenario is I'll just upload bitsharesx-cli and not build the gui until it is fixed.
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
dacsunlimited should create a ppa and host it in their name. It should be made available along with other download links.

that would be great
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline bitcoinerS

  • Hero Member
  • *****
  • Posts: 592
    • View Profile
dacsunlimited should create a ppa and host it in their name. It should be made available along with other download links.
>>> approve bitcoiners

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
Sorry, I moved it to showard314/bitshares but forgot to update this forum link!
see below:
Code: [Select]
$ sudo apt-add-repository ppa:showard314/bitshares
$ sudo apt-get update
$ sudo apt-get install bitsharesx

version 0.2.4 has been posted as well
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true