Commit 81687d11 authored by Joey Hess's avatar Joey Hess

renamed Essential to Key to prevent confusion

implemented dropping of display of tasks missing Key packages
parent 73548763
$Id: TODO,v 1.9 2002/03/24 02:41:25 joeyh Rel $
$Id: TODO,v 1.10 2003/07/25 18:06:28 joeyh Exp $
- fix screen resize code (in dialogs, it doesn't work right)
- figure out how to properly install the i18n stuff
- show already installed tasks
- support for Essential: fields in task desc file. These make it work
better with partial archive subsets (CDs). The fields are already in the
files.
/* $Id: data.c,v 1.15 2001/11/22 17:53:48 tausq Rel $ */
/* $Id: data.c,v 1.16 2003/07/25 18:06:28 joeyh Exp $ */
/* data.c - encapsulates functions for reading a package listing like dpkg's available file
* Internally, packages are stored in a binary tree format to faciliate search operations
*/
......@@ -17,6 +17,7 @@
#define PACKAGEFIELD "Package: "
#define TASKFIELD "Task: "
#define KEYFIELD "Key:" /* multiline; no space necessary */
#define DEPENDSFIELD "Depends: "
#define RECOMMENDSFIELD "Recommends: "
#define SUGGESTSFIELD "Suggests: "
......@@ -325,10 +326,12 @@ void taskfile_read(char *fn, struct tasks_t *tasks, struct packages_t *pkgs,
* contained in Task fields in the Packages file.) */
FILE *f;
char buf[BUF_SIZE];
char *pkgname, *s;
char *task, *shortdesc, *longdesc, *section;
struct package_t *p;
struct task_t *t;
char *package;
int key_missing;
f = fopen(fn, "r");
if (f == NULL) PERROR(fn);
......@@ -340,11 +343,12 @@ void taskfile_read(char *fn, struct tasks_t *tasks, struct packages_t *pkgs,
shortdesc = longdesc = section = NULL;
task = STRDUP(FIELDDATA(buf, TASKFIELD));
VERIFY(task != NULL);
key_missing=0;
while (!feof(f)) {
fgets(buf, BUF_SIZE, f);
dontmakemethink:
/* after reading the Description:, we make actually have some more fields.
/* after reading the Description:, we may actually have some more fields.
* but the only way we might know this is if we've just read one of those
* fields. to ensure we don't miss it, we immediately goto the label above
* when we realise our mistake. a computer scientist would use lookahead
......@@ -372,12 +376,35 @@ dontmakemethink:
}
} while (buf[0] != '\n' && !feof(f));
break;
} else if (MATCHFIELD(buf, KEYFIELD)) {
do {
if (fgets(buf, BUF_SIZE, f) == 0)
break;
if (buf[0] != ' ') goto dontmakemethink;
CHOMP(buf);
pkgname=buf;
while(pkgname[0] == ' ')
pkgname++;
s=pkgname+strlen(pkgname)-1;
while(s[0] == ' ') {
s[0]='\0';
s--;
}
if (pkgname) {
if (! packages_find(pkgs, pkgname)) {
DPRINTF("task %s is missing required package %s\n", task, pkgname);
if (! showempties) {
key_missing=1;
}
}
}
} while (buf[0] != '\n' && !feof(f));
}
}
/* packages_readlist must be called before this function, so we can
* tell if any packages are in this task, and ignore it if none are. */
if (showempties || tasks_find(tasks, task)) {
* tell if any packages are in this task, and ignore it if none are */
if (showempties || (!key_missing && tasks_find(tasks, task))) {
/* This is a fake package to go with the task. I add the task-
* prefix to the package name to ensure that adding this fake
* package stomps on the toes of no real package. */
......@@ -404,7 +431,7 @@ dontmakemethink:
}
fclose(f);
}
void packages_readlist(struct tasks_t *tasks, struct packages_t *pkgs)
{
/* Populates internal data structures with information from an available
......
/* $Id: data.h,v 1.7 2001/05/23 17:39:54 joeyh Rel $ */
/* $Id: data.h,v 1.8 2003/07/25 18:06:28 joeyh Exp $ */
#ifndef _DATA_H
#define _DATA_H
......
......@@ -50,6 +50,9 @@ tasksel (1.26) unstable; urgency=low
chinese. doc-linux-zh-t went away.
- doincludes.pl and makedesc.pl use apt-cache dumpavail instead of
dselect available file, for more up-to-date information.
- Shortended the description of c-dev.
- Renamed Essential field to Key, to prevent confusion.
- Implemented dropping of tasks that are missing key packages.
-- Joey Hess <joeyh@debian.org> Wed, 19 Mar 2003 23:12:33 +0100
......
......@@ -85,7 +85,7 @@ sub processfile {
}
print OUT map { ucfirst($_).": ".$fields{$_}."\n" }
qw{task section description essential};
qw{task section description key};
print OUT "\n";
}
......
......@@ -4,7 +4,7 @@ lists of packages that they might use to perform the tasks, and grouping
information to make related sets of tasks appear together.
The file format is a rfc-822 style stanza, with fields named Task, Section,
Description (which should include an extended descrition), Essential, and
Description (which should include an extended descrition), Key, and
Packages. The Packages field should include the list of packages one per
line after it, indented by one space each, like so:
......@@ -17,11 +17,8 @@ Packages:
When the task is selected, any of those packages that are available will be
selected.
The Essential field is the same, but packages listed in it must be
available or the task should not be displayed at all. Items listed in the
Essential field must be re-listed in the Packages field, currently, until
the scripts that generate the overrides info are updated to know about this
new field.
The Key field is the same, but packages listed in it must be available or
the task should not be displayed at all.
Comments may appear in the file, by prefixing a line with a hash mark
('#').
......@@ -38,7 +35,9 @@ should not conflict, or the results will be rather arbitrary.
Packages that are only available on some architectures, or that may not
be available on the user's installation media may still be listed. This
is no problem, they are simply ignored in those cases. Take care listing
such packages as Essential however.
such packages as Key however.
List only real packages, not virtual packages.
Users are given the opportunity to drill down and select/unselect
individual packages; the tasks they select only serve as a starting
......
......@@ -4,7 +4,7 @@ Description: X window system
This task provides the essential components for a standalone workstation
running the X Window System. It provides the X libraries, an X server, a
set of fonts, and a group of basic X clients and utilities.
Essential:
Key:
x-window-system
Packages:
x-window-system
......@@ -2,16 +2,8 @@ Task: c-dev
Section: devel
Description: C and C++
A complete environment for development of programs in the C and C++
programming languages, including:
o Tools common for C, C++ and Objective C development
o A C preprocessor
o C and C++ compilers
o Development files of the standard C and C++ libraries
o Debugging tools
o Literate programming tools
o C source analysis tools and tools to manipulate C source
o Documentation
Essential:
programming languages.
Key:
gcc
cpp
g++
......
......@@ -4,7 +4,7 @@ Description: Simplified Chinese environment
This task installs programs, data files, fonts, and
documentation that makes it easier for Chinese speakers
to use Debian, using the simplified Chinese encoding.
Essential:
Key:
cpanel
rxvt-ml
chinput
......
......@@ -4,7 +4,7 @@ Description: Traditional Chinese environment
This task installs programs, data files, fonts, and
documentation that makes it easier for Chinese speakers
to use Debian, using the traditional Chinese encoding.
Essential:
Key:
cpanel
rxvt-ml
chinput
......
......@@ -4,7 +4,7 @@ Description: Cyrillic environment
This task provides Cyrillic fonts and other software you will need in
order to use Cyrillic. It supports Belarusian, Bulgarian,
Macedonian, Russian, Serbian and Ukrainian.
Essential:
Key:
language-env
console-cyrillic
Packages:
......
......@@ -3,7 +3,7 @@ Section: l10n
Description: Danish environment
This task installs packages and documentation in Danish
to help Danish speaking people use Debian.
Essential:
Key:
locales
language-env
Packages:
......
......@@ -10,7 +10,7 @@ Description: SQL database
compliance and some SQL3 features. It is suitable for use with multi-user
database access, through its facilities for transactions and fine-grained
locking.
Essential:
Key:
postgresql
Packages:
postgresql
......
......@@ -5,7 +5,7 @@ Description: Desktop environment
of session managers, file managers and web browsers. It incorporates
both the GNOME and KDE desktops, and provides a display manager
which lets the user choose between the two.
Essential:
Key:
x-window-system-core
#include kde
#Automatically added by doincludes.pl; do not edit.
......
......@@ -3,7 +3,7 @@ Section: user
Description: Dialup system
This task selects packages that address special needs of computers
using a part-time dialup connection (by modem, ISDN, ADSL, or cable).
Essential:
Key:
ppp
pppoe
isdnutils
......
......@@ -2,7 +2,7 @@ Task: dns-server
Section: server
Description: DNS server
Selects the BIND DNS server, and related documentation and utility packages.
Essential:
Key:
bind9
Packages:
bind9
......
......@@ -2,7 +2,7 @@ Task: file-server
Section: server
Description: File server
This task sets up your system to be a file server.
Essential:
Key:
nfs-kernel-server
samba
Packages:
......
......@@ -3,7 +3,7 @@ Section: l10n
Description: French environment
This task installs packages and documentation in French
to help French speaking people use Debian.
Essential:
Key:
language-env
manpages-fr
Packages:
......
......@@ -3,7 +3,7 @@ Section: l10n
Description: German environment
This task installs packages and documentation in German
to help German speaking people use Debian.
Essential:
Key:
locales
language-env
manpages-de
......
......@@ -3,7 +3,7 @@ Section: l10n
Description: Japanese environment
This task installs packages that make it easier for Japanese speakers
to use Debian.
Essential:
Key:
locales
language-env
jfbterm
......
......@@ -2,7 +2,7 @@ Task: java-dev
Section: devel
Description: Java
A java development environment.
Essential:
Key:
gcj
java-common
Packages:
......
......@@ -3,15 +3,15 @@ Section: misc
Description: Custom kernel compilation
This task includes everything you should need to build your own custom
kernel.
Essential:
kernel-package
kernel-source
Packages:
Key:
kernel-package
# This needs to track the current kernel-source version, unfortunatly.
# Virual packages will not do.
# Virtual packages will not do.
# How this works for other architectures, I really cannot say.
kernel-source-2.4.21
Packages:
kernel-package
kernel-source-2.4.21
libc6-dev
debianutils
# Only on intel, but it will be ignored elsewhere.
......
......@@ -3,7 +3,7 @@ Section: l10n
Description: Korean environment
This task installs programs, data files, fonts, and documentation
to make it easier for Korean speakers to use Debian.
Essential:
Key:
locales
manpages-ko
cxterm-ks
......
......@@ -3,7 +3,7 @@ Section: user
Description: Laptop system
This is a collection of tools that laptop users will expect to find on a
system.
Essential:
Key:
apmd
pcmcia-cs
Packages:
......
......@@ -3,7 +3,7 @@ Section: server
Description: Mail server
This task selects a variety of package useful for a general purpose mail
server system.
Essential:
Key:
exim
Packages:
qpopper # HELP: What's a good pop server?
......
......@@ -11,7 +11,7 @@ Description: Usenet news server
existing server, just select the news reader program you desire and it
will pull in any required pieces. Only use this task if you intend
to operate a server.
Essential:
Key:
inn2
Packages:
inn2
......@@ -5,7 +5,7 @@ Description: Office environment
word processor, a spreadsheat, a personal finance program, project
management software, slide show and graphing software, and more.
This is a rather large collection of software.
Essential:
Key:
x-window-system-core
#include gnome-office
#Automatically added by doincludes.pl; do not edit.
......
......@@ -3,7 +3,7 @@ Section: l10n
Description: Polish environment
This task installs packages and documentation in Polish
to help Polish speaking people use Debian.
Essential:
Key:
locales
manpages-pl
language-env
......
......@@ -2,7 +2,7 @@ Task: print-server
Section: server
Description: Print server
This task sets up your system to be a print server.
Essential:
Key:
lpr
Packages:
samba
......
......@@ -3,7 +3,7 @@ Section: devel
Description: Python
Many Python tools and extensions, for developing scripts and simple or
complex applications in Python.
Essential:
Key:
python
Packages:
python
......
......@@ -4,7 +4,7 @@ Description: Russian environment
This task installs programs and documentation in Russian
to help Russian speaking people use Debian.
Maintainer: Peter Novodvorsky <nidd@debian.org>
Essential:
Key:
locales
language-env
manpages-ru
......
......@@ -3,7 +3,7 @@ Section: l10n
Description: Spanish environment
This task installs programs, data files, and
documentation that makes it easier for Spanish speakers to use Debian.
Essential:
Key:
locales
language-env
manpages-es
......
......@@ -6,7 +6,7 @@ Description: Tcl/Tk
o Script-level manpages
o C-level manpages
o C headers and libraries
Essential:
Key:
tcl8.3-dev
tk8.3-dev
Packages:
......
......@@ -2,7 +2,7 @@ Task: tex
Section: misc
Description: TeX/LaTeX environment
a TeX/LaTeX environment
Essential:
Key:
tetex-base
tetex-bin
tetex-extra
......
......@@ -3,7 +3,7 @@ Section: server
Description: Web server
This task selects a packages useful for a general purpose web server
system.
Essential:
Key:
apache
Packages:
apache
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment