Commit Graph

2919 Commits

Author SHA1 Message Date
André Roth 628e925bf4 tests: remove temporary folders 2026-06-19 20:23:09 +02:00
André Roth 52ff525efa Source files: fix empty line in Package-List 2026-06-19 20:23:09 +02:00
André Roth f488412dc0 [adapted4debian] publish: check if storage exists 2026-06-19 20:23:09 +02:00
André Roth 2ae5830239 [debian] swagger: remove test 2026-06-19 20:23:08 +02:00
André Roth 23c7eedcde [adapted4debian] publish: support MultiDist toggle 2026-06-19 20:22:23 +02:00
André Roth 0f0d8b5184 tasks: fix race conditions
* show resources in task details
* fix task state locking
* return task object consistently

Race condition iexisted where task State, err, and processReturnValue fields
were written by consumer goroutine and read by concurrent accessors without
proper synchronization, causing torn reads and data races.
2026-06-19 20:22:23 +02:00
André Roth 1dec3ab619 [adapted4debian] mirror: fix race conditions
* load data inside background tasks
  Perform collection.LoadComplete inside maybeRunTaskInBackground
  Have tasks use a fresh copy of taskCollectionFactory, taskCollection
2026-06-19 20:22:23 +02:00
André Roth 4155dad00a snapshot: fix race conditions
* perform collection.LoadComplete inside maybeRunTaskInBackground
 * have tasks use a fresh copy of taskCollectionFactory, taskCollection
 * fix locking for snapshots of snapshots by locking SourceSnapshots
 * use uuids, since names can be renamed
2026-06-19 20:22:23 +02:00
André Roth 76dd4045ac repos: fix race conditions
* load data inside background tasks
  Perform collection.LoadComplete inside maybeRunTaskInBackground
  Have tasks use a fresh copy of taskCollectionFactory, taskCollection
* use uuids, since names can be renamed
2026-06-19 20:22:23 +02:00
André Roth 8cba4eb06f [adapted4debian] publish: fix race conditions
* remove useless resource lock
  Resource locks need to be before the background task. creating same publish endpoint at the same time is unlikely...
* load data inside background tasks
  This fixes a flaw in async apis, which loaded the published repo from the DB and mutated it outside the task closure, before the task lock was acquired.
  Perform collection.LoadComplete inside maybeRunTaskInBackground and have tasks use a fresh copy of taskCollectionFactory, taskCollection
* lock source repos/snapshots for publish operations
  Concurrent tasks were not properly locking their resources, leading to inconsistent published indexes:
  SourceLocalRepo: iterate published.Sources (component -> source UUID), look up each local repo via localRepoCollection.ByUUID and append string(repo.Key()) to resources
  SourceSnapshot: iterate b.Snapshots,look up each snapshot via snapshotCollection.ByName and append string(snapshot.ResourceKey()) to resources.
* lock pool on non MultiDist publish
* revert mutex on LinkFromPool
* use uuids, since names can be renamed
* add test for MultiDist change
2026-06-19 20:22:22 +02:00
Catalin Muresan ebe3d55f9e Added tests to please codeconv 2026-06-19 20:22:22 +02:00
Catalin Muresan 7271187e8e Fix crash in aptly db recover 2026-06-19 20:22:22 +02:00
André Roth d3342b1544 docs: fix typos 2026-06-19 20:22:22 +02:00
André Roth 8b0e9bb831 system tests: do not depend on launchpad.net 2026-06-19 20:22:22 +02:00
André Roth 70d66acb3b config: allow setting PPA Base URL 2026-06-19 20:22:22 +02:00
André Roth 4fde0f65c9 [adapted4debian] document prometheus API
* enable in dev and test env
* fix api/repos doc
2026-06-19 20:22:16 +02:00
Russell Greene c6df94c8f5 fix docs for Serve in API mode 2026-06-19 20:20:11 +02:00
Tim Foerster 218a945094 [adapted4debian] Add SOURCE_DATE_EPOCH support for reproducible builds
Implement support for the SOURCE_DATE_EPOCH environment variable as
specified by reproducible-builds.org. When set, this variable overrides
the current timestamp in the Release file's Date and Valid-Until fields,
enabling reproducible filesystem publishes.

