This is a history of my attempts at running tahoe-lafs in a fresh pogoplug v4 with archlinuxarm:
v1.9.2
Preparation:
# #Can't go straight to building v1.10 from source without dependencies, so go for the AUR-based package to get dependencies installed # #Install an AUR helper, python and build tools # pacman -S yaourt python2 gcc patch .. snip .. # #Make 'python2' available as 'python' # ln -s /usr/bin/python2 /usr/local/bin/python
Installation:
# yaourt -S tahoe-lafs
This is the first list:
==> tahoe-lafs dependencies: - net-tools (already installed) - python2 (already installed) - python2-zope-interface>=3.6.5 (package found) - twisted (package found) - python2-pyasn1 (package found) - python2-crypto (package found) - pycryptopp (building from AUR) - nevow (building from AUR) - python2-foolscap (package found) - python2-simplejson (package found) - zfec (building from AUR) - python2-pyopenssl (package found) - pyutil (building from AUR) - python2-argparse (building from AUR) - zbase32 (building from AUR) - python2-mock>=0.6.0 (building from AUR)
Arch will then try to install each of these. Some packages do not list 'arm' as a valid/supported architecture, so you will have to manually edit the PKGBUILD file:
==> Continue building python2-mock ? [Y/n] ==> -------------------------------------- ==> ==> Building and installing package ==> WARNING: Building package as root is dangerous. Please run yaourt as a non-privileged user. ==> ERROR: python2-mock is not available for the 'arm' architecture. Note that many packages may need a line added to their PKGBUILD such as arch=('arm'). ==> ERROR: Makepkg was unable to build python2-mock. ==> Restart building python2-mock ? [y/N] ==> ------------------------------------- ==> y ==> Edit PKGBUILD ? [Y/n] ("A" to abort) ==> ------------------------------------ ==> y Please add $EDITOR to your environment variables for example: export EDITOR="vim" (in ~/.bashrc) (replace vim with your favorite editor) ==> Edit PKGBUILD with: vim .. [edited PKGBUILD and manually added 'arm' to the architectures] ..
The same happened to the following packages:
pycryptopp zbase32 zfec
Eventually, all the dependencies will be installed. But my tahoe-lafs installation fails to complete because of some error:
==> Continue building tahoe-lafs ? [Y/n] ==> ------------------------------------ ==> .. snip .. ==> Tidying install... -> Purging unwanted files... -> Compressing man and info pages... -> Stripping unneeded symbols from binaries and libraries... ==> Creating package "tahoe-lafs"... -> Generating .PKGINFO file... -> Generating .MTREE file... -> Compressing package... /usr/bin/makepkg: line 1893: 5902 Killed ${COMPRESSXZ[@]:-xz -c -z -} bsdtar: Write error ==> ERROR: Failed to create package file. ==> ERROR: Makepkg was unable to build tahoe-lafs. ==> Restart building tahoe-lafs ? [y/N] ==> ----------------------------------- ==>
And, as normal user:
.. snip .. ==> Tidying install... -> Purging unwanted files... -> Compressing man and info pages... -> Stripping unneeded symbols from binaries and libraries... ==> Creating package "tahoe-lafs"... -> Generating .PKGINFO file... -> Generating .MTREE file... -> Compressing package... xz: (stdin): Cannot allocate memory bsdtar: Write error ==> ERROR: Failed to create package file. ==> ERROR: Makepkg was unable to build tahoe-lafs. ==> Restart building tahoe-lafs ? [y/N] ==> ----------------------------------- ==>
Will try in an arm virtual machine with more memory. Stay tuned.
v1.10.0
After you're done with all of that, try a standalone v1.10 again:
$ unzip allmydata-tahoe-1.10.0.zip .. snip .. $ cd allmydata-tahoe-1.10.0 $ python setup.py build .. snip .. $ ./bin/tahoe --version allmydata-tahoe: 1.10.0 foolscap: 0.6.4 pycryptopp: 0.6.0.1206569328141510525648634803928199668821045408958 zfec: 1.4.24 Twisted: 13.0.0 Nevow: 0.10.0 zope.interface: unknown python: 2.7.4 platform: Linux-Arch_Linux_-armv5tel-32bit_ELF pyOpenSSL: 0.13 simplejson: 3.2.0 pycrypto: 2.6 pyasn1: 0.1.4 mock: 1.0.1 setuptools: 0.6c16dev4
Still need to test web interface, storage node, etc.
Also, the test suite will not complete:
$ python setup.py trial running update_version no version-control data found, leaving _version.py alone running trial .. snip (version info) .. allmydata.test.test_backupdb BackupDB test_basic ... [OK] test_check ... [OK] test_directory ... [OK] test_fail ... [OK] test_unicode ... [OK] test_upgrade_v1_v2 ... [OK] test_wrong_version ... [OK] allmydata.test.test_base62 T test_ende_0x00 ... [OK] test_ende_0x000000 ... [OK] test_ende_0x01 ... [OK] test_ende_0x0100 ... [OK] test_ende_0x010000 ... [OK] test_ende_longrandstr ... [OK] test_ende_randstr ... [OK] test_num_octets_that_encode_to_this_many_chars ... [OK] test_odd_sizes ... [OK] allmydata.test.test_checker AddLease test_875 ... [OK] BalancingAct test_good_share_hosts ... [OK] TooParallel test_immutable ... [OK] WebResultsRendering test_check ... [OK] test_check_and_repair ... [OK] test_literal ... [OK] allmydata.test.test_cli Admin test_derive_pubkey ... [OK] test_generate_keypair ... [OK] Backup test_backup ... [OK] test_backup_with_nonexistent_alias ... [OK] test_backup_without_alias ... [OK] test_exclude_from_tilde_expansion ... [OK] test_exclude_options ... [OK] test_exclude_options_unicode ... [OK] test_ignore_symlinks ... [OK] test_ignore_unreadable_directory ... [OK] test_ignore_unreadable_file ... [OK] CLI test_alias ... [OK] test_alias_tolerance ... [OK] test_catalog_shares_error ... [OK] test_dump_cap_chk ... [OK] test_dump_cap_chk_directory ... [OK] test_dump_cap_lit ... [OK] test_dump_cap_mdmf ... [OK] test_dump_cap_mdmf_directory ... [OK] test_dump_cap_sdmf ... [OK] test_dump_cap_sdmf_directory ... [OK] test_exception_catcher ... [OK] test_listdir_unicode_good ... [OK] Check test_check ... [OK] test_check_with_nonexistent_alias ... [OK] test_check_without_alias ... [OK] test_deep_check ... [OK] Cp test_copy_using_filecap ... [OK] test_cp_overwrite_readonly_mutable_file ... [OK] test_cp_replaces_mutable_file_contents ... [OK] test_cp_verbose ... [OK] test_cp_with_nonexistent_alias ... [OK] test_dangling_symlink_vs_recursion ... [OK] test_not_enough_args ... [OK] test_unicode_dirnames ... [OK] test_unicode_filename ... [OK] CreateAlias test_create ... [OK] test_create_unicode ... [OK] Errors test_broken_socket ... [OK] test_get ... [OK] Get test_get_with_nonexistent_alias ... [OK] test_get_without_alias ... [OK] Help test_add_alias ... [OK] test_backup ... [OK] test_check ... [OK] test_cp ... [OK] test_create_alias ... [OK] test_create_client ... [OK] test_create_introducer ... [OK] test_create_node ... [OK] test_debug_flogtool ... [OK] test_debug_trial ... [OK] test_deep_check ... [OK] test_get ... [OK] test_list_aliases ... [OK] test_ln ... [OK] test_ls ... [OK] test_manifest ... [OK] test_mkdir ... [OK] test_mv ... [OK] test_put ... [OK] test_restart ... [OK] test_rm ... [OK] test_run ... [OK] test_start ... [OK] test_stats ... [OK] test_stop ... [OK] test_unlink ... [OK] test_webopen ... [OK] List test_list ... [OK] test_list_mdmf ... $