What's the right syntax to mix multiple sections in aptgenerate.conf file?
0
votes
1
answer
42
views
I set up a local repo for Debian packages, following that recipe .
It works fine, except that I don't know how to mix multiple sections (e.g.,
main
, contrib
, etc.) in one single aptgenerate.conf
file.
What I did, and what works, was to create a different aptgenerate.conf
file for each section, for example
aptgenerate-main.conf
for section main
:
Dir::ArchiveDir ".";
Dir::CacheDir "/tmp";
TreeDefault::Directory "pool/main";
Default::Packages::Extensions ".deb";
Default::Packages::Compress ". gzip bzip2";
Default::Contents::Compress "gzip bzip2";
BinDirectory "dists/bookworm/main/binary-amd64" {
Packages "dists/bookworm/main/binary-amd64/Packages";
Contents "dists/bookworm/main/Contents-amd64";
};
Tree "dists/bookworm" {
Sections "main";
Architectures "amd64";
};
And aptgenerate-contrib.conf
for section contrib
:
Dir::ArchiveDir ".";
Dir::CacheDir "/tmp";
TreeDefault::Directory "pool/contrib";
Default::Packages::Extensions ".deb";
Default::Packages::Compress ". gzip bzip2";
Default::Contents::Compress "gzip bzip2";
BinDirectory "dists/bookworm/contrib/binary-amd64" {
Packages "dists/bookworm/contrib/binary-amd64/Packages";
Contents "dists/bookworm/contrib/Contents-amd64";
};
Tree "dists/bookworm" {
Sections "contrib";
Architectures "amd64";
};
It works fine :
$ apt-ftparchive generate -c=aptftp.conf aptgenerate-main.conf
dists/bookworm/main/binary-amd64: New 34 B 0 files 0 B 0s
pool/main: 32 files 16,6 MB 0s
Packages done, Starting contents.
dists/bookworm/main/Contents-amd64: 64 files 33,2 MB 1s
Done. 16,6 MB in 32 archives. Took 1s
$ apt-ftparchive generate -c=aptftp.conf aptgenerate-contrib.conf
dists/bookworm/contrib/binary-amd64: New 34 B 0 files 0 B 0s
pool/contrib: 6 files 393 kB 0s
Packages done, Starting contents.
dists/bookworm/contrib/Contents-amd64: 12 files 787 kB 0s
Done. 393 kB in 6 archives. Took 0s
In my example, I had 32 packages in section main
, and 6 packages in section contrib
, and it generated Packages
and Content
files accordingly.
Now, I wonder if there's a syntaxe to mix both section in a single aptgenerate.conf
file, and do everything in a single run.
I tried :
Dir::ArchiveDir ".";
Dir::CacheDir "/tmp";
TreeDefault::Directory "pool/";
Default::Packages::Extensions ".deb";
Default::Packages::Compress ". gzip bzip2";
Default::Contents::Compress "gzip bzip2";
BinDirectory "dists/bookworm/main/binary-amd64" {
Packages "dists/bookworm/main/binary-amd64/Packages";
Contents "dists/bookworm/main/Contents-amd64";
};
BinDirectory "dists/bookworm/contrib/binary-amd64" {
Packages "dists/bookworm/contrib/binary-amd64/Packages";
Contents "dists/bookworm/contrib/Contents-amd64";
};
Tree "dists/bookworm" {
Sections "main contrib";
Architectures "amd64";
};
But it generated twice the same Packages
and Content
files, with each time the whole 38 packages (32+6).
$ apt-ftparchive generate -c=aptftp.conf aptgenerate.conf
dists/bookworm/main/binary-amd64: New 34 B 0 files 0 B 0s
dists/bookworm/contrib/binary-amd64: New 34 B 0 files 0 B 0s
pool/: 38 files 17,0 MB 0s
pool/: 38 files 17,0 MB 0s
Packages done, Starting contents.
dists/bookworm/main/Contents-amd64: New 86,6 kB 76 files 34,0 MB 1s
dists/bookworm/contrib/Contents-amd64: New 86,6 kB 76 files 34,0 MB 1s
Done. 34,0 MB in 76 archives. Took 2s
Packages
and Content
are identical for each section :
$ diff dists/bookworm/main/binary-amd64/Packages dists/bookworm/contrib/binary-amd64/Packages
$
$ diff dists/bookworm/main/Contents-amd64.gz dists/bookworm/contrib/Contents-amd64.gz
$
This is probably due to the TreeDefault::Directory "pool/";
config. What would be the syntax to use pool/main
for main
, and pool/contrib
for contrib
?
Asked by ChennyStar
(1969 rep)
Jun 6, 2025, 08:32 PM
Last activity: Jun 7, 2025, 05:25 PM
Last activity: Jun 7, 2025, 05:25 PM