Merge branch '108-udebs'

This commit is contained in:
Andrey Smirnov
2014-09-30 23:29:27 +04:00
112 changed files with 1493 additions and 224 deletions
+1 -1
View File
@@ -33,7 +33,7 @@ Aptly features: ("+" means planned features)
Current limitations:
* debian-installer and translations not supported yet
* translations are not supported yet
Download
--------
+4 -1
View File
@@ -17,6 +17,7 @@ func aptlyMirrorCreate(cmd *commander.Command, args []string) error {
}
downloadSources := LookupOption(context.Config().DownloadSourcePackages, context.flags, "with-sources")
downloadUdebs := context.flags.Lookup("with-udebs").Value.Get().(bool)
var (
mirrorName, archiveURL, distribution string
@@ -33,7 +34,8 @@ func aptlyMirrorCreate(cmd *commander.Command, args []string) error {
archiveURL, distribution, components = args[1], args[2], args[3:]
}
repo, err := deb.NewRemoteRepo(mirrorName, archiveURL, distribution, components, context.ArchitecturesList(), downloadSources)
repo, err := deb.NewRemoteRepo(mirrorName, archiveURL, distribution, components, context.ArchitecturesList(),
downloadSources, downloadUdebs)
if err != nil {
return fmt.Errorf("unable to create mirror: %s", err)
}
@@ -90,6 +92,7 @@ Example:
cmd.Flag.Bool("ignore-signatures", false, "disable verification of Release file signatures")
cmd.Flag.Bool("with-sources", false, "download source packages in addition to binary packages")
cmd.Flag.Bool("with-udebs", false, "download .udeb packages (Debian installer support)")
cmd.Flag.String("filter", "", "filter packages in mirror")
cmd.Flag.Bool("filter-with-deps", false, "when filtering, include dependencies of matching packages as well")
cmd.Flag.Var(&keyRingsFlag{}, "keyring", "gpg keyring to use when verifying Release file (could be specified multiple times)")
+8 -1
View File
@@ -27,9 +27,15 @@ func aptlyMirrorEdit(cmd *commander.Command, args []string) error {
repo.FilterWithDeps = flag.Value.Get().(bool)
case "with-sources":
repo.DownloadSources = flag.Value.Get().(bool)
case "with-udebs":
repo.DownloadUdebs = flag.Value.Get().(bool)
}
})
if repo.IsFlat() && repo.DownloadUdebs {
return fmt.Errorf("unable to edit: flat mirrors don't support udebs")
}
if repo.Filter != "" {
_, err = query.Parse(repo.Filter)
if err != nil {
@@ -59,7 +65,7 @@ func makeCmdMirrorEdit() *commander.Command {
cmd := &commander.Command{
Run: aptlyMirrorEdit,
UsageLine: "edit <name>",
Short: "edit properties of mirorr",
Short: "edit mirror settings",
Long: `
Command edit allows one to change settings of mirror:
filters, list of architectures.
@@ -74,6 +80,7 @@ Example:
cmd.Flag.String("filter", "", "filter packages in mirror")
cmd.Flag.Bool("filter-with-deps", false, "when filtering, include dependencies of matching packages as well")
cmd.Flag.Bool("with-sources", false, "download source packages in addition to binary packages")
cmd.Flag.Bool("with-udebs", false, "download .udeb packages (Debian installer support)")
return cmd
}
+5
View File
@@ -37,6 +37,11 @@ func aptlyMirrorShow(cmd *commander.Command, args []string) error {
downloadSources = "yes"
}
fmt.Printf("Download Sources: %s\n", downloadSources)
downloadUdebs := "no"
if repo.DownloadUdebs {
downloadUdebs = "yes"
}
fmt.Printf("Download .udebs: %s\n", downloadUdebs)
if repo.Filter != "" {
fmt.Printf("Filter: %s\n", repo.Filter)
filterWithDeps := "no"
+12 -5
View File
@@ -61,14 +61,16 @@ func aptlyRepoAdd(cmd *commander.Command, args []string) error {
return nil
}
if strings.HasSuffix(info.Name(), ".deb") || strings.HasSuffix(info.Name(), ".dsc") {
if strings.HasSuffix(info.Name(), ".deb") || strings.HasSuffix(info.Name(), ".udeb") ||
strings.HasSuffix(info.Name(), ".dsc") {
packageFiles = append(packageFiles, path)
}
return nil
})
} else {
if strings.HasSuffix(info.Name(), ".deb") || strings.HasSuffix(info.Name(), ".dsc") {
if strings.HasSuffix(info.Name(), ".deb") || strings.HasSuffix(info.Name(), ".udeb") ||
strings.HasSuffix(info.Name(), ".dsc") {
packageFiles = append(packageFiles, location)
} else {
context.Progress().ColoredPrintf("@y[!]@| @!Unknwon file extenstion: %s@|", location)
@@ -93,6 +95,7 @@ func aptlyRepoAdd(cmd *commander.Command, args []string) error {
candidateProcessedFiles := []string{}
isSourcePackage := strings.HasSuffix(file, ".dsc")
isUdebPackage := strings.HasSuffix(file, ".udeb")
if isSourcePackage {
stanza, err = deb.GetControlFileFromDsc(file, verifier)
@@ -105,7 +108,11 @@ func aptlyRepoAdd(cmd *commander.Command, args []string) error {
}
} else {
stanza, err = deb.GetControlFileFromDeb(file)
p = deb.NewPackageFromControlFile(stanza)
if isUdebPackage {
p = deb.NewUdebPackageFromControlFile(stanza)
} else {
p = deb.NewPackageFromControlFile(stanza)
}
}
if err != nil {
context.Progress().ColoredPrintf("@y[!]@| @!Unable to read file %s: %s@|", file, err)
@@ -216,8 +223,8 @@ func makeCmdRepoAdd() *commander.Command {
UsageLine: "add <name> <package file.deb>|<directory> ...",
Short: "add packages to local repository",
Long: `
Command adds packages to local repository from .deb (binary packages) and .dsc (source packages) files.
When importing from directory aptly would do recursive scan looking for all files matching *.deb or *.dsc
Command adds packages to local repository from .deb, .udeb (binary packages) and .dsc (source packages) files.
When importing from directory aptly would do recursive scan looking for all files matching *.[u]deb or *.dsc
patterns. Every file discovered would be analyzed to extract metadata, package would then be created and added
to the database. Files would be imported to internal package pool. For source packages, all required files are
added automatically as well. Extra files for source package should be in the same directory as *.dsc file.
+254
View File
@@ -0,0 +1,254 @@
package deb
import (
"bufio"
"fmt"
"github.com/smira/aptly/aptly"
"github.com/smira/aptly/utils"
"os"
"path/filepath"
"strings"
)
type indexFiles struct {
publishedStorage aptly.PublishedStorage
basePath string
renameMap map[string]string
generatedFiles map[string]utils.ChecksumInfo
tempDir string
suffix string
indexes map[string]*indexFile
}
type indexFile struct {
parent *indexFiles
discardable bool
compressable bool
signable bool
relativePath string
tempFilename string
tempFile *os.File
w *bufio.Writer
}
func (file *indexFile) BufWriter() (*bufio.Writer, error) {
if file.w == nil {
var err error
file.tempFilename = filepath.Join(file.parent.tempDir, strings.Replace(file.relativePath, "/", "_", -1))
file.tempFile, err = os.Create(file.tempFilename)
if err != nil {
return nil, fmt.Errorf("unable to create temporary index file: %s", err)
}
file.w = bufio.NewWriter(file.tempFile)
}
return file.w, nil
}
func (file *indexFile) Finalize(signer utils.Signer) error {
if file.w == nil {
if file.discardable {
return nil
}
file.BufWriter()
}
err := file.w.Flush()
if err != nil {
file.tempFile.Close()
return fmt.Errorf("unable to write to index file: %s", err)
}
if file.compressable {
err = utils.CompressFile(file.tempFile)
if err != nil {
file.tempFile.Close()
return fmt.Errorf("unable to compress index file: %s", err)
}
}
file.tempFile.Close()
exts := []string{""}
if file.compressable {
exts = append(exts, ".gz", ".bz2")
}
for _, ext := range exts {
var checksumInfo utils.ChecksumInfo
checksumInfo, err = utils.ChecksumsForFile(file.tempFilename + ext)
if err != nil {
return fmt.Errorf("unable to collect checksums: %s", err)
}
file.parent.generatedFiles[file.relativePath+ext] = checksumInfo
}
err = file.parent.publishedStorage.MkDir(filepath.Dir(filepath.Join(file.parent.basePath, file.relativePath)))
if err != nil {
return fmt.Errorf("unable to create dir: %s", err)
}
for _, ext := range exts {
err = file.parent.publishedStorage.PutFile(filepath.Join(file.parent.basePath, file.relativePath+file.parent.suffix+ext),
file.tempFilename+ext)
if err != nil {
return fmt.Errorf("unable to publish file: %s", err)
}
if file.parent.suffix != "" {
file.parent.renameMap[filepath.Join(file.parent.basePath, file.relativePath+file.parent.suffix+ext)] =
filepath.Join(file.parent.basePath, file.relativePath+ext)
}
}
if file.signable && signer != nil {
err = signer.DetachedSign(file.tempFilename, file.tempFilename+".gpg")
if err != nil {
return fmt.Errorf("unable to detached sign file: %s", err)
}
err = signer.ClearSign(file.tempFilename, filepath.Join(filepath.Dir(file.tempFilename), "In"+filepath.Base(file.tempFilename)))
if err != nil {
return fmt.Errorf("unable to clearsign file: %s", err)
}
if file.parent.suffix != "" {
file.parent.renameMap[filepath.Join(file.parent.basePath, file.relativePath+file.parent.suffix+".gpg")] =
filepath.Join(file.parent.basePath, file.relativePath+".gpg")
file.parent.renameMap[filepath.Join(file.parent.basePath, "In"+file.relativePath+file.parent.suffix)] =
filepath.Join(file.parent.basePath, "In"+file.relativePath)
}
err = file.parent.publishedStorage.PutFile(filepath.Join(file.parent.basePath, file.relativePath+file.parent.suffix+".gpg"),
file.tempFilename+".gpg")
if err != nil {
return fmt.Errorf("unable to publish file: %s", err)
}
err = file.parent.publishedStorage.PutFile(filepath.Join(file.parent.basePath, "In"+file.relativePath+file.parent.suffix),
filepath.Join(filepath.Dir(file.tempFilename), "In"+filepath.Base(file.tempFilename)))
if err != nil {
return fmt.Errorf("unable to publish file: %s", err)
}
}
return nil
}
func newIndexFiles(publishedStorage aptly.PublishedStorage, basePath, tempDir, suffix string) *indexFiles {
return &indexFiles{
publishedStorage: publishedStorage,
basePath: basePath,
renameMap: make(map[string]string),
generatedFiles: make(map[string]utils.ChecksumInfo),
tempDir: tempDir,
suffix: suffix,
indexes: make(map[string]*indexFile),
}
}
func (files *indexFiles) PackageIndex(component, arch string, udeb bool) *indexFile {
key := fmt.Sprintf("pi-%s-%s-%s", component, arch, udeb)
file, ok := files.indexes[key]
if !ok {
var relativePath string
if arch == "source" {
relativePath = filepath.Join(component, "source", "Sources")
} else {
if udeb {
relativePath = filepath.Join(component, "debian-installer", fmt.Sprintf("binary-%s", arch), "Packages")
} else {
relativePath = filepath.Join(component, fmt.Sprintf("binary-%s", arch), "Packages")
}
}
file = &indexFile{
parent: files,
discardable: false,
compressable: true,
signable: false,
relativePath: relativePath,
}
files.indexes[key] = file
}
return file
}
func (files *indexFiles) ReleaseIndex(component, arch string, udeb bool) *indexFile {
key := fmt.Sprintf("ri-%s-%s-%s", component, arch, udeb)
file, ok := files.indexes[key]
if !ok {
var relativePath string
if arch == "source" {
relativePath = filepath.Join(component, "source", "Release")
} else {
if udeb {
relativePath = filepath.Join(component, "debian-installer", fmt.Sprintf("binary-%s", arch), "Release")
} else {
relativePath = filepath.Join(component, fmt.Sprintf("binary-%s", arch), "Release")
}
}
file = &indexFile{
parent: files,
discardable: udeb,
compressable: false,
signable: false,
relativePath: relativePath,
}
files.indexes[key] = file
}
return file
}
func (files *indexFiles) ReleaseFile() *indexFile {
return &indexFile{
parent: files,
discardable: false,
compressable: false,
signable: true,
relativePath: "Release",
}
}
func (files *indexFiles) FinalizeAll(progress aptly.Progress) (err error) {
if progress != nil {
progress.InitBar(int64(len(files.indexes)), false)
defer progress.ShutdownBar()
}
for _, file := range files.indexes {
err = file.Finalize(nil)
if err != nil {
return
}
if progress != nil {
progress.AddBar(1)
}
}
files.indexes = make(map[string]*indexFile)
return
}
func (files *indexFiles) RenameFiles() error {
var err error
for oldName, newName := range files.renameMap {
err = files.publishedStorage.RenameFile(oldName, newName)
if err != nil {
return fmt.Errorf("unable to rename: %s", err)
}
}
return nil
}
+13
View File
@@ -24,6 +24,8 @@ type Package struct {
Provides []string
// Is this source package
IsSource bool
// Is this udeb package
IsUdeb bool
// Hash of files section
FilesHash uint64
// Is this >= 0.6 package?
@@ -169,6 +171,14 @@ func NewSourcePackageFromControlFile(input Stanza) (*Package, error) {
return result, nil
}
// NewUdebPackageFromControlFile creates .udeb Package from parsed Debian control file
func NewUdebPackageFromControlFile(input Stanza) *Package {
p := NewPackageFromControlFile(input)
p.IsUdeb = true
return p
}
// Key returns unique key identifying package
func (p *Package) Key(prefix string) []byte {
if p.V06Plus {
@@ -220,6 +230,9 @@ func (p *Package) GetField(name string) string {
if p.IsSource {
return "source"
}
if p.IsUdeb {
return "udeb"
}
return "deb"
case "Name":
return p.Name
+41
View File
@@ -28,6 +28,7 @@ func (s *PackageSuite) TestNewFromPara(c *C) {
p := NewPackageFromControlFile(s.stanza)
c.Check(p.IsSource, Equals, false)
c.Check(p.IsUdeb, Equals, false)
c.Check(p.Name, Equals, "alien-arena-common")
c.Check(p.Version, Equals, "7.40-2")
c.Check(p.Architecture, Equals, "i386")
@@ -40,11 +41,27 @@ func (s *PackageSuite) TestNewFromPara(c *C) {
c.Check(p.deps.Depends, DeepEquals, []string{"libc6 (>= 2.7)", "alien-arena-data (>= 7.40)"})
}
func (s *PackageSuite) TestNewUdebFromPara(c *C) {
stanza, _ := NewControlFileReader(bytes.NewBufferString(udebPackageMeta)).ReadStanza()
p := NewUdebPackageFromControlFile(stanza)
c.Check(p.IsSource, Equals, false)
c.Check(p.IsUdeb, Equals, true)
c.Check(p.Name, Equals, "dmidecode-udeb")
c.Check(p.Version, Equals, "2.11-9")
c.Check(p.Architecture, Equals, "amd64")
c.Check(p.Provides, DeepEquals, []string(nil))
c.Check(p.Files(), HasLen, 1)
c.Check(p.Files()[0].Filename, Equals, "dmidecode-udeb_2.11-9_amd64.udeb")
c.Check(p.deps.Depends, DeepEquals, []string{"libc6-udeb (>= 2.13)"})
}
func (s *PackageSuite) TestNewSourceFromPara(c *C) {
p, err := NewSourcePackageFromControlFile(s.sourceStanza)
c.Check(err, IsNil)
c.Check(p.IsSource, Equals, true)
c.Check(p.IsUdeb, Equals, false)
c.Check(p.Name, Equals, "access-modifier-checker")
c.Check(p.Version, Equals, "1.0-4")
c.Check(p.Architecture, Equals, "source")
@@ -134,21 +151,28 @@ func (s *PackageSuite) TestGetField(c *C) {
p4, _ := NewSourcePackageFromControlFile(s.sourceStanza.Copy())
stanza5, _ := NewControlFileReader(bytes.NewBufferString(udebPackageMeta)).ReadStanza()
p5 := NewUdebPackageFromControlFile(stanza5)
c.Check(p.GetField("$Source"), Equals, "alien-arena")
c.Check(p2.GetField("$Source"), Equals, "alien-arena-common")
c.Check(p3.GetField("$Source"), Equals, "alien-arena")
c.Check(p4.GetField("$Source"), Equals, "")
c.Check(p5.GetField("$Source"), Equals, "dmidecode")
c.Check(p.GetField("$SourceVersion"), Equals, "7.40-2")
c.Check(p2.GetField("$SourceVersion"), Equals, "7.40-2")
c.Check(p3.GetField("$SourceVersion"), Equals, "3.5")
c.Check(p4.GetField("$SourceVersion"), Equals, "")
c.Check(p5.GetField("$SourceVersion"), Equals, "2.11-9")
c.Check(p.GetField("$Architecture"), Equals, "i386")
c.Check(p4.GetField("$Architecture"), Equals, "source")
c.Check(p5.GetField("$Architecture"), Equals, "amd64")
c.Check(p.GetField("$PackageType"), Equals, "deb")
c.Check(p4.GetField("$PackageType"), Equals, "source")
c.Check(p5.GetField("$PackageType"), Equals, "udeb")
c.Check(p.GetField("Name"), Equals, "alien-arena-common")
c.Check(p4.GetField("Name"), Equals, "access-modifier-checker")
@@ -455,3 +479,20 @@ Directory: pool/main/a/access-modifier-checker
Priority: source
Section: java
`
const udebPackageMeta = `Package: dmidecode-udeb
Source: dmidecode
Version: 2.11-9
Installed-Size: 115
Maintainer: Daniel Baumann <daniel.baumann@progress-technologies.net>
Architecture: amd64
Depends: libc6-udeb (>= 2.13)
Description: SMBIOS/DMI table decoder (udeb)
Description-md5: bdfb786c6a57097be8c8600b800e749f
Section: debian-installer
Priority: optional
Filename: pool/main/d/dmidecode/dmidecode-udeb_2.11-9_amd64.udeb
Size: 29188
MD5sum: ae70341c4d96dcded89fa670bcfea31e
SHA1: 9532ae4226a85805189a671ee0283f719d48a5ba
SHA256: bbb3a2cb07f741c3995b6d4bb08d772d83582b93a0236d4ea7736bc0370fc320`
+85 -180
View File
@@ -1,7 +1,6 @@
package deb
import (
"bufio"
"bytes"
"code.google.com/p/go-uuid/uuid"
"fmt"
@@ -440,9 +439,6 @@ func (p *PublishedRepo) Publish(packagePool aptly.PackagePool, publishedStorageP
suffix = ".tmp"
}
generatedFiles := map[string]utils.ChecksumInfo{}
renameMap := map[string]string{}
if progress != nil {
progress.Printf("Generating metadata files and linking package files...\n")
}
@@ -454,41 +450,44 @@ func (p *PublishedRepo) Publish(packagePool aptly.PackagePool, publishedStorageP
}
defer os.RemoveAll(tempDir)
indexes := newIndexFiles(publishedStorage, basePath, tempDir, suffix)
for component, list := range lists {
var relativePath string
hadUdebs := false
// For all architectures, generate packages/sources files
// For all architectures, pregenerate packages/sources files
for _, arch := range p.Architectures {
indexes.PackageIndex(component, arch, false)
}
if progress != nil {
progress.InitBar(int64(list.Len()), false)
}
err = list.ForEach(func(pkg *Package) error {
if progress != nil {
progress.InitBar(int64(list.Len()), false)
progress.AddBar(1)
}
if arch == "source" {
relativePath = filepath.Join(component, "source", "Sources")
} else {
relativePath = filepath.Join(component, fmt.Sprintf("binary-%s", arch), "Packages")
}
err = publishedStorage.MkDir(filepath.Dir(filepath.Join(basePath, relativePath)))
if err != nil {
return err
}
var packagesFile *os.File
packagesFileName := filepath.Join(tempDir, fmt.Sprintf("pkgs_%s_%s", component, arch))
packagesFile, err = os.Create(packagesFileName)
if err != nil {
return fmt.Errorf("unable to create temporary Packages file: %s", err)
}
bufWriter := bufio.NewWriter(packagesFile)
err = list.ForEach(func(pkg *Package) error {
if progress != nil {
progress.AddBar(1)
}
matches := false
for _, arch := range p.Architectures {
if pkg.MatchesArchitecture(arch) {
err = pkg.LinkFromPool(publishedStorage, packagePool, p.Prefix, component, forceOverwrite)
matches = true
break
}
}
if matches {
hadUdebs = hadUdebs || pkg.IsUdeb
err = pkg.LinkFromPool(publishedStorage, packagePool, p.Prefix, component, forceOverwrite)
if err != nil {
return err
}
}
for _, arch := range p.Architectures {
if pkg.MatchesArchitecture(arch) {
bufWriter, err := indexes.PackageIndex(component, arch, pkg.IsUdeb).BufWriter()
if err != nil {
return err
}
@@ -501,113 +500,63 @@ func (p *PublishedRepo) Publish(packagePool aptly.PackagePool, publishedStorageP
if err != nil {
return err
}
pkg.files = nil
pkg.deps = nil
pkg.extra = nil
}
return nil
})
if err != nil {
return fmt.Errorf("unable to process packages: %s", err)
}
err = bufWriter.Flush()
if err != nil {
return fmt.Errorf("unable to write Packages file: %s", err)
}
err = utils.CompressFile(packagesFile)
if err != nil {
return fmt.Errorf("unable to compress Packages files: %s", err)
}
packagesFile.Close()
for _, ext := range []string{"", ".gz", ".bz2"} {
var checksumInfo utils.ChecksumInfo
checksumInfo, err = utils.ChecksumsForFile(packagesFileName + ext)
if err != nil {
return fmt.Errorf("unable to collect checksums: %s", err)
}
generatedFiles[relativePath+ext] = checksumInfo
err = publishedStorage.PutFile(filepath.Join(basePath, relativePath+suffix+ext), packagesFileName+ext)
if err != nil {
return fmt.Errorf("unable to publish file: %s", err)
}
if suffix != "" {
renameMap[filepath.Join(basePath, relativePath+suffix+ext)] = filepath.Join(basePath, relativePath+ext)
}
}
if progress != nil {
progress.ShutdownBar()
pkg.files = nil
pkg.deps = nil
pkg.extra = nil
return nil
})
if err != nil {
return fmt.Errorf("unable to process packages: %s", err)
}
if progress != nil {
progress.ShutdownBar()
}
udebs := []bool{false}
if hadUdebs {
udebs = append(udebs, true)
// For all architectures, pregenerate .udeb indexes
for _, arch := range p.Architectures {
indexes.PackageIndex(component, arch, true)
}
}
// For all architectures, generate Release files
for _, arch := range p.Architectures {
release := make(Stanza)
release["Archive"] = p.Distribution
release["Architecture"] = arch
release["Component"] = component
release["Origin"] = p.GetOrigin()
release["Label"] = p.GetLabel()
for _, udeb := range udebs {
release := make(Stanza)
release["Archive"] = p.Distribution
release["Architecture"] = arch
release["Component"] = component
release["Origin"] = p.GetOrigin()
release["Label"] = p.GetLabel()
if arch == "source" {
relativePath = filepath.Join(component, "source", "Release")
} else {
relativePath = filepath.Join(component, fmt.Sprintf("binary-%s", arch), "Release")
bufWriter, err := indexes.ReleaseIndex(component, arch, udeb).BufWriter()
err = release.WriteTo(bufWriter)
if err != nil {
return fmt.Errorf("unable to create Release file: %s", err)
}
}
var file *os.File
fileName := filepath.Join(tempDir, fmt.Sprintf("release_%s_%s", component, arch))
file, err = os.Create(fileName)
if err != nil {
return fmt.Errorf("unable to create temporary Release file: %s", err)
}
bufWriter := bufio.NewWriter(file)
err = release.WriteTo(bufWriter)
if err != nil {
return fmt.Errorf("unable to create Release file: %s", err)
}
err = bufWriter.Flush()
if err != nil {
return fmt.Errorf("unable to create Release file: %s", err)
}
file.Close()
var checksumInfo utils.ChecksumInfo
checksumInfo, err = utils.ChecksumsForFile(fileName)
if err != nil {
return fmt.Errorf("unable to collect checksums: %s", err)
}
generatedFiles[relativePath] = checksumInfo
err = publishedStorage.PutFile(filepath.Join(basePath, relativePath+suffix), fileName)
if err != nil {
file.Close()
return fmt.Errorf("unable to publish file: %s", err)
}
if suffix != "" {
renameMap[filepath.Join(basePath, relativePath+suffix)] = filepath.Join(basePath, relativePath)
}
}
}
if progress != nil {
progress.Printf("Finalizing metadata files...\n")
}
err = indexes.FinalizeAll(progress)
if err != nil {
return err
}
release := make(Stanza)
release["Origin"] = p.GetOrigin()
release["Label"] = p.GetLabel()
@@ -621,80 +570,36 @@ func (p *PublishedRepo) Publish(packagePool aptly.PackagePool, publishedStorageP
release["Components"] = strings.Join(p.Components(), " ")
for path, info := range generatedFiles {
for path, info := range indexes.generatedFiles {
release["MD5Sum"] += fmt.Sprintf(" %s %8d %s\n", info.MD5, info.Size, path)
release["SHA1"] += fmt.Sprintf(" %s %8d %s\n", info.SHA1, info.Size, path)
release["SHA256"] += fmt.Sprintf(" %s %8d %s\n", info.SHA256, info.Size, path)
}
var releaseFile *os.File
releaseFilename := filepath.Join(tempDir, "Release")
releaseFile, err = os.Create(releaseFilename)
releaseFile := indexes.ReleaseFile()
bufWriter, err := releaseFile.BufWriter()
if err != nil {
return fmt.Errorf("unable to create temporary Release file: %s", err)
return err
}
bufWriter := bufio.NewWriter(releaseFile)
err = release.WriteTo(bufWriter)
if err != nil {
return fmt.Errorf("unable to create Release file: %s", err)
}
err = bufWriter.Flush()
if err != nil {
return fmt.Errorf("unable to create Release file: %s", err)
}
releaseFile.Close()
if suffix != "" {
renameMap[filepath.Join(basePath, "Release"+suffix)] = filepath.Join(basePath, "Release")
}
err = publishedStorage.PutFile(filepath.Join(basePath, "Release"+suffix), releaseFilename)
if err != nil {
return fmt.Errorf("unable to publish file: %s", err)
}
// Signing files might output to console, so flush progress writer first
if progress != nil {
progress.Flush()
}
if signer != nil {
err = signer.DetachedSign(releaseFilename, releaseFilename+".gpg")
if err != nil {
return fmt.Errorf("unable to sign Release file: %s", err)
}
err = signer.ClearSign(releaseFilename, filepath.Join(filepath.Dir(releaseFilename), "InRelease"+suffix))
if err != nil {
return fmt.Errorf("unable to sign Release file: %s", err)
}
if suffix != "" {
renameMap[filepath.Join(basePath, "Release"+suffix+".gpg")] = filepath.Join(basePath, "Release.gpg")
renameMap[filepath.Join(basePath, "InRelease"+suffix)] = filepath.Join(basePath, "InRelease")
}
err = publishedStorage.PutFile(filepath.Join(basePath, "Release"+suffix+".gpg"), releaseFilename+".gpg")
if err != nil {
return fmt.Errorf("unable to publish file: %s", err)
}
err = publishedStorage.PutFile(filepath.Join(basePath, "InRelease"+suffix),
filepath.Join(filepath.Dir(releaseFilename), "InRelease"+suffix))
if err != nil {
return fmt.Errorf("unable to publish file: %s", err)
}
err = releaseFile.Finalize(signer)
if err != nil {
return err
}
for oldName, newName := range renameMap {
err = publishedStorage.RenameFile(oldName, newName)
if err != nil {
return fmt.Errorf("unable to rename: %s", err)
}
err = indexes.RenameFiles()
if err != nil {
return err
}
return nil
+1 -1
View File
@@ -93,7 +93,7 @@ func (s *PublishedRepoSuite) SetUpTest(c *C) {
"files:other": s.publishedStorage2}}
s.packagePool = files.NewPackagePool(s.root)
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
repo.packageRefs = s.reflist
s.factory.RemoteRepoCollection().Add(repo)
+23 -2
View File
@@ -37,6 +37,8 @@ type RemoteRepo struct {
Architectures []string
// Should we download sources?
DownloadSources bool
// Should we download .udebs?
DownloadUdebs bool
// Meta-information about repository
Meta Stanza
// Last update date
@@ -55,7 +57,7 @@ type RemoteRepo struct {
// NewRemoteRepo creates new instance of Debian remote repository with specified params
func NewRemoteRepo(name string, archiveRoot string, distribution string, components []string,
architectures []string, downloadSources bool) (*RemoteRepo, error) {
architectures []string, downloadSources bool, downloadUdebs bool) (*RemoteRepo, error) {
result := &RemoteRepo{
UUID: uuid.New(),
Name: name,
@@ -64,6 +66,7 @@ func NewRemoteRepo(name string, archiveRoot string, distribution string, compone
Components: components,
Architectures: architectures,
DownloadSources: downloadSources,
DownloadUdebs: downloadUdebs,
}
err := result.prepare()
@@ -80,6 +83,9 @@ func NewRemoteRepo(name string, archiveRoot string, distribution string, compone
if len(result.Components) > 0 {
return nil, fmt.Errorf("components aren't supported for flat repos")
}
if result.DownloadUdebs {
return nil, fmt.Errorf("debian-installer udebs aren't supported for flat repos")
}
result.Components = nil
}
@@ -102,7 +108,10 @@ func (repo *RemoteRepo) prepare() error {
func (repo *RemoteRepo) String() string {
srcFlag := ""
if repo.DownloadSources {
srcFlag = " [src]"
srcFlag += " [src]"
}
if repo.DownloadUdebs {
srcFlag += " [udeb]"
}
distribution := repo.Distribution
if distribution == "" {
@@ -169,6 +178,13 @@ func (repo *RemoteRepo) SourcesURL(component string) *url.URL {
return repo.archiveRootURL.ResolveReference(path)
}
// UdebURL returns URL of Packages files for given component and
// architecture
func (repo *RemoteRepo) UdebURL(component string, architecture string) *url.URL {
path := &url.URL{Path: fmt.Sprintf("dists/%s/%s/debian-installer/binary-%s/Packages", repo.Distribution, component, architecture)}
return repo.archiveRootURL.ResolveReference(path)
}
// PackageURL returns URL of package file relative to repository root
// architecture
func (repo *RemoteRepo) PackageURL(filename string) *url.URL {
@@ -342,6 +358,9 @@ func (repo *RemoteRepo) Download(progress aptly.Progress, d aptly.Downloader, co
for _, component := range repo.Components {
for _, architecture := range repo.Architectures {
packagesURLs = append(packagesURLs, []string{repo.BinaryURL(component, architecture).String(), "binary"})
if repo.DownloadUdebs {
packagesURLs = append(packagesURLs, []string{repo.UdebURL(component, architecture).String(), "udeb"})
}
}
if repo.DownloadSources {
packagesURLs = append(packagesURLs, []string{repo.SourcesURL(component).String(), "source"})
@@ -378,6 +397,8 @@ func (repo *RemoteRepo) Download(progress aptly.Progress, d aptly.Downloader, co
if kind == "binary" {
p = NewPackageFromControlFile(stanza)
} else if kind == "udeb" {
p = NewUdebPackageFromControlFile(stanza)
} else if kind == "source" {
p, err = NewSourcePackageFromControlFile(stanza)
if err != nil {
+19 -14
View File
@@ -79,8 +79,8 @@ type RemoteRepoSuite struct {
var _ = Suite(&RemoteRepoSuite{})
func (s *RemoteRepoSuite) SetUpTest(c *C) {
s.repo, _ = NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian", "squeeze", []string{"main"}, []string{}, false)
s.flat, _ = NewRemoteRepo("exp42", "http://repos.express42.com/virool/precise/", "./", []string{}, []string{}, false)
s.repo, _ = NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian", "squeeze", []string{"main"}, []string{}, false, false)
s.flat, _ = NewRemoteRepo("exp42", "http://repos.express42.com/virool/precise/", "./", []string{}, []string{}, false, false)
s.downloader = http.NewFakeDownloader().ExpectResponse("http://mirror.yandex.ru/debian/dists/squeeze/Release", exampleReleaseFile)
s.progress = console.NewProgress()
s.db, _ = database.OpenDB(c.MkDir())
@@ -96,7 +96,7 @@ func (s *RemoteRepoSuite) TearDownTest(c *C) {
}
func (s *RemoteRepoSuite) TestInvalidURL(c *C) {
_, err := NewRemoteRepo("s", "http://lolo%2", "squeeze", []string{"main"}, []string{}, false)
_, err := NewRemoteRepo("s", "http://lolo%2", "squeeze", []string{"main"}, []string{}, false, false)
c.Assert(err, ErrorMatches, ".*hexadecimal escape in host.*")
}
@@ -106,11 +106,11 @@ func (s *RemoteRepoSuite) TestFlatCreation(c *C) {
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)
flat2, _ := NewRemoteRepo("flat2", "http://pkg.jenkins-ci.org/debian-stable", "binary/", []string{}, []string{}, false, false)
c.Check(flat2.IsFlat(), Equals, true)
c.Check(flat2.Distribution, Equals, "./binary/")
_, err := NewRemoteRepo("fl", "http://some.repo/", "./", []string{"main"}, []string{}, false)
_, err := NewRemoteRepo("fl", "http://some.repo/", "./", []string{"main"}, []string{}, false, false)
c.Check(err, ErrorMatches, "components aren't supported for flat repos")
}
@@ -119,8 +119,9 @@ func (s *RemoteRepoSuite) TestString(c *C) {
c.Check(s.flat.String(), Equals, "[exp42]: http://repos.express42.com/virool/precise/ ./")
s.repo.DownloadSources = true
s.repo.DownloadUdebs = true
s.flat.DownloadSources = true
c.Check(s.repo.String(), Equals, "[yandex]: http://mirror.yandex.ru/debian/ squeeze [src]")
c.Check(s.repo.String(), Equals, "[yandex]: http://mirror.yandex.ru/debian/ squeeze [src] [udeb]")
c.Check(s.flat.String(), Equals, "[exp42]: http://repos.express42.com/virool/precise/ ./ [src]")
}
@@ -151,6 +152,10 @@ func (s *RemoteRepoSuite) TestBinaryURL(c *C) {
c.Assert(s.repo.BinaryURL("main", "amd64").String(), Equals, "http://mirror.yandex.ru/debian/dists/squeeze/main/binary-amd64/Packages")
}
func (s *RemoteRepoSuite) TestUdebURL(c *C) {
c.Assert(s.repo.UdebURL("main", "amd64").String(), Equals, "http://mirror.yandex.ru/debian/dists/squeeze/main/debian-installer/binary-amd64/Packages")
}
func (s *RemoteRepoSuite) TestSourcesURL(c *C) {
c.Assert(s.repo.SourcesURL("main").String(), Equals, "http://mirror.yandex.ru/debian/dists/squeeze/main/source/Sources")
}
@@ -209,13 +214,13 @@ func (s *RemoteRepoSuite) TestFetchNullVerifier2(c *C) {
}
func (s *RemoteRepoSuite) TestFetchWrongArchitecture(c *C) {
s.repo, _ = NewRemoteRepo("s", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{"xyz"}, false)
s.repo, _ = NewRemoteRepo("s", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{"xyz"}, false, false)
err := s.repo.Fetch(s.downloader, nil)
c.Assert(err, ErrorMatches, "architecture xyz not available in repo.*")
}
func (s *RemoteRepoSuite) TestFetchWrongComponent(c *C) {
s.repo, _ = NewRemoteRepo("s", "http://mirror.yandex.ru/debian/", "squeeze", []string{"xyz"}, []string{"i386"}, false)
s.repo, _ = NewRemoteRepo("s", "http://mirror.yandex.ru/debian/", "squeeze", []string{"xyz"}, []string{"i386"}, false, false)
err := s.repo.Fetch(s.downloader, nil)
c.Assert(err, ErrorMatches, "component xyz not available in repo.*")
}
@@ -399,7 +404,7 @@ func (s *RemoteRepoCollectionSuite) TestAddByName(c *C) {
r, err := s.collection.ByName("yandex")
c.Assert(err, ErrorMatches, "*.not found")
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
c.Assert(s.collection.Add(repo), IsNil)
c.Assert(s.collection.Add(repo), ErrorMatches, ".*already exists")
@@ -417,7 +422,7 @@ func (s *RemoteRepoCollectionSuite) TestByUUID(c *C) {
r, err := s.collection.ByUUID("some-uuid")
c.Assert(err, ErrorMatches, "*.not found")
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
c.Assert(s.collection.Add(repo), IsNil)
r, err = s.collection.ByUUID(repo.UUID)
@@ -426,7 +431,7 @@ func (s *RemoteRepoCollectionSuite) TestByUUID(c *C) {
}
func (s *RemoteRepoCollectionSuite) TestUpdateLoadComplete(c *C) {
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
c.Assert(s.collection.Update(repo), IsNil)
collection := NewRemoteRepoCollection(s.db)
@@ -447,7 +452,7 @@ func (s *RemoteRepoCollectionSuite) TestUpdateLoadComplete(c *C) {
}
func (s *RemoteRepoCollectionSuite) TestForEachAndLen(c *C) {
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
s.collection.Add(repo)
count := 0
@@ -469,10 +474,10 @@ func (s *RemoteRepoCollectionSuite) TestForEachAndLen(c *C) {
}
func (s *RemoteRepoCollectionSuite) TestDrop(c *C) {
repo1, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
repo1, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
s.collection.Add(repo1)
repo2, _ := NewRemoteRepo("tyndex", "http://mirror.yandex.ru/debian/", "wheezy", []string{"main"}, []string{}, false)
repo2, _ := NewRemoteRepo("tyndex", "http://mirror.yandex.ru/debian/", "wheezy", []string{"main"}, []string{}, false, false)
s.collection.Add(repo2)
r1, _ := s.collection.ByUUID(repo1.UUID)
+4 -4
View File
@@ -15,7 +15,7 @@ var _ = Suite(&SnapshotSuite{})
func (s *SnapshotSuite) SetUpTest(c *C) {
s.SetUpPackages()
s.repo, _ = NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
s.repo, _ = NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
s.repo.packageRefs = s.reflist
}
@@ -108,11 +108,11 @@ func (s *SnapshotCollectionSuite) SetUpTest(c *C) {
s.collection = NewSnapshotCollection(s.db)
s.SetUpPackages()
s.repo1, _ = NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false)
s.repo1, _ = NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{}, false, false)
s.repo1.packageRefs = s.reflist
s.snapshot1, _ = NewSnapshotFromRepository("snap1", s.repo1)
s.repo2, _ = NewRemoteRepo("android", "http://mirror.yandex.ru/debian/", "lenny", []string{"main"}, []string{}, false)
s.repo2, _ = NewRemoteRepo("android", "http://mirror.yandex.ru/debian/", "lenny", []string{"main"}, []string{}, false, false)
s.repo2.packageRefs = s.reflist
s.snapshot2, _ = NewSnapshotFromRepository("snap2", s.repo2)
@@ -192,7 +192,7 @@ func (s *SnapshotCollectionSuite) TestFindByRemoteRepoSource(c *C) {
c.Check(s.collection.ByRemoteRepoSource(s.repo1), DeepEquals, []*Snapshot{s.snapshot1})
c.Check(s.collection.ByRemoteRepoSource(s.repo2), DeepEquals, []*Snapshot{s.snapshot2})
repo3, _ := NewRemoteRepo("other", "http://mirror.yandex.ru/debian/", "lenny", []string{"main"}, []string{}, false)
repo3, _ := NewRemoteRepo("other", "http://mirror.yandex.ru/debian/", "lenny", []string{"main"}, []string{}, false, false)
c.Check(s.collection.ByRemoteRepoSource(repo3), DeepEquals, []*Snapshot{})
}
+10 -2
View File
@@ -311,6 +311,10 @@ gpg keyring to use when verifying Release file (could be specified multiple time
\-\fBwith\-sources\fR=false
download source packages in addition to binary packages
.
.TP
\-\fBwith\-udebs\fR=false
download \.udeb packages (Debian installer support)
.
.SH "LIST MIRRORS"
\fBaptly\fR \fBmirror\fR \fBlist\fR
.
@@ -411,7 +415,7 @@ Example:
.P
$ aptly mirror rename wheezy\-min wheezy\-main
.
.SH "EDIT PROPERTIES OF MIRORR"
.SH "EDIT MIRROR SETTINGS"
\fBaptly\fR \fBmirror\fR \fBedit\fR \fIname\fR
.
.P
@@ -438,6 +442,10 @@ when filtering, include dependencies of matching packages as well
\-\fBwith\-sources\fR=false
download source packages in addition to binary packages
.
.TP
\-\fBwith\-udebs\fR=false
download \.udeb packages (Debian installer support)
.
.SH "SEARCH MIRROR FOR PACKAGES MATCHING QUERY"
\fBaptly\fR \fBmirror\fR \fBsearch\fR \fIname\fR \fIpackage\-query\fR
.
@@ -468,7 +476,7 @@ include dependencies into search results
\fBaptly\fR \fBrepo\fR \fBadd\fR \fIname\fR
.
.P
Command adds packages to local repository from \.deb (binary packages) and \.dsc (source packages) files\. When importing from directory aptly would do recursive scan looking for all files matching \fI\.deb or\fR\.dsc patterns\. Every file discovered would be analyzed to extract metadata, package would then be created and added to the database\. Files would be imported to internal package pool\. For source packages, all required files are added automatically as well\. Extra files for source package should be in the same directory as *\.dsc file\.
Command adds packages to local repository from \.deb, \.udeb (binary packages) and \.dsc (source packages) files\. When importing from directory aptly would do recursive scan looking for all files matching \fI\.[u]deb or\fR\.dsc patterns\. Every file discovered would be analyzed to extract metadata, package would then be created and added to the database\. Files would be imported to internal package pool\. For source packages, all required files are added automatically as well\. Extra files for source package should be in the same directory as *\.dsc file\.
.
.P
Example:
+1
View File
@@ -155,6 +155,7 @@ class BaseTest(object):
if not hasattr(command, "__iter__"):
params = {
'files': os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files"),
'udebs': os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "udebs"),
'testfiles': os.path.join(os.path.dirname(inspect.getsourcefile(self.__class__)), self.__class__.__name__),
}
if self.fixtureWebServer:
@@ -24,4 +24,5 @@ Options:
-ignore-signatures=false: disable verification of Release file signatures
-keyring=: gpg keyring to use when verifying Release file (could be specified multiple times)
-with-sources=false: download source packages in addition to binary packages
-with-udebs=false: download .udeb packages (Debian installer support)
+1
View File
@@ -15,4 +15,5 @@ Options:
-ignore-signatures=false: disable verification of Release file signatures
-keyring=: gpg keyring to use when verifying Release file (could be specified multiple times)
-with-sources=false: download source packages in addition to binary packages
-with-udebs=false: download .udeb packages (Debian installer support)
ERROR: unable to parse command
+1
View File
@@ -16,4 +16,5 @@ Options:
-ignore-signatures=false: disable verification of Release file signatures
-keyring=: gpg keyring to use when verifying Release file (could be specified multiple times)
-with-sources=false: download source packages in addition to binary packages
-with-udebs=false: download .udeb packages (Debian installer support)
ERROR: unable to parse flags
@@ -4,6 +4,7 @@ Distribution: squeeze
Components: main, contrib, non-free
Architectures: amd64, armel, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main, contrib, non-free
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: ./
Components:
Architectures:
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main, contrib, non-free
Architectures: i386
Download Sources: yes
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: maverick
Components: main
Architectures: amd64, armel, i386, powerpc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,17 +4,16 @@ Distribution: wheezy/updates
Components: main
Architectures: i386
Download Sources: yes
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: updates/main updates/contrib updates/non-free
Date: Tue, 11 Mar 2014 21:11:28 UTC
Description: Debian 7.0 Security Updates
Label: Debian-Security
Origin: Debian
Suite: stable
Valid-Until: Fri, 21 Mar 2014 21:11:28 UTC
Version: 7.0
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main, contrib, non-free
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: ./binary/
Components:
Architectures:
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: wheezy/updates
Components: main
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Filter: nginx | Priority (required)
Filter With Deps: no
Last update: never
@@ -12,11 +13,9 @@ Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: updates/main updates/contrib updates/non-free
Date: Sun, 13 Jul 2014 12:12:08 UTC
Description: Debian 7.0 Security Updates
Label: Debian-Security
Origin: Debian
Suite: stable
Valid-Until: Wed, 23 Jul 2014 12:12:08 UTC
Version: 7.0
@@ -0,0 +1,4 @@
Downloading http://mirror.yandex.ru/debian/dists/wheezy/Release...
Mirror [mirror25]: http://mirror.yandex.ru/debian/ wheezy [udeb] successfully added.
You can run 'aptly mirror update mirror25' to download repository contents.
@@ -0,0 +1,20 @@
Name: mirror25
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main, contrib, non-free
Architectures: i386
Download Sources: no
Download .udebs: yes
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 12 Jul 2014 10:59:25 UTC
Description: Debian 7.6 Released 12 July 2014
Label: Debian
Origin: Debian
Suite: stable
Version: 7.6
@@ -0,0 +1 @@
ERROR: unable to create mirror: debian-installer udebs aren't supported for flat repos
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main, contrib
Architectures: i386, amd64
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main, contrib
Architectures: i386, amd64
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -4,6 +4,7 @@ Distribution: squeeze-backports
Components: main, contrib, non-free
Architectures: amd64, armel, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
@@ -11,11 +12,9 @@ Architectures: amd64 armel i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel po
ButAutomaticUpgrades: yes
Codename: squeeze-backports
Components: main contrib non-free
Date: Fri, 07 Feb 2014 02:56:49 UTC
Description: Backports for the Squeeze Distribution
Label: Debian Backports
NotAutomatic: yes
Origin: Debian Backports
Suite: squeeze-backports
Valid-Until: Fri, 14 Feb 2014 02:56:49 UTC
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main
Architectures: i386, amd64
Download Sources: yes
Download .udebs: no
Filter: nginx
Filter With Deps: yes
Number of packages: 56121
@@ -4,7 +4,7 @@ Distribution: wheezy
Components: main
Architectures: i386, amd64
Download Sources: no
Last update: 2014-06-28 01:23:25 MSK
Download .udebs: no
Number of packages: 56121
Information from release file:
@@ -4,17 +4,16 @@ Distribution: wheezy/updates
Components: main
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: updates/main updates/contrib updates/non-free
Date: Fri, 25 Jul 2014 03:31:55 UTC
Description: Debian 7.0 Security Updates
Label: Debian-Security
Origin: Debian
Suite: stable
Valid-Until: Mon, 04 Aug 2014 03:31:55 UTC
Version: 7.0
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main
Architectures: amd64, s390
Download Sources: no
Download .udebs: no
Number of packages: 56121
Information from release file:
+1
View File
@@ -0,0 +1 @@
Mirror [wheezy-main]: http://mirror.yandex.ru/debian/ wheezy [udeb] successfully updated.
@@ -0,0 +1,20 @@
Name: wheezy-main
Archive Root URL: http://mirror.yandex.ru/debian/
Distribution: wheezy
Components: main
Architectures: i386, amd64
Download Sources: no
Download .udebs: yes
Number of packages: 56121
Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: main contrib non-free
Date: Sat, 26 Apr 2014 09:27:11 UTC
Description: Debian 7.5 Released 26 April 2014
Label: Debian
Origin: Debian
Suite: stable
Version: 7.5
+1
View File
@@ -0,0 +1 @@
ERROR: unable to edit: flat mirrors don't support udebs
+1
View File
@@ -4,6 +4,7 @@ Distribution: wheezy
Components: main, contrib, non-free
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Last update: never
Information from release file:
+1 -1
View File
@@ -4,7 +4,7 @@ Distribution: wheezy
Components: contrib
Architectures: i386, amd64
Download Sources: no
Last update: 2014-02-25 00:21:33 MSK
Download .udebs: no
Number of packages: 325
Information from release file:
+1 -2
View File
@@ -4,6 +4,7 @@ Distribution: wheezy/updates
Components: main
Architectures: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
Download Sources: no
Download .udebs: no
Filter: nginx | Priority (required)
Filter With Deps: yes
Last update: never
@@ -12,11 +13,9 @@ Information from release file:
Architectures: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc
Codename: wheezy
Components: updates/main updates/contrib updates/non-free
Date: Sun, 13 Jul 2014 12:12:08 UTC
Description: Debian 7.0 Security Updates
Label: Debian-Security
Origin: Debian
Suite: stable
Valid-Until: Wed, 23 Jul 2014 12:12:08 UTC
Version: 7.0
+33
View File
@@ -0,0 +1,33 @@
Applying filter...
Building download queue...
Download queue: 10 items (0.76 MiB)
Downloading & parsing package files...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/InRelease...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/Release...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/Release.gpg...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/main/binary-amd64/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/main/binary-i386/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/main/debian-installer/binary-amd64/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/main/debian-installer/binary-i386/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/non-free/binary-amd64/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/non-free/binary-i386/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/non-free/debian-installer/binary-amd64/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/dists/squeeze/non-free/debian-installer/binary-i386/Packages.bz2...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/dmraid-udeb_1.0.0.rc16-4.1_amd64.udeb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/dmraid-udeb_1.0.0.rc16-4.1_i386.udeb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/dmraid_1.0.0.rc16-4.1_amd64.deb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/dmraid_1.0.0.rc16-4.1_i386.deb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/libdmraid-dev_1.0.0.rc16-4.1_amd64.deb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/libdmraid-dev_1.0.0.rc16-4.1_i386.deb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/libdmraid1.0.0.rc16-udeb_1.0.0.rc16-4.1_amd64.udeb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/libdmraid1.0.0.rc16-udeb_1.0.0.rc16-4.1_i386.udeb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/libdmraid1.0.0.rc16_1.0.0.rc16-4.1_amd64.deb...
Downloading http://mirror.yandex.ru/debian/pool/main/d/dmraid/libdmraid1.0.0.rc16_1.0.0.rc16-4.1_i386.deb...
Mirror `squeeze` has been successfully updated.
Packages filtered: 45830 -> 10.
gpgv: Good signature from "Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>"
gpgv: Good signature from "Squeeze Stable Release Key <debian-release@lists.debian.org>"
gpgv: RSA key ID 473041FA
gpgv: RSA key ID B98321F9
+21 -1
View File
@@ -277,7 +277,7 @@ class CreateMirror23Test(BaseTest):
class CreateMirror24Test(BaseTest):
"""
create mirror: mirror with wrong filter
create mirror: disable config value with option
"""
runCmd = "aptly mirror create -ignore-signatures=false -keyring=aptlytest.gpg mirror24 http://security.debian.org/ wheezy/updates main"
fixtureGpg = True
@@ -286,3 +286,23 @@ class CreateMirror24Test(BaseTest):
configOverride = {
"gpgDisableVerify": True
}
class CreateMirror25Test(BaseTest):
"""
create mirror: mirror with udebs enabled
"""
runCmd = "aptly -architectures=i386 mirror create -ignore-signatures -with-udebs mirror25 http://mirror.yandex.ru/debian/ wheezy"
def check(self):
self.check_output()
self.check_cmd_output("aptly mirror show mirror25", "mirror_show")
class CreateMirror26Test(BaseTest):
"""
create mirror: flat mirror with udebs
"""
runCmd = "aptly mirror create -keyring=aptlytest.gpg -with-udebs mirror26 http://pkg.jenkins-ci.org/debian-stable binary/"
fixtureGpg = True
expectedCode = 1
+22
View File
@@ -79,3 +79,25 @@ class EditMirror7Test(BaseTest):
fixtureDB = True
runCmd = "aptly mirror edit -architectures=amd64,x56 wheezy-main"
expectedCode = 1
class EditMirror8Test(BaseTest):
"""
edit mirror: enable udebs
"""
fixtureDB = True
runCmd = "aptly mirror edit -with-udebs wheezy-main"
def check(self):
self.check_output()
self.check_cmd_output("aptly mirror show wheezy-main", "mirror_show", match_prepare=lambda s: re.sub(r"Last update: [0-9:+A-Za-z -]+\n", "", s))
class EditMirror9Test(BaseTest):
"""
edit mirror: flat mirror with udebs
"""
fixtureCmds = ["aptly mirror create -keyring=aptlytest.gpg mirror9 http://pkg.jenkins-ci.org/debian-stable binary/"]
fixtureGpg = True
runCmd = "aptly mirror edit -with-udebs mirror9"
expectedCode = 1
+16
View File
@@ -156,3 +156,19 @@ class UpdateMirror11Test(BaseTest):
def output_processor(self, output):
return "\n".join(sorted(output.split("\n")))
class UpdateMirror12Test(BaseTest):
"""
update mirrors: update with udebs
"""
longTest = False
fixtureGpg = True
fixtureCmds = [
"aptly -architectures=i386,amd64 mirror create -keyring=aptlytest.gpg -filter='$$Source (dmraid)' -with-udebs squeeze http://mirror.yandex.ru/debian/ squeeze main non-free",
]
runCmd = "aptly mirror update -keyring=aptlytest.gpg squeeze"
outputMatchPrepare = lambda _, s: re.sub(r'Signature made .* using', '', s)
def output_processor(self, output):
return "\n".join(sorted(output.split("\n")))
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Local repo local-repo has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,6 +1,7 @@
Warning: publishing from empty source, architectures list should be complete, it can't be changed after publishing (use -architectures flag)
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
+1
View File
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -2,6 +2,7 @@ WARNING: force overwrite mode enabled, aptly might corrupt other published repos
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -0,0 +1,20 @@
Package: dmraid-udeb
Version: 1.0.0.rc16-4.1
Installed-Size: 36
Priority: optional
Section: debian-installer
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: i386
Description: Device-Mapper Software RAID support tool (udeb)
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
This is the minimal package (udeb) used by debian-installer
MD5sum: 4d8bb4dafb0ef9059dac75846e162784
SHA1: fd5c73e08d4c5381b1136c2ff170332d77526246
SHA256: fe4ff3351186f03039f8cd6f78e8e4f473a75b613f950caac06fa21dda2d59e8
Source: dmraid
Size: 11022
Depends: libc6-udeb (>= 2.11), libdmraid1.0.0.rc16-udeb (>= 1.0.0.rc16), dmsetup-udeb
Filename: pool/main/d/dmraid/dmraid-udeb_1.0.0.rc16-4.1_i386.udeb
+14
View File
@@ -0,0 +1,14 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Local repo local-repo has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
Now you can add following line to apt sources:
deb http://your-server/ maverick main
deb-src http://your-server/ maverick main
Don't forget to add your GPG key to apt with apt-key.
You can also use `aptly serve` to publish your repositories over HTTP quickly.
@@ -0,0 +1,20 @@
Package: dmraid-udeb
Version: 1.0.0.rc16-4.1
Installed-Size: 36
Priority: optional
Section: debian-installer
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: i386
Description: Device-Mapper Software RAID support tool (udeb)
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
This is the minimal package (udeb) used by debian-installer
MD5sum: 4d8bb4dafb0ef9059dac75846e162784
SHA1: fd5c73e08d4c5381b1136c2ff170332d77526246
SHA256: fe4ff3351186f03039f8cd6f78e8e4f473a75b613f950caac06fa21dda2d59e8
Filename: pool/main/d/dmraid/dmraid-udeb_1.0.0.rc16-4.1_i386.udeb
Size: 11022
Source: dmraid
Depends: libc6-udeb (>= 2.11), libdmraid1.0.0.rc16-udeb (>= 1.0.0.rc16), dmsetup-udeb
+1
View File
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
+1
View File
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
+1
View File
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Snapshot snap13 has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Snapshot snap15 has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Snapshot snap5 has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -0,0 +1,109 @@
Package: gnuplot
Version: 4.6.1-1~maverick2
Installed-Size: 20
Priority: optional
Section: math
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: all
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package is for transition and to install a full-featured gnuplot
supporting the X11-output.
MD5sum: 4912a4464d5588f685c4aa6cfc6be46c
SHA1: 4a50deb413e05f77b31687405465b1229b3be328
Source:
Size: 1046
Filename: pool/main/g/gnuplot/gnuplot_4.6.1-1~maverick2_all.deb
Suggests: gnuplot-doc (>= 4.6.1-1~maverick2)
Depends: gnuplot-nox (>= 4.6.1-1~maverick2), gnuplot-x11 (>= 4.6.1-1~maverick2)
Package: gnuplot-doc
Version: 4.6.1-1~maverick2
Installed-Size: 5572
Priority: optional
Section: doc
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: all
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package contains the additional documentation.
MD5sum: 25a5028811171f2f1fa157a2f6953e82
SHA1: 837dd002143054ca01d3b01cae410cc4b4fe10c4
Source: gnuplot
Depends: dpkg (>= 1.15.4) | install-info
Filename: pool/main/g/gnuplot/gnuplot-doc_4.6.1-1~maverick2_all.deb
Size: 2675242
Package: gnuplot-nox
Version: 4.6.1-1~maverick2
Installed-Size: 2624
Priority: optional
Section: math
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: amd64
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package is for working without an X server.
MD5sum: db55daca818697b23024255e536399da
SHA1: d5a1b0bbfb562e5cecef3f3fb70ddb4cd6103507
Suggests: gnuplot-x11 (>= 4.6.1-1~maverick2), gnuplot-doc (>= 4.6.1-1~maverick2)
Filename: pool/main/g/gnuplot/gnuplot-nox_4.6.1-1~maverick2_amd64.deb
Replaces: gnuplot (<< 4.0.0)
Source: gnuplot
Recommends: groff, ttf-liberation
Size: 1129114
Depends: libc6 (>= 2.11), libcairo2 (>= 1.6.0), libedit2 (>= 2.5.cvs.20010821-1), libgd2-noxpm (>= 2.0.36~rc1~dfsg) | libgd2-xpm (>= 2.0.36~rc1~dfsg), libglib2.0-0 (>= 2.12.0), liblua5.1-0, libpango1.0-0 (>= 1.14.0)
Package: gnuplot-x11
Version: 4.6.1-1~maverick2
Installed-Size: 1716
Priority: optional
Section: math
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: amd64
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package contains the terminal driver that enables gnuplot to plot
images interactively under X11. Most users will want this, it is however
packaged separately so that low-end systems don't need X installed to use
gnuplot.
MD5sum: 17ab6787992b979e3a4851a90dfaf0a8
SHA1: d60b0ee30a885ba0202adddccd7968ab70be7426
Size: 819248
Source: gnuplot
Depends: gnuplot-nox (>= 4.6.1-1~maverick2), libc6 (>= 2.11), libcairo2 (>= 1.6.0), libedit2 (>= 2.5.cvs.20010821-1), libgcc1 (>= 1:4.1.1), libgd2-noxpm (>= 2.0.36~rc1~dfsg) | libgd2-xpm (>= 2.0.36~rc1~dfsg), libglib2.0-0 (>= 2.12.0), liblua5.1-0, libpango1.0-0 (>= 1.14.0), libstdc++6 (>= 4.1.1), libwxbase2.8-0 (>= 2.8.11.0), libwxgtk2.8-0 (>= 2.8.11.0), libx11-6
Replaces: gnuplot (<< 4.0.0)
Filename: pool/main/g/gnuplot/gnuplot-x11_4.6.1-1~maverick2_amd64.deb
@@ -0,0 +1,109 @@
Package: gnuplot
Version: 4.6.1-1~maverick2
Installed-Size: 20
Priority: optional
Section: math
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: all
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package is for transition and to install a full-featured gnuplot
supporting the X11-output.
MD5sum: 4912a4464d5588f685c4aa6cfc6be46c
SHA1: 4a50deb413e05f77b31687405465b1229b3be328
Size: 1046
Depends: gnuplot-nox (>= 4.6.1-1~maverick2), gnuplot-x11 (>= 4.6.1-1~maverick2)
Suggests: gnuplot-doc (>= 4.6.1-1~maverick2)
Filename: pool/main/g/gnuplot/gnuplot_4.6.1-1~maverick2_all.deb
Source:
Package: gnuplot-doc
Version: 4.6.1-1~maverick2
Installed-Size: 5572
Priority: optional
Section: doc
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: all
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package contains the additional documentation.
MD5sum: 25a5028811171f2f1fa157a2f6953e82
SHA1: 837dd002143054ca01d3b01cae410cc4b4fe10c4
Source: gnuplot
Filename: pool/main/g/gnuplot/gnuplot-doc_4.6.1-1~maverick2_all.deb
Depends: dpkg (>= 1.15.4) | install-info
Size: 2675242
Package: gnuplot-nox
Version: 4.6.1-1~maverick2
Installed-Size: 2536
Priority: optional
Section: math
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: i386
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package is for working without an X server.
MD5sum: a7ef16004b62fd78acb77edb058ea1c1
SHA1: 629c3e62f787b0af47b184beb0460dd261c9ca4d
Size: 1046496
Source: gnuplot
Depends: libc6 (>= 2.11), libcairo2 (>= 1.6.0), libedit2 (>= 2.5.cvs.20010821-1), libgd2-noxpm (>= 2.0.36~rc1~dfsg) | libgd2-xpm (>= 2.0.36~rc1~dfsg), libglib2.0-0 (>= 2.12.0), liblua5.1-0, libpango1.0-0 (>= 1.14.0)
Suggests: gnuplot-x11 (>= 4.6.1-1~maverick2), gnuplot-doc (>= 4.6.1-1~maverick2)
Recommends: groff, ttf-liberation
Replaces: gnuplot (<< 4.0.0)
Filename: pool/main/g/gnuplot/gnuplot-nox_4.6.1-1~maverick2_i386.deb
Package: gnuplot-x11
Version: 4.6.1-1~maverick2
Installed-Size: 1604
Priority: optional
Section: math
Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: i386
Description: Command-line driven interactive plotting program
Gnuplot is a portable command-line driven interactive data and function
plotting utility that supports lots of output formats, including drivers
for many printers, (La)TeX, (x)fig, Postscript, and so on. The X11-output
is packaged in gnuplot-x11.
.
Data files and self-defined functions can be manipulated by the internal
C-like language. Can perform smoothing, spline-fitting, or nonlinear fits,
and can work with complex numbers.
.
This package contains the terminal driver that enables gnuplot to plot
images interactively under X11. Most users will want this, it is however
packaged separately so that low-end systems don't need X installed to use
gnuplot.
MD5sum: fcad938905d0ace50a6ce0c73b2c6583
SHA1: 02f9a93097a8f798a054e26154dbe5789088c069
Source: gnuplot
Replaces: gnuplot (<< 4.0.0)
Filename: pool/main/g/gnuplot/gnuplot-x11_4.6.1-1~maverick2_i386.deb
Depends: gnuplot-nox (>= 4.6.1-1~maverick2), libc6 (>= 2.11), libcairo2 (>= 1.6.0), libedit2 (>= 2.5.cvs.20010821-1), libgcc1 (>= 1:4.1.1), libgd2-noxpm (>= 2.0.36~rc1~dfsg) | libgd2-xpm (>= 2.0.36~rc1~dfsg), libglib2.0-0 (>= 2.12.0), liblua5.1-0, libpango1.0-0 (>= 1.14.0), libstdc++6 (>= 4.1.1), libwxbase2.8-0 (>= 2.8.11.0), libwxgtk2.8-0 (>= 2.8.11.0), libx11-6
Size: 724388
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Snapshot snap3 has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Snapshot snap3 has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Snapshot snap3 has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,6 +1,7 @@
Warning: publishing from empty source, architectures list should be complete, it can't be changed after publishing (use -architectures flag)
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -2,6 +2,7 @@ WARNING: force overwrite mode enabled, aptly might corrupt other published repos
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -0,0 +1,13 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Snapshot squeeze has been successfully published.
Please setup your webserver to serve directory '${HOME}/.aptly/public' with autoindexing.
Now you can add following line to apt sources:
deb http://your-server/ squeeze main
Don't forget to add your GPG key to apt with apt-key.
You can also use `aptly serve` to publish your repositories over HTTP quickly.
@@ -0,0 +1,88 @@
Package: dmraid
Version: 1.0.0.rc16-4.1
Installed-Size: 112
Priority: optional
Section: admin
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: amd64
Description: Device-Mapper Software RAID support tool
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
dmraid uses the Linux device-mapper to create devices with respective
mappings for the ATARAID sets discovered.
.
The following formats are supported:
Highpoint HPT37X/HPT45X
Intel Software RAID
LSI Logic MegaRAID
NVidia NForce RAID (nvraid)
Promise FastTrack
Silicon Image(tm) Medley(tm)
VIA Software RAID
.
Please read the documentation in /usr/share/doc/dmraid BEFORE attempting
any use of this software. Improper use can cause data loss!
MD5sum: 35da9bcdd12c7fb08eb7192f0a17ddf2
SHA1: 6a89d3f9e3b80a172811bb7d74eac43f119a8b7c
SHA256: 125405c4b0a7364bf209c161f393d4d0152ba9d02a55a95d90a7637f7b373b8f
Tag: admin::filesystem, admin::kernel, hardware::storage, implemented-in::c, interface::commandline, role::program, scope::utility, use::scanning
Size: 38620
Depends: libc6 (>= 2.3), libdmraid1.0.0.rc16 (>= 1.0.0.rc16), libselinux1 (>= 1.32), libsepol1 (>= 1.14), udev, dmsetup
Homepage: http://people.redhat.com/~heinzm/sw/dmraid/
Source:
Filename: pool/main/d/dmraid/dmraid_1.0.0.rc16-4.1_amd64.deb
Package: libdmraid-dev
Version: 1.0.0.rc16-4.1
Installed-Size: 496
Priority: optional
Section: libdevel
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: amd64
Description: Device-Mapper Software RAID support tool - header files
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
dmraid uses the Linux device-mapper to create devices with respective
mappings for the ATARAID sets discovered.
.
This package contains the header files needed to link programs against
dmraid.
MD5sum: bb209b5796592d786c28844b949216dc
SHA1: cd8baba807fa92a88a265a044d821df8b677b5cb
SHA256: 081a48ad5372a941c35d41733da89a52cbe2d8f49032c2a4ef03148e4049615f
Homepage: http://people.redhat.com/~heinzm/sw/dmraid/
Tag: admin::hardware, devel::lang:c, devel::library, hardware::storage, implemented-in::c, qa::low-popcon, role::devel-lib, use::driver
Size: 152618
Depends: libdmraid1.0.0.rc16 (= 1.0.0.rc16-4.1)
Filename: pool/main/d/dmraid/libdmraid-dev_1.0.0.rc16-4.1_amd64.deb
Source: dmraid
Package: libdmraid1.0.0.rc16
Version: 1.0.0.rc16-4.1
Installed-Size: 244
Priority: optional
Section: libs
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: amd64
Description: Device-Mapper Software RAID support tool - shared library
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
dmraid uses the Linux device-mapper to create devices with respective
mappings for the ATARAID sets discovered.
.
This package contains the dmraid shared library, which implements
the back half of dmraid, including on-disk metadata formats.
MD5sum: a66d03bb1ddad78f879660ddedf86295
SHA1: 6292936617c466e67a3148c66d0c27c068d055d3
SHA256: 29f06bd3ae42e3380b356b69598be07724d178af35f2f1a64648c7f8ff85bef9
Depends: libc6 (>= 2.7), libdevmapper1.02.1 (>= 2:1.02.20)
Homepage: http://people.redhat.com/~heinzm/sw/dmraid/
Size: 108978
Tag: admin::hardware, admin::kernel, devel::lang:c, devel::library, hardware::storage, implemented-in::c, role::{devel-lib,kernel,shared-lib}, use::driver
Filename: pool/main/d/dmraid/libdmraid1.0.0.rc16_1.0.0.rc16-4.1_amd64.deb
Replaces: libdmraid1.0.0.rc15 (<< 1.0.0.rc16-1)
Source: dmraid
@@ -0,0 +1,88 @@
Package: libdmraid1.0.0.rc16
Version: 1.0.0.rc16-4.1
Installed-Size: 268
Priority: optional
Section: libs
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: i386
Description: Device-Mapper Software RAID support tool - shared library
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
dmraid uses the Linux device-mapper to create devices with respective
mappings for the ATARAID sets discovered.
.
This package contains the dmraid shared library, which implements
the back half of dmraid, including on-disk metadata formats.
MD5sum: 9330ba2ffd2f22d695fdf692f8120159
SHA1: 6b262419836e8cad4500043f5e9e6a1581074023
SHA256: 2b2238679ac8ff4776a3a2caf533c551700d9f92a7d2af23d6457acf7de5d6c8
Tag: admin::hardware, admin::kernel, devel::lang:c, devel::library, hardware::storage, implemented-in::c, role::{devel-lib,kernel,shared-lib}, use::driver
Filename: pool/main/d/dmraid/libdmraid1.0.0.rc16_1.0.0.rc16-4.1_i386.deb
Replaces: libdmraid1.0.0.rc15 (<< 1.0.0.rc16-1)
Homepage: http://people.redhat.com/~heinzm/sw/dmraid/
Source: dmraid
Depends: libc6 (>= 2.7), libdevmapper1.02.1 (>= 2:1.02.20)
Size: 106088
Package: dmraid
Version: 1.0.0.rc16-4.1
Installed-Size: 176
Priority: optional
Section: admin
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: i386
Description: Device-Mapper Software RAID support tool
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
dmraid uses the Linux device-mapper to create devices with respective
mappings for the ATARAID sets discovered.
.
The following formats are supported:
Highpoint HPT37X/HPT45X
Intel Software RAID
LSI Logic MegaRAID
NVidia NForce RAID (nvraid)
Promise FastTrack
Silicon Image(tm) Medley(tm)
VIA Software RAID
.
Please read the documentation in /usr/share/doc/dmraid BEFORE attempting
any use of this software. Improper use can cause data loss!
MD5sum: f8aea4e9eaea341b112f02e9efe1678e
SHA1: bb96a258038c79bc04eef49d5875deed4c67dd16
SHA256: 6a8294bef99040055009da41597869bfdb17ac89c3166e49c57340abe7f702ba
Size: 37984
Depends: libc6 (>= 2.3), libdmraid1.0.0.rc16 (>= 1.0.0.rc16), libselinux1 (>= 1.32), libsepol1 (>= 1.14), udev, dmsetup
Filename: pool/main/d/dmraid/dmraid_1.0.0.rc16-4.1_i386.deb
Tag: admin::filesystem, admin::kernel, hardware::storage, implemented-in::c, interface::commandline, role::program, scope::utility, use::scanning
Source:
Homepage: http://people.redhat.com/~heinzm/sw/dmraid/
Package: libdmraid-dev
Version: 1.0.0.rc16-4.1
Installed-Size: 440
Priority: optional
Section: libdevel
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: i386
Description: Device-Mapper Software RAID support tool - header files
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
dmraid uses the Linux device-mapper to create devices with respective
mappings for the ATARAID sets discovered.
.
This package contains the header files needed to link programs against
dmraid.
MD5sum: 5395970df02ab5f1609cd7eccc15ead1
SHA1: f27bd38eeb58a32ee7e58ac8a2950649bd4ef17b
SHA256: 2abe9142ce6aa341df57303b5bc847522779ea9109b0fe734e2ae4419872da71
Tag: admin::hardware, devel::lang:c, devel::library, hardware::storage, implemented-in::c, qa::low-popcon, role::devel-lib, use::driver
Homepage: http://people.redhat.com/~heinzm/sw/dmraid/
Size: 145808
Filename: pool/main/d/dmraid/libdmraid-dev_1.0.0.rc16-4.1_i386.deb
Depends: libdmraid1.0.0.rc16 (= 1.0.0.rc16-4.1)
Source: dmraid
@@ -0,0 +1,40 @@
Package: dmraid-udeb
Version: 1.0.0.rc16-4.1
Installed-Size: 32
Priority: optional
Section: debian-installer
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: amd64
Description: Device-Mapper Software RAID support tool (udeb)
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
This is the minimal package (udeb) used by debian-installer
MD5sum: 721685fde18001ad0c9ac172c3118983
SHA1: 88e229b76cb5866c8868a491a6690b3fde2b33d5
SHA256: efae69921b97494e40437712053b60a5105fa433f3cfbae3bb2991d341eb95a6
Filename: pool/main/d/dmraid/dmraid-udeb_1.0.0.rc16-4.1_amd64.udeb
Depends: libc6-udeb (>= 2.11), libdmraid1.0.0.rc16-udeb (>= 1.0.0.rc16), dmsetup-udeb
Source: dmraid
Size: 11806
Package: libdmraid1.0.0.rc16-udeb
Version: 1.0.0.rc16-4.1
Installed-Size: 0
Priority: optional
Section: debian-installer
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: amd64
Description: Device-Mapper Software RAID support tool - shared library (udeb)
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
This is the minimal package (udeb shared library) used by debian-installer
MD5sum: efae3ee2d1ccd78aaec7d452ecba4c6a
SHA1: 2ef8c01a0375c92f59fed32949b9469cc53d0b99
SHA256: aabf098de9fcf2da0c0f66f2d9f1cb61f7e244dd2b009361e40cd29827749d44
Size: 92372
Filename: pool/main/d/dmraid/libdmraid1.0.0.rc16-udeb_1.0.0.rc16-4.1_amd64.udeb
Source: dmraid
Depends: libc6-udeb (>= 2.11), libdevmapper1.02.1-udeb (>= 2:1.02.48)
@@ -0,0 +1,40 @@
Package: dmraid-udeb
Version: 1.0.0.rc16-4.1
Installed-Size: 36
Priority: optional
Section: debian-installer
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: i386
Description: Device-Mapper Software RAID support tool (udeb)
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
This is the minimal package (udeb) used by debian-installer
MD5sum: 4d8bb4dafb0ef9059dac75846e162784
SHA1: fd5c73e08d4c5381b1136c2ff170332d77526246
SHA256: fe4ff3351186f03039f8cd6f78e8e4f473a75b613f950caac06fa21dda2d59e8
Source: dmraid
Size: 11022
Filename: pool/main/d/dmraid/dmraid-udeb_1.0.0.rc16-4.1_i386.udeb
Depends: libc6-udeb (>= 2.11), libdmraid1.0.0.rc16-udeb (>= 1.0.0.rc16), dmsetup-udeb
Package: libdmraid1.0.0.rc16-udeb
Version: 1.0.0.rc16-4.1
Installed-Size: 212
Priority: optional
Section: debian-installer
Maintainer: Giuseppe Iuculano <iuculano@debian.org>
Architecture: i386
Description: Device-Mapper Software RAID support tool - shared library (udeb)
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.
.
This is the minimal package (udeb shared library) used by debian-installer
MD5sum: aba78093c15c8bcd8e237f6a578c6c65
SHA1: c5e95d443889775a48d6c48bf332a21a37ce63c6
SHA256: 1c51dbf4cd1a5a683fd60e2b4f44dc6f8f574de3aea52354541a9a105f10f918
Depends: libc6-udeb (>= 2.11), libdevmapper1.02.1-udeb (>= 2:1.02.48)
Source: dmraid
Filename: pool/main/d/dmraid/libdmraid1.0.0.rc16-udeb_1.0.0.rc16-4.1_i386.udeb
Size: 89490
@@ -0,0 +1,58 @@
Origin: . squeeze
Label: . squeeze
Codename: squeeze
Date: Tue, 30 Sep 2014 15:35:22 UTC
Architectures: amd64 i386
Components: main
Description: Generated by aptly
MD5Sum:
a75ee7a5106ba4369de928e26b7afefd 803 main/debian-installer/binary-i386/Packages.bz2
d82f063b0a674ee60d070fc960c33c92 677 main/debian-installer/binary-amd64/Packages.gz
8b51fb682910e0d52caa31b61ef1192a 807 main/debian-installer/binary-amd64/Packages.bz2
a77ec46f63b69e32fdf3a5aa484c1190 1592 main/binary-i386/Packages.bz2
9efff4ebb46b70b71215a8df4f71069d 88 main/binary-amd64/Release
d9d38d0cff22f7364cbabb4e8b536316 87 main/debian-installer/binary-i386/Release
0eaacc9b677879735bcc958c2e24c699 1395 main/binary-i386/Packages.gz
e1c910470349056521dbc4d473a48637 677 main/debian-installer/binary-i386/Packages.gz
d9d38d0cff22f7364cbabb4e8b536316 87 main/binary-i386/Release
1093e4c5170235ac5cc872f985088815 3669 main/binary-amd64/Packages
c4b9d1069fcb04fdad832a657ff02ef3 3663 main/binary-i386/Packages
b58a784bc0764d523fd9134b53c8dda0 1585 main/binary-amd64/Packages.bz2
9ac58b6597a8e0344d69c2550aca9720 1601 main/debian-installer/binary-i386/Packages
f940214380907f004b1e175a6c20bf07 1603 main/debian-installer/binary-amd64/Packages
9efff4ebb46b70b71215a8df4f71069d 88 main/debian-installer/binary-amd64/Release
703b425641f4e847a1f0a8a0c28fb128 1394 main/binary-amd64/Packages.gz
SHA1:
a0c5944608dc219fad9d799b3fa6aae280d331c0 803 main/debian-installer/binary-i386/Packages.bz2
5faf018385934f65a6af0c4ab3af2fda62c63aff 677 main/debian-installer/binary-amd64/Packages.gz
61c9b82f75a642839e6e32e5a734f890417b1160 807 main/debian-installer/binary-amd64/Packages.bz2
e69414d40bb79bca8dc1b274ceb42fb04c3d02ee 1592 main/binary-i386/Packages.bz2
7c25a15429615225e3eb90540ba783561fc09448 88 main/binary-amd64/Release
f07fcb0797d81341b6284ed86e5903dc57341a90 87 main/debian-installer/binary-i386/Release
a8657c2409859da9f91280a5da48f3b5276e2829 1395 main/binary-i386/Packages.gz
b8e5b5b41a6ded99006a94c0550cd2291ac19d7f 677 main/debian-installer/binary-i386/Packages.gz
f07fcb0797d81341b6284ed86e5903dc57341a90 87 main/binary-i386/Release
0c86f7bd6ed2b52b0ab12ea08a76d14235b85d7c 3669 main/binary-amd64/Packages
4227cdcd3260e10eee066182f22ec8eec4fc7f0a 3663 main/binary-i386/Packages
8cec67723e4cee24f67ffa46a1f4ae7165fb31f0 1585 main/binary-amd64/Packages.bz2
ae94f4b0b3396951399de65e04784ef7b0f95119 1601 main/debian-installer/binary-i386/Packages
6f8e5137388e594b31bed56ca9e08f8e9f305ca4 1603 main/debian-installer/binary-amd64/Packages
7c25a15429615225e3eb90540ba783561fc09448 88 main/debian-installer/binary-amd64/Release
163a7a656c5e338d53bbc6cbe80263ca551dfa15 1394 main/binary-amd64/Packages.gz
SHA256:
4f8eeab36071b8791ce74099df89e01d46ab66f3c76dd9afe6c31fe48c30783d 803 main/debian-installer/binary-i386/Packages.bz2
bf7b96d1c66abb7dc6037299ab4fe0119d42b66c8c01cfa0520e27d813c99e50 677 main/debian-installer/binary-amd64/Packages.gz
3a30d9da1ed1108d3451c0c7fe60d99594a2cdf2459a8e505920ed69043bdc6c 807 main/debian-installer/binary-amd64/Packages.bz2
1d947dcc40ad2ace3b8226b68161948478a187eb9865d4b62c5068200e0ec058 1592 main/binary-i386/Packages.bz2
e8378aced6fec291729f656e1d884225ec9c28ba67fc434ef2531223bc37033e 88 main/binary-amd64/Release
62b9292134aefb30a75aff3e25c2c694d128d73a1d193f29a397789dd902a854 87 main/debian-installer/binary-i386/Release
e30a8b568654e69f1fe7744ace4ffb0d385a8e52502ffd9f84a8184130386a08 1395 main/binary-i386/Packages.gz
f6f2350eab308eb2f290b98f088e973e70ded5d1244688b71edfb201ac85e832 677 main/debian-installer/binary-i386/Packages.gz
62b9292134aefb30a75aff3e25c2c694d128d73a1d193f29a397789dd902a854 87 main/binary-i386/Release
e2d936cb65a504e6bf13bb09c5a0c6e8943cdd7845d715d571b1fb58262a624f 3669 main/binary-amd64/Packages
14ae70d15fa8263b55056ef36bac9208ee9e03847118788cc00b6d2a46b5fa10 3663 main/binary-i386/Packages
0128db3912e0e2f92b2e3a277c28239d6e072323b35bc007dbf32bc696df413c 1585 main/binary-amd64/Packages.bz2
c3f2708d36c503619f5b3f43b2c7da3f559b72f723c96d0ce9c664f92c6fcc14 1601 main/debian-installer/binary-i386/Packages
1f90f76bc0df9a588940d14f3ee0ad7d26a86809537f2e5ff4d340e4a8a21f3d 1603 main/debian-installer/binary-amd64/Packages
e8378aced6fec291729f656e1d884225ec9c28ba67fc434ef2531223bc37033e 88 main/debian-installer/binary-amd64/Release
e179f48a91a8dc614a37e2fb21d8d82ff3937fd44e077ec0e2507b8382d896ab 1394 main/binary-amd64/Packages.gz
@@ -0,0 +1,5 @@
Origin: . squeeze
Label: . squeeze
Architecture: i386
Archive: squeeze
Component: main
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
@@ -2,6 +2,7 @@ WARNING: force overwrite mode enabled, aptly might corrupt other published repos
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "ppa" components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "ppa" components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components b, c...
@@ -2,6 +2,7 @@ WARNING: force overwrite mode enabled, aptly might corrupt other published repos
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components main...
@@ -1,5 +1,6 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up prefix "." components main...

Some files were not shown because too many files have changed in this diff Show More