Merge branch 'upstream/16.0' into debian/experimental

This commit is contained in:
Sébastien Delafond
2024-11-17 14:50:20 +01:00
13 changed files with 83 additions and 9 deletions
+3
View File
@@ -317,6 +317,9 @@ func (l *PackageList) VerifyDependencies(options int, architectures []string, so
progress.InitBar(int64(l.Len())*int64(len(architectures)), false, aptly.BarGeneralVerifyDependencies)
}
if len(architectures) == 0 {
return nil, fmt.Errorf("no architectures defined, cannot verify dependencies")
}
for _, arch := range architectures {
cache := make(map[string]bool, 2048)
+7 -2
View File
@@ -105,7 +105,6 @@ func NewRemoteRepo(name string, archiveRoot string, distribution string, compone
if !strings.HasPrefix(result.Distribution, ".") {
result.Distribution = "./" + result.Distribution
}
result.Architectures = nil
if len(result.Components) > 0 {
return nil, fmt.Errorf("components aren't supported for flat repos")
}
@@ -351,7 +350,7 @@ ok:
return err
}
if !repo.IsFlat() {
if len(stanza["Architectures"]) > 0 {
architectures := strings.Split(stanza["Architectures"], " ")
sort.Strings(architectures)
// "source" architecture is never present, despite Release file claims
@@ -365,7 +364,13 @@ ok:
return err
}
}
}
if len(repo.Architectures) == 0 {
return fmt.Errorf("no architectures found, please specify")
}
if !repo.IsFlat() {
components := strings.Split(stanza["Components"], " ")
if strings.Contains(repo.Distribution, "/") {
distributionLast := path.Base(repo.Distribution) + "/"
-1
View File
@@ -115,7 +115,6 @@ func (s *RemoteRepoSuite) TestInvalidURL(c *C) {
func (s *RemoteRepoSuite) TestFlatCreation(c *C) {
c.Check(s.flat.IsFlat(), Equals, true)
c.Check(s.flat.Distribution, Equals, "./")
c.Check(s.flat.Architectures, IsNil)
c.Check(s.flat.Components, IsNil)
flat2, _ := NewRemoteRepo("flat2", "http://pkg.jenkins-ci.org/debian-stable", "binary/", []string{}, []string{}, false, false, false)
+1 -1
View File
@@ -9,7 +9,7 @@ Group=aptly-api
Environment=TERM=dumb
WorkingDirectory=~
EnvironmentFile=/etc/default/aptly-api
ExecStart=/usr/bin/aptly api serve -config=/etc/aptly.conf -listen=${LISTEN_ADDRESS}
ExecStart=/usr/bin/aptly api serve -config=/etc/aptly.conf -no-lock -listen=${LISTEN_ADDRESS}
[Install]
WantedBy=multi-user.target
+1 -1
View File
@@ -87,7 +87,7 @@ Testsuite: autopkgtest-pkg-go
Package: aptly
Architecture: any
Depends: bzip2, xz-utils, gnupg, gpgv, ${shlibs:Depends}, ${misc:Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}, bzip2, xz-utils, adduser, gpg (>= 2.2.12)
Suggests: graphviz
Conflicts: gnupg1, gpgv1
Built-Using: ${misc:Static-Built-Using}, ${misc:Built-Using}
@@ -2,7 +2,7 @@ Name: mirror14
Archive Root URL: http://repo.aptly.info/system-tests/cloud.r-project.org/bin/linux/debian/
Distribution: ./bullseye-cran40/
Components:
Architectures:
Architectures: all, amd64, i386
Download Sources: no
Download .udebs: no
Last update: never
@@ -2,7 +2,7 @@ Name: mirror21
Archive Root URL: http://repo.aptly.info/system-tests/pkg.jenkins.io/debian-stable/
Distribution: ./binary/
Components:
Architectures:
Architectures: all
Download Sources: no
Download .udebs: no
Last update: never
@@ -2,7 +2,7 @@ Name: mirror33
Archive Root URL: http://repo.aptly.info/system-tests/nvidia.github.io/libnvidia-container/stable/ubuntu16.04/amd64/
Distribution: ./
Components:
Architectures:
Architectures: amd64
Download Sources: no
Download .udebs: no
Last update: never
@@ -0,0 +1,6 @@
Downloading: http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/Release
Error (retrying): HTTP code 404 while fetching http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/Release
Retrying 0 http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/Release...
Download Error: http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/Release
Downloading: http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/InRelease
ERROR: unable to fetch mirror: no architectures found, please specify
@@ -0,0 +1,6 @@
Downloading & parsing package files...
Applying filter...
Packages filtered: 4743 -> 81.
Building download queue...
Download queue: 81 items (3.00 GiB)
@@ -0,0 +1,17 @@
Name: mirror35
Archive Root URL: http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/
Distribution: ./
Components:
Architectures: amd64
Download Sources: no
Download .udebs: no
Filter: cuda-12-6 (= 12.6.2-1)
Filter With Deps: yes
Last update: never
Information from release file:
Acquire-By-Hash: no
Architecture: x86_64
Date: Mon, 04 Nov 2024 16:02:23 +0000
Label: NVIDIA CUDA
Origin: NVIDIA
+4 -1
View File
@@ -126,7 +126,10 @@
"ArchiveRoot": "http://repo.aptly.info/system-tests/download.opensuse.org/repositories/Apache:/MirrorBrain/Debian_9.0/",
"Distribution": "./",
"Components": null,
"Architectures": null,
"Architectures": [
"amd64",
"i386"
],
"Meta": {
"Architectures": "i386 amd64",
"Archive": "Debian_9.0",
+35
View File
@@ -454,3 +454,38 @@ class CreateMirror33Test(BaseTest):
def check(self):
self.check_output()
self.check_cmd_output("aptly mirror show mirror33", "mirror_show")
class CreateMirror34Test(BaseTest):
"""
create mirror error: flat repo with filter but no architectures in InRelease file
"""
configOverride = {"max-tries": 1}
runCmd = "aptly mirror create -ignore-signatures -filter \"cuda-12-6 (= 12.6.2-1)\" -filter-with-deps mirror34 http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ ./"
class CreateMirror35Test(BaseTest):
"""
create mirror: flat repo with filter but no architectures in InRelease file
"""
configOverride = {"max-tries": 1}
fixtureCmds = [
"aptly mirror create -architectures amd64 -ignore-signatures -filter \"cuda-12-6 (= 12.6.2-1)\" -filter-with-deps mirror35 "
"http://repo.aptly.info/system-tests/developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ ./",
]
runCmd = "aptly mirror update -ignore-signatures mirror35"
# the downloading of the actual packages will return 404 since they don't exist. ignore the errors, the test verifies proper count of filtered packages
def outputMatchPrepare(self, s):
s = re.sub(r'Downloading: .*\n', '', s, flags=re.MULTILINE)
s = re.sub(r'Download Error: .*\n', '', s, flags=re.MULTILINE)
s = re.sub(r'Retrying .*\n', '', s, flags=re.MULTILINE)
s = re.sub(r'Error \(retrying\): .*\n', '', s, flags=re.MULTILINE)
s = re.sub(r'HTTP code 404 while fetching .*\n', '', s, flags=re.MULTILINE)
s = re.sub(r'ERROR: unable to update: .*\n', '', s, flags=re.MULTILINE)
return s
def check(self):
self.check_output()
self.check_cmd_output("aptly mirror show mirror35", "mirror_show")