Author

Topic: Armory - Discussion Thread - page 200. (Read 521829 times)

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 11:39:09 AM
Ok, I removed the previous package. Instealled the new amd64-python2.7...
...and it works Smiley

As soon as I get some extra BTC in my wallet gonna throw you some for all the trouble.
After all I was the only one to complaint. Smiley

Fantastic!  I wonder if this means that I have to maintain separate packages based on python version...

You might've been one of the only people to try it, too!  I don't know how widespread the issue is when I only have a couple people try and one fails...

For reference, what OS are you running?

legendary
Activity: 1358
Merit: 1002
April 20, 2012, 11:25:59 AM
Ok, I removed the previous package. Instealled the new amd64-python2.7...
...and it works Smiley

As soon as I get some extra BTC in my wallet gonna throw you some for all the trouble.
After all I was the only one to complaint. Smiley
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 11:09:27 AM
Hey, wait a minute, if that's all it was, then it shouldn't have worked at all, because I don't have python 2.7, so the python version obviously doesn't make any difference at all. Where exactly did psy's error come from? You know what, just remove libpython from the dependency list, put up one version per architecture, and see if that works on both my and psy's system. If it does, problem solved. Except for the problem of why it didn't work on psy's system originally after he hacked the dependencies, that trick should have worked...

Yeah, I was hoping that my dependencies hack would work. After all it asks for libpython2.6 or superior, doesn't it?
Isn't that what >=2.6 means? Equal or superior?

I will try it again and post results in a while.

Well, the dependency in that case was wrong.  It needs to be =2.6, because the library was compiled with libpython2.6, which causes fatal problems with the program if the user only has python2.7. 

Make sure you "dpkg -r armory" before trying.  I just want to make sure you don't add complications by having mixed version of the package.  I haven't figured out how to get dpkg-builder to increment the debian build numeber (i.e. increase it from "armory_0.74-1" to "armory_0.74-2").  One more thing to work on...
legendary
Activity: 1358
Merit: 1002
April 20, 2012, 11:00:08 AM
Hey, wait a minute, if that's all it was, then it shouldn't have worked at all, because I don't have python 2.7, so the python version obviously doesn't make any difference at all. Where exactly did psy's error come from? You know what, just remove libpython from the dependency list, put up one version per architecture, and see if that works on both my and psy's system. If it does, problem solved. Except for the problem of why it didn't work on psy's system originally after he hacked the dependencies, that trick should have worked...

Yeah, I was hoping that my dependencies hack would work. After all it asks for libpython2.6 or superior, doesn't it?
Isn't that what >=2.6 means? Equal or superior?

I will try it again and post results in a while.
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 10:58:39 AM
currently requires a program (bitcoin) which is not in the official Debian repositories
http://packages.debian.org/search?keywords=bitcoind

Shocked How long has that been there? And more importantly, will forcing people to install it from there break any existing installation? Looking at the version numbers, I'm guessing it would.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 10:52:20 AM
currently requires a program (bitcoin) which is not in the official Debian repositories

http://packages.debian.org/search?keywords=bitcoind

Does Armory really need bitcoin, instead of bitcoind? In this case, why?

Ciao!

Strictly speaking, it requires any localhost version of bitcoin to be running.  It can be bitcoin-qt or bitcoind.  As long as there is a localhost node to do blockchain validation and networking fanciness (peer-finding, blacklisting, address collection, etc).

So some form of bitcoin is technically required, but I can't put it in the depends list for fear that a distribution will not have it whatsoever, and then the package will be essentially uninstallable.

However, with packages out of the way, I can get on with doing my dev plans to get to Beta, which then will lead me to dealing with networking-independence (which will prob be the first priority after Beta).  Such update will also likely to lead to me removing some of my blockchain code and using the underlying library (libcoin, libbitcoin?) which will then allow it to work on all architectures smoothly:  Win32 included.

I believe I can stop thinking about debian packages for now.  If you are using Ubuntu, you can use the packages (which seem to work with mixed python no problem), and otherwise you can build from source.  You should be able to "make install" now, and then "chmod 755 dpkgfiles/postinst; dpkgfiles/postinst configure" in order to install the menu entries.   I haven't tested this, but if you're in a non-standard distribution, you are probably capable of handling the subtleties (please email me to work it out if there are problems).