- Read SOURCE_DATE_EPOCH environment variable in Publish()
- Use the epoch timestamp for both Date and Valid-Until fields
- Gracefully fallback to current time if unset or invalid
- Add comprehensive tests for valid and invalid SOURCE_DATE_EPOCH values
2026-06-19 20:20:11 +02:00
André Roth a981808f3a multi sign: add test 2026-06-19 20:20:11 +02:00
Ales Bregar 9111521893 clearer REST api docs, put whitespace to docs to show that keyId strings are trimmed 2026-06-19 20:20:11 +02:00
Ales Bregar 2f0eab8570 updating REST api with multiple gpg keys support, due backwards compatibility introducing CSV under same key (gpg-key) 2026-06-19 20:20:11 +02:00
Ales Bregar 90bf96fec5 review fix 2026-06-19 20:20:11 +02:00
Ales Bregar 01a130f15b system test t12_api sends empty keyRef string, making gpg fail 2026-06-19 20:20:11 +02:00
Ales Bregar 67f969b4db system test unexpected string fix (would be helpful, but not changing the test just for this) 2026-06-19 20:20:11 +02:00
Ales Bregar 83787ffbef system test configuration fix 2026-06-19 20:20:11 +02:00
Ales Bregar 21a5f2e7dd documentation updated 2026-06-19 20:20:11 +02:00
Ales Bregar a150805290 white space revert to minimize change 2026-06-19 20:20:11 +02:00
Ales Bregar 2882ed9c27 pgp: support multiple jeys
- #309 adding gpgKeys config key, accepting array of keyRef, cli args has precedence
- #691 adding handling of multiple keyRefs when signing with gpg
2026-06-19 20:20:11 +02:00
André Roth f164ac3c9d tasklist: fix deadlocks
* lock correct resources
* unlock list before queueing
2026-06-19 20:20:11 +02:00
André Roth 565c0e1d63 unit-test: use /smallfs when non-root 2026-06-19 20:20:11 +02:00
André Roth c7f0ae6cc7 ci: provide 1MB /smallfs to docker
# Conflicts:
#	Makefile
2026-06-19 20:20:03 +02:00
Brian Witt f13d0de2c3 [adapted4debian] error on out of space 2026-06-19 20:18:58 +02:00
Yaksh Bariya 07d862117b give myself some credit as well
Cause I'm nice :)
2026-06-19 19:39:33 +02:00
Yaksh Bariya ae93d689c4 make version comparision more similar to that of dpkg
Initially found by automated repository health checks used by Termux
in https://github.com/termux/termux-packages/issues/27472

The root problem was 4.3.5a comparing less than 4.3.5-rc1-1 by aptly
According to debian "4.3.5a" > "4.3.5-rc1-1"

This is because dpkg splits hyphen for revision at the first hyphen,
whereas aptly was splitting at the last hyphen which is different from
dpkg's behaviour.

dpkg behaviour: https://git.dpkg.org/cgit/dpkg/dpkg.git/tree/lib/dpkg/parsehelp.c#n242

Perhaps this wasn't detected as there was broken tests in the repository
since the initial commit of aptly. This also fixes those tests
2026-06-19 19:39:33 +02:00
Tobias Assarsson dac3b77181 fix repo edit api. 2026-06-19 19:39:21 +02:00
Ryan Gonzalez 5438d7d331 system-test: Allow skipping coverage
Enabling coverage near-doubles the incremental build time and adds
overhead to individual tests on the order of **5-10x** or more. It's not
essential to have this for quick local system-test runs, so add an option
to disable it.
2026-06-19 19:39:21 +02:00
Ryan Gonzalez 1675eccf89 system-test: Forward CAPTURE to docker
The code was only forwarding TEST, but CAPTURE is useful too.
2026-06-19 19:39:21 +02:00
Ryan Gonzalez 1bcbeb8c99 docker: Preserve the go build cache
Otherwise, every `make docker-...` invocation will need to rebuild
everything from scratch.
2026-06-19 19:39:21 +02:00
Ryan Gonzalez 4541791e06 docker: Fix usage with rootless podman and SELinux
When using rootless podman, the *current user* gets mapped to uid 0,
which results in the aptly user being unable to write to the build
directory. We can instead map the current user to the corresponding uid
in the container via `PODMAN_USERNS=keep-id`, which matches up with what
docker-wrapper wants...but then that will *enter the container as the
current uid*, which messes with the ability to set permissions on
`/var/lib/aptly`. That can be fixed by explicitly passing `--user 0:0`,
which should be a no-op on docker (since the container's default user is
already root).

Additionally, this adds `--security-opt label=disable` to avoid
permission errors when running on systems with SELinux enforcing.
2026-06-19 19:39:21 +02:00
Ryan Gonzalez 061dee062a system-test: Fix crash when a comparison with a non-string value fails
`orig` isn't necessarily a string, so the string concatenation here can
raise a TypeError.
2026-06-19 19:39:21 +02:00
chesseed 8bb0af87ca fix comment 2026-06-19 19:39:21 +02:00
chesseed d602dff546 fix swagger errors 2026-06-19 19:39:21 +02:00
JupiterRider 8def454238 [adapted4debian] ran "gofmt -s -w ." to format the code 2026-06-19 19:39:21 +02:00
JupiterRider a941a8a94a add JupiterRider to AUTHORS file 2026-06-19 19:39:06 +02:00
JupiterRider e5595b0455 remove tautological (unnecessary) nil condition 2026-06-19 14:47:34 +02:00
Alejandro Guijarro Monerris 0203b1ecfe chore: add name to AUTHORS 2026-06-19 14:47:34 +02:00
Alejandro Guijarro Monerris 749fb36f24 feat(s3): add publishedPrefix to pathCache to avoid reupload of files 2026-06-19 14:47:34 +02:00
Itay Porezky 9700c5ea5c Removing non related actions from mirror update 2026-06-19 14:47:34 +02:00
André Roth d442207e51 [debian] Revert "use new azure-sdk"
This reverts commit e2cbd637b8.
2026-06-19 14:47:27 +02:00
André Roth 1f02d49fdb [debian] disable swagger 2026-06-19 14:47:19 +02:00