vhaudiquet
e5adf600c3
deb: change ui/ux of pkh deb
CI / build (push) Successful in 2m54s
CI / snap (push) Failing after 12s
2026-08-22 22:26:20 +02:00
vhaudiquet
e2d201d815
ci: tryfix snap building
CI / build (push) Successful in 2m45s
CI / snap (push) Failing after 27s
2026-08-22 21:20:44 +02:00
vhaudiquet
c1079d43be
ci: split build and test jobs, disable tests
...
CI / build (push) Successful in 2m43s
CI / snap (push) Failing after 17s
The test suite is too heavy for the current CI infra (CPU/RAM
exhaustion), so it must not run alongside lint/build feedback.
- add a dedicated test job (needs: build) running runtime deps
install, subuid/subgid setup and 'cargo test'
- share the compiled target/ dir and cargo caches between both jobs
via actions/cache keyed on the commit sha, so the test job only
compiles the test binaries
- disable the test job with 'if: false' until infra can handle it;
re-enable by removing that line
- snap: bump upload-artifact v3 -> v4 (v3 is decommissioned) and
checkout to v6
- update images to ubuntu:26.04
2026-08-22 13:54:01 +02:00
vhaudiquet
18be62d4a0
clippy
CI / build (push) Failing after 32m38s
2026-08-22 12:46:22 +02:00
vhaudiquet
24faad6e11
deb: pin proposed pocket when building against it
...
'proposed' pockets are marked 'NotAutomatic' in their Release file,
which gives them an apt priority of 1: apt would ignore them during
build-dependency resolution even when the suite is enabled.
Write an apt preferences entry pinning '{series}-proposed' at
priority 600 so build-dependencies are actually resolved from the
requested pocket.
Apt preferences are global: a single 'release' pin matches the pinned
suite on every repository carrying it (archive, security and ports),
for all architectures, so this also covers cross-builds pulling
dependencies from 'ports.ubuntu.com'.
2026-08-22 12:45:16 +02:00
vhaudiquet
cc7cbaaa8f
deb: apply quilt patches before building
2026-08-22 12:31:30 +02:00
vhaudiquet
f54be8ad8c
pull,deb: add top-level --pocket option
...
CI / build (push) Failing after 2m31s
- pull: select the pocket to download the source package from
- deb: build against dependencies from a specific pocket:
- local mode: enable '{series}-{pocket}' suite on archive sources
- cross mode: include the pocket suite in required repositories
2026-08-22 12:02:05 +02:00
vhaudiquet
ec77bc6d4d
prune: add 'pkh prune' command
CI / build (push) Successful in 15m13s
CI / snap (push) Successful in 2m13s
2026-08-14 10:28:56 +02:00
vhaudiquet
09cbf56ebc
pull: fix hang caused by blocking git2 call and redundant Launchpad checks
CI / build (push) Successful in 14m59s
CI / snap (push) Successful in 2m18s
2026-08-12 17:45:36 +02:00
vhaudiquet
7c3ce1caa5
pull: fix error message when directory already exists
CI / build (push) Successful in 15m39s
CI / snap (push) Failing after 39s
2026-08-12 16:43:45 +02:00
vhaudiquet
317dbcd062
deb: use overlayfs instead of copy
CI / build (push) Failing after 14m44s
CI / snap (push) Has been skipped
2026-08-12 15:44:13 +02:00
vhaudiquet
e25645b3bb
pull: qol fix, highlight release
CI / build (push) Successful in 14m50s
CI / snap (push) Successful in 1m46s
2026-08-11 16:33:57 +02:00
vhaudiquet
d3a07bc80d
chlog: add series selector
CI / build (push) Successful in 15m3s
CI / snap (push) Successful in 2m6s
2026-08-11 14:42:23 +02:00
vhaudiquet
e3d855ca66
deb: detect package directory using cwd
...
CI / build (push) Successful in 16m19s
CI / snap (push) Successful in 3m52s
remove linux-riscv specific quirk
2026-08-11 11:33:12 +02:00
vhaudiquet
62ce4e3696
deb: remove sbuild build mode
CI / build (push) Successful in 8m15s
CI / snap (push) Successful in 3m28s
2026-07-24 14:32:47 +02:00
vhaudiquet
a0d35bb18e
pull,context: preserve file mtimes when copying sources
...
CI / build (push) Successful in 8m11s
CI / snap (push) Successful in 6m9s
std::fs::copy resets the destination mtime to "now", which breaks
timestamp-based build systems (autotools/gnulib). Packages like
'hello' from Debian sid ship pre-generated files alongside their
prerequisites; when the copy flattens all mtimes, make considers the
generated targets out-of-date and tries to regenerate them with tools
(e.g. gperf) that are not declared build-dependencies, failing the
build.
Restore the source modification and access times after every file copy
in pull::copy_dir_all, pull::fetch_archive_sources merge step, and
context::unshare copy_dir_recursive/ensure_available.
2026-07-24 14:14:18 +02:00
vhaudiquet
e1668d5d80
pull: support Sources.gz without Checksums-Sha256
...
CI / build (push) Failing after 8m34s
CI / snap (push) Has been skipped
The Ubuntu development series (stonking) Sources.gz no longer ships a
Checksums-Sha256 field, only Checksums-Sha512 and the legacy Files
(MD5) field. The package_info parser only read Checksums-Sha256, so
the file list ended up empty and fetch_orig_tarball panicked on
Option::unwrap() when looking for the orig tarball.
- Add a ChecksumAlgo enum (Md5/Sha256/Sha512) to FileEntry, replacing
the hardcoded sha256 field, and parse the strongest available
checksum field (Sha256 > Sha512 > MD5).
- Make download_file_checksum verify against the correct algorithm
instead of always using SHA-256.
- Replace the unwrap() on the orig tarball search with a proper error
listing the available files, so future regressions fail clearly
instead of panicking.
- Add md-5 dependency for MD5 verification.
2026-07-24 12:56:31 +02:00
vhaudiquet
f9e11e951b
clippy
CI / build (push) Failing after 8m37s
CI / snap (push) Has been skipped
2026-07-24 10:53:27 +02:00
vhaudiquet
768e1c4f78
fmt
CI / build (push) Failing after 1m56s
CI / snap (push) Has been skipped
2026-07-22 14:36:28 +02:00
vhaudiquet
48248fdf9c
Merge branch 'main' of https://git.vhaudiquet.fr/vhaudiquet/pkh
...
CI / build (push) Failing after 1m1s
CI / snap (push) Has been skipped
* 'main' of https://git.vhaudiquet.fr/vhaudiquet/pkh :
deb: fix injection of .deb packages with apt-get
deb: allow injecting .deb files packages
2026-07-17 10:12:48 +02:00
vhaudiquet
c4b59a4376
context: copy symlinks as symlinks and improve error messages
2026-07-17 10:12:46 +02:00
vhaudiquet
73511c258b
deb: fix injection of .deb packages with apt-get
CI / build (push) Successful in 9m5s
CI / snap (push) Successful in 3m56s
2026-04-04 12:41:52 +02:00
vhaudiquet
d83174c980
deb: allow injecting .deb files packages
CI / build (push) Failing after 1m19s
CI / snap (push) Has been skipped
2026-04-04 12:35:14 +02:00
vhaudiquet
2b27b7b06e
deb: add quirks to allow packages to declare specific package directories
CI / build (push) Successful in 8m41s
CI / snap (push) Successful in 3m55s
2026-03-25 17:40:55 +01:00
vhaudiquet
32e15b1106
deb: ignore linux-riscv test
CI / build (push) Successful in 8m16s
CI / snap (push) Failing after 7s
2026-03-19 11:27:02 +01:00
vhaudiquet
7640952bdc
unshare: mount proc differently depending on root privileges
2026-03-19 11:26:10 +01:00
vhaudiquet
2b6207981a
deb: make tests parallel
CI / build (push) Failing after 12m10s
CI / snap (push) Has been skipped
2026-03-19 00:24:48 +01:00
vhaudiquet
daaf33cd6b
deb: fix race condition for test
...
CI / build (push) Failing after 18m26s
CI / snap (push) Has been skipped
Fix race condition around current context,
related to find_package_directory.
2026-03-18 23:34:33 +01:00
vhaudiquet
4a73e6e1d6
deb: fix race condition for tests
CI / build (push) Failing after 20m7s
CI / snap (push) Has been skipped
2026-03-18 17:35:38 +01:00
vhaudiquet
d06e091121
apt/keyring: download 3 keyrings for sid
CI / build (push) Failing after 21m24s
CI / snap (push) Has been skipped
2026-03-18 15:23:57 +01:00
vhaudiquet
5ec675c20b
pull: fix edge cases
...
CI / build (push) Failing after 13m53s
CI / snap (push) Has been skipped
- Ubuntu does not have 'Launchpad/Code' repo edge case
- Vcs-Git field has a git command, not only an URL edge case
2026-03-17 17:22:25 +01:00
vhaudiquet
dce39c9a84
deb: allow adding multiple ppas for deps
CI / build (push) Failing after 13m29s
CI / snap (push) Has been skipped
2026-02-19 15:36:08 +01:00
vhaudiquet
02dbb41219
deb: fix bugs on injecting packages/ppa
...
- ppa was not the right target_arch if binfmt was used
- apt-get would not downgrade for injected packages, but we want to
2026-02-19 15:19:02 +01:00
vhaudiquet
3e9ec95886
apt/keyring: always download in binary format
CI / build (push) Failing after 13m17s
CI / snap (push) Has been skipped
2026-02-19 14:33:59 +01:00
vhaudiquet
b508dd3d82
deb: download keyring in cache directory for mmdebstrap
...
CI / build (push) Failing after 13m33s
CI / snap (push) Has been skipped
also avoid sudo if we are root
2026-02-19 11:30:33 +01:00
vhaudiquet
87b48bf9c8
deb: add --inject to inject a package
CI / build (push) Failing after 20m25s
CI / snap (push) Has been skipped
2026-02-18 23:19:57 +01:00
vhaudiquet
eb3e71a938
package_info: fix check_launchpad_repo needing web requests (use git)
CI / build (push) Failing after 20m1s
CI / snap (push) Has been skipped
2026-02-16 18:44:46 +01:00
vhaudiquet
7c53b268dd
deb: use qemu_binfmt on ephemeral/local builds of different arch
CI / build (push) Failing after 18m19s
CI / snap (push) Has been skipped
2026-02-11 11:58:59 +01:00
vhaudiquet
97725efb34
Multiple changes
...
CI / build (push) Failing after 18m0s
CI / snap (push) Has been skipped
- quirks: added quirks, that does nothing for now
- deb: install arch-independant dependencies (too much is better)
- deb: added linux-riscv crossbuild test
2026-02-10 11:07:05 +01:00
vhaudiquet
8345f51d2f
Multiple changes:
...
CI / build (push) Successful in 16m23s
CI / snap (push) Successful in 4m1s
- deb: can use ppa as dependency
- deb: cross and regular are using parallel nocheck builds
- deb: ephemeral will not pull keyring if no root powers
2026-02-06 12:04:25 +01:00
vhaudiquet
225157be63
pull: allow pulling from ppa
CI / build (push) Successful in 15m54s
CI / snap (push) Successful in 3m19s
2026-01-29 17:11:01 +01:00
vhaudiquet
af73c14674
deb: fix package directory detection by looking for 'debian' subfolder
CI / build (push) Successful in 16m35s
CI / snap (push) Successful in 3m35s
2026-01-28 15:59:31 +01:00
vhaudiquet
b2d89ead7e
snap: ensure action runs on host
CI / build (push) Successful in 17m7s
CI / snap (push) Successful in 3m57s
2026-01-26 17:48:05 +01:00
vhaudiquet
88ec82c0a0
snap: try running ci on host
CI / build (push) Successful in 15m46s
CI / snap (push) Has been cancelled
2026-01-26 17:21:26 +01:00
vhaudiquet
9ffedb4d1a
snap: switch ci action used to build snap
CI / build (push) Successful in 17m3s
CI / snap (push) Failing after 10s
2026-01-26 16:49:55 +01:00
vhaudiquet
1db1048a2e
apt/keyring: use original keyring file name
CI / build (push) Successful in 14m20s
CI / snap (push) Failing after 49s
2026-01-26 16:27:18 +01:00
vhaudiquet
d832666858
distro_info: fully parse distro info
CI / build (push) Failing after 10m16s
CI / snap (push) Has been skipped
2026-01-26 16:07:39 +01:00
vhaudiquet
45960e5f17
distro_info: fix sid keyring url
CI / build (push) Failing after 10m27s
CI / snap (push) Has been skipped
2026-01-26 14:20:19 +01:00
vhaudiquet
97a78336fa
snap: build a devmode test snap (in ci)
CI / build (push) Failing after 9m26s
CI / snap (push) Has been skipped
2026-01-26 14:02:38 +01:00
vhaudiquet
c64c3146d7
deb: test building packages from sid
CI / build (push) Failing after 9m17s
2026-01-26 12:06:00 +01:00
vhaudiquet
13c44daf9a
deb: allow use parallel building
CI / build (push) Successful in 10m29s
2026-01-26 10:31:58 +01:00
vhaudiquet
dfd197415f
unshare: fix device creation code
2026-01-26 10:26:16 +01:00
vhaudiquet
73a61042e8
deb: disable gcc-15 test for CI
2026-01-26 10:25:53 +01:00
vhaudiquet
2f5fb3b1e7
deb: fix runtime usage for chroot
CI / build (push) Failing after 11m13s
2026-01-26 10:14:04 +01:00
vhaudiquet
c3a116203a
pull: allow applying diff.gz from archive download
CI / build (push) Failing after 7m56s
2026-01-22 00:05:39 +01:00
vhaudiquet
dd9cc07285
deb: make sure to have the right apt keyrings
CI / build (push) Failing after 14s
2026-01-20 19:31:07 +01:00
vhaudiquet
ab35af5fb5
package_info: refactor into distro_info and package_info split, yaml data
CI / build (push) Failing after 9m3s
2026-01-14 21:18:25 +01:00
vhaudiquet
a975c24e54
deb: ci test building gcc-15 from sid
CI / build (push) Failing after 9m17s
2026-01-14 11:12:12 +01:00
vhaudiquet
7e69131886
pull: only extract real archives
CI / build (push) Successful in 9m0s
2026-01-14 09:32:13 +01:00
vhaudiquet
d7a99f77f5
pull: always extract tars when archive pulling, merging dirs
CI / build (push) Failing after 3m18s
2026-01-13 23:22:55 +01:00
vhaudiquet
b4a60e2ae2
deb: cleanup ephemeral context only on success
CI / build (push) Successful in 11m39s
2026-01-13 14:54:56 +01:00
vhaudiquet
87ce0f648b
deb: create special device nodes inside chroot
CI / build (push) Successful in 9m5s
2026-01-13 09:58:16 +01:00
vhaudiquet
29297d6f34
pkh: added pull --archive flag
CI / build (push) Successful in 9m20s
2026-01-12 22:42:09 +01:00
vhaudiquet
843f28e8af
pull: move orig tarball content to the right place on archive download
CI / build (push) Successful in 9m13s
2026-01-12 21:58:57 +01:00
vhaudiquet
35f9517732
pull: extract orig tarball as well on archive download
CI / build (push) Failing after 7m50s
2026-01-12 18:54:07 +01:00
vhaudiquet
593793373a
deb: consider all kinds of package dirs
CI / build (push) Failing after 12m32s
2026-01-12 11:29:18 +01:00
vhaudiquet
21bb76153e
deb: consider package directories with version
CI / build (push) Failing after 1m6s
2026-01-12 10:37:09 +01:00
vhaudiquet
bd10a37c2a
pull: fmt
CI / build (push) Failing after 8m1s
2026-01-11 22:19:46 +01:00
vhaudiquet
91c812a530
pull: allow to force pull from archive
CI / build (push) Failing after 1m2s
2026-01-11 20:43:01 +01:00
vhaudiquet
70e6d8c051
pull: refactor to remove series argument
CI / build (push) Successful in 9m31s
2026-01-11 12:36:19 +01:00
vhaudiquet
2f43ed1597
ci: fix clippy
CI / build (push) Successful in 9m7s
2026-01-11 12:22:00 +01:00
vhaudiquet
182cc086c0
ci: install clippy
CI / build (push) Has been cancelled
2026-01-11 12:18:19 +01:00
vhaudiquet
a2d4f885b5
doc: update README, documentation
2026-01-11 12:16:27 +01:00
vhaudiquet
650adc28a3
pull: split into package_info::lookup and pull
CI / build (push) Failing after 1m47s
2026-01-11 12:12:19 +01:00
vhaudiquet and vhaudiquet
b724d46f2c
deb: fix concurrent testing (by making them serial)
...
CI / build (push) Successful in 8m34s
Co-authored-by: Valentin Haudiquet <valentin.haudiquet@canonical.com >
Co-committed-by: Valentin Haudiquet <valentin.haudiquet@canonical.com >
2026-01-11 00:32:03 +00:00
vhaudiquet
216eee8f33
deb: add tests logs back
CI / build (push) Has been cancelled
2026-01-11 01:14:24 +01:00
vhaudiquet
64b51563e7
deb: cross uses new apt sources parser
2026-01-10 00:46:04 +01:00
vhaudiquet
d2914c63c6
deb/ephemeral: use a lockfile for chroot tarballs
CI / build (push) Failing after 6m47s
2026-01-09 23:54:10 +01:00
vhaudiquet
42e6165f78
context/unshare: mount proc after forking
CI / build (push) Failing after 6m46s
2026-01-09 23:36:27 +01:00
vhaudiquet
a444a5d8d2
deb: fix bug in find_dsc_file
CI / build (push) Failing after 5m35s
2026-01-09 23:15:13 +01:00
vhaudiquet
dd62baa455
context/unshare: mount proc and dev/pts
2026-01-09 23:08:59 +01:00
vhaudiquet
464e25de24
apt: refactor into multiple modules
CI / build (push) Failing after 7m56s
2026-01-09 18:02:22 +01:00
vhaudiquet
1b659ce6f4
build, changelog: fix signing when building source package
CI / build (push) Failing after 7m8s
2026-01-09 17:21:07 +01:00
vhaudiquet
e2838bf5aa
deb: test refactoring
CI / build (push) Failing after 7m18s
2026-01-08 19:14:26 +01:00
vhaudiquet
a6df6070d4
build: fix signature handling
2026-01-08 18:53:19 +01:00
vhaudiquet
6fb4ccfa88
deb: test end to end build of hello
CI / build (push) Failing after 7m40s
2026-01-08 18:16:14 +01:00
vhaudiquet
126a6e0d76
deb: ensure universe is enabled on Ubuntu by default
...
CI / build (push) Has been cancelled
Added apt source parser, module apt
2026-01-08 18:15:50 +01:00
vhaudiquet
f3f78ef0e3
ci: update build-depends
CI / build (push) Successful in 8m27s
2026-01-06 18:17:01 +01:00
vhaudiquet
f3417c7a16
deb: default to ephemeral context with local builds
CI / build (push) Failing after 1m28s
2026-01-06 18:15:05 +01:00
vhaudiquet
1c9f6cccd2
build: only sign if a gpg key able to sign is present
CI / build (push) Failing after 1m50s
2026-01-06 18:07:34 +01:00
vhaudiquet
b3365afe5b
docs: added documentation, enforced documentation
CI / build (push) Successful in 7m21s
2026-01-01 18:37:40 +01:00
vhaudiquet
5e1b0988fd
package_info: refactor sources parsing even more
CI / build (push) Successful in 7m46s
2026-01-01 15:20:59 +01:00
vhaudiquet
a567506831
package_info: refactor sources parsing with iterator
CI / build (push) Successful in 7m12s
2025-12-31 19:23:49 +01:00
vhaudiquet and vhaudiquet
1538e9ee19
deb: cross-compilation, ephemeral contexts, local builds
...
CI / build (push) Successful in 7m18s
Multiple changes:
- New contexts (schroot, unshare)
- Cross-building quirks, with ephemeral contexts and repositories management
- Contexts with parents, global context manager, better lifetime handling
- Local building of binary packages
- Pull: pulling dsc files by default
- Many small bugfixes and changes
Co-authored-by: Valentin Haudiquet <valentin.haudiquet@canonical.com >
Co-committed-by: Valentin Haudiquet <valentin.haudiquet@canonical.com >
2025-12-25 17:10:44 +00:00
vhaudiquet
88313b0c51
readme: added README.md
CI / build (push) Successful in 1m56s
2025-12-17 16:49:16 +01:00
vhaudiquet
106c61a096
context: refactor context command running
CI / build (push) Successful in 1m55s
2025-12-17 10:05:47 +01:00
vhaudiquet
35eaaaf93a
ci: update runtime dependencies
CI / build (push) Successful in 2m5s
2025-12-16 20:19:18 +01:00
vhaudiquet
b5ac76a293
deb: retrieve .deb artifacts
...
CI / build (push) Successful in 2m2s
sbuild options: unshare, build directory
context: retrieve files
2025-12-16 20:12:08 +01:00
vhaudiquet
06ab5eaf98
pull: don't fetch orig tarball for native packages
CI / build (push) Successful in 1m51s
2025-12-16 18:05:59 +01:00
vhaudiquet
1d65d1ce31
context: add context
...
CI / build (push) Successful in 1m50s
pkh context allows to manage contexts (local, ssh) and run contextualized commands (deb)
in other words, this allows building binary packages over ssh
2025-12-15 20:48:44 +01:00