summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2023-10-29 15:14:47 +0100
committerGitHub <noreply@github.com>2023-10-29 14:14:47 +0000
commitb36e2ca4195298d2e4516e3022b953543f62f470 (patch)
tree9c12cd0e6f87e185505f05d4df78ba66b5e7f7ae /services
parent02dae3f84b80047bef391960eea1350d551e4d72 (diff)
downloadgitea-b36e2ca4195298d2e4516e3022b953543f62f470.tar.gz
gitea-b36e2ca4195298d2e4516e3022b953543f62f470.zip
List all Debian package versions in `Packages` (#27786)
Closes #27783 This PR lists all and not only the latest package versions in the `Packages` index.
Diffstat (limited to 'services')
-rw-r--r--services/packages/debian/repository.go15
1 files changed, 8 insertions, 7 deletions
diff --git a/services/packages/debian/repository.go b/services/packages/debian/repository.go
index 1cc687ec87..cbde53f961 100644
--- a/services/packages/debian/repository.go
+++ b/services/packages/debian/repository.go
@@ -165,18 +165,17 @@ func buildRepositoryFiles(ctx context.Context, ownerID int64, repoVersion *packa
// https://wiki.debian.org/DebianRepository/Format#A.22Packages.22_Indices
func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packages_model.PackageVersion, distribution, component, architecture string) error {
- pfds, err := debian_model.SearchLatestPackages(ctx, &debian_model.PackageSearchOptions{
+ opts := &debian_model.PackageSearchOptions{
OwnerID: ownerID,
Distribution: distribution,
Component: component,
Architecture: architecture,
- })
- if err != nil {
- return err
}
// Delete the package indices if there are no packages
- if len(pfds) == 0 {
+ if has, err := debian_model.ExistPackages(ctx, opts); err != nil {
+ return err
+ } else if !has {
key := fmt.Sprintf("%s|%s|%s", distribution, component, architecture)
for _, filename := range []string{"Packages", "Packages.gz", "Packages.xz"} {
pf, err := packages_model.GetFileForVersionByName(ctx, repoVersion.ID, filename, key)
@@ -211,7 +210,7 @@ func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packa
w := io.MultiWriter(packagesContent, gzw, xzw)
addSeparator := false
- for _, pfd := range pfds {
+ if err := debian_model.SearchPackages(ctx, opts, func(pfd *packages_model.PackageFileDescriptor) {
if addSeparator {
fmt.Fprintln(w)
}
@@ -225,6 +224,8 @@ func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packa
fmt.Fprintf(w, "SHA1: %s\n", pfd.Blob.HashSHA1)
fmt.Fprintf(w, "SHA256: %s\n", pfd.Blob.HashSHA256)
fmt.Fprintf(w, "SHA512: %s\n", pfd.Blob.HashSHA512)
+ }); err != nil {
+ return err
}
gzw.Close()
@@ -238,7 +239,7 @@ func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packa
{"Packages.gz", packagesGzipContent},
{"Packages.xz", packagesXzContent},
} {
- _, err = packages_service.AddFileToPackageVersionInternal(
+ _, err := packages_service.AddFileToPackageVersionInternal(
ctx,
repoVersion,
&packages_service.PackageFileCreationInfo{