diff options
Diffstat (limited to 't/recipes/checks/md5sums')
147 files changed, 2757 insertions, 0 deletions
diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/NEWS.Debian b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/NEWS.Debian new file mode 100644 index 0000000..29f561c --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/NEWS.Debian @@ -0,0 +1,12 @@ +binary (4-1.1) UNRELEASED; urgency=high + + This is a Debian NEWS entry that isn't encoded properly in UTF-8: ü. + It also has a usefull speling error. + + -- Russ Allbery <rra@debian.org> Sun, 14 Oct 2007 17:11:36 -0700 + +binary (1) unstable; urgency=low + + This is another entry but this one isn't syntactically valid. + + -- Russ Allbery 2007-10-14 diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/README.Debian b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/README.Debian new file mode 100644 index 0000000..94bcc0a --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/README.Debian @@ -0,0 +1,5 @@ +this is a binary package to test lintian's handling of bins. +Check handling of D-Bus and dbus (neither of which should produce +warnings). + + -- Russ Allbery <rra@debian.org>, Wed, 6 Feb 2008 18:35:11 -0800 diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/changelog.in b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/changelog.in new file mode 100644 index 0000000..39301d6 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/changelog.in @@ -0,0 +1,47 @@ +binary ([% $version %]) [% $distribution %]; urgency=low + + * I'm doing an comaintainer-upload, acknowledging a NMU, but with a version + number which suggests I'm doing a NMU myself. + + Lintian-maintainers: Please don't update this changelog, otherwise you'll + probably break the checks/nmu checks. + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 01:49:42 +0200 + +binary (4-1) unstable; urgency=low + + * Weird version number for the new check for accidents with native + packaging. + * Date was fixed by BR and this test was put on changelog-file-strange-date + due to dpkg bug, see #794674. + + -- Marc 'HE' Brockschmidt <he@debian.org> Thu, 15 Apr 2004 23:33:51 +0200 + +binary (4) unstable; urgency=low + + * Add big file to /usr/share to trigger the big-usr-share check + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Fri, 27 Feb 2004 10:15:59 +0100 + +binary (3) unstable; urgency=unlimited + + * Add some bogus menu entries using su-to-root in a bogus way + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Thu, 12 Feb 2004 20:11:22 +0100 + +binary (2) unstable; urgency=low + + * Added an INSTALL document which policy 6.3 suggests not to do + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Tue, 30 Jan 2001 15:23:59 -0800 + +binary (1) unstable; urgency=low + + * hello.c added + * hello-static is same as hello, but compiled statically + * added a menu entry which lacks a Section + * added a postinst + * postinst calls suidregister which is no longer policy compliant + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Wed, 10 Jan 2001 08:55:34 -0800 + diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/conffiles b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/conffiles new file mode 100644 index 0000000..d1a0843 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/conffiles @@ -0,0 +1 @@ +/etc/menu-methods/lintian diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/control b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/control new file mode 100644 index 0000000..c797357 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/control @@ -0,0 +1,42 @@ +Source: binary +Section: misc +Priority: optional +Maintainer: Lintian Maintainers <lintian-maint@debian.org> +Uploaders: Co-maintainer one <one@debian.org>, Jeroen van Wolffelaar <jeroen@wolffelaar.nl>, Co-maintainer three <three@debian.org> +Standards-Version: 3.2.1 +Homepage: http://lintian.debian.org/ +Vcs-Svn: http://svn.wolffelaar.nl/lintian/trunk +XS-Vcs-Browser: http://svn.wolffelaar.nl/lintian/trunk +XS-Dm-Upload-Allowed: yes + +Package: binary +Architecture: any +Pre-Depends: ${shlibs:Depends}, xorg, binary-data (= ${source:Version}), libssl0.9.8 +Homepage: <http://lintian.debian.org/> +Vcs-Svn: http://svn.wolffelaar.nl/lintian/trunk +Description: test handling of binary files + Regression test for lintian's handling of binary files for debian. This + is checked for picky spelling errors. + . + This package list [ subversion | gconf ] should not be flagged as a spelling + mistake. The spelling correction for dont should be correct. + . + Homepage: http://lintian.debian.org/ + +Package: binary-data +Architecture: all +Depends: binary (= ${source:Version}), libssl-not-openssl, + libssl0.9.8 | or-something-else +Description: test handling of binary relationships + Regression test for lintian's checking of package relationships between + arch:any and arch:all packages. + . + This mention of subversion should be flagged as a spelling mistake. + +#Package: binary-comment +#Architecture: space-almonds +#Depends: * +#Depends: * +#Description: test comment support +# Yes, comments are actually allowed in debian/control, so none of the +# above should produce errors. diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/copyright b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/copyright new file mode 100644 index 0000000..1d6806d --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/copyright @@ -0,0 +1,15 @@ +hello.c is released under public domain. This is distributed in the hope that +it will be useful, but without any warranty; without even the implied warranty +of merchantability or fitness for a particular purpose. + +A reference to /usr/share/common-licenses/GPL-2 to make it look like this +package is under the GPL and trigger the OpenSSL warning. + +Test for old FSF address: + +Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. + +Test for deprecated nätionäl äncoding. + +Improper capitalization of linux or debian isn't caught here. diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/doc-base b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/doc-base new file mode 100644 index 0000000..7e5b38f --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/doc-base @@ -0,0 +1,41 @@ +Document: binary!docs +Title: Broken debian binary doc-base control file +Author: Russ Allbery +Abstract: This control file exercises various tests of doc-base control + files, including several things that aren't tested yet. The third and + fourth one has trailing whitespace. + . + This section has a speling error and bad ® character. + . + The above separator was fine. +Section: Non/Existant +Unknown: Some field + + + +Format: debiandoc-sgML +Files: /usr/share/doc/binary/binary.sgml.gz +Unknown: Some field + +Format: ESP +Index: /usr/share/doc/binary/binary.txt + +Index: /usr/share/doc/binary/html/index.html + /usr/share/doc/binary/html/ch1.html + /usr/share/doc/binary/html/ch4.html + + +Format: HTML +Index: /usr/share/doc/binary/html/index.html +Files: /usr/share/doc/binary/html/ch?.h*l + /usr/share/doc/binary/hml/*.html + +Format: inFO +Files: /usr/share/info/binary.info.gz + +Format: HTML +Index: /usr/share/doc/binary/html/index.html +Files: /usr/share/doc/binary/html/ch5.html + /usr/share/doc/binary/html/ch6.html + + diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/goodbye.desktop b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/goodbye.desktop new file mode 100644 index 0000000..f6ce8e3 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/goodbye.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Name:Goodbye +# Name=Goodbye +Comment=Say hello! +SpecialTag=This doesn't exist! +Exec=goodbye +icon=hello +Terminal=true +Type=Application +Categories=WeirdStuff;Screensaver; +Encoding=ISO-10646-1 +[Other Entry] +Name=Goodbye diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/hello.desktop b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/hello.desktop new file mode 100644 index 0000000..f795468 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/hello.desktop @@ -0,0 +1,14 @@ +# some random comment + +# [Foo Bar] +[KDE Desktop Entry] +Name=Hello +Name[en_US]=Hello +Comment=Say hello!
+Exec=kdesu hello +Icon=hello +Terminal=true +Type=Application +Categories=GNOME;GTK;System;Applet;X-Foo;Settings; +Encoding=UTF-8 +OnlyShowIn=GNOME; diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/menu b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/menu new file mode 100644 index 0000000..e8972f4 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/menu @@ -0,0 +1,26 @@ +?package(binary):needs=text title="Hello World" command="/usr/bin/hello" +?package(binary):needs=text section="Applications/System" title="Run cfdisk (0)" command="/usr/bin/su-to-root cfdisk" +?package(binary):needs="text" section="Applications/System/Hardware" title="Run cfdisk (1)" command="sux -p cfdisk" +?package(binary):needs="x11" section="Window Managers" title="Run xfdisk" command="/usr/sbin/su-to-root -c xfdisk" +?package(binary):needs="wm" section="Applications/System/Administration" title="Run fdisk-wm" command="su-to-root -c hello" +?package(binary):section="Apps/Games" title="I'm not root!" command="su-to-root -c imnothere" +?package(binary):needs="text" section="Apps/System" title="I'm not here!" command="/imnothere" +?package(binary,other-binary):\ + needs="text"\ + section="Applications/Shells"\ + title="more than one required"\ + command="other-bin -s omething" +?package(binary):needs="wmmodule" section="WindowManagers/Modules" title="somemodule" command="ModuleCmd" +?package(binary):needs="wmmodule" section="FVWM Modules" title="somemodule" command="ModuleCmd" +?package(binary):needs="text" section="Applications/System/Administration" title="I'm not in /usr/bin!" command="iminusrbin" +?package(binary):needs="text"\ + section="Applications/System/Administration"\ + title="I'm not root!" command="su-to-root -c imnothere" +?package(binary):needs="text" section="Applications/System/Administration"\ + title="Run cfdisk (0)" command="cfdisk" +?package(binary):needs="text" section="Applications/System/Administration" title="Hello World" command="/usr/bin/hello" +?package(binary):needs="wm" section="FVWM Modules" title="Fake Module" command="hello" +?package(binary):needs="fvwmmodule" section="Window Maker" title="Fake Module"\ + command="hello" +?package(binary):needs="x11" section="Applications/System/Hardware" title="Run xfdisk" command="su-to-root -c 'xfdisk -f'" +?package(binary):needs="text" section="Applications/System/Administration" title="foo" command="sh /path/to/foo" diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/menu-method b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/menu-method new file mode 100644 index 0000000..9f07bd7 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/menu-method @@ -0,0 +1,22 @@ +#!/usr/bin/install-menu + +# -*- mode: shell-script; -*- +#I need menu-1! +# + +!include notmenu.h + +compat="menu-2" + +outputencoding="UTF-8"; +outputlanguage="C"; + +x11 = AppEntry("false"); +text = AppEntry("true"); + +startmenu = ""; +endmenu = ""; +submenutitle = ""; +rootprefix = "/var/lib/lintian/menu"; +userprefix = ".local/share/lintian/menu"; + diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/postinst b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/postinst new file mode 100644 index 0000000..29e1861 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/postinst @@ -0,0 +1,6 @@ +#! /bin/bash -e + +if [ $1 eq 'configure' ] +then + suidregister hello-static root root 4755 +fi diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/rules b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/rules new file mode 100755 index 0000000..a962ea9 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/rules @@ -0,0 +1,92 @@ +#!/usr/bin/make -f + +tmp=debian/tmp + +# This reference to $(PWD) should not cause an error but the one below +# should. +build-arch: + make + echo $(PWD) + +build: build-arch + +clean: + make -i clean + [ ! -f debian/files ] || rm -f debian/files + [ ! -f debian/substvars ] || rm -f debian/substvars + [ ! -d debian/tmp ] || rm -rf debian/tmp + [ ! -d debian/binary ] || rm -rf debian/binary + [ ! -d debian/binary-data ] || rm -rf debian/binary-data + +binary-arch: build + install -d $(tmp)/usr/bin + install -d $(tmp)/boot/hello + install -m 755 hello $(tmp)/usr/bin + touch $(tmp)/usr/bin/iminusrbin + chmod 755 $(tmp)/usr/bin/iminusrbin + install -m 755 hello-static $(tmp)/usr/bin + strip $(tmp)/usr/bin/hello-static + install -m 755 hello-static $(tmp)/usr/bin/hello.static + strip --remove-section=.comment --remove-section=.note $(tmp)/usr/bin/hello.static + ln $(tmp)/usr/bin/hello.static $(tmp)/usr/bin/static-hello + install -m 755 hello-static $(tmp)/boot/hello + strip --remove-section=.comment --remove-section=.note $(tmp)/boot/hello/hello-static + install -d $(tmp)/usr/share/doc/binary + install -m 644 INSTALL $(tmp)/usr/share/doc/binary + install -d $(tmp)/usr/share/doc/binary/html + echo '<html></html>' > $(tmp)/usr/share/doc/binary/html/index.html + echo '<html></html>' > $(tmp)/usr/share/doc/binary/html/ch1.html + ln -s ../html/./ch1.html $(tmp)/usr/share/doc/binary/html/ch2.html + ln -s /usr/share/doc/binary/htm/ch1.html $(tmp)/usr/share/doc/binary/html/ch3.html + echo '<html></html>' > $(tmp)/usr/share/doc/binary/html/ch5.html + ln $(tmp)/usr/share/doc/binary/html/ch5.html \ + $(tmp)/usr/share/doc/binary/html/ch6.html + install -d $(tmp)/usr/share/menu + install -d $(tmp)/usr/lib/menu + install -d $(tmp)/usr/share/binary + install -m 644 debian/menu $(tmp)/usr/share/menu/binary + install -m 644 debian/menu $(tmp)/usr/lib/menu/binary + install -d $(tmp)/etc/menu-methods + install -m 755 debian/menu-method $(tmp)/etc/menu-methods/lintian + install -d $(tmp)/usr/share/doc-base + install -m 644 debian/doc-base $(tmp)/usr/share/doc-base/binary + touch '$(tmp)/usr/share/doc-base/space ' + install -m 644 debian/README.Debian $(tmp)/usr/share/doc/binary + install -m 644 debian/NEWS.Debian $(tmp)/usr/share/doc/binary + gzip -n -9 $(tmp)/usr/share/doc/binary/NEWS.Debian + install -m 644 debian/copyright $(tmp)/usr/share/doc/binary + install -m 644 debian/changelog $(tmp)/usr/share/doc/binary + #gzip -n -9 $(tmp)/usr/share/doc/binary/changelog + install -d $(tmp)/DEBIAN + install -m 755 debian/postinst $(tmp)/DEBIAN + install -m 644 debian/conffiles $(tmp)/DEBIAN + + install -d $(tmp)/usr/share/applications + install -m 644 debian/hello.desktop \ + $(tmp)/usr/share/applications/hello.desktop + install -m 755 debian/goodbye.desktop \ + $(tmp)/usr/share/applications/goodbye.desktop + + # should be ok... + echo boe > $(tmp)/usr/bar + ln $(tmp)/usr/bar $(tmp)/usr/foo + # but this isn't + echo boe > $(tmp)/usr/bar2 + ln $(tmp)/usr/bar2 $(tmp)/usr/share/baz + + dd if=/dev/zero of=$(tmp)/usr/share/binary/largefile bs=1024 count=4000 + + install -d debian/binary-data/DEBIAN + install -d debian/binary-data/usr/share/doc + ln -s binary debian/binary-data/usr/share/doc/binary-data + + dpkg-shlibdeps $(tmp)/usr/bin/hello + dpkg-gencontrol -pbinary -isp + dpkg-gencontrol -pbinary-data -Pdebian/binary-data -isp + + dpkg --build debian/tmp .. + dpkg --build debian/binary-data .. + +binary: binary-arch + +.PHONY: build-arch build binary-arch binary clean diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/templates b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/templates new file mode 100644 index 0000000..3d92861 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/debian/templates @@ -0,0 +1,16 @@ +# The debconf templates defined here are the sort that you'd use if +# providing a wordlist and an ispell dictionary for the language +# "perl". This shouldn't trigger warnings about not using debconf-po. + +Template: shared/packages-ispell +Type: text +Description: + +Template: shared/packages-wordlist +Type: text +Description: + +Template: miscfiles/languages +Type: text +Default: perl (Pathologically Eclectic Rubbish Lister) +Description: diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/fill-values b/t/recipes/checks/md5sums/legacy-binary/build-spec/fill-values new file mode 100644 index 0000000..b503871 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/fill-values @@ -0,0 +1,5 @@ +Skeleton: upload-non-native +Testname: legacy-binary +Source: binary +Version: 4-1.1 +Description: Legacy test "binary" diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/INSTALL b/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/INSTALL new file mode 100644 index 0000000..3b50ea9 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/INSTALL @@ -0,0 +1,176 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes a while. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/Makefile b/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/Makefile new file mode 100644 index 0000000..da1dc55 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/Makefile @@ -0,0 +1,12 @@ +all: hello hello-static + +hello: hello.c + gcc hello.c -o hello + +hello-static: hello.c + gcc -static hello.c -o hello-static + +clean: + rm -f hello hello-static + +distclean: clean diff --git a/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/hello.c b/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/hello.c new file mode 100644 index 0000000..2fb04e1 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/build-spec/orig/hello.c @@ -0,0 +1,8 @@ +#include <stdio.h> +#include <stdlib.h> + +int main(int argc, char *argv[]) { + + printf("Hello, World!\n"); + exit(0); +} diff --git a/t/recipes/checks/md5sums/legacy-binary/eval/desc b/t/recipes/checks/md5sums/legacy-binary/eval/desc new file mode 100644 index 0000000..67d15b3 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/eval/desc @@ -0,0 +1,2 @@ +Testname: legacy-binary +Check: md5sums diff --git a/t/recipes/checks/md5sums/legacy-binary/eval/hints b/t/recipes/checks/md5sums/legacy-binary/eval/hints new file mode 100644 index 0000000..351b423 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/eval/hints @@ -0,0 +1 @@ +binary (binary): no-md5sums-control-file diff --git a/t/recipes/checks/md5sums/legacy-binary/eval/post-test b/t/recipes/checks/md5sums/legacy-binary/eval/post-test new file mode 100644 index 0000000..3deefd5 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-binary/eval/post-test @@ -0,0 +1,3 @@ +s/arch-dep-package-has-big-usr-share .*kB .*%/arch-dep-package-has-big-usr-share/ +/: hardening-.*/ d +s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/ diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/README.Debian b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/README.Debian new file mode 100644 index 0000000..e289bfb --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/README.Debian @@ -0,0 +1,5 @@ +this is a package to test lintian's handling of files in /etc. +Also, there's a random mention of /usr/doc here to prompt a warning. +But /usr/documentation doesn't. + + -- Russ Allbery <rra@debian.org>, Mon, 18 Feb 2008 16:40:55 -0800 diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/changelog.in b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/changelog.in new file mode 100644 index 0000000..00cdc77 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/changelog.in @@ -0,0 +1,7 @@ +etcfiles ([% $version %]) [% $distribution %]; urgency=low + + * Acknowledge NMU (Closes: #123456). + * initial setup + + -- Lintian Maintainers <lintian-maint@debian.org> Fri, 21 Sep 2001 11:56:02 -0700 + diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/conffiles b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/conffiles new file mode 100644 index 0000000..76032b7 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/conffiles @@ -0,0 +1,5 @@ +/etc/proper +/var/lib/foo +/etc/cron.daily/cronfile-normal +/etc/cron.daily/.cronfile-begins-with-fullstop +/etc/cron.daily/cronfile-contains.fullstop diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/conffiles.only b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/conffiles.only new file mode 100644 index 0000000..a4b3895 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/conffiles.only @@ -0,0 +1,2 @@ +/etc/etcfiles/foo +/etc/etcfiles/bar diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/control b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/control new file mode 100644 index 0000000..f3dbda7 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/control @@ -0,0 +1,20 @@ +Source: etcfiles +Section: misc +Priority: optional +Maintainer: Lintian Maintainers <lintian-maint@debian.org> +Standards-Version: 3.5.0 + +Package: etcfiles +Architecture: any +Depends: ${shlibs:Depends} +Description: test handling of files in /etc + Regression test for lintian's handling of files in /etc. + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. + +Package: only-etcfiles +Architecture: all +Depends: etcfiles (= ${source:Version}) +Description: test handling of conffile-only package diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/rules b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/rules new file mode 100755 index 0000000..97ff09f --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/debian/rules @@ -0,0 +1,64 @@ +#!/usr/bin/make -f + +tmp=debian/tmp +tmponly=debian/only-etcfiles + +clean: + rm -f debian/files debian/substvars + rm -rf debian/tmp + rm -rf debian/only-etcfiles + +build: +build-arch: +build-indep: +binary-indep: + install -d $(tmp)/etc + install -m 644 proper $(tmp)/etc + install -m 644 improper $(tmp)/etc + mkdir $(tmp)/etc/cron.daily + touch $(tmp)/etc/cron.daily/cronfile-normal + touch $(tmp)/etc/cron.daily/.cronfile-begins-with-fullstop + touch $(tmp)/etc/cron.daily/cronfile-contains.fullstop + ln $(tmp)/etc/improper $(tmp)/etc/improper-link + install -d $(tmp)/usr/share/doc/etcfiles + install -d $(tmp)/var/lib + install -m 644 proper $(tmp)/var/lib/foo + install -m 644 debian/README.Debian $(tmp)/usr/share/doc/etcfiles + install -m 644 debian/changelog $(tmp)/usr/share/doc/etcfiles + #gzip -9 $(tmp)/usr/share/doc/etcfiles/changelog + install -d $(tmp)/DEBIAN + install -m 644 debian/conffiles $(tmp)/DEBIAN + + echo 'd41d8cd98f00b204e9800998ecf8427e ./etc/cron.daily/cronfile-normal' \ + > debian/tmp/DEBIAN/md5sums + echo 'd41d8cd98f00b204e9800998ecf8427e ./etc/cron.daily/.cronfile-begins-with-fullstop' \ + >> debian/tmp/DEBIAN/md5sums + echo 'd41d8cd98f00b204e9800998ecf8427e ./etc/cron.daily/cronfile-contains.fullstop' \ + >> debian/tmp/DEBIAN/md5sums + echo '05c72cacce994208128b7d081116b04a ./etc/proper' \ + >> debian/tmp/DEBIAN/md5sums + echo 'ab371382468880299e5ebd05921764ce etc/improper' \ + >> debian/tmp/DEBIAN/md5sums + echo 'ab371382468880299e5ebd05921764ce usr/bin/foo' \ + >> debian/tmp/DEBIAN/md5sums + echo 'this is a malformed line' \ + >> debian/tmp/DEBIAN/md5sums + echo '56fb27e455dd86d8801f1ecd3a4cee49 usr/share/doc/etcfiles/README.Debian' \ + >> debian/tmp/DEBIAN/md5sums + + install -d $(tmponly)/etc/etcfiles + touch $(tmponly)/etc/etcfiles/foo + touch $(tmponly)/etc/etcfiles/bar + install -d $(tmponly)/usr/share/doc + cd $(tmponly)/usr/share/doc && ln -s etcfiles only-etcfiles + install -d $(tmponly)/DEBIAN + install -m 644 debian/conffiles.only $(tmponly)/DEBIAN/conffiles + + dpkg-gencontrol -isp -petcfiles + dpkg-gencontrol -isp -ponly-etcfiles -P$(tmponly) + dpkg --build $(tmp) .. + dpkg --build $(tmponly) .. + +binary: binary-indep + +.PHONY: binary-indep binary clean diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/fill-values b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/fill-values new file mode 100644 index 0000000..86deb10 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/fill-values @@ -0,0 +1,5 @@ +Skeleton: upload-native +Testname: legacy-etcfiles +Source: etcfiles +Version: 1 +Description: Legacy test "etcfiles" diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/orig/improper b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/orig/improper new file mode 100644 index 0000000..23656f4 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/orig/improper @@ -0,0 +1,2 @@ +[config] + var = value
\ No newline at end of file diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/orig/proper b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/orig/proper new file mode 100644 index 0000000..f3dc68b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/build-spec/orig/proper @@ -0,0 +1,2 @@ +# i am a config file +foo = var
\ No newline at end of file diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/eval/desc b/t/recipes/checks/md5sums/legacy-etcfiles/eval/desc new file mode 100644 index 0000000..bc7858c --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/eval/desc @@ -0,0 +1,2 @@ +Testname: legacy-etcfiles +Check: md5sums diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/eval/hints b/t/recipes/checks/md5sums/legacy-etcfiles/eval/hints new file mode 100644 index 0000000..44d34f0 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/eval/hints @@ -0,0 +1,5 @@ +etcfiles (binary): md5sums-lists-nonexistent-file usr/bin/foo [md5sums] +etcfiles (binary): md5sum-mismatch etc/improper [md5sums] +etcfiles (binary): malformed-md5sums-control-file Odd text: this is a malformed line [md5sums] +etcfiles (binary): file-missing-in-md5sums usr/share/doc/etcfiles/changelog [md5sums] +etcfiles (binary): file-missing-in-md5sums etc/improper-link [md5sums] diff --git a/t/recipes/checks/md5sums/legacy-etcfiles/eval/post-test b/t/recipes/checks/md5sums/legacy-etcfiles/eval/post-test new file mode 100644 index 0000000..faeef0b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-etcfiles/eval/post-test @@ -0,0 +1 @@ +s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/ diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/changelog.in b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/changelog.in new file mode 100644 index 0000000..b79c4ca --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/changelog.in @@ -0,0 +1,78 @@ +filenames ([% $version %]) [% $distribution %]; urgency=low + + * /me is doing a correct NMU of this package, bumping the epoch too. + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 02:04:39 +0200 + +filenames (11) unstable; urgency=low + + * Add a README.macos. + + -- Marc 'HE' Brockschmidt <he@debian.org> Mon, 12 Apr 2004 23:35:24 +0200 + +filenames (10) unstable; urgency=low + + * Some new files to check the checks for the use of /usr/*/X11 and + /usr/X11R6/*. + + -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 17:35:20 +0200 + +filenames (9) unstable; urgency=low + + * Add a two *.ali files, one with the right permission, one with + the more common, but false one. + + -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 00:18:16 +0200 + +filenames (8) unstable; urgency=low + + * Add a real ancient file + + -- Frank Lichtenheld <djpig@debian.org> Thu, 8 Apr 2004 22:22:40 +0200 + +filenames (7) unstable; urgency=low + + * Add a dozen symlinks, some correct, some not + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Fri, 27 Feb 2004 01:28:42 +0100 + +filenames (6) unstable; urgency=low + + * Add perl files to check if + package-installs-nonbinary-perl-in-usr-lib-perl5 is correctly + issued even after attempting to suppress it in some cases + + -- Frank Lichtenheld <djpig@debian.org> Fri, 27 Feb 2004 00:49:44 +0100 + +filenames (5) unstable; urgency=low + + * Added check for too long symlink + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Wed, 3 Jan 2001 13:20:31 -0800 + +filenames (4) unstable; urgency=low + + * Add /usr/lib/menu/menu file to test the bad-menu-file-name tag. + * Add /usr/lib/menu/README to test the new execption for it. + + -- Richard Braakman <dark@xs4all.nl> Thu, 22 Oct 1998 15:42:52 +0200 + +filenames (3) unstable; urgency=low + + * Don't rely on the installer's umask. + + -- Richard Braakman <dark@xs4all.nl> Thu, 20 Aug 1998 12:45:47 +0200 + +filenames (2) unstable; urgency=low + + * Noted more limitations on what filenames lintian handles. + * Added Changes.gz in /usr/doc/filenames and made a symlink from changelog.gz + to Changes.gz. + + -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:46:11 +0200 + +filenames (1) unstable; urgency=low + + * Initial version + + -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:25:01 +0200 diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/control b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/control new file mode 100644 index 0000000..1ff9c50 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/control @@ -0,0 +1,42 @@ +Source: filenames +Maintainer: Lintian Maintainer <lintian-maint@debian.org> +Standards-Version: 3.1.1 +Rules-Requires-Root: binary-targets + +Package: filenames +Architecture: any +Description: see how lintian reacts to weird filenames + This package contains files with the most evil names I could find, + except for ones that lintian is explicitly not designed to handle. + . + Lintian does not handle filenames containing newlines, or filenames + that contain the strings " link to ", " -> ", or ": ". The last one + is used as a separator by the file command, the others are used as + separators by tar. + . + Lintian also does not handle filenames that contain backslashes, or + other characters that are mangled by tar's -tv output. + +Package: filename-games +Architecture: all +Depends: filenames +Section: games +Description: Test game filename/location checks + This package contains files with slightly less evil names than + filenames. + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. + +Package: more-filename-games +Architecture: all +Depends: filenames, filename-games +Section: games +Priority: optional +Description: More test for game filename/location checks + This package contains no evil names, only evil locations. + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/doc-base b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/doc-base new file mode 100644 index 0000000..e5a611b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/doc-base @@ -0,0 +1,11 @@ +Document: testing +Title: Working doc-base control file +Author: Russ Allbery +Abstract: This control file ensures that we don't get false positives for + correct doc-base files. + . + There isn't anything wrong with this one. +Section: Education + +Format: Text +Files: /usr/share/doc/filenames/README.macosx diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/rules b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/rules new file mode 100755 index 0000000..0b9e87c --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/debian/rules @@ -0,0 +1,231 @@ +#!/usr/bin/make -f + +# Copyright (C) 1998 Richard Braakman +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, you can find it on the World Wide +# Web at https://www.gnu.org/copyleft/gpl.html, or write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. + +VENDORARCH := $(shell perl -MConfig -wE'say substr($$Config{vendorarch},1)') + +clean: + mkdir -p .svn CVS "{arch}" .arch-ids .bzr + touch data/.cvsignore data/svn-commit.tmp data/svk-commitsEr9P.tmp + touch data/.arch-inventory + touch 'data/.#Maelstrom Sound.1.1.1' 'data/Maelstrom Sounce.r121' + touch 'data/Maelstrom Sound.mine' + touch "data/'\\ " + touch filenames.c~ + +build-arch: + +build-indep: + +build: build-arch build-indep + + +binary-arch: + +binary-indep: + install -d debian/tmp/DEBIAN + cp -a data debian/tmp/files + chmod -R go=rX debian/tmp/files + + install -d debian/tmp/usr/lib/filenames + install -m 555 -d debian/tmp/usr/lib/filenames/readonly + touch debian/tmp/usr/lib/filenames/readonly/test + + install -d debian/tmp/usr/lib/menu + install -d debian/tmp/usr/share/menu + touch debian/tmp/usr/lib/menu/README + touch debian/tmp/usr/share/menu/README + touch debian/tmp/usr/lib/menu/menu + touch debian/tmp/usr/share/menu/menu + chmod 644 debian/tmp/usr/lib/menu/* + + install -d debian/tmp/$(VENDORARCH)/foo + mkdir debian/tmp/$(VENDORARCH)/.svn + mkdir debian/tmp/$(VENDORARCH)/CVS + mkdir "debian/tmp/$(VENDORARCH)/{arch}" + mkdir debian/tmp/$(VENDORARCH)/.arch-ids + mkdir debian/tmp/$(VENDORARCH)/.bzr + mkdir debian/tmp/$(VENDORARCH)/.be + mkdir debian/tmp/$(VENDORARCH)/.ditrack + install -d debian/tmp/usr/share/perl5 + echo foo > debian/tmp/$(VENDORARCH)/foo/.gitignore + echo foo > debian/tmp/$(VENDORARCH)/foo/.hgignore + echo foo > debian/tmp/$(VENDORARCH)/foo/.hgtags + echo foo > debian/tmp/$(VENDORARCH)/foo/.hg_archival.txt + + touch debian/tmp/$(VENDORARCH)/foo/.packlist + chmod 644 debian/tmp/$(VENDORARCH)/foo/.packlist + touch debian/tmp/$(VENDORARCH)/foo/bar.pm + TZ=UTC touch -t 197501010101 debian/tmp/$(VENDORARCH)/foo/ancient.pm + chmod 644 debian/tmp/$(VENDORARCH)/foo/bar.pm + + install -d debian/tmp/usr/share/pixmaps + install -d debian/tmp/usr/share/pixmaps/foo + touch debian/tmp/usr/share/pixmaps/license.jpeg + touch debian/tmp/usr/share/pixmaps/licence.jpg + touch debian/tmp/usr/share/pixmaps/copying.xpm + touch debian/tmp/usr/share/pixmaps/foo/COPYING.svg + touch debian/tmp/usr/share/pixmaps/foo/copying.png + touch debian/tmp/usr/share/pixmaps/license.txt + touch debian/tmp/usr/share/pixmaps/license.foo + touch debian/tmp/usr/share/pixmaps/COPYING + + install -d debian/tmp/usr/share/linda/overrides + echo 'foo' > debian/tmp/usr/share/linda/overrides/filenames + + install -d debian/tmp/usr/share/doc/filenames + touch debian/tmp/usr/share/doc/filenames/README.macosx + + echo foo > debian/tmp/usr/share/doc/filenames/bokmÃ¥l + echo foo > debian/tmp/usr/share/doc/filenames/bokm\\Ã¥l + echo foo > debian/tmp/usr/share/doc/filenames/bokmål + echo foo > debian/tmp/usr/share/doc/filenames/bokm\\ål + + echo foo > debian/tmp/usr/share/doc/filenames/Thumbs.db + echo foo > debian/tmp/usr/share/doc/filenames/.DS_Store + echo foo > debian/tmp/usr/share/doc/filenames/._NEWS.Debian + + touch debian/tmp/usr/share/doc/filenames/news.debian + gzip -n debian/tmp/usr/share/doc/filenames/news.debian + touch debian/tmp/usr/share/doc/filenames/NEWS.Debian + + echo foo > debian/tmp/usr/share/doc/filenames/link-one + ln debian/tmp/usr/share/doc/filenames/link-one \ + debian/tmp/usr/share/doc/filenames/link-two + + install -d debian/tmp/usr/share/doc/filenames/examples + touch debian/tmp/usr/share/doc/filenames/examples/__init__.py + touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example + touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2 + gzip -n debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2 + + install -d debian/tmp/usr/lib/ada/adalib/ + touch debian/tmp/usr/lib/ada/adalib/test.ali debian/tmp/usr/lib/ada/adalib/test2.ali + chmod 0644 debian/tmp/usr/lib/ada/adalib/test.ali + chmod 0444 debian/tmp/usr/lib/ada/adalib/test2.ali + + install -d debian/tmp/usr/bin/X11/ + touch debian/tmp/usr/bin/X11/testxbin + install -d debian/tmp/usr/X11R6/bin + touch debian/tmp/usr/X11R6/bin/testxbin2 + install -d debian/tmp/usr/include/X11 + touch debian/tmp/usr/include/X11/foo.h + + install -d debian/tmp/usr/bin/mh + touch debian/tmp/usr/bin/mh/read + chmod 755 debian/tmp/usr/bin/mh/read + install -d debian/tmp/usr/bin/bin + touch debian/tmp/usr/bin/bin/bad + chmod 755 debian/tmp/usr/bin/bin/bad + + install -m 644 debian/changelog debian/tmp/usr/share/doc/filenames/Changes + gzip -n -9 debian/tmp/usr/share/doc/filenames/Changes + ln -s Changes.gz debian/tmp/usr/share/doc/filenames/changelog.gz + + install -d debian/tmp/var/www + echo foo > debian/tmp/var/www/foo + + install -d debian/tmp/srv/foo + touch debian/tmp/srv/foo/bar + install -d debian/tmp/opt/foo + touch debian/tmp/opt/foo/bar + + install -d debian/tmp/etc/gconf/schemas + touch debian/tmp/etc/gconf/schemas/test.schema + + install -d debian/tmp/usr/lib/sgml + touch debian/tmp/usr/lib/sgml/package + + install -d debian/tmp/usr/share/gnome/apps/System + touch debian/tmp/usr/share/gnome/apps/System/foo.desktop + + install -d debian/tmp/usr/share/filenames + touch debian/tmp/usr/share/filenames/jquery.js + touch debian/tmp/usr/share/filenames/jquery.lite.js + touch debian/tmp/usr/share/filenames/jquery.min.js + touch debian/tmp/usr/share/filenames/jquery.pack.js + touch debian/tmp/usr/share/filenames/mochikit.js + touch debian/tmp/usr/share/filenames/prototype-1.2.3.4.js + touch debian/tmp/usr/share/filenames/prototype.js + touch debian/tmp/usr/share/filenames/prototype.js.gz + touch debian/tmp/usr/share/filenames/scriptaculous.js + touch debian/tmp/usr/share/filenames/yahoo-dom-event.js + touch debian/tmp/usr/share/filenames/yahoo-min.js + + ln -s '../filenames/doc/version6.txt.gz' debian/tmp/usr/share/doc/filenames/version.txt.gz + ln -s ../../share/symlink debian/tmp/usr/lib/filenames/symlink1ok + ln -s ../../../etc/symlink debian/tmp/usr/lib/filenames/symlink1wrong + ln -s ../../../../etc/symlink debian/tmp/usr/lib/filenames/symlink2wrong + ln -s /etc/symlink debian/tmp/usr/lib/filenames/symlink2ok + ln -s /usr/lib/filenames/symlink2 debian/tmp/usr/lib/filenames/symlink3wrong + ln -s test debian/tmp/usr/lib/filenames/symlink3ok + ln -s ../filenames/symlink2 debian/tmp/usr/lib/filenames/symlink4wrong + ln -s ../menu/../somethingelse debian/tmp/usr/lib/filenames/symlink5wrong + ln -s ../menu/somethingelse debian/tmp/usr/lib/filenames/symlink4ok + ln -s ./file4 debian/tmp/usr/lib/filenames/symlink6wrong + ln -s ../menu/./something debian/tmp/usr/lib/filenames/symlink7wrong + ln -s ../menu//something debian/tmp/usr/lib/filenames/symlink8wrong + ln -s ../menu/something/ debian/tmp/usr/lib/filenames/symlink9wrong + ln -s .. debian/tmp/usr/lib/filenames/symlink5ok+warn + ln -s . debian/tmp/usr/lib/filenames/symlink6ok+warn + ln -s / debian/tmp/usr/lib/filenames/symlink7ok+warn + ln -s ../../.. debian/tmp/usr/lib/filenames/symlink10wrong + +# devhelp tests. Files in /usr/share/gtk-doc/html or /usr/share/devhelp/books +# are okay. Files elsewhere are okay iff their parent path is symlinked into +# one of those paths. + install -d debian/tmp/usr/share/devhelp/books/filenames + echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/a.devhelp + echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/.devhelp2 + gzip -n -9 debian/tmp/usr/share/devhelp/books/filenames/.devhelp2 + install -d debian/tmp/usr/share/gtk-doc/html/filenames + echo 'Not really XML' > debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp + gzip -n -9 debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp + install -d debian/tmp/usr/share/doc/filenames/good-devhelp + echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/good-devhelp/.devhelp2 + install -d debian/tmp/usr/share/doc/filenames/bad-devhelp + echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp + gzip -n -9 debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp + ln -s ../../doc/filenames/good-devhelp debian/tmp/usr/share/gtk-doc/html/good + ln -s ../doc/filenames/bad-devhelp debian/tmp/usr/share/gtk-doc/html/bad + + install -d debian/tmp/usr/share/doc-base + install -m 644 debian/doc-base debian/tmp/usr/share/doc-base/filenames + + dpkg-gencontrol -pfilenames -Pdebian/tmp + dpkg --build debian/tmp .. + + install -d debian/filename-games debian/filename-games/DEBIAN + install -d debian/filename-games/usr debian/filename-games/usr/games debian/filename-games/usr/bin + echo '#! /bin/sh' > debian/filename-games/usr/bin/test-game + chmod 755 debian/filename-games/usr/bin/test-game + dpkg-gencontrol -pfilename-games -Pdebian/filename-games + dpkg --build debian/filename-games .. + + install -d debian/more-filename-games debian/more-filename-games/DEBIAN + install -d debian/more-filename-games/usr debian/more-filename-games/usr/games debian/more-filename-games/usr/bin + echo '#! /bin/sh' > debian/more-filename-games/usr/bin/another-test-game + echo '#! /bin/sh' > debian/more-filename-games/usr/games/yet-another-test-game + chmod 755 debian/more-filename-games/usr/bin/another-test-game debian/more-filename-games/usr/games/yet-another-test-game + dpkg-gencontrol -pmore-filename-games -Pdebian/more-filename-games + dpkg --build debian/more-filename-games .. + +binary: binary-arch binary-indep + +.PHONY: build-indep build-arch build binary-arch binary-indep binary clean diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/fill-values b/t/recipes/checks/md5sums/legacy-filenames/build-spec/fill-values new file mode 100644 index 0000000..062a1ea --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/fill-values @@ -0,0 +1,5 @@ +Skeleton: upload-non-native +Testname: legacy-filenames +Source: filenames +Version: 1:12-0.1 +Description: Legacy test "filenames" diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/ .tif b/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/ .tif new file mode 100644 index 0000000..07fd914 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/ .tif @@ -0,0 +1,2 @@ +This filename was inspired by the ".tif used by fnlib. The real package +uses space.tif. diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/".tif b/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/".tif new file mode 100644 index 0000000..e005775 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/".tif @@ -0,0 +1 @@ +This filename is really used, by fnlib. diff --git a/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/Maelstrom Sound b/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/Maelstrom Sound new file mode 100644 index 0000000..4110410 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/build-spec/orig/data/Maelstrom Sound @@ -0,0 +1 @@ +This filename occurs in the maelstrom package. diff --git a/t/recipes/checks/md5sums/legacy-filenames/eval/desc b/t/recipes/checks/md5sums/legacy-filenames/eval/desc new file mode 100644 index 0000000..b362609 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/eval/desc @@ -0,0 +1,2 @@ +Testname: legacy-filenames +Check: md5sums diff --git a/t/recipes/checks/md5sums/legacy-filenames/eval/hints b/t/recipes/checks/md5sums/legacy-filenames/eval/hints new file mode 100644 index 0000000..a9a9175 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/eval/hints @@ -0,0 +1,3 @@ +more-filename-games (binary): no-md5sums-control-file +filenames (binary): no-md5sums-control-file +filename-games (binary): no-md5sums-control-file diff --git a/t/recipes/checks/md5sums/legacy-filenames/eval/post-test b/t/recipes/checks/md5sums/legacy-filenames/eval/post-test new file mode 100644 index 0000000..571e35d --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-filenames/eval/post-test @@ -0,0 +1,3 @@ +s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/ +s,usr/lib/([^\/]*/)?perl[0-9]*(/[0-9]*\.[0-9]*)?/,usr/lib/ma-dir/perl/version/,g +/package-installs-packlist/ d diff --git a/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/README.Debian b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/README.Debian new file mode 100644 index 0000000..87bfcdf --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/README.Debian @@ -0,0 +1,7 @@ +foo++ for Debian +---------------- + +This should trigger a warning, as i use a fake mail address. + + -- Marc 'HE' Brockschmidt <foo@unknown>, Wed, 14 Apr 2004 01:44:18 +0200 + diff --git a/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/changelog.in b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/changelog.in new file mode 100644 index 0000000..f838939 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/changelog.in @@ -0,0 +1,31 @@ +foo++ ([% $version %]) [% $distribution %]; urgency=low + + * Add a fake README.Debian to trigger a warning. + * This should trigger + debian-changelog-file-contains-debmake-default-email-address. + + -- Marc 'HE' Brockschmidt <he@unknown> Wed, 14 Apr 2003 01:35:47 +0200 + +foo++ (4) unstable; urgency=low + + * This changelog now includes a ISO-8859-1 character: 'ä' + + -- Frank Lichtenheld <djpig@debian.org> Fri, 5 Mar 2004 13:41:39 +0100 + +foo++ (3) unstable; urgency=low + + * Set maintainers + uploaders incorrectly + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Fri, 5 Mar 2004 04:20:24 +0100 + +foo++ (2) unstable; urgency=low + + * Added a foo++-helper package to try and catch even more ++ bugs. + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Sat, 10 Feb 2001 23:16:17 -0800 + +foo++ (1) unstable; urgency=low + + * Initial version + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Thu, 16 Nov 2000 09:11:40 -0800 diff --git a/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/control b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/control new file mode 100644 index 0000000..3e86b96 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/control @@ -0,0 +1,30 @@ +Source: foo++ +Section: misc +Priority: optional +Maintainer: Lintian Maintainer <debian-qa@lists.debian.org> +Uploaders: Marc 'HE' Brockschmidt <he@unknown>, Jeroen van Wolffelaar<jeroen@localhost.localdomain>, + Frank <djpig@debian.org>, Yama@gotchi, Josip, + I am afraid of spam and think this helps <no_spam_please AT debian.org> +Standards-Version: 3.1.1 +XS-Dm-Upload-Allowed: no + +Package: foo++ +Architecture: all +Build-Depends: test +Depends: test, libssl0.9.7 +Description: see how lintian reacts to plus signs in the package name + Regression test to see if lintian tests work on a package with plus signs in + its name. + . + This description also uses non-UTF8 high bytes chars: ÄÖÜß + +Package: foo++-helper +Architecture: all +Depends: test, foo++ +Description: see how lintian reacts to plus signs in the package name + Regression test to see if lintian tests work on a package with plus signs in + its name. This has /usr/share/doc links to foo++ to trigger even more checks. + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. diff --git a/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/copyright b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/copyright new file mode 100644 index 0000000..e2d6d93 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/copyright @@ -0,0 +1,7 @@ +A reference to /usr/share/common-licenses/GPL to make it look like this +package is under the GPL and trigger the OpenSSL warning. + +However, there is also a reference to /usr/share/common-licenses/LGPL, so +who knows what bits actually depend on libssl. + +Copr. 2007 Somebody. diff --git a/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/rules b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/rules new file mode 100755 index 0000000..63bb4db --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/rules @@ -0,0 +1,36 @@ +#!/usr/bin/make -f + +foo=foo++ +helper=foo++-helper + +build-arch: + +build-indep: + +build: build-arch build-indep + +binary-arch: + +binary-indep: + install -d debian/$(foo)/DEBIAN + install -d debian/$(foo)/usr/share/doc/$(foo) + install -m 644 debian/changelog \ + debian/$(foo)/usr/share/doc/$(foo)/changelog + gzip -n -9 debian/$(foo)/usr/share/doc/$(foo)/changelog + install -m 644 debian/README.Debian \ + debian/$(foo)/usr/share/doc/$(foo)/README.Debian + gzip -n -9 debian/$(foo)/usr/share/doc/$(foo)/README.Debian + dpkg-gencontrol -isp -p$(foo) -Pdebian/$(foo) + dpkg --build debian/$(foo) .. + + install -d debian/$(helper)/DEBIAN + install -d debian/$(helper)/usr/share/doc/ + ln -sf $(foo) debian/$(helper)/usr/share/doc/$(helper) + dpkg-gencontrol -isp -p$(helper) -Pdebian/$(helper) + dpkg --build debian/$(helper) .. + +binary: binary-arch binary-indep + +clean: + +.PHONY: build-arch build-indep build binary-arch binary-indep binary clean diff --git a/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/watch b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/watch new file mode 100644 index 0000000..26f9a3c --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/build-spec/debian/watch @@ -0,0 +1,6 @@ +# A comment \ +version=0 + +# uscan does not interpret the backslash above, it is just part of the comment + +http://domain.tld/file-(.*)\.tar\.gz diff --git a/t/recipes/checks/md5sums/legacy-foo++/build-spec/fill-values b/t/recipes/checks/md5sums/legacy-foo++/build-spec/fill-values new file mode 100644 index 0000000..86d43bc --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/build-spec/fill-values @@ -0,0 +1,5 @@ +Skeleton: upload-native +Testname: legacy-foo++ +Source: foo++ +Version: 5 +Description: Legacy test "foo++" diff --git a/t/recipes/checks/md5sums/legacy-foo++/eval/desc b/t/recipes/checks/md5sums/legacy-foo++/eval/desc new file mode 100644 index 0000000..957c4f4 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/eval/desc @@ -0,0 +1,2 @@ +Testname: legacy-foo++ +Check: md5sums diff --git a/t/recipes/checks/md5sums/legacy-foo++/eval/hints b/t/recipes/checks/md5sums/legacy-foo++/eval/hints new file mode 100644 index 0000000..5a285ea --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/eval/hints @@ -0,0 +1 @@ +foo++ (binary): no-md5sums-control-file diff --git a/t/recipes/checks/md5sums/legacy-foo++/eval/post-test b/t/recipes/checks/md5sums/legacy-foo++/eval/post-test new file mode 100644 index 0000000..faeef0b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-foo++/eval/post-test @@ -0,0 +1 @@ +s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/ diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/changelog.in b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/changelog.in new file mode 100644 index 0000000..91a6bb5 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/changelog.in @@ -0,0 +1,6 @@ +libbaz ([% $version %]) [% $distribution %]; urgency=low + + * Initial setup + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Tue, 30 Jan 2001 15:23:59 -0800 + diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/compat.in b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/compat.in new file mode 100644 index 0000000..640a566 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/compat.in @@ -0,0 +1 @@ +[% $dh_compat_level %] diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/control b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/control new file mode 100644 index 0000000..1506687 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/control @@ -0,0 +1,58 @@ +Source: libbaz +Section: libs +Priority: optional +Maintainer: Lintian Maintainer <lintian-maint@debian.org> +Build-depends: debhelper (>=4) +Standards-Version: 3.2.1 + +Package: libbaz1 +Architecture: any +Provides: libbaz +Description: test handling of library packages + Regression test for lintian's handling of libraries. + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. + +Package: libbaz1-dev +Architecture: any +Depends: libbaz1 (= ${source:Version}), perlapi-5.8.8 +Description: development package + Regression test for lintian's handling of libraries (dev). + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. + +Package: libbaz2 +Architecture: any +Depends: ${shlibs:Depends}, libssl0.9.8 +Description: test handling of library packages (good) + Regression test for lintian's handling of libraries (good). + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. + +Package: libbaz2-dev +Architecture: any +Depends: ${shlibs:Depends}, libbaz2 (= ${source:Version}) +Description: development package (good) + Regression test for lintian's handling of libraries (dev good). + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. + +Package: libbaz2-dbg +Architecture: any +Depends: libbaz2 (= ${binary:Version}) +Priority: optional +Description: debugging package + Regression test for lintian's handling of libraries (debug). + . + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. + diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/copyright b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/copyright new file mode 100644 index 0000000..a874c87 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/copyright @@ -0,0 +1,8 @@ +This package is released under public domain. This is distributed in the hope +that it will be useful, but without any warranty; without even the implied +warranty of merchantability or fitness for a particular purpose. + +A reference to /usr/share/common-licenses/GPL-2 to make it look like this +package is under the GPL and trigger the OpenSSL warning. + +However, this has an OpenSSL exception. diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/dev.postinst b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/dev.postinst new file mode 100644 index 0000000..683e3cc --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/dev.postinst @@ -0,0 +1,4 @@ +#!/bin/sh -e + +$PKG=libbaz1-dev + diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/dev.prerm b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/dev.prerm new file mode 100644 index 0000000..683e3cc --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/dev.prerm @@ -0,0 +1,4 @@ +#!/bin/sh -e + +$PKG=libbaz1-dev + diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.postinst b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.postinst new file mode 100644 index 0000000..ec0b98a --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.postinst @@ -0,0 +1,10 @@ +#!/bin/sh -e + +$PKG=libbaz1 + +if [ "$1" = "configure" ]; then + if [ -d /usr/doc -a ! -e /usr/doc/$PKG -a -d /usr/share/doc/$PKG ] +; then + ln -sf ../share/doc/$PKG /usr/doc/$PKG + fi +fi diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.prerm b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.prerm new file mode 100644 index 0000000..50e37c3 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.prerm @@ -0,0 +1,7 @@ +#!/bin/sh -e + +$PKG=libbaz1 + +if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/$PKG ]; then + rm -f /usr/doc/$PKG +fi diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.shlibs b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.shlibs new file mode 100644 index 0000000..b88e288 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.shlibs @@ -0,0 +1,8 @@ +libdoesntexist2 1.0 libbaz1 +libdoesntexist2 1.0 libbaz1 +libbaz2 1.1 libbaz +libbaz3 1 libbaz1 (>> 1-1) +libbaz4 1 libbaz1 (= 1-1) +libbaz5 1 libbaz2 +udeb: libdoesntexist2 1.0 libbaz2 +udeb: libdoesntexist2 1.0 libbaz2 diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.symbols b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.symbols new file mode 100644 index 0000000..72f9d8a --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/lib.symbols @@ -0,0 +1,3 @@ +libbaz.so.2 libbaz1 #MINVER# + pw 1-1 + foo 1.1-1 diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/rules b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/rules new file mode 100755 index 0000000..fa99bc8 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/rules @@ -0,0 +1,121 @@ +#!/usr/bin/make -f + +lib_tmp=debian/tmp-lib +dev_tmp=debian/tmp-dev + +LIB=libbaz1 +DEV=libbaz1-dev + +VENDORARCH := $(shell perl -MConfig -wE'say substr($$Config{vendorarch},1)') + +build-arch: + $(MAKE) + +build-indep: + +build: build-arch build-indep + +clean: + $(MAKE) clean + dh_clean -plibbaz2 -plibbaz2-dev + rm -f debian/files debian/substvars + rm -rf $(lib_tmp) $(dev_tmp) + +# Now the correct libbaz2-dev package +binary-correct: + install -d debian/libbaz2-dev/usr/lib + cp -a libbaz2.a libbaz2.so debian/libbaz2-dev/usr/lib + # usually, I'd also include some .h files to /usr/include + + # Now the correct libbaz2 package + install -d debian/libbaz2/usr/lib + cp -a libbaz2.so.* debian/libbaz2/usr/lib + chmod a-x debian/libbaz2/usr/lib/* + + # General stuff that is tested in other testsets: + dh_installdocs -plibbaz2 -plibbaz2-dev -plibbaz2-dbg + dh_compress -plibbaz2 -plibbaz2-dev -plibbaz2-dbg + + # Mess up the libbaz2 changelog files to test the symlink handling. + ln -s /usr/share/doc/lintian/changelog.gz \ + debian/libbaz2/usr/share/doc/libbaz2/changelog.gz + install -m 644 debian/changelog \ + debian/libbaz2-dev/usr/share/doc/libbaz2-dev/foo + ln -s foo debian/libbaz2-dev/usr/share/doc/libbaz2-dev/changelog + + # Okay, if either line is omitted, it should be noted + dh_strip --dbg-package=libbaz2-dbg -plibbaz2 -plibbaz2-dev + dh_makeshlibs -plibbaz2 -plibbaz2-dev -plibbaz2-dbg + dh_shlibdeps -plibbaz2 -plibbaz2-dev -plibbaz2-dbg + + # and again, regular packaging stuff + dh_installdeb -plibbaz2 -plibbaz2-dev -plibbaz2-dbg + echo udeb: libbaz2 1.0 libbaz2 >> debian/libbaz2/DEBIAN/shlibs + dh_gencontrol -plibbaz2 -plibbaz2-dev -plibbaz2-dbg + dh_builddeb -plibbaz2 -plibbaz2-dev -plibbaz2-dbg + +# and the incorrect one +binary-arch: build-arch binary-correct + # first, the lib package + install -d $(lib_tmp)/usr/lib + # resp. no soname (check), wrong soname (check), and no-pic (check) + cp -a libbaz1.so.1.0* $(lib_tmp)/usr/lib + cp -a libbaz2.so.1.0.3b $(lib_tmp)/usr/lib/libfoo2.so.1.0.3b + install -m644 libbaz3.so.1.0.3b $(lib_tmp)/usr/lib/libbaz3.so.1.0.3b + # let's include the .a in the non-dev too (TODO) + # Also, libbaz1.a hasn't a symbol table (TODO) + cp -a *.a $(lib_tmp)/usr/lib + # And a wrong .so symlink (wrong, only in -dev, TODO) + ln -s libfoo3.so.0.9 $(lib_tmp)/usr/lib/libfoo3.so + # And a wrong .so.X symlink (wrong, should point to a real existing + # shlib, TODO) + ln -s libfoo.so.0.9.1 $(lib_tmp)/usr/lib/libfoo.so.0.9 + # And a plain .so (wrong, TODO) + touch $(lib_tmp)/usr/lib/libbar2.so + # And a non-versioned SONAME. + install -m644 libbaz.so $(lib_tmp)/usr/lib/libbaz.so + strip --remove-section=.comment --strip-unneeded $(lib_tmp)/usr/lib/libbaz.so + # Pretend to be a Perl module to test a lack of Perl dependencies. + install -d $(lib_tmp)/$(VENDORARCH)/auto/Foo + install -m 644 libbaz2.so.1.0.3b $(lib_tmp)/$(VENDORARCH)/auto/Foo/Foo.so + strip $(lib_tmp)/$(VENDORARCH)/auto/Foo/Foo.so + + install -d $(lib_tmp)/usr/share/doc/$(LIB) + install -m 644 debian/copyright $(lib_tmp)/usr/share/doc/$(LIB) + install -m 644 debian/changelog $(lib_tmp)/usr/share/doc/$(LIB) + gzip -n -9 $(lib_tmp)/usr/share/doc/$(LIB)/changelog + install -d $(lib_tmp)/DEBIAN + install -m 755 debian/lib.postinst $(lib_tmp)/DEBIAN/postinst + install -m 755 debian/lib.prerm $(lib_tmp)/DEBIAN/prerm + touch $(lib_tmp)/usr/share/doc/README.Debian + #dpkg-shlibdeps $(lib_tmp)/usr/lib/libbaz.so.1.0 + install -m 755 debian/lib.shlibs $(lib_tmp)/DEBIAN/shlibs + install -m 755 debian/lib.symbols $(lib_tmp)/DEBIAN/symbols + dpkg-gencontrol -isp -p$(LIB) -P$(lib_tmp) + dpkg --build $(lib_tmp) .. + + # now the -dev package + install -d $(dev_tmp)/usr/include + install -d $(lib_tmp)/usr/lib + # let's also install the .so at the same time... (wrong, TODO) + cp -a *.a *.so.* $(lib_tmp)/usr/lib + # and fuck up permission (TODO) + chmod a+x $(lib_tmp)/usr/lib/*.a + # Pretend to be a Perl module to test a lack of Perl dependencies. + install -d $(dev_tmp)/$(VENDORARCH)/auto/Foo + install -m 644 libbaz2.so.1.0.3b $(dev_tmp)/$(VENDORARCH)/auto/Foo/Foo.so + strip $(dev_tmp)/$(VENDORARCH)/auto/Foo/Foo.so + install -d $(dev_tmp)/usr/share/doc + ln -s $(LIB) $(dev_tmp)/usr/share/doc/$(DEV) + install -d $(dev_tmp)/DEBIAN + install -m 755 debian/dev.postinst $(dev_tmp)/DEBIAN/postinst + install -m 755 debian/dev.prerm $(dev_tmp)/DEBIAN/prerm + dpkg-gencontrol -isp -p$(DEV) -P$(dev_tmp) + dpkg --build $(dev_tmp) .. + + +binary: binary-arch + +# The mention of binary-indep here should be sufficient to suppress the +# warning that it's not present. +.PHONY: build-arch build-indep build binary-arch binary-indep binary clean diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/source.lintian-overrides b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/source.lintian-overrides new file mode 100644 index 0000000..6008d27 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/debian/source.lintian-overrides @@ -0,0 +1 @@ +libbaz source: maintainer-script-lacks-debhelper-token diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/fill-values b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/fill-values new file mode 100644 index 0000000..7effe4f --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/fill-values @@ -0,0 +1,6 @@ +Skeleton: upload-non-native +Testname: legacy-libbaz +Source: libbaz +Version: 1-1 +Default-Build-Depends: debhelper (>= 9.20151004~) +Description: Legacy test "libbaz" diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/Makefile b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/Makefile new file mode 100644 index 0000000..657dc2a --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/Makefile @@ -0,0 +1,55 @@ +# This is the correct way to build a lib + +CC=gcc +CFLAGS=-g -Wall -Winline -O2 +LDFLAGS=-Wl,--no-as-needed + +OBJS=baz.o extra.o +SHOBJS=baz.sho extra.sho +NOPICOBJS = $(SHOBJS) + +all: libbaz1.a libbaz2.a libbaz1.so.1.0.3b libbaz2.so libbaz3.so.1.0.3b \ + libbaz.so + +libbaz2.so: libbaz2.so.1.0 + ln -sf $^ $@ +libbaz2.so.1.0: libbaz2.so.1.0.3b + ln -sf $^ $@ + +# Oops, forget the soname altogether +libbaz1.so.1.0.3b: $(NOPICOBJS) + $(CC) $(LDFLAGS) -o $@ -shared $^ -lc + +libbaz2.so.1.0.3b: $(SHOBJS) + $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,libbaz2.so.1.0 $^ -lc + +# Non-PIC. We can't test this on all architectures +libbaz3.so.1.0.3b: $(NOPICOBJS) + $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,libbaz3.so.1 $^ -lc + +# Non-versioned SONAME. +libbaz.so: $(SHOBJS) + $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,libbaz.so $^ -lc + +#%.o-noreentrant: %.c +# $(CC) $(LDFLAGS) $(CFLAGS) -o $@ -c $< + +%.sho: %.c + $(CC) $(LDFLAGS) $(CFLAGS) -D_REENTRANT -fPIC -o $@ -c $< + +%.o: %.c + $(CC) $(LDFLAGS) $(CFLAGS) -D_REENTRANT -o $@ -c $< + +libbaz2.a: $(OBJS) + ar cq $@ $(OBJS) + strip --strip-unneeded --remove-section=.comment \ + --remove-section=-note $@ + ranlib $@ + +# The pic one in the .a (wrong), no archive table +libbaz1.a: $(SHOBJS) + ar cqS $@ $^ + strip --strip-unneeded --remove-section=.comment \ + --remove-section=-note $@ +clean: + rm -f *.a *.o *.so* *.sho diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/baz.c b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/baz.c new file mode 100644 index 0000000..4d5fc45 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/baz.c @@ -0,0 +1,6 @@ +#include <math.h> + +double pw(double p) +{ + return exp(p); +} diff --git a/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/extra.c b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/extra.c new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/build-spec/orig/extra.c diff --git a/t/recipes/checks/md5sums/legacy-libbaz/eval/desc b/t/recipes/checks/md5sums/legacy-libbaz/eval/desc new file mode 100644 index 0000000..05d6c65 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/eval/desc @@ -0,0 +1,2 @@ +Testname: legacy-libbaz +Check: md5sums diff --git a/t/recipes/checks/md5sums/legacy-libbaz/eval/hints b/t/recipes/checks/md5sums/legacy-libbaz/eval/hints new file mode 100644 index 0000000..840b610 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/eval/hints @@ -0,0 +1,5 @@ +libbaz2-dev (binary): no-md5sums-control-file +libbaz2-dbg (binary): no-md5sums-control-file +libbaz2 (binary): no-md5sums-control-file +libbaz1-dev (binary): no-md5sums-control-file +libbaz1 (binary): no-md5sums-control-file diff --git a/t/recipes/checks/md5sums/legacy-libbaz/eval/post-test b/t/recipes/checks/md5sums/legacy-libbaz/eval/post-test new file mode 100755 index 0000000..29dc3f4 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-libbaz/eval/post-test @@ -0,0 +1,4 @@ +/: hardening-.*/ d +s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/ +s,usr/lib/([^\/]*/)?perl[0-9]*(/[0-9]*\.[0-9]*)?/,usr/lib/ma-dir/perl/version/,g +/: file-references-package-build-path / d diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/changelog.in b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/changelog.in new file mode 100644 index 0000000..a12fc8c --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/changelog.in @@ -0,0 +1,57 @@ +maintainer-scripts ([% $version %]) [% $distribution %]; urgency=low + + * Doing an upload for QA but I fail to give it a correct version number, + have some uploaders, and also fail to mention it... Bad me ;) + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 02:05:29 +0200 + +maintainer-scripts (6.1) unstable; urgency=low + + * I made this entry on my local PC, oops ;) + + -- Jeroen van Wolffelaar <jeroen@mordor> Sat, 21 Feb 2004 18:29:37 +0100 + +maintainer-scripts (6) unstable; urgency=low + + * added ldconfig calls to postrm to check test the postrm tests + from shared-libs + + -- Frank Lichtenheld <djpig@debian.org> Sat, 21 Feb 2004 18:29:36 +0100 + +maintainer-scripts (5) unstable; urgency=low + + * added bash style arrays to postinst, this one is for you Torsten (-: + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Fri, 30 Mar 2001 23:27:06 -0800 + +maintainer-scripts (4) unstable; urgency=low + + * added a here document to the prerm, along with two more bashisms + * made postrm a bash script to check that bash scripts are not searched + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Mon, 26 Feb 2001 13:02:57 -0800 + +maintainer-scripts (3) unstable; urgency=low + + * Added check for '.' called as '. foo || bar', lintian 1.11.15 failed this + thinking the '||' was a argument. + * also added an invalid call to '. foo bar' + * postinst now has a space between the #! and /bin/sh to test the interpreter + checking code. + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Tue, 9 Jan 2001 23:06:25 -0800 + +maintainer-scripts (2) unstable; urgency=low + + * Fix location of changelog. + * prerm and postrm do 'update-alternatives --remove'; should only complain + about postrm. + + -- Colin Watson <cjw44@flatline.org.uk> Fri, 29 Dec 2000 06:01:24 +0000 + +maintainer-scripts (1) unstable; urgency=low + + * Initial version + * postinst and prerm set the usr/doc symlink + + -- Sean 'Shaleh' Perry <shaleh@debian.org> Thu, 16 Nov 2000 09:11:40 -0800 diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/control.in b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/control.in new file mode 100644 index 0000000..63dd2db --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/control.in @@ -0,0 +1,18 @@ +Source: maintainer-scripts +Section: misc +Priority: optional +Maintainer: QA group <packages@qa.debian.org> +Uploaders: Anyone but Jeroen <jeroen@wolffelaar.nl> +Build-Depends: [% $build_depends %] +Standards-Version: 3.1.1 +Rules-Requires-Root: binary-targets +XS-Dm-Upload-Allowed: Yes + +Package: maintainer-scripts +Architecture: [% $package_architecture %] +Depends: test +Description: test lintian's maintainer script checks + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. It may + be an empty package. diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/postinst b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/postinst new file mode 100644 index 0000000..e56ed3b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/postinst @@ -0,0 +1,181 @@ +#! /bin/sh -e + +if [ "$1" = "configure" ]; then + if [ -d /usr/doc -a ! -e /usr/doc/maintainer-scripts -a -d /usr/share/doc/maintainer-scripts ]; then + ln -sf ../share/doc/maintainer-scripts /usr/doc/maintainer-scripts + fi +fi + +# valid +. /usr/share/lintian/shell || exit 0 +. /usr/share/lintian/shell >/dev/null +. /usr/share/lintian/shell 2>/dev/null +. /usr/share/lintian/shell </dev/null +. "$(dirname $0)/shell" ; bar +# invalid +. /usr/share/lintian/shell foo +. "$(dirname $0)/shell" bar + +print "Hit enter to continue" +read + +H[0]='this is a string' +echo ${H[0]} +echo "Index 0's length is ${#H[0]}" +echo "All of the array is: ${H[@]}" + +install-info /usr/share/info/foo \ + --quiet \ # make it so + --section foo + +echo Please use update-rc.d or invoke-rc.d to set up blah blah. + +chown root.root /usr/share/doc/maintainer-scripts/changelog +chown root:root /usr/share/doc/maintainer-scripts/changelog + +$FOO=bar +update-rc.d foo defaults >/dev/null +update-rc.d $FOO defaults +update-rc.d foo remove + +# valid +FOO=/tmp +FOO=/var/tmp +: ${FOO:=/tmp} +FOO=`mktemp /tmp/scripts.XXXXXX` +rm "$FOO" +FOO=`tempfile -n/tmp/scripts.tmp` +mkdir /var/tmp/scripts +FOO="/tmp/false.positive.XXXXXX" +# invalid +echo foo >>/tmp/scripts.tmp +rm /tmp/scripts.tmp +rmdir /var/tmp/scripts + +# invalid, maintainer-script-hides-init-failure +invoke-rc.d foo start || exit 0 + +# The right way to invoke an rc script +if which invoke-rc.d >/dev/null 2>&1; then + invoke-rc.d package start +else + /etc/init.d/package start +fi + +# Example ucf invocation. +ucf /usr/share/foo/configuration /etc/foo.conf + +# Calling gconftool directly. +gconftool-2 --makefile-install-rule foo.schema + +# Calling gconf-schemas with no dependency. +gconf-schemas --register foo.schema + +# Calling update-xmlcatalog with no dependency. +update-xmlcatalog --add --type system --id "/usr/share/sgml/dtd/foo" \ + --package maintainer-scripts --root + +# Maintainer scripts shouldn't touch /var/lib/dpkg/status. This is the old +# recipe from the dpkg wiki that should be replaced with dpkg-query. +sed -n -e \"/^Conffiles:/,/^[^ ]/{\\\\' /etc/conffile'{s/.* //;p}}\" \ + /var/lib/dpkg/status + +# Don't modify these files. +echo 'broken 6714/tcp' >> /etc/services +cp /nonexistent /etc/protocols +mv /usr/share/doc/rpc /etc/rpc + +# But this is okay. +cp /etc/protocols /etc/protocols.new + +# This is also wrong. +echo 'broken' > /etc/inetd.conf +cp /etc/inetd.conf.new /etc/inetd.conf + +# But this is fine. +cp /etc/inetd.conf /srv/chroot/etc/inetd.conf + +# Deprecated +install-sgmlcatalog --install package +install-sgmlcatalog --remove package + +# This too is a heredoc. +some-program > /etc/config-file <<'EOF' +echo "All of the array is: ${H[@]}" +EOF + +# But this isn't. +cat '<<EOF' +echo "All of the array is: ${H[@]}" +EOF + +# This is a heredoc +cat <<-EOF +echo "All of the array is ${H[@]}" +EOF + +# As is this +cat <<';' +echo "All of the array is ${H[@]}" +; + +# and this +cat <<foo +echo "All of the array is ${H[@]}" +foobar +echo $HOSTNAME +foo + +# and again +cat <<\bar +echo "All of the array is ${H[@]}" +bar + +# yet another +cat <<"x++" +echo "All of the array is ${H[@]}" +x++ + +# Recognize single quotes even if they start at the beginning of a line. +echo not a bashism \ +'/{ptex,tex}/{amstex,plain,generic,}' + +# More bashisms. +echo -e 'foo\n' +echo "${!foo}" +cat $(\< file) +select foo in a b ; do echo $foo ; done +cnt=$((cnt + 1)) +if false ; then + exec -l /bin/sh + exec -c /bin/sh + exec -a foo /bin/sh +fi +let cnt++ +if test -a /etc/default ; then + echo "$RANDOM|stuff" +fi + +# Calling start-stop-daemon directly in an init script. +start-stop-daemon --start --quiet --name foo --startas /usr/bin/foo + +# But stopping it is fine -- we may be working around something else. +start-stop-daemon --stop --quiet --name foo --startas /usr/bin/foo + +# Deprecated chown use with flags. +chown -R root.root /usr/share/doc/maintainer-scripts + +case $mainscript in + /usr/bin/foo) foobarbaz;; +esac + +/usr/bin/baz; echo bar + +# Some comment checking +# This should flag $RANDOM +test $# -gt 2 && echo $RANDOM +# But these shouldn't +test 1=1 # echo $RANDOM +(test 1=1)# echo $RANDOM +test 1=1;# echo $RANDOM +backgroundtask &#echo $RA diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/postrm b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/postrm new file mode 100644 index 0000000..c0aaf19 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/postrm @@ -0,0 +1,47 @@ +#!/bin/bash +#set -e + +update-alternatives --remove dummy /usr/bin/dummy-alternative + +# Normally read in a maintainer script is not kosher, but here we're going +# to do it only if debconf doesn't exist. +if ! test -f /usr/share/debconf/confmodule ; then + echo "Hit enter" + read +fi + +# neither of the following should be detected as postrm-unsafe-ldconfig +# intended, without quotes + if [ "$1" = remove ]; then + ldconfig + fi +# reversed, many whitespace +if [ 'remove' = "$1" ] +then + + ldconfig +fi + +[ "remove" ="$1" ] && ldconfig + +update-rc.d bar remove + +# Shouldn't provoke an error despite no invoke-rc.d. +echo "/etc/init.d/package stop to stop something" + +# Shouldn't require a ucf dependency. Unfortunately, right now that's +# just because postrm isn't checked, not because we ensure that the +# invocation is conditional. +if which ucf >/dev/null; then + ucf --purge /etc/foo.conf +fi + +# This isn't allowed. +rm /tmp/foo /dev/device +rm /dev/device1 + +# But this is okay. +rm /tmp/foo > /dev/null + +# Not allowed here even with remove. +install-sgmlcatalog --remove package diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/preinst b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/preinst new file mode 100644 index 0000000..6058978 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/preinst @@ -0,0 +1,18 @@ +#!/bin/sh + +update-rc.d foo remove +update-rc.d bar defaults + +# Obsolete dpkg assertions. +dpkg --assert-support-predepends || exit 1 +dpkg --assert-working-epoch || exit 1 +dpkg --assert-long-filenames || exit 1 +dpkg --assert-multi-conrep || exit 1 + +/bin/grep -E --mmap "^Package: foo$" /var/lib/dpkg/status + +# continuation lines +update-alternatives --install /usr/bin/fakeroot fakeroot \ + /usr/bin/fakeroot-ng 5 \ + --slave /usr/share/man/man1/fakeroot.1.gz \ + fakeroot.1.gz /usr/share/man/man1/fakeroot-ng.1.gz diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/prerm b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/prerm new file mode 100644 index 0000000..076ecaf --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/prerm @@ -0,0 +1,188 @@ +#!/bin/sh + +if [ "$1" != "upgrade" ]; then + update-alternatives --remove dummy /usr/bin/dummy-alternative +fi + +if ([ "$1" = "upgrade" ] || [ "$1" = "remove" ]) && [ -L /usr/doc/maintainer-scripts ]; the +n + rm -f /usr/doc/maintainer-scripts +fi + +cat <<EOF +This is all really bad bash specific code!!! +read +source /bar/baz/bat foo +EOF + +# ok, back to checking +if [ "$2" == "purge" ]; then + rm -r /bar/baz +fi + +function foo( ) { + # but not here: local + local bar + echo "foo" &>/dev/null +} + +source $FOO + +trap "echo hi" EXIT HUP 3 + +if [[ "$2" = "purge" ]]; then + kill -HUP $$ +fi + +#this is ok though +if test -n $(echo foo | perl -pe 's/[[:space:]]//go'); then + echo 1 +fi + +update-rc.d foo remove + +# More false positives for bashism checks. None of these are errors. +echo "$line" | grep -q '{fonts/map,}/{\$progname,pdftex,dvips,}//' +echo "$line" | grep -q "${fonts},${foo}" +echo '$[1+2]' +printf "foo |& bar" +perl -e "print q( kill -HUP $? )" + +# Still catch disallowed expansions in double-quotes, though. +echo "${line:3:1}" + +# The wrong way to run an init script (no invoke-rc.d). +/etc/init.d/package stop + +# This is the only install-sgmlcatalog call that's allowed. +install-sgmlcatalog --quiet --remove package + +# More bashisms checks + +read -x foo +read -x +read -r foo +read foo +read + +echo "a\\b" +echo 'a\nb' + +echo "${UID}" +echo "$EUID" +echo "$SHLVL" +echo "$DIRSTACK" +echo "$SECONDS" +echo "$BASH" +echo "$BASH_FOO" +echo "$SHELLOPTS" +echo "$PIPESTATUS" + +bar="$(cut '-d|' -f2 <<< "$foo")" + +VAR=1 +VAR+=a + +echos() { + echo -n -e "bar" + echo -e -n "bar" + echo -en "bar" + echo -ne "bar" + echo "bar" + echo "echo -e foo" +} + +ech.os() { + echo foo >& 2 + echo foo >&bar + echo foo >& bar +} + +echoes() { + echo "abc\nxyz" + echo 'xyz\rabc' + echo foo\cbar + + echo -e "abc\nxyz" + echo -net 'xyz\rabc' + echo -e foo\cbar +} + +foobar.() { + suspend x + suspended x + caller x + complete x + compgen x + declare -a foo +} + +.foobar() { + typeset -x bar + disown 1 + builtin foo + set -B + alias -p + unalias -a +} + +IFS="()" + +ulimit +shopt +type -v bar +time ls +dirs +diff <(tac a) <(tac b) + +pushd + +local foo=bar +local -x foo + +popd + +readonly -f + +echo bar > /dev/tcp +export x +export -x x +export -p x + +sh -x +sh -D +sh --foo +sh +O + +# Brace expansion checks +echo {a,b} +echo {abc},{bcd} + +foobar() +{ + # This is a function +} + + foo.bar() +( + # This is a function with a bad name +) + +foobar@() +{ + # As is this +} + +# This is ok +read -r foo +# but these aren't +read -r +read -p "Would you like to restart the service?" foo bar +read --fish + +set -e + +source "$BAR" +source '$BAR' +source ~/bar +source a diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/rules b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/rules new file mode 100755 index 0000000..5fcef00 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/rules @@ -0,0 +1,35 @@ +#!/usr/bin/make -f + +build-arch: + +build-indep: + +build: build-arch build-indep + +binary-arch: + +binary-indep: + install -d debian/tmp/DEBIAN + install -m 0755 debian/preinst debian/tmp/DEBIAN + install -m 0755 debian/postinst debian/tmp/DEBIAN + install -m 0755 debian/prerm debian/tmp/DEBIAN + install -m 0755 debian/postrm debian/tmp/DEBIAN + install -m 0644 debian/triggers debian/tmp/DEBIAN + install -d debian/tmp/usr/share/doc/maintainer-scripts + install -m 0644 debian/changelog \ + debian/tmp/usr/share/doc/maintainer-scripts/changelog + gzip -n -9 debian/tmp/usr/share/doc/maintainer-scripts/changelog + dpkg-gencontrol -isp + dpkg --build debian/tmp .. + +binary: binary-arch binary-indep + +# Make sure we see dh_clean even in a rule clean depends on. Not the point of +# this test suite, but a convenient place to put it. +clean: clean1 clean2 clean3 +clean1: +clean2: + dh_clean +clean3: + +.PHONY: build-arch build-indep build binary-arch binary-indep binary clean diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/triggers b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/triggers new file mode 100644 index 0000000..f627094 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/triggers @@ -0,0 +1,4 @@ +# Example triggers file +activate foo + +interest bar diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/watch b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/watch new file mode 100644 index 0000000..430eea3 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/debian/watch @@ -0,0 +1,11 @@ +# A whitespace is fine for uscan: + version=5 + +# Following line should not be matched: +#opts=uversionmangle=s/$/+debian/,dversionmangle=s/foo/bar/ \ +# Following one is incorrect, there's a missing backslash at the end +opts=uversionmangle=s/$/+dfsg/,dversionmangle=s/foo/bar/ + +# 'active' is useless here, but it works anyway +options=active \ +http://domain.tld/foo-(.+)\.tar\.gz
\ No newline at end of file diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/fill-values b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/fill-values new file mode 100644 index 0000000..c281e87 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/build-spec/fill-values @@ -0,0 +1,6 @@ +Skeleton: upload-non-native +Testname: legacy-maintainer-scripts +Source: maintainer-scripts +Version: 7+dfsg-0.1 +Description: Legacy test "maintainer-scripts" +Extra-Build-Depends: dash (>= 0.5.10.2) diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/desc b/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/desc new file mode 100644 index 0000000..27d6486 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/desc @@ -0,0 +1,2 @@ +Testname: legacy-maintainer-scripts +Check: md5sums diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/hints b/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/hints new file mode 100644 index 0000000..62e897a --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/hints @@ -0,0 +1 @@ +maintainer-scripts (binary): no-md5sums-control-file diff --git a/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/post-test b/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/post-test new file mode 100644 index 0000000..faeef0b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-maintainer-scripts/eval/post-test @@ -0,0 +1 @@ +s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/ diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/changelog.in b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/changelog.in new file mode 100644 index 0000000..935c633 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/changelog.in @@ -0,0 +1,41 @@ +scripts ([% $version %]) [% $distribution %]; urgency=low + + * I'm also not able to write my name. + * Added a script in /etc/Xsession.d + * Bizarre version number courtesy of + https://wiki.ubuntu.com/SecurityUpdateProcedures#Prepare + + -- Mark 'HE' Brokschmitt <he@debian.org> Thu, 23 Jun 2005 14:32:39 +0200 + +scripts (5-1) unstable; urgency=low + + * I'm making a typo in my own name... And I want lintian to warn me about + it. + + -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 02:26:34 +0200 + +scripts (4-1) unstable; urgency=low + + * Add new example to check that not executable files with a shebang line + called *in don't trigger the script-not-executable warning. + + -- Marc 'HE' Brockschmidt <he@debian.org> Wed, 14 Apr 2004 19:44:04 +0200 + +scripts (3-3) unstable; urgency=low + + * Add suidperlfoo and some code in debian/rules to + check the new suidperl checks + + -- Frank Lichtenheld <djpig@debian.org> Wed, 31 Mar 2004 21:06:20 +0000 + +scripts (2-1) unstable; urgency=low + + * Add tkfoo script for tk checkings + + -- Lintian Maintainers <lintian-maint@debian.org> Sat, 21 Feb 2004 17:13:36 +0100 + +scripts (1-0) unstable; urgency=low + + * Initial version + + -- Lintian Maintainers <lintian-maint@debian.org> Sat, 10 Feb 2001 15:37:31 -0800 diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/control.in b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/control.in new file mode 100644 index 0000000..75a521f --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/control.in @@ -0,0 +1,16 @@ +Source: scripts +Section: interpreters +Priority: optional +Maintainer: Lintian Maintainers <lintian-maint@debian.org> +Uploaders: Jeroen van Wolfelaar <jeroen@wolffelaar.nl>, Marc 'HE' Brockschmidt <he@debian.org> +Build-Depends-Indep: dpatch +Standards-Version: 3.2.1 + +Package: scripts +Architecture: [% $package_architecture %] +Depends: test, ruby1.8, build-essential, libssl0.9.7, php7.0-cli +Recommends: tk8.4 | wish +Description: test lintian's script file checks + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/copyright b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/copyright new file mode 100644 index 0000000..ad8a119 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/copyright @@ -0,0 +1,5 @@ +This file contains the phrase "under the same terms as Perl itself" to +trigger warnings about not having common-licenses references. + +This file contains the phrase "public domain" which should suppress +warnings about no copyright date. diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00list b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00list new file mode 100644 index 0000000..3b9d37e --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00list @@ -0,0 +1,11 @@ +01_not_here_right_now.dpatch + +# some comment +/* some more + elaborate comment + which needs DPATCH_OPTION_CPP=1 + */02_i_dont_have_a_description.patch 03_specified_without_dpatch + +// and again a comment + +04_i_dont_have_a_description_either.patch diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00list.sparc b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00list.sparc new file mode 100644 index 0000000..8b47ab3 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00list.sparc @@ -0,0 +1 @@ +01_some_other_patch_thats_not_in_the_package.dpatch diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00options b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00options new file mode 100644 index 0000000..57ffeb6 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/00options @@ -0,0 +1 @@ +DPATCH_OPTION_CPP=1 diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/02_i_dont_have_a_description.patch b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/02_i_dont_have_a_description.patch new file mode 100644 index 0000000..9279c1b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/02_i_dont_have_a_description.patch @@ -0,0 +1,7 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_i_dont_have_a_description.patch.dpatch by Marc 'HE' Brockschmidt <Marc 'HE' Brockschmidt <he@debian.org>> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/03_specified_without_dpatch.dpatch b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/03_specified_without_dpatch.dpatch new file mode 100644 index 0000000..8303ac6 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/03_specified_without_dpatch.dpatch @@ -0,0 +1,5 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## All lines beginning with `## DP:' are a description of the patch. +## DP: Listed in 00list without .dpatch suffix. + +@DPATCH@ diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/04_i_dont_have_a_description_either.patch b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/04_i_dont_have_a_description_either.patch new file mode 100644 index 0000000..b603f16 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/patches/04_i_dont_have_a_description_either.patch @@ -0,0 +1,7 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_i_dont_have_a_description_either.patch by Adam D. Barratt <adam@adam-barratt.org.uk> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: + +@DPATCH@ diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/postinst b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/postinst new file mode 100644 index 0000000..7c5baf1 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/postinst @@ -0,0 +1,14 @@ +#!/bin/sh + +if [ -x "/etc/init.d/lsb-broken" ] ; then + update-rc.d lsb-broken defaults >/dev/null +fi +if [ -x "/etc/init.d/no-lsb" ] ; then + update-rc.d no-lsb defaults >/dev/null +fi +if [ -x "/etc/init.d/skeleton" ] ; then + update-rc.d skeleton defaults >/dev/null +fi +if [ -x "/etc/init.d/lsb-other" ] ; then + update-rc.d lsb-other defaults >/dev/null +fi diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/postrm b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/postrm new file mode 100644 index 0000000..8fa75a2 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/postrm @@ -0,0 +1,9 @@ +#!/bin/sh -e + +if [ "$1" = purge ] ; then + update-rc.d lsb-broken remove >/dev/null + update-rc.d no-lsb remove >/dev/null + update-rc.d skeleton remove >/dev/null + update-rc.d lsb-other remove >/dev/null + update-rc.d lsb-other remove >/dev/null +fi diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/preinst b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/preinst new file mode 100644 index 0000000..0799557 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/preinst @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e +set -x + +# +# Some comments here +# + +# This serves as an example of an "empty" script, so +# please do not add any real code here, thank you :) + +#DEBHELPER# + +exit 0 diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/rules b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/rules new file mode 100755 index 0000000..ee3677e --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/rules @@ -0,0 +1,105 @@ +#!/usr/bin/make -f + +tmp=debian/tmp + +build-arch: + echo "Hi, in an arch: all package, I am a bug!" + +build-indep: + +build: build-arch build-indep + +binary-arch: + echo "Hi, in an arch: all package, I am a bug!" + +binary-indep: + install -d $(tmp)/usr/bin/ + install -d $(tmp)/etc/X11/Xsession.d/ + install -d $(tmp)/etc/init.d/ + install -d $(tmp)/etc/csh/login.d/ + install -d $(tmp)/etc/fish.d/ + install -d $(tmp)/usr/share/scripts/ + install -d $(tmp)/usr/share/doc/scripts/ + install -d $(tmp)/usr/lib/cgi-bin + install -d $(tmp)/usr/src/scripts + install -d $(tmp)/DEBIAN + + install -m 755 csh-foo $(tmp)/etc/csh/login.d/ + install -m 755 envfoo $(tmp)/usr/bin/ + install -m 755 fish-foo $(tmp)/etc/fish.d/ + install -m 755 jruby-broken $(tmp)/usr/bin/ + install -m 755 perlfoo $(tmp)/usr/bin/ + install -m 755 rubyfoo $(tmp)/usr/bin/ +# This doesn't use "env" but should also trigger script-in-usr-share-doc + install -m 755 rubyfoo $(tmp)/usr/share/doc/scripts/ + install -m 755 make-foo $(tmp)/usr/bin/ + install -m 755 lefty-foo $(tmp)/usr/bin/ + install -m 4751 perlfoo $(tmp)/usr/bin/suidperlfoo2 + install -m 755 sh-broken $(tmp)/usr/bin/ + install -m 4555 suidperlfoo $(tmp)/usr/bin/ + install -m 755 tkfoo $(tmp)/usr/bin/ + install -m 755 wishfoo $(tmp)/usr/bin/ + install -m 644 xsession-test $(tmp)/etc/X11/Xsession.d/ + +# Permissions here aren't part of what's being tested, but let us exercise +# some other errors. + install -m 755 perl-bizarre-1 $(tmp)/usr/bin/ + install -m 750 perl-bizarre-2 $(tmp)/usr/bin/ + install -m 754 perl-bizarre-3 $(tmp)/usr/bin/ + install -m 705 guile-bizarre $(tmp)/usr/bin/ + +# First one should produce a warning; second one shouldn't. + install -m 755 gccbug.dpatch $(tmp)/usr/share/scripts/ + install -m 755 gccbug.dpatch $(tmp)/usr/src/scripts/ + + install -m 644 init-skeleton $(tmp)/etc/init.d/skeleton + install -m 755 init-no-lsb $(tmp)/etc/init.d/no-lsb + install -m 755 init-lsb-broken $(tmp)/etc/init.d/lsb-broken + install -m 755 init-lsb-other $(tmp)/etc/init.d/lsb-other + + install -m 755 phpfoo $(tmp)/usr/share/scripts/ + sed 's/php$$/php7.0/' phpfoo > $(tmp)/usr/share/scripts/php7.0foo + chmod 755 $(tmp)/usr/share/scripts/php7.0foo + + install -m 755 phpenvfoo $(tmp)/usr/share/scripts/ + sed 's/php$$/php7.0/' phpenvfoo > $(tmp)/usr/share/scripts/php7.0envfoo + chmod 755 $(tmp)/usr/share/scripts/php7.0envfoo + + echo "#!/usr/bin/perl" >> $(tmp)/usr/share/scripts/foobar.in + chmod 644 $(tmp)/usr/share/scripts/foobar.in + + touch $(tmp)/usr/share/scripts/mono.exe + chmod 755 $(tmp)/usr/share/scripts/mono.exe + + echo "#!/bin/sh" > $(tmp)/usr/share/scripts/foo\$$bar + chmod 755 $(tmp)/usr/share/scripts/foo\$$bar + + echo "#!/bin/sh" > $(tmp)/usr/lib/cgi-bin/cgi-script + chmod 755 $(tmp)/usr/lib/cgi-bin/cgi-script + + echo "#!/bin/sh" > $(tmp)/usr/bin/test.sh + chmod 755 $(tmp)/usr/bin/test.sh + + + dh_testroot # dummy to test missing debhelper dependency + + + install -m 644 debian/changelog $(tmp)/usr/share/doc/scripts/changelog.Debian + gzip -n -9 $(tmp)/usr/share/doc/scripts/changelog.Debian + install -m 644 debian/copyright $(tmp)/usr/share/doc/scripts/copyright + + install -m 644 debian/scripts.conffiles $(tmp)/DEBIAN/conffiles + install -m 755 debian/preinst $(tmp)/DEBIAN/preinst + install -m 755 debian/postinst $(tmp)/DEBIAN/postinst + install -m 755 debian/postrm $(tmp)/DEBIAN/postrm + touch $(tmp)/DEBIAN/prerm + chmod 755 $(tmp)/DEBIAN/prerm + dpkg-gencontrol -isp + dpkg --build $(tmp) .. + +binary: binary-arch binary-indep + +clean: + rm -rf debian/files $(tmp) debian/substvars + +.PHONY: build-arch build-indep build binary-arch binary-indep binary clean diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/scripts.conffiles b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/scripts.conffiles new file mode 100644 index 0000000..01a371a --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/scripts.conffiles @@ -0,0 +1,6 @@ +/etc/init.d/lsb-broken +/etc/init.d/lsb-other +/etc/init.d/no-lsb +/etc/X11/Xsession.d/xsession-test +/etc/csh/login.d/csh-foo +/etc/fish.d/fish-foo diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/watch b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/watch new file mode 100644 index 0000000..dba5815 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/debian/watch @@ -0,0 +1,8 @@ +# watch file with upstream version mangling + +version=2 +opts="uversionmangle=s/$/ds/" \ +http://qa.debian.org/watch/sf.php?project=foo scripts\.([\d.]+)\.tar\.gz debian uupdate + +version=3 +http://ftp.sf.net/foo/foo_bar(.+)\.Z 5 uupdate
\ No newline at end of file diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/fill-values b/t/recipes/checks/md5sums/legacy-scripts/build-spec/fill-values new file mode 100644 index 0000000..8a68457 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/fill-values @@ -0,0 +1,6 @@ +Testname: legacy-scripts +Source: scripts +Version: 6ds-1ubuntu0.5.10.1 +Package-Architecture: all +Skeleton: upload-non-native +Description: Legacy test "scripts" diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/csh-foo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/csh-foo new file mode 100644 index 0000000..eaf47a1 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/csh-foo @@ -0,0 +1,2 @@ +#! /bin/csh + diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/envfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/envfoo new file mode 100755 index 0000000..e005037 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/envfoo @@ -0,0 +1,4 @@ +#! /bin/env python + +if __name__ == '__main__': + print 'Hi there' diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/fish-foo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/fish-foo new file mode 100644 index 0000000..7f59139 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/fish-foo @@ -0,0 +1,2 @@ +#! /usr/bin/fish + diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/gccbug.dpatch b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/gccbug.dpatch new file mode 100755 index 0000000..65cbf37 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/gccbug.dpatch @@ -0,0 +1,39 @@ +#! /bin/sh -e + +# DP: Use sensible-editor instead of vi as fallback editor + +# Taken from gcc-4.1-source. Chokes bash -n (due to the patch) despite being +# a valid dpatch, so don't warn about it if it's in /usr/src. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/gccbug.in~ 2003-03-01 00:51:42.000000000 +0100 ++++ gcc/gccbug.in 2003-03-02 12:08:36.000000000 +0100 +@@ -134,7 +134,7 @@ + # If they don't have a preferred editor set, then use + if [ -z "$VISUAL" ]; then + if [ -z "$EDITOR" ]; then +- EDIT=vi ++ EDIT=/usr/bin/sensible-editor + else + EDIT="$EDITOR" + fi diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/guile-bizarre b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/guile-bizarre new file mode 100644 index 0000000..70e2c74 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/guile-bizarre @@ -0,0 +1,6 @@ +#! /bin/sh +# -*- scheme -*- +exec guile -s $0 $* +# Seen in the wild as build-guile-gtk in libguilegtk-1.2-dev (0.31-5.1) +# Tests script_is_evil_and_wrong +!# diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-lsb-broken b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-lsb-broken new file mode 100644 index 0000000..e4dfa92 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-lsb-broken @@ -0,0 +1,34 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: bad-lsb +# Required-Start: $local_fs $remote_fs +# Required-Stop: +# Default-Start: 1 2 3 4 5 +# Default-Stop: S 0 1 6 X +# Short-Description: Example Lintian initscript +# but this can't be continued +# Description: An example of a bad LSB section in an init script. +# This continuation is allowed (with spaces). +# This one is too (with tabs). +# X-Debian-Foo: Some unknown but valid keyword. +# Foo: Some invalid keyword. + +# Whoops, no terminating line. + +# And then we have this duplicate section. +### BEGIN INIT INFO +# Required-Start: This one doesn't count. +### END INIT INFO + +# Hey, look at all of those missing actions! But stop isn't missing. +case "$1" in + start|stop) + echo "Blah" + ;; + *) + echo "Usage: foo start" >&2 + exit 3 + ;; +esac + +: diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-lsb-other b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-lsb-other new file mode 100644 index 0000000..adb4795 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-lsb-other @@ -0,0 +1,22 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lsb-other +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Description: This is another LSB script test, which has a missing +# Short-Description. +### END INIT INFO + +case "$1" in + start|stop|restart|reload|force-reload) + echo "Blah" + ;; + *) + echo "Usage: foo start" >&2 + exit 3 + ;; +esac + +: diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-no-lsb b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-no-lsb new file mode 100644 index 0000000..6b994dd --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-no-lsb @@ -0,0 +1,17 @@ +#! /bin/sh +# No LSB section, but otherwise okay. (Well, the messages are bad, but we +# don't check that yet.) + +case "$1" in + start) + echo "Blah starting" + ;; + stop) + echo "Blah stopping" + ;; + restart|force-reload) + echo "Blah restarting" + ;; +esac + +: diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-skeleton b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-skeleton new file mode 100644 index 0000000..c868508 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/init-skeleton @@ -0,0 +1,150 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: skeleton +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: S 0 1 6 +# Short-Description: Example Lintian initscript +# Description: This file should be used to construct scripts to be +# placed in /etc/init.d. +### END INIT INFO + +# Do NOT "set -e" + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/usr/sbin:/usr/bin:/sbin:/bin +DESC="Description of the service" +NAME=daemonexecutablename +DAEMON=/usr/sbin/$NAME +DAEMON_ARGS="--options args" +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# Load the VERBOSE setting and other rcS variables +[ -f /etc/default/rcS ] && . /etc/default/rcS + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 + # Add code here, if necessary, that waits for the process to be ready + # to handle requests from services started subsequently which depend + # on this one. As a last resort, sleep for some time. +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + # Wait for children to finish too if this is a daemon that forks + # and if the daemon is only ever run from this initscript. + # If the above conditions are not satisfied then add some other code + # that waits for the process to drop all resources that could be + # needed by services started subsequently. A last resort is to + # sleep for some time. + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + return "$RETVAL" +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + # + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + # + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME + return 0 +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + #reload|force-reload) + # + # If do_reload() is not implemented then leave this commented out + # and leave 'force-reload' as an alias for 'restart'. + # + #log_daemon_msg "Reloading $DESC" "$NAME" + #do_reload + #log_end_msg $? + #;; + restart|force-reload) + # + # If the "reload" option is implemented then remove the + # 'force-reload' alias + # + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/jruby-broken b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/jruby-broken new file mode 100644 index 0000000..56f574d --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/jruby-broken @@ -0,0 +1,2 @@ +#!/usr/bin/jruby +# There's no non-versioned jruby, so this should be an error. diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/lefty-foo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/lefty-foo new file mode 100644 index 0000000..52c003e --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/lefty-foo @@ -0,0 +1,2 @@ +#!/usr/local/bin/lefty + diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/make-foo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/make-foo new file mode 100644 index 0000000..6b787b5 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/make-foo @@ -0,0 +1,3 @@ +#!/usr/bin/make + + diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-1 b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-1 new file mode 100644 index 0000000..fc632c8 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-1 @@ -0,0 +1,11 @@ +#! /bin/sh +eval '(exit $?0)' && eval 'PERL_BADLANG=x;export PERL_BADLANG;: \ +;exec perl -x -S -- "$0" ${1+"$@"};#'if 0; +eval 'setenv PERL_BADLANG x;exec perl -x -S -- "$0" $argv:q;#'.q+ +#!perl -w +package Htex::a2ping; $0=~/(.*)/s;unshift@INC,'.';do($1);die$@if$@;__END__+if !1; +# This Perl script was generated by JustLib2 at Wed Apr 23 09:14:13 2003. +# Don't touch/remove any lines above; http://www.inf.bme.hu/~pts/justlib + +# The above was actually seen in the wild and stresses the +# script_is_evil_and_wrong test. diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-2 b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-2 new file mode 100644 index 0000000..afd9cfe --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-2 @@ -0,0 +1,7 @@ +#!/bin/sh +eval 'exec /usr/bin/perl -wS $0 ${1+"$@"}' + if $running_under_some_shell; + +# I'm someone following perlrun except without using the Perl #! line. +# Now something to choke bash. +while (<>) { if (/%#/) { print } } diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-3 b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-3 new file mode 100644 index 0000000..44baf75 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perl-bizarre-3 @@ -0,0 +1,6 @@ +eval '(exit $?0)' && eval 'exec perl -wS $0 ${1+"$@"}' +& eval 'exec /usr/bin/perl -wS $0 $argv:q' + if $running_under_some_shell; + +# More utterly bizarreness from perlrun. This one even doesn't work if +# there's a valid #! line on the first line. I don't understand why.... diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perlfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perlfoo new file mode 100644 index 0000000..5b27ed0 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/perlfoo @@ -0,0 +1,3 @@ +#! /usr/bin/perl + +print "Hello, World!"; diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/phpenvfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/phpenvfoo new file mode 100644 index 0000000..cbbfb2e --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/phpenvfoo @@ -0,0 +1,7 @@ +#!/usr/bin/env php +<html> +<head> +<title>Dumb PHP script</title> +</head> +<body><? print(Date("l F d, Y")); ?></body> +</html> diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/phpfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/phpfoo new file mode 100644 index 0000000..e0595e6 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/phpfoo @@ -0,0 +1,7 @@ +#!/usr/bin/php +<html> +<head> +<title>Dumb PHP script</title> +</head> +<body><? print(Date("l F d, Y")); ?></body> +</html> diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/rubyfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/rubyfoo new file mode 100644 index 0000000..8024605 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/rubyfoo @@ -0,0 +1,4 @@ +#!/bin/ruby1.8 + +# Ok, that example is really pathetic, but until we have +# some better code in checks/scripts, it will do diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/sh-broken b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/sh-broken new file mode 100644 index 0000000..7b79074 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/sh-broken @@ -0,0 +1,2 @@ +#!/bin/sh +if fi diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/suidperlfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/suidperlfoo new file mode 100644 index 0000000..bcbc471 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/suidperlfoo @@ -0,0 +1,3 @@ +#! /usr/bin/suidperl + +print "Hello, World!"; diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/tkfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/tkfoo new file mode 100755 index 0000000..533595a --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/tkfoo @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Insane amount of empty lines and comments + +# +# +# +# + +# +# + +# +# +# + +# +# + +# +# This line makes the next one a comment in Tcl \ +exec wish "$0" -- ${1+"$@"} + +# lintian should not check the following for syntax +# if it detects the line above correctly +# Code snippet taken from eTkTab + +if { [array names prefs keybindings] != "" } { + # Read in the file + array set unparsed_bindings [ read_settings_file $prefs(keybindings)] +} diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/wishfoo b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/wishfoo new file mode 100644 index 0000000..035c9ad --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/wishfoo @@ -0,0 +1,4 @@ +#!/usr/bin/wish +# +# This is not actually a wish script, here to force a test of wish +# dependencies. diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/xsession-test b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/xsession-test new file mode 100644 index 0000000..ca49d72 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/orig/xsession-test @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "Foo." diff --git a/t/recipes/checks/md5sums/legacy-scripts/build-spec/pre-build b/t/recipes/checks/md5sums/legacy-scripts/build-spec/pre-build new file mode 100755 index 0000000..b5649a8 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/build-spec/pre-build @@ -0,0 +1,5 @@ +#!/bin/sh + +DIR="$1" + +rm -f "$DIR/debian/compat" diff --git a/t/recipes/checks/md5sums/legacy-scripts/eval/desc b/t/recipes/checks/md5sums/legacy-scripts/eval/desc new file mode 100644 index 0000000..8371d73 --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/eval/desc @@ -0,0 +1,2 @@ +Testname: legacy-scripts +Check: md5sums diff --git a/t/recipes/checks/md5sums/legacy-scripts/eval/hints b/t/recipes/checks/md5sums/legacy-scripts/eval/hints new file mode 100644 index 0000000..198325d --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/eval/hints @@ -0,0 +1 @@ +scripts (binary): no-md5sums-control-file diff --git a/t/recipes/checks/md5sums/legacy-scripts/eval/post-test b/t/recipes/checks/md5sums/legacy-scripts/eval/post-test new file mode 100644 index 0000000..faeef0b --- /dev/null +++ b/t/recipes/checks/md5sums/legacy-scripts/eval/post-test @@ -0,0 +1 @@ +s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/ diff --git a/t/recipes/checks/md5sums/md5sums-general/build-spec/debian/install b/t/recipes/checks/md5sums/md5sums-general/build-spec/debian/install new file mode 100644 index 0000000..399564c --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/build-spec/debian/install @@ -0,0 +1 @@ +data* usr/share/lintian/ diff --git a/t/recipes/checks/md5sums/md5sums-general/build-spec/debian/rules b/t/recipes/checks/md5sums/md5sums-general/build-spec/debian/rules new file mode 100644 index 0000000..6971ee0 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/build-spec/debian/rules @@ -0,0 +1,12 @@ +#!/usr/bin/make -f + +FIND ?= find + +%: + dh $@ + +override_dh_builddeb: + echo "Broken md5sum" > $$($(FIND) debian/ -name 'data-file1') + sed -i 's/data-file2/data-file5/' $$($(FIND) -name 'md5sums') + echo "broken-md5sums" >> $$($(FIND) -name 'md5sums') + dh_builddeb diff --git a/t/recipes/checks/md5sums/md5sums-general/build-spec/fill-values b/t/recipes/checks/md5sums/md5sums-general/build-spec/fill-values new file mode 100644 index 0000000..4607247 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/build-spec/fill-values @@ -0,0 +1,3 @@ +Skeleton: upload-native +Testname: md5sums-general +Description: Test of md5sums related tags diff --git a/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file1 b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file1 new file mode 100644 index 0000000..ad9213e --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file1 @@ -0,0 +1 @@ +Hello data-file1 diff --git a/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file2 b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file2 new file mode 100644 index 0000000..fdf6b01 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file2 @@ -0,0 +1 @@ +Hello data-file2 diff --git a/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file3 b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file3 new file mode 100644 index 0000000..0f72672 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file3 @@ -0,0 +1 @@ +Hello data-file3 diff --git a/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file4 b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file4 new file mode 100644 index 0000000..2764cf8 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/build-spec/orig/data-file4 @@ -0,0 +1 @@ +Hello data-file4 diff --git a/t/recipes/checks/md5sums/md5sums-general/eval/desc b/t/recipes/checks/md5sums/md5sums-general/eval/desc new file mode 100644 index 0000000..3129219 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/eval/desc @@ -0,0 +1,2 @@ +Testname: md5sums-general +Check: md5sums diff --git a/t/recipes/checks/md5sums/md5sums-general/eval/hints b/t/recipes/checks/md5sums/md5sums-general/eval/hints new file mode 100644 index 0000000..28265fe --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-general/eval/hints @@ -0,0 +1,4 @@ +md5sums-general (binary): md5sums-lists-nonexistent-file usr/share/lintian/data-file5 [md5sums] +md5sums-general (binary): md5sum-mismatch usr/share/lintian/data-file1 [md5sums] +md5sums-general (binary): malformed-md5sums-control-file Odd text: broken-md5sums [md5sums] +md5sums-general (binary): file-missing-in-md5sums usr/share/lintian/data-file2 [md5sums] diff --git a/t/recipes/checks/md5sums/md5sums-missing/build-spec/debian/rules b/t/recipes/checks/md5sums/md5sums-missing/build-spec/debian/rules new file mode 100644 index 0000000..9d8ce3a --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-missing/build-spec/debian/rules @@ -0,0 +1,10 @@ +#!/usr/bin/make -f + +FIND ?= find + +%: + dh $@ + +override_dh_builddeb: + $(FIND) debian/ -name 'md5sums' -delete + dh_builddeb diff --git a/t/recipes/checks/md5sums/md5sums-missing/build-spec/fill-values b/t/recipes/checks/md5sums/md5sums-missing/build-spec/fill-values new file mode 100644 index 0000000..4bd35b7 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-missing/build-spec/fill-values @@ -0,0 +1,3 @@ +Skeleton: upload-native +Testname: md5sums-missing +Description: Test of missing md5sums file diff --git a/t/recipes/checks/md5sums/md5sums-missing/eval/desc b/t/recipes/checks/md5sums/md5sums-missing/eval/desc new file mode 100644 index 0000000..a0f18b1 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-missing/eval/desc @@ -0,0 +1,2 @@ +Testname: md5sums-missing +Check: md5sums diff --git a/t/recipes/checks/md5sums/md5sums-missing/eval/hints b/t/recipes/checks/md5sums/md5sums-missing/eval/hints new file mode 100644 index 0000000..38caff1 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-missing/eval/hints @@ -0,0 +1 @@ +md5sums-missing (binary): no-md5sums-control-file diff --git a/t/recipes/checks/md5sums/md5sums-traversal/build-spec/fill-values b/t/recipes/checks/md5sums/md5sums-traversal/build-spec/fill-values new file mode 100644 index 0000000..2c68cb6 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-traversal/build-spec/fill-values @@ -0,0 +1,3 @@ +Skeleton: deb +Testname: md5sums-traversal +Description: Test for traversals via md5sums symlink diff --git a/t/recipes/checks/md5sums/md5sums-traversal/build-spec/pre-control b/t/recipes/checks/md5sums/md5sums-traversal/build-spec/pre-control new file mode 100755 index 0000000..3b97b53 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-traversal/build-spec/pre-control @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +builddir="$1" + +rm -f "$builddir/md5sums" +ln -sf ../copyright "$builddir/md5sums" diff --git a/t/recipes/checks/md5sums/md5sums-traversal/eval/desc b/t/recipes/checks/md5sums/md5sums-traversal/eval/desc new file mode 100644 index 0000000..f0a868f --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-traversal/eval/desc @@ -0,0 +1,5 @@ +Testname: md5sums-traversal +Test-Against: + file-missing-in-md5sums + malformed-md5sums-control-file +Check: md5sums diff --git a/t/recipes/checks/md5sums/md5sums-traversal/eval/hints b/t/recipes/checks/md5sums/md5sums-traversal/eval/hints new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/t/recipes/checks/md5sums/md5sums-traversal/eval/hints |