Debian Package Tracker
Register | Log in
Subscribe

debcraft

Easy, fast and secure way to build Debian packages

Choose email to subscribe with

general
  • source: debcraft (main)
  • version: 0.5.0
  • maintainer: Otto Kekäläinen (DMD)
  • arch: all
  • std-ver: 4.7.0
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • stable: 0.5.0
  • testing: 0.5.0
  • unstable: 0.5.0
versioned links
  • 0.5.0: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • debcraft (3 bugs: 0, 2, 1, 0)
action needed
Marked for autoremoval on 21 October due to docker.io, xdelta: #1098128, #1115952 high
Version 0.5.0 of debcraft is marked for autoremoval from testing on Tue 21 Oct 2025. It depends (transitively) on docker.io, xdelta, affected by #1098128, #1115952. You should try to prevent the removal by fixing these RC bugs.
Created: 2025-08-30 Last update: 2025-10-09 22:02
1 bug tagged patch in the BTS normal
The BTS contains patches fixing 1 bug, consider including or untagging them.
Created: 2025-08-18 Last update: 2025-10-09 23:00
2 open merge requests in Salsa normal
There are 2 open merge requests for this package on Salsa. You should consider reviewing and/or merging these merge requests.
Created: 2025-09-23 Last update: 2025-10-09 03:33
34 new commits since last upload, is it time to release? normal
vcswatch reports that this package seems to have new commits in its VCS but has not yet updated debian/changelog. You should consider updating the Debian changelog and uploading this new version into the archive.

Here are the relevant commit logs:
commit faac104d0df82f4d9be284822608d6b49402a7bb
Author: Otto Kekäläinen <otto@debian.org>
Date:   Wed Oct 8 16:45:56 2025 -0700

    Replace DEBCRAFT_INTERACTIVE with simpler CONTAINER_CAN_HAVE_TTY
    
    Set variable if tty detected and not running inside CI.

commit bd751b62e59e3da514466939b5a21d35e6218f07
Author: Otto Kekäläinen <otto@debian.org>
Date:   Mon Sep 15 04:42:44 2025 +0000

    Replace `dpkg-parsechangelog` with plain shell commands
    
    Stop relying on `dpkg-parsechangelog` from Debian package `dpkg-dev`,
    which isn't available if the host system is Fedora, MacOS etc.
    
    The new approach using `head`, `cut` and `grep` is approach is nearly
    equivalent in functionality but avoids the external dependency.

commit 9d28ca647d0915e8e87247c6e2b38f3061c19ac1
Author: Otto Kekäläinen <otto@debian.org>
Date:   Sun Sep 14 23:25:57 2025 -0700

    Add support for sccache and Rust builds caching

commit 65001342cf7d4ef760440167f5a11c4a6d721961
Author: Otto Kekäläinen <otto@debian.org>
Date:   Mon Sep 8 10:41:38 2025 -0700

    Pin Debian experimental to enable packages getting installed from there
    
    Building in experimental does not actually pull in any dependencies from
    Debian experimental [1], so pinning is needed for any experimental
    packages to get installed.
    
    [1] https://github.com/debuerreotype/docker-debian-artifacts/blob/dist-amd64/experimental/Dockerfile

commit a95df376f2b021581fdd2dace4fab771fe54eebc
Author: Otto Kekäläinen <otto@debian.org>
Date:   Wed Apr 16 21:11:49 2025 +0300

    Rename `debcraft validate` to `debcraft improve` and extend features
    
    - Skip installing lintian-brush and licenserecon on older Debian
      releases as packages cannot be a hard requirement, as otherwise the
      container build could not complete on some of the older Debian/Ubuntu
      releases.
    
    Closes: #1111477
    
    Gbp-Dch: Full

