Kubo installation package generator for Ubuntu/Debian is now released in Beta!

The Debian package generator for Kubo, compatible with any Go installation, is now released as a Beta version!


Overview

The package generator supports in-place cloning for the Kubo repository. To make a package, the user should:

  1. Clone Kubo repository, and check out the proper version
  2. Clone the project repository into debian subdirectory within the local copy of Kubo repository.
  3. Build the package with debhelper (the command should be run from the root directory of the Kubo repository).
  4. Grab the built packages from the parent directory of the cloned Kubo repository.

Build command

debuild --prepend-path=</path/to/go-binary> -i -us -uc -b

Features

The generator contains a set of introspective build scripts that allow end-users to:

  • Set up the IPFS repository location and configuration backup file location in a convenient APT-compatible way during the first installation (user interaction windows).
  • Grab the previously exported configuration file and initialize a new IPFS repository preserving the identity.
  • Basic support for userspace installation (mostly for laptops and low-end systems operated by a single user).
  • Select and apply the networking profile during the first installation.
  • Install Bash completion settings automatically.
  • Set up CPU time accounting, thanks to systemd.
  • Set up memory quotas for systemd unit.
  • Select hardened safety installation mode (untested).
  • Automatically generate, install and update the systemd unit files.

Links

Please check the project here:

The pilot Debian package of Kubo v0.27.0 is also built and tested on Ubuntu 22.04 LTS and Go 1.22.1:


Roadmap

The project needs improvements. The most urgent milestones of the improvement are listed below:

  1. Creation of a changelog conversion script for the Kubo repository.
  2. Dependency review.
  3. Documentation.
  4. Building and testing of cross-compilation pipeline.
  5. Tests for userspace installation mode.
  6. Integration with the main Kubo repository.
1 Like

builds and installs nicely. I haven’t looked deeply into it, but will make this my main ipfs daemon going forward, then I’ll see how it works. Good work!

1 Like

Thanks for testing, @bahner! Unfortunately, it does not seem possible to make an Ubuntu PPA from this package, as we don’t have Go as an official Debian-compliant package, but we could have a Github pipeline to build the release packages for different architectures.

Haven’t come across this problem, but is available as a snap. Not sure how that would work, BUT:

This is a known issue, right. golang is not that readily available. You could just make it obvious in the description and create a check in one of the scripts, eg. postinst.

pseudo-code: if [[ $(which go) == “” ]]; then echo "BAWK. No go found in path. Please install and make available in ${PATH}.

You catch my drift. It is very much a quirk, but I would find that acceptable.

@bahner it is not a build issue, the main point here is the PPA processor on launchpad.net does not accept binary packages and custom build pipelines, so we could not create the preinstalled pipeline with ready Go binaries and let Canonical servers build the package to put it in the mainline Ubuntu PPA. So the only thing we could do in this situation, is to provide our own Debian APT repo.

It does not seem a good way for me, as it does not allow to prepare a cross-compiling pipeline and to exploit many different Go installations

v0.28.0 release is now published!


Need an advice from @hector: what do you guys think about returning with Debian package builder in our CI pipelines?

The Make pipeline is to be integrated in the repository to automatically build and set up Debian package for Ubuntu in PPA. Contribution needed!

I invite everyone to examine the repository:

and share the opinions and feedback before creating an Ubuntu PPA and CI pull request.

I added a successfully built Ubuntu Launchpad package for version 0.27.0!

@hector @stebalien @Jorropo could you please examine the PPA for the possible toolchain bugs? I will build the packages for the last released versions and will be ready to open them for the community!

The PPA is now ready for installation!