wiki:ArchLinuxArmInstallation

Version 3 (modified by igor, at 2013-05-03T15:08:13Z) (diff)

--

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 gcc, 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 ... $