legendary
Activity: 2450
Merit: 1008
April 20, 2012, 10:44:32 AM
currently requires a program (bitcoin) which is not in the official Debian repositories

http://packages.debian.org/search?keywords=bitcoind

Does Armory really need bitcoin, instead of bitcoind? In this case, why?

Ciao!
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 10:38:05 AM
Gah!  I added python to the version number, but forgot to automate the depends line.  This really is a PITA!  I just replaced that version on the downloads page.  It should be correct.

At least I'm getting these stupid little things out the way before I declare a real release...
Hey, wait a minute, if that's all it was, then it shouldn't have worked at all, because I don't have python 2.7, so the python version obviously doesn't make any difference at all. Where exactly did psy's error come from? You know what, just remove libpython from the dependency list, put up one version per architecture, and see if that works on both my and psy's system. If it does, problem solved. Except for the problem of why it didn't work on psy's system originally after he hacked the dependencies, that trick should have worked...

Also, I've discovered a bug in the handling of white-on-black color schemes, and it's a big one. When printing a paper wallet, it turns out that white text does not actually make it easier to read. Grin
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 10:36:21 AM
So, for the purposes of offline systems:  users want to be able to setup their offline system without ever connecting it to the internet.  My solution to this, so far, has been

Code:
--(1) Set it up with an internet connection
--(2) Disconnect network cable forever
--(3) Create first wallet

However, why should users have to do this?  The Windows version bundles everything into the .msi file.  Of course, the user could go to the offline system with the package, and use the "Generate Download Script" to get the wget-list of dependencies to execute online and bring back... but that doesn't work if they don't own any online linux machines.  And even if they do, it's a mild PITA.

My other option would be to actually distribute the packages, or at least the shared-objects.  But I wonder if there's licensing issues with that.  Plus the packages would probably huge, and might require a separate package for each supported distribution (one for 10.04, one for 10.10, 11.04 11.10, and then double that for 32-bit and 64-bit).

So, what options do I have to enable a single-step installation on a freshly-installed offline system having none of the current dependencies met?

EDIT: On second thought, maybe I can add all the .so files to the make-install step.  It would copy the .so files from my build system right into the execution directory.  Though, I'm concerned about the python version issues:  combining a libpython2.6.so file with a system full of python2.7 libraries...?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 10:17:32 AM
The python 2.7 version works fine on my system even though I have python 2.6, so either you've screwed up the dependencies again...

Quote
Package: armory
Version: 0.74-python2.7-1
Architecture: amd64
Maintainer: Alan C. Reiner <[email protected]>
Installed-Size: 13296
Depends: libpython2.6, python-qt4, python-twisted

...yup, you've screwed up again Roll Eyes ...or it doesn't depend on a particular version of python at all, in which case you can safely remove it from the dependency list, and I have no idea what was causing psy's problems.

Gah!  I added python to the version number, but forgot to automate the depends line.  This really is a PITA!  I just replaced that version on the downloads page.  It should be correct.

At least I'm getting these stupid little things out the way before I declare a real release...
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 10:10:02 AM
The python 2.7 version works fine on my system even though I have python 2.6, so either you've screwed up the dependencies again...

Quote
Package: armory
Version: 0.74-python2.7-1
Architecture: amd64
Maintainer: Alan C. Reiner <[email protected]>
Installed-Size: 13296
Depends: libpython2.6, python-qt4, python-twisted

...yup, you've screwed up again Roll Eyes ...or it doesn't depend on a particular version of python at all, in which case you can safely remove it from the dependency list, and I have no idea what was causing psy's problems.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 09:35:33 AM
Okay!  I think I got it!  

Please execute "sudo dpkg -r armory" before attempting to install this package.  Since the version number didn't increment, your system may be confused by this...

If you had problems before, please try it again by downloading the appropriate version from the downloads page.

  • It looks like dependencies worked this time.  I used the short list produced by Foxpup.  I tested it on a mostly-fresh system and got the appropriate errors.  Double-clicking and letting the Ubuntu package manager deal with it did result in those dependencies being installed.
  • Menu options now show up in the "Internet" menu on my computer.  Thanks again to Foxpup for that.
  • There is now a separate version for python2.6 and python2.7.   For me, the python2.6 version worked on my 11.10 system with python2.7, but clearly others were having problems.  So I compiled it again on the 11.10 system and posted the .deb file as well.  The packages are marked with arch and python version.

