Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added automated build of Debian package #10479

Closed
wants to merge 21 commits into from
Closed

Conversation

twdragon
Copy link
Contributor

This PR requests the re-introduction of the universal Github Actions-compatible CI pipeline that automates the building of the following entities:

  1. Build-ready native source package for Debian distribution with installed Go compiler. The build could be done automatically by devscripts and dpkg toolchains.
  2. Binary Debian package (.deb archive) built for the GitHub Action Runner's architecture.
  3. The build artifacts are uploaded to the runner space under the name kubo-debian.

The handler scripts and maintainer scripts are taken from the repository, which is now included in the Kubo repository as a submodule. Please feel free to ask for total copying of this repository's code and removing the submodule. In addition, please note that this repository also maintains the PPA-specific build pipeline for uploading the packages on Ubuntu Launchpad.


The package installs Kubo as a systemd service with the selected CPU/RAM accounting mode, bash completion script and networking profile, as described in the dedicated discussion thread. It is also possible to install Kubo for a non-system user, but the node is still managed by systemd.


The main intention under this PR is to provide the automated pipeline for building a Debian-compatible source package for downloading and building on the end user's side, but also it could be easily adapted for building binary packages for different architectures. If this PR will be considered a good addition to the Kubo pipelines, the cross-compilation toolchain will be introduced in the mainline, not PPA toolchain.

@twdragon twdragon requested a review from a team as a code owner August 13, 2024 13:45
Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am afraid we are not able to accept this PR for multiple reasons:

@twdragon what is the intention behind this? Have official .deb attached to Releases in this repository and in https://dist.ipfs.tech/kubo/?

Maintenance-wise, we've made conscious decision to not provide distribution-specific packages, and only have generic .tar.gz for linux (https://dist.ipfs.tech/kubo/v0.29.0/), and then let every distribution to build their own package from it (or sources).

Kubo maintainers made sure README is clear which builds are official, and which ones are third-party/distribution-specific, and we don't want to muddy the waters here.

Perhaps a way forward here is to change this PR to run this pipeline in your own repository, and then add your .deb to https://github.com/ipfs/kubo#unofficial-linux-packages, like you did in #10467 with Ubuntu?

@twdragon
Copy link
Contributor Author

twdragon commented Aug 15, 2024

@twdragon what is the intention behind this? Have official .deb attached to Releases in this repository and in https://dist.ipfs.tech/kubo/?

Yes, as the built binary packages are compatible with almost all Debian-based distributions carrying onboard the libc6 and systemd packages, I would suggest this. But I will also rethink about making another PR in that repository. Instead, I may try to use my ready scripts to automate building and uploading to PPA the packages for most software suites we have now in https://dist.ipfs.tech

@lidel thanks for the reasoning, now give me some time to think, please. I want to provide convenience packages for mostly the Ubuntu ecosystem, so I need also to think about how to organize the processes. From the next release I also plan to make PPA builds cross-platform, so the packages should be automatically built for all architectures officially supported in Ubuntu.

If you have any advice here, please tell me!

@lidel
Copy link
Member

lidel commented Aug 20, 2024

@twdragon thank you for creating community resources like this.
I'm closing this PR as Ubuntu-specific automation needs to live outside of this repository.

I think running automation in your own org/repos is the way to go.
We can add them to "Unofficial" section in Readme.

IPFS project is only producing .tar.gz and docker images,
and we plan to keep that focus, and remain distribution-agnostic.

In case it helps / saves you CI time:

https://dist.ipfs.tech/kubo/ provides tar.gz for linux archs:

  • linux-386
  • linux-amd64
  • linux-arm
  • linux-arm64

We also provide docker images at https://hub.docker.com/r/ipfs/kubo/tags for

  • linux/amd64
  • linux/arm64
  • linux/arm/v7

You could reuse these prebuild binaries, and package them up for your distribution, and only build for missing platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants