Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
What results in the Task headers in 'curl http://ftp.utexas.edu/ubuntu/dists/precise/main/binary-amd64/Packages.gz | zgrep Task:'?
Files in /usr/share/tasksel/* and /usr/local/share/tasksel/* get picked up by tasksel and have entries following format:
# grep dns-server -A7 /usr/share/tasksel/ubuntu-tasks.desc
Task: dns-server
Section: server
Description: DNS server
Selects the BIND DNS server and its documentation.
Key:
bind9
Packages: task-fields
The Packages.gz files in the repos have Task:* headers for each package.
They match the key in the tasksel entry above, but I'm not sure how they are generated.
curl http://archive.ubuntu.com/ubuntu/dists/precise/main/binary-amd64/Packages.gz 2>/dev/null| zgrep -B25 dns-server | grep Package\\\|Task.*dns
Package: bind9
Task: dns-server
Package: bind9-doc
Task: dns-server
Package: bind9utils
Task: dns-server
Package: libcap2
Task: ubuntu-desktop, print-server, dns-server, samba-server, ubuntu-usb, lamp-server, kubuntu-desktop, kubuntu-active-desktop, kubuntu-active, edubuntu-desktop, edubuntu-usb, xubuntu-desktop, mythbuntu-frontend, mythbuntu-frontend, mythbuntu-desktop, mythbuntu-backend-slave, mythbuntu-backend-slave, mythbuntu-backend-master, mythbuntu-backend-master, lubuntu-core, ubuntustudio-desktop
They don't seem to be in the indices that are used by apt-ftparchive to generate the Packages.gz index....
curl http://archive.ubuntu.com/ubuntu/indices/override.precise.main 2>/dev/null| grep dns-server
Where is the mapping from task to a list of packages come from, and how does it get included in the generation of Packages.gz?
Owner

hh commented Jun 7, 2012

<hippiehacker> cjwatson: https://gist.github.com/2889140 is my attempt to
               understand where the dns-server task is defined before the
               generation of Packages.gz with apt-ftparchive  [09:38]
<cjwatson> hippiehacker: bzr co
           lp:~ubuntu-core-dev/ubuntu-seeds/ubuntu.quantal, look at
           ubuntu.quantal/dns-server
<cjwatson> that's the ultimate source, not dependency-expanded
<cjwatson> germinate (see package) is responsible for expanding out
           dependencies in the seeds  [09:42]
<cjwatson>
           http://bazaar.launchpad.net/+branch/launchpad/files/head:/lib/lp/archivepublisher/scripts/generate_extra_overrides.py
           takes the output and turns it into extra overrides
<cjwatson> That's run as part of the Launchpad publisher and isn't something
           you can run standalone, but the mapping from germinate output files
           to Task fields is merely tedious rather than anything magic  [09:43]
<hippiehacker> quite the process  [09:44]
<cjwatson> It's designed to minimise the number of manual changes we have to
           make as packages' dependencies shift around
<cjwatson> Which is the sort of thing you care about rather more at large
           scale
<hippiehacker> what are your thoughts on where Debian went with task-*
               meta-packages rather than updating the Packages.gz in wheezy
               and beyond?  [09:46]
<hippiehacker> it likely fixes the auto-removal problem, as the meta-packages
               bascially just have dependencies (I think)  [09:47]
<hippiehacker> http://wiki.debian.org/tasksel#Sample_use : "Note that in
               DebianWheezy and beyond tasksel provides and uses dummy
               packages (known as meta packages) to pull required
               dependencies."  [09:49]
<cjwatson> hippiehacker: I haven't looked into that much as yet; it's a
           reversion to an earlier approach, basically  [09:50]
*** cking (~king@cpc19-craw6-2-0-cust5.croy.cable.virginmedia.com) has joined
    channel #ubuntu-devel
<cjwatson> We could do much the same with our existing metapackages,
           presumably
<cjwatson> Well, in those cases where they exist, which isn't all
Owner

hh commented Jun 7, 2012

<hippiehacker> If a wanted to allow a closer-to-end-user to create a list of
               packages, similar to a task would a good approach be to
               streamline the dynamic generation of a new metapackage.deb
               based on a tasklike name and a list of packages?  [09:52]

Seems like we could take a task-name + a list of packages and just create a metapackage that would help us avoid using tasksel directly hence avoiding https://bugs.launchpad.net/ubuntu/+source/tasksel/+bug/574287

https://help.ubuntu.com/community/MetaPackages#Creating_Metapackages

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment