Humble Bundle

From ArchWiki

Humble Bundle is a digital distributor of commercial video games, that stocks many titles with Linux support. It gained popularity with the sale of the "Humble Indie Bundle", raising funds for charities while selling games at a price set by the buyer.

Purchase

There are two purchasing methods:

  • Humble Indie Bundles — time-limited promotions where a collection of games can be bought at a price determined by the purchaser, with a low minimum.
  • Humble Store — traditional (fixed-price, single-game) purchases, usually via a widget on the game developer's website.

Both give you the exact same versions of the games, and in both cases the game ends up in your personal game library on the Humble Bundle website, from where you can download it. Some games have keys that can be used on an other platform, e.g. Steam.

Installation

Many of the games offered on the platform have Linux versions, often provided in the form of a .deb package for Debian/Ubuntu, and a .tar.gz archive or .sh self-extracting archive for "generic" Linux distributions.

In some cases, you can just extract the .tar.gz or .sh somewhere on your system and run the game executable in the extracted folder. But in many other cases, additional installation steps are required to make the game run error-free and help tracking the installed files.

Using AUR packages

AUR packages for Humble Bundle games take care of all the steps required to make each game run.

These AUR package typically include the suffix -hib in their name.

Providing the game archive

You have to provide your purchased game archive to the AUR package so that it can install it. There are a few ways to achieve this:

Manually copy/symlink the archive

Manually download the game archive from your Humble Bundle library. Then copy or symlink the game archive to the PKGBUILD folder. (You can look at the source array in the PKGBUILD to see which exact archive file it expects.

Register a download agent

Most AUR packages for Humble Bundle games helpfully mark the game archive using the custom hib:// URI protocol. You can specify a handler for this protocol in the configuration file /etc/makepkg.conf, by adding a line to the DLAGENTS array right at the top of the file. You only need to do this once. The process for placing game archives into PKGBUILD directories will then be automated.

For manually downloaded archive

If you use the following DLAGENT, you can simply download your Humble Bundle archives to somewhere in your ~/Downloads, and AUR packages will automatically find and symlink it:

'hib::/usr/bin/sh -c find\ \$HOME/Downloads\ -name\ \$(basename\ %u)\ -exec\ ln\ -s\ \\\{\\\}\ %o\ \\\;\ -quit'
For automatically downloading the archive

If you have the hib-dlagent-gitAUR program installed, you can use the following DLAGENT to have it automatically download the game archive from your Humble Bundle library on demand:

'hib::/usr/bin/hib-dlagent -u email -o %o %u'

It will ask you for your password each time. If complete automation is desired, you can hard-code the password using the -p parameter, but for security reason you probably should not do this in the global /etc/makepkg.conf which all user accounts can read, but rather create the file ~/.makepkg.conf and add it there as such:

DLAGENTS+=('hib::/usr/bin/hib-dlagent -u email -p password -o %o %u')

Manual installation

Manually getting a Humble Bundle game to run after extracting it typically involves two steps.

Installing dependencies

The games tend to assume that all dependencies which are part of a standard Ubuntu system, are installed. Remember that if the game only has a 32bit binary, you have to install the lib32- versions of all dependencies on a 64bit system.

Removing bundled libraries that cause problems

Some dependencies are bundled with the games, usually in a subfolder called lib or lib32 or lib64. Unfortunately, some of these cause problems on Arch Linux, in which case you will have to delete them from that subfolder, so that the game will use the version of the library from /usr/lib*) instead and install the packages which provide said libraries.

If you are unsure, ask on the forum for help.