]> git.saurik.com Git - apt.git/commitdiff
prepare-release: Use equivs and gdebi-core for travis deps
authorJulian Andres Klode <jak@debian.org>
Thu, 18 Aug 2016 12:56:36 +0000 (14:56 +0200)
committerJulian Andres Klode <jak@debian.org>
Fri, 19 Aug 2016 14:49:18 +0000 (16:49 +0200)
Our previous hack did not really support or groups and other
more advanced dependency types. This hack basically removes
build profiles, and the @-type depends for tests, and otherwise
converts the deps to a package which is then installed via
gdebi.

.travis.yml
prepare-release

index 424172e04c833035a48eb181a2ac1ec302cf1ae0..7931bb39a76d285f0d26bc29eaf4df8a99611ad2 100644 (file)
@@ -9,9 +9,9 @@ before_install:
    sudo sh -c '/bin/echo -e "Package: *\nPin: release n=xenial\nPin-Priority: 1" > /etc/apt/preferences.d/xenial'
  - sudo apt-get update -qq
 install:
- - sudo ./prepare-release travis-ci
  - sudo apt-get -qq -y -t wily install gettext liblz4-dev python3-apt
  - sudo apt-get -qq -y -t xenial install cmake
+ - sudo ./prepare-release travis-ci
 before_script:
  - ( mkdir build && cd build && cmake .. )
  - make -C build -j4
index 1e434a3050cac24cf196bfa3cf143bede93d5672..f740f21526fb98d6ebcf230084ac6e1290528da5 100755 (executable)
@@ -26,6 +26,26 @@ librarysymbolsfromfile() {
        done | sort -u
 }
 
+test_deb_control() {
+       echo "Package: apt-test-depends"
+       echo "Version: 1.0"
+       echo "Architecture: all"
+       printf "Depends:"
+       (
+       for i in Build-Depends Build-Depends-Indep Build-Depends-Arch; do
+               grep-dctrl -ns $i -S apt ./debian/control && echo ,
+       done
+               grep-dctrl -ns Depends -F Tests run-tests ./debian/tests/control
+       ) | tr '\n' ' '\
+         | sed -r -e 's#<[^,<>()@]*>##g' \
+                  -e 's#@[^,<>()@]*@##g' \
+                  -e 's#dpkg-dev \([^)]*\)#dpkg-dev#g' \
+                  -e 's#debhelper \([^)]*\)#debhelper#g' \
+                  -e 's#@##g' \
+                  -e 's#,(\s+,)+#, #g' \
+                  -e 's#\s+# #g'
+}
+
 if [ "$1" = 'pre-export' ]; then
        libraryversioncheck() {
                local LIBRARY="$1"
@@ -158,9 +178,11 @@ elif [ "$1" = 'buildlog' ]; then
                shift
        done
 elif [ "$1" = 'travis-ci' ]; then
-       apt-get install -qy --no-install-recommends dctrl-tools
-       apt-get install -qy --no-install-recommends $(grep-dctrl -S -s Build-Depends,Build-Depends-Indep,Build-Depends-Arch apt ./debian/control | sed -e 's#([^)]*)##g' -e 's#^Build-Depends\(-Indep\|-Arch\)\?: ##'     -e 's#<.*>##g' | tr -s '\n,' ' ')
-       apt-get install -qy --no-install-recommends $(grep-dctrl -F Tests -s Depends run-tests ./debian/tests/control | tr -s '\n,' ' ' | cut -d'@' -f 4- | sed -e 's#gnupg1#gnupg2#' -e 's#gpgv1#gpgv2#')
+       apt-get install -qy --no-install-recommends dctrl-tools equivs gdebi-core
+
+       test_deb_control > test-control
+       equivs-build test-control
+       gdebi -n apt-test-depends_1.0_all.deb
 elif [ "$1" = 'coverage' ]; then
        DIR="${2:-./coverage}"
        git clean -dfX # remove ignored build artefacts for a clean start