As for the menu options:  it is just my main system where the menu got screwed up.  When I install the package on a [mostly-]fresh new system, the menu options appear as expected.  Please let me know...

P.S. -- Foxpup, I installed nothing extra in the Ubuntu 11.10 system.  "python --version" replies with "Python 2.7.2+".  And when I run the .deb package everything goes smoothly and it works.  It does look like I have python2.6 libraries on that system... that would explain it...  (libpython2.6.so.1.0)
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 09:32:28 AM
Actually, I meant that my .deb file produced on 10.04 with python2.6 worked on Ubuntu 11.10 which uses python 2.7 and it worked when I manually installed the dependencies.  Which is why I posted the apt-get installer line in my original .deb posting.
You manually installed libpython2.6 on top of libpython2.7? Shocked Or are you saying your binary doesn't really depend on libpython2.6 at all? Because psy's post:
But when trying to start Armory it crashes when swig_import_helper tries to load libpython2.6.so.1.0 on CppBlockUtils.py line 21 because it doesn't exists...
seems to indicate pretty conclusively that it does. Or doesn't it?

As for dependencies, I noticed that I had all my dependencies on the "Build-Depends" line, and no "Depends" line.   I'm trying to get dependencies worked out, but every time I compile the .deb, it overwrites my depends line and puts it's own in there.  Definitely needs some improvement.
What the Hell? That doesn't make any sense. If whatever crazy packager you're using doesn't start making more sense, you may be better off just creating the .deb file by hand. Roll Eyes

Btw, your suggestion for Categories seems to have worked... almost.  I now have 2 of the 3 icons under my "Internet" tab, but the other one somehow ends up in "Other" anyway.  I think I may have messed up my menu Sad
I think you may have just made a typo. Wink
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 08:48:17 AM
Clearly something was wrong with the dependencies, but it still worked on my system, so I thought I'd throw it out there to find out that no one else could use it, anyway.  I'll try to get that all straightened out today.  If you used the package and you were successful, please let me know!  All I've heard is unsuccess!
Well of course it worked on your system, you built it after all, so obviously you have all the dependencies already. It also works on my system, because I already downloaded the dependencies when I was building from the source. It's the people who don't have the dependencies already who need the package to contain a correct dependency list, otherwise the package will install without the correct dependencies, and that won't work at all.

I think the following dependencies are correct (for the binary package, compiling from source requires extra stuff):
libpython2.6
python-qt4
python-twisted
(all other dependencies are children of these dependenies, so can be excluded from the list)

Actually, I meant that my .deb file produced on 10.04 with python2.6 worked on Ubuntu 11.10 which uses python 2.7 and it worked when I manually installed the dependencies.  Which is why I posted the apt-get installer line in my original .deb posting.

As for dependencies, I noticed that I had all my dependencies on the "Build-Depends" line, and no "Depends" line.   I'm trying to get dependencies worked out, but every time I compile the .deb, it overwrites my depends line and puts it's own in there.  Definitely needs some improvement.

Btw, your suggestion for Categories seems to have worked... almost.  I now have 2 of the 3 icons under my "Internet" tab, but the other one somehow ends up in "Other" anyway.  I think I may have messed up my menu Sad

Working on the dependencies thing now...
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 08:43:08 AM
Speaking of which, I'm obviously quite disappointed with the lack of success of these packages.  It sounds like I'd have to compile a different version for python 2.5, 2.6 and 2.7, and amd64 and i386.  That's at least 6 packages (and 6 configurations I need) Sad    For now, I actually can support amd64-python2.6 and amd64-python2.7.  And probably the equiv for i386.

Is there a way to set up the package for install and make-install instead of dumping the binaries in the package instead?  I mean, I know someone can just download the source and do that, but obviously I want to find a way to make this easily supported. 

In the end, were all problems related to the python issue? 
Looks like it. The different python versions use different filenames for the library, even though the different versions are mostly compatible, causing the interpreter to crash when it can't find the version of the library it expects. Is there no way of using the statically-linked python interpreter? Or does it need to dynamically linked for Qt or something? (I don't know anything about python)

