Package: ia32-libs Version: 1.4 Severity: serious Tags: patch Hi,
I've updated the fetch-and-build script to work with current etch. The current script didn't take care to fetch matching source and binary packages so some rewriting was needed. I didn't check if the existing ia32-libs has any of those mismatches but the current one would have. Since missing source are a GPL violation I set the severity to serious just in case. MfG Goswin PS: On top of this the packages/sources in locals should be removed IMHO since even sarge i386 lacks them. -- System Information: Debian Release: 3.1 Architecture: amd64 (x86_64) Kernel: Linux 2.6.8-frosties-2 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages ia32-libs depends on: ii lib32gcc1 3.4.3-13 GCC support library (ia32) ii lsb-release 1.4-8 LSB release command -- no debconf information
diff -Nru /tmp/0lgFDsxpBX/ia32-libs-1.5.2/debian/changelog /tmp/VHwSjqR7Jg/ia32-libs-1.5.3/debian/changelog --- /tmp/0lgFDsxpBX/ia32-libs-1.5.2/debian/changelog 2006-02-25 21:52:07.000000000 +0100 +++ /tmp/VHwSjqR7Jg/ia32-libs-1.5.3/debian/changelog 2006-03-06 23:30:45.000000000 +0100 @@ -1,3 +1,20 @@ +ia32-libs (1.5.3) unstable; urgency=low + + * Update sources and debs + - xlibmesa-glu -> libglu1-xorg + - libxft1 -> libxft2 + - libdps1 is no more + - libpam0g needed by vmware + * Rewrite fetch-and-build + - Don't fetch the first source building a package but the one + having the deb in Debian. + - Check that local sources are newer than or not in Debian. + - Download all debs in one go. They may not conflict so apt + can't fail or skip any. + - Sanity check all debs (including local) to have matching sources. + + -- Goswin von Brederlow <[EMAIL PROTECTED]> Mon, 6 Mar 2006 20:14:22 +0000 + ia32-libs (1.5.2) unstable; urgency=low * Don't mess with /etc/ld.so.conf but use /lib/ldconfig/ links. diff -Nru /tmp/0lgFDsxpBX/ia32-libs-1.5.2/debian/control /tmp/VHwSjqR7Jg/ia32-libs-1.5.3/debian/control --- /tmp/0lgFDsxpBX/ia32-libs-1.5.2/debian/control 2006-02-25 20:23:23.000000000 +0100 +++ /tmp/VHwSjqR7Jg/ia32-libs-1.5.3/debian/control 2006-03-06 21:31:47.000000000 +0100 @@ -2,7 +2,7 @@ Section: libs Priority: optional Maintainer: Bdale Garbee <[EMAIL PROTECTED]> -Build-Depends: debhelper (>> 4.0.0), dpkg-dev (>= 1.10.23), lsb-release +Build-Depends: debhelper (>> 4.0.0), dpkg-dev (>= 1.10.23), lsb-release, grep-dctrl Standards-Version: 3.6.2.0 Package: ia32-libs diff -Nru /tmp/0lgFDsxpBX/ia32-libs-1.5.2/fetch-and-build /tmp/VHwSjqR7Jg/ia32-libs-1.5.3/fetch-and-build --- /tmp/0lgFDsxpBX/ia32-libs-1.5.2/fetch-and-build 2005-04-11 23:14:14.000000000 +0200 +++ /tmp/VHwSjqR7Jg/ia32-libs-1.5.3/fetch-and-build 2006-03-06 23:49:18.000000000 +0100 @@ -1,6 +1,6 @@ #!/bin/sh -set -ex +set -e # To just download from the sources listed in sources.list.deb and use # the binary packages, use BUILD=0 ./fetch-and-build . Else, it will @@ -15,15 +15,16 @@ libbz2-1.0 libc6 libc6-dev -libdps1 libfreetype6 libglib1.2 +libglu1-xorg libgtk1.2 libgtk1.2-common libice6 libjpeg62 liblcms1 libncurses5 +libpam0g libsm6 libstdc++2.10-glibc2.2 libstdc++2.9-glibc2.1 @@ -34,7 +35,7 @@ libx11-6 libxaw7 libxext6 -libxft1 +libxft2 libxi6 libxml2 libxmu6 @@ -47,7 +48,6 @@ libxtst6 xaw3dg xlibmesa-gl -xlibmesa-glu xlibs-data zlib1g lesstif2 @@ -97,46 +97,108 @@ -o Apt::Architecture=i386 \ -o Dir::State::Status=$APTDIR/state/status" -SRCS="" -for i in $DEBS; do - if [ -e local/pkgs/${i}_*.deb ]; then - continue +###################################################################### +# Sources + +# Fetch sources for all debs + +for DEB in $DEBS; do + # Filter out debs in local/pkgs + if [ -e local/pkgs/${DEB}_*.deb ]; then + # Make sure we don't ship an old version + if VER=$($APT_CACHE 2>/dev/null show $DEB | grep-dctrl "" -n -s Version); then + VER2=$(dpkg -I local/pkgs/${DEB}_*.deb | grep "^ Version:" | cut -b11-) + if dpkg --compare-versions "$VER" ">=" "$VER2"; then + echo >&2 "$DEB has older version in local than in Debian!" + exit 1 + fi + echo >&2 "$DEB has newer version in local than in Debian" + fi + else + # Deb needs fetching + echo $DEB fi - src=`$APT_CACHE showsrc $i | grep '^Package: ' | head -n 1 | awk '{print $2}'` - case " $SRCS " in - *" $src "*) ;; - *) SRCS="$SRCS $src" ;; +done \ +| xargs $APT_CACHE show \ +| grep-dctrl "" -s Package,Version,Source \ +| while read KEY VAL; do # ^ Get package information, needed fields and parse + # Source: is optional and may not contain a version + # Fill in missing information from Package and Version + case "$KEY" in + Package:) PKG="$VAL"; SRC="$VAL";; + Version:) VER="$VAL";; + Source:) case "$VAL" in + *\(*\)) SRC=$(echo "$VAL" | cut -d" " -f1) + VER=$(echo "$VAL" | sed 's/.*(\(.*\))/\1/');; + "") ;; + *) SRC="$VAL";; + esac;; + "") echo >&2 "Fetching source $SRC $VER for $PKG" + echo "$SRC=$VER";; esac -done + done \ +| sort -u | (cd srcs; xargs $APT_GET -d source) # Fetch source -cd srcs -$APT_GET -d source $SRCS -cd .. +###################################################################### +# Debs if [ "$BUILD" = 1 ]; then + # Build all debs from source cd build - for pkg in $SRCS; do - echo $pkg - dpkg-source -sn -x ../srcs/${pkg}_*.dsc - cd $pkg-* + for DSC in ../srcs/*.dsc; do + PKG=$(basename $DSC | cut -d_ -f1) + echo $PKG + dpkg-source -sn -x $DSC + cd $PKG-* dpkg-buildpackage -rfakeroot -uc -us -B cd .. - #rm -rf $pk + #rm -rf $PKG done cd .. else + # Or fetch prebuild debs for pkg in $DEBS; do if [ -e local/pkgs/${pkg}_*.deb ]; then - cp local/pkgs/${pkg}_*.deb build/ + (cd build; ln -s ../local/pkgs/${pkg}_*.deb .) else - $APT_GET --download-only install $pkg - cp $APTDIR/cache/archives/$pkg_*.deb build/ + echo $pkg fi - done + done | xargs $APT_GET --download-only install + cp $APTDIR/cache/archives/*.deb build/ fi +# Move only the wanted debs out of build and clean up for pkg in $DEBS; do mv build/${pkg}_*.deb pkgs/ done rm -rf $APTDIR build + +# Sanity check that we have _matching_ source for every deb. +# With debs in local this can happen. + +dpkg-scanpackages pkgs /dev/null 2>/dev/null \ +| grep-dctrl "" -s Package,Version,Source \ +| while read KEY VAL; do + case "$KEY" in + Package:) PKG="$VAL"; SRC="$VAL";; + Version:) VER="$VAL";; + Source:) case "$VAL" in + *\(*\)) SRC=$(echo "$VAL" | cut -d" " -f1) + VER=$(echo "$VAL" | sed 's/.*(\(.*\))/\1/');; + "") ;; + *) SRC="$VAL";; + esac;; + "") echo "Testing source $SRC $VER for $PKG" + FVER=$(echo "$VER" | cut -d: -f2) + if [ ! -e "local/srcs/${SRC}_${FVER}.dsc" ]; then + if [ ! -e "srcs/${SRC}_${FVER}.dsc" ]; then + echo "Missing source $SRC $VER for $PKG!" + exit 1 + fi + fi;; + esac + done + +echo All sources fetched, all packages build or fetched, all versions match. +echo Enjoy. exit 0