[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Potato now stable



On Mon, Aug 14, 2000 at 10:12:38PM -0700, Joey Hess wrote:
> The problem, as I see it, is that task packages declare a strong
> dependency where often none really exists. After all, if it were a real
> dependancy, we'd not be having this discussion, since aj/james/whoever's
> course of action then would have been a lot more clear: remove both
> packages, or fix one. Thus, it still seems to me that allowing that to
> be weakened to a reccommends would be the ideal solution.

What I'd like to happen is basically be able to remove the package,
and just have the task automatically act as though that package had
never existed. Not complain in dselect about it, not worry people when
Apt gives you a warning, not do anything.

One way of doing this would be to include the information in the package's
entry in the Packages file, a la:

	Package: foo
	Version: 2.71828
	Depends: libc6
	Task: metasyntactical-packages

If the package is removed from the distribution, it's implicitly no longer
in the task.

The problem with doing it this way, is you can't easily make a
"aj-favourites" task separate from the distribution that includes things
from the distribution. The only way around this I can think of is to
make a task-aj-favourites package that has a Task: aj-favourites field
and Depends: on the packages from the appropriate distribution. This may
be inelegant. It's not a problem within Debian, though (but the current
way of doing things is).

Another way of doing might be to generate task packages as we have now
as part of dinstall, and install them into the archive. Another way
would be to not do this as part of dinstall, but on an autobuilder. This
wouldn't be as effective if there's a security update that needs to get
out immediately though.

> Compare with task-games. I have put a *lot* of thought into what goes into
> that package. If it did not have one single maintainer, with a coherent
> vision, it would be a random set of games, probably eventually growing 
> to include a large portion of the games in debian. Which would defeat
> its purpose.

How we make this available to apt, or frontends doesn't have to influence
how we actually maintain it. Consider, for example:

    #!/usr/bin/perl -w

    my %pkgtasks = (); # $pkgtasks{"netbase"} = [ "networking" ]; eg
    while(<STDIN>) {
        chomp;
        next unless m/^(\S+)\s+(\S+)$/;   # <task> <package>
        push @{$pkgtasks{$2}}, $1;
    }

    while(<>) {
        chomp;
        if (m/^Package: (\S+)$/) {
            my $cpkg = $1;
            print "Package: $cpkg\n";
            print "Task: " . join(", ", @{$pkgtasks{$cpkg}}) . "\n"
                if (defined $pkgtasks{$cpkg});
        } elsif (m/^Task:.*$/) {
            # discard
        } else {
            print "$_\n";
        }
    }

Used to add Task: fields to a Packages file, something like:

    $ cat tasks
    networking netbase
    metasyntactical-packages foo
    $ ./add-task /var/lib/dpkg/available < tasks | less

Cheers,
aj

-- 
Anthony Towns <aj@humbug.org.au> <http://azure.humbug.org.au/~aj/>
I don't speak for anyone save myself. GPG signed mail preferred.

  ``We reject: kings, presidents, and voting.
                 We believe in: rough consensus and working code.''
                                      -- Dave Clark

Attachment: pgpOr0dEo6vmb.pgp
Description: PGP signature


Reply to: