mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-07-27 13:57:46 +00:00
Merge branch 'upstream/16.0' into debian/experimental
This commit is contained in:
@@ -317,6 +317,9 @@ func (l *PackageList) VerifyDependencies(options int, architectures []string, so
|
|||||||
progress.InitBar(int64(l.Len())*int64(len(architectures)), false, aptly.BarGeneralVerifyDependencies)
|
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 {
|
for _, arch := range architectures {
|
||||||
cache := make(map[string]bool, 2048)
|
cache := make(map[string]bool, 2048)
|
||||||
|
|
||||||
|
|||||||
+7
-2
@@ -105,7 +105,6 @@ func NewRemoteRepo(name string, archiveRoot string, distribution string, compone
|
|||||||
if !strings.HasPrefix(result.Distribution, ".") {
|
if !strings.HasPrefix(result.Distribution, ".") {
|
||||||
result.Distribution = "./" + result.Distribution
|
result.Distribution = "./" + result.Distribution
|
||||||
}
|
}
|
||||||
result.Architectures = nil
|
|
||||||
if len(result.Components) > 0 {
|
if len(result.Components) > 0 {
|
||||||
return nil, fmt.Errorf("components aren't supported for flat repos")
|
return nil, fmt.Errorf("components aren't supported for flat repos")
|
||||||
}
|
}
|
||||||
@@ -351,7 +350,7 @@ ok:
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !repo.IsFlat() {
|
if len(stanza["Architectures"]) > 0 {
|
||||||
architectures := strings.Split(stanza["Architectures"], " ")
|
architectures := strings.Split(stanza["Architectures"], " ")
|
||||||
sort.Strings(architectures)
|
sort.Strings(architectures)
|
||||||
// "source" architecture is never present, despite Release file claims
|
// "source" architecture is never present, despite Release file claims
|
||||||
@@ -365,7 +364,13 @@ ok:
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(repo.Architectures) == 0 {
|
||||||
|
return fmt.Errorf("no architectures found, please specify")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !repo.IsFlat() {
|
||||||
components := strings.Split(stanza["Components"], " ")
|
components := strings.Split(stanza["Components"], " ")
|
||||||
if strings.Contains(repo.Distribution, "/") {
|
if strings.Contains(repo.Distribution, "/") {
|
||||||
distributionLast := path.Base(repo.Distribution) + "/"
|
distributionLast := path.Base(repo.Distribution) + "/"
|
||||||
|
|||||||
@@ -115,7 +115,6 @@ func (s *RemoteRepoSuite) TestInvalidURL(c *C) {
|
|||||||
func (s *RemoteRepoSuite) TestFlatCreation(c *C) {
|
func (s *RemoteRepoSuite) TestFlatCreation(c *C) {
|
||||||
c.Check(s.flat.IsFlat(), Equals, true)
|
c.Check(s.flat.IsFlat(), Equals, true)
|
||||||
c.Check(s.flat.Distribution, Equals, "./")
|
c.Check(s.flat.Distribution, Equals, "./")
|
||||||
c.Check(s.flat.Architectures, IsNil)
|
|
||||||
c.Check(s.flat.Components, IsNil)
|
c.Check(s.flat.Components, IsNil)
|
||||||
|
|
||||||
flat2, _ := NewRemoteRepo("flat2", "http://pkg.jenkins-ci.org/debian-stable", "binary/", []string{}, []string{}, false, false, false)
|
flat2, _ := NewRemoteRepo("flat2", "http://pkg.jenkins-ci.org/debian-stable", "binary/", []string{}, []string{}, false, false, false)
|
||||||
|
|||||||
Vendored
+1
-1
@@ -9,7 +9,7 @@ Group=aptly-api
|
|||||||
Environment=TERM=dumb
|
Environment=TERM=dumb
|
||||||
WorkingDirectory=~
|
WorkingDirectory=~
|
||||||
EnvironmentFile=/etc/default/aptly-api
|
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]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|||||||
Vendored
+1
-1
@@ -87,7 +87,7 @@ Testsuite: autopkgtest-pkg-go
|
|||||||
|
|
||||||
Package: aptly
|
Package: aptly
|
||||||
Architecture: any
|
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
|
Suggests: graphviz
|
||||||
Conflicts: gnupg1, gpgv1
|
Conflicts: gnupg1, gpgv1
|
||||||
Built-Using: ${misc:Static-Built-Using}, ${misc:Built-Using}
|
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/
|
Archive Root URL: http://repo.aptly.info/system-tests/cloud.r-project.org/bin/linux/debian/
|
||||||
Distribution: ./bullseye-cran40/
|
Distribution: ./bullseye-cran40/
|
||||||
Components:
|
Components:
|
||||||
Architectures:
|
Architectures: all, amd64, i386
|
||||||
Download Sources: no
|
Download Sources: no
|
||||||
Download .udebs: no
|
Download .udebs: no
|
||||||
Last update: never
|
Last update: never
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Name: mirror21
|
|||||||
Archive Root URL: http://repo.aptly.info/system-tests/pkg.jenkins.io/debian-stable/
|
Archive Root URL: http://repo.aptly.info/system-tests/pkg.jenkins.io/debian-stable/
|
||||||
Distribution: ./binary/
|
Distribution: ./binary/
|
||||||
Components:
|
Components:
|
||||||
Architectures:
|
Architectures: all
|
||||||
Download Sources: no
|
Download Sources: no
|
||||||
Download .udebs: no
|
Download .udebs: no
|
||||||
Last update: never
|
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/
|
Archive Root URL: http://repo.aptly.info/system-tests/nvidia.github.io/libnvidia-container/stable/ubuntu16.04/amd64/
|
||||||
Distribution: ./
|
Distribution: ./
|
||||||
Components:
|
Components:
|
||||||
Architectures:
|
Architectures: amd64
|
||||||
Download Sources: no
|
Download Sources: no
|
||||||
Download .udebs: no
|
Download .udebs: no
|
||||||
Last update: never
|
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
|
||||||
@@ -126,7 +126,10 @@
|
|||||||
"ArchiveRoot": "http://repo.aptly.info/system-tests/download.opensuse.org/repositories/Apache:/MirrorBrain/Debian_9.0/",
|
"ArchiveRoot": "http://repo.aptly.info/system-tests/download.opensuse.org/repositories/Apache:/MirrorBrain/Debian_9.0/",
|
||||||
"Distribution": "./",
|
"Distribution": "./",
|
||||||
"Components": null,
|
"Components": null,
|
||||||
"Architectures": null,
|
"Architectures": [
|
||||||
|
"amd64",
|
||||||
|
"i386"
|
||||||
|
],
|
||||||
"Meta": {
|
"Meta": {
|
||||||
"Architectures": "i386 amd64",
|
"Architectures": "i386 amd64",
|
||||||
"Archive": "Debian_9.0",
|
"Archive": "Debian_9.0",
|
||||||
|
|||||||
@@ -454,3 +454,38 @@ class CreateMirror33Test(BaseTest):
|
|||||||
def check(self):
|
def check(self):
|
||||||
self.check_output()
|
self.check_output()
|
||||||
self.check_cmd_output("aptly mirror show mirror33", "mirror_show")
|
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")
|
||||||
|
|||||||
Reference in New Issue
Block a user