Package: lintian Version: 2.5.14 New patch set
From 759f3c713e66a6ecd771f899940b72b2da3187ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastien=20ROUCARI=C3=88S?= <roucaries.bast...@gmail.com> Date: Wed, 14 Aug 2013 15:16:37 +0200 Subject: [PATCH 1/2] Prepare detection of pkgconfig with multiarch problems
* Move data/binaries/multiarch-dirs -> data/common/multiarch-dirs * Add an hash value to $MULTIARCH_DIRS --- checks/binaries.pm | 19 +-- data/binaries/multiarch-dirs | 290 ------------------------------------------ data/common/multiarch-dirs | 290 ++++++++++++++++++++++++++++++++++++++++++ private/refresh-archs | 2 +- 4 files changed, 302 insertions(+), 299 deletions(-) delete mode 100644 data/binaries/multiarch-dirs create mode 100644 data/common/multiarch-dirs diff --git a/checks/binaries.pm b/checks/binaries.pm index f26e809..2b41f7f 100644 --- a/checks/binaries.pm +++ b/checks/binaries.pm @@ -72,7 +72,8 @@ sub _embedded_libs { our $EMBEDDED_LIBRARIES = Lintian::Data->new ('binaries/embedded-libs', qr/\s*+\|\|/, \&_embedded_libs); -our $MULTIARCH_DIRS = Lintian::Data->new('binaries/multiarch-dirs', '\s+'); +our $MULTIARCH_DIRS = Lintian::Data->new('common/multiarch-dirs', qr/\s++/, + sub { return { 'dir' => $_[1] , 'match' => qr/$_[1]/ } }); sub _split_hash { my (undef, $val) = @_; @@ -165,13 +166,15 @@ foreach my $file (sort keys %{$info->objdump_info}) { # positives with plugins like Apache modules, which may have their own SONAMEs # but which don't matter for the purposes of this check. Also filter out # nsswitch modules -$madir = $MULTIARCH_DIRS->value($arch); - -# In the case that the architecture is "all" or unknown (or we do -# not know the multi-arch path for a known architecture) , we assume -# it the multi-arch path to be this (hopefully!) non-existent path to -# avoid warnings about uninitialized variables. -$madir = './!non-existant-path!/./' unless defined $madir; +if (defined($MULTIARCH_DIRS->value($arch))) { + $madir = $MULTIARCH_DIRS->value($arch)->{'dir'}; +} else { + # In the case that the architecture is "all" or unknown (or we do + # not know the multi-arch path for a known architecture) , we assume + # it the multi-arch path to be this (hopefully!) non-existent path to + # avoid warnings about uninitialized variables. + $madir = './!non-existant-path!/./'; +} $gnu_triplet_re = quotemeta $madir; $gnu_triplet_re =~ s,^i386,i[3-6]86,; diff --git a/data/binaries/multiarch-dirs b/data/binaries/multiarch-dirs deleted file mode 100644 index d53d9cc..0000000 --- a/data/binaries/multiarch-dirs +++ /dev/null @@ -1,290 +0,0 @@ -# List of "Multiarch dirs" relationships as provided by -# dpkg-architecture - arch -> dir mapping -# Last updated: 2012-06-14 -# With: Debian dpkg-architecture version 1.16.4.2. -# This file was auto-generated by private/refresh-archs - -alpha alpha-linux-gnu -amd64 x86_64-linux-gnu -arm arm-linux-gnu -arm64 aarch64-linux-gnu -armeb armeb-linux-gnu -armel arm-linux-gnueabi -armhf arm-linux-gnueabihf -avr32 avr32-linux-gnu -darwin-alpha alpha-darwin -darwin-amd64 x86_64-darwin -darwin-arm arm-darwin -darwin-arm64 aarch64-darwin -darwin-armeb armeb-darwin -darwin-avr32 avr32-darwin -darwin-hppa hppa-darwin -darwin-i386 i386-darwin -darwin-ia64 ia64-darwin -darwin-m32r m32r-darwin -darwin-m68k m68k-darwin -darwin-mips mips-darwin -darwin-mipsel mipsel-darwin -darwin-powerpc powerpc-darwin -darwin-ppc64 powerpc64-darwin -darwin-s390 s390-darwin -darwin-s390x s390x-darwin -darwin-sh3 sh3-darwin -darwin-sh3eb sh3eb-darwin -darwin-sh4 sh4-darwin -darwin-sh4eb sh4eb-darwin -darwin-sparc sparc-darwin -darwin-sparc64 sparc64-darwin -freebsd-alpha alpha-freebsd -freebsd-amd64 x86_64-freebsd -freebsd-arm arm-freebsd -freebsd-arm64 aarch64-freebsd -freebsd-armeb armeb-freebsd -freebsd-avr32 avr32-freebsd -freebsd-hppa hppa-freebsd -freebsd-i386 i386-freebsd -freebsd-ia64 ia64-freebsd -freebsd-m32r m32r-freebsd -freebsd-m68k m68k-freebsd -freebsd-mips mips-freebsd -freebsd-mipsel mipsel-freebsd -freebsd-powerpc powerpc-freebsd -freebsd-ppc64 powerpc64-freebsd -freebsd-s390 s390-freebsd -freebsd-s390x s390x-freebsd -freebsd-sh3 sh3-freebsd -freebsd-sh3eb sh3eb-freebsd -freebsd-sh4 sh4-freebsd -freebsd-sh4eb sh4eb-freebsd -freebsd-sparc sparc-freebsd -freebsd-sparc64 sparc64-freebsd -hppa hppa-linux-gnu -hurd-alpha alpha-gnu -hurd-amd64 x86_64-gnu -hurd-arm arm-gnu -hurd-arm64 aarch64-gnu -hurd-armeb armeb-gnu -hurd-avr32 avr32-gnu -hurd-hppa hppa-gnu -hurd-i386 i386-gnu -hurd-ia64 ia64-gnu -hurd-m32r m32r-gnu -hurd-m68k m68k-gnu -hurd-mips mips-gnu -hurd-mipsel mipsel-gnu -hurd-powerpc powerpc-gnu -hurd-ppc64 powerpc64-gnu -hurd-s390 s390-gnu -hurd-s390x s390x-gnu -hurd-sh3 sh3-gnu -hurd-sh3eb sh3eb-gnu -hurd-sh4 sh4-gnu -hurd-sh4eb sh4eb-gnu -hurd-sparc sparc-gnu -hurd-sparc64 sparc64-gnu -i386 i386-linux-gnu -ia64 ia64-linux-gnu -kfreebsd-alpha alpha-kfreebsd-gnu -kfreebsd-amd64 x86_64-kfreebsd-gnu -kfreebsd-arm arm-kfreebsd-gnu -kfreebsd-arm64 aarch64-kfreebsd-gnu -kfreebsd-armeb armeb-kfreebsd-gnu -kfreebsd-avr32 avr32-kfreebsd-gnu -kfreebsd-hppa hppa-kfreebsd-gnu -kfreebsd-i386 i386-kfreebsd-gnu -kfreebsd-ia64 ia64-kfreebsd-gnu -kfreebsd-m32r m32r-kfreebsd-gnu -kfreebsd-m68k m68k-kfreebsd-gnu -kfreebsd-mips mips-kfreebsd-gnu -kfreebsd-mipsel mipsel-kfreebsd-gnu -kfreebsd-powerpc powerpc-kfreebsd-gnu -kfreebsd-ppc64 powerpc64-kfreebsd-gnu -kfreebsd-s390 s390-kfreebsd-gnu -kfreebsd-s390x s390x-kfreebsd-gnu -kfreebsd-sh3 sh3-kfreebsd-gnu -kfreebsd-sh3eb sh3eb-kfreebsd-gnu -kfreebsd-sh4 sh4-kfreebsd-gnu -kfreebsd-sh4eb sh4eb-kfreebsd-gnu -kfreebsd-sparc sparc-kfreebsd-gnu -kfreebsd-sparc64 sparc64-kfreebsd-gnu -knetbsd-alpha alpha-knetbsd-gnu -knetbsd-amd64 x86_64-knetbsd-gnu -knetbsd-arm arm-knetbsd-gnu -knetbsd-arm64 aarch64-knetbsd-gnu -knetbsd-armeb armeb-knetbsd-gnu -knetbsd-avr32 avr32-knetbsd-gnu -knetbsd-hppa hppa-knetbsd-gnu -knetbsd-i386 i386-knetbsd-gnu -knetbsd-ia64 ia64-knetbsd-gnu -knetbsd-m32r m32r-knetbsd-gnu -knetbsd-m68k m68k-knetbsd-gnu -knetbsd-mips mips-knetbsd-gnu -knetbsd-mipsel mipsel-knetbsd-gnu -knetbsd-powerpc powerpc-knetbsd-gnu -knetbsd-ppc64 powerpc64-knetbsd-gnu -knetbsd-s390 s390-knetbsd-gnu -knetbsd-s390x s390x-knetbsd-gnu -knetbsd-sh3 sh3-knetbsd-gnu -knetbsd-sh3eb sh3eb-knetbsd-gnu -knetbsd-sh4 sh4-knetbsd-gnu -knetbsd-sh4eb sh4eb-knetbsd-gnu -knetbsd-sparc sparc-knetbsd-gnu -knetbsd-sparc64 sparc64-knetbsd-gnu -kopensolaris-alpha alpha-kopensolaris-gnu -kopensolaris-amd64 x86_64-kopensolaris-gnu -kopensolaris-arm arm-kopensolaris-gnu -kopensolaris-arm64 aarch64-kopensolaris-gnu -kopensolaris-armeb armeb-kopensolaris-gnu -kopensolaris-avr32 avr32-kopensolaris-gnu -kopensolaris-hppa hppa-kopensolaris-gnu -kopensolaris-i386 i386-kopensolaris-gnu -kopensolaris-ia64 ia64-kopensolaris-gnu -kopensolaris-m32r m32r-kopensolaris-gnu -kopensolaris-m68k m68k-kopensolaris-gnu -kopensolaris-mips mips-kopensolaris-gnu -kopensolaris-mipsel mipsel-kopensolaris-gnu -kopensolaris-powerpc powerpc-kopensolaris-gnu -kopensolaris-ppc64 powerpc64-kopensolaris-gnu -kopensolaris-s390 s390-kopensolaris-gnu -kopensolaris-s390x s390x-kopensolaris-gnu -kopensolaris-sh3 sh3-kopensolaris-gnu -kopensolaris-sh3eb sh3eb-kopensolaris-gnu -kopensolaris-sh4 sh4-kopensolaris-gnu -kopensolaris-sh4eb sh4eb-kopensolaris-gnu -kopensolaris-sparc sparc-kopensolaris-gnu -kopensolaris-sparc64 sparc64-kopensolaris-gnu -lpia i386-linux-gnulp -m32r m32r-linux-gnu -m68k m68k-linux-gnu -mint-m68k m68k-mint -mips mips-linux-gnu -mipsel mipsel-linux-gnu -netbsd-alpha alpha-netbsd -netbsd-amd64 x86_64-netbsd -netbsd-arm arm-netbsd -netbsd-arm64 aarch64-netbsd -netbsd-armeb armeb-netbsd -netbsd-avr32 avr32-netbsd -netbsd-hppa hppa-netbsd -netbsd-i386 i386-netbsd -netbsd-ia64 ia64-netbsd -netbsd-m32r m32r-netbsd -netbsd-m68k m68k-netbsd -netbsd-mips mips-netbsd -netbsd-mipsel mipsel-netbsd -netbsd-powerpc powerpc-netbsd -netbsd-ppc64 powerpc64-netbsd -netbsd-s390 s390-netbsd -netbsd-s390x s390x-netbsd -netbsd-sh3 sh3-netbsd -netbsd-sh3eb sh3eb-netbsd -netbsd-sh4 sh4-netbsd -netbsd-sh4eb sh4eb-netbsd -netbsd-sparc sparc-netbsd -netbsd-sparc64 sparc64-netbsd -openbsd-alpha alpha-openbsd -openbsd-amd64 x86_64-openbsd -openbsd-arm arm-openbsd -openbsd-arm64 aarch64-openbsd -openbsd-armeb armeb-openbsd -openbsd-avr32 avr32-openbsd -openbsd-hppa hppa-openbsd -openbsd-i386 i386-openbsd -openbsd-ia64 ia64-openbsd -openbsd-m32r m32r-openbsd -openbsd-m68k m68k-openbsd -openbsd-mips mips-openbsd -openbsd-mipsel mipsel-openbsd -openbsd-powerpc powerpc-openbsd -openbsd-ppc64 powerpc64-openbsd -openbsd-s390 s390-openbsd -openbsd-s390x s390x-openbsd -openbsd-sh3 sh3-openbsd -openbsd-sh3eb sh3eb-openbsd -openbsd-sh4 sh4-openbsd -openbsd-sh4eb sh4eb-openbsd -openbsd-sparc sparc-openbsd -openbsd-sparc64 sparc64-openbsd -powerpc powerpc-linux-gnu -powerpcspe powerpc-linux-gnuspe -ppc64 powerpc64-linux-gnu -s390 s390-linux-gnu -s390x s390x-linux-gnu -sh3 sh3-linux-gnu -sh3eb sh3eb-linux-gnu -sh4 sh4-linux-gnu -sh4eb sh4eb-linux-gnu -solaris-alpha alpha-solaris -solaris-amd64 x86_64-solaris -solaris-arm arm-solaris -solaris-arm64 aarch64-solaris -solaris-armeb armeb-solaris -solaris-avr32 avr32-solaris -solaris-hppa hppa-solaris -solaris-i386 i386-solaris -solaris-ia64 ia64-solaris -solaris-m32r m32r-solaris -solaris-m68k m68k-solaris -solaris-mips mips-solaris -solaris-mipsel mipsel-solaris -solaris-powerpc powerpc-solaris -solaris-ppc64 powerpc64-solaris -solaris-s390 s390-solaris -solaris-s390x s390x-solaris -solaris-sh3 sh3-solaris -solaris-sh3eb sh3eb-solaris -solaris-sh4 sh4-solaris -solaris-sh4eb sh4eb-solaris -solaris-sparc sparc-solaris -solaris-sparc64 sparc64-solaris -sparc sparc-linux-gnu -sparc64 sparc64-linux-gnu -uclibc-linux-alpha alpha-linux-uclibc -uclibc-linux-amd64 x86_64-linux-uclibc -uclibc-linux-arm arm-linux-uclibc -uclibc-linux-arm64 aarch64-linux-uclibc -uclibc-linux-armeb armeb-linux-uclibc -uclibc-linux-armel arm-linux-uclibceabi -uclibc-linux-avr32 avr32-linux-uclibc -uclibc-linux-hppa hppa-linux-uclibc -uclibc-linux-i386 i386-linux-uclibc -uclibc-linux-ia64 ia64-linux-uclibc -uclibc-linux-m32r m32r-linux-uclibc -uclibc-linux-m68k m68k-linux-uclibc -uclibc-linux-mips mips-linux-uclibc -uclibc-linux-mipsel mipsel-linux-uclibc -uclibc-linux-powerpc powerpc-linux-uclibc -uclibc-linux-ppc64 powerpc64-linux-uclibc -uclibc-linux-s390 s390-linux-uclibc -uclibc-linux-s390x s390x-linux-uclibc -uclibc-linux-sh3 sh3-linux-uclibc -uclibc-linux-sh3eb sh3eb-linux-uclibc -uclibc-linux-sh4 sh4-linux-uclibc -uclibc-linux-sh4eb sh4eb-linux-uclibc -uclibc-linux-sparc sparc-linux-uclibc -uclibc-linux-sparc64 sparc64-linux-uclibc -uclinux-alpha alpha-uclinux-uclibc -uclinux-amd64 x86_64-uclinux-uclibc -uclinux-arm arm-uclinux-uclibc -uclinux-arm64 aarch64-uclinux-uclibc -uclinux-armeb armeb-uclinux-uclibc -uclinux-armel arm-uclinux-uclibceabi -uclinux-avr32 avr32-uclinux-uclibc -uclinux-hppa hppa-uclinux-uclibc -uclinux-i386 i386-uclinux-uclibc -uclinux-ia64 ia64-uclinux-uclibc -uclinux-m32r m32r-uclinux-uclibc -uclinux-m68k m68k-uclinux-uclibc -uclinux-mips mips-uclinux-uclibc -uclinux-mipsel mipsel-uclinux-uclibc -uclinux-powerpc powerpc-uclinux-uclibc -uclinux-ppc64 powerpc64-uclinux-uclibc -uclinux-s390 s390-uclinux-uclibc -uclinux-s390x s390x-uclinux-uclibc -uclinux-sh3 sh3-uclinux-uclibc -uclinux-sh3eb sh3eb-uclinux-uclibc -uclinux-sh4 sh4-uclinux-uclibc -uclinux-sh4eb sh4eb-uclinux-uclibc -uclinux-sparc sparc-uclinux-uclibc -uclinux-sparc64 sparc64-uclinux-uclibc -x32 x86_64-linux-gnux32 diff --git a/data/common/multiarch-dirs b/data/common/multiarch-dirs new file mode 100644 index 0000000..d53d9cc --- /dev/null +++ b/data/common/multiarch-dirs @@ -0,0 +1,290 @@ +# List of "Multiarch dirs" relationships as provided by +# dpkg-architecture - arch -> dir mapping +# Last updated: 2012-06-14 +# With: Debian dpkg-architecture version 1.16.4.2. +# This file was auto-generated by private/refresh-archs + +alpha alpha-linux-gnu +amd64 x86_64-linux-gnu +arm arm-linux-gnu +arm64 aarch64-linux-gnu +armeb armeb-linux-gnu +armel arm-linux-gnueabi +armhf arm-linux-gnueabihf +avr32 avr32-linux-gnu +darwin-alpha alpha-darwin +darwin-amd64 x86_64-darwin +darwin-arm arm-darwin +darwin-arm64 aarch64-darwin +darwin-armeb armeb-darwin +darwin-avr32 avr32-darwin +darwin-hppa hppa-darwin +darwin-i386 i386-darwin +darwin-ia64 ia64-darwin +darwin-m32r m32r-darwin +darwin-m68k m68k-darwin +darwin-mips mips-darwin +darwin-mipsel mipsel-darwin +darwin-powerpc powerpc-darwin +darwin-ppc64 powerpc64-darwin +darwin-s390 s390-darwin +darwin-s390x s390x-darwin +darwin-sh3 sh3-darwin +darwin-sh3eb sh3eb-darwin +darwin-sh4 sh4-darwin +darwin-sh4eb sh4eb-darwin +darwin-sparc sparc-darwin +darwin-sparc64 sparc64-darwin +freebsd-alpha alpha-freebsd +freebsd-amd64 x86_64-freebsd +freebsd-arm arm-freebsd +freebsd-arm64 aarch64-freebsd +freebsd-armeb armeb-freebsd +freebsd-avr32 avr32-freebsd +freebsd-hppa hppa-freebsd +freebsd-i386 i386-freebsd +freebsd-ia64 ia64-freebsd +freebsd-m32r m32r-freebsd +freebsd-m68k m68k-freebsd +freebsd-mips mips-freebsd +freebsd-mipsel mipsel-freebsd +freebsd-powerpc powerpc-freebsd +freebsd-ppc64 powerpc64-freebsd +freebsd-s390 s390-freebsd +freebsd-s390x s390x-freebsd +freebsd-sh3 sh3-freebsd +freebsd-sh3eb sh3eb-freebsd +freebsd-sh4 sh4-freebsd +freebsd-sh4eb sh4eb-freebsd +freebsd-sparc sparc-freebsd +freebsd-sparc64 sparc64-freebsd +hppa hppa-linux-gnu +hurd-alpha alpha-gnu +hurd-amd64 x86_64-gnu +hurd-arm arm-gnu +hurd-arm64 aarch64-gnu +hurd-armeb armeb-gnu +hurd-avr32 avr32-gnu +hurd-hppa hppa-gnu +hurd-i386 i386-gnu +hurd-ia64 ia64-gnu +hurd-m32r m32r-gnu +hurd-m68k m68k-gnu +hurd-mips mips-gnu +hurd-mipsel mipsel-gnu +hurd-powerpc powerpc-gnu +hurd-ppc64 powerpc64-gnu +hurd-s390 s390-gnu +hurd-s390x s390x-gnu +hurd-sh3 sh3-gnu +hurd-sh3eb sh3eb-gnu +hurd-sh4 sh4-gnu +hurd-sh4eb sh4eb-gnu +hurd-sparc sparc-gnu +hurd-sparc64 sparc64-gnu +i386 i386-linux-gnu +ia64 ia64-linux-gnu +kfreebsd-alpha alpha-kfreebsd-gnu +kfreebsd-amd64 x86_64-kfreebsd-gnu +kfreebsd-arm arm-kfreebsd-gnu +kfreebsd-arm64 aarch64-kfreebsd-gnu +kfreebsd-armeb armeb-kfreebsd-gnu +kfreebsd-avr32 avr32-kfreebsd-gnu +kfreebsd-hppa hppa-kfreebsd-gnu +kfreebsd-i386 i386-kfreebsd-gnu +kfreebsd-ia64 ia64-kfreebsd-gnu +kfreebsd-m32r m32r-kfreebsd-gnu +kfreebsd-m68k m68k-kfreebsd-gnu +kfreebsd-mips mips-kfreebsd-gnu +kfreebsd-mipsel mipsel-kfreebsd-gnu +kfreebsd-powerpc powerpc-kfreebsd-gnu +kfreebsd-ppc64 powerpc64-kfreebsd-gnu +kfreebsd-s390 s390-kfreebsd-gnu +kfreebsd-s390x s390x-kfreebsd-gnu +kfreebsd-sh3 sh3-kfreebsd-gnu +kfreebsd-sh3eb sh3eb-kfreebsd-gnu +kfreebsd-sh4 sh4-kfreebsd-gnu +kfreebsd-sh4eb sh4eb-kfreebsd-gnu +kfreebsd-sparc sparc-kfreebsd-gnu +kfreebsd-sparc64 sparc64-kfreebsd-gnu +knetbsd-alpha alpha-knetbsd-gnu +knetbsd-amd64 x86_64-knetbsd-gnu +knetbsd-arm arm-knetbsd-gnu +knetbsd-arm64 aarch64-knetbsd-gnu +knetbsd-armeb armeb-knetbsd-gnu +knetbsd-avr32 avr32-knetbsd-gnu +knetbsd-hppa hppa-knetbsd-gnu +knetbsd-i386 i386-knetbsd-gnu +knetbsd-ia64 ia64-knetbsd-gnu +knetbsd-m32r m32r-knetbsd-gnu +knetbsd-m68k m68k-knetbsd-gnu +knetbsd-mips mips-knetbsd-gnu +knetbsd-mipsel mipsel-knetbsd-gnu +knetbsd-powerpc powerpc-knetbsd-gnu +knetbsd-ppc64 powerpc64-knetbsd-gnu +knetbsd-s390 s390-knetbsd-gnu +knetbsd-s390x s390x-knetbsd-gnu +knetbsd-sh3 sh3-knetbsd-gnu +knetbsd-sh3eb sh3eb-knetbsd-gnu +knetbsd-sh4 sh4-knetbsd-gnu +knetbsd-sh4eb sh4eb-knetbsd-gnu +knetbsd-sparc sparc-knetbsd-gnu +knetbsd-sparc64 sparc64-knetbsd-gnu +kopensolaris-alpha alpha-kopensolaris-gnu +kopensolaris-amd64 x86_64-kopensolaris-gnu +kopensolaris-arm arm-kopensolaris-gnu +kopensolaris-arm64 aarch64-kopensolaris-gnu +kopensolaris-armeb armeb-kopensolaris-gnu +kopensolaris-avr32 avr32-kopensolaris-gnu +kopensolaris-hppa hppa-kopensolaris-gnu +kopensolaris-i386 i386-kopensolaris-gnu +kopensolaris-ia64 ia64-kopensolaris-gnu +kopensolaris-m32r m32r-kopensolaris-gnu +kopensolaris-m68k m68k-kopensolaris-gnu +kopensolaris-mips mips-kopensolaris-gnu +kopensolaris-mipsel mipsel-kopensolaris-gnu +kopensolaris-powerpc powerpc-kopensolaris-gnu +kopensolaris-ppc64 powerpc64-kopensolaris-gnu +kopensolaris-s390 s390-kopensolaris-gnu +kopensolaris-s390x s390x-kopensolaris-gnu +kopensolaris-sh3 sh3-kopensolaris-gnu +kopensolaris-sh3eb sh3eb-kopensolaris-gnu +kopensolaris-sh4 sh4-kopensolaris-gnu +kopensolaris-sh4eb sh4eb-kopensolaris-gnu +kopensolaris-sparc sparc-kopensolaris-gnu +kopensolaris-sparc64 sparc64-kopensolaris-gnu +lpia i386-linux-gnulp +m32r m32r-linux-gnu +m68k m68k-linux-gnu +mint-m68k m68k-mint +mips mips-linux-gnu +mipsel mipsel-linux-gnu +netbsd-alpha alpha-netbsd +netbsd-amd64 x86_64-netbsd +netbsd-arm arm-netbsd +netbsd-arm64 aarch64-netbsd +netbsd-armeb armeb-netbsd +netbsd-avr32 avr32-netbsd +netbsd-hppa hppa-netbsd +netbsd-i386 i386-netbsd +netbsd-ia64 ia64-netbsd +netbsd-m32r m32r-netbsd +netbsd-m68k m68k-netbsd +netbsd-mips mips-netbsd +netbsd-mipsel mipsel-netbsd +netbsd-powerpc powerpc-netbsd +netbsd-ppc64 powerpc64-netbsd +netbsd-s390 s390-netbsd +netbsd-s390x s390x-netbsd +netbsd-sh3 sh3-netbsd +netbsd-sh3eb sh3eb-netbsd +netbsd-sh4 sh4-netbsd +netbsd-sh4eb sh4eb-netbsd +netbsd-sparc sparc-netbsd +netbsd-sparc64 sparc64-netbsd +openbsd-alpha alpha-openbsd +openbsd-amd64 x86_64-openbsd +openbsd-arm arm-openbsd +openbsd-arm64 aarch64-openbsd +openbsd-armeb armeb-openbsd +openbsd-avr32 avr32-openbsd +openbsd-hppa hppa-openbsd +openbsd-i386 i386-openbsd +openbsd-ia64 ia64-openbsd +openbsd-m32r m32r-openbsd +openbsd-m68k m68k-openbsd +openbsd-mips mips-openbsd +openbsd-mipsel mipsel-openbsd +openbsd-powerpc powerpc-openbsd +openbsd-ppc64 powerpc64-openbsd +openbsd-s390 s390-openbsd +openbsd-s390x s390x-openbsd +openbsd-sh3 sh3-openbsd +openbsd-sh3eb sh3eb-openbsd +openbsd-sh4 sh4-openbsd +openbsd-sh4eb sh4eb-openbsd +openbsd-sparc sparc-openbsd +openbsd-sparc64 sparc64-openbsd +powerpc powerpc-linux-gnu +powerpcspe powerpc-linux-gnuspe +ppc64 powerpc64-linux-gnu +s390 s390-linux-gnu +s390x s390x-linux-gnu +sh3 sh3-linux-gnu +sh3eb sh3eb-linux-gnu +sh4 sh4-linux-gnu +sh4eb sh4eb-linux-gnu +solaris-alpha alpha-solaris +solaris-amd64 x86_64-solaris +solaris-arm arm-solaris +solaris-arm64 aarch64-solaris +solaris-armeb armeb-solaris +solaris-avr32 avr32-solaris +solaris-hppa hppa-solaris +solaris-i386 i386-solaris +solaris-ia64 ia64-solaris +solaris-m32r m32r-solaris +solaris-m68k m68k-solaris +solaris-mips mips-solaris +solaris-mipsel mipsel-solaris +solaris-powerpc powerpc-solaris +solaris-ppc64 powerpc64-solaris +solaris-s390 s390-solaris +solaris-s390x s390x-solaris +solaris-sh3 sh3-solaris +solaris-sh3eb sh3eb-solaris +solaris-sh4 sh4-solaris +solaris-sh4eb sh4eb-solaris +solaris-sparc sparc-solaris +solaris-sparc64 sparc64-solaris +sparc sparc-linux-gnu +sparc64 sparc64-linux-gnu +uclibc-linux-alpha alpha-linux-uclibc +uclibc-linux-amd64 x86_64-linux-uclibc +uclibc-linux-arm arm-linux-uclibc +uclibc-linux-arm64 aarch64-linux-uclibc +uclibc-linux-armeb armeb-linux-uclibc +uclibc-linux-armel arm-linux-uclibceabi +uclibc-linux-avr32 avr32-linux-uclibc +uclibc-linux-hppa hppa-linux-uclibc +uclibc-linux-i386 i386-linux-uclibc +uclibc-linux-ia64 ia64-linux-uclibc +uclibc-linux-m32r m32r-linux-uclibc +uclibc-linux-m68k m68k-linux-uclibc +uclibc-linux-mips mips-linux-uclibc +uclibc-linux-mipsel mipsel-linux-uclibc +uclibc-linux-powerpc powerpc-linux-uclibc +uclibc-linux-ppc64 powerpc64-linux-uclibc +uclibc-linux-s390 s390-linux-uclibc +uclibc-linux-s390x s390x-linux-uclibc +uclibc-linux-sh3 sh3-linux-uclibc +uclibc-linux-sh3eb sh3eb-linux-uclibc +uclibc-linux-sh4 sh4-linux-uclibc +uclibc-linux-sh4eb sh4eb-linux-uclibc +uclibc-linux-sparc sparc-linux-uclibc +uclibc-linux-sparc64 sparc64-linux-uclibc +uclinux-alpha alpha-uclinux-uclibc +uclinux-amd64 x86_64-uclinux-uclibc +uclinux-arm arm-uclinux-uclibc +uclinux-arm64 aarch64-uclinux-uclibc +uclinux-armeb armeb-uclinux-uclibc +uclinux-armel arm-uclinux-uclibceabi +uclinux-avr32 avr32-uclinux-uclibc +uclinux-hppa hppa-uclinux-uclibc +uclinux-i386 i386-uclinux-uclibc +uclinux-ia64 ia64-uclinux-uclibc +uclinux-m32r m32r-uclinux-uclibc +uclinux-m68k m68k-uclinux-uclibc +uclinux-mips mips-uclinux-uclibc +uclinux-mipsel mipsel-uclinux-uclibc +uclinux-powerpc powerpc-uclinux-uclibc +uclinux-ppc64 powerpc64-uclinux-uclibc +uclinux-s390 s390-uclinux-uclibc +uclinux-s390x s390x-uclinux-uclibc +uclinux-sh3 sh3-uclinux-uclibc +uclinux-sh3eb sh3eb-uclinux-uclibc +uclinux-sh4 sh4-uclinux-uclibc +uclinux-sh4eb sh4eb-uclinux-uclibc +uclinux-sparc sparc-uclinux-uclibc +uclinux-sparc64 sparc64-uclinux-uclibc +x32 x86_64-linux-gnux32 diff --git a/private/refresh-archs b/private/refresh-archs index ed6292a..2a5f68b 100755 --- a/private/refresh-archs +++ b/private/refresh-archs @@ -57,7 +57,7 @@ my %files = (); # add_data_file ( - 'filename' => 'binaries/multiarch-dirs', + 'filename' => 'common/multiarch-dirs', 'line-spec' => ['@DEB_HOST_ARCH@ @DEB_HOST_MULTIARCH@'], 'header' => <<EOF # List of "Multiarch dirs" relationships as provided by -- 1.7.10.4
From 1fc59d9289a117f9f4bcf340dcb6be123dba5201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastien=20ROUCARI=C3=88S?= <roucaries.bast...@gmail.com> Date: Tue, 20 Aug 2013 21:47:25 +0200 Subject: [PATCH 2/2] Implement some simple testing of pkg-config file Test if a arch indep file contains a multi-arch path --- checks/files.desc | 7 +++++ checks/files.pm | 17 ++++++++++++ t/tests/files-pkgconfig/debian/Makefile | 23 ++++++++++++++++ t/tests/files-pkgconfig/debian/debian/control.in | 28 ++++++++++++++++++++ .../debian/debian/pkgconfig-all.install | 1 + .../debian/debian/pkgconfig-any.install | 1 + .../debian/generated/arch-good.pc.in | 6 +++++ .../debian/generated/indep-include-arch.pc.in | 6 +++++ t/tests/files-pkgconfig/debian/indep-good.pc | 6 +++++ t/tests/files-pkgconfig/desc | 7 +++++ t/tests/files-pkgconfig/tags | 1 + 11 files changed, 103 insertions(+) create mode 100644 t/tests/files-pkgconfig/debian/Makefile create mode 100644 t/tests/files-pkgconfig/debian/debian/control.in create mode 100644 t/tests/files-pkgconfig/debian/debian/pkgconfig-all.install create mode 100644 t/tests/files-pkgconfig/debian/debian/pkgconfig-any.install create mode 100644 t/tests/files-pkgconfig/debian/generated/arch-good.pc.in create mode 100644 t/tests/files-pkgconfig/debian/generated/indep-include-arch.pc.in create mode 100644 t/tests/files-pkgconfig/debian/indep-good.pc create mode 100644 t/tests/files-pkgconfig/desc create mode 100644 t/tests/files-pkgconfig/tags diff --git a/checks/files.desc b/checks/files.desc index 55f94fd..e43ced4 100644 --- a/checks/files.desc +++ b/checks/files.desc @@ -1275,6 +1275,13 @@ Info: The gzip file contains a timestamp that will differ between . This can usually be fixed by passing -n to gzip. +Tag: pkgconfig-multiarch-wrong-dir +Severity: serious +Certainty: certain +Info: The arch all pkg-config file contains reference to an multi-arch path. + . + This can be usually be fixed by moving this file to a multi-arch path. + Tag: dir-or-file-in-home Severity: serious Certainty: certain diff --git a/checks/files.pm b/checks/files.pm index a080e56..f736b40 100644 --- a/checks/files.pm +++ b/checks/files.pm @@ -33,6 +33,9 @@ my $FONT_PACKAGES = Lintian::Data->new ('files/fonts', qr/\s++/); my $TRIPLETS = Lintian::Data->new ('files/triplets', qr/\s++/); my $LOCALE_CODES = Lintian::Data->new ('files/locale-codes', qr/\s++/); my $INCORRECT_LOCALE_CODES = Lintian::Data->new ('files/incorrect-locale-codes', qr/\s++/); +my $MULTIARCH_DIRS = Lintian::Data->new('common/multiarch-dirs', qr/\s++/, + sub { return { 'dir' => $_[1] , 'match' => qr/$_[1]/ } }); + # A list of known packaged Javascript libraries # and the packages providing them @@ -435,6 +438,20 @@ foreach my $file ($info->sorted_index) { } } + # ---------------- arch-indep pkconfig + elsif($file =~ m,^usr/(?:lib|share)/pkgconfig/[^/]+\.pc$,) { + open(my $fd, '<', $info->unpacked($file)); + LINE: while (my $line = <$fd>) { + # check if pkgconfig file include path point to arch specific dir + foreach $arch ($MULTIARCH_DIRS->all()) { + if ($line =~ ($MULTIARCH_DIRS->value("$arch"))->{'match'}) { + tag 'pkgconfig-multiarch-wrong-dir',$file; + last LINE; + } + } + } + close($fd); + } #----------------- /usr/X11R6/ elsif ($file =~ m,^usr/X11R6/, and diff --git a/t/tests/files-pkgconfig/debian/Makefile b/t/tests/files-pkgconfig/debian/Makefile new file mode 100644 index 0000000..c357585 --- /dev/null +++ b/t/tests/files-pkgconfig/debian/Makefile @@ -0,0 +1,23 @@ + +# Since dpkg in stable (Squeeze) does not support MULTIARCH we cannot use +# dpkg-architecture -qDEB_HOST_MULTIARCH +# Therefore this test is hardcoded to x86 and amd64 + +ARCH=$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +all: + find generated -name '*.pc.in' -exec sh -c 'echo "build" {} && sed s/\$$\(ARCH\)/$(ARCH)/ {} > `echo {} | sed s/\.pc\.in$$/\.pc/g`' \; + +install: + # Install it once under the wrong dir + install -d $(DESTDIR)/usr/lib/pkgconfig/ + install -d $(DESTDIR)/usr/lib/$(ARCH)/pkgconfig/ +# install -m 644 arch-*.pc $(DESTDIR)/usr/lib/$(ARCH)/pkgconfig/ + install -m 644 indep-*.pc $(DESTDIR)/usr/lib/pkgconfig/ + install -m 644 generated/arch-*.pc $(DESTDIR)/usr/lib/$(ARCH)/pkgconfig/ + install -m 644 generated/indep-*.pc $(DESTDIR)/usr/lib/pkgconfig/ + +clean distclean: + rm -f generated/*.pc + +check test: diff --git a/t/tests/files-pkgconfig/debian/debian/control.in b/t/tests/files-pkgconfig/debian/debian/control.in new file mode 100644 index 0000000..2cbb170 --- /dev/null +++ b/t/tests/files-pkgconfig/debian/debian/control.in @@ -0,0 +1,28 @@ +Source: {$srcpkg} +Priority: extra +Section: devel +Maintainer: {$author} +Standards-Version: {$standards_version} +Build-Depends: debhelper (>= 9) + +Package: pkgconfig-all +Architecture: all +Depends: $\{misc:Depends\}, $\{shlib:Depends\} +Description: Contains test file for pkgconfig arch all + This is a test package designed to exercise some feature or tag of + Lintian for arch all pkgconfig files. + 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. + +Package: pkgconfig-any +Architecture: any +Depends: $\{misc:Depends\}, $\{shlib:Depends\} +Description: Contains test file for pkgconfig arch any + This is a test package designed to exercise some feature or tag of + Lintian for arch any pkgconfig files. + 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/tests/files-pkgconfig/debian/debian/pkgconfig-all.install b/t/tests/files-pkgconfig/debian/debian/pkgconfig-all.install new file mode 100644 index 0000000..038cfa7 --- /dev/null +++ b/t/tests/files-pkgconfig/debian/debian/pkgconfig-all.install @@ -0,0 +1 @@ +usr/lib/pkgconfig/*.pc \ No newline at end of file diff --git a/t/tests/files-pkgconfig/debian/debian/pkgconfig-any.install b/t/tests/files-pkgconfig/debian/debian/pkgconfig-any.install new file mode 100644 index 0000000..a6de3b7 --- /dev/null +++ b/t/tests/files-pkgconfig/debian/debian/pkgconfig-any.install @@ -0,0 +1 @@ +usr/lib/*-*-*/pkgconfig/*.pc \ No newline at end of file diff --git a/t/tests/files-pkgconfig/debian/generated/arch-good.pc.in b/t/tests/files-pkgconfig/debian/generated/arch-good.pc.in new file mode 100644 index 0000000..7c3bd9e --- /dev/null +++ b/t/tests/files-pkgconfig/debian/generated/arch-good.pc.in @@ -0,0 +1,6 @@ +Name: indep-good +Description: A library good +Requires: +Version: 3.1.3 +Libs: +Cflags: -I/usr/include/indep-good diff --git a/t/tests/files-pkgconfig/debian/generated/indep-include-arch.pc.in b/t/tests/files-pkgconfig/debian/generated/indep-include-arch.pc.in new file mode 100644 index 0000000..9d64d79 --- /dev/null +++ b/t/tests/files-pkgconfig/debian/generated/indep-include-arch.pc.in @@ -0,0 +1,6 @@ +Name: indep-include-arch +Description: A library that include some arch dir +Requires: +Version: 3.1.3 +Libs: +Cflags: -I/usr/include/$(ARCH)/indep-include-arch diff --git a/t/tests/files-pkgconfig/debian/indep-good.pc b/t/tests/files-pkgconfig/debian/indep-good.pc new file mode 100644 index 0000000..7c3bd9e --- /dev/null +++ b/t/tests/files-pkgconfig/debian/indep-good.pc @@ -0,0 +1,6 @@ +Name: indep-good +Description: A library good +Requires: +Version: 3.1.3 +Libs: +Cflags: -I/usr/include/indep-good diff --git a/t/tests/files-pkgconfig/desc b/t/tests/files-pkgconfig/desc new file mode 100644 index 0000000..989b54b --- /dev/null +++ b/t/tests/files-pkgconfig/desc @@ -0,0 +1,7 @@ +Testname: files-pkgconfig +Sequence: 6000 +Version: 1.0 +Description: Check for detection of pkgconfig problem +Test-For: + pkgconfig-multiarch-wrong-dir + diff --git a/t/tests/files-pkgconfig/tags b/t/tests/files-pkgconfig/tags new file mode 100644 index 0000000..cb33976 --- /dev/null +++ b/t/tests/files-pkgconfig/tags @@ -0,0 +1 @@ +E: pkgconfig-all: pkgconfig-multiarch-wrong-dir usr/lib/pkgconfig/indep-include-arch.pc -- 1.7.10.4