commit 6fd3d6978dd13c2c2aee0d4f4eb5548f16814a46
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Sep 30 19:52:54 2025 -0700

    Separate test depends from build depends (Closes: #1116727)

commit 43f7f5488e94fc036fa8c37c7d2ef638ac9f6ba6
Author: Otto Kekäläinen <otto@debian.org>
Date:   Sun Sep 14 23:02:07 2025 -0700

    Update copyright years and format debian/copyright properly

commit 5df968b58dcdfd7f15f97cd438f6dc9d19c1df6c
Author: Otto Kekäläinen <otto@debian.org>
Date:   Sun Sep 14 14:03:20 2025 -0700

    Strip debug symbols from GCC to keep container image size reasonable
    
    Before:
    
        --- /usr ---------------------------------------------------
                                                  /..
          958.8 MiB [###########################] /libexec
          438.0 MiB [############               ] /lib
          242.8 MiB [######                     ] /share
          239.2 MiB [######                     ] /bin
           27.4 MiB [                           ] /include
            5.1 MiB [                           ] /sbin
           56.0 KiB [                           ] /local
            4.0 KiB [                           ] /lib64
        e   4.0 KiB [                           ] /src
        e   4.0 KiB [                           ] /games
    
        --- /usr/libexec/gcc/x86_64-linux-gnu/15 -------------------
                                                  /..
          319.9 MiB [###########################]  cc1plus
          303.5 MiB [#########################  ]  cc1
          293.7 MiB [########################   ]  lto1
            1.0 MiB [                           ]  lto-wrapper
          452.0 KiB [                           ]  collect2
          236.0 KiB [                           ]  g++-mapper-server
           68.0 KiB [                           ]  liblto_plugin.so
    
    After:
    
        --- /usr ---------------------------------------------------
                                                  /..
          438.0 MiB [###########################] /lib
          242.8 MiB [##############             ] /share
          239.2 MiB [##############             ] /bin
          149.3 MiB [#########                  ] /libexec
           27.4 MiB [#                          ] /include
            5.1 MiB [                           ] /sbin
           56.0 KiB [                           ] /local
            4.0 KiB [                           ] /lib64
        e   4.0 KiB [                           ] /src
        e   4.0 KiB [                           ] /games
    
        --- /usr/libexec/gcc/x86_64-linux-gnu/15 -------------------
                                                  /..
           37.8 MiB [###########################]  cc1plus
           35.5 MiB [#########################  ]  cc1
           34.3 MiB [########################   ]  lto1
            1.0 MiB [                           ]  lto-wrapper
          452.0 KiB [                           ]  collect2
          236.0 KiB [                           ]  g++-mapper-server
           68.0 KiB [                           ]  liblto_plugin.so
    
    See also: https://lists.debian.org/debian-devel/2025/09/msg00155.html

commit a94abd767425226fa2b3bf4d6ad241bce69885f7
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Aug 19 02:25:17 2025 +0000

    Removed Rules-Requires-Root
    
    This has been the default in Debian for multiple releases already.

commit 3bb90b9910a0a8c6840c2bbdd0b89f249453e284
Author: Otto Kekäläinen <otto@debian.org>
Date:   Thu Aug 28 16:16:51 2025 -0700

    Add Debian to Ubuntu release mapping: Trixie is like Plucky

commit 5bd0d4b42a79eb25361b86d6ddf724548851032b
Author: Otto Kekäläinen <otto@debian.org>
Date:   Wed Oct 8 12:03:21 2025 -0700

    Amend previous 88360bd to include all bind mounts and all debcraft commands
    
    Mounting of the previous build or previous tagged build are not tested
    in the CI and thus this regression was detected only in a local `make
    test` run. Also the 'download', 'release' and 'validate' were not properly
    tested, but they didn't fail because of how gracefully a shell array
    prints as a regular variable.

commit 88360bdf2fad8307c42dfc162052eb06f653e518
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Oct 7 15:11:39 2025 -0700

    Re-use the existing CONTAINER_RUN_ARGS instead of new custom RUN_ARGS
    
    This helps simplify the code.
    
    Also ensure correct Shellcheck overrides are in place.

commit bce12c8e42f0b2c100fa52597844437c92bb0be7
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Oct 7 15:50:19 2025 -0700

    Unify GitLab CI definitions

commit 0043b7fb9c30a1ed4250d13d7e04caa7e97c1e2b
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Oct 7 16:04:34 2025 -0700

    Check for `$CI` instead of specific `$GITLAB_CI` to detect CI environment
    
    The `$CI` is also available in GitLab CI but is more generic, so using it
    makes the code more portable.

commit 1490fdf344320ba5137f53a06c999d45559d1d7c
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Oct 7 16:17:28 2025 -0700

    Move `--interactive` back to default container commands
    
    The DinD tar trick depends on being able to pipe stuff, so the -i mode
    can and must be used both in local and CI runs of `make test`. Only
    the TTY part needs to be turned off in CI.

commit f848eee34d326e5e10d0ae9c1b246f1e1845a3c1
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Oct 7 22:34:27 2025 +0000

    Restore '.' argument to debcraft build test
    
    The `debcraft_test "build ."` command was inadvertently changed to
    `debcraft_test "build"` in a previous commit (1f2cb8a). This removed
    the explicit current directory argument, changing the intended scope
    of the test.

commit 0beb05c086017f9360bc80169f3602a61c0a1bed
Author: Otto Kekäläinen <otto@debian.org>
Date:   Tue Oct 7 14:44:39 2025 -0700

    Don't use semicolons in expressions where newlines are allowed
    
    Semicolons (;) should be used instead of newlines only in one-liner shell
    commands where newlines are not allowed. If they are allowed, use them
    and don't mix in extra semicolons.

commit 7aa04766b7dde77e12d162009c81997fa29454b6
Author: Aquila Macedo <aquilamacedo@riseup.net>
Date:   Tue Oct 7 13:53:07 2025 -0300

    Temporarily skip failing tests in GitLab CI
    
    Skip the remaining package build tests when running in GitLab CI, as
    they currently fail due to Docker in Docker bind mount limitations.
    
    These builds work locally but require follow-up fixes to properly handle
    source extraction in DinD environments.

commit 1f2cb8a5d1629981323ff123257f721f82319c7a
Author: Aquila Macedo <aquilamacedo@riseup.net>
Date:   Sun Oct 5 23:15:53 2025 -0300

    Adjust tests for non-interactive output differences
    
    In GitLab CI, Debcraft runs in a non-interactive environment and omits
    the "browse file:///" hint from its final log line, printing only
    "Artifacts at". Interactive builds still include the full message. Tests
    now detect this behavior and adapt the expected output accordingly to
    avoid false failures.

commit aa8b2fa037006308dec4064a5a311b3d32040895
Author: Aquila Macedo <aquilamacedo@riseup.net>
Date:   Sun Oct 5 22:28:46 2025 -0300

    Add dind support to the build step and simplify container execution
    
    Detect docker in docker and stream sources with tar when bind mounts are
    unavailable, a common issue in such setups. This makes builds reliable in
    both local and CI environments while simplifying container run logic.

commit 79475fd2ac04dd4bef490bbd9947bc205acb91b2
Author: Aquila Macedo <aquilamacedo@riseup.net>
Date:   Sun Oct 5 15:38:29 2025 -0300

    Add make-test job with Docker-in-Docker setup
    
    Add a new CI job make-test that runs the test suite inside a Docker in
    Docker environment using the debian:sid-slim image. It installs required
    tools and sets CONTAINER_CMD=docker to ensure tests run consistently in
    CI.

commit c8ed7fc6c5d1cad435fb5b578a00688a8c1cb1df
Author: Aquila Macedo <aquilamacedo@riseup.net>
Date:   Sun Oct 5 14:35:51 2025 -0300

    Make TTY allocation automatic based on environment
    
    Add DEBCRAFT_INTERACTIVE to enable '--interactive --tty' only when
    running in a real terminal. When running in GitLab CI or other
    non-interactive environments, TTY allocation is skipped to prevent
    errors. Updated all container run calls to use this variable

commit 2169c8b7334ff58bbb5a27fad818fc005c51d642
Author: Otto Kekäläinen <otto@debian.org>
Date:   Mon Aug 18 16:02:16 2025 -0700

    Improve notification about cleaning and resetting git repository

commit bb15f4829b0262247914ab489403aabfb62376b9
Author: Otto Kekäläinen <otto@debian.org>
Date:   Mon May 19 21:30:52 2025 -0700

    Bugfix: Use correct variable name in tests so comparisons actually work
    
    It was discovered that all tests were passing no matter what the string
    on the last line was. This was due to the variable having the wrong name
    and being empty, so everything passed on comparison to '*'. Fix variable
    name and update tests so the last lines are correct and all tests pass.

commit 95a136eb2b53b5e7c0807e9b47c7b4424642db61
Author: Nicola Chiapolini <nicola.chiapolini@physik.uzh.ch>
Date:   Wed Aug 13 10:54:32 2025 +0200

    Explicitly use `Containerfile` to fix container builds with Docker
    
    The container builds where failing for Docker as it was expecting to have
    a file named `Dockerfile`. Set filename so it works correctly on both
    Docker and Podman.
    
    Closes: #25

commit 04c3ea0619bf98276a359f72bfc691b057c13d1b
Author: Otto Kekäläinen <otto@debian.org>
Date:   Mon Aug 18 15:15:55 2025 -0700

    Disable false positive Shellcheck SC2218

commit 844e31a6134b28e41371469b76502f9ee3db189b
Author: Otto Kekäläinen <otto@debian.org>
Date:   Sat Jun 21 09:39:40 2025 +0000

    Make upstream tarball (if exists) available for builds
    
    The `dpkg-source` tool, when run from the source directory
    (`/tmp/build/source` inside the container), expects the `.orig.tar.xz`
    file to be present in the parent directory (`/tmp/build`). However,
    Debcraft was only mounting the source directory and the specific build
    directory, but not explicitly copying the upstream tarball into the
    build directory. The tarball was downloaded to the main temporary
    directory, which was not directly accessible from the container at the
    expected relative path.
    
    Fix this by unconditionally attempting to find and copy the
    `${PACKAGE}_${PACKAGE_VERSION}.orig.tar.{xz,gz,bz2,lzma}` file into the
    build directory if it exists.
    
    Closes: https://github.com/ottok/debcraft/issues/9

commit d2059df0dba149df4e0d71c899b4fbd6505a8ce0
Author: Otto Kekäläinen <otto@debian.org>
Date:   Fri Aug 8 12:13:37 2025 -0700

    Fall back to commit id when building a detached HEAD
    
    Closes: https://github.com/ottok/debcraft/issues/14

commit 9935474c363f6220df791f7e82002f2de1605dde
Author: Dominik Stadler <dominik.stadler@gmx.at>
Date:   Thu Jul 31 20:28:22 2025 +0200

    Add section about using debcraft in GitHub Actions
    
    Adds a section to the README as suggested in https://github.com/ottok/debcraft/issues/12#issuecomment-3130068132

commit 512b4c356c842ecf7aecb81d23cb4947a910942a
Author: Otto Kekäläinen <otto@debian.org>
Date:   Mon May 19 13:50:18 2025 -0700

    If package has no autopkgtests, use autodep8 to run some (Closes: #10)

commit ee2e7f9243ca4c3dc84995fadf9cc498db6cc28e
Author: TheJayMann <736769+TheJayMann@users.noreply.github.com>
Date:   Fri Jun 13 15:03:46 2025 +0000

    Ignore quilt exit code 2
    
    Whenever quilt attempts to apply or remove patches, and there are no
    patches to apply or remove due to being at the top or bottom of the
    stack, quilt give an exit status of 2.  However, `set -e` in a bash
    script causes the entire script to stop when it encounters any exit
    status other than 0.  Thus, the exit status of 2 needs to be ignored
    explicitly.

commit cb208f8f6ff62f4dc95646c57a69f225e238d210
Author: Otto Kekäläinen <otto@debian.org>
Date:   Sat Apr 19 16:27:50 2025 -0700

    Improve logging/output for source repository enabling script

commit 2ec9027853dd0bfa05073ecccc65c48d3b1f1b86
Author: Otto Kekäläinen <otto@debian.org>
Date:   Sat Apr 19 16:27:26 2025 -0700

    Copy debian/ci/ correctly to avoid duplicate debian/ci/ci/ paths

commit 454aaa23c77de943a21b18a014b2c2f3b7dc0ef7
Author: Otto Kekäläinen <otto@debian.org>
Date:   Wed Dec 4 17:48:17 2024 -0800

    Support enabling local repo with DEBCRAFT_EXTRA_REPOSITORY
    
    Refactor extra repositories into a separate script that handles both
    remote and local extra repositories.
Created: 2025-05-19 Last update: 2025-10-09 03:33
Standards version of the package is outdated. wishlist
The package should be updated to follow the last version of Debian Policy (Standards-Version 4.7.2 instead of 4.7.0).
Created: 2025-02-21 Last update: 2025-05-04 07:03
news
[rss feed]
  • [2025-05-14] debcraft 0.5.0 MIGRATED to testing (Debian testing watch)
  • [2025-05-04] Accepted debcraft 0.5.0 (source) into unstable (Otto Kekäläinen)
  • [2025-02-27] debcraft 0.4.0 MIGRATED to testing (Debian testing watch)
  • [2025-02-22] Accepted debcraft 0.4.0 (source) into unstable (Otto Kekäläinen)
  • [2024-12-12] debcraft 0.3.0 MIGRATED to testing (Debian testing watch)
  • [2024-12-07] Accepted debcraft 0.3.0 (source) into unstable (Otto Kekäläinen)
  • [2024-09-12] debcraft 0.2.1 MIGRATED to testing (Debian testing watch)
  • [2024-09-07] Accepted debcraft 0.2.1 (source) into unstable (Otto Kekäläinen)
  • [2024-08-27] debcraft 0.2.0 MIGRATED to testing (Debian testing watch)
  • [2024-08-22] Accepted debcraft 0.2.0 (source) into unstable (Otto Kekäläinen)
  • [2024-08-04] debcraft 0.1.1 MIGRATED to testing (Debian testing watch)
  • [2024-07-30] Accepted debcraft 0.1.1 (source) into unstable (Otto Kekäläinen)
  • [2024-07-25] Accepted debcraft 0.1.0 (source all) into unstable (Debian FTP Masters) (signed by: Otto Kekäläinen)
bugs [bug history graph]
  • all: 4
  • RC: 0
  • I&N: 3
  • M&W: 1
  • F&P: 0
  • patch: 1
links
  • homepage
  • lintian
  • buildd: logs, reproducibility
  • popcon
  • browse source code
  • edit tags
  • other distros
  • screenshots
  • debci
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 0.5.0

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing