function packages() {
log "Generating Packages and Sources files"
- cd $configdir
- #apt-ftparchive generate apt.conf
- dak generate-packages-sources
+ #cd $configdir
+ #dak generate-packages-sources
+ dak generate-packages-sources2
dak contents generate
}
log 'Creating Maintainers index ... '
cd $indices
- dak make-maintainers ${scriptdir}/masterfiles/pseudo-packages.maintainers | \
- sed -e "s/~[^ ]*\([ ]\)/\1/" | \
- awk '{printf "%-20s ", $1; for (i=2; i<=NF; i++) printf "%s ", $i; printf "\n";}' > .new-maintainers
-
- if ! cmp -s .new-maintainers Maintainers || [ ! -f Maintainers ]; then
- log "installing Maintainers ... "
- mv -f .new-maintainers Maintainers
- gzip -9v <Maintainers >.new-maintainers.gz
- mv -f .new-maintainers.gz Maintainers.gz
- else
- rm -f .new-maintainers
- fi
-}
-
-function mkuploaders() {
- log 'Creating Uploaders index ... '
-
- cd $indices
- dak make-maintainers -u ${scriptdir}/masterfiles/pseudo-packages.maintainers | \
- sed -e "s/~[^ ]*\([ ]\)/\1/" | \
- awk '{printf "%-20s ", $1; for (i=2; i<=NF; i++) printf "%s ", $i; printf "\n";}' > .new-uploaders
-
- if ! cmp -s .new-uploaders Uploaders || [ ! -f Uploaders ]; then
- log "installing Uploaders ... "
- mv -f .new-uploaders Uploaders
- gzip -9v <Uploaders >.new-uploaders.gz
- mv -f .new-uploaders.gz Uploaders.gz
- else
- rm -f .new-uploaders
- fi
+ dak make-maintainers ${scriptdir}/masterfiles/pseudo-packages.maintainers
+ gzip -9v --rsyncable <Maintainers >Maintainers.gz
+ gzip -9v --rsyncable <Uploaders >Uploaders.gz
}
function copyoverrides() {
}
function mirrorpush() {
+ log "Checking the public archive copy"
+ cd ${mirrordir}/dists
+
+ broken=0
+ for release in $(find . -name "InRelease"); do
+ echo "Processing: ${release}"
+ subdir=${release%/InRelease}
+ while read SHASUM SIZE NAME; do
+ if ! [ -f "${subdir}/${NAME}" ]; then
+ bname=$(basename ${NAME})
+ if [ "${bname}" = "Packages" ] || [ "${bname}" = "Sources" ]; then
+ # We don't keep unpacked files, don't check for their existance.
+ # We might want to go and check their unpacked shasum, but right now
+ # I don't care. I believe it should be enough if all the packed shasums
+ # match.
+ continue
+ fi
+ broken=$(( broken + 1 ))
+ echo "File ${subdir}/${NAME} is missing"
+ continue
+ fi
+
+ # We do have symlinks in the tree (see the contents files currently).
+ # So we use "readlink -f" to check the size of the target, as thats basically
+ # what gen-releases does
+ fsize=$(stat -c %s $(readlink -f "${subdir}/${NAME}"))
+ if [ ${fsize} -ne ${SIZE} ]; then
+ broken=$(( broken + 1 ))
+ echo "File ${subdir}/${NAME} has size ${fsize}, expected is ${SIZE}"
+ continue
+ fi
+
+ fshasum=$(sha1sum $(readlink -f "${subdir}/${NAME}"))
+ fshasum=${fshasum%% *}
+ if [ "${fshasum}" != "${SHASUM}" ]; then
+ broken=$(( broken + 1 ))
+ echo "File ${subdir}/${NAME} has checksum ${fshasum}, expected is ${SHASUM}"
+ continue
+ fi
+ done < <(sed '1,/SHA1:/d' "${release}" | sed '/SHA256:/,$d')
+ done
+
+ if [ $broken -gt 0 ]; then
+ log_error "Trouble with the public mirror, found ${broken} errors"
+ return 21
+ fi
+
log "Starting the mirrorpush"
date -u > /srv/ftp.debian.org/web/mirrorstart
echo "Using dak v1" >> /srv/ftp.debian.org/web/mirrorstart