Debian

My excalidraw tracings.

Share your links here :spider_web: .

Packaging

Flashbots software

Ethereum execution clients

Ethereum consensus clients

Incus setup for debian development

Install:

$ sudo apt install incus
$ sudo adduser $USER incus-admin
$ newgrp incus-admin
$ incus admin init --minimal

Launch a container:

$ incus launch images:debian/trixie <container-name>
$ incus config device add <container-name> workspace disk source=/home/<user>/workspace path=/home/<user>/workspace shift=true
$ incus exec <container-name> -- su
# adduser --disabled-password <user>
# passwd --delete <user>
# usermod --append --group sudo <user>
# exit
$ incus exec <container-name> -- su --login <user>
$ sudo apt install devscripts emacs-nox

Go packaging

Install the dh-make-golang patched by otto:

$ curl -LO https://salsa.debian.org/otto/dh-make-golang/-/jobs/8339383/artifacts/raw/debian/output/dh-make-golang_0.8+git20250820.a6fe7fa-1~otto+salsaci+20250923+43_amd64.deb
$ apt install --yes ./dh-make-golang*.deb
export DEBEMAIL=<my-email>
export DEBFULLNAME="<my-name>"
  1. Run dh-make-golang make -dep14 -pristine-tar -type library -upstream_git_history -wrap-and-sort ast -git_revision=<git-revision> <go import path>
  2. Run dh-make-golang estimate. It will report the missing dependencies, so go back to (1) until there are no dependencies.
  3. File the intent to package bug.
  4. Go to https://flight-deck.debian.net/ and create a new repository.
  5. cd <project>
  6. From outside the container: git push --force --verbose
  7. Make a branch for the latest release: git checkout -b import/$(dpkg-parsechangelog -SVersion)
  8. Edit debian/changelog:
    • Replace UNRELEASED with unstable.
    • Add the number of the intent to package bug.
  9. Edit debian/control:
    • Add Otto Kekäläinen <otto@debian.org>, to uploaders.
    • Update Standards-Version to 4.7.2.
    • Improve the Description.
  10. Edit debian/copyright:
    • Add Flashbots <info@flashbots.net> to the debian copyright.
  11. Verify that upstream uses tags and edit debian/gbp.conf:
    • If it uses tags, add the message: This Go package has tags of form 'v1.0.0'.
    • If it doesn’t use tags, add the message:
# This Go package does not tag releases and the Debian packaging is based on                                                                                               
# importing the latest upstream commit on branch 'main' 
  1. Run grep --recursive --fixed-strings TODO debian.

  2. Run debputy reformat --style=black.

  3. Run git add debian.

  4. Run git commit --message 'Initial packaging (Closes: #<itp bug>)'.

  5. Run debuild.

  6. Run lintian --pedantic --display-info.

  7. Run git push.

  8. Create the merge request using a message like this:

    This is a Merge Request targeting the branch debian/sid, which equals the contents of upstream v tag. It will get a debian/ subdirectory only starting from this MR being merged.

    This MR will be updated/rebased until it is ready for upload.

    Please share all the feedback you have. You don’t need to be an expert in the domain - any feedback is valued. Also comments stating that you checked this out but didn’t spot any issues are also valued, as it counts to the number of eyeballs that saw this before upload.

  9. Assign as a reviewer ‘otto’ to the merge request.

  10. Run the pipeline.