Man Linux: Main Page and Category List

NAME

       grip-overridearch.pl - sanitise Arch: all packages that depend on Arch:
       any

Synopsis

        grip-overridearch.pl -s|--suite STRING -b|--base-path PATH [--grip-name STRING]
        grip-overridearch.pl -?|-h|--help|--version

        Commands:
        -s|--suite STRING:        Name of the distribution to override [required]
        -b|--base-path PATH:      path to the top level repository directory [required]

        -?|-h|--help|--version:   print this help message and exit

        Options:
          --grip-name STRING:     alternative name for the grip repository

       The script expects to find a suitably formatted architecture-override
       file in the repository configuration:

        $base_path/$grip_name/conf/override.architectures

Description

       The list of packages and "broken" architectures needs to be identified
       the hard way until such time as a resolution is found for the problem
       outlined on debian-devel:
       <http://lists.debian.org/debian-devel/2009/01/msg002.html>

       This script will use a file in the repository conf/ directory which
       looks like an override file but is not handled by reprepro itself.
       Quoting dato:
       <http://lists.debian.org/debian-devel/2009/01/msg0.html>

        ... the only use for "Architecture: all [i386 amd64]" or
        "Install-Architecture: i368 amd64" would be as a hint to dak (and other
        tools) that the package is known not to be installable anywhere else,
        and hence should not be put in other Packages.gz files. That's *all*
        that matters AIUI.

       Until the tools can be adapted to use such syntax, this script removes
       the specified listings from the relevant Packages files by calling the
       relevant remove option for the tools, after the event.

       So if $package_name represents the name of the binary package that is
       Architecture: all but which depends on a package that only exists on
       selected architectures, the format for the override file is:

        Package: $package_name
        Architecture: all [i386 amd64]

       e.g.

        Package: debian-edu-profile-udeb
        Architecture: all [i386 amd64]

       This happens because debian-edu-profile-udeb depends on dmidecode-udeb
       <http://packages.debian.org/sid/dmidecode-udeb> which in turn is only
       available on x86 architectures:

        $ reprepro -b /opt/reprepro/filter/ list unstable dmidecode-udeb
        u|sid|main|i386: dmidecode-udeb 2.9-1
        u|sid|main|amd64: dmidecode-udeb 2.9-1

       When edos-debcheck parses the Packages file, it finds that reprepro and
       other repository tools list debian-edu-profile-udeb in the Packages
       files for all supported architectures (like arm, armel, mips etc.) so
       it tries to satisfy the dependencies - and fails because dmidecode is
       not available. The solution is to remove the listing for the
       Architecture: all package from all Packages files that do not contain
       the necessary dependencies - identified by running edos-debcheck
       against the Packages files and adding packages to the override.arch
       file until edos-debcheck stops complaining.

       This is not peculiar to this package or even just udebs, it is also a
       problem with packages like acpi-support-base.

Removing all binaries

       It is also possible to remove all binaries for a specific package
       (leaving only the source and other binaries built from that source
       package) by specifying an empty list of allowed architectures:

        Package: lsb
        Architectures: all [ ]

       Note that the space is optional. This can be useful when the binary
       package with the same name as the source package has a lot of unwanted
       dependencies ("lsb" is a perfect example of this problem).

Copyright and Licence

        Copyright (C) 2007-2009  Neil Williams <codehelp@debian.org>

        This package 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 3 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, see <http://www.gnu.org/licenses/>.