Clearly something was wrong with the dependencies, but it still worked on my system, so I thought I'd throw it out there to find out that no one else could use it, anyway.  I'll try to get that all straightened out today.  If you used the package and you were successful, please let me know!  All I've heard is unsuccess!
Well of course it worked on your system, you built it after all, so obviously you have all the dependencies already. It also works on my system, because I already downloaded the dependencies when I was building from the source. It's the people who don't have the dependencies already who need the package to contain a correct dependency list, otherwise the package will install without the correct dependencies, and that won't work at all.

I think the following dependencies are correct (for the binary package, compiling from source requires extra stuff):
libpython2.6
python-qt4
python-twisted
(all other dependencies are children of these dependenies, so can be excluded from the list)
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 07:52:21 AM
Considering the dependencies are incorrect and it creates invalid menu entries, and currently requires a program (bitcoin) which is not in the official Debian repositories, I don't think it's quite at that stage yet. Wink

Agreed.  It will be a while before this even becomes a candidate for an official package.  There's a lot of work to do.

Speaking of which, I'm obviously quite disappointed with the lack of success of these packages.  It sounds like I'd have to compile a different version for python 2.5, 2.6 and 2.7, and amd64 and i386.  That's at least 6 packages (and 6 configurations I need) Sad    For now, I actually can support amd64-python2.6 and amd64-python2.7.  And probably the equiv for i386.

Is there a way to set up the package for install and make-install instead of dumping the binaries in the package instead?  I mean, I know someone can just download the source and do that, but obviously I want to find a way to make this easily supported.  

In the end, were all problems related to the python issue?  

Foxpup,

Thanks for that link.  I tried lots of different things in the "Categories" field and nothing worked.  I eventually found a website that said "You have to use GNOME;Applications:...;", so that's what I did, even though it didn't improve the situation.  

Clearly something was wrong with the dependencies, but it still worked on my system, so I thought I'd throw it out there to find out that no one else could use it, anyway.  I'll try to get that all straightened out today.  If you used the package and you were successful, please let me know!  All I've heard is unsuccess!

-Alan
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 07:41:28 AM
FINALLY!  Ubuntu/Debian package for Armory!
Great!

Could you propose your package to Debian, to be included in the official repositories?

Considering the dependencies are incorrect and it creates invalid menu entries, and currently requires a program (bitcoin) which is not in the official Debian repositories, I don't think it's quite at that stage yet. Wink
legendary
Activity: 2450
Merit: 1008
April 20, 2012, 07:28:55 AM
FINALLY!  Ubuntu/Debian package for Armory!
Great!

Could you propose your package to Debian, to be included in the official repositories?

Code:
$ reportbug -b wnpp

Ciao!
full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
April 20, 2012, 06:36:05 AM
Can Armories offline wallet/cold storage function be used as a payment solution for online shopping carts?
https://bitcointalksearch.org/topic/want-to-build-a-website-0-coding-experience-should-i-77312

Please note my PHP Spider to monitor the blockchain idea.  Grin
legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 03:00:12 AM
Well, I can't install it. It wants libpython2.6. It seems libpython2.7 is not good enough for it, despite being good for 0.73-alpha.

Tried to trick the installer, and I was successful on doing it. But when trying to start Armory it crashes when swig_import_helper tries to load libpython2.6.so.1.0 on CppBlockUtils.py line 21 because it doesn't exists...
It seems that when compiling from source, it uses whatever version of libpython you happen to have, but the binary in the Debian package is dynamically linked to libpython2.6. I don't see a solution as long as Armory needs to be dynamically linked to libpython.

Also noticed that ArmoryQt.py didn't had permissions set for being executed as an application. Until I gave it permissions it didn't even crashed, just didn't worked at all Cheesy
I'm pretty sure python programs don't need executable permissions. At least they don't in python 2.6...

Well, hang on to your older Ubuntu distros, because I can't even find libpython2.6 on Synaptic anymore, just 2.7 and 3.2, both of which are installed.
That's because you can't have python 2.6 and 2.7 both installed on the same system, so any given distro will only have one or the other. Sucks. (You can downgrade from 2.7 to 2.6 if you change your distro settings, but installing packages from a different distro almost always ends in tears. I do not recommend you attempt this.)
Jump to: