From b28f8a1b012580d47066cdb304c3ac708d947c8e Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 3 May 2010 13:46:17 +0200 Subject: [PATCH] Skip sections not in use for each distro For example there are only restricted for a subset of the distributions. --- update-archive/apt-ftparchive.conf.in | 2 +- update-archive/apt-release.conf.in | 2 +- update-archive/update-archive.sh | 46 +++++++++++++++++++++------------ 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/update-archive/apt-ftparchive.conf.in b/update-archive/apt-ftparchive.conf.in index 92047d2..f8e9fab 100644 --- a/update-archive/apt-ftparchive.conf.in +++ b/update-archive/apt-ftparchive.conf.in @@ -34,7 +34,7 @@ TreeDefault { }; Tree "dists/@dist@" { - Sections "main restricted"; + Sections "@sections@"; Architectures "source @architectures@"; SrcOverride "/dev/null"; }; diff --git a/update-archive/apt-release.conf.in b/update-archive/apt-release.conf.in index babe45a..ca329a2 100644 --- a/update-archive/apt-release.conf.in +++ b/update-archive/apt-release.conf.in @@ -3,5 +3,5 @@ APT::FTPArchive::Release::Label "Indexdata"; APT::FTPArchive::Release::Suite "@dist@"; APT::FTPArchive::Release::Codename "@dist@"; APT::FTPArchive::Release::Architectures "@architectures@"; -APT::FTPArchive::Release::Components "main restricted"; +APT::FTPArchive::Release::Components "@sections@"; APT::FTPArchive::Release::Description "Index Data Debian packages"; diff --git a/update-archive/update-archive.sh b/update-archive/update-archive.sh index 6f96c09..6e678e6 100755 --- a/update-archive/update-archive.sh +++ b/update-archive/update-archive.sh @@ -29,6 +29,7 @@ for vdist in ubuntu/gutsy ubuntu/hardy ubuntu/intrepid ubuntu/jaunty ubuntu/karm # Uncomment to clean the .db (cache) # rm tmp/* + sections="" for section in main restricted; do # Prepare pool d=pool/dists/$dist/$section @@ -43,6 +44,7 @@ for vdist in ubuntu/gutsy ubuntu/hardy ubuntu/intrepid ubuntu/jaunty ubuntu/karm fi done # Make symlinks from the regular FTP archive + has_packages=false for pdir in /home/ftp/pub/*; do use=false if test -f $pdir/.htaccess -a $section != "main"; then @@ -63,6 +65,7 @@ for vdist in ubuntu/gutsy ubuntu/hardy ubuntu/intrepid ubuntu/jaunty ubuntu/karm $distdir/*_all.*; do if test -f $f; then ln -sf $f $d/${arch} + has_packages=true fi done done @@ -70,36 +73,47 @@ for vdist in ubuntu/gutsy ubuntu/hardy ubuntu/intrepid ubuntu/jaunty ubuntu/karm fi done # ${confdir}/symclean.sh $d - - for arch in $architectures; do - d=dists/$dist/$section/binary-$arch + + rm -f $d/Release + if $has_packages; then + if test -z "$sections"; then + sections="$section" + else + sections="$sections $section" + fi + for arch in $architectures; do + d=dists/$dist/$section/binary-$arch + if test ! -d $d; then mkdir -p $d; fi + echo "Archive: $dist" >$d/Release + echo "Component: $section" >>$d/Release + echo 'Origin: Indexdata' >>$d/Release + echo "Architecture: $arch" >>$d/Release + done + d=dists/$dist/$section/source if test ! -d $d; then mkdir -p $d; fi echo "Archive: $dist" >$d/Release echo "Component: $section" >>$d/Release echo 'Origin: Indexdata' >>$d/Release - echo "Architecture: $arch" >>$d/Release - done - - d=dists/$dist/$section/source - if test ! -d $d; then mkdir -p $d; fi - echo "Archive: $dist" >$d/Release - echo "Component: $section" >>$d/Release - echo 'Origin: Indexdata' >>$d/Release - echo 'Architecture: source' >>$d/Release + echo 'Architecture: source' >>$d/Release + fi done # generate - echo "Begin Generate $dist" + echo "Begin Generate $dist: $sections" F=apt-ftparchive.conf - sed "s/@dist@/$dist/g" <${confdir}/${F}.in |sed "s/@architectures@/${architectures}/g" > $F + sed "s/@dist@/$dist/g" <${confdir}/${F}.in | \ + sed "s/@architectures@/${architectures}/g" | \ + sed "s/@sections@/${sections}/g" > $F # Don't know if clean is needed! # apt-ftparchive clean apt-ftparchive.conf apt-ftparchive generate apt-ftparchive.conf - echo "Done generate $dist" + echo "Done generate $dist: $sections" # release r=dists/$dist/Release F=apt-release.conf - sed "s/@dist@/$dist/g" <${confdir}/${F}.in | sed "s/@architectures@/${architectures}/g" >$F + sed "s/@dist@/$dist/g" <${confdir}/${F}.in | \ + sed "s/@architectures@/${architectures}/g" | \ + sed "s/@sections@/${sections}/g" > $F # Move Release file away while calling using release rm $r apt-ftparchive -c $F release dists/$dist >tmp_Release -- 1.7.10.4