How to install S3QL from source on Fedora 19

S3QL is an online file system for UNIX-like operating systems that provide features like compression, encryption, data de-duplication, immutable trees and snapshotting. It can be used to create a local or remote (online) file system and so can be used to backup your data to a supported Cloud storage platform.

Google Storage, Amazon S3 and OpenStack are supported online Cloud storage services. There are two branches of S3QL – S3QL-1.x and 2.x. The latter being the current active branch, with more features than the former. The 1.x branch does not get new features, only bugfixes. The other difference between the two branches is that the 1.x branch is compatible with Python 2.7, while the 2.x branch is compatible with Python 3.3.

If you run yum install s3ql on Fedora 19, you will be installing a 1.x version, because there is no binary package for a 2.x version in the repository. Which means that to install S3QL-2.x on Fedora 19 and, therefore, get access to the latest features, you will have to compile and install it from source. This article shows how to do just that – compile and install the latest version of S3QL on Fedora 19.

Before you can start compiling the package, here are the list of dependencies that must be installed first:

  • GCC. Installed using yum install gcc
  • Python 3 and Python 3 development packages. You can install these by typing yum install python3 python3-devel
  • Python 3 setup tools, which can be installed using yum install python3-setuptools
  • Python3-apsw. Installed using yum install python3-apsw
  • Libattr-devel. Installed using yum install libattr-devel
  • Pycryptopp. Installed using yum install pycryptopp
  • Pycrypto. Installing Pycryptopp does not appear to satisfy this dependency, so this has to be installed. However, because there is no binary package in the repository, it has to be compiled from source. To do that, follow these steps:
    • Download it using wget
    • Uncompress and untar it using tar zxf pycrypto-2.6.tar.gz
    • Change into the directory (cd pycrypto-2.6) and install it using python3 install
  • Python-paramiko. Installed using yum install python-paramiko
  • xz-devel. Installed using yum install xz-devel
  • Fuse and Fuse development packages. Installed using yum install fuse fuse-devel
  • llfuse. This dependency has to be compiled from source because the version of the binary package available in Fedora (llfuse-0.38) is lower than the required version (llfuse-0.39). If you installed all the dependencies, and opt to use the binary package in the repository, you will get this error when compiling S3QL:

    pkg_resources.VersionConflict: (llfuse 0.38 (/usr/lib64/python3.3/site-packages), Requirement.parse(‘llfuse>=0.39’))

    To compile version 0.39 from source, follow these steps:

    • Download it using wget
    • Then uncompress and untar it by typing bunzip2 -d llfuse* && tar xf llfuse*
    • Change into the directory (cd llfuse*) and install it using python3 install
  • SQLite and its development packages. Installed using yum install sqlite sqlite-devel

After all the dependencies have installed successfully, you may now begin the process of compiling S3QL.

  1. Download it with wget
  2. Unpack it with bunzip2 -d s3ql-2.4.tar.bz2 && tar xf s3ql-2.4.tar
  3. Change into the directory (cd s3ql-2.4) and run python3 build_ext --inplace to build it
  4. Then python3 tests to run a self-test. During my test installation, most of the tests were either SKIPPED or PASSED. There was an error related to SELinux. Part of the output is below:

    rsync: rsync_xal_set: lsetxattr(“”/tmp/s3ql-mnt-ssn0wz/orig/C!pulseaudio/Oõkarm/.sort.B3KkHI””,”security.selinux”) failed: Operation not supported (95)
    rsync: rsync_xal_set: lsetxattr(“”/tmp/s3ql-mnt-ssn0wz/orig/C!pulseaudio/Oõkarm/.ótrue.WWN7XB””,”security.selinux”) failed: Operation not supported (95)
    rsync: rsync_xal_set: lsetxattr(“”/tmp/s3ql-mnt-ssn0wz/orig/C!pulseaudio/Oõkarm/.Ðkinfocenter.lPArfv””,”security.selinux”) failed: Operation not supported (95)
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 2 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    =============== 1 failed, 135 passed, 61 skipped, 1 error in 109.11 seconds========

  5. Even with this SELinux-related error, running python3 install completed successfully

Now that S3QL is installed, the next article will show to to use it to encrypt and backup your data online. Meanwhile, you may read the user guide here.

Related Posts

Sex up Ubuntu 9.10 desktop with Cairo-Dock I'm not a fan of Ubuntu. Never liked it, though I must admit that it is very popular, and has some nice features. I personally don't like distros that...
Persistent storage patterns for Docker in production The conventional wisdom is that containers are great for stateless applications, but inappropriate for stateful apps with persistent data. If this...
The future is encrypted, but your government says that’s not good On the same day that an article titled Security and Privacy on the Encrypted Network: The Future is Encrypted was published by an information security...
Have you met Johnny? If you have never heard of or used John the Ripper, then you most likely have not heard of or used Johnny either. So, what, or who, is Johnny? Well, J...
Apache OpenOffice 3.4 released Apache OpenOffice 3.4, the first (stable) release of the free software office suite since its development was handed over to the Apache Software Found...
Collusion: See who’s tracking you – in real-time At a time when your ISP is tracking your online activities, sites you visit are doing the same (even the one you do not visit are able to track you), ...

We Recommend These Vendors and Free Offers

ContainerizeThis 2016 is a free, 2-day conference for all things containers and big data. Featured, will be presentations and free, hands-on workshops. Learn more at

Launch an SSD VPS in Europe, USA, Asia & Australia on Vultr's KVM-based Cloud platform starting at $5:00/month (15 GB SSD, 768 MB of RAM).

Deploy an SSD Cloud server in 55 seconds on DigitalOcean. Built for developers and starting at $5:00/month (20 GB SSD, 512 MB of RAM).

Want to become an expert ethical hacker and penetration tester? Request your free video training course of Online Penetration Testing and Ethical Hacking

Whether you're new to Linux or are a Linux guru, you can learn a lot more about the Linux kernel by requesting your free ebook of Linux Kernel In A Nutshell.

Leave a Comment

Your email address will not be published. Required fields are marked *