[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commit-womb] gnumaint mkspotlight gm-util.pl gm massmail-130...
From: |
Ineiev |
Subject: |
[commit-womb] gnumaint mkspotlight gm-util.pl gm massmail-130... |
Date: |
Sat, 11 May 2019 07:38:26 -0400 (EDT) |
CVSROOT: /sources/womb
Module name: gnumaint
Changes by: Ineiev <ineiev> 19/05/11 07:38:24
Removed files:
. : mkspotlight gm-util.pl gm
massmail-1303-cveauto.txt gnumaint.README
gm-read.pl recentrel.txt Makefile
temail-4post.txt spotlight.mk temail-2dub.txt
testgood1.msg testaddrcomment.msg
temail-0query.txt gm-generate.pl
howto-spotlight.txt .cvsignore nonpackages.txt
testaddrangle.msg testjunk1.msg
howto-decommission.txt maintfileupgrade
massmail-1201-copyright.txt testaddr+real.msg
sendmaintmail massmail-0705-active.txt
gm-check.pl gnumaint contact-activity.txt
massmail-1405-stale.txt mailtoname gm-email.pl
gm-list.pl spotlight.tmpl
massmail-1305-stale.txt oldpackages.txt
tpost-need.html doc-categories.txt
massmail-1503-stale.txt howto-commission.txt
gnufsd testaddrcase.msg
fsd : Makefile .cvsignore gnufsd-psql fsd-schema.texi
rec : pkgblurbs.rec nonpackages.rec oldpackages.rec
gnupackages2txt.awk pkgblurbs2txt.awk
gnupackages.rec package-descriptor.rec
spotlight : spotlight.m4 gnubytime.pl
msg.0802 : Makefile .cvsignore send.0802 msg0802.txt
Log message:
Migrate to www web pages (prep/gnumaint).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnumaint/mkspotlight?cvsroot=womb&r1=1.7&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm-util.pl?cvsroot=womb&r1=1.8&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm?cvsroot=womb&r1=1.60&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/massmail-1303-cveauto.txt?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gnumaint.README?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm-read.pl?cvsroot=womb&r1=1.26&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/recentrel.txt?cvsroot=womb&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/Makefile?cvsroot=womb&r1=1.63&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/temail-4post.txt?cvsroot=womb&r1=1.5&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/spotlight.mk?cvsroot=womb&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/temail-2dub.txt?cvsroot=womb&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/testgood1.msg?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/testaddrcomment.msg?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/temail-0query.txt?cvsroot=womb&r1=1.7&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm-generate.pl?cvsroot=womb&r1=1.23&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/howto-spotlight.txt?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/.cvsignore?cvsroot=womb&r1=1.15&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/nonpackages.txt?cvsroot=womb&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/testaddrangle.msg?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/testjunk1.msg?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/howto-decommission.txt?cvsroot=womb&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/maintfileupgrade?cvsroot=womb&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/massmail-1201-copyright.txt?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/testaddr%43real.msg?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/sendmaintmail?cvsroot=womb&r1=1.7&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/massmail-0705-active.txt?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm-check.pl?cvsroot=womb&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gnumaint?cvsroot=womb&r1=1.40&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/contact-activity.txt?cvsroot=womb&r1=1.52&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/massmail-1405-stale.txt?cvsroot=womb&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/mailtoname?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm-email.pl?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm-list.pl?cvsroot=womb&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/spotlight.tmpl?cvsroot=womb&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/massmail-1305-stale.txt?cvsroot=womb&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/oldpackages.txt?cvsroot=womb&r1=1.38&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/tpost-need.html?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/doc-categories.txt?cvsroot=womb&r1=1.14&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/massmail-1503-stale.txt?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/howto-commission.txt?cvsroot=womb&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gnufsd?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/testaddrcase.msg?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/fsd/Makefile?cvsroot=womb&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/fsd/.cvsignore?cvsroot=womb&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/fsd/gnufsd-psql?cvsroot=womb&r1=1.10&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/fsd/fsd-schema.texi?cvsroot=womb&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/rec/pkgblurbs.rec?cvsroot=womb&r1=1.33&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/rec/nonpackages.rec?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/rec/oldpackages.rec?cvsroot=womb&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/rec/gnupackages2txt.awk?cvsroot=womb&r1=1.5&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/rec/pkgblurbs2txt.awk?cvsroot=womb&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/rec/gnupackages.rec?cvsroot=womb&r1=1.134&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/rec/package-descriptor.rec?cvsroot=womb&r1=1.7&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/spotlight/spotlight.m4?cvsroot=womb&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/spotlight/gnubytime.pl?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/msg.0802/Makefile?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/msg.0802/.cvsignore?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/msg.0802/send.0802?cvsroot=womb&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/gnumaint/msg.0802/msg0802.txt?cvsroot=womb&r1=1.2&r2=0
Patches:
Index: mkspotlight
===================================================================
RCS file: mkspotlight
diff -N mkspotlight
--- mkspotlight 27 Dec 2018 02:27:24 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,168 +0,0 @@
-#!/bin/bash
-# $Id: mkspotlight,v 1.7 2018/12/27 02:27:24 mikegerwitz Exp $
-# Spotlight generation script
-#
-# Copyright (C) 2018 Mike Gerwitz
-#
-# This program 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/>.
-#
-# This script just automates parts of what Brandon Invergo conveyed to me
-# (Mike Gerwitz) via e-mail. It is glue code around the existing
-# process. It may or may not evolve over time.
-##
-
-set -euo pipefail
-
-declare -r makefile=spotlight.mk
-declare -r tmp=spotlight-tmp
-declare -r releases_out="$tmp/releases-this-month.gnu"
-
-declare -r editor="${EDITOR:-editor}"
-
-cd "$(dirname $0)"
-
-
-fail()
-{
- local -r msg="${1?Missing failure message}"
-
- echo "error: $msg" >&2
- exit 1
-}
-
-
-cleanup()
-{
- read -p 'Remove old spotlight (y/n)? '
- test "$REPLY" == y || return 0
-
- echo "cleaning old $tmp..."
- rm -fv "$tmp"/*
-}
-
-
-package-exists()
-{
- local -r pkg=${1?Missing package name}
-
- test "$( recsel -ce "package = '$pkg'" rec/gnupackages.rec )" -gt 0
-}
-
-
-validate-pkgs()
-{
- local line pkg
-
- while read line; do
- pkg=${line%%-[0-9-]*}
-
- if ! package-exists "$pkg"; then
- echo "# $line ($pkg not found in gnupackages.rec)"
- continue
- fi
-
- echo "$line"
- done
-}
-
-
-make-release-out()
-{
- local -r last_date="${1?Missing last spotlight date}"
-
- make -f "$makefile" END_DATE="$last_date"
- test -f "$releases_out" || fail "didn't generate $releases_out!"
-
- # comment out alpha and beta releases (which shouldn't be on ftp.gnu.org,
- # but sometimes they are) so that they can be manually verified
- sed -i 's/^.*\(-alpha\|-beta\)$/#&/' "$releases_out"
-
- # prepend some useful text (from Brandon's original email); hopefully a
- # lot of this will be automated as time goes on
- cat - <( validate-pkgs < "$releases_out" ) > "$releases_out.tmp" <<EOF
-# From Brandon:
-# > Edit releases-this-month.gnu. Normally this entails removing
-# > multiple releases of the same package (just keep the latest one),
-# > removing language packs (Icecat), dictionaries (aspell), patchsets
-# > (gnuhealth), and adding releases that weren't uploaded to the FTP
-# > server. For that latter case, I don't methodically search for all
-# > packages; I just cross-check with the info-gnu release announcements
-# > and I double-check for the big ones: gnupg (normally announced on
-# > info-gnu) & gnutls (check the website).
-#
-# (All comments and empty lines will be removed.)
-
-EOF
-
- # manually edit file
- "$editor" "$releases_out.tmp"
-
- # move into place without comments and remove temporary
- # (*-ready is the ultimate destination)
- sed '/^#/d;/^$/d' "$releases_out.tmp" > "$releases_out-ready"
- rm "$releases_out.tmp" "$releases_out"
-}
-
-
-make-markdown()
-{
- make -f "$makefile" markdown
-
- # locate the markdown file
- local -r md=spotlight/spotlight-"$( date +%Y-%m-%d )".md
-
- test -f "$md" || fail 'error: missing spotlight/*.md output'
-
- # some common replacements, to be added to over time (maybe extract into
- # its own file for maintenance)
- sed -i 's#software/tack#software/ncurses#;
- s#software/gnuhealth-client#software/health#' \
- "$md"
-
- # manually edit final file
- "$editor" "$md"
-
- echo "send to address@hidden: $md"
-}
-
-
-usage()
-{
- cat <<EOF
-Usage: $0 LAST_SPOTLIGHT_DATE
-
-Guide generation of GNU Spotlight since last date.
-LAST_SPOTLIGHT_DATE must be of the format YYYYMMDD.
-EOF
-
- exit 64 # EX_USAGE
-}
-
-
-main()
-{
- local -r last_date="${1?Missing end date}"
-
- # sanity check, mostly, since we're about to issue `rm'
- test -f "$makefile" || fail "missing $makefile"
-
- cleanup
- make-release-out "$last_date"
- make-markdown
-}
-
-
-test $# -gt 0 || usage
-
-main "$@"
Index: gm-util.pl
===================================================================
RCS file: gm-util.pl
diff -N gm-util.pl
--- gm-util.pl 12 Nov 2018 22:18:57 -0000 1.8
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,143 +0,0 @@
-# $Id: gm-util.pl,v 1.8 2018/11/12 22:18:57 brandon Exp $
-# Utilities for the gm script.
-#
-# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013
-# Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-
-
-# Return the email addresses for the maintainers of package PKGREF (a
-# reference to a list of maintainer hashes). Two strings are returned:
-# the named maintainers and any generic maintainer. Either may be
-# empty/undef.
-#
-sub maintainer_email_addrs {
- my ($pkgref) = @_;
-
- my @entries = ();
- my $generic_entry = "";
- my @uploaders = ();
-
- for my $m (@{$pkgref}) {
- my $name = $m->{"name"};
- my $entry = $name;
-
- $entry .= " " if $entry;
-
- if ($m->{"best_email"}) {
- $entry .= "<$m->{best_email}>";
- } else {
- warn "no email for $name?!";
- }
-
- if ($m->{"is_generic"} && $name ne "unmaintained") {
- # Assume that if a name starts with a lowercase letter, it is
- # generic. If we ever have a maintainer whose real name starts
- # with a lowercase letter, we can invent a field to distinguish.
- warn "two generic maintainers?! -- $entry and $generic_entry"
- if $generic_entry;
- $generic_entry = $entry;
- } elsif ($m->{"is_uploader"}){
- push (@uploaders, $entry);
- } else {
- push (@entries, $entry);
- }
- }
-
- # Make the individuals into a comma-separated list.
- my $entries = join (", ", @entries);
- my $uploaders = join (", ", @uploaders);
-
- return ($entries,$generic_entry,$uploaders);
-}
-
-
-
-# Since we need this in more than one place. These are listed in the
-# maintainers file, but shouldn't be included in the "allpackages"
-# lists, etc., since their status is murky.
-#
-sub skip_pkg_p {
- my ($pkgname) = @_;
- return $pkgname =~ / / # gimp www pages, flex manual
- || $pkgname =~ /^gg-/ # groups
- || $pkgname =~ /^(cfengine)$/ # not really ours
- || $pkgname =~ /\.nongnu/; # specialness, see maintainers
-}
-
-
-# avoid repeating the field widths.
-#
-sub gnupkgs_msg {
- my ($msg,%p) = @_;
- warn "gnupkgs_msg: oops, no lineno/package elements in %p hash"
- unless $p{"lineno"} && $p{"package"};
- return sprintf ("$GNUPACKAGES_FILE:%4d:%-16s $msg",
- $p{"lineno"}, $p{"package"});
-}
-
-
-# our package names don't always suit XHTML in its wisdom.
-#
-sub xhtml_id {
- my ($pkgname) = @_;
- (my $xhtml_id = $pkgname) =~ s/[^-_0-9a-z]//g; # identifier chars
- $xhtml_id = "pkg_$xhtml_id"
- if $xhtml_id !~ /^[a-z]/; # start w/letter
- return $xhtml_id;
-}
-
-
-# return auto-generation notice to include in output files.
-#
-sub generated_by_us {
- chomp (my $date = `date`);
- (my $us = $0) =~ s,^\./,,;
- return "generated by womb/gnumaint/$us $date";
-}
-
-
-# print arg on stderr.
-sub debug { warn "$_[0]\n" if $DEBUG; }
-
-
-# Log LABEL followed by hash elements, all on one line.
-#
-sub debug_hash {
- return unless $DEBUG;
- &warn_hash (@_);
-}
-
-sub warn_hash {
- my ($label) = shift;
- my (%hash) = (ref $_[0] && $_[0] =~ /.*HASH.*/) ? %{$_[0]} : @_;
-
- my $str = "$label: {";
- my @items = ();
- for my $key (sort keys %hash) {
- my $val = $hash{$key};
- $key =~ s/\n/\\n/g;
- $val =~ s/\n/\\n/g;
- push (@items, "$key:$val");
- }
- $str .= join (",", @items);
- $str .= "}";
-
- warn "$str\n";
-}
-
-1;
Index: gm
===================================================================
RCS file: gm
diff -N gm
--- gm 12 Nov 2018 22:31:31 -0000 1.60
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,142 +0,0 @@
-#!/usr/bin/env perl
-# $Id: gm,v 1.60 2018/11/12 22:31:31 brandon Exp $
-# GNU maintainer-related operations.
-#
-# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software
-# Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-
-$DEBUG = 0;
-my $ver = '$Id: gm,v 1.60 2018/11/12 22:31:31 brandon Exp $';
-
-# In this particular case, using require seemed better than setting up
-# modules. It's certainly simpler.
-require "gm-check.pl";
-require "gm-email.pl";
-require "gm-generate.pl";
-require "gm-list.pl";
-require "gm-read.pl";
-require "gm-util.pl";
-
-# Recommended way to deal with the foreign data files: have a cron job
-# that copies them locally and nightly; put symlinks in this directory
-# to the cron-updated files.
-
- # fp:~karl/src/gnumaint/activity-report.txt
-$ACTIVITY_FILE = "activity-report.txt";
- # fp:/gd/gnuorg/copyright.list
-$COPYRIGHT_LIST_FILE = "copyright.list";
- # maintained here:
-$DOC_CATEGORIES_FILE = "doc-categories.txt";
- # maintained here:
-$GNUPACKAGES_FILE = "rec/gnupackages.rec";
- # http://ftp.gnu.org/gnu/texinfo/htmlxref.cnf
-$HTMLXREF_FILE = "htmlxref.cnf";
- # fp:/gd/gnuorg/maintainers
-$MAINTAINERS_FILE = "maintainers";
- # maintained here:
-$OLDPACKAGES_FILE = "oldpackages.txt";
- # maintained here:
-$PKGBLURBS_FILE = "pkgblurbs.txt";
-
-# The routines using these additional files are not yet fully implemented.
- # rsync://ftp.gnu.org/gnu/
-$FTPLISTING_FILE = "ftplisting.txt";
- # fp:/srv/data/ftp-upload/maintainers_emails.txt
-$FTPUPLOAD_EMAIL_FILE = "ftp-upload-email.txt";
- # (undone) list received from address@hidden:
-$COPYRIGHT_PAPERS_FILE = "copyright-papers.txt";
- # (undone) http://savannah.gnu.org/cooperation/groups.tsv
-$SAVANNAH_FILE = "groups.tsv";
- # maintained here (stale):
-$RECENTREL_FILE = "recentrel.txt";
-
-# (Not all of the above are fully implemented yet.)
-
-exit (&main ());
-
-sub main {
- my $cmd = $ARGV[0];
- my $arg1 = $ARGV[1];
- my $arg2 = $ARGV[2];
-
- if ($cmd =~ /^-?-?help *$/) {
- print <<END_USAGE;
-Usage: $0 CMD ARG...
-
-Perform various GNU maintainer/package operations.
-Here are the possibilities:
-
-check fsfcopyright verify consistency: gnupackages/copyright.list
-check ftpupload verify consistency: maintainers/ftp-upload
-check maintainers verify consistency: gnupackages/maintainers
-
-generate email bypackage make messages to send out; add -h for details.
-generate maintainers bypackage make /gd/gnuorg/maintainers.bypkg file
- (run from address@hidden cron)
-generate blurbs html make www.gnu.org/server/home-pkgblurbs.html
-generate logos html make www.gnu.org/graphics/allgnupkgs.html
-generate manual html make www.gnu.org/manual/allgnupkgs.html
-generate packages html make www.gnu.org/software/allgnupkgs.html
-
-list copyrightfsf FSF-copyrighted packages
-list copyrightfsfnot non-FSF-copyrighted packages
-
-list maintainers nophysical maintainers without phone/address info
-
-list packages activity packages sorted by activity-status
-list packages gplv3 packages with GPLv3 update pending
-list packages unanswered packages we've had no contact about
-
-The idea is that "check" actions do consistency checking,
-"generate" actions write output that's intended to be used directly, and
-"list" actions are for information and further consumption.
-
-$ver
-Correspondence to address@hidden
-END_USAGE
- return 0;
- }
-
- elsif ($cmd =~ /^-?-?version *$/) {
- print "$ver\n";
- return 0;
- }
-
-# Features started but not finished:
-#check activityfile verify activity-report.txt
-#list copyrightpapers copyright.list vs. paperwork
-#check ftplisting verify consistency: ftplisting.txt
-#check savannah verify consistency: gnupackages/savannah
-
- # construct the function name from the arguments, and eval it.
- my $fn = "${cmd}_${arg1}_${arg2}";
- my @lines = eval "&$fn ()";
-
- # This gives an ugly message if the eval failed, but this program is
- # not for public consumption, so that's ok.
- die "$0 failed: address@hidden" if $@;
-
- # Print the resulting lines. The idea is that none of the subroutines
- # print normal output, but only return a list of the lines to print.
- # (The subroutines do print warnings/errors, though.)
- print map { "$_\n" } @lines if @lines;
-
- return 0;
-}
-
-# All the code is in the gm-*.pl files.
Index: massmail-1303-cveauto.txt
===================================================================
RCS file: massmail-1303-cveauto.txt
diff -N massmail-1303-cveauto.txt
--- massmail-1303-cveauto.txt 23 May 2013 23:55:42 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-From: address@hidden (GNU Project)
-To: %PACKAGE_MAINTAINERS
-Subject: %PACKAGE_NAME and Automake-related vulnerabilities
-Precedence: bulk
-
-Greetings,
-
-I'm sending you this message on behalf of GNU because as far as we know,
-you are the maintainer(s) of %PACKAGE_NAME. (If you're not maintaining
-it, please reply to let me know.)
-
-Two vulnerabilities related to Automake-generated Makefiles and the dist
-and distcheck target were discovered some time ago. It seemed to me
-that the latest release of %PACKAGE_NAME on ftp.gnu.org was still
-vulnerable to one or both. They are:
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4029
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3386
-
-(If you did make a later release that fixes these issues, don't worry
-about this email, and sorry for the noise. I could not determine
-the status with absolute certainty.)
-
-The issues were fixed in automake releases 1.12.2 and 1.11.6. So the
-simplest way to mitigate them is to regenerate the Makefiles using an
-automake that is at least that new and re-release. If you don't want to
-do that, you can also hack the Makefiles to fix the problem by hand:
- http://lists.gnu.org/archive/html/savannah-hackers/2012-12/msg00049.html
-
-Although these vulnerabilities do not have a high probability of being
-exploited, of course we want GNU software to be safe. So it would be
-good to make a new release, even if it's just to fix these bugs. Of
-course other fixes or features are all to the good.
-
-As usual, aside from this issue, if you have any news or questions
-regarding the package, please let me know at address@hidden
-Thanks for contributing to GNU, and happy hacking.
-
-Karl Berry
-Assistant Chief GNUisance
Index: gnumaint.README
===================================================================
RCS file: gnumaint.README
diff -N gnumaint.README
--- gnumaint.README 24 Jun 2013 18:05:07 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,42 +0,0 @@
-Copyright 2007 Free Software Foundation, Inc.
-
-Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved.
-
-
-gnumaint is a manager for the /gd/gnuorg/maintainers file, the
-official list of GNU packages and maintainers.
-It was written by Jose Marchesi in 2006-07.
-
-You can get listings (see ./gnumaint help list),
-send email to maintainers (./gnumaint help sendemail),
-and receive answers from the maintainers (./gnumaint help recemail).
-The ./Makefile shows sample invocations testing the various features.
-
-The file ./template-active.txt defines the mail message sent. The first
-line is the Subject: header, the rest is the body. The receive function
-looks for the specific string in the Subject:, so don't change it in one
-place without the other.
-
-Lines in the template starting with fmt: are piped through fmt before
-sending.
-
-If any questions/suggestions about the software, please email
address@hidden
-
-todo:
-- check for inconsistent case in maintainers package names.
-- send different msg to people in recentrel.txt.
-
-bugs from last send:
-fsd-by-license did not find gplv3 tar?!
-and what about slib publicdomain? should not have been mailed.
-ditto speex, which was xiph -- shouldn't have been mailed.
-then review mixed msgs to go out -- not tar, not gcc.
-unknown, unconfirmed maintainers
-sort both maintainers and gnupackages by block
-no non-email maintainers in .bypkg
-multiple email fields -> error
-on receipt, have to match any altemail not just primary
-must ignore maintainers without email, not send to empty
Index: gm-read.pl
===================================================================
RCS file: gm-read.pl
diff -N gm-read.pl
--- gm-read.pl 10 Apr 2019 01:00:44 -0000 1.26
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,826 +0,0 @@
-# $Id: gm-read.pl,v 1.26 2019/04/10 01:00:44 mikegerwitz Exp $
-# Subroutines for gm script that read various external data file.
-#
-# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-# Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-
-
-
-# Read $COPYRIGHT_LIST_FILE. If HOW is "by-line", return hash with the
-# keys being package names and the values their line numbers in the
-# file. If "by-year", return hash with keys as the assignment years and
-# the values another hash mapping packages to names.
-#
-sub read_copyright_list {
- my ($how) = @_;
- my %ret;
-
- if ($how !~ /^by-(year|line)$/) {
- die "unknown argument $how to read_copyright_list";
- }
-
- open (COPYRIGHT_LIST_FILE) || die "open($COPYRIGHT_LIST_FILE) failed: $!";
- while (<COPYRIGHT_LIST_FILE>) {
- # Look at lines following a blank line.
- next unless /^\s*$/;
- $_ = <COPYRIGHT_LIST_FILE>;
- chomp;
-
-#new # Split at tabs.
-#new my (@parts) = split (/\t+/);
-#new
-#new # If there is only one part, or more than five, something is totally
awry.
-#new if (@parts == 1 || @parts > 5) {
-#new warn "$COPYRIGHT_LIST_FILE:$.: strange line tabs: $_\n";
-#new next;
-#new
-#new # If there are only two or three parts, we hope it is a company
-#new # assignment, like
-#new # Telmark 2010-4-29
-#new # Just skip those for now.
-#new } elsif (@parts == 2) { # xx complain if a pkgname is first?
-#new warn "2 parts: @parts\n";
-#new next;
-#new
-#new # If there are three parts, we hope it is also a company assignment
-#new # with package name, like
-#new # ANY CNOC vof 2010-5-26
-#new # Just skip these, too.
-#new } elsif (@parts == 3) { # xx complain if a pkgname is first?
-#new warn "3 parts: @parts\n";
-#new next;
-#new
-#new # If there are four parts, it is a mystery.
-#new } elsif (@parts == 4) { # xx complain if a pkgname is first?
-#new warn "4 parts?: @parts\n";
-#new next;
-#new }
-#new
-#new # Five parts is the normal case of a personal assignment, like
-#new # EMACS Richard Stallman USA 1953 1986-09-29
-#new my ($pkgs,$name,$birthplace,$birthyear,$date) = @parts;
-#new warn "$pkgs by $name on $date\n";
-#new
-
- # Drop everything after the first tab, we don't want to see all-caps
- # company names.
- s/\t.*//;
-
- # Sometimes commas are used to separate package names. Just replace
- # them with spaces as a small simplification.
- s/,/ /g;
-
- # Split remainder into words at whitespace.
- my @words = split (" ");
-
- my $year = -1;
- my @line_pkgs = (); # if by-year
- for my $w (@words) {
- # the word has to start with an uppercase letter or number,
- # and be followed only by possible constituent characters,
- # or we're done with this line.
- last unless $w =~ /^[A-Z0-9][A-Z0-9._-]+$/;
-
- # and if it is only digits, never mind (1559643 Ontario Limited).
- next if $w =~ /^\d+$/;
-
- # and if it is only digits and -, that's a date.
- # remember the year if we need it, and we're done with this line.
- if ($w =~ /^\d+-[-\d]+$/) {
- if ($how eq "by-year") {
- $year = substr ($w, 0, 4);
- if ($year < 1980 || $year > 2222) {
- warn "$COPYRIGHT_LIST_FILE:$.: strange year: $year\n";
- next;
- }
- }
- last;
- }
-
- # keyword ANY in copyright.list is not a package name for us, etc.
- next if $w =~ /^(ANY|MISC|TRANSLATIONS|UNUSED)$/;
-
- # Special case assignment, not a GNU package.
- next if $w =~ /^(READINGRECORD)$/;
-
- $w = lc ($w);
- $canonical_pkg_name = &canonicalize_pkg_name ($w);
-
- # Some packages have legitimate entries in copyright.list, but are
- # nevertheless known not to be copyright FSF. Probably would be
- # better to maintain this information in gnupackages.txt and get it
- # from there. Maybe someday.
- next if $canonical_pkg_name =~ /^(# not really ours:
- 3dldf #finstol
- |a2ps #demaille, hatta, et al.
- |aspell #atkinson
- |autogen #korb
- |bayonne #dyfet
- |ccrtp #dyfet
- |djgpp #delorie
- |ed #moore "licenses"
- |epsilon #french university
- |gcal #esken
- |ghostscript #aladdin
- |gnome #gnome
- |gnu-arch #atai
- |gnuucp #abandoned = unrelated to current uucp
- |gnutrition #original author
- |gnuzilla #mozilla
- |gsasl #josefsson
- |gsl #gough
- |gsrc #sampson
- |icecat #mozilla
- |indent #bsd et al.
- |inetutils #bsd
- |less #nudelman
- |libgcrypt #koch
- |libidn #josefsson
- |octave #many
- |osip #josefsson
- |patch #lwall
- |rcs #tichy et al.
- |screen #weigert et al.
- |shishi #josefsson
- |social #new social is not the old package
- |uucp #airs
- |vera #not an assignment
- )$/x;
-
- # if by line, we can just save this package in the return hash.
- # if by year, have to accumulate all the info on this line.
- if ($how eq "by-year") {
- push (@line_pkgs, $canonical_pkg_name);
- } elsif ($how eq "by-line") {
- $ret{$canonical_pkg_name} = $.;
- }
- }
- }
- close (COPYRIGHT_LIST_FILE) || warn "close($COPYRIGHT_LIST_FILE) failed: $!";
-
- $ret{"gnustandards"} = 1; # no papers, but is copyright FSF
- $ret{"libtasn1"} = 1; # split off from gnutls, so no separate papers
- $ret{"lispintro"} = 1; # no papers, but is copyright FSF
- $ret{"mig"} = 1; # part of hurd
- $ret{"trans-coord"} = 1; # container
-
- return %ret;
-
-
- # lots of names in copyright.list don't match current package
- # identifiers, for whatever reason.
- #
- sub canonicalize_pkg_name {
- my ($w) = @_;
-
- $w =~ s/_manual//; # manuals are not separate packages for us.
-
- %map = (
-# "dotgnu" => "dotgnu-pnet",#decommissioned
- "enterprise" => "gnue", # remain?
- "glibc" => "libc", # will remain
-# "gnu-c" => "gcc",
-# "gnuchess" => "chess",
-# "gnugsl" => "gsl",
-# "gnupascal" => "pascal",
-# "gnus" => "emacs",
-# "gpc" => "pascal",
-# "graphics" => "plotutils",
-# "hashcash.el" => "emacs",
-# "info" => "texinfo",
-# "libavl" => "avl",
-# "libgcj" => "gcc",
-# "libgen.a" => "libc",
-# "libgsasl" => "gsasl",
-# "libutf8" => "libunistring",
-# "mach" => "gnumach",
-# "makeinfo" => "texinfo",
-# "malloc" => "libc",
-# "memcmp" => "libc",
-# "memcpy" => "libc",
-# "memset" => "libc",
-# "midnight" => "mc",
-# "midnight_commander" => "mc",
-# "mp" => "gmp",
-# "muse" => "emacs-muse",
-# "objc" => "gcc",
-# "obstack" => "libc",
-# "pfe" => "gforth",
-# "pnet" => "dotgnu-pnet",
-# "portable.net" => "dotgnu-pnet",
-# "ps" => "sysutils",
-# "ptx" => "coreutils",
-# "queue" => "gnu-queue",
-# "radio" => "gnuradio",
-# "readlink" => "coreutils",
-# "regcmp" => "libc",
-# "regex" => "libc",
-# "regexp" => "regex",
-# "sasl" => "gsasl",
-# "shogi" => "gnushogi",
-# "shred" => "coreutils",
-# "snprintfv" => "libc",
-# "sql.el" => "emacs",
-# "strchr" => "libc",
-# "strftime" => "libc",
-# "strtod" => "libc",
-# "superoptimizer" => "superopt",
-# "texi2html" => "texinfo",
-# "verilog-mode.el" => "emacs",
-# fixed into /subentries:
-# "gas" => "binutils",
-# "getopt" => "libc",
-# "gprof" => "binutils",
-# "glob" => "libc",
-# "gnu.regexp" => "libc",
-# "ld" => "binutils",
-# "robotussin" => "binutils",
-# "winboard" => "xboard",
- );
- return $map{$w} || $w;
- }
-}
-
-
-
-# Read $COPYRIGHT_PAPERS_FILE, generated with
-# cd /srv/data/copyright-mirror && find -type f | sort
-#
-# Return hash with the keys being years and the values another hash
-# (reference): this one with keys being the package names and the values
-# yet a third hash (reference): this one just last names for keys, to
-# easily avoid muliple entries. This is the information given in the
-# filenames.
-#
-# Implementation not finished. This is trying to check consistency
-# between the papers the FSF actually has and the records of them.
-#
-sub read_copyright_papers {
- my %ret;
-
- open (COPYRIGHT_PAPERS_FILE) ||die "open($COPYRIGHT_PAPERS_FILE) failed: $!";
- while (<COPYRIGHT_PAPERS_FILE>) {
- # Examples: ./1985/Curry.grep.pdf ./1985/Robinson.emacs.1.pdf
- chomp;
- my (undef,$year,$file) = split ("/");
- next if $file eq ""; # ignore top-level files
- next if $file =~ /#/; # ignore autosave files.
- next if $file =~ /~$/; # ignore backup files.
-
- if ($year < 1980 || $year > 2222) {
- warn "$COPYRIGHT_PAPERS_FILE:$.: strange year: $year\n";
- next;
- }
-
- $file =~ s/\.pdf$//; # remove trailing .pdf
-
- my ($name,$package) = split (/\./, $file);
- if ($name eq "") {
- warn ("$COPYRIGHT_PAPERS_FILE:$.: empty name in $_\n");
- next;
- }
-
- # many filenames lack package names; try to match up last names.
- $package = ".nameonly" if $package eq "";
- $ret{$year}->{$package}->{$name}++;
- }
-
- close (COPYRIGHT_PAPERS_FILE)
- || warn "close($COPYRIGHT_PAPERS_FILE) failed: $!";
- return %ret;
-}
-
-
-
-# Read doc-categories.txt file for info about SHORT_CAT, and return a
-# reference to a two-element array. The first element in the array is
-# the long category name; the second element is a url to the category in
-# the Free Software Directory.
-#
-# If we ever need a third piece of information, should probably switch
-# to a hash for the values.
-#
-sub read_doc_categories {
- my ($short_cat) = @_;
-
- if (keys %doc_category == 0) {
- open (DOC_CATEGORIES_FILE) || die "open($DOC_CATEGORIES_FILE) failed: $!";
-
- while (<DOC_CATEGORIES_FILE>) {
- next if /^\s*#/; # ignore comments
- next if /^\s*$/; # ignore blank lines.
- chomp;
-
- my ($short,$fsd,$full) = split (" ", $_, 3);
- my $ret_full = $full || $short;
- my $ret_url = $fsd eq "-"
- ? "" : "http://directory.fsf.org/category/$fsd/";
- $doc_category{$short} = [ $ret_full, $ret_url ];
-
- }
-
- close (DOC_CATEGORIES_FILE)
- || warn "close($DOC_CATEGORIES_FILE) failed: $!";
- }
-
- # now we have the hash, so look up SHORT_CAT.
- my $ret;
- if (exists ($doc_category{$short_cat})) {
- $ret = $doc_category{$short_cat};
- } else {
- warn "$DOC_CATEGORIES_FILE: no short category name $short_cat\n";
- $ret = ["no long name for $short_cat", "no url for $short_cat"];
- }
-
- return $ret;
-}
-
-
-
-# Read an rsync listing of ftp.gnu.org, with entries like this:
-#
-# drwxr-xr-x 4096 2004/01/16 12:20:08 gnu/3dldf
-# lrwxrwxrwx 5 2010/12/29 13:30:03 gnu/libc -> glibc
-#
-# Return list of directories and symlinks under gnu/.
-#
-sub read_ftplisting {
- my @ret;
-
- open (FTPLISTING_FILE) || die "open($FTPLISTING_FILE) failed: $!";
- my %keys;
- while (<FTPLISTING_FILE>) {
- chomp;
- next unless /^[dl].*[0-9] gnu[^+]/; # the 0-9 is the seconds
- my $orig = $_;
- s,^.* gnu/,,; # rm through the gnu/
- s,[ /].*$,,; # rm all following components or symlink target
- push (@ret, $_) unless exists $keys{$_};
- $keys{$_} = 1;
- warn "keeping $_ from $orig\n" if /^drw/;
- }
- close (FTPLISTING_FILE) || warn "close($FTPLISTING_FILE) failed: $!";
-
- return @ret;
-}
-
-
-
-# Read the ftp-upload-email file, generated by the sysadmins.
-# Return per-package hash of info, with keys being the package names and
-# values the list of email addresses.
-#
-sub read_ftpupload_email {
- my %ret;
-
- open (FTPUPLOAD_EMAIL_FILE) || die "open($FTPUPLOAD_EMAIL_FILE) failed: $!";
- while (<FTPUPLOAD_EMAIL_FILE>) {
- chomp;
- my ($pkg,$emails) = split (" ");
-
- $pkg = "libc" if $pkg eq "glibc"; # name on ftp.gnu.org differs
-
- $ret{$pkg} = $emails;
- }
- close (FTPUPLOAD_EMAIL_FILE) || warn "close($FTPUPLOAD_EMAIL_FILE) failed:
$!";
-
- return %ret;
-}
-
-
-
-# Read the gnupackages.txt file, return a hash of information, where
-# the keys are package names and the values are hash references with the
-# information. If a key is given more than once (e.g., note), the
-# values are separated by |.
-#
-# A key "lineno" is synthesized with the line number of the blank line
-# following the package.
-#
-# Another key "human_label" is synthesized as a human-oriented package
-# name: the mundane_name: field if it's present, else a prettified
-# version of the package identifier.
-#
-sub read_gnupackages {
- my %ret;
-
- open (GNUPACKAGES_FILE) || die "open($GNUPACKAGES_FILE) failed: $!";
-
- my %pkg;
- while (<GNUPACKAGES_FILE>) {
- next if /^#/; # ignore comments
- next if /^%/; # ignore Recutils annotation
- s/ +$//; # remove trailing spaces
- chomp;
-
- # at a blank line, save the info we've accumulated, if any.
- if (/^$/) {
- next unless keys %pkg;
-
- if (exists $pkg{"package"}) {
- my %copy = %pkg; # do not save a pointer to what will be overwritten
- $copy{"lineno"} = $. - 1; # save line number
-
- my $human_label = $pkg{"mundane_name"};
- if (! $human_label) {
- ($human_label = $pkg{"package"}) =~ s/^gnu/GNU/; # gnufoo -> GNUfoo
- $human_label = ucfirst ($human_label); # bar -> Bar
- }
- $copy{"human_label"} = $human_label;
-
- # save the constructed hash.
- $ret{$pkg{"package"}} = \%copy;
-
- } else {
- warn "$GNUPACKAGES_FILE:$.: no package name for block ending here\n";
- }
- undef %pkg; # clear out for next
- next;
- }
-
- # check for a line continuation
- if (/^\+ /){
- my $contval = substr $_, 2;
- $key{$val} = $key{$val} . $contval;
- next;
- }
-
- # key is everything before the first colon.
- # value is everything after the first colon and whitespace.
- my ($key,$val) = split (/:\s*/, $_, 2);
- if ($key eq $_) {
- warn "$GNUPACKAGES_FILE:$.: no colon in line\n";
- }
-
- if ($key eq "package" && $val =~ /[A-Z]/) {
- # as a convention for simplicitly, we want to eschew uppercase in
- # package identifiers.
- warn "$GNUPACKAGES_FILE:$.: forcing package name to lowercase\n";
- $val = lc ($val);
- }
-
- # if key already exists, use | to separate values.
- $val = "$pkg{$key}|$val" if exists $pkg{$key};
-
- $pkg{$key} = $val;
- }
-
- close (GNUPACKAGES_FILE) || warn "close($GNUPACKAGES_FILE) failed: $!";
-
- return %ret;
-}
-
-
-# Read the pkgblurbs.txt file, return a hash of information, where the
-# keys are package names and the values are hash references with the
-# information. If a key is given more than once, an error is given.
-# A key "lineno" is synthesized with the line number of the blank line
-# following the package.
-#
-sub read_pkgblurbs {
- my %ret;
-
- open (PKGBLURBS_FILE) || die "open($PKGBLURBS_FILE) failed: $!";
-
- my %pkg;
- while (<PKGBLURBS_FILE>) {
- next if /^#/; # Ignore comments
- s/ +$//; # remove trailing spaces
- chomp;
-
- # at a blank line, save the info we've accumulated, if any.
- if (/^$/) {
- next unless keys %pkg;
-
- if (exists $pkg{"package"}) {
- my %copy = %pkg; # do not save a pointer to what will be overwritten
- $copy{"lineno"} = $. - 1; # save line number
- $ret{$pkg{"package"}} = \%copy;
- } else {
- warn "$PKGBLURBS_FILE:$.: no package name for block ending here\n";
- }
- undef %pkg; # clear out for next
- next;
- }
- #
- # the idea is that we have
- # blurb: text text text
- # + continued text continued text ...
- #
- # Let's look for the continuation lines first.
- if (/^\+\s+/) {
- if (exists $pkg{"blurb"}) {
- # continued line, drop "+ " continuation and append.
- s,^\+\s+,,;
- $pkg{blurb} = "$pkg{blurb} $_";
- } else {
- warn "$PKGBLURBS_FILE:$.: +continuation without previous blurb:\n";
- }
-
- } elsif (/:/) {
- # not a continuation line, so it should be a normal
- # key: value line.
- my ($key,$val) = split (/:\s*/, $_, 2);
- # if key already exists, complain.
- warn "found second value $val for key $key (already have $pkg{$key})\n"
- if exists $pkg{$key};
-
- $pkg{$key} = $val;
-
- } else {
- warn "$PKGBLURBS_FILE:$.: no colon or plus in line\n";
- }
- }
- close (PKGBLURBS_FILE) || warn "close($PKGBLURBS_FILE) failed: $!";
-
- return %ret;
-}
-
-
-
-# Read htmlxref.cnf file for entries relating to PKGNAME.
-# Return a hash where the keys are the manual identifiers and the values
-# are the urls.
-#
-# See the HTML Xref Configuration node in the Texinfo manual.
-# The file is maintained in the util subdirectory of the Texinfo sources.
-#
-sub read_htmlxref {
- my ($pkgname) = @_;
- my %ret;
-
- open (HTMLXREF_FILE) || die "open($HTMLXREF_FILE) failed: $!";
-
- my %variables;
- my %ret_type; # record preferred xref type so far, for each manual
- while (<HTMLXREF_FILE>) {
- next if /^\s*#/; # ignore comments
- next if /^\s*$/; # ignore blank lines.
- chomp;
-
- # handle variable definitions:
- if (/^\s*(\w+)\s*=\s*(.*)\s*$/) {
- my ($var,$val) = ($1,$2);
- $variables{$var} = &expand_variables ($val);
-
- # look for manual entries relating to PKGNAME:
- } elsif (/^\s*(\S+)\s+(\w+)\s+(.*)\s*$/) {
- my ($manual,$type,$url) = ($1,$2,$3);
-
- # The manual name may be exactly the package name, but it may not
- # be, yet still part of the package. To detect this, we see if
- # the entry uses the package name as a variable in the url. (This
- # seemed the only other way we could extract the relevant manuals,
- # barring adding another field, which seemed redundant.) Such a
- # variable name is always in all-uppercase, with - changed to _.
- #
- (my $pkgname_as_var = $pkgname) =~ tr/a-z-/A-Z_/;
- if ($manual eq $pkgname || $url =~ /\$\{$pkgname_as_var\}/) {
- if (! exists $ret_type{$manual}
- || &prefer_xref_type ($type, $ret_type{$manual})) {
- $ret{$manual} = &expand_variables ($url);
- $ret_type{$manual} = $type;
- }
- }
-
- } else {
- warn "$HTMLXREF_FILE:$.: unexpected line: $_\n";
- }
- }
-
- close (HTMLXREF_FILE) || warn "close($HTMLXREF_FILE) failed: $!";
-
- return %ret;
-
- # using the %variables hash, expand ${varname} constructs until none
- # remain. If a variable isn't defined, just replace it with the empty
- # string. Would be better to give a warning, but let's not bother.
- sub expand_variables {
- my ($val) = @_;
- $val =~ s/\$\{(\w+)\}/$variables{$1}/eg # expand variables
- until $val !~ /\$\{(\w+)\}/; # until no more
- return $val;
- }
-
- # If TYPE1 is preferred to TYPE2, return 1, else 0.
- # When a given manual is available in multiple formats, we prefer the
- # "smallest" one (mono < chapter < section < node), since packages with
- # multiple manuals tend to be large, and in any event, we usually have a
- # generic url (/software/pkgname/manual/) linking to all available forms.
- sub prefer_xref_type {
- my ($type1,$type2) = @_;
- my %xref_types = (
- "node" => 10,
- "section" => 20,
- "chapter" => 30,
- "mono" => 40,
- );
-
- if (! exists $xref_types{$type1}) {
- warn "$HTMLXREF_FILE:$.: unexpected xref type: $type1\n";
- }
- if (! exists $xref_types{$type2}) {
- warn "$HTMLXREF_FILE:$.: unexpected xref type: $type2\n";
- }
-
- return $xref_types{$type1} < $xref_types{$type2};
- }
-}
-
-
-
-# Read $MAINTAINERS_FILE according to $HOW, either "by-package" or
-# "by-maintainer". We return a hash. With "by-package", the keys are
-# package names and the values are a list of maintainer hash references.
-# With "by-maintainer", the keys are maintainer (real) names and the
-# values are hash references with their information.
-# If a field occurs more than once in a given maintainer's entry,
-# the values are separated by a |.
-#
-# Special maintainer keys we synthesize, i.e., that are not in the
-# actual maintainers file:
-# is_generic - whether it is an actual person or a generic address;
-# best_email - uses privateemail where present, in preference to email;
-# lineno - location in the file.
-#
-sub read_maintainers {
- my ($how) = @_;
- my %ret;
-
- open (MAINTAINERS_FILE) || die "open($MAINTAINERS_FILE) failed: $!";
-
- # read the real information.
- my %maint; # info we are accumulating for one maintainer
- while (<MAINTAINERS_FILE>) {
- next if /^#/; # ignore comments
- next if /^%/; # ignore Recutils annotation
- chomp;
-
- # at a blank line, save the maintainer info we've accumulated, if any.
- if (/^\s*$/) {
- &debug_hash ($., %maint);
- next unless keys %maint;
-
- # record whether this is a generic maintainer (starts with lowercase):
- $maint{"is_generic"} = $maint{"name"} =~ m/^[a-z]/;
-
- # record best email to use for the maintainer.
- $maint{"best_email"} = $maint{"privateemail"} || $maint{"email"};
-
- # record where we found it, more or less. We are past the blank
- # line, and we can assume every entry has at least two lines.
- $maint{"lineno"} = $. - 4;
-
- if ($how eq "by-package") {
- # split apart the package value we've accumulated..
- if (exists $maint{"package"} || exists $maint{"uploader"}) {
- my @pkgs = split (/\|/, $maint{"package"});
- my @uplds = split (/\|/, $maint{"uploader"});
-
- # append this maintainer to the list for each of his/her packages.
- my %copy = %maint;
- $copy{"is_uploader"} = 0;
- for my $p (@pkgs) {
- my @x = exists $ret{$p} ? @{$ret{$p}} : ();
- push (@x, \%copy);
- $ret{$p} = address@hidden;
- }
- my %copy2 = %maint;
- $copy2{"is_uploader"} = 1;
- for my $p (@uplds) {
- my @x = exists $ret{$p} ? @{$ret{$p}} : ();
- push (@x, \%copy2);
- $ret{$p} = address@hidden;
- }
- } else {
- warn "no packages for $maint{name}";
- }
-
- } elsif ($how eq "by-maintainer") {
- if (! exists $maint{"name"}) {
- warn "no name for maintainer";
- next;
- }
- my $name = $maint{"name"};
- if (exists $ret{$name}) {
- warn "ignoring second entry for maintainer $name";
- next;
- }
- my %copy = %maint;
- $ret{$name} = \%copy;
-
- } else {
- die "can't read_maintainers($how)";
- }
-
- undef %maint; # clear out for next maintainer.
-
- last if /^\f$/; # form feed marks end of info.
- next;
- }
-
- # key is everything before the first colon.
- # value is everything after the first colon and whitespace.
- my ($key,$val) = split (/:\s*/, $_, 2);
-
- # check that an email value doesn't have two @'s.
- if ($key =~ /email/ && $val =~ /@@/) {
- warn "value for key $key has double \@: $val";
- next;
- }
-
- # if key already exists, use | to separate values.
- $val = "$maint{$key}|$val" if exists $maint{$key};
-
- # todo: parse key of address+ and append.
- $maint{$key} = $val;
- }
-
- # skip the rest.
- close (MAINTAINERS_FILE) || warn "close($MAINTAINERS_FILE) failed: $!";
-
- return %ret;
-}
-
-
-
-# Return list of entries in $OLDPACKAGES_FILE -- one per line, ignoring
-# comments starting with # and blank lines.
-#
-sub read_oldpackages {
- local $GNUPACKAGES_FILE = $OLDPACKAGES_FILE;
- my %ret = &read_gnupackages (); # reuse routine via dynamic scoping
- return %ret;
-}
-
-
-
-# Return list of entries in $RECENTREL_FILE -- one per line, ignoring
-# comments starting with # and blank lines.
-#
-sub read_recentrel {
- my @ret = ();
-
- open (RECENTREL_FILE) || die "open($RECENTREL_FILE) failed: $!";
- while (<RECENTREL_FILE>) {
- next if /^\s*#/; # ignore comments
- next if /^\s*$/; # ignore blank lines.
- chomp;
- push (@ret, $_);
- }
- close (RECENTREL_FILE) || warn "close($RECENTREL_FILE) failed: $!";
-
- return @ret;
-}
-
-
-
-# read the savannah groups.tsv file, return a hash of information, where
-# the keys are project identifiers and the values are references to
-# hashes with the information. A key "lineno" is included in each value.
-#
-sub read_savannah {
- my %ret;
-
- open (SAVANNAH_FILE) || die "open($SAVANNAH_FILE) failed: $!";
- <SAVANNAH_FILE>; # ignore first line (with field names).
-
- # We want only the offical GNU packages, which, happily, come first (type=1).
- while (<SAVANNAH_FILE>) {
- last if /^2/; # quit at first non-gnu
- chomp;
- my ($type_id,$name,$unix_group_name,$group_name) = split (/\t/);
-
- my %pkg;
- $pkg{"name"} = $group_name;
- $pkg{"lineno"} = $.;
-
- if (exists $ret{$unix_group_name}) {
- warn "$SAVANNAH_FILE:$.: already saw $unix_group_name?\n";
- } else {
- $ret{$unix_group_name} = \%pkg;
- }
- }
-
- close (SAVANNAH_FILE) || warn "close($SAVANNAH_FILE) failed: $!";
-
- return %ret;
-}
-
-
-1;
Index: recentrel.txt
===================================================================
RCS file: recentrel.txt
diff -N recentrel.txt
--- recentrel.txt 20 May 2007 17:23:33 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-# released only, no announcement
-gnuradio
-commoncpp
-gcc
-solfege
-smalltalk
-nano
-global
-kawa
-bayonne
-ccscript
-tramp
-gprolog
-libextractor
-gnunet
-ccrtp
-aspell
-gdb
-bpel2owfn
-libcdio
-gettext
-ccaudio
-gettext
-radius
-autoconf
-units
-gnujump
-osip
-mailutils
-inetutils
-cpio
-groff
-jel
-electric
-glibc
-erc
-parted
-ed
-reftex
-bash
-readline
-findutils
-libmatheval
-gsl
-glpk
-autogen
-coreutils
-src-highlite
-m4
-songanizer
-reftex
-gzip
-osip
-gnutls
-gsasl
-classpath
-libidn
-xnee
-libgcrypt
-autogen
-libopts
-glpk
-ghostscript
-gperf
-gnupg
-tramp
-nano
-global
-fdisk
-parted
-solfege
-bpel2owfn
-libc
-gnuschool
-shtool
Index: Makefile
===================================================================
RCS file: Makefile
diff -N Makefile
--- Makefile 20 Jun 2018 02:36:23 -0000 1.63
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,183 +0,0 @@
-# $Id: Makefile,v 1.63 2018/06/20 02:36:23 mikegerwitz Exp $
-# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
-# Free Software Foundation, Inc.
-#
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.
-
-default:
-
-# when we want to remake all the .html on the web site,
-# $(gw) being the www cvs checkout.
-html-update html: pkgblurbs.txt
- gm generate logos html >$(gw)/graphics/allgnupkgs.html
- gm generate manual html >$(gw)/manual/allgnupkgs.html
- gm generate packages html >$(gw)/software/allgnupkgs.html
- gm generate blurbs html >$(gw)/server/home-pkgblurbs.html
-
-html-diff:
- -cd $(gw) && cvs diff -u0 */allgnupkgs.html server/home-pkgblurbs.html
-
-pkg-blurbs-html bhtml: pkgblurbs.txt
- gm generate blurbs html | tee ~/tmp/x.html
-
-test-genlhtml ghtml: # result included from www.gnu.org/graphics/manual.html
- gm generate logos html | tee ~/tmp/x.html
-
-test-genmhtml mhtml: # result included from www.gnu.org/manual/manual.html
- gm generate manual html | tee ~/tmp/x.html
-
-test-genphtml phtml shtml: # result included from
www.gnu.org/software/software.html
- gm generate packages html | tee ~/tmp/x.html
-
-test-genmaint maint: # this function updates gnuorg/maintainers.bypkg
- gm generate maintainers bypackage
-
-test-genemail email:
- gm generate email bypackage -o msg.1303 -p pkglist-cveauto.txt -t
massmail-1303-cveauto.txt
- ls msg.1303/
-
-email-stale-%:
- gm generate email bypackage -o msg.$* -p pkglist-stale-$*.txt -t
massmail-$*-stale.txt
- ls msg.$*/
-
-email-1201:
- gm generate email bypackage -o msg.1201 -p pkglist-fsfpackages.txt -t
massmail-1201-copyright.txt
- ls msg.1201/
-
-test-genemail-err:
- gm generate email bypackage # should give error, missing args
-test-genemail-help:
- gm generate email bypackage -h
-fsfpackages.txt: copyright.list gm gm-read.pl gm-util.pl pkgblurbs.txt
- gm list copyrightfsf >$@
-
-test-listfsf fsf:
- gm list copyrightfsf
-
-test-listfsfnot fsfnot:
- gm list copyrightfsfnot
-
-test-listpapers pap:
- gm list copyrightpapers
-
-test-nophysical:
- gm list maintainers nophysical
-
-test-listactivity stale:
- gm list packages activity
-
-test-gplv3 gplv3:
- gm list packages gplv3
-
-test-unanswered:
- gm list packages unanswered
-
-test-checkactivity cact:
- gm check activityfile
-
-test-checkfsf cfsf: gnupackages.txt
- gm check fsfcopyright
-
-test-checkmaint cmaint: gnupackages.txt
- gm check maintainers
-
-test-checkftp-upload cfu:
- gm check ftpupload
-
-test-checkftp ftp:
- gm check ftplisting
-
-test-checksv sv:
- gm check savannah
-
-#
-creport: gnupackages.txt
- @printf "total "; gm generate maintainers bypackage \
- | grep ' - ' | grep -v ' (generic)' | wc -l
- @printf "fsf "; gm list copyrightfsf 2>/dev/null | wc -l
address@hidden "notfsf"; gm list copyrightfsfnot | wc -l
-# the totals don't exactly match because of gm-utils.pl:skip_pkg_p,
-# so don't bother showing.
- @$(MAKE) --no-print-directory cfsf
-# just a dirty count of the various categories.
- @sed -n 's/^copyright-holder: fsf//p' gnupackages.txt \
- | sed 's/^-//' \
- | sort | uniq -c
-
-# | sed 's/-.*//' \
-
-maint-field-check:
- sed 1,/`printf '\f'`/d maintainers \
- | sed s/#.*// |
- | sed -n 's/^\([^ ]*\):.*/\1/p' \
- | sort | uniq -c | sort -n
-
-test-listmaint:
- gnumaint list maintainers $(sep)
- gnumaint list maintainers package karl1test $(sep)
- gnumaint list maintainers karl $(sep)
-
-test-list-packages:
-# gnumaint list packages $(sep)
-# gnumaint list packages maintained $(sep)
-# gnumaint list packages unmaintained $(sep)
-# gnumaint list packages maintainer karl $(sep)
- gnumaint list packages maintainer arenn $(sep)
-
-#
-# gnumaint (mail) and conversion.
-#
-test-help:
- gnumaint help sendemail $(sep)
- gnumaint help list $(sep)
- gnumaint help $(sep)
-
-test-rece:
-# gnumaint recemail </etc/issue
-# gnumaint recemail <testjunk1.msg
- gnumaint recemail <testgood1.msg
-# gnumaint recemail <testaddr+real.msg
-# gnumaint recemail <testaddrangle.msg
-# gnumaint recemail <testaddrcase.msg
-# gnumaint recemail <testaddrcomment.msg
-
-sep = 2>&1 | dos2unix; true ------------------------------
-
-test-send:
- gnumaint sendemail active $(sep)
-
-test-activity-convert:
- mailtoname
-
-test-maint-convert:
-# maintfileupgrade $(gorg)/maintainers | dos2unix
- maintfileupgrade m.src | dos2unix | tee m.new
-
-#
-# Old txt files, now maintained as recfiles
-pkgblurbs.txt: rec/pkgblurbs.rec
- gawk -f rec/pkgblurbs2txt.awk < $< > $@
-gnupackages.txt: rec/gnupackages.rec
- gawk -f rec/gnupackages2txt.awk < $< > $@
-
-#
-# From the good old days when the Directory was in CVS.
-#
-#gnuorg = $(go)
-#dircvs = $(HOME)/gnu/src/directory/CVS
-#
-## compare GNU package names in maintainers file and Free Software Directory.
-#check-pkgnames: pkgnames.frommaint pkgnames.fromdir
-# comm -3 $^
-#
-## list of all packages derived from the maintainers file.
-## (easier to parse from maintainers.bypkg, generated from maintainers).
-#pkgnames.frommaint: $(gnuorg)/maintainers.bypkg
-# sed -e 's/#.*$$//' -e 's/ - .*$$//' $< | grep -v '(generic)' \
-# | sed '/^$$/d' | sort >$@
-#
-## list of all packages derived from the Free Software Directory.
-#pkgnames.fromdir: gnufsd $(dircvs)/Entries
-# $< byname >$@
Index: temail-4post.txt
===================================================================
RCS file: temail-4post.txt
diff -N temail-4post.txt
--- temail-4post.txt 17 Oct 2016 20:55:55 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-Sample blurbs for sending to new maintainers, to be edited as appropriate.
-
-------------------------------------------------------------------
-[check savannah; if they aren't there, get them to create an account.]
-[a first msg, right after they are appointed]
-
-I added you to the gnu-prog lists. You should have received the welcome
-msgs just before this.
-
-Also, can you please send us a phone number / mailing address /
-alternative email, just to have as backup? We try to collect these for
-all GNU maintainers. Of course we won't publicize the information
-anywhere on the web. If you would prefer to send this info encrypted,
-please let me know.
-
-[for new packages only]
-Also, can you please write a couple of sentences describing your
-package, for use on http://www.gnu.org/manual/blurbs.html?
-
--------------------------------------------------------------------
-[a second msg, after they reply]
-Thanks for the contact info.
-
-[for replacement maintainers only]
-Please go ahead and update any of the information at the savannah
-project and on the web pages (e.g., remove the looking-for-a-maintainer
-notice :) as needed.
-http://www.gnu.org/prep/maintain/html_node/Web-Pages.html talks about
-handling web pages, including a template you can use if you like.
-
-If any questions or problems with the GNU infrastructure, please feel
-free to email us (or address@hidden, as mentioned in the welcome email).
-
-Happy hacking,
Index: spotlight.mk
===================================================================
RCS file: spotlight.mk
diff -N spotlight.mk
--- spotlight.mk 24 Feb 2018 03:27:56 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,77 +0,0 @@
-FP = fencepost.gnu.org
-FP_GNU_EXCLUDES = --exclude=*.sig --exclude=video/TIME --exclude=find.txt.gz \
- --exclude=ls-l*.txt.gz --exclude=gnu-keyring.gpg
-
-SL_DIR = spotlight
-GNUBYTIME = perl $(SL_DIR)/gnubytime.pl
-SL_M4 = $(SL_DIR)/spotlight.m4
-
-SL_TMP = spotlight-tmp
-REL = $(SL_TMP)/releases.gnu
-REL_BY_TIME = $(SL_TMP)/releases-by-time.gnu
-REL_THIS_MONTH = $(SL_TMP)/releases-this-month.gnu
-REL_READY = $(SL_TMP)/releases-ready.gnu
-REL_MD = $(SL_TMP)/releases.md
-SL_MD = $(SL_DIR)/spotlight-$(shell date +%Y-%m-%d).md
-ACTIVITY_REPORT = $(SL_TMP)/activity-report.txt
-
-define HELP
-Procedure:
- 1. make release-list
- 2. [manually edit $(REL_THIS_MONTH), rename to $(REL_THIS_MONTH)-ready]
- 3. make markdown
-endef
-
-release-list: $(REL_THIS_MONTH)
-
-markdown: $(SL_MD)
-
-help:
- $(info $(HELP))
-
-.PHONY: release-list markdown help
-
-$(REL):
- mkdir -p $(SL_TMP)
- rsync --no-h -r $(REL_EXCLUDES) $(FP):/srv/data/ftp-mirror/ftp/ \
- | egrep -v '^[dl]' >"$@"
-
-$(ACTIVITY_REPORT):
- scp $(FP):~brandon/src/womb/gnumaint/activity-report.txt $@
-
-$(REL_BY_TIME): $(REL)
- $(GNUBYTIME) "$<" >"$@"
-
-ifdef END_DATE
-$(REL_THIS_MONTH): $(REL_BY_TIME)
- if grep -q "$(END_DATE)" $<; then \
- sed '/$(END_DATE)/,$$d;s|^.*/||' "$<" | sort -u >"$@"; \
- printf "\nNow manually edit $@, rename to address@hidden"; \
- printf "Run '$(MAKE) markdown' to continue.\n"; \
- else \
- printf "Invalid end date (no packages released on that
date)\n"; \
- exit; \
- fi
-else
-$(REL_THIS_MONTH):
- $(error No end date (end of previous Spotlight) specified (e.g.
END_DATE=20150222))
-endif
-
-$(REL_THIS_MONTH)-ready:
- $(error You must create $@ by manually editing $(REL_THIS_MONTH))
-
-$(REL_READY): $(REL_THIS_MONTH)-ready
- sort "$<" >"$@"
-
-$(REL_MD): $(REL_READY)
- sed \
- -e 's,\(.*\)-\([^-]*\),*
[\1-\2](https://www.gnu.org/software/\1/),' \
- "$<" >"$@"
-
-$(SL_MD): $(REL_MD)
- m4 \
- -DNN="`wc -l <$(REL_MD)`" \
- -DDATE="`date '+%B %d, %Y'`" \
- -DRELEASES="`cat $(REL_MD)`" \
- -DNEWMAINT="TODO new maintainers" \
- $(SL_M4) >"$@"
Index: temail-2dub.txt
===================================================================
RCS file: temail-2dub.txt
diff -N temail-2dub.txt
--- temail-2dub.txt 15 Jan 2019 03:03:19 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,152 +0,0 @@
-From: address@hidden (Brandon Invergo)
-To:
-Cc: address@hidden, address@hidden
-Subject: maintaining
-
-I hereby appoint you as the new maintainer of
-Thanks for volunteering.
-
-Being a package maintainer is a relationship between you personally
-and the GNU Project. The maintainer or maintainers are the ones who
-take the overall responsibility for the work done on the package, on
-behalf of the GNU Project.
-
-If you recruit others to contribute to the package (and some packages
-have hundreds of contributors), they work under your supervision. You
-can delegate some of your authority to them, but you can also take it
-back. Please make sure they don't come to think that you have ceded
-your authority to them and that they no longer have to follow your
-directions.
-
-The GNU Project will sometimes need to talk with you, sometimes
-privately, so please make sure we know a personal email address which
-you read frequently. We normally publish these email addresses in the
-Free Software Directory. We would also like to know other ways to get
-in touch with you if email fails; we do not give them out.
-
-If you ever want to step down as maintainer, or would like someone
-else to replace you, please talk with address@hidden about it.
-When a package has no maintainer, we need to know about the problem so
-we can look for a new one. The program remains a GNU package
-unless/until the GNU project decides to drop ties with it.
-
-Likewise, if you think someone else should join you as co-maintainer
-or take over from you as maintainer, please suggest that to us, since
-we will need to establish a relationship with that person. A person
-cannot become a GNU package maintainer except by being appointed by
-the GNU Project.
-
-Your appointment as maintainer is provisional at first. We'll make
-your appointment full and permanent when we see that you're doing the
-job. Usually that means we see that you've made a release properly,
-with the changes that the next release ought to have. However, if
-making a proper release involves a lot of work, and will therefore
-take a long time, we could appoint you full maintainer when we see you
-have made a good start on the job.
-
-Please tell us the first time you're about to make a release, so we
-can guide you on doing it properly following our conventions.
-
-The GNU maintainer information in https://www.gnu.org/prep/maintain/
-describes a lot of procedures for GNU maintainers. It also
-describes who you can ask for various kinds of support or advice. If
-you encounter a situation where it isn't clear what to do, you can
-also ask address@hidden, which is a list of a few other GNU
-maintainers who have offered to answer questions for new maintainers.
-
-We will add you to the gnu-prog mailing list, a moderated list for
-announcements to GNU maintainers. We will also add you to the
-gnu-prog-discuss list, which can be used for discussion among GNU
-maintainers, but whether to stay on the list is up to you.
-
-We strongly recommend using ftp.gnu.org to make distributions
-available. Please see the GNU maintainers guide for the procedure,
-https://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html.
-When that is set up, you'll be able to do uploads yourself. If you
-want to also distribute the package from a site of your own, that is
-fine. To use some other site instead of ftp.gnu.org is acceptable,
-provided it allows connections from anyone anywhere.
-
-Please write or update the web pages about the program, to put in
-https://www.gnu.org/software/PROGNAME. These pages should be the
-main web site for the program, and they should really have the
-information for users, not just a link to another site; please use
-https://www.gnu.org/software/PROGNAME whenever you give out the URL
-for the home page of the program. Please don't set up a "site for the
-program" anywhere else--if you want to do work on additional web pages
-about the program, please put them on www.gnu.org.
-
-(It is ok to put pages that address developers-only topics on another
-site, and likewise for pages that access databases.)
-
-In writing the web pages, please follow the style guidelines in
-https://www.gnu.org/server/fsf-html-style-sheet.html. See also
-https://www.gnu.org/prep/maintain/html_node/Web-Pages.html.
-
-We ask that you register your package on Savannah, at least to maintain
-your package's web pages. This is independent of where the actual
-program sources are hosted (although we encourage you to use Savannah
-for that too). This makes it easy to update the web pages, since you
-will have access to a CVS repository for the web pages and can update it
-as you like. Using Savannah will help the GNU Project in other ways,
-too. To set this up, visit https://savannah.gnu.org/.
-
-Please also write an entry or a change for the page
-https://www.gnu.org/people/people.html, and mail that to
address@hidden Note that we don't want to talk about
-proprietary software, so if you have worked on any, please don't
-mention it here. Your entry can include a link to your home page
-provided it fits our usual criteria for what we link to.
-
-Please update the program's entry in our Free Software Directory. See
-https://www.gnu.org/help/directory.html#adding-entries for help.
-
-Mailing lists: Your package should already have a mailing list
address@hidden for reporting bugs. If not, please create it--see
-https://www.gnu.org/prep/maintain/html_node/Mail.html for the details of
-creating mailing lists.
-
-Some GNU programs with many users have another mailing list,
address@hidden, for people to ask other users for help. If
-your program has many users, you should create such a list for it.
-For a fairly new program, which doesn't have a large user base yet, it
-is better not to bother with this.
-
-Please post announcements of new releases of the program to
address@hidden Include a brief description of the program so people
-can tell whether they are interested in using it. The announcement
-should mention the web pages on www.gnu.org, and say where to get
-releases, normally ftp.gnu.org.
-
-You can also send announcements to a special list address@hidden
-for your program if you think that is warranted. (This list should be
-moderated.)
-
-Please also mention release announcements in the news feed of the
-savannah project site, <https://savannah.gnu.org/projects/PROGNAME>.
-The news feeds from the GNU project are aggregated at
-<https://planet.gnu.org/>.
-
-For more details about writing and publicizing announcements, please see
-https://www.gnu.org/prep/maintain/html_node/Announcements.html.
-
-For details on all policies and recommendations for GNU packages,
-please see the GNU maintainers information, at
-https://www.gnu.org/prep/maintain/, and GNU coding standards, at
-https://www.gnu.org/prep/standards/.
-
-For the basic ideas of GNU and free software, please read these essays:
-http://www.gnu.org/gnu/the-gnu-project.html
-http://www.gnu.org/philosophy/free-sw.html
-http://www.gnu.org/philosophy/categories.html
-http://www.gnu.org/philosophy/compromise.html
-http://www.gnu.org/philosophy/words-to-avoid.html
-http://www.gnu.org/gnu/linux-and-gnu.html
-http://www.gnu.org/gnu/gnu-linux-faq.html
-http://www.gnu.org/philosophy/open-source-misses-the-point.html
-
-new-gnu people, could you please enter XYZ in
-gnuorg/maintainers and add him to the gnu-prog lists?
-
-Savannah hackers, could you please ensure that XYZ is an administrator
-of the project on Savannah (if there is one)?
Index: testgood1.msg
===================================================================
RCS file: testgood1.msg
diff -N testgood1.msg
--- testgood1.msg 13 Feb 2007 19:50:49 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-From address@hidden Sun Feb 11 14:48:08 2007
-Return-path: <address@hidden>
-Envelope-to: address@hidden
-Delivery-date: Sun, 11 Feb 2007 14:48:08 -0500
-Received: from karl by fencepost.gnu.org with local (Exim 4.60)
- (envelope-from <address@hidden>)
- id 1HGKgC-0000P9-M8
- for address@hidden; Sun, 11 Feb 2007 14:48:08 -0500
-To: address@hidden
-Message-Id: <address@hidden>
-From: address@hidden
-Date: Sun, 11 Feb 2007 14:48:08 -0500
-Subject: GNU package maintenance
-
Index: testaddrcomment.msg
===================================================================
RCS file: testaddrcomment.msg
diff -N testaddrcomment.msg
--- testaddrcomment.msg 17 Feb 2007 01:41:03 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-From address@hidden Sun Feb 11 14:48:08 2007
-Return-path: <address@hidden>
-Envelope-to: address@hidden
-Delivery-date: Sun, 11 Feb 2007 14:48:08 -0500
-Received: from karl by fencepost.gnu.org with local (Exim 4.60)
- (envelope-from <address@hidden>)
- id 1HGKgC-0000P9-M8
- for address@hidden; Sun, 11 Feb 2007 14:48:08 -0500
-To: address@hidden
-Message-Id: <address@hidden>
-From: address@hidden (Karl Berry)
-Date: Sun, 11 Feb 2007 14:48:08 -0500
-Subject: GNU package maintenance
-
Index: temail-0query.txt
===================================================================
RCS file: temail-0query.txt
diff -N temail-0query.txt
--- temail-0query.txt 23 Jan 2017 19:23:09 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,131 +0,0 @@
-[This is generic text to send to prospective (co-)maintainers, that is,
- before they are appointed. Of course the intro text should be adjusted
- to suit the case at hand. The crucial thing is that all maintainers
- must explicitly agree to follow GNU policies.]
-
-Below is our general info on policies and conventions for maintaining
-GNU programs. Please take a look; assuming you're ok with them, we'll
-be glad to officially appoint you the new maintainer.
-
-========================================================================
-Here's the explanation of what it means for a program to be a GNU
-package, which also explains at a general level the responsibilities
-of a GNU package maintainer.
-
-GNU is not simply a collection of useful programs. We started the GNU
-Project with a specific overall goal: to create a free software
-operating system, the GNU System. To keep the GNU system technically
-coherent, we make sure that the parts fit well together.
-
-Thus, becoming a GNU maintainer is a somewhat formal process, since
-affiliating with the GNU project as a maintainer means you must agree to
-work (within the confines of the maintenance) with the GNU project's
-mission for software freedom.
-
-Here is the basic explanation.
-
-======================================================================
-Making a program GNU software means that its developers and the GNU
-project agree that "This program is part of the GNU project, released
-under the aegis of GNU"--and say so in the program.
-
-The GNU Project appoints package maintainers--initially the main
-developers, or those of them who wish to be appointed--to take
-responsibility for the package on the behalf of the GNU project. We
-hope it won't happen, but if they step down, we look for other
-maintainers. The program remains a GNU package unless/until the GNU
-project decides to drop ties with it.
-
-Being a GNU package means we normally put the program on ftp.gnu.org
-(although we can instead refer to your choice of ftp site, as long as
-it allows connections from anyone anywhere).
-
-The official site for the GNU package should be on www.gnu.org,
-specifically in /software/PROGRAMNAME. Whenever you give out the URL
-for the package home page, you would give this address. It is ok to
-use another site for secondary topics, such as pages meant for people
-helping develop the package, and for running data bases. (We can make
-an exception, and put the web pages somewhere else, if there is a
-pressing reason.)
-
-It means that the developers agree to pay attention to making the
-program work well with the rest of the GNU system--and conversely that
-the GNU project will encourage other GNU maintainers to pay attention
-to making their programs fit in well with it.
-
-Just what it means to make programs work well together is mainly a
-practical matter that depends on what the program does. But there are
-a few general principles. Certain parts of the GNU coding standards
-directly affect the consistency of the whole system. These include
-the standards for configuring and building a program, and the
-standards for command-line options. It is important to make all GNU
-programs follow these standards, where they are applicable.
-
-Another important GNU standard is that GNU programs should come with
-documentation in Texinfo format. That is the GNU standard
-documentation format, and it can be converted automatically into
-various other formats. You can use DocBook format or another suitable
-format for the documentation sources, as long as converting it
-automatically into Texinfo gives good results.
-
-If a GNU program wants to be extensible, it should use Guile
-(https://www.gnu.org/software/guile/guile.html) as the programming
-language for extensibility, if possible. For some programs there's a
-reason to do things differently, but please use Guile if that is
-feasible.
-
-A GNU program should use the latest version of the license that the
-GNU Project recommends--not just any free software license. For most
-packages, this means releasing under the GNU GPL, "version 3 or later."
-
-A GNU program should not recommend use of any non-free program, and it
-should not refer the user to any non-free documentation for free
-software. The campaign for free documentation to go with free
-software is a major focus of the GNU project (see
-https://www.gnu.org/philosophy/free-doc.html); to show that we are
-serious about it, we must not undermine our position by recommending
-documentation that isn't free.
-
-Occasionally there are issues of terminology which are important for
-the success of the GNU project as a whole. So we expect maintainers
-of GNU programs to follow them. For example, the documentation files
-and comments in the program should speak of GNU/Linux systems, rather
-than calling the whole system "Linux", and should use the term "free
-software" rather than "open source". Since a GNU program is released
-under the auspices of GNU, it should not say anything that contradicts
-the GNU Project's views.
-
-For a program to be GNU software does not require transferring
-copyright to the FSF; that is a separate question. If you transfer
-the copyright to the FSF, the FSF will enforce the GPL for the program
-if someone violates it; if you keep the copyright, enforcement will be
-up to you.
-
-As the GNU maintainer of the package, please make sure to stay in
-touch with the GNU Project. If we come across a problem relating to
-the package, we need to tell you about it, and to discuss with you how
-to solve it. Sometimes we will need to ask you to work with other
-maintainers to solve a problem that involves using multiple packages
-together. This probably will happen less than once a year, but please
-make sure we can contact you in case it does happen.
-
-Finally, if you decide to step down as maintainer at any time, please
-inform us (see https://www.gnu.org/prep/maintain/html_node/Stepping-Down.html).
-
-More details are available in these documents:
- Information For Maintainers of GNU Software:
- https://www.gnu.org/prep/maintain/
-
- GNU Coding Standards:
- https://www.gnu.org/prep/standards/
-
-For the basic ideas of GNU and free software, please read these essays:
- https://www.gnu.org/gnu/the-gnu-project.html
- https://www.gnu.org/philosophy/free-sw.html
- https://www.gnu.org/philosophy/categories.html
- https://www.gnu.org/philosophy/compromise.html
- https://www.gnu.org/philosophy/words-to-avoid.html
- https://www.gnu.org/gnu/linux-and-gnu.html
- https://www.gnu.org/gnu/gnu-linux-faq.html
- https://www.gnu.org/philosophy/open-source-misses-the-point.html
-========================================================================
Index: gm-generate.pl
===================================================================
RCS file: gm-generate.pl
diff -N gm-generate.pl
--- gm-generate.pl 10 Apr 2019 01:00:44 -0000 1.23
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,447 +0,0 @@
-# $Id: gm-generate.pl,v 1.23 2019/04/10 01:00:44 mikegerwitz Exp $
-# The generate actions for the gm script (see --help message).
-#
-# Copyright 2007, 2008, 2009, 2010, 2012, 2013, 2014
-# Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-
-
-
-# Return doc links for all packages. The result is included in
-# http://www.gnu.org/manual/manual.html via SSI.
-#
-sub generate_logos_html {
- my $autostamp = &generated_by_us ();
- my @ret = ("<!-- File $autostamp -->");
- push (@ret, "<table>");
-
- my %pkgs = &read_gnupackages ();
- for my $pkgname (sort keys %pkgs) {
- next if &skip_pkg_p ($pkgname);
- my $logo = $pkgs{$pkgname}->{"logo"};
- next unless $logo;
-
- push (@ret, qq!<tr><td><a href="/software/$pkgname/">$pkgname</a></td>!);
- push (@ret, qq! <td><img alt="$pkgname"
src="/graphics/pkg-logos-250x100/$pkgname.250x100.png" /></td></tr>\n!);
- }
-
- push (@ret, "</table>");
- push (@ret, "<!-- End file $autostamp -->");
-
- return @ret;
-}
-
-
-
-# Return all packages with all their maintainers, one package per
-# line, like the original format of the maintainers file. We run this
-# from cron.
-#
-sub generate_maintainers_bypackage {
- my @ret = ();
-
- my %pkgs = &read_maintainers ("by-package");
-
- for my $p (sort { lc($a) cmp lc($b) } keys %pkgs) {
- my ($entries,$generic_entry,$uploaders) = &maintainer_email_addrs
($pkgs{$p});
-
- # might not be anything in @entries if the only maintainer was generic.
- push (@ret, "$p - $entries") if $entries;
-
- # if we had a generic maintainer for this package, add that as a
- # separate entry, since that's the way rms wants it.
- push (@ret, "$p (generic) - $generic_entry") if $generic_entry;
-
- # if there are named uploaders (distinct from maintainers), add
- # them under a separate entry
- push (@ret, "$p (uploaders) - $uploaders") if $uploaders;
- }
-
- return @ret;
-}
-
-
-
-# Return doc links for all packages. The result is included in
-# www.gnu.org/manual/manual.html via SSI.
-#
-sub generate_manual_html {
- my $autostamp = &generated_by_us ();
- my @ret = ("<!-- File $autostamp -->");
-
- # we want to output by category, so keep a hash with category names
- # for keys, and lists of package references for values.
- my %cat;
-
- my %pkgs = &read_gnupackages ();
-
- # Sort packages into their categories.
- for my $pkgname (sort keys %pkgs) {
- next if &skip_pkg_p ($pkgname);
- my %p = %{$pkgs{$pkgname}};
-
- my $short_cat = $p{"doc_category"};
- if (! $short_cat) {
- warn (&gnupkgs_msg ("lacks doc_category\n", %p));
- next;
- }
-
- # Append to the list of packages for this category.
- my @x = exists $cat{$short_cat} ? @{$cat{$short_cat}} : ();
- push (@x, \%p);
- $cat{$short_cat} = address@hidden;
- }
-
- # show list of all categories at top
- push (@ret, &output_category_list (%cat));
-
- push (@ret, "<table>");
- push (@ret, qq!<col width="24%" />!); # <td width=...> disallowed in XHTML.
- push (@ret, qq!<col width="74%" />!);
-
- # Sort first by full category name, since the abbreviations sometimes
- # start with a completely different string (Libraries -> Software
- # libraries). Then, for each category, sort list of packages and output.
- #
- for my $short_cat (sort by_full_cat keys %cat) {
- my ($full_cat,$cat_url) = @{ &read_doc_categories ($short_cat) };
-
- push (@ret, &output_cat ($short_cat, $full_cat, $cat_url));
-
- # For each package ...
- for my $pkg_ref (sort by_pkgname @{$cat{$short_cat}}) {
- my %p = %$pkg_ref;
- my ($doc_url,$doc_summary) = ($p{"doc_url"}, $p{"doc_summary"});
- if (! $doc_url || ! $doc_summary) {
- warn (&gnupkgs_msg ("lacks doc_(url|summary)\n", %p));
- next;
- }
-
- # convert the doc-url value to a hash of manuals and urls.
- my $pkgname = $p{"package"};
- my $home_url = "/software/$pkgname/";
-
- my %doc_urls = &find_doc_urls ($pkgname, $p{"doc_url"});
-
- # if there was no explicit url for the package, use the home page.
- if (! exists ($doc_urls{$pkgname})) {
- $doc_urls{$pkgname} = $home_url;
- }
-
- # have to replace & with & for XHTML.
- for my $manual (keys %doc_urls) {
- (my $doc_url_xhtml = $doc_urls{$manual}) =~ s,\&,\&,g;
- $doc_urls{$manual} = $doc_url_xhtml;
- }
-
- # start building output string for this package.
- # first column is the package name and additional manuals.
- # Add an id for each package for easy linking;
- # but XHTML, as usual, introduces gratuitious problems.
- my $xhtml_id = &xhtml_id ($pkgname);
- my $str = qq!\n<tr id="$xhtml_id"><td>* !;
-
- # the main package identifier and its doc url. If we have a
- # mundane name, use it. Otherwise, prettify the pkg identifier.
- my $human_label = $p{"human_label"};
- $str .= qq!<a href="$doc_urls{$pkgname}">$human_label</a>!;
-
- # followed by other manual identifiers if present.
- my @more_manuals = ();
- for my $manual (keys %doc_urls) {
- next if $manual eq $pkgname; # already took care of that
- push (@more_manuals,
- sprintf (qq!<a href="%s">$manual</a>!, $doc_urls{$manual}));
- }
- if (@more_manuals) {
- $str .= "\n<small>(";
- $str .= join ("\n ", sort @more_manuals);
- $str .= ")</small>\n";
- }
- $str .= "</td>\n";
-
- # Second column is the package synopsis, any shop url's, and
- # the package home page.
- my $summary = "$doc_summary."; # yep, add period
- my $shop = &find_shop_urls (%p);
- my $home = qq!\n [<a href="$home_url">$pkgname home</a>]!;
-
- $str .= qq! <td>$summary$shop$home!;
- $str .= "</td></tr>";
-
- push (@ret, $str);
- }
- }
- push (@ret, "</table>");
-
- # show list of categories again at the end:
- push (@ret, &output_category_list (%cat));
-
- push (@ret, "<!-- End file $autostamp -->");
-
- return @ret;
-
-
- # HTML output for the beginning of each doc category --
- # the table row with the text, a header, a link. The padding-top
- # leaves a bit of extra space above the header, and padding-left moves
- # the header right to straddle the columns.
- #
- sub output_cat {
- my ($short_cat,$full_cat,$cat_url) = @_;
- my $css = qq!style="padding-top:.8em; padding-left:16%;"!;
- my $ret = "\n\n<tr>\n";
- $ret .= qq!<td id="$short_cat" colspan="2" $css>!;
- $ret .= qq!<a href="$cat_url">! if $cat_url;
- $ret .= "<big><b>$full_cat</b></big>";
- $ret .= "</a>" if $cat_url;
- $ret .= "</td></tr>";
- return $ret;
- }
-
- # given two package references, compare their names (for sorting).
- sub by_pkgname { $a->{"package"} cmp $b->{"package"}; }
-
- # given two short categories, compare their full names (for sorting).
- sub by_full_cat { &full_category ($a) cmp &full_category ($b); }
-
- # return just the full category name for SHORT_CAT.
- sub full_category {
- my ($short_cat) = @_;
- my ($full,undef) = @{ &read_doc_categories ($short_cat) };
- return $full;
- }
-
- # return string with all categories as links, as a sort of toc.
- sub output_category_list {
- my (%cat) = @_;
- my $ret = "<p>\n";
-
- for my $short_cat (sort by_full_cat keys %cat) {
- my ($full_cat,$cat_url) = &full_category ($short_cat);
- $full_cat =~ s/ /\ /g; # no spaces in the category name here
- $ret .= qq!<a href="#$short_cat">$full_cat</a> -\n!;
- }
-
- $ret .= "</p>\n";
- return $ret;
- }
-
- # interpret the doc-url value, return hash where keys are manual
- # identifiers and values are their urls.
- #
- sub find_doc_urls {
- my ($pkgname,$doc_url_val) = @_;
- my %ret;
-
- my @vals = split (/\|/, $doc_url_val); # result of parsing is | separators
- for my $val (@vals) {
- if ($val eq "none") {
- ; # nothing to return, let caller handle it.
-
- } elsif ($val eq "htmlxref") {
- my %htmlxref = &read_htmlxref ($pkgname);
- for my $manual (keys %htmlxref) {
- # do not overwrite a url from gnupackages for the main package
- # name with one from the htmlxref. Instead, add junk to make
- # the htmlxref manual have a different key. We don't want to
- # lose it, since if we have a general entry for "Texinfo"
- # (pointing to all its manuals), say, it's still useful to
- # have the direct link to the "texinfo" manual specifically.
- # Since we uppercase the main label, they're visually
- # distinct, too.
- #
- if ($manual eq $pkgname && exists $ret{$pkgname}) {
- $ret{"$manual<!-- again -->"} = $htmlxref{$manual}
- } else {
- # otherwise, take what we are given.
- $ret{$manual} = $htmlxref{$manual};
- }
- }
-
- } else {
- warn "$pkgname: overwriting first doc_url value ($ret{$pkgname}) "
- . "with $val" # source file should not do this.
- if (exists $ret{$pkgname});
- $ret{$pkgname} = $val; # always prefer url given in gnupackages.
- }
- }
- return %ret;
- }
-
- # Handle FSF shop references. We assume they come in pairs:
- # description in one entry and url in the next. We return the HTML to
- # insert in the output, or the empty string.
- #
- sub find_shop_urls {
- my (%pkg) = @_;
- my $ret;
- my @shop = split (/\|/, $pkg{"doc_shop"});
- if (@shop) {
- $ret = "\n <br/>Available in print:";
- # keep same ordering as input.
- my @books = ();
- for (my $i = 0; $i < @shop; $i += 2) {
- my $title = $shop[$i];
- my $url = $shop[$i+1];
- if ($url !~ /https?:/) {
- warn (&gnupkgs_msg ("doc_shop url lacks http (misordered?)\n",%pkg));
- }
- push (@books, qq!\n <cite><a href="$url">$title</a></cite>!);
- }
- $ret .= join (",", @books);
- $ret .= ".";
- } else {
- $ret = "";
- }
- return $ret;
- }
-}
-
-
-
-# Return all packages as relative HTML links to directories by the
-# package name. We carefully maintain http://www.gnu.org/software/
-# so this works. Use the simple pkgname/ directory, since nothing else
-# (neither /index.html nor /pkgname.html) always works.
-#
-sub generate_packages_html {
- my $autostamp = &generated_by_us ();
- my @ret = ("<!-- File $autostamp -->");
-
- my %pkgs = &read_gnupackages ();
- for my $pkgname (sort keys %pkgs) {
- next if &skip_pkg_p ($pkgname);
- push (@ret, qq!<a href="$pkgname/">$pkgname</a> !);
- }
-
- push (@ret, "<!-- End file $autostamp -->");
- return @ret;
-}
-
-
-# Return HTML-formatted blurbs about the packages for the featured
-# package on http://www.gnu.org.
-#
-sub generate_blurbs_html {
- my $autostamp = &generated_by_us ();
- my @ret = ("<!-- File $autostamp -->");
-
- # so we can cross-check blurbs against packages.
- my %gnupkgs = &read_gnupackages ();
-
- my %pkgs = &read_pkgblurbs ();
- for my $pkgname (sort keys %pkgs) {
- next if &skip_pkg_p ($pkgname);
-
- my %pkg = %{ $pkgs{$pkgname} };
- my $msgprefix = "$PKGBLURBS_FILE:$pkg{lineno}";
- warn "$msgprefix: $pkgname not in gnupackages\n"
- if ! exists $gnupkgs{$pkgname};
- #
- # Retrieve info from packages file.
- my $pkglabel = $gnupkgs{$pkgname}->{"human_label"};
- my $pkgactivity = $gnupkgs{$pkgname}->{"activity_status"};
- my $pkglogo = $gnupkgs{$pkgname}->{"logo"};
- delete $gnupkgs{$pkgname}; # so we can see what's left over
-
- # we intentionally omit blurbs for some packages.
- next if $pkg{"blurb"} =~ /^null/;
-
- # Need the anchor version of the package name for the links.
- my $xhtml_id = &xhtml_id ($pkgname);
-
- # Need the regexp-safe version of the package name for the SSI (for gtk+).
- my $rxsafe_id = quotemeta ($pkgname);
- $rxsafe_id =~ s,\\-,-,g; # \- troubles ineiev's request-blurbs
-
- # This ssi stuff lets the homepage extract a single blurb to display.
- push (@ret, qq,\n<!--,
- . qq,#if expr="\$pkg_selection = /:($rxsafe_id|ALL):/" -->,);
-
- # Include the package logo (scaled) in the head, if there is one.
- $logo_xhtml = $pkglogo
- ? qq!\n <img src="/graphics/pkg-logos-250x100/$pkgname.250x100.png"
style="height:1.3em"\n!
- . qq! alt="logo for $pkgname" />!
- : "";
-
- # Note for translators if the package is stale.
- my $stale_comment = "";
- $stale_comment = "<!-- TRANSLATORS: stale -->" if $pkgactivity =~ /^stale/;
-
- # Include it in both HTML elements so that, e.g., msggrep can be used.
- push (@ret, qq,<h4 id="$xhtml_id">,
- . qq,$stale_comment,
- . qq,$logo_xhtml,
- . qq,\n <a href="/software/$pkgname/">$pkglabel</a></h4>,
- . ($stale_comment ? "\n" : "")
- . qq,<p>$stale_comment,);
-
- my $blurb = $pkg{"blurb"};
- # a very short blurb should be a redirect, since we already skipped null.
- if (length ($blurb) < 70) {
- my @words = split (" ", $blurb);
- if ($words[0] eq "redirect") {
- my $target = &xhtml_id ($words[1]);
- if (length ($target) <= 1) {
- warn "$msgprefix: redirection target too short: $target\n";
- next;
- }
- push (@ret, qq!See <a href="#$target">$target</a>.!);
- } else {
- warn "$msgprefix: unexpectedly short blurb: $words[0]\n";
- next;
- }
-
- } else { # normal blurb
- $blurb =~ s/\&/\&/g;
- $blurb =~ s/</\</g;
- $blurb =~ s/>/\>/g;
-
- # "..." typically is best rendered in typewriter.
- $blurb =~ s,"(.*?)",<tt>$1</tt>,g;
- $blurb =~ s/"/\"/g; # quote any stray "
-
- $blurb =~ s/'/\'/g; # be sure we can quote text for shell
- chomp ($blurb = `echo '$blurb' | fmt`);
- $blurb =~ s/\'/'/g; # convert apostrophe back for translators
- push (@ret, $blurb);
- }
-
- # let's advertise if the package is looking for a maintainer. maybe
- # we'll find someone.
- push (@ret, "This package is looking for a maintainer.")
- if $pkgactivity =~ /^nomaint/;
-
- my $doc_links = "/manual/manual.html#$xhtml_id";
- push (@ret, qq!<small>(<a href="$doc_links">doc</a>)!
- . qq!</small></p>!);
-
- push (@ret, "<!--#endif -->");
- }
-
- # make sure we've covered every package.
- for my $leftover (sort keys %gnupkgs) {
- next if &skip_pkg_p ($leftover);
- warn "$PKGBLURBS_FILE:1: $leftover missing\n";
- }
-
- push (@ret, "\n<!-- End file $autostamp -->");
- return @ret;
-}
-
-1;
Index: howto-spotlight.txt
===================================================================
RCS file: howto-spotlight.txt
diff -N howto-spotlight.txt
--- howto-spotlight.txt 17 Mar 2015 17:05:00 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,117 +0,0 @@
-$Id: howto-spotlight.txt,v 1.1 2015/03/17 17:05:00 karl Exp $
- Copyright 2015 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved.
-
-Notes on making the spotlight feature for the Free Software Supporter.
-The general idea is to make markdown text and send it to
address@hidden, around the 23rd of each month.
-
-This is all pretty randomly messy. The process never seemed worth
-refining, in light of who runs it and how often and that the final
-result needs to be carefully read anyway. Of course all aspects can be
-tinkered with ad infinitum.
-
--------------------------------------------------------------------------
-Top level outline, with more about the prerequisites following:
-
-1. Run the hacky little script below, call it gnubytime for the sake of
-example, which reads a previously-saved rsync listing of
-ftp.gnu.org::gnu, call that fp.gnu for the sake of example. As in:
- gnubytime fp.gnu >/tmp/s0
-
-2. Throw away everything after the latest release from the previous
-month, which just needs to be tracked in a working file somewhere. For
-example, in February 2015 the latest release was parallel-20150222, so
-March 2015 should include everything after that.
-
-3. Reduce the list to just unique package names, as in:
-sed 's,^.*/,,' /tmp/s0 | sort -u >/tmp/s1
-
-4. Remove things we don't want to list here, such as aspell
-dictionaries, test releases (wrongly) put on ftp.gnu.org,
-and plenty more.
-
-5. Look at the info-gnu mailing list archives from
-ftp://lists.gnu.org/info-gnu/ for the current month and the previous
-month for releases not on ftp.gnu.org. Add those by hand to /tmp/s1
-(and resort). gnupg and related are the most likely. Looking at the
-Subject: lines suffices.
-
-6. Convert the result to markdown with the one-line gnu2mdwn script below:
-gnu2mdwn /tmp/s1 >/tmp/s2
-
-7. Check that the result is actually correct, e.g., does not have version
-numbers in the urls, has correct package names in the urls. Especially
-when there are dashes in either the package name or release version.
-
-8. Look at ./spotlight.tmpl in this womb/gnumaint directory. The markdown
-list from /tmp/s2 goes at the top. Also replace the NN and DD and YY in
-the first line.
-
-9. The list of people to welcome as new maintainers or as maintaining
-new packages comes from fp:~karl/src/gnumaint/activity-report.txt. That
-file needs to be maintained in place, by hand, whenever a maintainer or
-package is added or removed, as noted in /gd/gnuorg/README.
-
-10. Send to the FSF as above.
-
-11. Update the new "latest release" wherever that info is stored.
-And, although not strictly necessary, keeping an archive of all
-spotlights as sent can be useful for quickly looking at past entries.
-
--------------------------------------------------------------------------
-In step 1, the rsync listing can be generated like this:
-
-outfile=fp.gnu # or whatever
-excludes="--exclude=*.sig \
- --exclude=video/TIME --exclude=find.txt.gz --exclude=ls-l*.txt.gz \
- --exclude=gnu-keyring.gpg"
-rsync --no-h -r $excludes fp:/srv/data/ftp-mirror/ftp/ \
- | egrep -v '^[dl]' \
- >$outfile.new
-...
-mv $outfile.new $outfile
-
-By the way, this same rsync listing is intended to be the source for the
-ftplisting check in gm-check.pl.
-
-Also, this same rsync listing can be the source for updating release
-information in gnupackages.txt, as they come through. For that
-
--------------------------------------------------------------------------
-Still in step 1, the "hacky little script" (gnubytime) is as follows.
-
-#!/usr/bin/env perl
-# ftp releases by time,via rsync listing.
-# -rw-r--r-- 918 2002/01/14 14:28:56 .message
-
-$ARGV[0] = "/u/karl/sys/ftp/fp.gnu" unless @ARGV;
-
-while (<>) {
- next if / -> /;
- next if /\.(diff|xdelta)\./;
- next if /snapshot\.pkg/;
- next if /\.darwin/;
- next if /-latest/;
- next if /\.sig/;
- next unless /\.[tj]ar\./;
- my (undef,undef,$date,undef,$pkg) = split (" "); # rsync
- # my ($date,undef,$pkg) = split (" "); # ftp
- $date =~ tr,-/,,d;
- $pkg{$pkg} = $date;
-}
-
-for my $p (sort { $pkg{$b} <=> $pkg{$a} } keys %pkg) {
- ($pfile = $p) =~ s/\.tar\..*$//;
- print "$pkg{$p}\t$pfile\n";
-}
--------------------------------------------------------------------------
-In step 6, the gnu2mdwn script is:
-
-#!/bin/sh
-sed \
- -e 's,\(.*\)-\([^-]*\),* [\1-\2](http://www.gnu.org/software/\1/),' \
- "$@"
Index: .cvsignore
===================================================================
RCS file: .cvsignore
diff -N .cvsignore
--- .cvsignore 20 Jun 2018 02:36:23 -0000 1.15
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-ChangeLog
-activity-report.txt
-copyright-papers.txt
-pkgblurbs.txt
-gnupackages.txt
-m.test
-msg.*
-*.mbox*
-*.log*
-pkgnames.frommaint
-pkgnames.fromdir
-fsd
-pkglist-*.txt
Index: nonpackages.txt
===================================================================
RCS file: nonpackages.txt
diff -N nonpackages.txt
--- nonpackages.txt 14 Nov 2010 19:19:55 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-# $Id: nonpackages.txt,v 1.2 2010/11/14 19:19:55 karl Exp $
-# Public domain.
-#
-# This file records information about software that is not an official
-# GNU package on its own, but we want to automatically generate entries
-# about it anyway. There is nothing private in this file.
-
-package: gnus
-doc-category: Email
-doc-summary: Emacs-based mail and news reader.
-
-package: mh-e
-doc-category: Email
-doc-summary: Emacs interface to the MH mail system.
-
-# End. (Do not remove this line or the blank line before it. Thanks.)
Index: testaddrangle.msg
===================================================================
RCS file: testaddrangle.msg
diff -N testaddrangle.msg
--- testaddrangle.msg 17 Feb 2007 01:41:03 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-From address@hidden Sun Feb 11 14:48:08 2007
-Return-path: <address@hidden>
-Envelope-to: address@hidden
-Delivery-date: Sun, 11 Feb 2007 14:48:08 -0500
-Received: from karl by fencepost.gnu.org with local (Exim 4.60)
- (envelope-from <address@hidden>)
- id 1HGKgC-0000P9-M8
- for address@hidden; Sun, 11 Feb 2007 14:48:08 -0500
-To: address@hidden
-Message-Id: <address@hidden>
-From: <address@hidden>
-Date: Sun, 11 Feb 2007 14:48:08 -0500
-Subject: GNU package maintenance
-
Index: testjunk1.msg
===================================================================
RCS file: testjunk1.msg
diff -N testjunk1.msg
--- testjunk1.msg 11 Feb 2007 21:50:53 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-From address@hidden Sun Feb 11 14:48:08 2007
-Return-path: <address@hidden>
-Envelope-to: address@hidden
-Delivery-date: Sun, 11 Feb 2007 14:48:08 -0500
-Received: from karl by fencepost.gnu.org with local (Exim 4.60)
- (envelope-from <address@hidden>)
- id 1HGKgC-0000P9-M8
- for address@hidden; Sun, 11 Feb 2007 14:48:08 -0500
-To: address@hidden
-Message-Id: <address@hidden>
-From: Karl Berry <address@hidden>
-Date: Sun, 11 Feb 2007 14:48:08 -0500
-
-karl fencepost Sun Feb 11 14:48:08 EST 2007
-
Index: howto-decommission.txt
===================================================================
RCS file: howto-decommission.txt
diff -N howto-decommission.txt
--- howto-decommission.txt 22 Jan 2019 08:14:55 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
-$Id: howto-decommission.txt,v 1.4 2019/01/22 08:14:55 jmd Exp $
- Copyright 2013, 2014, 2015 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved.
-
-Notes on what to do when a package becomes unmaintained or
-decommissioned.
-
-unmaintained:
- for the new maintainer to do: look at mailing list archives,
- any todo files, good to make quick release.
- try writing mlist if there is one.
- update: package web page - takeaction.html - www.gnu.org home page
- on savannah: status=orphaned; note in summary; post job.
- (in more detail, see fp:/gd/gnuorg/README)
-
-decommissioned:
- maintainers - activity-report.txt
- - gnupackages.rec,pkgblurbs.rec -> oldpackages.txt;
- then regenerate autopackage lists (see Makefile and howto-commission.txt)
- - address@hidden ftp.gnu.org dir to old-gnu
- - lists: advertised=no, mv domains/gnu.org ...
- - project home page: Add a prominent notice stating that the package is
decommissioned.
- - add to list of old packages on software.html - webpages
- - savannah: status=orphaned; note in summary.
-
-When a maintainer resigns, implicitly or explicitly, the story is
-similar; see /gd/gnuorg/README.
Index: maintfileupgrade
===================================================================
RCS file: maintfileupgrade
diff -N maintfileupgrade
--- maintfileupgrade 8 Feb 2007 00:48:39 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,221 +0,0 @@
-#!/usr/bin/env tclsh
-#
-# maintfileupgrade - GNU maintainers file upgrade to new format
-#
-# Copyright 2007 Free Software Foundation Inc.
-#
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.
-
-
-###
-### Global variables
-###
-
-set first_page_contents {}
-
-set contact_regexp {(?x)
- # A regexp to match contact information
- ^([^<(]*) # The name of the contact (optional)
- (<address@hidden@[^>]+?>)? # The email of the contact (optional)
- ((?:.+))?$ # Notes about the contact (optional)
- }
-
-set package_line_regexp {(?x)
- # A regexp to match a package description line
- ^
- ([^(]+) # The name of the package
- ((?:.+))? # Package comments (optional)
- \ - # Separator: " -"
- (.*) # Contacts information (see above)
- $
- }
-
-set maintainers_file {}
-set maintainersdb {}
-
-
-###
-### Code
-###
-
-proc do_help_usage {} {
-
- puts {Usage: mfupgrade FILE}
- puts "Read FILE and convert its contents to the new maintainers format"
- puts "Dump the new contents on the standard output"
-}
-
-proc parse_contacts {text} {
-
- global contact_regexp
-
- set contact_list {}
-
- foreach scontact [split $text ,] {
-
- if {![regexp -- $contact_regexp $scontact fullmatch contact_name
contact_email contact_comments]} {
-
- puts "ERROR: not matching text $scontact"
- exit 1
- }
-
- lappend contact_list [list [string trim $contact_name] \
- [string trim [string trim [string trim
$contact_email "<"] ">"]] \
- [string trim [string trim $contact_comments]
{( )}]]
-
- }
-
- return $contact_list
-
-}
-
-proc parse_package_line {line} {
-
- global package_line_regexp
-
- if {![regexp -- $package_line_regexp $line]} then {
- # Invalid package line
- return {}
- }
-
- regexp -- $package_line_regexp $line entire_match pkg_name pkg_comments
pkg_contacts
- #puts "parse: $pkg_name | $pkg_comments | $pkg_contacts"
- return [list [string trim $pkg_name] \
- [string trim $pkg_comments] \
- [parse_contacts [string trim $pkg_contacts]]]
-}
-
-
-proc build_maintainers_db {} {
-
- global first_page_contents
- global maintainers_file
- global maintainersdb
-
- # Open the maintainers file
- if {[catch {set finput [open $maintainers_file r]}]} {
-
- puts "Cannot open the maintainers file $maintainers_file"
- puts "Aborting"
- exit 1
- }
-
- # Get the first line and collect the info
- gets $finput line
- append first_page_contents $line
- append first_page_contents "\n"
-
- # Skip until second page
- while {(![eof $finput]) && ([string index $line 0] != "\f")} {
- gets $finput line
- append first_page_contents $line
- append first_page_contents "\n"
- }
- # Consume the ^L
- if {![eof $finput]} then {
- gets $finput line
- }
-
- # Parse package lines
- while {(![eof $finput]) && ([string index $line 0] != "\f")} {
-
- set pkginfo [parse_package_line $line]
- lappend maintainersdb $pkginfo
- #puts "lappe: [lindex $pkginfo 1]"
- gets $finput line
- }
-
- # Close the maintainers file
- close $finput
-}
-
-proc do_convert {} {
-
- global first_page_contents
- global maintainersdb
-
- puts $first_page_contents
- puts {}
-
- foreach pkg $maintainersdb {
- if {[lindex $pkg 2] == ""} then {
- #puts "regen: [lindex $pkg 0] -- [lindex $pkg 1] -- [lindex $pkg 2]"
-
- set maintainer_name "Unmaintained"
- set maintainer_email($maintainer_name) {}
- set maintainer_notes($maintainer_name) {}
- lappend maintainer_packages($maintainer_name) [list [lindex $pkg 0]
[lindex $pkg 1]]
- }
-
- foreach maintainer [lindex $pkg 2] {
- set maintainer_name [lindex $maintainer 0]
- set m_email [lindex $maintainer 1]
- set m_notes [lindex $pkg 1]
-
- set maintainer_email($maintainer_name) $m_email
- set maintainer_notes($maintainer_name) $m_notes
- lappend maintainer_packages($maintainer_name) [list [lindex $pkg
0] [lindex $pkg 1]]
- }
-
-
- }
-
- set maintainers_name_list [lsort [array names maintainer_email]]
- foreach maintainer $maintainers_name_list {
-
- puts "name: $maintainer"
- puts "email: $maintainer_email($maintainer)"
-
- foreach pkg $maintainer_packages($maintainer) {
- puts "package: [lindex $pkg 0]"
- ;#if {[lindex $pkg 1] != {}} then {
- ;#puts "note: [lindex $pkg 1]"
- ;#}
- }
-
- if {$maintainer_notes($maintainer) != {}} then {
- puts "note: $maintainer_notes($maintainer)"
- }
-
- puts {}
- }
-}
-
-proc main {} {
-
- global argc
- global argv
- global maintainers_file
-
- # Get the maintainers file from arguments
- if {$argc != 1} then {
-
- do_help_usage
- exit 1
- }
-
- set maintainers_file [lindex $argv 0]
- if {![file readable $maintainers_file]} then {
-
- puts stderr "error: could not open file $maintainers_file"
- exit 1
- }
-
- # Build the maintainers database
- build_maintainers_db
-
- # Convert the file
- do_convert
-}
-
-
-# Call the main routine
-main
-
-# Local Variables:
-# mode: tcl
-# End:
-
-### End of file
Index: massmail-1201-copyright.txt
===================================================================
RCS file: massmail-1201-copyright.txt
diff -N massmail-1201-copyright.txt
--- massmail-1201-copyright.txt 23 May 2013 23:55:41 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-From: address@hidden (GNU Project)
-To: %PACKAGE_MAINTAINERS
-Subject: %PACKAGE_NAME and non-FSF-copyrighted code
-Precedence: bulk
-
-Greetings,
-
-I'm sending you this message on behalf of the GNU Project because
-according to the FSF's records, you are the maintainer(s) of
-%PACKAGE_NAME, which is supposed to be an FSF-copyrighted package.
-
-We would like to gather information on any code or other material in
-your package that is *not* copyrighted by the FSF. Could you please
-reply to this message (which should go to address@hidden) and let
-us know? That is, one of:
-
-1) There is no non-FSF-copyrighted material in %PACKAGE_NAME.
-
-2) There is non-FSF-copyrighted code included in %PACKAGE_NAME,
- per the procedure described in the External Libraries node
- of the maintainers' guide:
- http://www.gnu.org/prep/maintain/html_node/External-Libraries.html
-
-3) Something else.
-
-Please include any and all relevant details.
-
-(Aside from this, if you have any news or questions regarding the
-package, please let us know at address@hidden)
-
-Thanks for contributing to GNU, and happy hacking.
-
-Karl Berry
-Assistant Chief GNUisance
Index: testaddr+real.msg
===================================================================
RCS file: testaddr+real.msg
diff -N testaddr+real.msg
--- testaddr+real.msg 17 Feb 2007 01:41:03 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-From address@hidden Sun Feb 11 14:48:08 2007
-Return-path: <address@hidden>
-Envelope-to: address@hidden
-Delivery-date: Sun, 11 Feb 2007 14:48:08 -0500
-Received: from karl by fencepost.gnu.org with local (Exim 4.60)
- (envelope-from <address@hidden>)
- id 1HGKgC-0000P9-M8
- for address@hidden; Sun, 11 Feb 2007 14:48:08 -0500
-To: address@hidden
-Message-Id: <address@hidden>
-From: Karl Berry <address@hidden>
-Date: Sun, 11 Feb 2007 14:48:08 -0500
-Subject: GNU package maintenance
-
Index: sendmaintmail
===================================================================
RCS file: sendmaintmail
diff -N sendmaintmail
--- sendmaintmail 15 Feb 2008 19:06:53 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,123 +0,0 @@
-#!/usr/bin/env perl
-# $Id: sendmaintmail,v 1.7 2008/02/15 19:06:53 karl Exp $
-# Send or refrain from sending a message to a maintainer.
-#
-# Copyright 2007 Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-#
-# If the email address is recent enough in activity-report.txt, omit.
-# If the package is recent enough in activity-report.txt, omit.
-# If the package is in recentrel.txt, omit.
-# Otherwise send.
-#
-# When we omit, we write a short string to stdout describing why.
-# When we send, we write nothing to stdout.
-# (The TCL exec function works most naturally this way.)
-#
-# Although we could of course do the filtering in gnumaint, it was
-# easier for me to implement it in this separate script.
-
-exit (&main ());
-
-sub main
-{
- my ($maint_email, $pkgref, @msg) = &read_msg ();
- my @maint_pkgs = @$pkgref;
-
- # Check if any of these package names appear in the recently-released file.
- # If so, we're done.
- chomp (my @recent_rel = `cat recentrel.txt`);
- #
- for my $p (@maint_pkgs) {
- if (grep { $_ eq $p } @recent_rel) {
- print "recent release of $p\n";
- return 0;
- }
- }
-
- # Check if either the maintainer email or any package occurs
- # recently enough in activity-report.txt.
- #
- my $now = time ();
- my $cutoff = $now - 512 * 24 * 60 * 60; # don't bother them for 512 days
- #warn "cutoff seconds: $cutoff\n";
- #
- chomp (my @activity = `cat activity-report.txt`);
- @activity = reverse @activity; # newest first
- #
- for my $a (@activity) {
- my ($name, $email,$pkg,$time) = split (/\|/, $a);
- next unless $time; # last_sendemail has two fields
- $time =~ tr/./ /; # date -d wants a space between date and time
- substr ($time,13,2) = ""; # wipe out seconds, date -d can't handle
- chomp (my $seconds = `date +%s -d "$time"`);
- last if $seconds < $cutoff;
-
- #warn "checking $email|$pkg|$seconds\n";
- if ($email eq $maint_email) {
- print "recent activity for $email/$pkg\n";
- return 0;
- } elsif (grep { $_ eq $pkg } @maint_pkgs) {
- print "recent activity for $pkg/$email\n";
- return 0;
- }
- }
-
- #warn "would send mail";
- local *SENDMAIL;
-# $SENDMAIL = "|/usr/lib/sendmail -t";
- $SENDMAIL = "|cat >>/tmp/xyz";
- open (SENDMAIL) || die "open($SENDMAIL) failed: $!";
- print SENDMAIL @msg;
- close (SENDMAIL) || warn "close($SENDMAIL) failed: $!";
-
- return 0;
-}
-
-
-# return maintainer email, package list reference, and original message
-# from msg on stdin.
-#
-sub read_msg
-{
- my @msg = ();
- my ($to,$subject);
- for my $line (<>) {
- push (@msg, $line);
- ($to = $line) =~ s/^To: // if $line =~ /^To: /;
- ($subject = $line) =~ s/^Subject: // if $line =~ /^Subject: /;
- }
-
- die "no To: in @msg\n" unless $to;
- die "no Subject: in @msg\n" unless $subject;
- chomp ($to);
- chomp ($subject);
- #warn "found $to, $subject\n";
-
- # extract package names from subject, which looks like this:
- # Subject: GNU package maintenance: a and b
- # or
- # Subject: GNU package maintenance: a, b and c
- $subject =~ s/^.*: *//;
- $subject =~ s/ and /, /;
- my @pkgs = split (/, /, $subject);
- #warn "pkgs @pkgs from $subject";
-
- # We can assume the maintainer email is just the value of the To:
- # header, since we generated it ourselves in gnumaint.
- return ($to, address@hidden, @msg);
-}
Index: massmail-0705-active.txt
===================================================================
RCS file: massmail-0705-active.txt
diff -N massmail-0705-active.txt
--- massmail-0705-active.txt 23 May 2013 23:57:49 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-GNU package maintenance: %PACKAGE_LIST
-
-Have I reached %MAINTAINER_NAME?
-(My apologies if this message reaches you in error.)
-
-fmt:I'm sending you this message on behalf of the GNU Project because
-fmt:you're listed as the maintainer of the GNU %PLURAL_PACKAGE %PACKAGE_LIST.
-fmt:We would like to verify that you're still there, and still reachable at
-fmt:the address we have, %MAINTAINER_EMAIL.
-
-If all of that is correct, please just reply to this message.
-That will confirm that you got it, that you're still maintaining
-%PLURAL_THIS_PACKAGE, and that the address we used is still good.
-
-If you are no longer maintaining the %PLURAL_PACKAGE, or your preferred
-email address has changed, or there's anything else you think we should
-know, please send mail to address@hidden so we can update our
-records.
-
-We'd also like to collect package maintainers' postal addresses and
-phone numbers, so that if email addresses stop working, we have some
-backup. Would you please mail that contact information to
address@hidden so we can note it down?
-
-If you have any news or questions regarding your GNU %PLURAL_PACKAGE,
-please let us know. address@hidden is the address for that too.
-
-Thanks for contributing to GNU, and happy hacking.
-
-Karl Berry
-Assistant Chief GNUisance
Index: gm-check.pl
===================================================================
RCS file: gm-check.pl
diff -N gm-check.pl
--- gm-check.pl 25 Feb 2013 17:41:42 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,239 +0,0 @@
-# $Id: gm-check.pl,v 1.2 2013/02/25 17:41:42 karl Exp $
-# The check actions for the gm script (see --help message).
-#
-# Copyright 2007, 2008, 2009, 2010, 2012, 2013
-# Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-
-
-
-# Return list of packages in the activity report that are not in the
-# maintainers file. (Implementation not finished.)
-#
-sub check_activityfile_ {
- my @ret = ();
-
- my %pkgs = &read_maintainers ("by-package");
- my %maints = &read_maintainers ("by-maintainer");
-
- my %activity = &read_activity ("by-package");
-
- for my $ap (sort by_lineno keys %activity) {
- next if $ap eq "*"; # our last_sendemail placeholder
- my ($email,$name,$time,$line) = split (/\|/, $activity{$ap});
-
- push (@ret, "$ACTIVITY_FILE:$line: active package $ap does not exist"
- . " ($email|$name|$time)")
- unless exists $pkgs{$ap}; #|| exists $missing_pkg_ok{$ap};
- }
- return @ret;
-
-
- sub by_lineno {
- my (undef,undef,undef,$aline) = split (/\|/, $activity{$a});
- my (undef,undef,undef,$bline) = split (/\|/, $activity{$b});
- $aline <=> $bline;
- }
-}
-
-
-
-# Return inconsistencies between copyright.list and the
-# copyright-holder: field in gnupackages. There should not be any.
-#
-sub check_fsfcopyright_ {
- my @ret = ();
-
- my %pkgs = &read_gnupackages ();
- my @cl = &list_copyrightfsf_ (0, 1);
- my %cl;
- @address@hidden = (); # make hash from list
-
- for my $cl (keys %cl) {
- if (! exists $pkgs{$cl}) {
- # should be caught by daily checks.
- push (@ret, "$0: FSF-copyrighted $cl missing from $GNUPACKAGES_FILE");
- next;
- }
- my $p = $pkgs{$cl};
- #&warn_hash ($cl, $p);
- if ($p->{"copyright-holder"} !~ /^(fsf|see-)/) { # allow redirects too
- push (@ret, &gnupkgs_msg
- ("copyright-holder: not fsf, but in copyright.list", %$p));
- }
- delete $pkgs{$cl};
- }
-
- for my $pkgname (keys %pkgs) {
- my $p = $pkgs{$pkgname};
- if ($p->{"copyright-holder"} =~ /^fsf/) {
- push (@ret, &gnupkgs_msg
- ("copyright-holder: fsf, but not in copyright.list", %$p));
- }
- }
-
- return @ret;
-}
-
-
-
-# Return list of entries in the ftp listing that are not in the official
-# list of packages. (Implementation not finished.)
-#
-sub check_ftplisting_ {
- my @ret = ();
-
- my %pkgs = &read_gnupackages ();
- my @ftp = &read_ftplisting ();
-
- # known-unusual entries or aliases under ftp.gnu.org:gnu/.
- my @special = qw(GNUinfo GNUsBulletins Licenses MailingListArchives
- MicrosPorts aspell- commonc\+\+ dotgnu flex git glibc
- non-gnu phantom queue savannah speedx windows);
-
- for my $f (sort @ftp) {
- next if exists $pkgs{$f};
- next if grep { $f =~ /^$_/ } @special;
- # read oldpackages? next if grep { $f =~ /^$_/ } @old;
- push (@ret, $f);
- }
-
- return @ret;
-}
-
-
-
-# Return list of email addresses or packages in the ftp-upload setup
-# that are not in maintainers.
-#
-sub check_ftpupload_ {
- my @ret = ();
-
- my %maint_file = &read_maintainers ("by-package");
- my %ftpupload_file = &read_ftpupload_email ();
-
- for my $p (sort keys %ftpupload_file) {
- # The ftp-upload package itself better be in the maintainers file.
- # (Many packages do not release through ftp.gnu.org, unfortunately,
- # so there is no use in worrying about the reverse.)
- if (! exists $maint_file{$p}) {
- push (@ret, "$FTPUPLOAD_EMAIL_FILE: not in maintainers: $p");
- next;
- }
-
- # see if we can find each ftp-upload email in maintainers.
- FTP_EMAIL:
- for my $ftp_email (split (" ", $ftpupload_file{$p})) {
-
- # for each maintainer of this package ...
- my @maint_refs = @{$maint_file{$p}};
- for my $m (@maint_refs) {
-
- # for each of the keys that have email values ...
- for my $mkey ("email", "privateemail", "altemail", "bademail") {
- my @mval = split (/\|/, $m->{$mkey}); # split multiple vals
-
- # for each value of this key ...
- for my $mval (@mval) {
- if ($mval eq $ftp_email) {
- if ($mkey eq "bademail") {
- warn "$p: ftp email $ftp_email known bad!\n\n";
- } else {
- warn "$p: good, found $mval in $mkey\n";
- }
- next FTP_EMAIL;
- }
- } # each of multiple email values
- } # each possible email key
- } # each maintainer
- warn "$p: did not find $ftp_email\n";
- warn "\n";
- } # each ftp-upload email for this package
- } # each ftp-upload package
-
- return @ret;
-}
-
-
-# Return list of packages in the gnupackages file that are not in the
-# maintainers file, and vice versa. Run hourly from karl cron on fp.
-#
-sub check_maintainers_ {
- my @ret = ();
-
- my %maint_file = &read_maintainers ("by-package");
- my %pkg_file = &read_gnupackages ();
-
- for my $m (keys %maint_file) {
- if (exists $pkg_file{$m}) {
- delete $maint_file{$m};
- delete $pkg_file{$m};
- }
- }
-
- for my $p (sort keys %pkg_file) {
- push (@ret, "$GNUPACKAGES_FILE:$pkg_file{$p}->{lineno}: "
- . "$p not in maintainers");
- }
-
- for my $p (sort keys %maint_file) {
- next if $p =~ /\.nongnu/;
- push (@ret, "$MAINTAINERS_FILE:$maint_file{$p}[0]->{lineno}: "
- . "$p not in gnupackages");
- }
-
- return @ret;
-}
-
-
-
-# Return list of packages in the savannah GNU groups.tsv list that are
-# not in the gnupackages or oldpackages files. We check against these
-# rather than maintainers because some are legitimately only on sv and
-# we want to have info for them.
-#
-# On the other hand, there's no expectation that everything in
-# gnupackages (or maintainers) is on savannah, so don't check that
-# direction.
-#
-# The sv file is at http://savannah.gnu.org/cooperation/groups.tsv
-# and is updated via cron on savannah.
-#
-# (Implementation not finished.)
-#
-sub check_savannah_ {
- my @ret = ();
-
- my %pkg_file = &read_gnupackages ();
- my %sv_file = &read_savannah ();
-
- for my $m (keys %sv_file) {
- if (exists $pkg_file{$m}) {
- delete $sv_file{$m};
- }
- }
-
- for my $p (sort keys %sv_file) {
- push (@ret, "$SAVANNAH_FILE:$sv_file{$p}->{lineno}: "
- . "$p ($sv_file{$p}->{name}) not in gnupackages");
- }
-
- return @ret;
-}
-
-
-1;
Index: gnumaint
===================================================================
RCS file: gnumaint
diff -N gnumaint
--- gnumaint 15 Feb 2008 19:06:53 -0000 1.40
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,773 +0,0 @@
-#!/usr/bin/env tclsh
-# gnumaint - GNU maintainers file maintenance (/gd/gnuorg/maintainers)
-# $Id: gnumaint,v 1.40 2008/02/15 19:06:53 karl Exp $
-#
-# Copyright 2007 Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Jose Marchesi.
-
-# Global variables (configuration section)
-
-variable maintainers_file "maintainers"
-variable mailtemplate_active "template-active.txt"
-variable log_file "email.log"
-variable report_file "activity-report.txt"
-variable discarded_mbox "discarded-email.mbox"
-variable processed_mbox "processed-email.mbox"
-variable sent_mbox "sent-email.mbox"
-variable formail "/usr/bin/formail"
-variable sendmail "sendmaintmail"
-variable email_originator "address@hidden"
-variable email_reply "address@hidden"
-
-proc do_help_usage {} {
- global maintainers_file
- global log_file
-
- puts "Usage: gnumaint OPERATION \[ARG\]..."
- puts ""
- puts "Manage the GNU maintainer list (/gd/gnuorg/maintainers)."
- puts ""
- puts "Available OPERATIONs:"
- puts " list - retrieve information"
- puts " sendemail - send email to maintainers"
- puts " recemail - receive email from maintainers"
- puts ""
- puts "For more help, run:"
- puts " gnumaint help OPERATION"
- puts ""
- puts "The maintainer information is taken from the file"
- puts " $maintainers_file (GNUMAINT_MAINTAINERS_FILE envvar overrides)."
- puts "Log messages are written to the file"
- puts " $log_file"
- puts ""
- puts "Please email address@hidden with any discussion."
-}
-
-proc do_help_list {} {
- puts "Usage: gnumaint list TOPIC \[ARG\]..."
- puts ""
- puts "List information about GNU maintainers to stdout."
- puts ""
- puts "Allowed TOPICs:"
- puts " packages \[ARG\]"
- puts " all \[or no argument\] - list all packages"
- puts " maintained - list all maintained packages"
- puts " unmaintained - list all unmaintained packages"
- puts " maintainer MAINTAINER - list MAINTAINER's packages"
- puts " (search is done in both names and email addresses)"
- puts ""
- puts " maintainers \[ARG\]"
- puts " all \[or no argument\] - list all maintainers"
- puts " package PACKAGE - list maintainers of PACKAGE"
- puts " search is done for \"*PACKAGE*\", case-insensitive"
- puts " GLOB"
- puts " search for GLOB in maintainers file"
-}
-
-proc do_help_sendemail {} {
- variable mailtemplate_active
-
- puts "Usage: gnumaint sendemail EMAIL-TYPE"
- puts ""
- puts "Send email to maintainers. At present we have one EMAIL-TYPE:"
- puts " active - send email to all maintainers requesting a reply"
- puts " to confirm that they are active. Template file:"
- puts " $mailtemplate_active"
-}
-
-proc do_help_recemail {} {
- puts "Usage: gnumaint recemail"
- puts ""
- puts "Receive email. This is invoked via /com/mailer/aliases."
-}
-
-proc do_help_operation {topic} {
- switch $topic {
- sendemail {
- do_help_sendemail
- }
- recemail {
- do_help_recemail
- }
- list {
- do_help_list
- }
- default {
- puts "Unknown operation `$topic'"
- do_help_usage
- }
- }
-}
-
-proc add_to_log {text} {
- global log_file
- set flog [open $log_file a]
- puts $flog "[timestamp]: $text"
- close $flog
-}
-
-#
-# Maintainers database structure:
-#
-# { {MAINTAINER-NAME MAINTAINER-EMAIL MAINTAINER-NOTES {PACKAGE1 PACKAGE2
...}} ...}
-#
-set maintainersdb {}
-
-proc get_entry_value {entry text} {
- set label_regexp "${entry}:"
- set entry_regexp "^${label_regexp}(.+)"
-
- regexp $entry_regexp $text match entry_content
-
- return [string trim $entry_content]
-}
-
-proc get_entry_label {text} {
- set entry_regexp {^([^:]+):.+}
-
- regexp $entry_regexp $text match entry_label
-
- ;# Bad formed entry line
- if {![info exist entry_label]} then {
- return {}
- }
-
- return [string trim $entry_label]
-}
-
-proc parse_maintainers {finput lineno} {
- global maintainers_file
- global maintainersdb
-
- if {![eof $finput]} then {
- gets $finput line
- incr lineno
- }
-
- while {(![eof $finput]) && ([string index $line 0] != "\f")} {
- # Break if EOF or ^L
- if {[eof $finput] || ([string index $line 0] == "\f")} then {
- break;
- }
-
- ;# Skip blank lines or comments
- while {$line == "" || ([string index $line 0] == "#")} {
- gets $finput line
- }
-
- ;# Process this maintainer entry
- set maintainer_name {}
- set maintainer_email {}
- set maintainer_notes {}
- set maintainer_packages {}
-
- if {[string match "name:*" $line]} then {
- set maintainer_name [get_entry_value name $line]
-
- } else {
- puts "parse error: $maintainers_file \[line $lineno\]: `name:'
expected"
- exit 1
- }
-
- gets $finput line
- incr lineno
-
- while {$line != ""} {
- set entry_label [get_entry_label $line]
- switch $entry_label {
- "email" {
- set maintainer_email [get_entry_value email $line]
- }
- "note" {
- set note_contents [get_entry_value note $line]
- lappend maintainer_notes $note_contents
- }
- "package" {
- set pkgname [get_entry_value package $line]
- lappend maintainer_packages $pkgname
- }
- }
-
- gets $finput line
- incr lineno
- }
-
- ;# Add this maintainer entry into maintainersdb
- lappend maintainersdb [list \
- $maintainer_name \
- $maintainer_email \
- $maintainer_notes \
- $maintainer_packages]
- ;# Read the next line
- gets $finput line
- incr lineno
- }
-}
-
-proc build_maintainers_db {} {
- global maintainers_file
- global maintainersdb
-
- # Open the maintainers file
- if {[catch {set finput [open $maintainers_file r]}]} {
- puts "Cannot open the maintainers file $maintainers_file"
- puts "Aborting"
- exit 1
- }
-
- # Get the first line
- set lineno 0
- gets $finput line
- incr lineno
-
- # Skip until second page
- while {(![eof $finput]) && ([string index $line 0] != "\f")} {
- gets $finput line
- incr lineno
- }
-
-
- # Parse maintainers
- parse_maintainers $finput $lineno
-
- # Close the maintainers file
- close $finput
-}
-
-#
-proc do_recemail_operation {opargs} {
- variable maintainersdb
- variable formail
- variable discarded_mbox
- variable processed_mbox
-
- ;# Read the email from the standard input
- set email_contents [read -nonewline stdin]
-
- ;# Get data fields from the received email
- set from [exec $formail -c -xFrom: << $email_contents]
- set subject [exec $formail -c -xSubject << $email_contents]
- set body [exec $formail -I \"\" << $email_contents]
-
- ;# Infer the nature of the email from the subject content
- set subject [string trim $subject]
-
- switch -glob $subject {
- {*GNU package*} {
- ;# Handle activity response email
-
- ;# Get the maintainer email
- set maintainer_email [string trim $from]
-
- ;# We need to extract the email address from a From: line in
- ;# any of several formats:
- ;# address@hidden
- ;# <address@hidden>
- ;# J User <address@hidden>
- ;# address@hidden (J User)
- ;# We don't attempt to do this perfectly.
- ;#
- if { [regexp {<([^>]+)>} $from match maintainer_email] } then {
- ;# take whatever is inside <...>
- } elseif { [regexp {^[^ ]*$} $maintainer_email] } then {
- ;# no spaces, take the whole thing
- } elseif { [regsub {\(.*\)} $from "" maintainer_email] } then {
- ;# (Real Name) removed, now remove space. regsub won't do it.
- set maintainer_email [string trim $maintainer_email]
- } else {
- puts "could not find email in $from"
- }
- set maintainer_email [string tolower $maintainer_email]
- #puts "got email $maintainer_email"
-
- ;# See if this maintainer is in the database
- set maintainer_found false
- foreach maintainer $maintainersdb {
- if { [string tolower [lindex $maintainer 1]]
- == $maintainer_email } then {
- set maintainer_found true
- }
- }
- if {!$maintainer_found} then {
- ;# Maintainer not found => discard email
- add_to_log "discarded msg from unknown maintainer $from"
- archive_email $discarded_mbox $email_contents
- return
- }
-
- ;# Log the operation
- add_to_log "received activity reply from $from"
- archive_email $processed_mbox $email_contents
-
- ;# Annotate this packages into the activity file
- activity_annotate $maintainer_email
- }
- default {
- ;# Unknown email type. Discard it.
- add_to_log "discarded strange email from $from about $subject"
- archive_email $discarded_mbox $email_contents
- }
- }
-}
-
-proc archive_email {mbox email_contents} {
- set fout [open $mbox a]
- puts $fout $email_contents
- puts $fout "\n"
- close $fout
-}
-
-
-proc sendemail_annotate {} {
- variable report_file
-
- set fout [open $report_file a]
- set line "last_sendemail|[timestamp]"
- puts $fout $line
-
- close $fout
-}
-
-proc activity_annotate {maintainer_email} {
- variable report_file
- variable maintainersdb
-
- set maintainer_name {}
- set maintainer_packages {}
-
- ;# Collect information for this maintainer
- foreach maintainer $maintainersdb {
- if {[lindex $maintainer 1] == $maintainer_email} then {
- set maintainer_name [lindex $maintainer 0]
- set maintainer_packages [lindex $maintainer 3]
- break;
- }
- }
-
- ;# Make an annotation on file
- set fout [open $report_file a]
-
- foreach pkg $maintainer_packages {
- set pkgline "$maintainer_name|$maintainer_email|$pkg|[timestamp]"
- puts $fout $pkgline
- }
-
- close $fout
-}
-
-proc timestamp {} {
- return [exec date +%Y%m%d.%H%M%S.%Z]
-}
-
-#
-proc do_sendemail_operation {opargs} {
- if {[llength $opargs] == 1} then {
- puts "Please specify sendemail type"
- do_help_sendemail
- exit 1
- }
-
- switch [lindex $opargs 1] {
- active {
- do_sendemail_operation_active
- }
- default {
- puts "Unknown sendemail type `[lindex $opargs 1]'"
- do_help_sendemail
- exit 1
- }
- }
-}
-
-proc fill_template {translation_list email_template} {
- foreach trn $translation_list {
- regsub -all -- [lindex $trn 0] $email_template [lindex $trn 1]
email_template
- }
-
- return $email_template
-}
-
-proc do_sendemail_operation_active {} {
- variable maintainersdb
- variable formail
- variable sendmail
- variable mailtemplate_active
- variable email_originator
- variable email_reply
- set maintainer_sent 0
- set maintainer_omit 0
-
- ;# Read the email template
- set email_contents_file [open $mailtemplate_active r]
- gets $email_contents_file subject_template
- set email_template [read -nonewline $email_contents_file]
- close $email_contents_file
-
- foreach maintainer $maintainersdb {
- set maintainer_name [lindex $maintainer 0]
- set maintainer_email [lindex $maintainer 1]
- set maintainer_notes [lindex $maintainer 2]
- set maintainer_pkgs [lindex $maintainer 3]
-
- ;# Skip unmaintained and generic addresses.
- ;#puts "checking $maintainer_name"
- if {[regexp {^[a-z]} $maintainer_name] == 1} then {
- puts "skipping $maintainer_name"
- continue
- }
-
- ;# Skip maintainers with no packages
- if {[llength $maintainer_pkgs] == 0} then {
- puts "*** no packages for $maintainer_name??"
- continue
- }
-
- #
- if {$maintainer_notes == ""} {
- set maintainer_notes "(none)";
- }
-
- ;# Build the list of package names.
- set pkg_list_str ""
- set i 0
- foreach pkg $maintainer_pkgs {
- incr i
- append pkg_list_str "${pkg}"
- if {$i == [llength $maintainer_pkgs] - 1} then {
- append pkg_list_str " and "
- } elseif {$i < [llength $maintainer_pkgs]} then {
- append pkg_list_str ", "
- }
- }
-
- ;# rms doesn't like "package(s)".
- if {[llength $maintainer_pkgs] == 1} then {
- set plural_package "package"
- set plural_this_package "this package"
- } else {
- set plural_package "packages"
- set plural_this_package "these packages"
- }
-
- ;# Fill the template with this package/maintainer pair info
- set translation_list \
- [list \
- [list %PLURAL_PACKAGE $plural_package] \
- [list %PLURAL_THIS_PACKAGE $plural_this_package] \
- [list %PACKAGE_LIST $pkg_list_str] \
- [list %MAINTAINER_ADDRESS $maintainer_notes] \
- [list %MAINTAINER_NAME $maintainer_name] \
- [list %MAINTAINER_EMAIL $maintainer_email]]
- set email_contents [fill_template $translation_list $email_template]
-
- ;# Append the control line
- set note_line \
- "\n\n-- Please make sure to include the following line in the body
on your reply --\n"
-
- set control_line {}
- append control_line "\$mntemail:$maintainer_email\$ "
- foreach pkg $maintainer_pkgs {
- append control_line "\$package:$pkg\$ "
- }
- append control_line "\n"
-
-;# append email_contents $note_line
-;# append email_contents $control_line
-
- set subject_contents [fill_template $translation_list $subject_template]
-
- ;# Build the email with formail
- set out_email_contents \
- [exec $formail -i "Reply-To: $email_reply" \
- -i "From: $email_originator" \
- -i "To: $maintainer_email" \
- -i "Subject: $subject_contents" \
- -i "Precedence: bulk" \
- << $email_contents]
- set out_email_contents \
- [exec $formail -k -X Date -X Reply-to: -X From: -X Subject: -X To: \
- << $out_email_contents]
- append out_email_contents "\n";# be sure we end with blank line
-
- ;# redo the linebreaks where requested.
- set out_email_contents \
- [exec fmt --prefix=fmt: <<$out_email_contents | sed s/fmt:// \
- << $out_email_contents]
-
- ;# (Maybe) send the email.
- puts -nonewline "--- Email to $maintainer_name <$maintainer_email>:"
- set ret [exec $sendmail << $out_email_contents]
- if {[string length $ret] == 0} {
- set log_str "sent"
- incr maintainer_sent
- variable sent_mbox
- archive_email $sent_mbox $out_email_contents
- } else {
- set log_str "omitted ($ret)";
- incr maintainer_omit;
- }
-
- puts " $log_str.";
- add_to_log "$log_str activity check to $maintainer_email
($maintainer_name) for $pkg_list_str"
-
- }
-
- ;# Annotate the sendemail operation
- sendemail_annotate
-
- puts "Sent email to $maintainer_sent maintainers, omitted $maintainer_omit."
-}
-
-proc do_list_operation {opargs} {
- if {[llength $opargs] == 1} then {
- do_help_list
- exit 1
- }
-
- switch [lindex $opargs 1] {
- packages {
- if {[llength $opargs] == 2} then {
- do_list_packages all
- } else {
- switch [lindex $opargs 2] {
- all {
- do_list_packages all
- }
- maintained {
- do_list_packages maintained
- }
- unmaintained {
- do_list_packages unmaintained
- }
- maintainer {
- do_list_packages_maintainer [lindex $opargs 3]
- }
- default {
- puts "Unknown list packages operation: [lindex $opargs
2]"
- }
- }
- }
- }
- maintainers {
- if {[llength $opargs] == 2} then {
- do_list_maintainers all
- } else {
- switch [lindex $opargs 2] {
- all {
- do_list_maintainers all
- }
- package {
- do_list_package_maintainers [lindex $opargs 3]
- }
- default {
- do_list_maintainers [lindex $opargs 2]
- }
- }
- }
- }
-
- help {
- do_help_list
- }
-
- default {
- puts "Unknown list operation: [lindex $opargs 1]"
- exit 1
- }
- }
-}
-
-proc do_list_maintainers {which} {
- variable maintainersdb
-
- foreach maintainer $maintainersdb {
- set maintainer_name [lindex $maintainer 0]
- set maintainer_email [lindex $maintainer 1]
- set maintainer_notes [lindex $maintainer 2]
-
- if {($which == "all") ||
- [string match -nocase "*${which}*" $maintainer_name] ||
- [string match -nocase "*${which}*" $maintainer_email]} {
-
- ;# List this maintainer
- puts -nonewline $maintainer_name
- if {$maintainer_email != ""} then {
- puts -nonewline " "
- puts -nonewline "<$maintainer_email>"
- }
- foreach note $maintainer_notes {
- puts -nonewline " "
- puts -nonewline "($note)"
- }
- puts {}
- }
- }
-}
-
-proc do_list_package_maintainers {package_name} {
- variable maintainersdb
-
- foreach maintainer $maintainersdb {
- set maintainer_name [lindex $maintainer 0]
- set maintainer_email [lindex $maintainer 1]
- set maintainer_notes [lindex $maintainer 2]
- set maintainer_pkgs [lindex $maintainer 3]
-
- set to_list false
- foreach pkg $maintainer_pkgs {
- if {[string match -nocase "*${package_name}*" $pkg]} then {
- set to_list true
- break
- }
- }
-
- if {$to_list} then {
- ;# List this maintainer
- puts -nonewline $maintainer_name
- if {$maintainer_email != ""} then {
- puts -nonewline " "
- puts -nonewline "<[lindex $maintainer 1]>"
- }
- foreach note $maintainer_notes {
- puts -nonewline " "
- puts -nonewline "($note)"
- }
- puts {}
- }
- }
-}
-
-proc do_list_packages_maintainer {maintainer_info} {
- variable maintainersdb
-
- foreach maintainer $maintainersdb {
- set maintainer_name [lindex $maintainer 0]
- set maintainer_email [lindex $maintainer 1]
- set maintainer_pkgs [lindex $maintainer 3]
-
- if {[string match -nocase "*${maintainer_info}*" $maintainer_name] ||
- [string match -nocase "*${maintainer_info}*" $maintainer_email]}
then {
-
- foreach pkg $maintainer_pkgs {
- puts $pkg
- }
- }
- }
-}
-
-proc do_list_packages {which} {
- variable maintainersdb
-
- set pkg_list {}
- foreach maintainer $maintainersdb {
- set maintainer_name [lindex $maintainer 0]
- set maintainer_pkgs [lindex $maintainer 3]
-
- if {(($which == "maintained") &&
- ($maintainer_name == "Unmaintained")) ||
- (($which == "unmaintained") &&
- ($maintainer_name != "Unmaintained"))} then {
-
- continue
- }
-
- foreach pkg $maintainer_pkgs {
- if {[lsearch -exact $pkg_list $pkg] == -1} then {
- lappend pkg_list $pkg
- }
- }
- }
-
- foreach pkg $pkg_list {
- puts $pkg
- }
-}
-
-proc parse_command_line_arguments {} {
- variable argc
- variable argv
-
- if {$argc == 0} then {
- do_help_usage
- exit 1
- }
-
- switch [lindex $argv 0] {
- help {
- if {($argc == 1) || ($argc > 2)} then {
- do_help_usage
- exit 0
- }
- do_help_operation [lindex $argv 1]
- exit 0
- }
- list {
- do_list_operation $argv
- }
- sendemail {
- do_sendemail_operation $argv
-
- }
- recemail {
- do_recemail_operation $argv
- }
- default {
- do_help_usage
- exit 1
- }
- }
-}
-
-#
-proc get_environment {} {
- global env
- global maintainers_file
- global mailtemplate_active
-
- # GNUMAINT_MAINTAINERS_FILE variable
- if {[info exists env(GNUMAINT_MAINTAINERS_FILE)]} then {
- set maintainers_file $env(GNUMAINT_MAINTAINERS_FILE)
- }
-
- # GNUMAINT_MAILTEMPLATE_ACTIVE
- if {[info exists env(GNUMAINT_MAILTEMPLATE_ACTIVE)]} then {
- set mailtemplate_active $env(GNUMAINT_MAILTEMPLATE_ACTIVE)
- }
-}
-
-proc main {} {
- ; # cd to our directory so we can easily find our files.
- global argv0
- variable mydir
- regsub {/[^/]*$} $argv0 "" mydir
- cd $mydir
-
- variable maintainersdb
-
- # Override configuration variables from
- # the environment
- get_environment
-
- # Build the maintainers database
- build_maintainers_db
-
- # Parse command line arguments
- parse_command_line_arguments
-}
-
-# Call the main routine
-main
Index: contact-activity.txt
===================================================================
RCS file: contact-activity.txt
diff -N contact-activity.txt
--- contact-activity.txt 15 May 2015 18:02:02 -0000 1.52
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,676 +0,0 @@
-# $Id: contact-activity.txt,v 1.52 2015/05/15 18:02:02 brandon Exp $
-# Public domain.
-#
-# This file records information about contact activity with package
-# maintainers. There is nothing private in this file.
-#
-# Canonical order:
-# package
-# reply-from
-# query-to
-# next-release
-# next-contact
-# note
-#
-# The package name should always be all-lowercase (and match
-# gnupackages.txt and maintainers).
-#
-# Finally, this file as a whole is more or less sorted by package
-# identifier. However, software reading this file should accept any
-# order of packages or fields.
-
-package: 3dldf
-reply-from: 04jun13/laurence, 23apr13, 3apr13, 28mar13
-query-to: 29mar13/brandon, 28mar13
-next-release: 04jun13/later this summer?, 23apr13/in preparation
-
-package: a2ps
-reply-from: 30sep12, 19feb12 replied to list, 20aug11
-query-to: 28jun14/karl, 5may14/karl, 18sep12/karl, 11jun12, 5may12
-
-package: acct
-query-to: 4dec12/karl
-next-release: 4dec12/no eta
-
-package: acm
-reply-from: 23mar15/sergio, 16nov10
-query-to: 22mar15/brandon
-next-release: 23mar15/stepping down, 16nov10/soon
-
-package: adns
-reply-from: 13may14/ian, 04jun13, 19feb13, 18feb13, 10mar11
-query-to: 12may13/brandon, 28may13, 7feb13/karl, 19jan12/rms
-next-release: 13may14/next 6 months, 04jun13/not certain, 19feb13/probably not
soon maybe just gplv3, 10mar11/in a month
-
-package: anubis
-reply-from: 15may14/sergey
-query-to: 12may14/brandon
-next-release: 15may14/two weeks
-
-package: avl
-query-to: 12may14/brandon
-
-package: ballandpaddle
-reply-from: 04jun13, 11feb13
-query-to: 12may14/brandon
-next-release: 04jun13/fall 2013 or spring 2014, 11feb13/soon
-
-package: barcode
-reply-from: 12jun12, 22nov10 newmaint, 26jul09
-query-to: 11jun12/karl, 15nov10
-
-package: bc
-reply-from: 13may14/phil, 7may12/ken, 6may12/phil, 22may08/pizzini
-query-to: 12may14/brandon, 28may13
-next-release: 13may14/fall 2014
-
-package: bool
-reply-from: 28mar15/marc
-query-to: 23mar15/brandon, 12may14, 28may13, 5sep08/karl, 17dec09
-next-release: 28mar15/this year
-
-package: bpel2owfn
-reply-from: 15may15/Niels, 9apr10
-query-to: 14may15/brandon, 22mar15
-next-release: 15may15/never (stable)
-
-package: cfengine
-reply-from: feb10/gscrivano
-
-package: cim
-query-to: 12may14/brandon, 28may13, 22dec09/karl
-
-package: clisp
-reply-from: 23mar15/sam, 3jan11
-query-to: 22mar15/brandon, 4oct12/karl/rms
-next-release: 23mar15/never
-
-package: cobol
-reply-from: 26oct08
-note: dedicated maintainer, but will not be able to resume full-time work
-note: for 4-5 years (after 6 months full-time work). But it's a Cobol
-note: compiler, hardly likely to find other implementors, and lots and lots
-note: of work has been done. Mail from tej, 26 Oct 2008 12:42:10 +1100.
-
-package: combine
-reply-from: 14oct08
-query-to: 28may13/brandon, 18jun10/karl, 7nov10
-next-release: 14oct08/end of month
-
-package: commoncpp
-query-to: 8jun10/karl
-
-package: dap
-query-to: 19feb12/jmd, 22jan12
-
-package: ddd
-query-to: 17dec12/karl, 4may11
-reply-from: 29oct14
-next-release: 29oct14+soonh
-
-package: dejagnu
-reply-from: 10mar11
-
-package: denemo
-reply-from: 12may10
-
-package: dia
-reply-from: 9jun08
-
-package: dionysus
-reply-from: 23mar15/jean michel
-query-to: 22mar15/brandon
-next-release: 23mar15/never
-
-package: dismal
-reply-from: 29may13, 25jan11
-query-to: 28may13/brandon, 17nov10/karl, 29oct08
-next-release: 29may13/never, 25jan11/soon
-
-package: dmd
-reply-from: 30oct08
-query-to: 28may13/brandon, 20jun10/karl
-
-package: dominion
-query-to: 12may14/brandon, 28may13, 8jan10/karl
-
-package: emacs-muse
-query-to: 12may14/brandon
-
-package: enscript
-reply-from: 19sep12
-
-package: eprints
-reply-from: 23nov09
-
-package: epsilon
-reply-from: 14apr15/luca, 12dec12
-query-to: 23mar15/brandon, 11may14
-next-release: 23mar15/1.0 possible soon, 12dec12/alpha soon
-
-package: findutils
-reply-from: 24mar15/james, 1may12
-query-to: 23mar15/brandon, 12may14
-next-release: 24mar15/two months, 1may12/four blocking bugs
-
-package: flex manual
-query-to: 9nov08/karl
-note: 9nov08 source?
-
-package: fontutils
-reply-from: 12feb13
-query-to: 12may14/brandon
-next-release: 12feb13/not soon
-
-package: freeipmi
-reply-from: 14jan10
-next-release: 14jan10/next major release
-
-package: freetalk
-query-to: 12may14/brandon
-
-package: fribidi
-query-to: 12may14/brandon
-
-package: garpd
-reply-from: 21nov10
-next-release: 21nov10/soon
-
-package: gcl
-reply-from: 07jun13, 8nov10
-query-to: 28may13/brandon
-next-release: 07jun13/next week
-
-package: gdbm
-query-to: 10mar11/karl
-
-package: gengen
-reply-from: 23mar15/raman
-query-to: 22mar15/brandon
-next-release: 23mar15/2-3 weeks
-
-package: ggradebook
-reply-from: 22feb13/anto
-query-to: 21apr13/brandon, 18feb13
-
-package: gift
-reply-from: 18feb13
-query-to: 18feb13/brandon
-
-package: glue
-reply-from: 14may14/markus, 18jan10
-query-to: 12may14/brandon, 4apr13/karl
-next-release: 14may14/years from now, 18jan10/2011 release
-
-package: gmediaserver
-reply-from: 14apr15/dmitry, 14may14, 20nov10
-query-to: 23mar15/brandon, 12may14, 16may13
-next-release: 14apr15/suggest retirement, 14may14/this summer, 20nov10/this
year
-
-package: gmorph
-reply-from: 24jan12
-query-to: 25apr13/rms/karl, 16feb13/brandon, 4jan11/karl
-next-release: 14jan12/replied to jmd but doing nothing
-
-package: gnats
-reply-from: 6apr13, 1jan13
-next-release: ?
-next-contact: 6nov13
-
-package: gnatsweb
-reply-from: 25jul11
-query-to: 22jan12/jmd
-next-release: 25jul11/little work done
-
-package: gnowsys
-reply-from: 24mar15/nagarjuna, 13may14, 28may13, 18mar10
-query-to: 22mar15/brandon, 12may14, 28may13
-next-release: 24mar15/april 2015, 13may14/august 2014, 28may13/august 2013
-
-package: gnu-arch
-reply-from: 28may13/andy, 10oct11, 2dec08
-query-to: 28may13/brandon, 1jul12/karl
-next-release: 28may13/probably none should retire
-
-package: gnubg
-query-to: 8may13/brandon, 25apr13/rms/karl, 20mar13/brandon
-
-package: gnucap
-query-to: 12may14/brandon, 28may13, 15aug08/karl
-note: 15aug08/asked about gplv3
-
-package: gnucash
-query-to: 24jan10/karl
-
-package: gnufm
-reply-from: 26mar13/matt
-query-to: 12may14/brandon, 26mar13
-next-release: 26mar13/almost ready
-
-package: gnugo
-query-to: 12may14/brandon
-
-package: gnuit
-query-to: 12may14/brandon
-
-package: gnujdoc
-reply-from: 15dec08
-query-to: 26jan10/karl
-
-package: gnukart
-reply-from: 04jun13, 21apr10
-query-to: 28may13/brandon
-next-release: 04jun13/never
-
-package: gnumed
-reply-from: 19jan10
-query-to: 18nov10/karl
-
-package: gnump3d
-query-to: 11feb10/karl
-
-package: gnupod
-reply-from: 13may14/adrian
-query-to: 12may14/brandon
-next-release: 13may14/none in sight
-note: the software is moribund due to being tied to moribund hardware
-
-package: gnurobots
-query-to: 12may14/brandon, 13feb11/karl
-
-package: gnuschool
-reply-from: 15jun13, 29may13, 7apr13, 1apr13
-query-to: 28may13/brandon, 26mar13/karl, 28mar12/karl
-next-release: 15jun13/emailed-to-karl-told-him-to-try-uploading
-next-contact: 1jul13
-
-package: gnushogi
-reply-from: 13mar12
-
-package: gnuskies
-reply-from: 8apr13/rahul
-query-to: 20mar13/brandon, 24jun09/karl
-next-release: never
-
-package: gnusound
-query-to: 12may14/brandon, 17sep11/karl, 30jan10
-note: 17sep11/#709362
-
-package: gnuspeech
-reply-from: 1apr15/david, 26mar13
-query-to: 23mar15/brandon, 12may14, 26mar13
-next-release: 1apr15/mid may?, 26mar13/unknown but possible
-
-package: goptical
-reply-from: 29nov10
-next-release: 29nov10/before christmas
-
-package: gpaint
-reply-from: 30may14/andy, 28may13, 10oct11, 12dec08
-query-to: 12may14/brandon, 28may13
-next-release: 31may14/two months, 28may13/one month
-
-package: gperf
-query-to: 28jun14/karl, 5may14/karl (and many in the past)
-also: libiconv, libsigsegv, libunistring
-
-package: gprolog
-query-to: 1feb10/karl
-
-package: grabcomics
-reply-from: 18nov10
-
-package: greg
-query-to: 12may14/brandon, 28may13, 14dec08/karl
-
-package: gretl
-query-to: 21nov10/karl
-
-package: gsegrafix
-query-to: 13feb11/karl
-
-package: gsl
-query-to: 25apr13/rms/karl, 19feb13/brandon
-
-package: gtick
-query-to: 12may14/brandon
-
-package: gtypist
-reply-from: 5dec10
-note: 5dec10/volunteer
-
-package: guile-rpc
-reply-from: 13may14/ludovic, 25mar13, 17dec08
-query-to: 12may14/brandon, 24mar13
-next-release: 13may14/next month, 25mar13/ready now, 17dec08/official eta
unknown
-
-package: gurgle
-reply-from: 23mar15/tim
-query-to: 22mar15/brandon
-next-release: 23mar15/1 year but it's effectively stable
-
-package: halifax
-reply-from: 6jul12
-
-package: hp2xx
-reply-from: 13may14/martin, 11feb10
-query-to: 12may14/brandon, 11may13, 13nov12
-next-release: 13may14/maybe later this year, unlikely because it's stable
-
-package: httptunnel
-reply-from: 28apr09
-query-to: 12may14/brandon, 28may13, 9feb10/karl
-
-package: intlfonts
-query-to: 12may14/brandon, 28may13, 27jan09/karl
-
-package: jdresolve
-query-to: 25apr13/rms/karl, 24mar13/brandon, 24nov10/karl, 9feb10
-
-package: jel
-reply-from: 24jun09
-
-package: jwhois
-reply-from: 12dec12, 20jun09
-next-release: 20jun09/maybe soon
-
-package: kawa
-reply-from: 8jun09
-
-package: kopi
-query-to: 12may14/brandon, 28may13, 10mar12/benheni
-
-package: leg
-reply-from: 16feb13, 8nov10
-query-to: 16feb13/brandon
-next-release: 16feb13/end of summer
-
-package: liberty-eiffel
-query-to: 11may14/brandon
-
-package: libffcall
-reply-from: 28may13, 27nov10
-query-to: 28may13/brandon
-next-release: 28may13/orphaned, 27nov10/unknown
-
-package: libmatheval
-reply-from: 18jun11
-query-to: 18jun11/karl, 10nov10
-
-package: libredwg
-reply-from: 16feb10
-query-to: 27mar13/karl
-
-package: libxmi
-query-to: 12may14/brandon, 28may13, 16feb10/karl
-
-package: lightning
-query-to: 28may13/brandon, 27sep12/karl, 31dec08
-
-package: lrzsz
-reply-from: 11apr09
-query-to: 12may14/brandon, 28may13, 28nov10/karl
-next-release: 11apr09/next 3 months
-
-package: lsh
-reply-from: 29may13/niels, 9mar13
-query-to: 28may13/brandon
-next-release: 29may13/within a few months, 9mar13/sometime
-
-package: macchanger
-reply-from: 18jan09
-
-package: make
-reply-from: 21jan09
-
-package: maverik
-reply-from: 21feb13
-query-to: 18feb13/brandon
-
-package: mc
-query-to: 28may13/brandon, 19jun12/karl, 20jan09, 12nov08
-
-package: mcsim
-reply-from: 29jan11, 29nov10
-
-package: melting
-query-to: 22feb10/karl
-
-package: metaexchange
-reply-from: 27mar13/laurence
-query-to: 24mar13/brandon
-next-release: 27mar13/indefinitely no
-
-package: metahtml
-reply-from: 19jan11, 23feb10
-query-to: 27nov11/gerald
-
-package: miscfiles
-reply-from: 17nov10
-
-package: nana
-query-to: 3jul12/jmd, 10mar11/karl
-
-package: nano
-query-to: 11jun12/karl
-
-package: oleo
-reply-from: 21jan13, 5apr12
-query-to: 21jan13/brandon, 1apr12/jmd, 19feb12, 22jan12
-
-package: orgadoc
-reply-from: 1mar10
-
-package: panorama
-query-to: 12may14/brandon, 28may13, 11may09/karl
-
-package: pascal
-reply-from: 23feb09
-
-package: paxutils
-query-to: 12may14/brandon, 3apr13/karl
-reply-from: 9dec12, 4feb09, autumn09
-
-package: pcb
-query-to: 2jul12/karl, 2dec10, 4mar10, 24mar09
-
-package: pdf
-reply-from: 31mar13/jose
-query-to: 12may14/brandon, 24mar13
-
-package: pexec
-query-to: 13may14/brandon
-
-package: phantom_home
-query-to: 13may14/brandon, 28may13, 1jun09/karl
-
-package: phpgroupware
-reply-from: 28apr12/hamet
-query-to: 25apr13/rms/karl, 16feb13/brandon, 15apr12/karl, 8mar10
-
-package: pies
-reply-from: 24may14/sergey
-query-to: 13may14/brandon
-next-release: 24may14/within two months
-
-package: pipo
-query-to: 13may14/brandon, 28may13, 9mar10/karl
-
-package: plotutils
-reply-from: 14may14, 13jun11
-query-to: 30apr14/karl
-next-release: summer14
-
-package: powerguru
-next-release: 3dec10/never
-reply-from: 3dec10
-query-to: 26mar13/karl
-
-package: proxyknife
-query-to: 13may14/brandon
-
-package: pspp
-reply-from: 9dec12
-next-release: 9dec12/early next year
-
-package: pth
-reply-from: 3dec11, 4jan11, 1jun09
-query-to: 13may14/brandon, 28may13, 10mar11/karl, 12mar10
-note: 10mar11 rms gave up, 4jan11 to rms
-
-package: pythonwebkit
-reply-from: 17feb13
-query-to: 16feb13/brandon
-note: 17feb13 no release yet (urged doing so)
-
-package: quickthreads
-reply-from: 23jul09
-query-to: 12mar10/karl
-note: 23jul09 awaiting code
-
-package: radius
-query-to: 13may14/brandon
-
-package: rpge
-query-to: 25apr13/rms/karl, 16feb13/brandon, 19feb12/jmd, 22jan12, 14feb11/karl
-
-package: sather
-reply-from: 14apr13
-query-to: 19feb13/brandon, 14apr12/karl
-next-release: unknown
-next-contact: 14oct13
-
-package: screen
-reply-from: 27jan12
-query-to: 28may13/brandon
-next-release: 27jan12/early next week
-
-package: serveez
-reply-from: 29jan11, 25jun09
-query-to: 26jan11/karl, 8jun10
-
-package: shmm
-reply-from: 25mar15/jeannie
-query-to: 23mar15/brandon, 13may14
-next-release: 25mar15/probably never (stable) maybe update for MacOS
-support later this year
-
-package: shtool
-query-to: 13may14/brandon
-
-package: smarteiffel
-query-to: 28may13/brandon
-
-package: social
-reply-from: 13may14/brandon, 26mar13/matt
-query-to: 13may14/brandon, 26mar13
-next-release: 13may14/waiting on copyright assignment, 26mar13/almost ready
-
-package: spacechart
-query-to: 13may14/brandon, 28may13, 21mar10/karl, 14feb09
-
-package: speex
-reply-from: 13may14/jean-marc
-query-to: 13may14/brandon
-next-release: 13may14/new maintainer so hopefully sometime
-
-package: sqltutor
-reply-from: 13may14/ales, 9dec12
-query-to: 13may14/brandon
-next-release: 14may14/this summer, 9dec12/next year
-
-package: stalkerfs
-query-to: 13may14/brandon, 20feb09/karl
-
-package: stump
-reply-from: 13may14/igor, 16mar09
-query-to: 13may14/brandon, 28may13, 9dec10/karl, 24mar10
-next-release: 13may14/never
-
-package: superopt
-next-contact: jun14->ttn
-reply-from: 16jan14/ttn, 18mar09
-query-to: 28may13/brandon, 18jan11/karl, 25mar10
-
-package: sysutils
-query-to: 13may14/brandon, 28may13, 19jan11/karl, 26mar10
-
-package: talkfilters
-reply-from: 30may14/mark
-query-to: 13may14/brandon
-next-release: 30may14/never, stable
-
-package: termcap
-reply-from: 14may14/gary
-query-to: 13may14/brandon, 28may13
-next-release: 14may14/never
-
-package: termutils
-reply-from: 14may14/gary, 23feb09
-query-to: 13may14/brandon, 28may13, 8nov10/karl, 23feb09
-next-release: 14may14/never
-
-package: thales
-reply-from: 27feb13
-query-to: 26feb13/brandon
-
-package: time
-reply-from: 23mar15/david, 16feb13/bug-gnu-utils, 14oct11, 13jan11
-query-to: 22mar15/brandon, 13may14, 28may13
-next-release: 23mar15/recent release via git tag, 16feb13/no eta,
13jan11/within a month
-
-package: trueprint
-reply-from: 15jan13
-note: 15jan13 "try to work more"
-
-package: userv
-reply-from: 04jun13, 19feb13
-query-to: 13may14/brandon, 28may13
-next-release: 04jun13/some time this year, 19feb13/maybe soon
-
-package: uucp
-reply-from: 29may13, 19may09
-query-to: 28may13/brandon, 9jan11/karl, 3apr10
-next-release: 29may13/never
-
-package: vcdimager
-reply-from: 26feb09
-
-package: vmslib
-reply-from: 18feb13, 12jun12
-query-to: 21mar13/brandon, 18feb13
-next-contact: 18mar13
-
-package: w3
-reply-from: 6apr10
-query-to: 16may13/brandon, 13may13, 25apr13/rms/karl, 27mar13/brandon,
10jan11/karl, 8nov10
-
-package: webstump
-reply-from: 22mar15/igor
-query-to: 22mar15/brandon, 13may14, 28may13
-
-package: which
-reply-from: 15may14/carlo
-query-to: 13may14/brandon
-next-release: 15may14/none, stable
-
-package: xhippo
-reply-from: 13may14/adam
-query-to: 13may14/brandon
-next-release: 13may14/never
-
-package: xlogmaster
-reply-from: 23mar15/john
-query-to: 22mar15/brandon, 13may14, 19feb12/jmd
-note: 19feb12 asked about penguin
-next-release: 23mar15/couple months
-
-package: xmlat
-reply-from: 27feb13
-query-to: 26feb13/brandon
-
-package: xaos
-reply-from: 14may14/zoltan
-query-to: 13may14/brandon
-
-# End. (Do not remove this line or the blank line before it. Thanks.)
Index: massmail-1405-stale.txt
===================================================================
RCS file: massmail-1405-stale.txt
diff -N massmail-1405-stale.txt
--- massmail-1405-stale.txt 5 May 2014 20:59:00 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-From: address@hidden (GNU Project)
-To: %PACKAGE_MAINTAINERS
-Bcc: address@hidden
-Subject: release of GNU %PACKAGE_NAME
-
-Greetings,
-
-We're sending you this message on behalf of the GNU Project because as
-far as we know, you are the maintainer(s) of %PACKAGE_NAME. (If you're
-not maintaining it, please just reply to let us know.)
-
-As far as we've been able to discern, %PACKAGE_NAME
-has gone several years without a new (official) release. If you have in
-fact made a recent release, please let us know, and sorry for the noise.
-We could not determine the status with absolute certainty.
-
-Otherwise ... it has always been a basic goal of GNU that its
-constituent packages be actively developed and have releases from time
-to time. Without a release, we periodically ping the maintainer(s) to see
-how things are going. So, could you please reply to this message with a
-response to the following questions? Please include all and any
-relevant information, better too much than too little.
-
-1) Can you estimate, even roughly, when a new release will be made?
-
-2) Have you been able to make progress (fixing bugs, updating
-infrastructure, adding features, ...) since the last release, or since
-our last contact with you?
-
-3) Are there technical, legal, or other barriers to making a release?
-We'd like to help if we can.
-
-4) Other comments?
-
-In general, if you have any news or questions regarding the package,
-please let us know at address@hidden Thanks for contributing to
-GNU, and happy hacking.
-
-Brandon & Karl (GNUisances)
Index: mailtoname
===================================================================
RCS file: mailtoname
diff -N mailtoname
--- mailtoname 15 Feb 2008 19:06:53 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,99 +0,0 @@
-#!/usr/bin/env perl
-# We originally used email addresses in activity-report.txt; turns out
-# it's much better to include real names, since email addresses change and
-# vary. This one-time script does a simplistic conversion, with hand
-# clean-up needed afterwards.
-
-exit (&main ());
-
-sub main
-{
- my %names = &read_maintainers ("by-email");
- my @activity = &read_activity ("activity-report.txt");
-
- for my $a (@activity) {
- my ($email,$pkg,$date) = split (/\|/, $a);
- print $names{lc ($email)};
- print "|$email|$pkg|$date";
- }
-
- return 0;
-}
-
-
-
-# just do very basic parsing for this one-time job.
-# return hash where keys are email addresses and values are names.
-# we record all emails we can find.
-#
-sub read_maintainers
-{
- my %ret;
-
- $MAINTAINERS_FILE = "m.link";
- open (MAINTAINERS_FILE) || die "open($MAINTAINERS_FILE) failed: $!";
-
- # ignore first part of maintainers, through the first form feed.
- while (<MAINTAINERS_FILE>) {
- chomp;
- last if /^\f$/;
- }
-
- # read the real information.
- my (@email_list, $name);
- while (<MAINTAINERS_FILE>) {
- chomp;
- next if /^#/; # ignore comments
-
- # at a blank line, save the maintainer info we've accumulated, if any.
- if (/^\s*$/) {
- for my $e (@email_list) {
- if (exists $ret{$e}) {
- warn "already saw email $e for $ret{$e}, now have $name";
- } else {
- $ret{$e} = $name;
- }
- }
-
- @email_list = ();
- $name = undef;
-
- last if /^\f$/; # form feed marks end of info.
- next;
- }
-
- # key is everything before the first colon.
- # value is everything after the first colon and whitespace.
- my ($key,$val) = split (/:\s*/, $_, 2);
-
- # just want name and email addresses.
- if ($key eq "name") {
- $name = $val;
- } elsif ($key =~ /email/) {
- push (@email_list, lc ($val));
- }
- }
-
- # skip the rest.
- close (MAINTAINERS_FILE) || warn "close($MAINTAINERS_FILE) failed: $!";
-
- return %ret;
-}
-
-
-
-sub read_activity
-{
- my ($file) = @_;
- my (@ret);
-
- local *FILE;
- $FILE = $file;
- open (FILE) || die "open($FILE) failed: $!";
- while (<FILE>) {
- push (@ret, $_);
- }
- close (FILE) || warn "close($FILE) failed: $!";
-
- return @ret;
-}
Index: gm-email.pl
===================================================================
RCS file: gm-email.pl
diff -N gm-email.pl
--- gm-email.pl 3 Dec 2012 19:06:17 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,156 +0,0 @@
-# $Id: gm-email.pl,v 1.1 2012/12/03 19:06:17 karl Exp $
-# Generate a batch of email messages. See the help string below.
-# In a separate file just because it gets kind of long.
-#
-# Copyright 2012 Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-
-
-# Maybe someday we will need "bymaintainer", or something else.
-#
-sub generate_email_bypackage {
- splice (@ARGV, 0, 3); # lose the "generate email ..."
- my ($output_dir, $pkg_list, $template_file);
- while (my $arg = shift @ARGV) {
- if ($arg eq "-h") {
- print <<END_GENEMAIL_HELP;
-Usage: $0 generate email batch -o OUTDIR -p PKGLIST-FILE -t TEMPLATE-FILE
-
-Generate a batch of email messages in OUTDIR,
-one for each package in PKGLIST-FILE (plain text, one package name per line),
-doing substitutions in TEMPLATE-FILE to make each actual message.
-All three of these options are required.
-
-Any previous contents of OUTDIR is removed, so the program can be run
-many times while tweaking the template and package list.
-
-No email is actually sent (do that by running, e.g., sendmail -t on each
-file in OUTDIR after you are satisfied with the contents).
-END_GENEMAIL_HELP
- exit 0;
-
- } elsif ($arg eq "-o") {
- $output_dir = shift @ARGV;
- } elsif ($arg eq "-p") {
- $pkglist_file = shift @ARGV;
- } elsif ($arg eq "-t") {
- $template_file = shift @ARGV;
- }
- }
-
- # Check values.
- die "$0: generate email group needs all of -o, -p, -t; try -h for help.\n"
- if (! $output_dir || ! $pkglist_file || ! $template_file);
- #
- die "$0: package list file nonexistent or empty: $pkglist_file"
- if ! -s $pkglist_file;
- #
- die "$0: template file nonexistent or empty: $template_file"
- if ! -s $template_file;
- #
- if (! -e $output_dir || -d $output_dir) {
- system ("rm -rf $output_dir");
- mkdir ($output_dir, 0777) || die "$0: mkdir($output_dir) failed: $!\n";
- } else {
- die "$0: output directory exists and is not a directory: $output_dir\n";
- }
-
- my %maint_file = &read_maintainers ("by-package");
-
- my $count = 0;
- open (PKGLIST, $pkglist_file) || die "open($pkglist_file) failed: $!";
- while (<PKGLIST>) {
- (my $pkg = $_) =~ s/\s.*$//; # take first word of each line, ignore rest.
- die "$0: Not a package in the maintainers file: $pkg\n"
- if ! exists $maint_file{$pkg};
-
- # for msg.1201, rms said to explicitly exclude Hurd from the query.
- # And there's no point in checking on gnustandards or trans-coord.
- next if $pkg =~ /^(mig|hurd|gnumach|gnustandards|trans-coord)$/;
-
- my $msg = &make_msg ($template_file, $pkg, $maint_file{$pkg});
- next if ! $msg; # skipping this one since unmaintained, etc.
-
- local *MSG;
- $MSG = ">$output_dir/$pkg";
- open (MSG) || die "open($MSG) failed: $!";
- print MSG $msg;
- close (MSG) || die "close($MSG) failed: $!";
-
- $count++;
- }
- close (PKGLIST) || warn "close($pkglist_file) failed: $!";
-
- return "$count messages generated in $output_dir/.";
-}
-
-
-# PKGREF is a hash with the information for PKGNAME from the maintainers
-# file. Expand TEMPLATE_FILE and return it as a string. Except if the
-# package is unmaintained, then return undef.
-#
-sub make_msg {
- my ($template_file,$pkgname,$pkgref) = @_;
-
- # ignore generic entry if present, we want to write the individuals.
- my ($maintainer_email_addrs,undef) = &maintainer_email_addrs ($pkgref);
- return undef if $maintainer_email_addrs =~ /^unmaintained/;
-
- # Ok, we're unnecessarily rereading the template file every time.
- open (TEMPLATE, $template_file) || die "open($template_file) failed: $!";
- my $msg = join ("", <TEMPLATE>);
- close (TEMPLATE) || warn "close($template_file) failed: $!";
-
- my $pretty_email_addrs = &prettify_for_msg ($maintainer_email_addrs);
-
- # Template substitutions.
- $msg =~ s/%PACKAGE_NAME/$pkgname/g;
- $msg =~ s/%PACKAGE_MAINTAINERS/$pretty_email_addrs/g;
-
- return $msg;
-}
-
-# Given single string of email ADDRS, break into multiple lines at a
-# somewhat reasonable length, prepending tabs to second and subsequent
-# lines. The idea being that the result can be used in the To: header.
-#
-sub prettify_for_msg {
- my ($addrs) = @_;
- my $ret = "";
-
- my @addrs = split (/, /, $addrs);
- return $addrs if @addrs == 1; # only one, just return it.
-
- my $line_len = 0;
- for (my $i = 0; $i < @addrs; $i++) {
- $ret .= $addrs[$i]; # add addr
- $ret .= "," if $i + 1 < @addrs; # add comma if not the last one
-
- $line_len += length ($addrs[$i]) + 1; # what we just added
- if ($line_len > 71) {
- # long enough, end this line and start the next:
- $ret .= "\n\t" if $i +1 < @addrs; # unless it's the last one.
- $line_len = 0;
- } else {
- $ret .= " "; # add space, will continue on this line
- }
- }
-
- return $ret;
-}
-
-1;
Index: gm-list.pl
===================================================================
RCS file: gm-list.pl
diff -N gm-list.pl
--- gm-list.pl 23 Mar 2015 09:16:42 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,267 +0,0 @@
-# $Id: gm-list.pl,v 1.3 2015/03/23 09:16:42 brandon Exp $
-# The list actions for the gm script (see --help message).
-#
-# Copyright 2007, 2008, 2009, 2010, 2012, 2013, 2015
-# Free Software Foundation Inc.
-#
-# This program 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/>.
-#
-# Originally written by Karl Berry.
-
-
-
-# Return a list of strings: the (active) package names which the FSF is
-# the copyright holder. Or, if the NOTFSF argument is set, for which it
-# is not the copyright holder.
-#
-sub list_copyrightfsf_ {
- my ($notfsf,$nowarn) = @_;
- my @ret = ();
-
- my %fsf_pkgs = &read_copyright_list ("by-line");
- my %old_pkgs = &read_oldpackages ();
- my %maint_pkgs = &read_maintainers ("by-package");
-
- for my $fsf_pkg (sort keys %fsf_pkgs) { # packages in copyright.list
- if (! exists $maint_pkgs{$fsf_pkg}) { # if not in maintainers ...
- # warn about stray names unless known special case, or decommissioned.
- if (! &skip_fsf ($fsf_pkg) && ! exists $old_pkgs{$fsf_pkg}) {
- $fsf_line = $fsf_pkgs{$fsf_pkg};
- warn "$COPYRIGHT_LIST_FILE:$fsf_line: $fsf_pkg not in maintainers\n"
- unless $nowarn;
- }
- next;
- }
-
- if ($notfsf) {
- delete $maint_pkgs{$fsf_pkg};
- } else {
- push (@ret, $fsf_pkg) if ! &skip_pkg_p ($mp);
- }
- }
-
-
- if ($notfsf) {
- # if not fsf, then we want everything left in (not deleted from) maint.
- # The same few problem and non-packages to delete in this case.
- for my $mp (keys %maint_pkgs) {
- delete $maint_pkgs{$mp} if &skip_pkg_p ($mp);
- }
- push (@ret, sort keys %maint_pkgs);
- }
-
- return @ret;
-
-
- # Return 1 if we shouldn't worry about the name of this FSF assignment
- # not being a canonical package name.
- #
- sub skip_fsf {
- my ($fsf) = @_;
-
- my @skip_fsf = qw(
- alloca art artwork asa
- at crontab atrm crond makeatfile
- autolib
- backupfile getversion
- banner blksize bsearch c2tex catalog cdlndir
- cgraph dfs
- checkaliases checker chkmalloc command configure crypto ctutorial cvs
- cvs-utils
- dcl debian dvc
- ebnf2ps ecc ecos edebug egcs elisp_manual elms emacstalk enc-dec
- ep gnust
- etags expect
- fcrypt fiasco file flex flymake flyspell fpr freeodbc fsflogo
- g77 g95 gamma garlic gc gcc-testsuite gconnectfour gellmu gfortran
- gfsd gm2 gnatdist gnoetry gnu_ocr gnulist gnussl go32 gomp grx gsmb
- gso guile-python guppi gyve
- initialize interp io isaac ispell
- je
- kaffe
- leif lesstif lib libiberty libstdc libwv linkcontroller lynx
- m2f mh-e mingw32 minpath misc mkinstalldirs mmalloc mpuz msort mtime
- mtrace mule mutt myme
- newlib newsticker nvi
- opcodes ox
- p2c pc pipobbs pips planner polyorb pptp profile psi publish
- qsort quagga
- rcl readelf regex review riacs
- scandir srchdir
- send sim spim spline stm suit
- tcl tix tk expect
- texi2roff thethe tkwww trix tsp_solve tzset
- udi ul uncvt unexec
- viper web webpages win32api xemacs zlib
- );
-
- my %skip_fsf;
- @address@hidden = (); # hash slice to make hash from list
-
- return exists $skip_fsf{$fsf};
- }
-}
-
-
-# Return the packages for which the FSF is not the copyright holder.
-#
-sub list_copyrightfsfnot_ {
- return list_copyrightfsf_ (1);
-}
-
-
-
-# Return copyright.list entries that don't have matching paperwork,
-# and vice versa.
-#
-sub list_copyrightpapers_ {
- my @ret = ();
- my %cl_pkgs = &read_copyright_list ("by-year");
- my %cp_pkgs = &read_copyright_papers ();
-
- $DEBUG = 1;
-
- for my $year (sort keys %cp_pkgs) {
- my $cp_year = $cp_pkgs{$year};
- my $cl_year = $cl_pkgs{$year};
- &debug_hash ("cp_year $year", $cp_year);
- &debug_hash ("cl_year $year", $cl_year);
- last;
- }
-
- return @ret;
-}
-
-
-
-# Return list of maintainers for whom we have no phone or address.
-#
-sub list_maintainers_nophysical {
- my @maints = ();
- my %maints = &read_maintainers ("by-maintainer");
-
- for my $m (sort keys %maints) {
- my $m_ref = $maints{$m};
- my %m = %$m_ref;
- next if $m{"is_generic"}; # no contact info needed
- next if $m{"address"} || $m{"phone"}; # have contact info
- (my $packages = $m{"package"}) =~ tr/|/ /;
- push (@maints, "$m{best_email} ($m{name} - $packages)");
- }
-
- return @maints;
-}
-
-
-
-# Return all packages sorted by activity status, one package per line.
-#
-sub list_packages_activity {
- my @ret = ();
-
- # sort activity statuses in this order. If other strings are used,
- # they'll show up first so they can be easily fixed.
- my %activity_order = ("stale" => 1,
- "moribund" => 2,
- "ok" => 3,
- "stable" => 4,
- "subpkg" => 5,
- "container" => 6,
- );
-
- my %pkgs = &read_gnupackages ();
- for my $pkgname (sort by_activity keys %pkgs) {
- my %p = %{$pkgs{$pkgname}};
- my $activity = $p{"activity-status"};
- push (@ret, &gnupkgs_msg ($activity, %p));
- }
-
- return @ret;
-
- sub by_activity {
- (my $a_status = $pkgs{$a}->{"activity-status"}) =~ s/ .*//;
- (my $b_status = $pkgs{$b}->{"activity-status"}) =~ s/ .*//;
- $activity_order{$a_status} <=> $activity_order{$b_status}
- || $pkgs{$a}->{"activity-status"} cmp $pkgs{$b}->{"activity-status"}
- || $a cmp $b;
- }
-}
-
-
-
-# Return all packages whose GPLv3 status is not final.
-#
-sub list_packages_gplv3 {
- my @ret = ();
-
- my %pkgs = &read_gnupackages ();
- for my $pkgname (sort by_gplv3 keys %pkgs) {
- my %p = %{$pkgs{$pkgname}};
- my $gplv3 = $p{"gplv3-status"};
- my $contact = $p{"last-contact"};
- next if $gplv3 =~ /^(done|doc|not-applicable|notgpl|ok|see)/;
- push (@ret, &gnupkgs_msg ($gplv3 . ($contact ? " [$contact]" : ""), %p));
- }
-
- return @ret;
-
- sub by_gplv3 {
- (my $a_status = $pkgs{$a}->{"gplv3-status"});# =~ s/ .*//;
- (my $b_status = $pkgs{$b}->{"gplv3-status"});# =~ s/ .*//;
- $pkgs{$a}->{"gplv3-status"} cmp $pkgs{$b}->{"gplv3-status"}
- || $a cmp $b;
- }
-}
-
-
-
-# Return list of packages for whom no maintainer has answered.
-#
-sub list_packages_unanswered {
- my @recentrel = &read_recentrel ();
- my %activity = &read_activity ("by-package");
- my %pkgs = &read_maintainers ("by-package");
- my @ret = ();
-
- for my $p (sort { lc($a) cmp lc($b) } keys %pkgs) {
- #&debug_hash ($p, $pkgs{$p});
-
- if (grep { $p eq $_ } @recentrel) {
- &debug ("$p recently released, skipping");
-
- } elsif (exists $activity{$p}) {
- # todo: check back to some cutoff
- &debug ("$p got activity reply, skipping");
-
- } else {
- &debug ("$p no activity, returning");
- my @entries = ();
- for my $m (@{$pkgs{$p}}) {
- next if $m->{"is_generic"};
- my $entry = $m->{"name"};
- $entry .= " " if $entry;
- $entry .= "<$m->{best_email}>" if exists $m->{"best_email"};
- push (@entries, $entry);
- }
-
- # might not be anything in @entries.
- push (@ret, "$p - " . join (", ", @entries)) if @entries;
- }
- }
-
- return @ret;
-}
-
-
-1;
Index: spotlight.tmpl
===================================================================
RCS file: spotlight.tmpl
diff -N spotlight.tmpl
--- spotlight.tmpl 17 Oct 2016 20:55:54 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-$Id: spotlight.tmpl,v 1.2 2016/10/17 20:55:54 brandon Exp $
- Copyright 2015 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved.
-
-Template for GNU Spotlight feature of the Free Software Supporter.
-See ./howto-spotlight.txt.
-
----------------------------------------------------------------------
-NN new GNU releases in the last month (as of Month DD, 20YY):
-
-[[[markdown list of releases goes here]]]
-
-For announcements of most new GNU releases, subscribe to the info-gnu
-mailing list: <http://lists.gnu.org/mailman/listinfo/info-gnu>.
-
-To download: nearly all GNU software is available from
-<http://ftp.gnu.org/gnu/>, or preferably one of its mirrors from
-<http://www.gnu.org/prep/ftp.html>. You can use the url
-<http://ftpmirror.gnu.org/> to be automatically redirected to a
-(hopefully) nearby and up-to-date mirror.
-
-This month, we welcome [[[list from activity-report.txt]]].
-
-A number of GNU packages, as well as the GNU operating system as a
-whole, are looking for maintainers and other assistance: please see
-<http://www.gnu.org/server/takeaction.html#unmaint> if you'd like to
-help. The general page on how to help GNU is at
-<http://www.gnu.org/help/help.html>.
-
-If you have a working or partly working program that you'd like
-to offer to the GNU project as a GNU package, see
-<http://www.gnu.org/help/evaluation.html>.
-
-As always, please feel free to write to us at <address@hidden>,
-with any GNUish questions or suggestions for future installments.
Index: massmail-1305-stale.txt
===================================================================
RCS file: massmail-1305-stale.txt
diff -N massmail-1305-stale.txt
--- massmail-1305-stale.txt 28 May 2013 13:39:50 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-From: address@hidden (GNU Project)
-To: %PACKAGE_MAINTAINERS
-Bcc: address@hidden
-Subject: release of GNU %PACKAGE_NAME
-Reply-to: address@hidden
-
-Greetings,
-
-We're sending you this message on behalf of the GNU Project because as
-far as we know, you are the maintainer(s) of %PACKAGE_NAME. (If you're
-not maintaining it, please just reply to let us know.)
-
-As far as we've been able to discern, %PACKAGE_NAME
-has gone several years without a new (official) release. If you have in
-fact made a recent release, please let us know, and sorry for the noise.
-We could not determine the status with absolute certainty.
-
-Otherwise ... it has always been a basic goal of GNU that its
-constituent packages be actively developed and have releases from time
-to time. Without a release, we periodically ping the maintainer(s) to see
-how things are going. So, could you please reply to this message with a
-response to the following questions? Please include all and any
-relevant information, better too much than too little.
-
-1) Can you estimate, even roughly, when a new release will be made?
-
-2) Have you been able to make progress (fixing bugs, updating
-infrastructure, adding features, ...) since the last release, or since
-our last contact with you?
-
-3) Are there technical, legal, or other barriers to making a release?
-We'd like to help if we can.
-
-4) Other comments?
-
-In general, if you have any news or questions regarding the package,
-please let us know at address@hidden Thanks for contributing to
-GNU, and happy hacking.
-
-Brandon & Karl (GNUisances)
Index: oldpackages.txt
===================================================================
RCS file: oldpackages.txt
diff -N oldpackages.txt
--- oldpackages.txt 20 Jan 2019 16:57:00 -0000 1.38
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,482 +0,0 @@
-# $Id: oldpackages.txt,v 1.38 2019/01/20 16:57:00 jmd Exp $
-# Public domain.
-#
-# This file is maintained in the CVS repository of GNU womb,
-# http://cvs.savannah.gnu.org/viewvc/gnumaint/?root=womb
-#
-# This file records information and the old gnupackages entries for
-# packages which we have decommissioned.
-#
-# There is nothing private in this file.
-
-package: cobol
-copyright-holder: fsf-no-reply
-doc-category: Software
-doc-summary: COBOL for GCC
-doc-url: none
-download-url: http://sourceforge.net/project/showfiles.php?group_id=5709
-gplv3-status: next-release
-activity-status: moribund 20000812 (0.1.2)
-last-contact: 26oct08 replied
-note: dedicated maintainer, but will not be able to resume full-time work
-note: for 4-5 years (after 6 months full-time work). But it's a Cobol
-note: compiler, hardly likely to find other implementors, and lots and lots
-note: of work has been done. Mail from tej, 26 Oct 2008 12:42:10 +1100.
-
-package: libreboot
-copyright-holder: notfsf
-logo: https://libreboot.org/logo/logo.png
-language: shell,c
-doc-category: Sysadmin
-doc-summary: A free BIOS/UEFI replacement
-doc-url: none
-gplv3-status: ok
-activity-status: newpkg 20160514
-
-package: dmd
-copyright-holder: fsf-no-reply-individual-name-in-files
-doc-category: Sysadmin
-doc-summary: Daemon managing daemons
-doc-url: none
-gplv3-status: not-done-in-0.5
-download_url: http://www.wt-lorsch.de/dmd--0.5.tar.gz
-activity-status: newmaint/20130925 2003 (0.5)
-gone: 17jan16 per maintainer: renamed to shepherd
-
-package: sovix
-copyright-holder: notfsf
-doc-category: Web
-doc-summary: Emacs-like website revision system
-doc-url: none
-gplv3-status: done-in-0.0.1.5 (agplv3)
-activity-status: stale 20081215 (0.0.1.7)
-gone: 12mar15 per englund; maintainer long since took it from GNU
-
-package: myserver
-copyright-holder: fsf-ok-with-dependencies-libxml-libevent-#786724
-language: c++
-logo: /software/myserver/logo.png
-doc-category: Internet
-doc-summary: Multi-threaded web server
-doc-url: none
-gplv3-status: done-as-of-0.9.2
-activity-status: ok 20110716 (0.11)
-note: doc-url was htmlxref, but gone now, author working 11mar12
-gone: 14mar14 per maintainer
-
-package: fcrypt
-copyright-holder: fsf-ok-#786630
-doc-category: Sysadmin
-doc-summary: on-the-fly encrypted filesystems, including secret partitions
-doc-url: none
-gplv3-status: should-be-ok
-activity-status: newpkg/20121106
-gone: 5oct13 strange behavior by maintainer
-
-package: xhippo
-doc_category: Audio
-doc_summary: Generic playlist manager program
-doc_url: none
-blurb_id: xhippo_blurb
-gplv3_status: done-in-3.5
-last_release: 3.5
-last_release_date: 20070827
-activity_status: stable
-last_activity: 20070827
-gone: 20jan19 per request from rms
-
-package: w3
-copyright-holder: fsf-no-reply
-doc-category: Internet
-doc-summary: Web browser written entirely in Emacs Lisp
-doc-url: none
-gplv3-status: not-done-since-stale
-activity-status: stale no-release
-gone: now http://elpa.gnu.org/packages/w3.html
-
-package: dismal
-copyright-holder: fsf-no-reply
-doc-category: Spreadsheets
-doc-summary: Emacs spreadsheet mode
-doc-url: none
-download-url: http://acs.ist.psu.edu/dismal/
-gplv3-status: working (gnumaint-reply 22 Aug 2007 01:16:36)
-activity-status: nomaint/20130528 19971204 (1.4)
-note: copyright.list says fsf, but actual copyrights don't
-note: http://acs.ist.psu.edu/dismal/dismal-1.4.tar.gz
-last-contact: 25jan11 replied soon, 17nov10, 29oct08 asked
-gone: 9aug13, now http://elpa.gnu.org/packages/dismal.html (M-x list-packages)
-
-package: gnu-arch
-mundane-name: Arch
-copyright-holder: notfsf-#786554
-doc-category: Version
-doc-summary: Distributed version control system
-doc-url: htmlxref
-logo: /software/gnu-arch/graphics/octopus-a-small.png
-gplv3-status: decommissioning-since-no-changes (atai 17 Dec 2007 10:00:18
-0800)
-activity-status: stale 20060720 (1.3.5)
-last-contact: 1jul12 asked, 10oct11,2dec08 replied
-gone: 29may13, inaction, have bazaar
-
-package: jdresolve
-language: perl
-doc-category: Internet
-doc-summary: Fast, recursive DNS name resolver for log files
-doc-url: none
-gplv3-status: not-done-since-stale
-activity-status: stale no-release
-gone: 22may13, vaporware
-
-package: phpgroupware
-mundane-name: phpGroupWare
-copyright-holder: fsf-no-reply
-logo: http://www.phpgroupware.org/templates/new/images/logo.png
-doc-category: Business
-doc-summary: Multi-user groupware suite
-doc-url: none
-download-url: http://sourceforge.net/projects/phpgroupware/files/phpgroupware/
-gplv3-status: in-dev-sources-maybe
-activity-status: newmaint/20091110 20100707 (0.9.16.017)
-gone: 22may13, inaction, hardly ever GNU
-
-package: gmorph
-doc-category: Graphics
-doc-summary: Image morphing program
-doc-url: none
-#download-url-of-xmorph:
http://sourceforge.net/project/showfiles.php?group_id=11808
-gplv3-status: not-done-since-stale
-activity-status: newmaint/20100106 20060817 (20060817)
-last-contact: 16feb13 asked, 24jan12 replied to jmd but doing nothing, 4jan11
asked
-note: renamed from xmorph, which continues to be non-GNU.
-gone: 22may13, inaction, still have xmorph
-
-package: gnuskies
-doc-category: Science
-doc-summary: Stargazing
-doc-url: none
-gplv3-status: not-done-since-no-release
-activity-status: nomaint/10apr13 no-release
-last-contact: 20mar13 brandon asked, 24jun09 asked, 2011 copyright finally done
-gone: 13apr13, never anything done, have celestia, per maintainer and rms
-
-package: vmslib
-doc-category: Software
-doc-summary: Help porting GNU software to VMS
-doc-url: none
-gplv3-status: not-done-since-nomaint
-activity-status: newmaint/20110707 (1996)
-gone: 28mar13, too stale and have GNV, per maintainer and rms
-
-package: packaging
-copyright-holder: fsf-no-reply
-doc-category: Software
-doc-summary: Packaging for GNU
-doc-url: none
-logo: /software/packaging/packaging.png
-gplv3-status: not-done-since-mia
-activity-status: stale no-release
-gone: 28mar13, too stale and have guix and gsrc, per maintainer and rms
-
-package: aetherspace
-doc-category: Games
-doc-summary: Massively multiplayer online (MMO) game
-doc-url: none
-gplv3-status: in-dev-sources (18jun08) # stated on web pages too
-activity-status: stale no-release
-last-contact: 20mar13 brandon asked, 12nov10 asked, 14dec09 replied, "spring
2010"
-gone: 24mar13, nonexistent, per maintainer and rms
-
-package: sourceinstall
-copyright-holder: fsf-no-reply
-doc-category: Sysadmin
-doc-summary: Managing distribution sources as packages
-doc-url: /software/sourceinstall/manual/
-gplv3-status: done-in-2.5rc1 (11may08)
-activity-status: ok 20080719 (2.5)
-gone: 19mar13, gsrc + guix do the job, per maintainer and rms
-
-package: guile-gtk
-copyright-holder: fsf-no-reply
-doc-category: Libraries
-doc-summary: Guile bindings to GTK libraries
-doc-url: htmlxref
-gplv3-status: done-as-of-2.1
-activity-status: ok 20071230 (2.1)
-gone: 10mar13, replaced by guile-gnome, per maintainer and rms
-
-package: paperclips
-logo: /software/paperclips/Paperclips-GNU-small.jpg
-language: java
-doc-category: Internet
-doc-summary: Java Servlet engine with EEP! template language support
-doc-url: none
-gplv3-status: not-done-since-no-release
-activity-status: stale no-release
-last-contact: 11feb13 asked, 3mar10 asked
-gone: 13feb13, never any release, per maintainer and rms
-
-package: snakecharmer
-doc-category: Graphics
-doc-summary: Image finding with GNU GIFT
-doc-url: none
-gplv3-status: not-done-since-nomaint
-activity-status: nomaint
-last-contact: see gift
-gone: 9feb13, never any release, no volunteers, raw sources on web page
-
-package: vc-changelog
-doc-category: Version
-doc-summary: ChangeLog management especially with distributed version control
-doc-url: none
-gplv3-status: in-dev-sources
-activity-status: new 19aug10
-gone: 1feb13, no active developers, never any release, can be under vc-dwim
-
-package: dotgnu
-mundane-name: DotGNU
-doc-category: Software
-doc-summary: Web services and C#
-doc-url: none
-gplv3-status: ok-since-container
-activity-status: container for-dotgnu-pnet-etc.
-gone: 18dec12, no development
-
-package: dotgnu-forum
-doc-category: Internet
-doc-summary: Web site revision system for DotGNU
-doc-url: none
-gplv3-status: not-done-since-stale
-activity-status: nomaint
-note: copyright.list seems clear
-gone: 18dec12, no development
-
-package: dotgnu-pnet
-copyright-holder: notfsf
-doc-category: Software
-doc-summary: DotGNU Portable.NET support for .NET applications
-doc-url: http://dotgnu.org/pnetlib-doc/index.html
-download-url: ftp://ftp.gnu.org/gnu/dotgnu/
-gplv3-status: not-done-in-0.1.2
-activity-status: ok 20070308 (0.8, libjit-0.1.2/20081210)
-gone: 18dec12, no development
-
-package: gnu-queue
-mundane-name: Queue
-copyright-holder: address@hidden and other authors
-doc-category: Sysadmin
-doc-summary: Allocate jobs to nodes in a cluster
-doc-url: none
-gplv3-status: under-discussion partly at GPLv1, but should be updatable
-activity-status: nomaint 20001101 (1.30.1)
-gone: 11aug12, parallel does the job
-
-package: goldwater
-doc-category: Business
-doc-summary: Middleware server
-doc-url: none
-gplv3-status: not-done-since-dotgnu-nomaint
-activity-status: nomaint
-last-contact: 31jan10 replied
-note: cvs -d:pserver:address@hidden:/sources/dgee co goldwater
-note: download-url: ftp.gnu.org:gnu/dotgnu -- taken offline, though
-gone: 11aug12
-
-package: goodbye
-doc-category: Software
-doc-summary: Kiosk management
-doc-url: none
-gplv3-status: not-done-since-no-release
-activity-status: stale no-release
-gone: 25jul12, per rms on gnu-prog-discuss
-
-package: aeneas
-doc-category: Science
-doc-summary: Design and simulation of submicron semiconductor devices
-doc-url: /software/aeneas/#documentation
-gplv3-status: done-in-1.2 (14jul08)
-activity-status: ok 20080714
-gone: 13may12, subsumed into archimedes
-
-package: sxml
-download-url: http://medialab.di.unipi.it/Project/SXML/resources.html
-doc-category: Web
-doc-summary: Simple XML for defining and implementing markup languages
-doc-url: none
-gplv3-status: not-done-since-stale
-activity-status: nomaint 20010829 (0.96)
-last-contact: 14nov10 stepped down
-gone: 12may12, replaced by xmlat
-
-package: proto
-copyright-holder: confused
-note: copyright.list says fsf, sources don't
-doc-category: Software
-doc-summary: Find prototypes in header files
-doc-url: none
-download-url: http://www.oualline.com/sw/
-gplv3-status: done-since-public-domain
-activity-status: stale 1996
-last-contact: 3mar11 to rms, 14mar10 replied, no plans to work on it
-gone: 19mar11, maintainer not interested, rms ok with decommissioning it
-
-package: libiberty
-copyright-holder: fsf
-gplv3-status: under-discussion
-activity-status: ok released-in-combination
-gone: 2dec10, redundant with gcc
-
-package: gnotary
-mundane-name: GNotary
-doc-category: Business
-doc-summary: Digitally sign electronic health records
-doc-url: none
-gplv3-status: not-done-since-stale
-activity-status: stale 20050827 (0.1.rc1)
-last-contact: see gnumed
-gone: 28nov10 never got off the ground, maintainers have no time for it
-
-package: songanizer
-copyright-holder: fsf
-doc-category: Audio
-doc-summary: Organize collections of audio files
-doc-url: none
-gplv3-status: not-done-in-1.0
-activity-status: stale 20070326 (1.0)
-last-contact: 19nov10 wrote, 10feb09 wrote
-gone: 22nov10 maintainer resigned, never caught on
-
-package: dictionary
-download-url: ftp://ftp.gnu.org/gnu/gcide
-gplv3-status: not-done-since-moribund
-activity-status: moribund-will-merge-into-gcide 200201 (0.46)
-last-contact: 21jun10 replied
-note: renamed to/from gcide
-note: gray will make an interface and spruce it up as part of dico.
-gone: 17nov10 no need to be separate from dico
-
-package: beacon
-gplv3-status: not-done-since-no-release
-activity-status: stale nonesuch
-last-contact: see aroundme
-gone: 14nov10 like aroundme, but never existed
-
-package: aroundme
-mundane-name: AROUNDMe
-download-url: http://www.barnraiser.org/aroundme/
-doc-category: Web
-gplv3-status: done-in-aroundme_pi_20080116a
-activity-status: ok 20080327
-last-contact: 200808 wrote author, working
-gone: 14nov10, discovered resignation
-
-package: libopts
-gplv3-status: not-done-in-27.6
-activity-status: stale 20070127 (27.6)
-last-contact: 15feb10 wrote
-gone: 9nov10, effectively part of autogen, unused on its own.
-
-package: zebra
-download-url: ftp://ftp.zebra.org/pub/zebra/
-logo: http://www.zebra.org/zebralogo.jpg
-gplv3-status: not-done-since-stale
-activity-status: stale 20050908 (0.95a) # 10feb10 wrote
-note: 18dec09 quagga unlikely replacement, some developers anti-gplv3.
-note: see also http://www.zebra.org
-gone: 8nov10, maintainer disappeared for years, quagga fork is active.
-
-package: isofsmk
-gplv3-status: not-done-in-1.11.3
-activity-status: ok 20100108 (1.13)
-gone: 8jul10 per author, replaced by xorriso.
-
-package: toutdoux
-doc-url: http://www.gnu.org/software/toutdoux/en/documentation.html
-gone: 20apr09 per author.
-
-package: octal
-doc-url: http://www.gnu.org/software/octal/ox_api_main/
-gone: 9apr09 per author.
-
-package: abcsh
-gone: per author, #332187.
-
-package: gnufi
-gone: 13feb10
-
-package: cons
-gone: 3jan10
-
-package: radar
-gone: 13oct08
-
-package: recode
-gone: 13oct08
-
-package: balsa
-gone: 4mar08
-
-package: hydrant
-gone: 18feb08
-
-package: cfs-el
-gone: 31aug07 or so
-
-package: music
-gone: 28aug07
-
-package: mana
-gone: 17aug07
-
-package: leonardo
-gone: 12may07
-
-package: hegemonie
-gone: 29mar07
-
-package: gnusql
-gone: 16mar06
-
-package: free
-gone: 25oct02
-
-package: dld
-gone: 11jul01 or so
-
-package: rx
-gone: long ago
-
-package: doschk
-gone: always nongnu
-
-package: emacs-wiki
-gone: never dubbed
-
-package: adhoc
-gone: never dubbed
-
-package: fileutils
-gone: long ago merged into coreutils
-
-package: textutils
-gone: long ago merged into coreutils
-
-package: sh-utils
-gone: long ago merged into coreutils
-
-package: finger
-gone: long ago merged into inetutils
-
-package: gfe
-gone: long ago
-
-package: gts
-mundane-name: G Transaction Server (?)
-gone: long ago
-note: Todd Lewis
-note: http://archives.postgresql.org/pgsql-hackers/1999-03/msg00200.php
-
-package: winboard
-gone: part of xboard
-
-# End. (Do not remove this line or the blank line before it. Thanks.)
Index: tpost-need.html
===================================================================
RCS file: tpost-need.html
diff -N tpost-need.html
--- tpost-need.html 14 May 2013 18:29:40 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@
-<!-- blurb to put on the web pages of packages that need maintainers. -->
-
-<hr><p>GNU XXX is looking for a maintainer.
-If you're interested, please take a look at this <a
-href="/help/evaluation.html#whatmeans">general information about GNU
-packages and being a GNU maintainer</a>, and then email
address@hidden with a bit about your background and particular
-interest in this package. Thanks.</p><hr>
Index: doc-categories.txt
===================================================================
RCS file: doc-categories.txt
diff -N doc-categories.txt
--- doc-categories.txt 6 Dec 2013 22:53:21 -0000 1.14
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-# $Id: doc-categories.txt,v 1.14 2013/12/06 22:53:21 karl Exp $
-# Public domain.
-# Map doc-category identifiers in gnupackages.txt to the actual category
-# names used in the Free Software Directory (http://directory.fsf.org),
-# so we can use the latter in generated web pages, such as
-# http://www.gnu.org/manual.
-# Texinfo @dircategory names should also use the third column (full
-# name) when it's present.
-Archiving -
-Audio aud
-Business prod Business and productivity
-Database db
-Dictionaries dict
-Education educ
-Email email
-Editors editors
-Fonts fonts
-Games games
-Graphics graph
-Health health
-Hobbies hobbies
-Interface iface
-Internet net Internet applications
-Libraries libs Software libraries
-Live lc Live communications
-Localization local
-Mathematics math
-Music music
-Printing print
-Science science
-Security sec
-Software dev Software development
-Spreadsheets ssheet
-Sysadmin admin System administration
-Telephony tel
-Text text Text creation and manipulation
-Translation dtrans Documentation translation
-Version vc Version control
-Video video
-Web web Web authoring
-gnuorg - GNU organization
Index: massmail-1503-stale.txt
===================================================================
RCS file: massmail-1503-stale.txt
diff -N massmail-1503-stale.txt
--- massmail-1503-stale.txt 19 Apr 2015 14:16:11 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-From: address@hidden (GNU Project)
-To: %PACKAGE_MAINTAINERS
-Bcc: address@hidden
-Subject: release of GNU %PACKAGE_NAME
-
-Greetings,
-
-We're sending you this message on behalf of the GNU Project because as
-far as we know, you are the maintainer(s) of %PACKAGE_NAME. (If you're
-not maintaining it, please just reply to let us know.)
-
-As far as we've been able to discern, %PACKAGE_NAME
-has gone several years without a new (official) release. If you have in
-fact made a recent release, please let us know, and sorry for the noise.
-We could not determine the status with absolute certainty. Please
-note that the best ways for us to be aware of your releases are making
-the release available on ftp.gnu.org and making release announcements
-via address@hidden and your Savannah project's "News" section (which
-shows up on the Planet GNU RSS feed).
-
-Otherwise ... it has always been a basic goal of GNU that its
-constituent packages be actively developed and have releases from time
-to time. Without a release, we periodically ping the maintainer(s) to see
-how things are going. So, could you please reply to this message with a
-response to the following questions? Please include all and any
-relevant information, better too much than too little.
-
-1) Can you estimate, even roughly, when a new release will be made?
-
-2) Have you been able to make progress (fixing bugs, updating
-infrastructure, adding features, ...) since the last release, or since
-our last contact with you?
-
-3) Are there technical, legal, or other barriers to making a release?
-We'd like to help if we can.
-
-3b) Do you have any difficulties in making your package work with
-other GNU packages or are there any bugs in other GNU packages that
-affect your software?
-
-4) Other comments?
-
-In general, if you have any news or questions regarding the package,
-please let us know at address@hidden Thanks for contributing to
-GNU, and happy hacking.
-
-Brandon & Karl (GNUisances)
Index: howto-commission.txt
===================================================================
RCS file: howto-commission.txt
diff -N howto-commission.txt
--- howto-commission.txt 31 Oct 2018 02:46:20 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,76 +0,0 @@
-$Id: howto-commission.txt,v 1.4 2018/10/31 02:46:20 mikegerwitz Exp $
- Copyright 2015 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved.
-
-Notes on what an "assistant GNUisance" needs to do when a new package is
-officially dubbed. Only rms can dub a new package; he sends mail to
address@hidden (which all and only such assistants should be on), and
-other recipients.
-
-When a replacement or co-maintainer for an existing package is dubbed,
-most of the below is unnecessary: just add the person to
-gnu-prog[-discuss] (item 1), and to the maintainers file (item 4), and
-send them the post-dubbing message (item 10).
-
-1. Add the new maintainer to gnu-prog, gnu-prog-discuss, and
-gnu-community-private right away, as stated at the end of the dubbing
-message.
-https://lists.gnu.org/mailman/admin/gnu-prog/members/add
-https://lists.gnu.org/mailman/admin/gnu-prog-discuss/members/add
-https://lists.gnu.org/mailman/admin/gnu-community-private/members/add
-
-2. Sometimes the package identifier is not completely clear from rms's
-message, especially if it has not gone through the normal evaluation
-process. The identifier should be all lowercase (no exceptions!), no
-spaces, not start with "gnu" unless there is good reason for it, and be
-reasonably descriptive and unique in the universe of free software (at
-least). The identifier is the common key linking the package in many
-disparate places, so it is worth a little time and discussion with the
-new maintainer if need be to make it good. rms does not generally need
-to be involved in that detail.
-
-3. A package can have a "mundane name" that includes spaces, capitals,
-etc. Sometimes that dispels fears the new maintainer might have.
-
-4. Once the package identifier is settled, things can proceed. Add the
-new maintainer to /gd/gnuorg/maintainers, with the new package name.
-See /gd/gnuorg/README for editing specifics. Update activity-report.txt
-at the same time, as described in that README.
-
-5. In womb/gnumaint, add the entry to rec/gnupackages.rec. The only entries
-likely to require some thought are the doc-category and doc-summary.
-It can always be fixed later, but usually isn't, so it's worth thinking
-about. Whatever else, do not commit a placeholder or other fake
-entries, since it will get propagated to www.gnu.org below. The doc-url
-will typically be "none" for a new package.
-
-6. Also in womb/gnumaint, add an entry to rec/pkgblurbs.rec. Here it can
-be a three-line placeholder:
- id: newpkgid_blurb
- package: newpkgid
- blurb: null (newpkg/YYYYMMDD)
-We'll ask the new maintainer for a blurb in the post email, below.
-
-7. Items 5 and 6 should be done right away, as otherwise consistency
-checks will start to fail (as soon as /gd/gnuorg/maintainers is
-updated). Commit these changes.
-
-8. Regenerate the allgnupkgs.html et al. web page includes here:
- make gnupackages.txt
- make html-update # writes into www checkout at ${gw}
- make html-diff # cvs diff of the generated files
- cd $gw && cvs commit ...
-It's important to do the diff and actually look at the output, to ensure
-both that the files have not been hand-edited on the www side, and that
-the generation actually did what is expected.
-
-9. The savannah people should ensure that the new package is marked gnu,
-if it already exists on savannah, or accept it. And for
-replacement/co-maintainers, they should ensure that the new person is
-made an admin of the package, if it exists.
-
-10. Send the post-appointment email from the template temail-4post.txt,
-suitably edited.
Index: gnufsd
===================================================================
RCS file: gnufsd
diff -N gnufsd
--- gnufsd 30 Dec 2007 17:05:09 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,84 +0,0 @@
-#!/usr/bin/env perl
-# $Id: gnufsd,v 1.1 2007/12/30 17:05:09 karl Exp $
-# Extract information about GNU packages from the Free Software Directory.
-
-$DIRDIR = "$ENV{HOME}/gnu/src/directory/";
-exit (&main ());
-
-sub main
-{
- my %opt;
- if ($ARGV[0] eq "byname") {
- $opt{"packages_by_name"} = 1;
- } elsif ($ARGV[0] eq "bylicense") {
- $opt{"packages_by_license"} = 1;
- }
-
- # what we extract. should read and return a hash, etc. no need yet.
- my %licenses;
- my @packages;
-
- chdir ($DIRDIR) || die "chdir($DIRDIR) failed: $!";
- opendir (DIR, ".") || die "opendir($DIRDIR) failed: $!";
- while (my $dirent = readdir (DIR)) {
- next if $dirent =~ /^(\.\.?|CVS|README)$/; # ignore . .. CVS README
-
- open (DIRENT, $dirent) || die "open($dirent) failed: $!";
-
- my %fsd_entry;
-
- while (<DIRENT>) {
- if (/^%%license:/) {
- $fsd_entry{"license"} = $_;
-
-# } elsif (/^%%name:/) {
-# (undef,$xdirent) = split (" ", $_, 2);
-# }
-
- } elsif (/^%%GNU:/) {
- s/\s*\n$//;
- my (undef,$val) = split;
- $fsd_entry{"gnu"} = $val =~ /yes/i;
- }
- }
- close (DIRENT) || warn "close($dirent) failed: $!";
-
- next unless $fsd_entry{"gnu"}; # if nongnu, forget it.
- (my $pkg = $dirent) =~ s/\.txt$//;
-
- if ($opt{"packages_by_name"}) {
- push (@packages, $pkg);
- }
-
- if ($opt{"packages_by_license"}) {
- # save this package under all the licenses we've got.
- $fsd_entry{"license"} =~ s/\s*\n$//;
- my (undef,$license) = split (" ", $fsd_entry{"license"}, 2);
- $license =~ s/ +and +/, /;
- my @licenses = split (/ *[,;] */, $license);
- # warn "$dirent: split $license into @licenses\n";
-
- for my $l (@licenses) {
- $licenses{$l} .= " $pkg";
- }
- }
- }
-
- closedir (DIR) || warn "closedir(dir) failed: $!";
-
- if ($opt{"packages_by_name"}) {
- print map { "$_\n"} sort @packages;
- }
-
- if ($opt{"packages_by_license"}) {
- for my $k (sort keys %licenses) {
- my $pkglist = $licenses{$k};
- my @pkglist = split (" ", $pkglist);
- print "$k: ";
- print join (" ", sort @pkglist);
- print "\n";
- }
- }
-
- return 0;
-}
Index: testaddrcase.msg
===================================================================
RCS file: testaddrcase.msg
diff -N testaddrcase.msg
--- testaddrcase.msg 30 Apr 2007 01:00:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-From address@hidden Sun Feb 11 14:48:08 2007
-Return-path: <address@hidden>
-Envelope-to: address@hidden
-Delivery-date: Sun, 11 Feb 2007 14:48:08 -0500
-Received: from karl by fencepost.gnu.org with local (Exim 4.60)
- (envelope-from <address@hidden>)
- id 1HGKgC-0000P9-M8
- for address@hidden; Sun, 11 Feb 2007 14:48:08 -0500
-To: address@hidden
-Message-Id: <address@hidden>
-From: address@hidden
-Date: Sun, 11 Feb 2007 14:48:08 -0500
-Subject: GNU package maintenance
-
Index: fsd/Makefile
===================================================================
RCS file: fsd/Makefile
diff -N fsd/Makefile
--- fsd/Makefile 20 Apr 2009 08:19:12 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-SHELL = /bin/sh
-TEXI2DVI = texi2dvi
-TEXI2PDF = texi2pdf
-MAKEINFO = makeinfo
-
-A4_FLAGS = -t @afourpaper
-LETTER_FLAGS =
-
-.PHONY: clean info all
-
-all: info
-
-info: fsd-schema.info
-
-fsd-schema.info: fsd-schema.texi
- $(MAKEINFO) $<
-
-clean:
- rm -f *.aux
- rm -f *.cp
- rm -f *.cps
- rm -f *.dvi
- rm -f *.fn
- rm -f *.info
- rm -f *.ky
- rm -f *.log
- rm -f *.pdf
- rm -f *.pg
- rm -f *.toc
- rm -f *.tp
- rm -f *.vr
- rm -f fsd-schema.txt
Index: fsd/.cvsignore
===================================================================
RCS file: fsd/.cvsignore
diff -N fsd/.cvsignore
--- fsd/.cvsignore 2 May 2014 00:11:00 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,5 +0,0 @@
-fsddb
-fsddb.tgz
-quaggasql
-sock
-README*
Index: fsd/gnufsd-psql
===================================================================
RCS file: fsd/gnufsd-psql
diff -N fsd/gnufsd-psql
--- fsd/gnufsd-psql 6 Jun 2009 17:14:47 -0000 1.10
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,561 +0,0 @@
-#!/usr/bin/env perl
-# $Id: gnufsd-psql,v 1.10 2009/06/06 17:14:47 kaloian Exp $
-# Extract information about GNU packages from the Free Software
-# Directory's PostgreSQL database.
-#
-# Dependencies:
-# perl (5.8.x), libdbd-pg-perl, libdate-calc-perl
-
-use warnings;
-use strict;
-use DBI;
-use Date::Calc qw ( check_date Delta_Days Add_Delta_YMD Today );
-use File::Temp qw ( tmpnam );
-
-# Configuration:
-# ==============================
-# Database connection settings:
-my $dbname = "quagga";
-my $username = "django";
-my $password = "";
-
-# `activity-status' calculation:
-my @activity_interval = (-1, 0, 0); # One year ago (Y, M, D)
-my @activity_reference = Today ();
-#===============================
-
-my @activity_threshold = Add_Delta_YMD (@activity_reference,
- @activity_interval);
-
-# FIXME: What about handling UTF-8 from PostgreSQL?
-
-my ($dbh, $sth_homepage, $sth_download_url, $sth_activity_status,
- $sth_computer_languages, $sth_subprograms, $sth_categories,
- $sth_category, $sth_keywords, $sth_related, $sth_versions,
- $sth_licenses, $sth_interfaces);
-
-my %user_level_enum = (
- 0 => "unknown",
- 1 => "beginner",
- 2 => "intermediate",
- 3 => "advanced");
-
-my %version_status_enum = (
- 2 => "alpha",
- 3 => "beta",
- 4 => "developmental",
- 5 => "testing",
- 6 => "unstable",
- 7 => "stable",
- 8 => "mature");
-
-exit (&main ());
-
-# Connect to the database and prepare all reusable statements in
-# advance.
-sub db_connect ()
-{
- $dbh = DBI->connect ("dbi:Pg:dbname=$dbname",
- $username,
- $password,
- {AutoCommit => 0,
- PrintError => 1,
- RaiseError => 1});
-
- $dbh->do ("SET datestyle TO ISO;"); # YYYY-MM-DD
-
- $sth_homepage = $dbh->prepare (
- "SELECT link FROM directory_projectwebresource
- WHERE audience = 5 AND kind = 5 AND project_id = ?;");
-
- $sth_download_url = $dbh->prepare (
- "SELECT link FROM directory_projectwebresource
- WHERE kind = 11 AND project_id = ? ORDER BY audience DESC;");
-
- $sth_activity_status = $dbh->prepare (
- "SELECT name, date FROM directory_version
- WHERE project_id = ? ORDER BY date DESC;");
-
- $sth_computer_languages = $dbh->prepare (
- "SELECT l.name
- FROM directory_computerlanguage l, directory_project_computer_languages p
- WHERE l.id = p.computerlanguage_id AND p.project_id = ?
- ORDER BY l.name ASC;");
-
- $sth_subprograms = $dbh->prepare (
- "SELECT name FROM directory_subprogram
- WHERE project_id = ?
- ORDER BY name;");
-
- $sth_categories = $dbh->prepare (
- "SELECT category_id FROM directory_project_categories
- WHERE project_id = ?;");
-
- $sth_category = $dbh->prepare (
- "SELECT name, slug, parent_category_id FROM directory_category
- WHERE id = ?;");
-
- $sth_keywords = $dbh->prepare (
- "SELECT k.keyword
- FROM directory_keyword k, directory_project_keywords p
- WHERE p.keyword_id = k.id AND p.project_id = ?
- ORDER BY k.keyword ASC;");
-
- $sth_related = $dbh->prepare (
- "SELECT p.slug
- FROM directory_project p, directory_project_related r
- WHERE r.to_project_id = p.id AND r.from_project_id = ?
- ORDER BY p.slug ASC;");
-
- $sth_versions = $dbh->prepare (
- "SELECT v.id, v.name, v.date, v.status, v.notes,
- u.first_name || ' ' || u.last_name || ' <' || u.email || '>'
- AS license_verified_by,
- v.license_verified_on, v.source_code
- FROM directory_version AS v, auth_user AS u
- WHERE v.license_verified_by_id = u.id AND v.project_id = ?
- ORDER BY v.date DESC;");
-
- $sth_licenses = $dbh->prepare (
- "SELECT l.slug
- FROM directory_license AS l, directory_version_licenses AS vl
- WHERE l.id = vl.license_id AND vl.version_id = ?
- ORDER BY slug;");
-
- $sth_interfaces = $dbh->prepare (
- "SELECT i.name
- FROM directory_interface AS i, directory_version_interfaces AS vi
- WHERE i.id = vi.interface_id AND vi.version_id = ?
- ORDER BY name;");
-}
-
-# Disconnect from the database.
-sub db_disconnect ()
-{
- $dbh->disconnect ();
-}
-
-# Trim the useless whitespace that sometimes surrounds the values in
-# the database.
-# FIXME: What about collapsing internal whitespace?
-sub trim_whitespace
-{
- my ($input) = @_;
- return $input if ! defined $input;
-
- my $type = ref ($input);
- if ($type eq "SCALAR") {
- return $input if ! defined $$input;
- $$input =~ s/^\s+//; # leading whitespace
- $$input =~ s/\s+$//; # trailing whitespace
- $$input =~ s/\r//g; # delete all carriage returns
- }
- elsif ($type eq "HASH") {
- trim_whitespace (\$_) foreach (values %$input);
- }
- elsif ($type eq "ARRAY") {
- for my $row (@$input) {
- trim_whitespace (\$_) foreach (values %$row);
- }
- }
- else {
- die "Don't know how to trim input '$input' of type '$type'!";
- }
- return $input;
-}
-
-# Fetch all rows resulted from a SELECT statement.
-sub all ($)
-{
- my ($sql) = @_;
- return trim_whitespace ($dbh->selectall_arrayref ($sql, {Slice=>{}}));
-}
-
-# Fetch one row resulted from a SELECT statement.
-sub row ($)
-{
- my ($sql) = @_;
- return trim_whitespace ($dbh->selectrow_hashref ($sql));
-}
-
-# Fetch all values in one COLUMN resulted from a SELECT statement.
-sub all_col ($$)
-{
- my ($sql, $col) = @_;
- my @result;
- my $rows = all ($sql);
- for my $row (@$rows) {
- push (@result, $row->{$col});
- }
- return @result;
-}
-
-# Fetch one COLUMN from the first row resulted from a SELECT
-# statement.
-sub col ($$)
-{
- my ($sql, $col) = @_;
- my $value = row ($sql);
- return $value->{$col} if $value;
-}
-
-# Fetch all GNU projects.
-sub projects ()
-{
- return all ("SELECT id, name, slug, user_level, short_description,
- full_description, entry_compiled_by, updated,
- checkout_command
- FROM directory_project
- WHERE gnu IS TRUE ORDER BY slug;");
-}
-
-# Return mundane-name for a project. Returns an empty string if the
-# `mundane-name' field should be ommited for this project.
-sub mundane_name (\%)
-{
- my ($project) = @_;
- my $slug = $project->{"slug"};
- my $name = $project->{"name"};
-
- # Omit mundane-name if it is trivial, e.g. match the package name.
- return "" if ($name eq $slug) or ($name eq ucfirst $slug);
-
- # The mundane-name is non-trivial, return it.
- return $name;
-}
-
-# Fetch homepage (if any) for a project. Returns an empty string if
-# the `homepage' field should be omitted for this project.
-sub homepage (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- my $slug = $project->{"slug"};
- $sth_homepage->bind_param (1, $id);
- my $url = col ($sth_homepage, "link");
-
- # Mark explicitly the lack of homepage.
- return "none" if ! $url;
-
- # Do magic to suppress a homepage comforming to
- # http://www.gnu.org/software/PACKAGE format.
- return "" if $url =~
m#^http://www.gnu.org/software/$slug(/($slug.html)?)?$#i;
-
- # This is non-trivial URL, return it as is.
- return $url;
-}
-
-# Fetch download-url (if any) for a project. Returns an empty string
-# if the `download-url' field should be omitted for this project.
-sub download_url (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- my $slug = $project->{"slug"};
- $sth_download_url->bind_param (1, $id);
- my $url = col ($sth_download_url, "link");
-
- # Mark explicitly the lack of download-url.
- return "none" if ! $url;
-
- # Do magic to supress a download-url comforming to
- # ftp://ftp.gnu.org/gnu/PACKAGE format.
- return "" if $url =~ m#^ftp://ftp.gnu.org/gnu/$slug/?$#i;
-
- return $url;
-}
-
-# Converts SQL ISO date format (YYYY-MM-DD) to Date::Calc YMD.
-sub iso_date_to_ymd ($)
-{
- my ($iso_date) = @_;
- my ($year, $month, $day) = split (/-/, $iso_date);
- my @ymd = ($year, $month, $day);
- return @ymd;
-}
-
-# Converts Date::Calc YMD to string.
-sub iso_date_to_str ($) {
- my ($date) = @_;
- $date =~ s/-//g;
- return $date;
-}
-
-# Fetch activity-status for a project.
-sub activity_status (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- $sth_activity_status->bind_param (1, $id);
- my $row = row ($sth_activity_status);
-
- return "stale" if ! $row;
-
- my $status = "stale";
- my $comments = "";
- if ($row->{"date"}) {
- my @release = iso_date_to_ymd ($row->{"date"});
- if (check_date (@release)) {
- $status = "ok" if Delta_Days (@activity_threshold, @release) >= 0;
- }
- else {
- $comments .= " Invalid release date: $row->{date}.";
- }
- }
-
- my $date = $row->{"date"};
- $date =~ tr/-//d if $date;
- $date = "" if ! $date;
-
- my $number = $row->{"name"};
- if ($number and not ($number eq "NO_VERSION_DATA")) {
- $number = " ($number)";
- }
- else {
- $number = "";
- }
-
- my $result = "$status $date$number";
- $result .= " #" . $comments if $comments;
- return $result;
-}
-
-# Formats a category_id to be suitable for dumping.
-sub format_category ($)
-{
- my ($id) = @_;
- my @name_chain;
- my @slug_chain;
- do {
- $sth_category->bind_param (1, $id);
- my $cat = row ($sth_category);
- my $name = $cat->{"name"};
- my $slug = $cat->{"slug"};
- push (@name_chain, $name);
- push (@slug_chain, $slug);
- $id = $cat->{"parent_category_id"};
- } until ($id == 1);
- my $names = join ("/", reverse (@name_chain));
- my $slugs = join ("/", reverse (@slug_chain));
- return "/$names (/$slugs)"
-}
-
-# Fetch categories for a project.
-sub categories (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- $sth_categories->bind_param (1, $id);
- my $categories = all ($sth_categories);
-
- my @result;
- foreach my $category (@{$categories}) {
- my $category_id = $category->{"category_id"};
- push (@result, format_category ($category_id));
- }
- return sort (@result);
-}
-
-# Fetch related projects for a project.
-sub keywords (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- $sth_keywords->bind_param (1, $id);
- my @keywords = all_col ($sth_keywords, "keyword");
-
- return @keywords;
-}
-
-# Fetch related projects for a project.
-sub related (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- $sth_related->bind_param (1, $id);
- my @related = all_col ($sth_related, "slug");
-
- return @related;
-}
-
-# Fetch computer languages for a project.
-sub computer_languages (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- $sth_computer_languages->bind_param (1, $id);
- my @computer_languages = all_col ($sth_computer_languages, "name");
-
- return @computer_languages;
-}
-
-# Fetch subprograms for a project.
-sub subprograms (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- $sth_subprograms->bind_param (1, $id);
- my @subprograms = all_col ($sth_subprograms, "name");
-
- return @subprograms;
-}
-
-# Reformat paragraph text using coreutils' fmt.
-sub fmt ($)
-{
- my ($str) = @_;
- # write input to temp file
- my $filename;
- $filename = tmpnam ();
- open TMP, ">$filename" or die "Can't open file: $!";
- print TMP $str;
- close TMP or die "Can't close file: $!";
-
- # invoke fmt
- open(FMT, "fmt $filename |") or die "Can't fork: $!";
-
- # read output
- my (@lines) = <FMT>;
- close FMT or die "Can't close file: $!";
-
- # delete temp file
- unlink $filename or die "Can't delete file: $!";
-
- return join ("", @lines);
-}
-
-# Formats long muliparagraph text to be suitable for dumping.
-sub format_full_descr ($)
-{
- my ($descr) = @_;
- my $out = fmt ($descr);
- $out =~ s/\n/\n /g; # add space after every newline
- $out =~ s/\s+$//; # trim trailing whitespace
- return " " . $out;
-}
-
-# Fetch licenses for a project version.
-sub licenses (\%)
-{
- my ($version) = @_;
- my $id = $version->{"id"};
- $sth_licenses->bind_param (1, $id);
- return all_col ($sth_licenses, "slug");
-}
-
-# Fetch interfaces for a project version.
-sub interfaces (\%)
-{
- my ($version) = @_;
- my $id = $version->{"id"};
- $sth_interfaces->bind_param (1, $id);
- return all_col ($sth_interfaces, "name");
-}
-
-# Fetch versions for a project.
-sub versions (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- $sth_versions->bind_param (1, $id);
- return all ($sth_versions);
-}
-
-# Dump a version.
-sub version (\%)
-{
- my ($version) = @_;
- my $name = $version->{"name"};
- my $date = iso_date_to_str ($version->{"date"});
- my $status = $version_status_enum{$version->{"status"}};
- my $notes = $version->{"notes"};
- my $license_verified_by = $version->{"license_verified_by"};
- my $license_verified_on = iso_date_to_str
- ($version->{"license_verified_on"});
- my $source_code = $version->{"source_code"};
- my $licenses = join (" | ", licenses (%$version));
- my $interfaces = join (" | ", interfaces (%$version));
- print "version: $name\n";
- print " date: $date\n";
- print " status: $status\n";
- print " notes: $notes\n" if defined $notes and ! ($notes eq '');
- print " license-verified-by: $license_verified_by\n";
- print " license-verified-on: $license_verified_on\n";
- print " source-code: $source_code\n"
- if defined $source_code and ! ($source_code eq '');
- print " licenses: $licenses\n" if ! ($licenses eq '');
- print " interfaces: $interfaces\n" if ! ($interfaces eq '');
-}
-
-# Dump a project to STDOUT.
-sub project (\%)
-{
- my ($project) = @_;
- my $id = $project->{"id"};
- my $slug = $project->{"slug"};
- my $name = $project->{"name"};
- print "package: $project->{slug}\n";
-
- my $mundane_name = mundane_name (%$project);
- print "mundane-name: $mundane_name\n" if $mundane_name;
-
- my $homepage = homepage (%$project);
- print "homepage: $homepage\n" if $homepage;
-
- my $download_url = download_url (%$project);
- print "download-url: $download_url\n" if $download_url;
-
- my $checkout_cmd = $project->{"checkout_command"};
- if (defined $checkout_cmd and ! ($checkout_cmd eq '')) {
- print "checkout-command: $checkout_cmd\n";
- }
-
- my $activity_status = activity_status (%$project);
- print "activity-status: $activity_status\n";
-
- my $user_level = $user_level_enum{$project->{"user_level"}};
- print "user-level: $user_level\n";
-
- my $computer_lang = join (" | ", computer_languages (%$project));
- print "computer-languages: $computer_lang\n" if ! ($computer_lang eq '');
-
- my $subprograms = join (" | ", subprograms (%$project));
- print "subprograms: $subprograms\n" if ! ($subprograms eq '');
-
- print "category: $_\n" foreach (categories (%$project));
-
- my $keywords = join (" | ", keywords (%$project));
- print "keywords: $keywords\n" if ! ($keywords eq '');
-
- my $related = join (" | ", related (%$project));
- print "related-packages: $related\n" if ! ($related eq '');
-
- print "entry-compiled-by: $project->{entry_compiled_by}\n";
-
- my @updated = iso_date_to_str ($project->{"updated"});
- print "updated: @updated\n";
-
- my $full_descr = format_full_descr($project->{"full_description"});
- print "description: $project->{short_description}\n";
- print "$full_descr\n";
-
- my $versions = versions (%$project);
- for my $version (@{$versions}) {
- version (%$version);
- }
-
- print "\n";
-}
-
-# Main entry point.
-sub main
-{
- db_connect ();
- my $projects = projects ();
- foreach my $project (@{$projects}) {
- project (%$project);
- }
- print STDERR "DONE: " . @{$projects} . " projects exported.\n";
- db_disconnect ();
- return 0;
-}
Index: fsd/fsd-schema.texi
===================================================================
RCS file: fsd/fsd-schema.texi
diff -N fsd/fsd-schema.texi
--- fsd/fsd-schema.texi 6 Jun 2009 17:16:34 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,1281 +0,0 @@
-\input texinfo
address@hidden %**start of header
address@hidden fsd-schema.info
address@hidden Free Software Directory DB Schema Reference
address@hidden lastupdate 06.06.2009
-
address@hidden
-
-This reference manual is for the database schema of the Free Software
-Directory, catalog of useful free software that runs under free
-operating systems — particularly the GNU operating system and its
-GNU/Linux address@hidden Last updated on @value{lastupdate}.
address@hidden 1
-Copyright @copyright{} 2008, 2009 Free Software Foundation, Inc.
-
address@hidden
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the @acronym{GNU} Free Documentation License,
-Version 1.2 or any later version published by the Free Software
-Foundation; with no Invariant Sections, no Front-Cover Texts, and no
-Back-Cover Texts. A copy of the license is included in the section
-entitled address@hidden Free Documentation License.''
address@hidden quotation
address@hidden copying
-
address@hidden
address@hidden Free Software Directory DB Schema Reference
address@hidden (last updated @value{lastupdate})
address@hidden by Kaloian Doganov <@email{kaloian@@gnu.org}>
address@hidden
address@hidden 0pt plus 1filll
address@hidden
address@hidden titlepage
-
address@hidden
-
address@hidden
address@hidden Top, Essential Concepts, (dir), (dir)
address@hidden Free Software Directory DB Schema Reference
address@hidden
address@hidden ifnottex
-
address@hidden
-* Essential Concepts::
-* Not Interesting:: Tables that are not directly related to the
- Free Software Directory's essential data.
-* Index::
-* Copying This Manual:: The GNU Free Documentation License.
address@hidden menu
-
address@hidden Essential Concepts, Project, Top, Top
address@hidden Essential Concepts
-
address@hidden
-* Project::
-* Category::
-* Computer Language::
-* Entity::
-* Interface::
-* IRC Network::
-* IRC Resource::
-* Keyword::
-* Legacy Category::
-* License::
-* Software Requirement::
-* Subprogram::
-* Version::
-* Network Resource::
address@hidden menu
-
address@hidden Project, Category, Essential Concepts, Essential Concepts
address@hidden Project
-
-The primary purpose of the Free Software Directory is to catalog free
-software projects, so the project is the central and most complex
-entity represented in the database. The most important attributes of
-a project are stored in the @code{directory_project} table
-(@pxref{directory_project}).
-
-Projects are organized in categories (@pxref{Category}). The
-information about which projects is filed in which category is stored
-in the @code{directory_project_categories} table
-(@pxref{directory_project_categories}).
-
-A project can be implemented using one or more computer languages
-(@pxref{Computer Language}). Which project is implemented in which
-language is stored in the @code{directory_project_computer_languages}
-(@pxref{directory_project_computer_languages}).
-
-To facilitate the search function, one or more keywords
-(@pxref{Keyword}) could be associated with a project. Those
-associations are stored in the @code{directory_project_keywords} table
-(@pxref{directory_project_keywords}).
-
-A project can relate to one or more other projects in the Free
-Software Directory. Those relations are stored in the
address@hidden table
-(@pxref{directory_project_related}).
-
-Various public network resources (@pxref{Network Resource}) could be
-published for a project.
-
address@hidden
-* directory_project::
-* directory_project_categories::
-* directory_project_computer_languages::
-* directory_project_keywords::
-* directory_project_related::
address@hidden menu
-
address@hidden directory_project, directory_project_categories, Project, Project
address@hidden @code{directory_project}
-
address@hidden Column directory_project id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_project name
-Human readable name of the project.
address@hidden defcv
-
address@hidden Column directory_project slug
-Short system name of the project, free of funny characters.
address@hidden defcv
-
address@hidden Column directory_project user_level
-Single character that denotes the experience level of the audience for
-which the project is suitable. Possible values are:
-
address@hidden @samp
address@hidden 0
-Unknown (user level is not set yet);
-
address@hidden 1
-Beginner;
-
address@hidden 2
-Intermediate;
-
address@hidden 3
-Advanced.
-
address@hidden table
address@hidden defcv
-
address@hidden Column directory_project short_description
-One-line short description of the project.
address@hidden defcv
-
address@hidden Column directory_project full_description
-Longer text description of the project. Paragraphs are marked up in
-HTML-like manner with surrounding @code{<p>} and @code{</p>}, except
-for the first paragraph, which need not to be marked this way.
address@hidden defcv
-
address@hidden Column directory_project entry_compiled_by
-Name and e-mail address of the person who filled this project record
-in the database.
address@hidden defcv
-
address@hidden Column directory_project updated
-Stamp of the last time when this project record was updated.
address@hidden defcv
-
address@hidden Column directory_project gnu
-Boolean value pointing whether this project is official part of the
-GNU project or not.
-
address@hidden @code
address@hidden true
-Part of the GNU project;
-
address@hidden false
-Not part of the GNU project.
-
address@hidden table
address@hidden defcv
-
address@hidden Column directory_project documentation
-Plain text containing pointers to various project documentation,
-available online (if any).
address@hidden defcv
-
address@hidden Column directory_project screen_shot
-Currently unused.
address@hidden defcv
-
address@hidden Column directory_project source_template
-Unknown purpose. (FIXME)
address@hidden defcv
-
address@hidden Column directory_project comments
-Free text with HTML markup. Usually contains a copyright notice.
-Currently this value is not displayed to users on the web.
address@hidden defcv
-
address@hidden Column directory_project status
-FIXME
-Possible values are:
-
address@hidden @samp
address@hidden 1
-Published. The project is visible to users.
-
address@hidden 2
-FIXME. The project is not visible to users.
-
address@hidden 3
-FIXME. The project is not visible to users.
-
address@hidden 4
-FIXME. The project is not visible to users.
address@hidden table
address@hidden defcv
-
address@hidden Column directory_project checkout_command
-Shell command used to checkout the current sources from the public
-source code repository (if any).
address@hidden defcv
-
address@hidden Column directory_project rating_count
-The number of users that took the action to rate the project.
address@hidden defcv
-
address@hidden Column directory_project avg_rating
-The average project rating in the scale 0-5.
address@hidden defcv
-
address@hidden Column directory_project internal_notes
-Free text reserved for notes by the directory maintainers. This text
-is not published on the web.
address@hidden defcv
-
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_project"
- Column | Type |
Modifiers
--------------------+-------------------------+----------------------------------------------------------------
- id | integer | not null default
nextval('directory_project_id_seq'::regclass)
- name | character varying(80) | not null
- slug | character varying(80) | not null
- user_level | character varying(1) | not null
- short_description | character varying(350) | not null
- full_description | text | not null
- entry_compiled_by | character varying(60) | not null
- updated | date | not null
- gnu | boolean | not null
- documentation | text |
- screen_shot | character varying(100) |
- source_template | character varying(200) |
- comments | text |
- status | character varying(1) | not null
- checkout_command | character varying(1000) |
- rating_count | integer | not null
- avg_rating | numeric(4,2) | not null
- internal_notes | text |
-Indexes:
- "directory_project_pkey" PRIMARY KEY, btree (id)
- "directory_project_slug_uniq" UNIQUE, btree (slug)
address@hidden verbatim
-
address@hidden directory_project_categories,
directory_project_computer_languages, directory_project, Project
address@hidden @code{directory_project_categories}
-
-Represents a relationship between a project (@pxref{Project}) and a
-category (@pxref{Category}).
-
address@hidden Column directory_project_caterogies id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_project_caterogies project_id
-The id of the project record (@pxref{directory_project}) associated
-with the category.
address@hidden defcv
-
address@hidden Column directory_project_categories category_id
-The id of the category record (@pxref{directory_category}) associated
-with the project.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_project_categories"
- Column | Type | Modifiers
--------------+---------+---------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_project_categories_id_seq'::regclass)
- project_id | integer | not null
- category_id | integer | not null
-Indexes:
- "directory_project_categories_pkey" PRIMARY KEY, btree (id)
- "directory_project_categories_project_id_key" UNIQUE, btree (project_id,
category_id)
-Foreign-key constraints:
- "directory_project_categories_category_id_fkey" FOREIGN KEY (category_id)
REFERENCES directory_category(id) DEFERRABLE INITIALLY DEFERRED
- "directory_project_categories_project_id_fkey" FOREIGN KEY (project_id)
REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden directory_project_computer_languages,
directory_project_keywords, directory_project_categories, Project
address@hidden @code{directory_project_computer_languages}
-
-Represents a relationship between project (@pxref{Project}) and
-computer language (@pxref{Computer Language}).
-
address@hidden Column directory_project_computer_languages id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_project_computer_languages project_id
-The id of the project record (@pxref{directory_project}) associated
-with the computer language.
address@hidden defcv
-
address@hidden Column directory_project_computer_languages computerlanguage_id
-The id of the computer language record
-(@pxref{directory_computerlanguage}) associated with the project.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table
"public.directory_project_computer_languages"
- Column | Type | Modifiers
----------------------+---------+-----------------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_project_computer_languages_id_seq'::regclass)
- project_id | integer | not null
- computerlanguage_id | integer | not null
-Indexes:
- "directory_project_computer_languages_pkey" PRIMARY KEY, btree (id)
- "directory_project_computer_languages_project_id_key" UNIQUE, btree
(project_id, computerlanguage_id)
-Foreign-key constraints:
- "directory_project_computer_languages_computerlanguage_id_fkey" FOREIGN
KEY (computerlanguage_id) REFERENCES directory_computerlanguage(id) DEFERRABLE
INITIALLY DEFERRED
- "directory_project_computer_languages_project_id_fkey" FOREIGN KEY
(project_id) REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden directory_project_keywords, directory_project_related,
directory_project_computer_languages, Project
address@hidden @code{directory_project_keywords}
-
-Represents an association between project (@pxref{Project}) and
-keyword (@pxref{Keyword}).
-
address@hidden Column directory_project_keywords id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_project_keywords project_id
-The id of the project record (@pxref{directory_project}) associated
-with the keyword.
address@hidden defcv
-
address@hidden Column directory_project_keywords keyword_id
-The id of the keyword record (@pxref{directory_keyword}) associated
-with the project.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_project_keywords"
- Column | Type | Modifiers
-------------+---------+-------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_project_keywords_id_seq'::regclass)
- project_id | integer | not null
- keyword_id | integer | not null
-Indexes:
- "directory_project_keywords_pkey" PRIMARY KEY, btree (id)
- "directory_project_keywords_project_id_key" UNIQUE, btree (project_id,
keyword_id)
-Foreign-key constraints:
- "directory_project_keywords_keyword_id_fkey" FOREIGN KEY (keyword_id)
REFERENCES directory_keyword(id) DEFERRABLE INITIALLY DEFERRED
- "directory_project_keywords_project_id_fkey" FOREIGN KEY (project_id)
REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden directory_project_related, , directory_project_keywords, Project
address@hidden @code{directory_project_related}
-
-Represents a directed edge (arrow) from a (tail) project to another
-(head) project. The set of all records in this table form the edges
-of a directed graph, where project records (@pxref{directory_project})
-are graph's nodes.
-
address@hidden Column directory_project_related id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_project_related from_project_id
-The id of the tail project record (@pxref{directory_project}).
address@hidden defcv
-
address@hidden Column directory_project_related to_project_id
-The id of the head project record (@pxref{directory_project}).
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_project_related"
- Column | Type | Modifiers
------------------+---------+------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_project_related_id_seq'::regclass)
- from_project_id | integer | not null
- to_project_id | integer | not null
-Indexes:
- "directory_project_related_pkey" PRIMARY KEY, btree (id)
- "directory_project_related_from_project_id_key" UNIQUE, btree
(from_project_id, to_project_id)
-Foreign-key constraints:
- "directory_project_related_from_project_id_fkey" FOREIGN KEY
(from_project_id) REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
- "directory_project_related_to_project_id_fkey" FOREIGN KEY (to_project_id)
REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Category, Computer Language, Project, Essential Concepts
address@hidden Category
-
-Project entries in the Free Software Directory are organized in
-categories. Category is a general topic of some sort (for example,
-Science, Education, Audio, etc.) that classifies a project. A single
-project can be filed in more than one category.
-
-Categories are organized to form a tree hierarchy, where every
-category (except one) must have exactly one parent category. There is
-a single category with slug @code{index} and name @code{Top} that has
-no parent and serves as a tree root. All other categories have the
address@hidden category as it's parent, either directly or indirectly.
-
-Categories are represented in the table @code{directory_category}
-(@pxref{directory_category}). Assosiations between projects and
-categories (information about which project is filled in which
-category) are stored in the table @code{directory_project_categories}
-(@pxref{directory_project_categories}).
-
address@hidden
-* directory_category::
address@hidden menu
-
address@hidden directory_category,,, Category
address@hidden @code{directory_category}
-
address@hidden Column directory_category id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_category name
-Human readable name of the category.
address@hidden defcv
-
address@hidden Column directory_category slug
-Short system name of the category, free of funny characters.
address@hidden defcv
-
address@hidden Column directory_category description
-Long, human readable description. Usually empty.
address@hidden defcv
-
address@hidden Column directory_category parent_category_id
-If not null, points to the @code{id} of the parent category. Thus,
-all categories in the database form a tree structure where root is
-this category for which @code{parent_category_id} is @code{NULL}.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_category"
- Column | Type |
Modifiers
---------------------+------------------------+-----------------------------------------------------------------
- id | integer | not null default
nextval('directory_category_id_seq'::regclass)
- name | character varying(60) | not null
- slug | character varying(50) | not null
- description | character varying(120) | not null
- parent_category_id | integer |
-Indexes:
- "directory_category_pkey" PRIMARY KEY, btree (id)
- "directory_category_slug_uniq" UNIQUE, btree (slug)
- "directory_category_parent_category_id" btree (parent_category_id)
-Foreign-key constraints:
- "parent_category_id_refs_id_349faff9" FOREIGN KEY (parent_category_id)
REFERENCES directory_category(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Computer Language, Entity, Category, Essential Concepts
address@hidden Computer Language
-
-The Free Software Directory keeps a list of all computer languages
-used to implement free software projects. The list is represented in
-the table @code{directory_computerlanguage}
-(@pxref{directory_computerlanguage}).
-
-A project is usually implemented in one or more computer languages.
-For example, Emacs is written in C and Lisp, and GnuCash is written in
-C and Scheme. This relationship between projects and computer
-languages is represented in the table
address@hidden
-(@pxref{directory_project_computer_languages}).
-
address@hidden
-* directory_computerlanguage::
address@hidden menu
-
address@hidden directory_computerlanguage,,, Computer Language
address@hidden @code{directory_computerlanguage}
-
address@hidden Column directory_computerlanguage id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_computerlanguage name
-Common name of the language in human-readable form. For example
address@hidden, @code{Lisp}, etc.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_computerlanguage"
- Column | Type | Modifiers
---------+-----------------------+-------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_computerlanguage_id_seq'::regclass)
- name | character varying(80) | not null
-Indexes:
- "directory_computerlanguage_pkey" PRIMARY KEY, btree (id)
- "directory_computerlanguage_name_uniq" UNIQUE, btree (name)
address@hidden verbatim
-
address@hidden Entity, Interface, Computer Language, Essential Concepts
address@hidden Entity
-
-FIXME
-
address@hidden
-* directory_entity::
-* directory_entityrole::
address@hidden menu
-
address@hidden directory_entity, directory_entityrole,, Entity
address@hidden @code{directory_entity}
-
address@hidden Column directory_entity id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_entity name
-Common name of the person, organisation or team.
address@hidden defcv
-
address@hidden Column directory_entity url
-Homepage of the entity. Currently is usually empty.
address@hidden defcv
-
address@hidden Column directory_entity email
-Email address for contact. Currently almost all entity records have
-an email filled in.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_entity"
- Column | Type | Modifiers
---------+------------------------+---------------------------------------------------------------
- id | integer | not null default
nextval('directory_entity_id_seq'::regclass)
- name | character varying(100) | not null
- url | character varying(500) |
- email | character varying(75) |
-Indexes:
- "directory_entity_pkey" PRIMARY KEY, btree (id)
address@hidden verbatim
-
address@hidden directory_entityrole,, directory_entity, Entity
address@hidden @code{directory_entityrole}
-
-Represents a relationship between an entity (@pxref{Entity}) and a
-project (@pxref{Project}).
-
address@hidden Column directory_entityrole id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_entityrole project_id
-The id of the project record (@pxref{directory_project}) associated
-with the entity.
address@hidden defcv
-
address@hidden Column directory_entityrole entity_id
-The id of the entity record (@pxref{directory_entity}) associated with
-the project.
address@hidden defcv
-
address@hidden Column directory_entityrole role
address@hidden @samp
address@hidden 1
-Maintainer
-
address@hidden 2
-Contributor
-
address@hidden 3
-Developer
-
address@hidden 4
-Sponsor
address@hidden table
address@hidden defcv
-
address@hidden Column directory_entityrole private
-Boolean value pointing whether this role shouldn't be displayed on the
-web.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_entityrole"
- Column | Type | Modifiers
-------------+----------------------+-------------------------------------------------------------------
- id | integer | not null default
nextval('directory_entityrole_id_seq'::regclass)
- project_id | integer | not null
- entity_id | integer | not null
- role | character varying(1) | not null
- private | boolean | default false
-Indexes:
- "directory_entityrole_pkey" PRIMARY KEY, btree (id)
- "directory_entityrole_entity_id" btree (entity_id)
- "directory_entityrole_project_id" btree (project_id)
-Foreign-key constraints:
- "directory_entityrole_project_id_fkey" FOREIGN KEY (project_id) REFERENCES
directory_project(id) DEFERRABLE INITIALLY DEFERRED
- "entity_id_refs_id_463c73" FOREIGN KEY (entity_id) REFERENCES
directory_entity(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Interface, IRC Network, Entity, Essential Concepts
address@hidden Interface
-
-Computer programs are used directly by users or by other programs
-using interfaces. The Free Software Directory keeps a list of all
-interfaces provided by free software projects. The list is
-represented in the table @code{directory_interface}
-(@pxref{directory_interface}).
-
-FIXME: explain relationship between versions and interfaces.
address@hidden A project could provide one or more interfaces, for example
address@hidden graphical interface (using the X Window System) and a console
address@hidden interface.
-
address@hidden
-* directory_interface::
address@hidden menu
-
address@hidden directory_interface,,, Interface
address@hidden @code{directory_interface}
-
address@hidden Column directory_interface id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_interface id
-Common name of the interface in human-readable form. For example
address@hidden Line}, @code{X Window System}, @code{Web}, etc.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_interface"
- Column | Type | Modifiers
---------+-----------------------+------------------------------------------------------------------
- id | integer | not null default
nextval('directory_interface_id_seq'::regclass)
- name | character varying(25) | not null
-Indexes:
- "directory_interface_pkey" PRIMARY KEY, btree (id)
- "directory_interface_name_uniq" UNIQUE, btree (name)
address@hidden verbatim
-
address@hidden IRC Network, IRC Resource, Interface, Essential Concepts
address@hidden IRC Network
-
-FIXME
-
address@hidden
-* directory_ircnetwork::
address@hidden menu
-
address@hidden directory_ircnetwork,,, IRC Network
address@hidden @code{directory_ircnetwork}
-
-FIXME
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_ircnetwork"
- Column | Type | Modifiers
----------+------------------------+-------------------------------------------------------------------
- id | integer | not null default
nextval('directory_ircnetwork_id_seq'::regclass)
- network | character varying(100) | not null
-Indexes:
- "directory_ircnetwork_pkey" PRIMARY KEY, btree (id)
- "directory_ircnetwork_network_uniq" UNIQUE, btree (network)
address@hidden verbatim
-
address@hidden IRC Resource, Keyword, IRC Network, Essential Concepts
address@hidden IRC Resource
-
-FIXME
-
address@hidden
-* directory_ircresource::
address@hidden menu
-
address@hidden directory_ircresource,,, IRC Resource
address@hidden @code{directory_ircresource}
-
-FIXME
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_ircresource"
- Column | Type | Modifiers
-------------+------------------------+--------------------------------------------------------------------
- id | integer | not null default
nextval('directory_ircresource_id_seq'::regclass)
- channel | character varying(100) | not null
- purpose | character varying(1) | not null
- network_id | integer | not null
- project_id | integer | not null
-Indexes:
- "directory_ircresource_pkey" PRIMARY KEY, btree (id)
- "directory_ircresource_network_id" btree (network_id)
- "directory_ircresource_project_id" btree (project_id)
-Foreign-key constraints:
- "directory_ircresource_network_id_fkey" FOREIGN KEY (network_id)
REFERENCES directory_ircnetwork(id) DEFERRABLE INITIALLY DEFERRED
- "directory_ircresource_project_id_fkey" FOREIGN KEY (project_id)
REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Keyword, Legacy Category, IRC Resource, Essential Concepts
address@hidden Keyword
-
-Projects (@pxref{Project}) in the directory can be tagged with one or
-more keywords. This way, projects could be discovered not only by
-their name or category (@pxref{Category}), but also by association
-with a keyword.
-
-The list of all keywords is stored in the table
address@hidden (@pxref{directory_keyword}). Assosiations
-between projects and keywords are stored in the table
address@hidden
-(@pxref{directory_project_keywords}).
-
address@hidden
-* directory_keyword::
address@hidden menu
-
address@hidden directory_keyword,,, Keyword
address@hidden @code{directory_keyword}
-
address@hidden Column directory_keyword id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_keyword keyword
-The keyword (or phrase) itself in plantext.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_keyword"
- Column | Type | Modifiers
----------+-----------------------+----------------------------------------------------------------
- id | integer | not null default
nextval('directory_keyword_id_seq'::regclass)
- keyword | character varying(80) | not null
-Indexes:
- "directory_keyword_pkey" PRIMARY KEY, btree (id)
- "directory_keyword_keyword_uniq" UNIQUE, btree (keyword)
address@hidden verbatim
-
address@hidden Legacy Category, License, Keyword, Essential Concepts
address@hidden Legacy Category
-
-FIXME
-
address@hidden
-* directory_legacycategory::
address@hidden menu
-
address@hidden directory_legacycategory,,, Legacy Category
address@hidden @code{directory_legacycategory}
-
-FIXME
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_legacycategory"
- Column | Type |
Modifiers
--------------+------------------------+-----------------------------------------------------------------------
- id | integer | not null default
nextval('directory_legacycategory_id_seq'::regclass)
- category_id | integer | not null
- hierarchy | character varying(100) | not null
-Indexes:
- "directory_legacycategory_pkey" PRIMARY KEY, btree (id)
- "directory_legacycategory_category_id" btree (category_id)
-Foreign-key constraints:
- "directory_legacycategory_category_id_fkey" FOREIGN KEY (category_id)
REFERENCES directory_category(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden License, Software Requirement, Legacy Category, Essential
Concepts
address@hidden License
-
-FIXME
-
address@hidden
-* directory_license::
address@hidden menu
-
address@hidden directory_license,,, License
address@hidden @code{directory_license}
-
-FIXME
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_license"
- Column | Type | Modifiers
---------------+-----------------------+----------------------------------------------------------------
- id | integer | not null default
nextval('directory_license_id_seq'::regclass)
- slug | character varying(50) | not null
- display_name | character varying(80) | not null
- full_text | text | not null
-Indexes:
- "directory_license_pkey" PRIMARY KEY, btree (id)
- "directory_license_slug_uniq" UNIQUE, btree (slug)
address@hidden verbatim
-
address@hidden Software Requirement, Subprogram, License, Essential Concepts
address@hidden Software Requirement
-
-FIXME
-
address@hidden
-* directory_softwarerequirement::
address@hidden menu
-
address@hidden directory_softwarerequirement,,, Software Requirement
address@hidden @code{directory_softwarerequirement}
-
-FIXME
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_softwarerequirement"
- Column | Type |
Modifiers
-------------+------------------------+----------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_softwarerequirement_id_seq'::regclass)
- name | character varying(200) | not null
- project_id | integer | not null
- purpose | character varying(1) | not null
-Indexes:
- "directory_softwarerequirement_pkey" PRIMARY KEY, btree (id)
- "directory_softwarerequirement_project_id" btree (project_id)
-Foreign-key constraints:
- "directory_softwarerequirement_project_id_fkey" FOREIGN KEY (project_id)
REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Subprogram, Version, Software Requirement, Essential Concepts
address@hidden Subprogram
-
-FIXME
-
address@hidden
-* directory_subprogram::
address@hidden menu
-
address@hidden directory_subprogram,,, Subprogram
address@hidden @code{directory_subprogram}
-
-FIXME
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_subprogram"
- Column | Type | Modifiers
-------------+-----------------------+-------------------------------------------------------------------
- id | integer | not null default
nextval('directory_subprogram_id_seq'::regclass)
- name | character varying(80) |
- project_id | integer | not null
-Indexes:
- "directory_subprogram_pkey" PRIMARY KEY, btree (id)
- "directory_subprogram_project_id" btree (project_id)
-Foreign-key constraints:
- "directory_subprogram_project_id_fkey" FOREIGN KEY (project_id) REFERENCES
directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Version, Network Resource, Subprogram, Essential Concepts
address@hidden Version
-
-Over time, a typical software project (@pxref{Project}) makes one or
-more releases, or is available in more than one variant -- stable,
-testing or development, each suitable for specific audience. Those
-different releases of a project are called @emph{versions} in the
-terms of the Free Software Database. A project could have many
-versions, but one version belongs exactly to one project. The most
-important attributes of a version are stored in the
address@hidden table (@pxref{directory_version}).
-
-Each version could provide it's own set of interfaces
-(@pxref{Interface}). The information about what interfaces are
-provided by a version is stored in the
address@hidden table
-(@pxref{directory_version_interfaces}).
-
-Also, a version could come with it's own license (or set of licenses).
-(@pxref{License}). The information about which licences are
-applicable for a version is stored in the
address@hidden table
-(@pxref{directory_version_licenses}).
-
address@hidden
-* directory_version::
-* directory_version_interfaces::
-* directory_version_licenses::
address@hidden menu
-
address@hidden directory_version, directory_version_interfaces,, Version
address@hidden @code{directory_version}
-
address@hidden Column directory_version id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_version name
-Unique string that identifies the version among all other versions of
-the same project. Usually contains the so called version number, for
-example @samp{21.1} or @samp{1.0beta}. When such number is not
-available, this column contains the string literal
address@hidden
address@hidden defcv
-
address@hidden Column directory_version date
-The date when this version is released.
address@hidden defcv
-
address@hidden Column directory_version status
-Code maturity. Possible values are:
-
address@hidden @samp
address@hidden 2
-Alpha
-
address@hidden 3
-Beta
-
address@hidden 4
-Developmental
-
address@hidden 5
-Testing
-
address@hidden 6
-Unstable
-
address@hidden 7
-Stable
-
address@hidden 8
-Mature
-
address@hidden table
address@hidden defcv
-
address@hidden Column directory_version project_id
-The id of the project record (@pxref{directory_project}) which has
-released this version.
address@hidden defcv
-
address@hidden Column directory_version notes
-Arbitrary string, visualised on the web next to the version's
address@hidden
address@hidden defcv
-
address@hidden Column directory_version license_verified_by_id
-The id of the directory operator (FIXME: reference to auth_user) that
-is responsible for license verification.
address@hidden defcv
-
address@hidden Column directory_version license_verified_on
-The date on which the license verification is completed.
address@hidden defcv
-
address@hidden Column directory_version source_archive
-Currently unused.
address@hidden defcv
-
address@hidden Column directory_version source_code
-Provides means of retrieving the source code. Usually contains a
-public URL of the release tarball. If such an URL is not available
-for some reason, then the column contains notes explaining other means
-of retrieving the source code, like using source control system or
-person that should be contacted.
address@hidden defcv
-
address@hidden Column directory_version deb_system
-Currently unused.
address@hidden defcv
-
address@hidden Column directory_version rpm_system
-Currently unused.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_version"
- Column | Type |
Modifiers
-------------------------+------------------------+----------------------------------------------------------------
- id | integer | not null default
nextval('directory_version_id_seq'::regclass)
- name | character varying(20) | not null
- date | date | not null
- status | character varying(1) | not null
- project_id | integer | not null
- notes | text |
- license_verified_by_id | integer | not null
- license_verified_on | date | not null
- source_archive | character varying(100) |
- source_code | character varying(500) | not null
- deb_system | character varying(500) |
- rpm_system | character varying(500) |
-Indexes:
- "directory_version_pkey" PRIMARY KEY, btree (id)
- "directory_version_license_verified_by_id" btree (license_verified_by_id)
- "directory_version_project_id" btree (project_id)
-Foreign-key constraints:
- "directory_version_license_verified_by_id_fkey" FOREIGN KEY
(license_verified_by_id) REFERENCES auth_user(id) DEFERRABLE INITIALLY DEFERRED
- "directory_version_project_id_fkey" FOREIGN KEY (project_id) REFERENCES
directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden directory_version_interfaces, directory_version_licenses,
directory_version, Version
address@hidden @code{directory_version_interfaces}
-
-Represents a relationship between a version (@pxref{Version}) and an
-interface (@pxref{Interface}).
-
address@hidden Column directory_version_interfaces id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_version_interfaces version_id
-The id of the version record (@pxref{directory_version}) associated
-with the interface.
address@hidden defcv
-
address@hidden Column directory_version_interfaces interface_id
-The id of the interface record (@pxref{directory_interface})
-associated with the version.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_version_interfaces"
- Column | Type | Modifiers
---------------+---------+---------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_version_interfaces_id_seq'::regclass)
- version_id | integer | not null
- interface_id | integer | not null
-Indexes:
- "directory_version_interfaces_pkey" PRIMARY KEY, btree (id)
- "directory_version_interfaces_version_id_key" UNIQUE, btree (version_id,
interface_id)
-Foreign-key constraints:
- "directory_version_interfaces_interface_id_fkey" FOREIGN KEY
(interface_id) REFERENCES directory_interface(id) DEFERRABLE INITIALLY DEFERRED
- "directory_version_interfaces_version_id_fkey" FOREIGN KEY (version_id)
REFERENCES directory_version(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden directory_version_licenses,, directory_version_interfaces,
Version
address@hidden @code{directory_version_licenses}
-
-Represents a relationship between a version (@pxref{Version}) and a
-license (@pxref{License}).
-
address@hidden Column directory_version_licenses id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_version_licenses version_id
-The id of the version record (@pxref{directory_version}) associated
-with the license.
address@hidden defcv
-
address@hidden Column directory_version_licenses license_id
-The id of the license record (@pxref{directory_license}) associated
-with the version.
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_version_licenses"
- Column | Type | Modifiers
-------------+---------+-------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_version_licenses_id_seq'::regclass)
- version_id | integer | not null
- license_id | integer | not null
-Indexes:
- "directory_version_licenses_pkey" PRIMARY KEY, btree (id)
- "directory_version_licenses_version_id_key" UNIQUE, btree (version_id,
license_id)
-Foreign-key constraints:
- "directory_version_licenses_license_id_fkey" FOREIGN KEY (license_id)
REFERENCES directory_license(id) DEFERRABLE INITIALLY DEFERRED
- "directory_version_licenses_version_id_fkey" FOREIGN KEY (version_id)
REFERENCES directory_version(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Network Resource, Not Interesting, Version, Essential Concepts
address@hidden Network Resource
-
-A typical free software project publishes various kinds of network
-resources -- like homepage, mailing list archives or newsgroups. Most
-of those various kinds of resources can be addressed to a specific
-audience. For example, a project could use two different mailing
-lists -- one intended for general users and another for developers.
-Such network resources are represented in the table
address@hidden
-(@pxref{directory_projectwebresource}).
-
address@hidden
-* directory_projectwebresource::
address@hidden menu
-
address@hidden directory_projectwebresource, , Network Resource, Network
Resource
address@hidden @code{directory_projectwebresource}
-
-The name of this table is somewhat misleading since it keeps records
-for various kind of network resources, not just web addresses.
-
address@hidden Column directory_projectwebresource id
-Primary key.
address@hidden defcv
-
address@hidden Column directory_projectwebresource link
-Network address. This may be an URL, email address, etc. according to
-the value of the @code{kind} column.
address@hidden defcv
-
address@hidden Column directory_projectwebresource project_id
-The id of the project record (@pxref{directory_project}) for which
-this resource is about.
address@hidden defcv
-
address@hidden Column directory_projectwebresource audience
-Intended audience that might find this resource useful. Possible
-values are:
-
address@hidden @samp
address@hidden 1
-Developers
-
address@hidden 2
-User Support
-
address@hidden 3
-Bug Tracking
-
address@hidden 4
-Announcement
-
address@hidden 5
-General
address@hidden table
address@hidden defcv
-
address@hidden Column directory_projectwebresource kind
-FIXME. Possible values are:
-
address@hidden @samp
address@hidden 1
-Mailing List Subscribe
-
address@hidden 2
-Mailing List Info/Archive
-
address@hidden 3
-Forum
-
address@hidden 4
-VCS Repository Webview
-
address@hidden 5
-Homepage
-
address@hidden 6
-Bug Tracker
-
address@hidden 7
-ChangeLog
-
address@hidden 8
-E-mail
-
address@hidden 9
-Newsgroup (NNTP)
-
address@hidden 10
-Paid support information. The link usually contains free text with
-inline URLs, for example: @samp{Paid technical support available from
-http://foo.com/support.html}.
-
address@hidden 11
-Download
address@hidden table
-
address@hidden defcv
-
address@hidden @command{psql} description
-
address@hidden
- Table "public.directory_projectwebresource"
- Column | Type |
Modifiers
-------------+-------------------------+---------------------------------------------------------------------------
- id | integer | not null default
nextval('directory_projectwebresource_id_seq'::regclass)
- link | character varying(1000) | not null
- project_id | integer | not null
- audience | character varying(2) | not null
- kind | character varying(2) | not null
-Indexes:
- "directory_projectwebresource_pkey" PRIMARY KEY, btree (id)
- "directory_projectwebresource_project_id" btree (project_id)
-Foreign-key constraints:
- "directory_projectwebresource_project_id_fkey" FOREIGN KEY (project_id)
REFERENCES directory_project(id) DEFERRABLE INITIALLY DEFERRED
address@hidden verbatim
-
address@hidden Not Interesting, Index, Network Resource, Top
address@hidden Tables that are not directly related to the FSD data
-
address@hidden
address@hidden
-auth_group
-
address@hidden
-auth_group_permissions
-
address@hidden
-auth_message
-
address@hidden
-auth_permission
-
address@hidden
-auth_user
-
address@hidden
-auth_user_groups
-
address@hidden
-auth_user_user_permissions
-
address@hidden
-django_admin_log
-
address@hidden
-django_content_type
-
address@hidden
-django_redirect
-
address@hidden
-django_session
-
address@hidden
-django_site
address@hidden itemize
-
address@hidden Index, Copying This Manual, Not Interesting, Top
address@hidden Index
-
address@hidden cp
-
address@hidden Copying This Manual, , Index, Top
address@hidden GNU Free Documentation License
-
-FIXME: Insert GFDL here.
-
address@hidden
Index: rec/pkgblurbs.rec
===================================================================
RCS file: rec/pkgblurbs.rec
diff -N rec/pkgblurbs.rec
--- rec/pkgblurbs.rec 10 Apr 2019 01:00:44 -0000 1.33
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2855 +0,0 @@
-# $Id: pkgblurbs.rec,v 1.33 2019/04/10 01:00:44 mikegerwitz Exp $
-# Public domain.
-#
-# This file is maintained in the CVS repository of GNU womb,
-# http://cvs.savannah.gnu.org/viewvc/gnumaint/?root=womb
-#
-# This file specifies a short blurb for each GNU package. These are
-# used by www.gnu.org, GSRC, and Guix.
-
-%rec: Blurb
-%doc: Extended package descriptions
-%key: id
-%mandatory: package blurb
-# Unless the blurb is a redirect or null (e.g. for a new package), it
-# should be at least 70 characters long.
-%constraint: blurb ~ ".{70,}" || blurb ~ "^redirect" || blurb ~ "^null"
-
-
-id: 3dldf_blurb
-package: 3dldf
-blurb: GNU 3DLDF supports 3D drawing with output to the MetaPost format via
-+ a language similar to Metafont. It is primarily
-+ intended to provide a means of creating 3D content for TeX documents,
-+ but it can also create animations containing text typeset by TeX.
-
-id: 8sync_blurb
-package: 8sync
-blurb: 8sync (pronounced "eight-sync") is an asynchronous programming library
-+ for GNU Guile. It makes use of delimited continuations to avoid a mess of
-+ callbacks, resulting in clean, easy-to-read, non-blocking code.
-
-id: a2ps_blurb
-package: a2ps
-blurb: GNU a2ps converts almost anything to a PostScript file, ready for
-+ printing. It accomplishes this by being able to delegate files to
-+ external handlers, such as Groff and Gzip. It handles as many steps
-+ as is necessary to produce a pretty-printed file. It also includes
-+ some extra abilities for special cases, such as pretty-printing
-+ "--help" output.
-
-id: acct_blurb
-package: acct
-blurb: GNU acct provides a means for system administrators to determine
-+ system usage patterns. It provides information on, for example,
-+ connections, programs executed, and system resources used.
-
-id: acm_blurb
-package: acm
-blurb: GNU ACM is a flight simulator in which players can compete in aerial
-+ combat from different computers, piloting well-equipped jet aircraft
-+ similar to an F-16C Falcon or a MiG-29 Fulcrum.
-
-id: adns_blurb
-package: adns
-blurb: GNU adns is a C library that provides easy-to-use DNS resolution
-+ functionality. The library is asynchronous, allowing several
-+ concurrent calls. The package also includes several command-line
-+ utilities for use in scripts.
-
-id: alive_blurb
-package: alive
-blurb: GNU Alive sends periodic pings to a server, generally to keep a
-+ connection alive.
-
-id: anubis_blurb
-package: anubis
-blurb: Anubis is a daemon that sits between the Mail User Agent (MUA) and
-+ the Mail Transfer Agent (MTA). When a mail is sent by a user in the
-+ MUA, it is first passed to Anubis, which performs additional
-+ processing to the message before passing it on for delivery by the
-+ MTA. Anubis may, for example, modify the message headers or body, or
-+ encrypt or sign the message.
-
-id: apl_blurb
-package: apl
-blurb: GNU APL is a free interpreter for the programming language APL. It is
-+ an implementation of the ISO standard 13751.
-
-id: archimedes_blurb
-package: archimedes
-blurb: Archimedes is a free package for semiconductor device simulations.
-+ It is intended to assist engineers in designing and simulating
-+ submicron and mesoscopic semiconductor devices based on the Ensemble
-+ Monte Carlo method. It is able to handle a wide variety of materials
-+ and structures, which are described through simple scripts.
-
-id: aris_blurb
-package: aris
-blurb: Aris is a program for performing logical proofs. It supports
-+ propositional and predicate logic, as well as Boolean algebra and
-+ arithmetical logic. In addition to its predefined inference and
-+ equivalence rules, Aris also supports references to older proofs.
-+ Its use of standard logical symbols and its natural deduction
-+ interface make it easy to use for beginners.
-
-id: artanis_blurb
-package: artanis
-blurb: GNU Artanis is a web application framework written in Guile
-+ Scheme. A web application framework (WAF) is a software framework
-+ that is designed to support the development of dynamic websites, web
-+ applications, web services and web resources. The framework aims to
-+ alleviate the overhead associated with common activities performed in
-+ web development. Artanis provides several tools for web development:
-+ database access, templating frameworks, session management,
-+ URL-remapping for RESTful, page caching, and more.
-
-id: aspell_blurb
-package: aspell
-blurb: Aspell is a spell-checker which can be used either as a library or as
-+ a standalone program. Notable features of Aspell include its full
-+ support of documents written in the UTF-8 encoding and its ability to
-+ use multiple dictionaries, including personal ones.
-
-id: auctex_blurb
-package: auctex
-blurb: AUCTeX is an integrated environment for producing TeX documents in
-+ Emacs. It allows many different standard TeX macros to be inserted
-+ with simple keystrokes or menu selection. It offers an interface to
-+ external programs, enabling you to compile or view your documents
-+ from within Emacs. AUCTeX also features the ability to place inline
-+ previews of complex TeX statements such as mathematical formulae.
-
-id: autoconf_blurb
-package: autoconf
-blurb: Autoconf offers the developer a robust set of M4 macros which expand
-+ into shell code to test the features of Unix-like systems and to
-+ adapt automatically their software package to these systems. The
-+ resulting shell scripts are self-contained and portable, freeing the
-+ user from needing to know anything about Autoconf or M4.
-
-id: autoconf_archive_blurb
-package: autoconf-archive
-blurb: Autoconf Archive is a collection of over 450 new macros for Autoconf,
-+ greatly expanding the domain of its functionality. These macros have
-+ been contributed as free software by the community.
-
-id: autogen_blurb
-package: autogen
-blurb: AutoGen is a program to ease the maintenance of programs that contain
-+ large amounts of repetitive text. It automates the construction of
-+ these sections of the code, simplifying the task of keeping the
-+ text in sync. It also includes an
-+ add-on package called AutoOpts, which is specialized for the
-+ maintenance and documentation of program options.
-
-id: automake_blurb
-package: automake
-blurb: Automake the part of the GNU build system for producing
-+ standards-compliant Makefiles. Build requirements are entered in an
-+ intuitive
-+ format and then Automake works with Autoconf to produce a robust
-+ Makefile, simplifying the entire process for the developer.
-
-id: avl_blurb
-package: avl
-blurb: libavl provides a large collection of binary search tree and balanced
-+ tree routines for C. These trees offer at least O(log n) performance
-+ for usually costly operations such as searching, inserting or
-+ deleting items from a data structure.
-
-id: ballandpaddle_blurb
-package: ballandpaddle
-blurb: Ball and Paddle is a classic arcade game in which you use a paddle at
-+ the bottom of the screen to bounce a ball against bricks in the upper
-+ region, eliminating the bricks as they are hit. As a novel twist,
-+ events and attributes of all the objects (bricks, ball, etc.) may be
-+ scripted with GNU Guile.
-
-id: barcode_blurb
-package: barcode
-blurb: GNU Barcode is a flexible tool to produce printed barcodes from text
-+ strings. It supports a variety of encoding standards and sizing
-+ measurements. Barcodes can be output in PostScript or Encapsulated
-+ PostScript formats.
-
-id: bash_blurb
-package: bash
-blurb: Bash is the shell, or command-line interpreter, of the GNU system. It
-+ is compatible with the Bourne Shell, but it also integrates useful
-+ features from the Korn Shell and the C Shell and new improvements of
-+ its own. It allows command-line editing, unlimited command history,
-+ shell functions and aliases, and job control while still allowing
-+ most sh scripts to be run without modification.
-
-id: bayonne_blurb
-package: bayonne
-blurb: Bayonne is the telephony server of the GNU Telephony project. It
-+ offers a scalable environment for the development and deployment of
-+ telephony solutions, with a focus on SIP.
-
-id: bc_blurb
-package: bc
-blurb: bc is an arbitrary precision numeric processing language. It
-+ includes an interactive environment for evaluating mathematical
-+ statements. Its syntax is similar to that of C, so basic usage is
-+ familiar. It also includes "dc", a reverse-polish calculator.
-
-id: bfd_blurb
-package: bfd
-blurb: redirect binutils
-
-id: binutils_blurb
-package: binutils
-blurb: GNU Binutils is a collection of tools for working with binary files.
-+ Perhaps the most notable are "ld", a linker, and "as", an assembler.
-+ Other tools include programs to display binary profiling
-+ information, list the strings in a binary file,
-+ and utilities for working with archives. The "bfd" library for
-+ working with executable and object formats is also included.
-
-id: bison_blurb
-package: bison
-blurb: GNU Bison is a general-purpose parser generator. It can build a
-+ deterministic or generalized LR parser from an annotated,
-+ context-free grammar. It is versatile enough to have many
-+ applications, from parsers for simple tools through complex
-+ programming languages.
-
-id: bool_blurb
-package: bool
-blurb: GNU Bool is a utility to perform text searches on files using Boolean
-+ expressions. For example, a search for "hello AND world" would
-+ return a file containing the phrase "Hello, world!". It supports
-+ both AND and OR statements, as well as the NEAR statement to search
-+ for the occurrence of words in close proximity to each other. It
-+ handles context gracefully, accounting for new lines and paragraph
-+ changes. It also has robust support for parsing HTML files.
-
-id: bpel2owfn_blurb
-package: bpel2owfn
-blurb: GNU BPEL2oWFN translates a web service expressed in Web Service Business
-+ Process Execution Language (WS-BPEL) into an open Workflow Net
-+ (oWFN). It may additionally convert a BPEL4Chor choreography to a
-+ Petri Net model. Properties of Petri Nets may be analyzed
-+ efficiently, due to the use of static analysis to make the models
-+ compact. Control and data flow analysis, as well as basic checks for
-+ deadlocks and other such properties are available.
-
-id: bazaar_blurb
-package: bazaar
-blurb: GNU Bazaar is a version control system that allows
-+ you to record changes
-+ to project files over time.
-+ It supports both a distributed workflow
-+ as well as the classic centralized workflow.
-
-id: c_graph_blurb
-package: c-graph
-blurb: GNU C-Graph is a tool for demonstrating the theory of convolution.
Thus,
-+ it can serve as an excellent aid to students of signal and systems
-+ theory in visualizing the convolution process. Rather than forcing
-+ the student to write code, the program offers an intuitive interface
-+ with interactive dialogs to guide them.
-
-id: ccaudio_blurb
-package: ccaudio
-blurb: GNU ccAudio2 is a portable C++ class for working with audio data from
-+ disk. The classes are both endian and content aware; rather than
-+ treating audio as binary data, this library treats it as an sequence
-+ of samples. It can also handle metadata information. ccAudio2
-+ supports sun audio, raw samples, and RIFF encoded audio data.
-
-id: ccd2cue_blurb
-package: ccd2cue
-blurb: GNU ccd2cue is a preprocessor for CD burning software that allows
-+ the conversion of the proprietary CCD format to the CUE format, which
-+ is well-supported by free software. These files are commonly
-+ distributed with CD images and are used to describe how tracks are
-+ laid out on the image.
-
-id: ccide_blurb
-package: ccide
-blurb: GNU Ccide is a decision table code generator for the C language. This
-+ helps to avoid unmanageable and error-prone chains of nested if-else
-+ statements. Instead, decision tables are entered in an intuitive and
-+ easy-to-read format, which is then expanded into portable C code.
-
-id: ccrtp_blurb
-package: ccrtp
-blurb: GNU ccRTP is an implementation of RTP, the real-time transport protocol
-+ from the IETF. It is suitable both for high capacity servers and
-+ personal client applications. It is flexible in its design, allowing
-+ it to function as a framework for the framework, rather than just
-+ being a packet-manipulation library.
-
-id: ccscript_blurb
-package: ccscript
-blurb: GNU ccScript3 is a library to add a virtual machine execution system for
-+ use with/as a scripting or assembler language for real-time,
-+ state-transition driven systems.
-
-id: cfengine_blurb
-package: cfengine
-blurb: Cfengine, or the configuration engine, is an agent/software robot to
-+ configure and administer large computer networks. It also functions
-+ as a high-level language for designing expert systems to perform such
-+ tasks. It consists of a primitive intelligence for defining and
-+ automating the configuration and maintenance of the system state.
-
-id: cflow_blurb
-package: cflow
-blurb: GNU cflow analyzes C source files and produces a graph charting the
-+ control flow of the program. It can output the graph in several
-+ styles and in either the POSIX format or in an extended GNU format.
-+ cflow also includes a major mode for Emacs for examining the
-+ flowcharts that it produces.
-
-id: cgicc_blurb
-package: cgicc
-blurb: GNU cgicc is an ANSI-compliant C++ library for writing CGI applications,
-+ featuring support for FastCGI. The library supports several features,
-+ including handling both GET and POST data, handling a variety of form
-+ data types, and on-the-fly HTML generation.
-
-id: chess_blurb
-package: chess
-blurb: GNU Chess is a chess engine. It allows you to compete against the
-+ computer in a game of chess, either through the default terminal
-+ interface or via an external visual interface such as GNU XBoard.
-
-id: cim_blurb
-package: cim
-blurb: Cim is the GNU compiler for Simula, the first object-oriented
-+ programming language.
-
-id: classpath_blurb
-package: classpath
-blurb: GNU Classpath provides essential libraries for Java virtual machines
-+ and compilers. It is compatible with a large percentage of the
-+ language API specifications and provides a wide array of
-+ functionality.
-
-id: classpathx_blurb
-package: classpathx
-blurb: null (inactive, mostly merged into classpath)
-
-id: clisp_blurb
-package: clisp
-blurb: GNU CLISP is an implementation of ANSI Common Lisp. Common Lisp is a
-+ high-level, object-oriented functional programming language. CLISP
-+ includes an interpreter, a compiler, a debugger, and much more.
-
-id: combine_blurb
-package: combine
-blurb: GNU combine works to merge files based on a common key in a hash table.
-+ It can be seen as similar to, albeit much more powerful than, the
-+ standard "join" utility. Unlike "join", any number of files
-+ may be merged based on the matches found. combine also has other
-+ advanced features, such as date parsing and directory traversal.
-
-id: commoncpp_blurb
-package: commoncpp
-blurb: GNU Common C++ is an portable, optimized class framework for
-+ threaded applications, supporting concurrent synchronization,
-+ inter-process communications via sockets, and various methods for data
-+ handling, such as serialization and XML parsing. It includes the uCommon
-+ C++ library, a smaller reimplementation.
-
-id: complexity_blurb
-package: complexity
-blurb: GNU complexity provides tools for finding procedures that are
-+ convoluted, overly long or otherwise difficult to understand. This
-+ may help in learning or reviewing unfamiliar code or perhaps
-+ highlighting your own code that seemed comprehensible when you wrote it.
-
-id: config_blurb
-package: config
-blurb: The "config.guess" script tries to guess a canonical system triple,
-+ and "config.sub" validates and canonicalizes. These are used as part
-+ of configuration in nearly all GNU packages (and many others).
-
-id: consensus_blurb
-package: consensus
-blurb: null (container for network work)
-
-id: coreutils_blurb
-package: coreutils
-blurb: GNU Coreutils includes all of the basic command-line tools that are
-+ expected in a POSIX system. These provide the basic file, shell and
-+ text manipulation functions of the GNU system. Most of these tools
-+ offer extended functionality beyond that which is outlined in the
-+ POSIX standard.
-
-id: cpio_blurb
-package: cpio
-blurb: GNU cpio copies files into or out of cpio or tar archives.
-+ Indeed, many formats are supported, including legacy formats. The
-+ format is determined automatically by the program and is handled
-+ appropriately. Furthermore, the location of the archive is not
-+ important. It can be another file on the drive, a tape, or data on a
-+ pipe.
-
-id: cppi_blurb
-package: cppi
-blurb: GNU Cppi processes C source code files to properly indent the
-+ preprocessor directives to reflect their nesting. It also performs
-+ other standardizations, such as correcting the number of spaces
-+ between directives and the text following them.
-
-id: cssc_blurb
-package: cssc
-blurb: GNU CSSC provides a replacement for the legacy Unix source code control
-+ system SCCS. This allows old code still under that system to be
-+ accessed and migrated on modern systems.
-
-id: cursynth_blurb
-package: cursynth
-blurb: GNU cursynth is a polyphonic synthesizer that runs graphically
-+ in the terminal. It is built on a full-featured subtractive synthesis
-+ engine. Notes and parameter changes may be entered via MIDI or the
-+ computer's keyboard.
-
-id: dap_blurb
-package: dap
-blurb: GNU Dap is a statistics and graphics package. It can read programs
-+ written for the proprietary statistics system SAS. Its syntax is
-+ similar to, but simpler than C, making performing most tasks
-+ relatively easy while still providing advanced graphical
-+ capabilities.
-
-id: datamash_blurb
-package: datamash
-blurb: Perform basic numeric, textual and statistical operations on
-+ plain text files. Designed to work within standard pipelines without
-+ additional code.
-
-id: dc_blurb
-package: dc
-blurb: redirect bc
-
-id: dia_blurb
-package: dia
-blurb: redirect gnome
-
-id: direvent_blurb
-package: direvent
-blurb: A daemon that monitors directories for events, such as creating,
-+ deleting or modifying files. It can monitor different sets of
-+ directories for different events. When an event is detected, direvent
-+ calls a specified external program with information about the event,
-+ such as the location within the file system where it occurred. Thus,
-+ "direvent" provides an easy way to react immediately if given files
-+ undergo changes, for example, to track changes in important system
-+ configuration files.
-
-id: djgpp_blurb
-package: djgpp
-blurb: null (DOS-only package)
-
-id: dr_geo_blurb
-package: dr-geo
-blurb: null (stale)
-
-id: ddd_blurb
-package: ddd
-blurb: GNU DDD, the Data Display Debugger, is a graphical front-end for
-+ command-line debuggers. Many back-end debuggers are supported, notably
-+ the GNU debugger, GDB. In addition to usual debugging features
-+ such as viewing the source files, DDD has additional graphical,
-+ interactive features to aid in debugging.
-
-id: ddrescue_blurb
-package: ddrescue
-blurb: GNU ddrescue is a fully automated data recovery tool. It copies data
-+ from one file to another, working to rescue data in case of read
-+ errors. The program also includes a tool for manipulating its
-+ log files, which are used to recover data more efficiently by only
-+ reading the necessary blocks.
-
-id: dejagnu_blurb
-package: dejagnu
-blurb: DejaGnu is a framework for testing software. In effect, it serves as
-+ a front-end for all tests written for a program. Thus, each program
-+ can have multiple test suites, which are then all managed by a
-+ single harness.
-
-id: denemo_blurb
-package: denemo
-blurb: GNU Denemo is a music notation editor that provides a convenient
-+ interface to the powerful music engraving program Lilypond. Music
-+ can be typed in using the computer keyboard, played in using a MIDI
-+ keyboard, or even input via a microphone connected to the sound card.
-+ The final product is publication-quality music notation that is
-+ continuously generated in the background while you work.
-
-id: dico_blurb
-package: dico
-blurb: GNU Dico implements a flexible dictionary server and client according
-+ to RFC 2229 (DICT Server). It is able to access any database
-+ available, regardless of format, thanks to its modular structure.
-+ New modules may be written in C, Guile or Python. Dico also includes
-+ a command-line client, which may be used to query remote dictionary
-+ databases.
-
-id: diction_blurb
-package: diction
-blurb: A package providing two classic Unix commands, style and diction.
-+ Diction is used to identify wordy and commonly misused phrases in a
-+ body of text. Style instead analyzes surface aspects of a written
-+ work, such as sentence length and other readability measures.
-
-id: diffutils_blurb
-package: diffutils
-blurb: GNU Diffutils is a package containing tools for finding the
-+ differences between files. The "diff" command is used to show how two
-+ files differ, while "cmp" shows the offsets and line numbers where they
-+ differ. "diff3" allows you to compare three files. Finally, "sdiff"
-+ offers an interactive means to merge two files.
-
-id: dionysus_blurb
-package: dionysus
-blurb: GNU Dionysus is a convenient system for quickly retrieving the values of
-+ mathematical constants used in science and engineering. Values can
-+ be searched using a simple command-line tool, choosing from three
-+ databases: universal constants, atomic numbers, and constants related
-+ to semiconductors.
-
-id: dominion_blurb
-package: dominion
-blurb: GNU Dominion is a multi-player world simulation game. In it,
-+ each player rules a nation and must maintain their nation in the face
-+ of competition from the other players. Players must make political,
-+ economical, military and diplomatic decisions in order for their
-+ nations to survive. This game is intended to be played by players all
-+ with access to the same computer system.
-
-id: easejs_blurb
-package: easejs
-blurb: ease.js is a classical object-oriented framework for JavaScript,
-+ intended to eliminate boilerplate code and ease the transition
-+ to JavaScript from other object-oriented languages.
-
-id: ed_blurb
-package: ed
-blurb: Ed is a line-oriented text editor: rather than offering an overview
-+ of a document, ed performs editing one line at a time. It can be
-+ executed both interactively and via shell scripts. Its method of
-+ command input allows complex tasks to be performed in an automated way.
-+ GNU ed offers several extensions over the standard utility.
-
-id: edma_blurb
-package: edma
-blurb: GNU EDMA is a development environment that combines ideas from both
-+ object-oriented programming and component-based systems. It is used
-+ to build modular, evolving applications as well as reusable
-+ components. EDMA provides a convenient means to build
-+ object-oriented programs in C without requiring C++.
-+ Also, it has a unique component system, unlike other free software
-+ component-based systems which imitate the design of proprietary
-+ counterparts. It includes a graphical wizard, gidfwizard,
-+ a tool for building GNU EDMA Interface
-+ definition files and to create skeleton files necessary to build
-+ EDMA classes, and a graphical class browser, gecb.
-
-id: electric_blurb
-package: electric
-blurb: GNU Electric is a CAD program for designing electrical circuits,
-+ handling custom IC layout, schematic drawing and hardware
-+ description language specifications. Several CAD operations are
-+ supported, such as rule checking and simulation. Many different
-+ types of designs can be produced and input or output in a wide
-+ variety of formats.
-
-id: emacs_blurb
-package: emacs
-blurb: GNU Emacs is an extensible and highly customizable text editor. It
-+ is based on an Emacs Lisp interpreter with extensions for text
-+ editing. Emacs has been extended in essentially all areas of
-+ computing, giving rise to a vast array of packages supporting, e.g.,
-+ email, IRC and XMPP messaging, spreadsheets, remote server editing,
-+ and much more. Emacs includes extensive documentation on all
-+ aspects of the system, from basic editing to writing large Lisp
-+ programs. It has full Unicode support for nearly all human
-+ languages.
-
-id: emacs_muse_blurb
-package: emacs-muse
-blurb: Muse is an authoring and publishing environment for GNU Emacs. It
-+ supports entering text in a convenient and easy-to-learn format.
-+ Later, your documents may be published in a variety of different
-+ formats, such as HTML, LaTeX or PDF. Muse supports projects
-+ consisting of several documents, which are properly merged according
-+ to the output format.
-
-id: emms_blurb
-package: emms
-blurb: EMMS is the Emacs Multimedia System. It is a small front-end which
-+ can control one of the supported external players. Thus, it supports
-+ whatever formats are supported by your music player. It also
-+ supports tagging and playlist management, all behind a clean and
-+ light user interface.
-
-id: enscript_blurb
-package: enscript
-blurb: GNU Enscript is a program to convert ASCII text files to PostScript,
-+ HTML or RTF formats, to be stored in files or sent immediately to a
-+ printer. It also includes the capability to perform syntax
-+ highlighting for several different programming languages.
-
-id: eprints_blurb
-package: eprints
-blurb: null (skip, no evidence of GNU on web site)
-
-id: epsilon_blurb
-package: epsilon
-blurb: null (stale)
-
-id: fdisk_blurb
-package: fdisk
-blurb: GNU fdisk provides a GNU version of the common disk partitioning tool
-+ fdisk. fdisk is used for the creation and manipulation of disk
-+ partition tables, and it understands a variety of different formats.
-
-id: ferret_blurb
-package: ferret
-blurb: GNU Ferret is a graphical data modeler for the Entity/Relationship
-+ paradigm. It can automatically create relational schemas from the
-+ data models and it can be used to generate SQL statements in a
-+ variety of dialects.
-
-id: findutils_blurb
-package: findutils
-blurb: Findutils supplies the basic file directory searching utilities of
-+ the GNU system. It consists of two primary searching utilities:
-+ "find" recursively searches for files in a directory according to
-+ given criteria and "locate" lists files in a database that match a
-+ query. Two auxiliary tools are included: "updatedb" updates the file
-+ name database and "xargs" may be used to apply commands with arbitrarily
-+ long arguments.
-
-id: fisicalab_blurb
-package: fisicalab
-blurb: GNU FisicaLab is an educational application for solving physics
-+ problems. Its main objective is allow the user to focus on physics
-+ concepts, leaving aside the mathematical details.
-
-id: flex_manual_blurb
-package: flex manual
-blurb: null (stale)
-
-id: foliot_blurb
-package: foliot
-blurb: GNU Foliot is an application for keeping track of time spent working
-+ on projects.
-
-id: fontopia_blurb
-package: fontopia
-blurb: Fontopia is an easy-to-use, text-based, console font editor. It's used
-+ to edit the fonts that GNU/Linux uses to display text on text-based
terminals.
-+ Fontopia works on both PSF 1 & 2, BDF, Code Paged (CP) fonts, and Raw font
-+ files. It provides a user-friendly, easy-to-use glyph editor and it can
-+ easily change font metrics (e.g. length, width, and height) and convert
-+ between different font formats.
-
-id: fontutils_blurb
-package: fontutils
-blurb: GNU Fontutils is a collection of programs for handling fonts.
-+ Bitmaps can be extracted from scanned images of characters, edited,
-+ and converted into outline fonts. In general, Fontutils supports the
-+ font formats supported by the TeX typesetting environment, including
-+ PostScript Type 1 fonts.
-
-id: freedink_blurb
-package: freedink
-blurb: GNU FreeDink is a free and portable re-implementation of the engine
-+ for the role-playing game Dink Smallwood. It supports not only the
-+ original game data files but it also supports user-produced game
-+ mods or "D-Mods". To that extent, it also includes a front-end for
-+ managing all of your D-Mods.
-
-id: freefont_blurb
-package: freefont
-blurb: GNU FreeFont is a collection of scalable outline fonts that are
-+ suitable for general computer use and for desktop publishing. A
-+ serif, a sans serif and a monospace font are included, all available in both
-+ TrueType and OpenType formats. The fonts support a broad
-+ range of characters for many different writing systems, and have
-+ excellent coverage of mathematical notation.
-
-id: freeipmi_blurb
-package: freeipmi
-blurb: GNU FreeIPMI is a collection of in-band and out-of-band IPMI software
-+ in accordance with the IPMI v1.5/2.0 specification. These programs
-+ provide a set of interfaces for platform management. Common
-+ functionality includes sensor monitoring, system event monitoring,
-+ power control and serial-over-LAN.
-
-id: freetalk_blurb
-package: freetalk
-blurb: GNU Freetalk is a command-line Jabber/XMPP chat client. It notably
-+ uses the Readline library to handle input, so it features convenient
-+ navigation of text as well as tab-completion of buddy names, commands
-+ and English words. It is also scriptable and extensible via Guile.
-
-id: fribidi_blurb
-package: fribidi
-blurb: GNU FriBidi is an implementation of the Unicode Bidirectional
-+ Algorithm. This algorithm is used to properly display text in
-+ left-to-right or right-to-left ordering as necessary.
-
-id: ggolf_blurb
-package: g-golf
-blurb: G-Golf (Gnome: (Guile Object Library for)) is a library for developing
-+ modern applications in Guile Scheme. It comprises a direct binding to the
-+ GObject Introspection API and higher-level functionality for importing Gnome
-+ libraries and making GObject classes (and methods) available in Guile's
-+ object-oriented programming system, GOOPS.
-
-id: gama_blurb
-package: gama
-blurb: GNU Gama is a program for the adjustment of geodetic networks. It is
-+ useful in measurements where Global Positioning System (GPS) is not
-+ available, such as underground. It features the ability to adjust in
-+ local Cartesian coordinates as well as partial support for
-+ adjustments in global coordinate systems.
-
-id: garpd_blurb
-package: garpd
-blurb: GNU garpd broadcasts Gratuitous ARP (Address Resolution Protocol)
-+ requests/replies for a list of MAC address <-> IP address mappings on
-+ specified interfaces at regular intervals. Gratuitous ARP request
-+ packets are those where the source and the destination IPs are both
-+ the IP of the requesting machine. Gratuitous ARP replies are those
-+ made without a corresponding request.
-
-id: gawk_blurb
-package: gawk
-blurb: Gawk is the GNU implementation of Awk, a specialized programming
-+ language for the easy manipulation of formatted text, such as tables
-+ of data. Gawk features many extensions beyond the traditional
-+ implementation, including network access, sorting, and large
-+ libraries.
-
-id: gbehistun_blurb
-package: gbehistun
-blurb: GNU Behistun consists of software and utilities for geological
-+ and geophysical modeling and mapping of internal structures and
-+ dynamics. Like the Behistun Multilingual Inscription, the Behistun
-+ software utilities provide knowledge and functionality to work on
-+ planetary systems and investigate their interior in freedom.
-
-id: gcal_blurb
-package: gcal
-blurb: Gcal is a program to calculate and print calendars on the
-+ command-line. Calendars can be printed in 1-month, 3-month or whole-year
-+ views. In addition, eternal holiday lists can be generated for many
-+ countries, which can be complemented by user-made lists of fixed
-+ dates to make an agenda. Gcal can also calculate astronomical data,
-+ such as the phases of the moon, and supports alternative calendar
-+ formats: Julian, Gregorian, Islamic, Chinese and more.
-
-id: gcc_blurb
-package: gcc
-blurb: GCC is the GNU Compiler Collection. It provides compiler front-ends
-+ for several languages, including C, C++, Objective-C, Fortran, Java,
-+ Ada, and Go. It also includes runtime support libraries for these
-+ languages.
-
-id: gcide_blurb
-package: gcide
-blurb: GCIDE is a free dictionary based on a combination of sources. It can
-+ be used via the GNU Dico program or accessed online at
-+ http://gcide.gnu.org.ua/
-
-id: gcl_blurb
-package: gcl
-blurb: GCL is an implementation of the Common Lisp language. It features
-+ the ability to compile to native object code and to load native
-+ object code modules directly into its lisp core. It also features a
-+ stratified garbage collection strategy, a source-level debugger and a
-+ built-in interface to the Tk widget system.
-
-id: gcompris_blurb
-package: gcompris
-blurb: GCompris is a suite of educational software for children. It
-+ features a variety of activities suitable for kids aged 2 to 10 years
-+ old. The suite includes activities to introduce and develop skills
-+ in computer use, algebra, science, reading and more. It also
-+ features some games such as chess and sudoku.
-
-id: gdb_blurb
-package: gdb
-blurb: GDB is the GNU debugger. With it, you can monitor what a program is
-+ doing while it runs or what it was doing just before a crash. It
-+ allows you to specify the runtime conditions, to define breakpoints,
-+ and to change how the program is running to try to fix bugs. It can
-+ be used to debug programs written in C, C++, Ada, Objective-C, Pascal
-+ and more.
-
-id: gdbm_blurb
-package: gdbm
-blurb: GDBM is a library for manipulating hashed databases. It is used to
-+ store key/value pairs in a file in a manner similar to the Unix dbm
-+ library and provides interfaces to the traditional file format.
-
-id: gengen_blurb
-package: gengen
-blurb: GNU Gengen is a program to generate text-generators, i.e., functions
-+ producing text with variable sections. The text is first specified
-+ by the user in a template file containing parameters, then processed by
-+ gengen to create the text-generator. At runtime, the variable text is
-+ defined by the rest of the program and passed to the text-generator,
-+ which then substitutes it into the template parameters and returns the
-+ result. Gengen can be used to generate C and C++ code.
-
-id: gengetopt_blurb
-package: gengetopt
-blurb: GNU Gengetopt is a program to generate a C/C++ function for parsing
-+ command-line options using the getopt_long function found in GNU
-+ libc, removing some of the tedium of this task for large programs
-+ that accept many options. The options parsed by the generated
-+ function may be in both short (e.g., "-h") and long ("--help")
-+ formats, as specified by the GNU coding standards. Additionally, the
-+ output of the standard options "--help" and "--version" is generated
-+ automatically.
-
-id: gettext_blurb
-package: gettext
-blurb: GNU Gettext is a package providing a framework
-+ for translating the textual output of programs into multiple
-+ languages. It provides translators with the means to create message
-+ catalogs, as well as an Emacs mode to work with them, and a runtime
-+ library to load translated messages from the catalogs. Nearly all GNU
-+ packages use Gettext.
-
-id: gforth_blurb
-package: gforth
-blurb: Gforth is a fast and portable implementation of the ANSI Forth
-+ language. It includes an editing mode for Emacs and an interpreter
-+ featuring completion and history. A generic virtual machine
-+ environment, vmgen, is also included.
-
-id: gg_network_blurb
-package: gg-network
-blurb: null (group)
-
-id: ggradebook_blurb
-package: ggradebook
-blurb: GNU Gradebook is an application for teachers for tracking student
-+ grades. It supports several grading styles, including American (A, B,
-+ C, D, F) and European numeric scales.
-
-id: ghostscript_blurb
-package: ghostscript
-blurb: Ghostscript is an interpreter for the PostScript language and the PDF
-+ file format. It also includes a C library that implements the
-+ graphics capabilities of the PostScript language. It supports a wide
-+ variety of output file formats and printers.
-
-id: gift_blurb
-package: gift
-blurb: The GNU Image-Finding Tool (GIFT) is a Content Based Image Retrieval
-+ System. It uses the content of images to perform queries on a
-+ collection, enabling you to query by example. Also, a tool to index
-+ whole directory trees is included.
-
-id: gimp_blurb
-package: gimp
-blurb: GIMP is an application for image manipulation tasks such as photo
-+ retouching, composition and authoring. It supports all common image
-+ formats as well as specialized ones. It features a highly
-+ customizable interface that is extensible via a plugin system.
-
-id: gimp_www_pages_blurb
-package: gimp www pages
-blurb: null (container)
-
-id: glean_blurb
-package: glean
-blurb: GNU glean is a modular system for self-study, considerably more
-+ intricate than standard flash cards method. It is very
-+ customizable, allowing the user to define subjects of interest and
-+ activities to study them. For now, it has a text-based interface
-+ inside the Guile REPL and an experimental web interface.
-
-id: gleem_blurb
-package: gleem
-blurb: GNU gleem is a library for Java and C++ offering a set of 3D
-+ widgets that support direct user interaction with a 3D scene. These
-+ widgets are used to translate along a line, translate in a plane, and
-+ do three-dimensional translation and rotation.
-
-id: glib_blurb
-package: glib
-blurb: redirect gnome
-
-id: global_blurb
-package: global
-blurb: GNU GLOBAL is a source code tagging system that functions in the same
way
-+ across a wide array of environments, such as different text editors,
-+ shells and web browsers. The resulting tags are useful for quickly
-+ moving around in a large, deeply nested project.
-
-id: glpk_blurb
-package: glpk
-blurb: GLPK is a C library for solving large-scale linear programming (LP),
-+ mixed integer programming (MIP), and other related problems. It
-+ supports the GNU MathProg modeling language, a subset of the AMPL
-+ language, and features a translator for the language. In addition to
-+ the C library, a stand-alone LP/MIP solver is included in the
-+ package.
-
-id: glue_blurb
-package: glue
-blurb: null (stale)
-
-id: gmediaserver_blurb
-package: gmediaserver
-blurb: GMediaServer is a UPnP-compatible media server. It serves audio and
-+ video files to network-connected media players via a command-line
-+ program that runs in the background.
-
-id: gmp_blurb
-package: gmp
-blurb: GMP is a library for arbitrary precision arithmetic, operating on
-+ signed integers, rational numbers and floating point numbers. The
-+ precision is only limited by the available memory. The library is
-+ highly optimized, with a design focus on execution speed. It is
-+ aimed at use in, for example, cryptography and computational algebra.
-
-id: gnash_blurb
-package: gnash
-blurb: Gnash is a free Flash movie player. It supports SWF version v7 and
-+ some of v8 and v9. It is possible to configure Gnash to use several
-+ different audio or video backends, ensuring good performance.
-
-id: gnat_blurb
-package: gnat
-blurb: redirect gcc
-
-id: gnats_blurb
-package: gnats
-blurb: GNATS is a set of tools for tracking bugs and other user-reported
-+ software issues. It is completely open-ended in how its database may
-+ be queried, edited and maintained, featuring interfaces ranging from
-+ the command-line to Emacs, though the main means of interaction is
-+ via its web interface. It is also flexible enough to support
-+ user-made utilities.
-
-id: gnatsweb_blurb
-package: gnatsweb
-blurb: redirect gnats
-
-id: gneuralnetwork_blurb
-package: gneuralnetwork
-blurb: Gneural Network implements a programmable neural network. It
-+ currently supports feed-forward networks which can learn simple tasks such
-+ as curve-fitting.
-
-id: gnome_blurb
-package: gnome
-blurb: GNOME is the graphical desktop for GNU. It includes a wide
-+ variety of applications for browsing the web, editing text and images,
-+ creating documents and diagrams, playing media, scanning, and much
-+ more.
-
-id: gnowsys_blurb
-package: gnowsys
-blurb: null (stale)
-
-id: gnu_c_manual_blurb
-package: gnu-c-manual
-blurb: This is a reference manual for the C programming language, as
-+ implemented by the GNU C Compiler (gcc). As a reference, it is not
-+ intended to be a tutorial of the language. Rather, it outlines all
-+ of the constructs of the language. Library functions are not
-+ included.
-
-id: gnu_crypto_blurb
-package: gnu-crypto
-blurb: null (inactive, mostly merged in classpath)
-
-id: gnu_pw_mgr_blurb
-package: gnu-pw-mgr
-blurb: This program is designed to make it easy to reconstruct difficult
-+ passwords when they are needed while limiting the risk of attack. The
-+ user of this program inputs a self-defined transformation of a web
-+ site URL and obtains the password and user name hint for that web
-+ site.
-
-id: gnuae_blurb
-package: gnuae
-blurb: null (stale)
-
-id: gnuastro_blurb
-package: gnuastro
-blurb: null (newpkg/20150216)
-
-id: gnubatch_blurb
-package: gnubatch
-blurb: GNUbatch is an advanced batch scheduling system. It executes
-+ computational jobs at specified dates and times or according to
-+ interdependencies. The jobs may be completed on any number of
-+ processors shared across a network. Full access-control of the jobs
-+ is supported.
-
-id: gnubg_blurb
-package: gnubg
-blurb: The GNU backgammon application can be used for playing, analyzing
-+ and teaching the game. It has an advanced evaluation engine based on
-+ artificial neural networks suitable for both beginners and advanced
-+ players. In addition to a command-line interface, it also features an
-+ attractive, 3D representation of the playing board.
-
-id: gnubiff_blurb
-package: gnubiff
-blurb: GNUbiff is a program that checks for mail and notifies you when new
-+ messages arrive. It supports multiple mailboxes which may be
-+ accessed via a variety of methods such as POP3, IMAP, MH and
-+ mailfiles. Graphical notifications are provided with GTK and
-+ complete integration with GNOME is supported.
-
-id: gnubik_blurb
-package: gnubik
-blurb: GNUbik is a puzzle game in which you must manipulate a cube to make
-+ each of its faces have a uniform color. The game is customizable,
-+ allowing you to set the size of the cube (the default is 3x3) or to
-+ change the colors. You may even apply photos to the faces instead of
-+ colors. The game is scriptable with Guile.
-
-id: gnucap_blurb
-package: gnucap
-blurb: GNUcap is a circuit analysis package. It offers a general purpose
-+ circuit simulator and can perform DC and transient analyses, fourier
-+ analysis and AC analysis. The engine is designed to do true
-+ mixed-mode simulation.
-
-id: gnucash_blurb
-package: gnucash
-blurb: GnuCash is personal and professional financial-accounting
-+ software. It can be used to track bank accounts, stocks, income and
-+ expenses, based on the double-entry accounting practice. It includes
-+ support for QIF/OFX/HBCI import and transaction matching. It also
-+ automates several tasks, such as financial calculations or scheduled
-+ transactions.
-
-id: gnucobol_blurb
-package: gnucobol
-blurb: null (stale)
-
-id: gnucomm_blurb
-package: gnucomm
-blurb: Telecom subsystem of the GNU Project: umbrella project for
-+ GNU Telephony software, currently Bayonne, SIP Witch, and their
-+ supporting libraries (Common C++ / uCommon, ccAudio, ccScript,
-+ ccRTP and ZRTP / ZRTP4J).
-
-id: gnudos_blurb
-package: gnudos
-blurb: GnuDOS is a set of programs designed to help new users of the GNU
-+ system in growing accustomed to the system, particularly users who
-+ might be coming from a DOS background. It consists of a file manager,
-+ a text editor and a form designer for the console as well as a core
-+ library for building similar utilities.
-
-id: gnue_blurb
-package: gnue
-blurb: GNU Enterprise supports enterprise planning. It includes an
-+ application server, common development library, an IDE for designing
-+ data forms, forms interface, navigator and menu system, and data
-+ reporting system.
-
-id: gnufm_blurb
-package: gnufm
-blurb: null (stale)
-
-id: gnugo_blurb
-package: gnugo
-blurb: GNU Go is a program that plays the game of Go, in which players place
-+ stones on a grid to form territory or capture other stones. While it
-+ can be played directly from the terminal, rendered in ASCII
-+ characters, it is also possible to play GNU Go with 3rd party
-+ graphical interfaces or even in Emacs. It supports the standard
-+ game storage format (SGF, Smart Game Format) and inter-process
-+ communication format (GMP, Go Modem Protocol).
-
-id: gnuit_blurb
-package: gnuit
-blurb: The GNU Interactive Tools are a set of lightweight, interactive
-+ command-line tools. They include an extensible, orthodox (two-pane)
-+ file manager, an ASCII/hex file viewer, and a process viewer/killer.
-+ The package also includes some related utilities and scripts, such as
-+ a tool to decompress any type of archive file. All the
-+ tools can be enhanced and extended through their configuration files
-+ to perform new commands.
-
-id: gnujdoc_blurb
-package: gnujdoc
-blurb: null (container for Japanese translations)
-
-id: gnujump_blurb
-package: gnujump
-blurb: GNUjump is a simple, yet addictive game in which you must jump from
-+ platform to platform to avoid falling, while the platforms drop at
-+ faster rates the higher you go. The game features multiplayer,
-+ unlimited FPS, smooth floor falling, themeable graphics and sounds,
-+ and replays.
-
-id: gnukart_blurb
-package: gnukart
-blurb: null (stale)
-
-id: gnulib_blurb
-package: gnulib
-blurb: Gnulib is a central location for common infrastructure needed by
-+ GNU packages. It provides a wide variety of functionality, e.g.,
-+ portability across many systems, working with Unicode strings,
-+ cryptographic computation, and much more. The code is intended to be
-+ shared at the level of source files, rather than being a standalone
-+ library that is distributed, built, and installed. The included
-+ "gnulib-tool" script helps with using Gnulib code in other packages.
-+ Gnulib also includes copies of licensing and maintenance-related
-+ files, for convenience.
-
-id: gnumach_blurb
-package: gnumach
-blurb: redirect hurd
-
-id: gnumed_blurb
-package: gnumed
-blurb: GNUmed is Electronic Medical Record software, supporting
-+ paperless medical practices. Several interface languages are supported.
-
-id: gnumeric_blurb
-package: gnumeric
-blurb: GNUmeric is a GNU spreadsheet application, running under
-+ GNOME. It is interoperable with other spreadsheet applications. It
-+ has a vast array of features beyond typical spreadsheet functionality,
-+ such as support for linear and non-linear solvers, statistical
-+ analysis, and telecommunication engineering.
-
-id: gnump3d_blurb
-package: gnump3d
-blurb: GNUMP3d is a streaming server for MP3 and Ogg Vorbis audio files,
-+ movies, and other media formats. It is small and self-contained,
-+ presenting a simple, themeable HTML interface. The audio files can
-+ then be played in any player that supports streaming over HTTP.
-
-id: gnun_blurb
-package: gnun
-blurb: GNUnited Nations is a build system for translating the web site at
-+ www.gnu.org. It works via template files, which allow changes to be
-+ merged into individual translations of a page, from which the final
-+ HTML is generated. In effect, this helps to keep all translations of
-+ a page up-to-date.
-
-id: gnunet_blurb
-package: gnunet
-blurb: GNUnet is a framework for secure peer-to-peer networking. The
-+ high-level goal is to provide a strong foundation of free software for a
-+ global, distributed network that provides security and privacy. GNUnet
-+ in that sense aims to replace the current internet protocol stack. Along
-+ with an application for secure publication of files, it has grown to include
-+ all kinds of basic applications for the foundation of a GNU internet.
-
-id: gnupg_blurb
-package: gnupg
-blurb: The GNU Privacy Guard is a complete implementation of the OpenPGP
-+ standard. It is used to encrypt and sign data and communication. It
-+ features powerful key management and the ability to access public key
-+ servers. It includes several libraries: libassuan (IPC between GnuPG
-+ components), libgpg-error (centralized GnuPG error values), and libskba
-+ (working with X.509 certificates and CMS data).
-
-id: gnupod_blurb
-package: gnupod
-blurb: GNUpod is a collection of scripts for using iPods with GNU/Linux and
-+ other operating systems. It can be used for transferring music and
-+ cover art, searching files, removing files, editing tags,
-+ creating playlists and more.
-
-id: gnuprologjava_blurb
-package: gnuprologjava
-blurb: GNU Prolog for Java is an implementation of the ISO Prolog standard
-+ as a Java library (gnu.prolog). Thus, with it you can use Prolog
-+ from within Java programs.
-
-id: gnuradio_blurb
-package: gnuradio
-blurb: GNU Radio is a toolkit for implementing software radios. Its signal
-+ processing blocks can be combined with low-cost external RF hardware
-+ to create software-defined radios. Without hardware, it can be used
-+ for simulation. Radio applications are primarily written in Python,
-+ with C++ support for performance-critical processing tasks.
-
-id: gnurobots_blurb
-package: gnurobots
-blurb: GNU Robots is a game in which you program a robot to explore a world
-+ full of enemies that can hurt it, obstacles and food to be eaten.
-+ The goal of the game is to stay alive and collect prizes. The robot
-+ program conveniently may be written in a plain text file in the
-+ Scheme programming language.
-
-id: gnuschool_blurb
-package: gnuschool
-blurb: GNUschool is a web application for students, teachers and school
-+ administrators. With it, teachers can create tests for the students
-+ to take online, give feedback and assign grades. School
-+ administrators can use it to monitor student attendance and edit
-+ student information.
-
-id: gnushogi_blurb
-package: gnushogi
-blurb: GNU Shogi is a program that plays the game Shogi (Japanese Chess).
-+ It also includes a graphical interface to the game. While similar to
-+ standard chess, this variant is far more complicated.
-
-id: gnusound_blurb
-package: gnusound
-blurb: GNUsound is a multitrack sound editor for GNOME 1 and 2. It can read
-+ and write many audio file formats such as WAV, MP3 and FLAC. It can
-+ work with the OSS, ALSA or JACK audio backends. It provides many
-+ different built-in audio processing modules, such as fades in/out,
-+ delay, and filters. GLADSPA plugins may also be used for further
-+ processing.
-
-id: gnuspeech_blurb
-package: gnuspeech
-blurb: null (stale)
-
-id: gnuspool_blurb
-package: gnuspool
-blurb: GNUspool is an advanced print spooling system. In addition to the
-+ functionality of the standard printing system, it provides
-+ post-processing capabilities, form type handling, alignment pages and
-+ other features. It functions transparently on a network, sharing jobs
-+ on any host with printers on any other host. Several user different
-+ interfaces are available.
-
-id: gnustandards_blurb
-package: gnustandards
-blurb: null (infrastructure doc)
-
-id: gnustep_blurb
-package: gnustep
-blurb: GNUstep is a fully-functional object-oriented development
-+ environment; a number of user applications are also
-+ included. It closely follows the Cocoa APIs but is
-+ platform-independent.
-
-id: gnutls_blurb
-package: gnutls
-blurb: GnuTLS is a secure communications library implementing the SSL, TLS
-+ and DTLS protocols. It is provided in the form of a C library to support
-+ the protocols, as well as to parse and write X.5009, PKCS 12, OpenPGP
-+ and other required structures.
-
-id: gnutrition_blurb
-package: gnutrition
-blurb: GNUtrition is a free nutrition analysis software. With it, one can
-+ keep track of the nutritional information of food. The software uses
-+ the Nutrient Database of Standard Reference of the US Department of
-+ Agriculture as a source of food nutrient information.
-
-id: gnuzilla_blurb
-package: gnuzilla
-blurb: redirect icecat
-
-id: goptical_blurb
-package: goptical
-blurb: Goptical is a library for optical design and simulation in C++. It
-+ provides model classes for optical components, surfaces and
-+ materials. With it, one can simulate building an optical system by
-+ creating and placing optical components in a 3d space, and visualize light
-+ propagating through the system.
-
-id: gorm_blurb
-package: gorm
-blurb: redirect gnustep
-
-id: gpaint_blurb
-package: gpaint
-blurb: GNU Paint is a simple, easy-to-use paint program for the GNOME
-+ environment. It supports drawing freehand as well as basic shapes
-+ and text. It features cut-and-paste for irregular regions or
-+ polygons.
-
-id: gperf_blurb
-package: gperf
-blurb: gperf is a perfect hash function generator. For a given list of
-+ strings, it produces a hash function and hash table in C or C++ code.
-+ That the hash function is perfect means that no collisions can exist
-+ and that look-ups can be made by single string comparisons.
-
-id: gprolog_blurb
-package: gprolog
-blurb: GNU Prolog is a standards-compliant Prolog compiler with constraint
-+ solving over finite domains. It accepts Prolog+ constraint programs
-+ and produces a compiled, native binary which can function in a
-+ stand-alone manner. It also features an interactive interpreter.
-
-id: grabcomics_blurb
-package: grabcomics
-blurb: phpGrabComics is a program that fetches and saves comic strips from
-+ the web. It features both a server, which can download strips from
-+ different sources, and ports, tiny applications which get the list of
-+ available comics from the server.
-
-id: greg_blurb
-package: greg
-blurb: GNU Greg is a framework for testing programs and libraries. It provides
-+ a single front-end for all tests of a package as well as a simple
-+ framework for writing the tests. It is loaded as a Guile module into
-+ any software with an embedded Guile interpreter. It also provides a
-+ compiled module that may be dynamically linked into Guile to permit
-+ testing external programs.
-
-id: grep_blurb
-package: grep
-blurb: grep is a tool for finding text inside files. Text is found by
-+ matching a pattern provided by the user in one or many files. The
-+ pattern may be provided as a basic or extended regular expression, or
-+ as fixed strings. By default, the matching text is simply printed to
-+ the screen, however the output can be greatly customized to include,
-+ for example, line numbers. GNU grep offers many extensions over the
-+ standard utility, including, for example, recursive directory
-+ searching.
-
-id: gretl_blurb
-package: gretl
-blurb: GNU Gretl is a package for performing statistical computations for
-+ econometrics. It consists of both a command-line client and a
-+ graphical client. It features a variety of estimators such as
-+ least-squares and maximum likelihood; several time series methods such
-+ as ARIMA and GARCH; limited dependent variables such as logit,
-+ probit and tobit; and a powerful scripting language. It can output
-+ models as LaTeX files. It also may be linked to
-+ GNU R and GNU Octave for further data analysis.
-
-id: groff_blurb
-package: groff
-blurb: Groff is a typesetting package that reads plain text and produces
-+ formatted output based on formatting commands contained within the
-+ text. It is usually the formatter of "man" documentation pages.
-
-id: grub_blurb
-package: grub
-blurb: GRUB is a multiboot bootloader. It is used for initially loading
-+ the kernel of an operating system and then transferring control to
-+ it. The kernel then goes on to load the rest of the operating system.
-+ As a multiboot bootloader, GRUB handles the presence of multiple
-+ operating systems installed on the same computer; upon booting the
-+ computer, the user is presented with a menu to select one of the
-+ installed operating systems.
-
-id: gsasl_blurb
-package: gsasl
-blurb: GNU SASL is an implementation of the Simple Authentication and
-+ Security Layer framework. On network servers such as IMAP or SMTP
-+ servers, SASL is used to handle client/server authentication. This
-+ package contains both a library and a command-line tool to access the
-+ library.
-
-id: gsegrafix_blurb
-package: gsegrafix
-blurb: GSEGrafix is an application which produces high-quality graphical
-+ plots for science and engineering. Plots are specified via simple
-+ ASCII parameter files and data files and are presented in an
-+ anti-aliased GNOME canvas. The program supports rectangular
-+ two-dimensional plots, histograms, polar-axis plots and three-dimensional
-+ plots. Plots can be printed or saved to BMP, JPEG or PNG image
-+ formats.
-
-id: gsl_blurb
-package: gsl
-blurb: The GNU Scientific Library is a library for numerical analysis in C
-+ and C++. It includes a wide range of mathematical routines, with
-+ over 1000 functions in total. Subject areas covered by the library
-+ include: differential equations, linear algebra, Fast Fourier
-+ Transforms and random numbers.
-
-id: gslip_blurb
-package: gslip
-blurb: GNU Slip is a functional extension of the capabilities provided
-+ in the C++ Standard Template Library (STL) list and queue containers,
-+ though SLIP is not a replacement for the STL containers. SLIP data
-+ cells can be used in application-specific computations, among other
-+ enhancements.
-
-id: gsrc_blurb
-package: gsrc
-blurb: GSRC supports installing the latest releases of GNU packages on
-+ an existing system. New versions are installed in a separate
-+ place so as not to interfere with the system versions. The goal is to
-+ make it easier to work with the original, upstream, GNU sources, and
-+ perhaps help with development and testing.
-
-id: gss_blurb
-package: gss
-blurb: The GNU Generic Security Service provides a free implementation of
-+ the GSS-API specification. It provides a generic application
-+ programming interface for programs to access security services.
-+ Security services present a generic, GSS interface, with which the
-+ calling application interacts via this library, freeing the
-+ application developer from needing to know about the underlying
-+ security implementation.
-
-id: gtick_blurb
-package: gtick
-blurb: GTick is a metronome application. It supports different meters, such
-+ as 2/4, 3/4, 4/4, etc. It also supports a wide range of speeds, from
-+ 10 to 1000 BPM. It provides a GTK+-based user interface and it can
-+ use both OSS and ALSA as the audio back-end.
-
-id: gtk+_blurb
-package: gtk+
-blurb: redirect gnome
-
-id: gtypist_blurb
-package: gtypist
-blurb: GNU Typist is a universal typing tutor. It can be used to learn and
-+ practice touch-typing. Several tutorials are included; in addition
-+ to tutorials for the standard QWERTY layout, there are also tutorials
-+ for the alternative layouts Dvorak and Colemak, as well as for the
-+ numpad. Tutorials are primarily in English, however some in other
-+ languages are provided.
-
-id: guile_blurb
-package: guile
-blurb: Guile is the GNU Ubiquitous Intelligent Language for Extensions, the
-+ official extension language of the GNU system. It is an
-+ implementation of the Scheme language which can be easily embedded
-+ in other applications to provide a convenient means of extending the
-+ functionality of the application without requiring the source code to
-+ be rewritten.
-
-id: guile_cv_blurb
-package: guile-cv
-blurb: Guile-CV is a Computer Vision functional programming library for the
-+ Guile Scheme language. Guile-CV is based on Vigra (Vision with Generic
-+ Algorithms). It comprises a direct binding to vigra_c (a C wrapper
-+ to a subset of the Vigra library), and a higher level API written in
-+ Guile Scheme.
-
-id: guile_dbi_blurb
-package: guile-dbi
-blurb: guile-dbi is a library for Guile that provides a convenient interface
-+ to SQL databases. Database programming with guile-dbi is generic in
-+ that the same programming interface is presented regardless of which
-+ database system is used. It currently supports MySQL, Postgres and
-+ SQLite3.
-
-id: guile_opengl_blurb
-package: guile-opengl
-blurb: Guile-OpenGL is a library for Guile that provides bindings to the
-+ OpenGL graphics API.
-
-id: guile_gnome_blurb
-package: guile-gnome
-blurb: Includes guile-clutter, guile-gnome-gstreamer,
-+ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.
-
-id: guile_ncurses_blurb
-package: guile-ncurses
-blurb: guile-ncurses provides Guile language bindings for the ncurses library.
-
-id: guile_rpc_blurb
-package: guile-rpc
-blurb: null (stale)
-
-id: guile_sdl_blurb
-package: guile-sdl
-blurb: Guile-SDL is a set of bindings to the Simple DirectMedia Layer (SDL).
-+ With them, Guile programmers can have easy access to graphics, sound
-+ and device input (keyboards, joysticks, mice, etc.).
-
-id: guix_blurb
-package: guix
-blurb: GNU Guix is a functional package manager for the GNU system, and is
-+ also a distribution thereof. It includes a virtual machine image.
-+ Besides the usual package management features, it also supports
-+ transactional upgrades and roll-backs, per-user profiles, and much more.
-+ It is based on the Nix package manager.
-
-id: gurgle_blurb
-package: gurgle
-blurb: GURGLE produces database report listings from record and field
-+ information from a file. It uses the report to produce
-+ (La)TeX-formatted output, plain ASCII text, troff, PostScript, HTML, XML,
-+ or any other ASCII-based output format. It may be used for producing
-+ large bodies of text where small parts of the text are substituted
-+ with information from the database. GURGLE supports GNUSQL,
-+ PostgreSQL, MySQL and CA-Ingres databases.
-
-id: gv_blurb
-package: gv
-blurb: GNU GV is a graphical user interface to the Ghostscript interpreter.
-+ With it, one can view and navigate through PostScript and PDF
-+ documents in X Windows.
-
-id: gvpe_blurb
-package: gvpe
-blurb: The GNU Virtual Private Ethernet creates a virtual network
-+ with multiple nodes using a variety of transport protocols. It works
-+ by creating encrypted host-to-host tunnels between multiple
-+ endpoints.
-
-id: gwl_blurb
-package: gwl
-blurb: GWL is a workflow language that extends Guix's declarative language
-+ for package management to automate execution of programs. Additionally,
-+ GWL can use Grid Engine to offload program execution.
-
-id: gxmessage_blurb
-package: gxmessage
-blurb: GNU gxmessage is a program that pops up dialog windows, which display a
-+ message to the user and waits for their action. The program then
-+ exits with an exit code corresponding to the response.
-
-id: gzip_blurb
-package: gzip
-blurb: GNU Gzip provides data compression and decompression utilities;
-+ the typical extension is ".gz". Unlike the "zip" format, it
-+ compresses a single file; as a result, it is often used in conjunction
-+ with "tar", resulting in ".tar.gz" or ".tgz", etc.
-
-id: halifax_blurb
-package: halifax
-blurb: HaliFAX supports sending and viewing faxes, including
-+ a wrapper around the "lpr" command.
-
-id: health_blurb
-package: health
-blurb: GNU Health is a free medical software system, including support
-+ for electronic medical records (EMR), a hospital information system
-+ (HIS), and health information system. It supports both Spanish and
-+ English interfaces. It has been adopted by the United Nations
-+ University for implementation and training, and several hospitals and
-+ health ministries around the world.
-
-id: hello_blurb
-package: hello
-blurb: GNU Hello prints the message "Hello, world!" and then exits. It
-+ serves as an example of standard GNU coding practices. As such, it
-+ supports command-line arguments, multiple languages, and so on.
-
-id: help2man_blurb
-package: help2man
-blurb: GNU help2man is a program that converts the output of standard "--help"
-+ and "--version" command-line arguments into a manual page
-+ automatically.
-
-id: hp2xx_blurb
-package: hp2xx
-blurb: GNU hp2xx converts vector graphics specified in the HP-GL plotter
-+ language into a variety of graphical formats, both vector- and
-+ raster-based, including EPS, PCX, IMG, and formats intended for use
-+ within TeX documents.
-
-id: html_info_blurb
-package: html-info
-blurb: null (does not exist yet)
-
-id: httptunnel_blurb
-package: httptunnel
-blurb: GNU httptunnel creates a bidirectional data path tunneled in HTTP
-+ requests. This allows users behind firewalls to send and receive
-+ data that would otherwise be blocked, such as telnet or ssh
-+ connections.
-
-id: hurd_blurb
-package: hurd
-blurb: The Hurd is the kernel for the GNU system, a replacement and
-+ augmentation of standard Unix kernels. It is a collection of
-+ protocols for system interaction (file systems, networks,
-+ authentication), and servers implementing them. Subprojects include Mach,
-+ the microkernel on which the Hurd is based, which provides a basic
-+ inter-process communication mechanism, and MIG, an interface generator
-+ for Mach.
-
-id: hyperbole_blurb
-package: hyperbole
-blurb: Hyperbole is a programmable information and hypertext system for
-+ GNU Emacs. It allows hypertext to be embedded within documents, mail
-+ messages and news articles. This permits mouse-based control of
-+ the displayed information.
-
-id: icecat_blurb
-package: icecat
-blurb: IceCat is the GNU version of the Firefox browser. It is entirely
-+ free software, which does not recommend non-free plugins and addons.
-+ It also features built-in privacy-protecting features.
-
-id: idutils_blurb
-package: idutils
-blurb: The GNU idutils package includes tools to create an index of
-+ textual tokens used in a list of file names and then to query that
-+ index. Thus, it allows the user to, for example, find all the uses of
-+ a particular function in a large programming project. In addition to
-+ handling textual tokens, it can also handle numeric constants and the
-+ contents of character strings.
-
-id: ignuit_blurb
-package: ignuit
-blurb: Ignuit is a tool for aiding in the memorization of new information
-+ based on the Leitner flashcard system. In this system, new cards are
-+ studied with decreasing frequency as they grow older, unless you
-+ encounter difficulty memorizing them, after which you encounter them
-+ more often. Cards can include embedded audio, images and
-+ mathematical formulae and a card collection can be exported to
-+ several formats.
-
-id: indent_blurb
-package: indent
-blurb: Indent is a program that makes source code easier to read by
-+ reformatting it in a consistent style. It can change the style to
-+ one of several different styles such as GNU, BSD or K&R. It has some
-+ flexibility to deal with incomplete or malformed syntax. GNU indent
-+ offers several extensions over the standard utility.
-
-id: inetutils_blurb
-package: inetutils
-blurb: Inetutils is a collection of common network programs, such as an ftp
-+ client and server, a telnet client and server, and an rsh client and
-+ server.
-
-id: inklingreader_blurb
-package: inklingreader
-blurb: GNU InklingReader is a package to support the
-+ Wacom Inkling device, including data conversion to various free formats,
-+ basic editing features, and an Inkscape plugin.
-
-id: intlfonts_blurb
-package: intlfonts
-blurb: GNU intlfonts contains free X11 fonts in the BDF and TrueType formats.
-+ They notably cover a large number of characters from different
-+ writing systems: European, Asian, Chinese, Japanese, Korean, Ethiopic
-+ and others.
-
-id: jacal_blurb
-package: jacal
-blurb: GNU JACAL is an interactive symbolic mathematics program based on
-+ Scheme. It manipulate and simplify a range of mathematical
-+ expressions such as equations, scalars, vectors, and matrices.
-
-id: java_getopt_blurb
-package: java-getopt
-blurb: java-getopt provides a Java port of the GNU getopt function from
-+ glibc. It supports parsing both long and short command-line
-+ arguments in a flexible manner, which is completely compatible with
-+ the C version.
-
-id: jtw_blurb
-package: jtw
-blurb: GNU Java Training wheels provides a less steep learning curve
-+ for learning to program in Java. The system is powered by
-+ a preprocessor that adds features to Java such as a superfor
-+ macro and a file inclusion system much like the C language's
-+ preprocessor.
-
-id: jel_blurb
-package: jel
-blurb: GNU JEL is a library that lets a program accept user-defined expressions
-+ to be entered and evaluated at runtime. In fact, the expressions are
-+ compiled by JEL to Java bytecode to avoid the performance penalty of
-+ adding interpreted expressions to an already-interpreted language.
-
-id: jwhois_blurb
-package: jwhois
-blurb: GNU jwhois is a client for the WHOIS protocol, which allows you to query
-+ the owner of a domain name. The program uses an extensible
-+ configuration file to determine the most appropriate server to query
-+ and, upon success displays the result to the user, otherwise it can
-+ optionally redirect the query to another server.
-
-id: kawa_blurb
-package: kawa
-blurb: GNU Kawa is an implementation of the Scheme programming language that is
-+ built on top of the Java platform. It is thus conveniently
-+ integrated with Java and benefits from this by having a compiler,
-+ optional static typing, and so on. Kawa also serves as a framework for
-+ implementing other programming languages on the Java platform.
-+ Included in Kawa is qexo, a partial implementation of XQuery in Java.
-
-id: kopi_blurb
-package: kopi
-blurb: null (stale)
-
-id: leg_blurb
-package: leg
-blurb: GNU Leg is a set of libraries for game engines and game development.
-+ In addition to the libraries, it also includes resource editors
-+ designed to make game creation easier. The package is designed to be
-+ generic and modular, supporting many different styles of games.
-
-id: less_blurb
-package: less
-blurb: GNU less is a pager, a program that allows you to view large amounts
-+ of text in page-sized chunks. Unlike traditional pagers, it allows
-+ both backwards and forwards movement through the document. It also
-+ does not have to read the entire input file before starting, so it
-+ starts faster than most text editors.
-
-id: libc_blurb
-package: libc
-blurb: The GNU C Library is the standard C library of the GNU system. It
-+ defines the system calls and other basic functionality necessary to
-+ write programs in the C language. It handles low-level functionality
-+ that communicates with the kernel, such as process and file
-+ management, as well as higher-level functionality such as string
-+ manipulation or command-line argument handling.
-
-id: libcdio_blurb
-package: libcdio
-blurb: The GNU Compact Disc Input and Control Library (libcdio) is a library
-+ for CD-ROM and CD image file access. It allows the developer to add
-+ CD access to an application without having to worry about the OS- and
-+ device-dependent properties of CD-ROM or the specific details of CD
-+ image formats. It includes pycdio, a Python interface to libcdio, and
-+ libcdio-paranoia, a library providing jitter-free and
-+ error-free audio extraction from CDs.
-
-id: libdbh_blurb
-package: libdbh
-blurb: libdbh provides disk-based hash tables, providing quick lookup of
-+ key-value pairs. While its usage is similar in general to that of
-+ (G)DBM, it has a different design supporting advanced, atypical usage.
-
-id: liberty_eiffel_blurb
-package: liberty-eiffel
-blurb: Liberty Eiffel project is the GNU Eiffel Compiler. Eiffel is an
-+ advanced object-oriented programming language that emphasizes the
-+ design and construction of high-quality and reusable software. Liberty
-+ Eiffel is a complete, small and fast Eiffel compiler, including an
-+ Eiffel to C compiler, documentation tools, a pretty printer, a
-+ debugger and various other tools. It also includes a large library of
-+ classes as well as a comprehensive set of wrappers/bindings for
-+ widespread Free-Software libraries.
-
-id: libextractor_blurb
-package: libextractor
-blurb: GNU libextractor is a library for extracting metadata from files. It
-+ supports a very large number of file formats, including audio files,
-+ document files, and archive files. Each file format is implemented
-+ as a plugin, so new formats can be added easily. The package also
-+ contains a command-line tool to extract metadata from a file and
-+ print the results.
-
-id: libffcall_blurb
-package: libffcall
-blurb: null (stale)
-
-id: libgcrypt_blurb
-package: libgcrypt
-blurb: Libgcrypt is a general-purpose cryptographic library. It provides
-+ the standard cryptographic building blocks such as symmetric ciphers,
-+ hash algorithms, public key algorithms, large integer functions and
-+ random number generation.
-
-id: libiconv_blurb
-package: libiconv
-blurb: libiconv provides an implementation of the iconv function for systems
-+ that lack it. iconv is used to convert between character encodings
-+ in a program. It supports a wide variety of different encodings.
-
-id: libidn_blurb
-package: libidn
-blurb: libidn is a library implementing of the Stringprep, Punycode
-+ and IDNA specifications. These are used to encode and decode
-+ internationalized domain names. It includes native C, C# and Java
-+ libraries.
-
-id: libjit_blurb
-package: libjit
-blurb: null (stale)
-
-id: libmatheval_blurb
-package: libmatheval
-blurb: GNU libmatheval is a library to parse and evaluate symbolic
-+ expressions input by the user as text. It can be loaded from both C
-+ and Fortran. The interpreter is flexible, supporting any number of
-+ variables of arbitrary names, decimal and symbolic constants, basic
-+ unary and binary operators, and elementary mathematical functions.
-+ It can also compute symbolic derivatives and output expressions to
-+ strings.
-
-id: libmicrohttpd_blurb
-package: libmicrohttpd
-blurb: GNU libmicrohttpd is a small, embeddable HTTP server implemented as a C
-+ library. It makes it easy to run an HTTP server as part of another
-+ application. The library is fully HTTP 1.1 compliant. It can listen
-+ on multiple ports, supports four different threading models, and
-+ supports IPv6. It also features security features such as basic and
-+ digest authentication and support for SSL3 and TLS.
-
-id: libredwg_blurb
-package: libredwg
-blurb: null (stale)
-
-id: librejs_blurb
-package: librejs
-blurb: LibreJS is an add-on for GNU Icecat and other Firefox-based browsers.
-+ It detects non-trivial and non-free JavaScript code from being loaded
-+ without your consent when you browse the web. JavaScript code that
-+ is free or trivial is allowed to be loaded.
-
-id: libsigsegv_blurb
-package: libsigsegv
-blurb: GNU libsigsegv is a library to handle page faults, which occur when a
-+ program tries to access an unavailable region of memory, in user
-+ mode. By catching and handling page faults, the program can
-+ implement pageable virtual memory, stack overflow handlers, and so
-+ on.
-
-id: libtasn1_blurb
-package: libtasn1
-blurb: GNU libtasn1 is a library implementing the ASN.1 notation. It is used
-+ for transmitting machine-neutral encodings of data objects in
-+ computer networking, allowing for formal validation of data according
-+ to some specifications.
-
-id: libtool_blurb
-package: libtool
-blurb: GNU Libtool helps in the creation and use of shared libraries, by
-+ presenting a single consistent, portable interface that hides the
-+ usual complexity of working with shared libraries across platforms.
-
-id: libunistring_blurb
-package: libunistring
-blurb: GNU libunistring is a library providing functions to manipulate Unicode
-+ strings and for manipulating C strings according to the Unicode
-+ standard.
-
-id: libxmi_blurb
-package: libxmi
-blurb: GNU libxmi is a library for rasterizing 2D vector graphics for C and
C++.
-+ It supports drawing 2D primitives into a user-supplied matrix of
-+ pixels. It also supports the specification of sophisticated line
-+ styles such as multi-colored dashed patterns. Filling and texturing
-+ polygons is also supported.
-
-id: lightning_blurb
-package: lightning
-blurb: GNU Lightning is a library that generates assembly language code at
-+ run-time. Thus, it is useful in creating Just-In-Time compilers. It
-+ abstracts over the target CPU by exposing a standardized RISC
-+ instruction set to the clients.
-
-id: lilypond_blurb
-package: lilypond
-blurb: GNU LilyPond is a music typesetter, which produces high-quality sheet
-+ music. Music is input in a text file containing control sequences
-+ which are interpreted by LilyPond to produce the final document. It
-+ is extendable with Guile.
-
-id: lims_blurb
-package: lims
-blurb: GNU LIMS is a laboratory information management system. It is
-+ used for managing a scientific laboratory of any field. It consists
-+ of a set of modules for the Tryton enterprise management framework,
-+ so it is flexible to the specific needs of the laboratory. For
-+ example, the system includes modules for sample management, lab
-+ equipment integration, accounting and stock management.
-
-id: linux_libre_blurb
-package: linux-libre
-blurb: GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.
-+ It has been modified to remove all non-free binary blobs.
-
-id: liquidwar6_blurb
-package: liquidwar6
-blurb: GNU Liquid War 6 is a fast-paced, unique action game. Each player
-+ controls a blob of liquid with the goal of conquering the entire map.
-+ It has 13 levels by default and over 100 more with a bonus pack; new
-+ levels can be easily created using simple image files.
-
-id: lispintro_blurb
-package: lispintro
-blurb: redirect emacs
-
-id: lrzsz_blurb
-package: lrzsz
-blurb: GNU lrzsz is a communication package supporting the XMODEM, YMODEM and
-+ ZMODEM file transfer protocols.
-
-id: lsh_blurb
-package: lsh
-blurb: GNU lsh is a free implementation of the SSH version 2 protocol. It is
-+ used to create a secure line of communication between two computers,
-+ providing shell access to the server system from the client. It
-+ provides both the server daemon and the client application, as well
-+ as tools for manipulating key files.
-
-id: m4_blurb
-package: m4
-blurb: GNU M4 is an implementation of the M4 macro language, which features
-+ some extensions over other implementations, some of which are
-+ required by GNU Autoconf. It is used as a macro processor, which
-+ means it processes text, expanding macros as it encounters them. It
-+ also has some built-in functions, for example to run shell commands
-+ or to do arithmetic.
-
-id: macchanger_blurb
-package: macchanger
-blurb: GNU MAC Changer is a utility for viewing and changing MAC addresses
-+ of networking devices. New addresses may be set explicitly or
-+ randomly. They can include MAC addresses of the same or other
-+ hardware vendors or, more generally, MAC addresses of the same
-+ category of hardware.
-
-id: mailman_blurb
-package: mailman
-blurb: GNU Mailman is software for managing email discussion and mailing
-+ lists. Both users and administrators generally perform their actions
-+ in a web interface, although email and command-line interfaces are
-+ also provided. The system features built-in archiving, automatic
-+ bounce processing, content filtering, digest delivery, and more.
-
-id: mailutils_blurb
-package: mailutils
-blurb: GNU Mailutils is a collection of programs for managing, viewing
-+ and processing electronic mail. It contains both utilities and server
-+ daemons and all operate in a protocol-agnostic way. The underlying
-+ libraries are also available, simplifying the addition of mail
-+ capabilities to new software.
-
-id: make_blurb
-package: make
-blurb: Make is a program that is used to control the production of
-+ executables or other files from their source files. The process is
-+ controlled from a Makefile, in which the developer specifies how
-+ each file is generated from its source. It has powerful dependency
-+ resolution and the ability to determine when files have to be
-+ regenerated after their sources change. GNU make offers many powerful
-+ extensions over the standard utility.
-
-id: marst_blurb
-package: marst
-blurb: GNU MARST is an Algol-to-C translator. The package consists of the
-+ translator itself, a library that contains the necessary Algol 60
-+ procedures, and a converter that converts existing Algol 60 programs
-+ from other representations to the MARST representation.
-
-id: maverik_blurb
-package: maverik
-blurb: GNU MAVERIK is a development toolkit that supports 3D virtual
-+ environments and interaction with those environments. It sits on top
-+ of a low-level rendering engine that uses OpenGL or Mesa, and
-+ provides mechanisms to render different kinds of objects, to manage
-+ environments and to provide support for 3D interaction.
-
-id: mc_blurb
-package: mc
-blurb: GNU Midnight Commander is a command-line file manager laid out in a
-+ common two-pane format. In addition to standard file management
-+ tasks such as copying and moving, Midnight Commander also supports
-+ viewing the contents of RPM package files and other archives and
-+ managing files on other computers via FTP or FISH. It also includes
-+ a powerful text editor for opening text files.
-
-id: mcron_blurb
-package: mcron
-blurb: GNU Mcron is a complete replacement for Vixie cron. It is used to run
-+ tasks on a schedule, such as every hour or every Monday. Mcron is
-+ written in Guile, so its configuration can be written in Scheme;
-+ the original cron format is also supported.
-
-id: mcsim_blurb
-package: mcsim
-blurb: GNU MCSim is a package to perform simulations. It supports statistical
-+ or deterministic simulation models via Monte Carlo stochastic
-+ simulations or dynamic, ODE-based simulations. It also can do
-+ Bayesian inference through Markov Chain Monte Carlo simulations.
-
-id: mempool_blurb
-package: mempool
-blurb: The MemPool library is a stand-alone memory allocation library.
-+ It is a block allocator library that uses a single fixed size memory
-+ pool to allocate variable sized memory blocks, and exports functions
-+ similar to malloc, realloc and free.
-+ It is intended to either simulate low memory targets on GNU/Linux and
-+ other systems, or to completely replace the system memory management.
-
-id: mdk_blurb
-package: mdk
-blurb: GNU MDK is the Mix Development Kit, an emulation of the pedagogical
-+ computer MIX and its assembly language MIXAL. MIX has a virtual CPU
-+ with standard features such as registers, memory cells, an overflow
-+ toggle, comparison flags, input-output devices, and a set of binary
-+ instructions. The package includes a compiler, a virtual machine, a
-+ GUI for the virtual machine, and more.
-
-id: mediagoblin_blurb
-package: mediagoblin
-blurb: GNU MediaGoblin is a free media publishing platform. It runs in a
-+ federalized manner, freeing the user from centralized web services.
-+ It supports pictures, videos and audio.
-
-id: melting_blurb
-package: melting
-blurb: GNU MELTING computes the enthalpy, entropy and melting temperature of
-+ helix-coil transitions of a nucleic acid duplex.
-
-id: mes_blurb
-package: mes
-blurb: GNU Mes aims to help create full source bootstrapping for GNU/Linux
-+ systems such as GuixSD. It features a mutual self-hosting Scheme
-+ interpreter written in a simple C, and a Nyacc-based C compiler written in
-+ GNU Guile-compatible Scheme. The Mes C library supports bootstrapping gcc.
-
-id: metaexchange_blurb
-package: metaexchange
-blurb: null (stale)
-
-id: metahtml_blurb
-package: metahtml
-blurb: GNU MetaHTML is a server-side programming language designed for the
-+ World Wide Web. It has a syntax that is similar to HTML and Lisp.
-+ It provides a large function library, including support for sockets,
-+ image creation and connections to other programs.
-
-id: metalogic_inference_blurb
-package: metalogic-inference
-blurb: null (newpkg/20170419)
-
-id: mifluz_blurb
-package: mifluz
-blurb: GNU mifluz is a C++ library to store a full-text inverted index. It
-+ stores the occurrences of words in a set of texts in such a way that
-+ they can later be searched. Upon searching for a word, the index
-+ returns the list of documents which contain that word.
-
-id: mig_blurb
-package: mig
-blurb: redirect hurd
-
-id: miscfiles_blurb
-package: miscfiles
-blurb: GNU Miscfiles is a collection of common data files. They
-+ include, for example, country abbreviations, names and capital cities;
-+ currency abbreviations and names; a Best Current Practices index; a map
-+ of the ASCII character set; a list of three-letter airport codes; and
-+ an English word list.
-
-id: mit_scheme_blurb
-package: mit-scheme
-blurb: GNU/MIT Scheme is an implementation of the Scheme programming
-+ language. It provides an interpreter, a compiler and a debugger. It
-+ also features an integrated Emacs-like editor and a large runtime
-+ library.
-
-id: moe_blurb
-package: moe
-blurb: GNU Moe is a powerful-but-simple-to-use text editor. It works in a
-+ modeless manner, and features an intuitive set of key-bindings that
-+ assign a degree of severity to each key; for example, key
-+ combinations with the Alt key are for harmless commands like cursor
-+ movements while combinations with the Control key are for commands
-+ that will modify the text. Moe features multiple windows, unlimited
-+ undo/redo, unlimited line length, global search and replace, and
-+ more.
-
-id: motti_blurb
-package: motti
-blurb: GNU Motti is a simple multiplayer strategy game played in a terminal.
-+ The objective of the game is to conquer enemy capitals by occupying and
-+ encircling territory.
-
-id: mpc_blurb
-package: mpc
-blurb: GNU MPC is a C library for performing arithmetic on complex numbers.
-+ It supports arbitrarily high precision and it correctly rounds the
-+ results.
-
-id: mpfr_blurb
-package: mpfr
-blurb: GNU MPFR is a C library for performing multiple-precision,
-+ floating-point computations with correct rounding.
-
-id: mpria_blurb
-package: mpria
-blurb: GNU MPRIA is a C library for performing rational arithmetic
-+ computations with arbitrarily high precision. It builds on
-+ the GMP library.
-
-id: mtools_blurb
-package: mtools
-blurb: GNU Mtools is a set of utilities for accessing MS-DOS disks from
-+ a GNU or Unix system. It supports long file names and multiple disk
-+ formats. It also supports some FAT-specific features such as volume
-+ labels and FAT-specific file attributes.
-
-id: nana_blurb
-package: nana
-blurb: GNU Nana is a framework for adding assertion checking, logging and
-+ performance measurement to C and C++ programs. Operations can either
-+ be implemented directly in C or by generating debugger commands.
-+ Checking and logging features can be enabled or disabled at compile
-+ or runtime.
-
-id: nano_blurb
-package: nano
-blurb: GNU nano is a small and simple text editor for use in a terminal.
-+ Besides basic editing, it supports: undo/redo, syntax highlighting,
-+ spell checking, justifying, auto-indentation, bracket matching,
-+ interactive search-and-replace (with regular expressions), and the
-+ editing of multiple files.
-
-id: nano_archimedes_blurb
-package: nano-archimedes
-blurb: nano-archimedes is a free package for the simulation of quantum
-+ systems. It is based on the Wigner equation, a formulation of quantum
-+ mechanics in terms of a phase-space which is mathematically equivalent
-+ to the Schroedinger equation. nano-archimedes implements the Wigner
-+ Monte Carlo method. The code can be easily extended to density
-+ functional theory (DFT) and time-dependent ab-initio simulations.
-
-id: ncurses_blurb
-package: ncurses
-blurb: GNU Ncurses is a library which provides capabilities to write text to a
-+ terminal in a terminal-independent manner. It supports pads and
-+ color as well as multiple highlights and forms characters. It is
-+ typically used to implement user interfaces for command-line
-+ applications. The accompanying ncursesw library provides wide character
-+ support.
-
-id: nettle_blurb
-package: nettle
-blurb: GNU Nettle is a low-level cryptographic library. It is designed to fit
-+ in easily in almost any context. It can be easily included in
-+ cryptographic toolkits for object-oriented languages or in
-+ applications themselves.
-
-id: network_blurb
-package: network
-blurb: null (container for network work)
-
-id: ocrad_blurb
-package: ocrad
-blurb: GNU Ocrad is an optical character recognition program based on a feature
-+ extraction method. It can read images in PBM, PGM or PPM formats and
-+ it produces text in 8-bit or UTF-8 formats.
-
-id: octave_blurb
-package: octave
-blurb: GNU Octave is a high-level interpreted language that is specialized
-+ for numerical computations. It can be used for both linear and
-+ non-linear applications and it provides great support for visualizing
-+ results. Work may be performed both at the interactive command-line
-+ as well as via script files.
-
-id: oleo_blurb
-package: oleo
-blurb: GNU Oleo is a spreadsheet program. It offers both a terminal interface
-+ and a LessTif-based graphical user interface. It features familiar,
-+ Emacs-like keybindings. It supports many standard spreadsheet
-+ features such as macros and functions.
-
-id: oo_browser_blurb
-package: oo-browser
-blurb: null (newpkg/20160810)
-
-id: orgadoc_blurb
-package: orgadoc
-blurb: GNU OrgaDoc is a system for easily maintaining a pool of documents
-+ between computers. Documents are synchronized by rsync or unison; no
-+ database or HTTP server is required.
-
-id: osip_blurb
-package: osip
-blurb: GNU oSIP is an implementation of the SIP protocol. It is used to
provide
-+ multimedia and telecom software developers with an interface to
-+ initiate and control SIP sessions.
-
-id: panorama_blurb
-package: panorama
-blurb: GNU Panorama is a framework for producing 3D graphics. It can perform
-+ various effects, such as focal blur, arbitrary light sources, bump
-+ mapping, and several lighting effects.
-
-id: parallel_blurb
-package: parallel
-blurb: GNU Parallel is a tool for executing shell jobs in parallel using one
-+ or more computers. Jobs can consist of single commands or of scripts
-+ and they are executed on lists of files, hosts, users or other items.
-
-id: parted_blurb
-package: parted
-blurb: GNU Parted is a package for creating and manipulating disk
-+ partition tables. It includes a library and command-line utility.
-
-id: pascal_blurb
-package: pascal
-blurb: null (stale)
-
-id: patch_blurb
-package: patch
-blurb: Patch is a program that applies changes to files based on differences
-+ laid out as by the program "diff". The changes may be applied to one or
-+ more files depending on the contents of the diff file. It accepts
-+ several different diff formats. It may also be used to revert
-+ previously applied differences.
-
-id: paxutils_blurb
-package: paxutils
-blurb: GNU paxutils is a suite of archive utilities. It contains versions
-+ of the cpio, tar and pax archivers.
-
-id: pcb_blurb
-package: pcb
-blurb: GNU PCB is an interactive tool for editing printed circuit board
layouts.
-+ It features a rats-nest implementation, schematic/netlist import, and
-+ design rule checking. It also includes an autorouter and a trace
-+ optimizer; and it can produce photorealistic and design review
-+ images.
-
-id: pdf_blurb
-package: pdf
-blurb: null (stale)
-
-id: pem_blurb
-package: pem
-blurb: GNU Pem is a simple tool for tracking personal income and
-+ expenses. It operates from the command line and it stores its data
-+ in a basic text format in your home directory. It can easily print
-+ reports of your spending on different expenses via a basic search
-+ feature.
-
-id: pexec_blurb
-package: pexec
-blurb: GNU pexec is a program for executing commands or shell scripts in
-+ parallel on one or many computers. As it works, execution parameters
-+ such as the environment variables or standard input, output and
-+ error can be varied.
-
-id: pgccfd_blurb
-package: pgccfd
-blurb: null (stale)
-
-id: home_blurb
-package: phantom_home
-blurb: null (stale)
-
-id: pies_blurb
-package: pies
-blurb: GNU pies is a program that supervises the invocation and execution of
-+ other programs. It reads the list of programs to be started from its
-+ configuration file, executes them, and then monitors their status,
-+ re-executing them as necessary.
-
-id: pipo_blurb
-package: pipo
-blurb: null (stale)
-
-id: plotutils_blurb
-package: plotutils
-blurb: GNU Plotutils is a package for plotting and working with
-+ 2D graphics. It includes a library, "libplot", for C and C++ for
-+ exporting 2D vector graphics in many file formats. It also has
-+ support for 2D vector graphics animations. The package also contains
-+ command-line programs for plotting scientific data.
-
-id: polyxmass_blurb
-package: polyxmass
-blurb: null (stale)
-
-id: powerguru_blurb
-package: powerguru
-blurb: null (stale)
-
-id: proxyknife_blurb
-package: proxyknife
-blurb: GNU proxyknife is a tool to validate free proxies from behind a
-+ firewall. The validation process is fully customizable to meet your
-+ needs.
-
-id: pspp_blurb
-package: pspp
-blurb: GNU PSPP is a statistical analysis program. It can perform descriptive
-+ statistics, T-tests, linear regression and non-parametric tests. It
-+ features both a graphical interface as well as command-line input.
-+ PSPP is designed to interoperate with Gnumeric, LibreOffice and
-+ OpenOffice. Data can be imported from spreadsheets, text files and
-+ database sources and it can be output in text, PostScript, PDF or
-+ HTML.
-
-id: psychosynth_blurb
-package: psychosynth
-blurb: GNU Psychosynth is an interactive, modular soft-synth. It emulates a 3D
-+ surface on which modules are placed and manipulated, generating and
-+ altering music. Psychosynth consists of a C++ library, a 3D
-+ interface and a command-line interface.
-
-id: pythonwebkit_blurb
-package: pythonwebkit
-blurb: null (stale)
-
-id: pth_blurb
-package: pth
-blurb: GNU Pth is a portable library providing non-preemptive, priority-based
-+ scheduling for multiple execution threads. Each thread has its own
-+ program-counter, run-time stack, signal mask and errno variable.
-+ Threads are scheduled in a cooperative way, rather than in the
-+ standard preemptive way, such that they are managed according to
-+ priority and events. However, Pth also features emulation of
-+ POSIX.1c threads ("pthreads") for backwards compatibility.
-
-id: pyconfigure_blurb
-package: pyconfigure
-blurb: GNU pyconfigure provides template files for easily implementing
-+ standards-compliant configure scripts and Makefiles for Python-based
-+ packages. It is designed to work alongside existing Python setup
-+ scripts, making it easy to integrate into existing projects. Powerful
-+ and flexible Autoconf macros are available, allowing you to easily
-+ make adjustments to the installation procedure based on the
-+ capabilities of the target computer.
-
-id: qexo_blurb
-package: qexo
-blurb: redirect kawa
-
-id: quickthreads_blurb
-package: quickthreads
-blurb: null (stale)
-
-id: r_blurb
-package: r
-blurb: R is a language and environment for statistical computing and
-+ graphics. It provides a variety of statistical techniques, such as
-+ linear and nonlinear modeling, classical statistical tests,
-+ time-series analysis, classification and clustering. It also provides
-+ robust support for producing publication-quality data plots. A large
-+ amount of 3rd-party packages are available, greatly increasing its
-+ breadth and scope.
-
-id: radius_blurb
-package: radius
-blurb: Radius is a server for remote user authentication and accounting.
-+ It is generally useful for networks that require a centralized
-+ authentication and accounting services for its workstations.
-+ Authentication can be performed in a variety of ways, such as via
-+ "/etc/passwd" or credentials stored in an SQL database.
-
-id: rcs_blurb
-package: rcs
-blurb: RCS is the original Revision Control System. It works on a
-+ file-by-file basis, in contrast to subsequent version control systems
-+ such as CVS, Subversion, and Git. This can make it suitable for
-+ system administration files, for example, which are often inherently
-+ local to one machine.
-
-id: readline_blurb
-package: readline
-blurb: The GNU readline library allows users to edit command lines as they
-+ are typed in. It can maintain a searchable history of previously
-+ entered commands, letting you easily recall, edit and re-enter past
-+ commands. It features both Emacs-like and vi-like keybindings,
-+ making its usage comfortable for anyone.
-
-id: recutils_blurb
-package: recutils
-blurb: GNU Recutils is a set of tools and libraries for creating and
-+ manipulating text-based, human-editable databases. Despite being
-+ text-based, databases created with Recutils carry all of the expected
-+ features such as unique fields, primary keys, time stamps and more.
-+ Many different field types are supported, as is encryption.
-
-id: reftex_blurb
-package: reftex
-blurb: GNU RefTex is a package for implementing labels, references, citations
-+ and indices in LaTeX documents. It works by wrapping around four
-+ LaTeX macros: label, ref, cite and index. It automates the common
-+ tasks that normally are required when using these macros.
-
-id: jami_blurb
-package: jami
-blurb: Jami is a program for universal communication which respects freedoms
-+ and privacy of its users. Jami uses distributed hash tables for
-+ establishing communication. This avoids keeping centralized registries
-+ of users and storing personal data.
-
-id: remotecontrol_blurb
-package: remotecontrol
-blurb: GNU Remotecontrol is a web application for managing IP-enabled HVAC
-+ thermostats and other building automation devices. The application
-+ can read data from and write data to multiple such devices.
-
-id: rottlog_blurb
-package: rottlog
-blurb: GNU Rot[t]log is a program for managing log files. It is used to
-+ automatically rotate out log files when they have reached a given
-+ size or according to a given schedule. It can also be used to
-+ automatically compress and archive such logs. Rot[t]log will mail
-+ reports of its activity to the system administrator.
-
-id: rpge_blurb
-package: rpge
-blurb: The GNU Role Playing Game Engine provides an engine for
-+ creating two-dimensional, graphical role-playing games, providing,
-+ for example, a sprite-tiling grid, sprite rendering, and event
-+ handling.
-
-id: rush_blurb
-package: rush
-blurb: GNU Rush is a restricted user shell, for systems on which users
-+ are to be provided with only limited functionality or resources.
-+ Administrators set user rights via a configuration file which can be
-+ used to limit, for example, the commands that can be executed, CPU
-+ time, or virtual memory usage.
-
-id: sather_blurb
-package: sather
-blurb: GNU Sather is an object-oriented programming language similar to Eiffel.
-+ It is designed to be simple, efficient, safe, and non-proprietary.
-+ It features garbage collection, statically-checked strong typing,
-+ multiple inheritance, parameterized classes and more. This package
-+ consists of a compiler, a class library, the language specification
-+ and programming manual, and a browser for displaying sources and
-+ directed graphs of class inheritance.
-
-id: scm_blurb
-package: scm
-blurb: GNU SCM is an implementation of Scheme. This implementation includes
-+ Hobbit, a Scheme-to-C compiler, which can generate C files whose
-+ binaries can be dynamically or statically linked with a SCM
-+ executable.
-
-id: screen_blurb
-package: screen
-blurb: GNU Screen is a terminal window manager that multiplexes a single
-+ terminal between several processes. The virtual terminals each
-+ provide features such as a scroll-back buffer and a copy-and-paste
-+ mechanism. Screen then manages the different virtual terminals,
-+ allowing you to easily switch between them, to detach them from the
-+ current session, or even splitting the view to show two terminals at
-+ once.
-
-id: sed_blurb
-package: sed
-blurb: Sed is a non-interactive, text stream editor. It receives a text
-+ input from a file or from standard input and it then applies a series
-+ of text editing commands to the stream and prints its output to
-+ standard output. It is often used for substituting text patterns in
-+ a stream. The GNU implementation offers several extensions over the
-+ standard utility.
-
-id: serveez_blurb
-package: serveez
-blurb: GNU Serveez is a server framework providing the routines necessary to
-+ easily implement IP-based servers in your application. It
-+ demonstrates aspects of network programming in a portable manner,
-+ making it convenient for both simplifying the process of adding a
-+ server to your application or for learning about how network services
-+ work. Several example servers are provided already, such as an HTTP
-+ server and an IRC server.
-
-id: sharutils_blurb
-package: sharutils
-blurb: GNU sharutils is a package for creating and manipulating shell
-+ archives that can be readily emailed. A shell archive is a file
-+ that can be processed by a Bourne-type shell to unpack the original
-+ collection of files. This package is mostly for compatibility and
-+ historical interest.
-
-id: shepherd_blurb
-package: shepherd
-blurb: The GNU Shepherd is a daemon-managing daemon, meaning that it
-+ supervises the execution of system services, replacing similar
-+ functionality found in typical init systems. It provides
-+ dependency-handling through a convenient interface and is based on
-+ GNU Guile.
-
-id: shishi_blurb
-package: shishi
-blurb: GNU Shishi is a free implementation of the Kerberos 5 network security
-+ system. It is used to allow non-secure network nodes to communicate
-+ in a secure manner through client-server mutual authentication via
-+ tickets.
-
-id: shmm_blurb
-package: shmm
-blurb: GNU SHMM is a shared memory manager. It can read or write to shared
-+ memory. It also supports other commands such as locking or unlocking
-+ a block of shared memory identified by key and size.
-
-id: shtool_blurb
-package: shtool
-blurb: GNU shtool is a multipurpose shell tool. It can perform the
-+ functions of many different commands, in order to provide a single
-+ tool to distribute with a source distribution in order to ensure
-+ portability of shell scripts. For example, shtool can perform the
-+ jobs of the common commands "install", "mkdir" or "echo" on systems
-+ that lack them.
-
-id: sipwitch_blurb
-package: sipwitch
-blurb: GNU SIP Witch is a peer-to-peer Voice-over-IP server that uses the
-+ SIP protocol. Calls can be made from behind NAT firewalls and
-+ without the need for a service provider. Its peer-to-peer design
-+ ensures that there is no central point for media intercept or capture
-+ and thus it can be used to construct a secure telephone system that
-+ operates over the public internet.
-
-id: slib_blurb
-package: slib
-blurb: GNU SLIB is a portable common library for the Scheme programming
-+ language. It supports a large variety of different Scheme
-+ implementations, offering them a framework for using packages of
-+ Scheme procedures and syntax.
-
-id: smalltalk_blurb
-package: smalltalk
-blurb: GNU Smalltalk is a free implementation of the Smalltalk language. It
-+ implements the ANSI standard for the language and also includes extra
-+ classes such as ones for networking and GUI programming.
-
-id: social_blurb
-package: social
-blurb: null (stale)
-
-id: solfege_blurb
-package: solfege
-blurb: GNU Solfege is a program for practicing musical ear-training. With it,
-+ you can practice your recognition of various musical intervals and
-+ chords. It features a statistics overview so you can monitor your
-+ progress across several sessions. Solfege is also designed to be
-+ extensible so you can easily write your own lessons.
-
-id: spacechart_blurb
-package: spacechart
-blurb: GNU SpaceChart lets you view how the stars are distributed in
-+ three-dimensional space. It allows you, for example, to determine
-+ the distances between stars, to view them from any point of view, or
-+ to filter your view by spectral class and luminosity.
-
-id: speex_blurb
-package: speex
-blurb: GNU Speex is a patent-free audio compression codec specially
-+ designed for speech. It is well-adapted to internet applications,
-+ such as VoIP. It features compression of different bands in the same
-+ bitstream, intensity stereo encoding, and voice activity detection.
-
-id: spell_blurb
-package: spell
-blurb: Spell is a command-line spell-checking program. It reads through a
-+ text input and prints each misspelled word on a line of its own. It
-+ is implemented as a wrapper for GNU aspell or ispell.
-
-id: sqltutor_blurb
-package: sqltutor
-blurb: GNU Sqltutor is a web-based, interactive SQL tutorial. It features
-+ multiple tutorials available in different languages. The tutorials
-+ present a series of questions in a dialog and, when complete, they
-+ display a final evaluation including correct answers for wrong
-+ solutions.
-
-id: ssw_blurb
-package: ssw
-blurb: A Gtk+ widget providing a 2 dimensional array to view and manipulate
-+ tabular data similar to that provided by popular spread sheet programs.
-+ The design follows the model-view-controller paradigm and is O(1) in both
-+ time and space, providing very fast and efficient operation even on very
-+ large data. Features such as cut and paste, drag and drop etc are
-+ included.
-
-id: src_highlite_blurb
-package: src-highlite
-blurb: GNU source-highlight reads in a source code file and produces an output
-+ file in which the keywords are highlighted in different colors to
-+ designate their syntactic role. It supports over 150 different
-+ languages and it can output to 8 different formats, including HTML,
-+ LaTeX and ODF. It can also output to ANSI color escape sequences,
-+ so that highlighted source code can be seen in a terminal.
-
-id: stalkerfs_blurb
-package: stalkerfs
-blurb: null (stale)
-
-id: stow_blurb
-package: stow
-blurb: GNU Stow is a symlink manager. It generates symlinks to directories of
-+ data and makes them appear to be merged into the same directory. It
-+ is typically used for managing software packages installed from source,
-+ by letting you install them apart in distinct directories and then
-+ create symlinks to the files in a common directory such as
-+ /usr/local.
-
-id: stump_blurb
-package: stump
-blurb: GNU STUMP is a robomoderator program for USENET newsgroups and mailing
-+ lists, featuring web-based moderation. It supports group moderation
-+ via multiple human moderators. It can also automatically reject
-+ non-conforming messages without human intervention. It includes a web
-+ interface.
-
-id: superopt_blurb
-package: superopt
-blurb: GNU Superopt is a function sequence generator for superoptimization. It
-+ uses an exhaustive generate-and-test approach to find the shortest
-+ instruction sequence for a given function.
-
-id: swbis_blurb
-package: swbis
-blurb: Swbis is a software administration system specified by POSIX. It
-+ features network-transparent management of software packages for
-+ system administrators. For example, entire file system directories
-+ can be copied host-to-host across a network in a transparent manner.
-+ The package also features advanced tarball creation methods and
-+ integrity checking mechanisms.
-
-id: sysutils_blurb
-package: sysutils
-blurb: null (stale)
-
-id: taler_blurb
-package: taler
-blurb: null (newpkg/20150206)
-
-id: talkfilters_blurb
-package: talkfilters
-blurb: The GNU Talk Filters are programs that convert English text into
-+ stereotyped or otherwise humorous dialects. The filters are provided
-+ as a C library, so they can easily be integrated into other programs.
-
-id: tar_blurb
-package: tar
-blurb: Tar provides the ability to create tar archives, as well as the
-+ ability to extract, update or list files in an existing archive. It
-+ is useful for combining many files into one larger file, while
-+ maintaining directory structure and file information such as
-+ permissions and creation/modification dates. GNU tar offers many
-+ extensions over the standard utility.
-
-id: termcap_blurb
-package: termcap
-blurb: GNU termcap is a library and a database that are used to enable the use
-+ of display terminals in a terminal-independent manner. The database
-+ describes the capabilities of many different display terminals. The
-+ library can then adapt generalized instructions given by a program to
-+ the specific capabilities of the display terminal as found in the
-+ database.
-
-id: termutils_blurb
-package: termutils
-blurb: The GNU Termutils package contains two programs, "tput" and
-+ "tabs". "tput" is used in shell scripts to manipulate the terminal
-+ display, for example by clearing it or moving the cursor to a specific
-+ point, centering text or underlining text. "tabs" is used to specify
-+ and set hardware tab stops on terminals that support it.
-
-id: teseq_blurb
-package: teseq
-blurb: GNU Teseq is a program that analyzes files that contain control
-+ sequences. It converts the sequences that it encounters into a
-+ human-readable description of what actions those sequences perform.
-+ It can also translate its output back into machine-readable control
-+ sequences.
-
-id: teximpatient_blurb
-package: teximpatient
-blurb: TeX for the Impatient is a ~350 page book on TeX, plain TeX and
-+ Eplain, written by Paul Abrahams, Kathryn Hargreaves and Karl Berry.
-
-id: texinfo_blurb
-package: texinfo
-blurb: Texinfo is the official documentation format of the GNU project. It
-+ uses a single source file using explicit commands to
-+ produce a final document in any of several supported output formats,
-+ such as HTML or PDF. This package includes both the tools necessary
-+ to produce Info documents from their source and the
-+ command-line Info reader. The emphasis of the language is on
-+ expressing the content semantically, avoiding physical markup commands.
-
-id: texmacs_blurb
-package: texmacs
-blurb: GNU TeXmacs is a text editing platform which is specialized for
-+ scientists. It is ideal for editing structured documents with
-+ different types of content. It has robust support for mathematical
-+ formulas and plots. It can also act as an interface to external
-+ mathematical programs such as R and Octave. TeXmacs is completely
-+ extensible via Guile.
-
-id: thales_blurb
-package: thales
-blurb: GNU Thales provides macros for performing unit testing in Guile
-+ and for checking the stability of the public interface of your
-+ modules.
-
-id: time_blurb
-package: time
-blurb: Time is a command that displays information about the resources that
-+ a program uses. The display output of the program can be customized
-+ or saved to a file.
-
-id: tramp_blurb
-package: tramp
-blurb: TRAMP is a GNU Emacs package that allows you to access files on remote
-+ machines as though they were local files. This includes editing
-+ files, performing version control tasks and modifying directory
-+ contents with dired. Access is performed via ssh, rsh, rlogin,
-+ telnet or other similar methods.
-
-id: trans_coord_blurb
-package: trans-coord
-blurb: redirect gnun
-
-id: trueprint_blurb
-package: trueprint
-blurb: GNU Trueprint translates C source code files as PostScript files.
-+ In addition to the basic source code output, it can also perform
-+ diff-marking, indentation counting, function and file indices and
-+ more.
-
-id: unifont_blurb
-package: unifont
-blurb: GNU Unifont is a bitmap font covering essentially all of
-+ Unicode's Basic Multilingual Plane. The package also includes
-+ utilities to ease adding new glyphs to the font.
-
-id: units_blurb
-package: units
-blurb: GNU Units converts numeric quantities between units
-+ of measure. It can handle scale changes through adaptive usage of
-+ standard scale prefixes (micro-, kilo-, etc.). It can also
-+ handle nonlinear conversions such as Fahrenheit to Celsius. Its
-+ interpreter is powerful enough to be used effectively as a scientific
-+ calculator.
-
-id: unrtf_blurb
-package: unrtf
-blurb: GNU UnRTF converts text documents from RTF to HTML,
-+ LaTeX, or troff. It supports changes in font characteristics,
-+ underlines and strikethroughs, superscripts and subscripts, and more.
-
-id: userv_blurb
-package: userv
-blurb: GNU Userv is a utility that allows one program to invoke another even
-+ when only limited trust exists between them. This prevents the need
-+ from having to first switch to a different user account to perform
-+ certain tasks.
-
-id: uucp_blurb
-package: uucp
-blurb: Taylor UUCP is the GNU implementation of UUCP (Unix-to-Unix Copy), a
-+ set of utilities for remotely transferring files, email and net news
-+ between computers.
-
-id: vc_dwim_blurb
-package: vc-dwim
-blurb: The vc-dwim package contains two tools, "vc-dwim" and "vc-chlog".
-+ vc-dwim is a tool that simplifies the task of maintaining a ChangeLog
-+ and using version control at the same time, for example by printing
-+ a reminder when a file change has been described in the ChangeLog but
-+ the file has not been added to the VC. vc-chlog scans changed files
-+ and generates standards-compliant ChangeLog entries based on the
-+ changes that it detects.
-
-id: vcdimager_blurb
-package: vcdimager
-blurb: GNU VCDImager is a suite of programs for working with Video CDs
-+ and Super Video CDs. It can be used for authoring, disassembling and
-+ analyzing discs. It supports full playback control, segment play
-+ items, automatic padding of MPEG streams on the fly, and extraction of
-+ Video CDs into files.
-
-id: vera_blurb
-package: vera
-blurb: V.E.R.A. (Virtual Entity of Relevant Acronyms) is a list of computing
-+ acronyms distributed as an info document.
-
-id: vmgen_blurb
-package: vmgen
-blurb: redirect gforth
-
-id: wb_blurb
-package: wb
-blurb: GNU WB is a disk-based, sorted, associative-array database
-+ package for C, Scheme, Java and C#. Rather than being implemented via
-+ hashing, WB uses B-trees, which are optimized for using the minimum
-+ number of disk operations.
-
-id: wdiff_blurb
-package: wdiff
-blurb: GNU Wdiff is a front-end to the diff program from Diffutils that allows
-+ you to compare files on a word-by-word basis, where a word is
-+ anything between whitespace.
-
-id: websocket4j_blurb
-package: websocket4j
-blurb: GNU Websocket4j is a Java library implementing the WebSocket protocol.
-+ With it, you can build web applications that interact with Java
-+ applications. The library includes both server- and client-side
-+ functionality.
-
-id: webstump_blurb
-package: webstump
-blurb: redirect stump
-
-id: wget_blurb
-package: wget
-blurb: GNU Wget is a non-interactive tool for fetching files using the HTTP,
-+ HTTPS and FTP protocols. It can resume interrupted downloads, use
-+ file name wild cards, supports proxies and cookies, and it can convert
-+ absolute links in downloaded documents to relative links.
-
-id: which_blurb
-package: which
-blurb: The which program finds the location of executables in PATH, with
-+ a variety of options. It is an alternative to the shell "type"
-+ built-in command.
-
-id: womb_blurb
-package: womb
-blurb: null (infrastructure randomness)
-
-id: xaos_blurb
-package: xaos
-blurb: GNU XaoS is a graphical program that generates fractal patterns and
-+ allows you to zoom in and out of them infinitely in a fluid,
-+ continuous manner. It also includes tutorials that help to explain
-+ how fractals are built. It can generate many different fractal types
-+ such as the Mandelbrot set.
-
-id: xboard_blurb
-package: xboard
-blurb: GNU XBoard is a graphical board for all varieties of chess, including
-+ international chess, xiangqi (Chinese chess), shogi (Japanese chess)
-+ and Makruk. Several lesser-known variants are also supported. It
-+ presents a fully interactive graphical interface and it can load and
-+ save games in the Portable Game Notation.
-
-id: xlogmaster_blurb
-package: xlogmaster
-blurb: GNU Xlogmaster is a program with a graphical user interface that lets
you
-+ monitor your system logs in a convenient way. The logs can be
-+ displayed with filters for highlighting or hiding lines. The program
-+ can also be used to automate taking actions upon user-defined events.
-
-id: xmlat_blurb
-package: xmlat
-blurb: null (stale)
-
-id: xnee_blurb
-package: xnee
-blurb: GNU Xnee is a program that can record, replay and distribute user
-+ actions in X11. It can be used to automate user interactions for
-+ testing or demonstration purposes.
-
-id: xorriso_blurb
-package: xorriso
-blurb: GNU Xorriso is a tool for copying files to and from ISO 9660 Rock
-+ Ridge, a.k.a. Compact Disc File System, filesystems and it allows
-+ session-wise manipulation of them. It features a formatter and burner
-+ for CD, DVD and BD. It can operate on existing ISO images or it can
-+ create new ones. xorriso can then be used to copy files directly into
-+ or out of ISO files.
-
-id: zile_blurb
-package: zile
-blurb: GNU Zile is a lightweight Emacs clone. It usage is similar to
-+ the default Emacs configuration, but it carries a much lighter feature set.
-
-# Local Variables:
-# compile-command: "recfix pkgblurbs.rec"
-# End:
Index: rec/nonpackages.rec
===================================================================
RCS file: rec/nonpackages.rec
diff -N rec/nonpackages.rec
--- rec/nonpackages.rec 19 Mar 2016 11:47:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-# $Id: nonpackages.rec,v 1.1 2016/03/19 11:47:34 brandon Exp $
-# Public domain.
-#
-# This file records information about software that is not an official
-# GNU package on its own, but we want to automatically generate entries
-# about it anyway. There is nothing private in this file.
-
-%rec: Package rec/package-descriptor.rec
-%doc: Packages which are not official or independent
-
-package: gnus
-doc_category: Email
-doc_summary: Emacs-based mail and news reader.
-activity_status: nonpkg
-
-package: mh-e
-doc_category: Email
-doc_summary: Emacs interface to the MH mail system.
-activity_status: nonpkg
-
-# End. (Do not remove this line or the blank line before it. Thanks.)
Index: rec/oldpackages.rec
===================================================================
RCS file: rec/oldpackages.rec
diff -N rec/oldpackages.rec
--- rec/oldpackages.rec 23 Jan 2017 19:23:09 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,618 +0,0 @@
-# $Id: oldpackages.rec,v 1.3 2017/01/23 19:23:09 brandon Exp $
-# Public domain.
-#
-# This file is maintained in the CVS repository of GNU womb,
-# http://cvs.savannah.gnu.org/viewvc/gnumaint/?root=womb
-#
-# This file records information and the old gnupackages entries for
-# packages which we have decommissioned.
-#
-# There is nothing private in this file.
-
-%rec: Package rec/package-descriptor.rec
-%doc: Decommissioned GNU packages
-%mandatory: gone
-## In all cases, the last_activity date is the date of decommissioning
-## (if known). The "gone" field provides the reason for
-## decommissioning, however in some cases this was never recorded.
-
-package: cobol
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: COBOL for GCC
-doc_url: none
-blurb_id: cobol_blurb
-download_url: http://sourceforge.net/project/showfiles.php?group_id=5709
-gplv3_status: next-release
-last_release: 0.1.2
-last_release_date: 20000812
-last_contact: 26oct08 replied
-note: dedicated maintainer, but will not be able to resume full-time work
-note: for 4-5 years (after 6 months full-time work). But it's a Cobol
-note: compiler, hardly likely to find other implementors, and lots and lots
-note: of work has been done. Mail from tej, 26 Oct 2008 12:42:10 +1100.
-activity_status: moribund
-last_activity: 20000812
-
-package: libreboot
-copyright_holder: notfsf
-logo: https://libreboot.org/logo/logo.png
-language: shell,c
-doc_category: Sysadmin
-doc_summary: A free BIOS/UEFI replacement
-doc_url: none
-gplv3_status: ok
-activity_status: newpkg
-last_activity: 20160514
-
-package: dmd
-copyright_holder: fsf-no-reply-individual-name-in-files
-doc_category: Sysadmin
-doc_summary: Daemon managing daemons
-doc_url: none
-gplv3_status: not-done-in-0.5
-download_url: http://www.wt-lorsch.de/dmd--0.5.tar.gz
-last_release: 0.5
-note: exact last release date unknown
-last_release_date: 20030101
-activity_status: decommissioned
-last_activity: 20160117
-gone: per maintainer: renamed to shepherd
-
-package: sovix
-copyright_holder: notfsf
-doc_category: Web
-doc_summary: Emacs-like website revision system
-doc_url: none
-gplv3_status: done-in-0.0.1.5 (agplv3)
-last_release: 0.0.1.7
-last_release_date: 20081215
-activity_status: decommissioned
-last_activity: 20150312
-gone: per englund; maintainer long since took it from GNU
-
-package: myserver
-copyright_holder: fsf-ok-with-dependencies-libxml-libevent-#786724
-language: c++
-logo: /software/myserver/logo.png
-doc_category: Internet
-doc_summary: Multi-threaded web server
-doc_url: none
-gplv3_status: done-as-of-0.9.2
-last_release: 0.11
-last_release_date: 20110716
-activity_status: decommissioned
-last_activity: 20140314
-note: doc_url was htmlxref, but gone now, author working 11mar12
-gone: per maintainer
-
-package: fcrypt
-copyright_holder: fsf-ok-#786630
-doc_category: Sysadmin
-doc_summary: on-the-fly encrypted filesystems, including secret partitions
-doc_url: none
-gplv3_status: should-be-ok
-activity_status: decommissioned
-note: no-release
-last_activity: 20131005
-gone: strange behavior by maintainer
-
-package: w3
-copyright_holder: fsf-no-reply
-doc_category: Internet
-doc_summary: Web browser written entirely in Emacs Lisp
-doc_url: none
-gplv3_status: not-done-since-stale
-activity_status: decommissioned
-note: no-release
-gone: now http://elpa.gnu.org/packages/w3.html
-
-package: dismal
-copyright_holder: fsf-no-reply
-doc_category: Spreadsheets
-doc_summary: Emacs spreadsheet mode
-doc_url: none
-download_url: http://acs.ist.psu.edu/dismal/
-gplv3_status: working (gnumaint-reply 22 Aug 2007 01:16:36)
-last_release: 1.4
-last_release_date: 20130528
-activity_status: decommissioned
-last_activity: 20130809
-note: copyright.list says fsf, but actual copyrights don't
-note: http://acs.ist.psu.edu/dismal/dismal-1.4.tar.gz
-last_contact: 25jan11 replied soon, 17nov10, 29oct08 asked
-gone: now http://elpa.gnu.org/packages/dismal.html (M-x list-packages)
-
-package: gnu-arch
-mundane_name: Arch
-copyright_holder: notfsf-#786554
-doc_category: Version
-doc_summary: Distributed version control system
-doc_url: htmlxref
-logo: /software/gnu-arch/graphics/octopus-a-small.png
-gplv3_status: decommissioning-since-no-changes (atai 17 Dec 2007 10:00:18
-0800)
-last_release: 1.3.5
-last_release_date: 20060720
-activity_status: decommissioned
-last_activity: 20130529
-last_contact: 1jul12 asked, 10oct11,2dec08 replied
-gone: inaction, have bazaar
-
-package: jdresolve
-language: perl
-doc_category: Internet
-doc_summary: Fast, recursive DNS name resolver for log files
-doc_url: none
-gplv3_status: not-done-since-stale
-activity_status: decommissioned
-last_activity: 20130522
-note: no-release
-gone: vaporware
-
-package: phpgroupware
-mundane_name: phpGroupWare
-copyright_holder: fsf-no-reply
-logo: http://www.phpgroupware.org/templates/new/images/logo.png
-doc_category: Business
-doc_summary: Multi-user groupware suite
-doc_url: none
-download_url: http://sourceforge.net/projects/phpgroupware/files/phpgroupware/
-gplv3_status: in-dev-sources-maybe
-last_release: 0.9.16.017
-last_release_date: 20100707
-activity_status: decommissioned
-last_activity: 20130522
-gone: inaction, hardly ever GNU
-
-package: gmorph
-doc_category: Graphics
-doc_summary: Image morphing program
-doc_url: none
-#download_url-of-xmorph:
http://sourceforge.net/project/showfiles.php?group_id=11808
-gplv3_status: not-done-since-stale
-last_release: 20060817
-last_release_date: 20060817
-activity_status: decommissioned
-last_activity: 20130522
-last_contact: 16feb13 asked, 24jan12 replied to jmd but doing nothing, 4jan11
asked
-note: renamed from xmorph, which continues to be non-GNU.
-gone: inaction, still have xmorph
-
-package: gnuskies
-doc_category: Science
-doc_summary: Stargazing
-doc_url: none
-gplv3_status: not-done-since-no-release
-activity_status: decommissioned
-last_activity: 20130413
-note: no-release
-last_contact: 20mar13 brandon asked, 24jun09 asked, 2011 copyright finally done
-gone: never anything done, have celestia, per maintainer and rms
-
-package: vmslib
-doc_category: Software
-doc_summary: Help porting GNU software to VMS
-doc_url: none
-gplv3_status: not-done-since-nomaint
-activity_status: decommissioned
-last_activity: 20130528
-gone: too stale and have GNV, per maintainer and rms
-
-package: packaging
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: Packaging for GNU
-doc_url: none
-logo: /software/packaging/packaging.png
-gplv3_status: not-done-since-mia
-activity_status: decommissioned
-last_activity: 20130328
-note: no-release
-gone: too stale and have guix and gsrc, per maintainer and rms
-
-package: aetherspace
-doc_category: Games
-doc_summary: Massively multiplayer online (MMO) game
-doc_url: none
-gplv3_status: in-dev-sources (18jun08) # stated on web pages too
-activity_status: decommissioned
-last_activity: 20130324
-note: no-release
-last_contact: 20mar13 brandon asked, 12nov10 asked, 14dec09 replied, "spring
2010"
-gone: nonexistent, per maintainer and rms
-
-package: sourceinstall
-copyright_holder: fsf-no-reply
-doc_category: Sysadmin
-doc_summary: Managing distribution sources as packages
-doc_url: /software/sourceinstall/manual/
-gplv3_status: done-in-2.5rc1 (11may08)
-last_release: 2.5
-last_release_date: 20080719
-activity_status: decommissioned
-last_activity: 20130319
-gone: gsrc + guix do the job, per maintainer and rms
-
-package: guile-gtk
-copyright_holder: fsf-no-reply
-doc_category: Libraries
-doc_summary: Guile bindings to GTK libraries
-doc_url: htmlxref
-gplv3_status: done-as-of-2.1
-last_release: 2.1
-last_release_date: 20071230
-activity_status: decommissioned
-last_activity: 20130310
-gone: replaced by guile-gnome, per maintainer and rms
-
-package: paperclips
-logo: /software/paperclips/Paperclips-GNU-small.jpg
-language: java
-doc_category: Internet
-doc_summary: Java Servlet engine with EEP! template language support
-doc_url: none
-gplv3_status: not-done-since-no-release
-activity_status: decommissioned
-last_activity: 20130213
-note: no-release
-last_contact: 11feb13 asked, 3mar10 asked
-gone: never any release, per maintainer and rms
-
-package: snakecharmer
-doc_category: Graphics
-doc_summary: Image finding with GNU GIFT
-doc_url: none
-gplv3_status: not-done-since-nomaint
-activity_status: decommissioned
-last_activity: 20130209
-note: no-release
-last_contact: see gift
-gone: never any release, no volunteers, raw sources on web page
-
-package: vc-changelog
-doc_category: Version
-doc_summary: ChangeLog management especially with distributed version control
-doc_url: none
-gplv3_status: in-dev-sources
-activity_status: decommissioned
-last_activity: 20130201
-gone: no active developers, never any release, can be under vc-dwim
-
-package: dotgnu
-mundane_name: DotGNU
-doc_category: Software
-doc_summary: Web services and C#
-doc_url: none
-gplv3_status: ok-since-container
-container: for-dotgnu-pnet-etc.
-activity_status: decommissioned
-last_activity: 20121218
-gone: no development
-
-package: dotgnu-forum
-doc_category: Internet
-doc_summary: Web site revision system for DotGNU
-doc_url: none
-gplv3_status: not-done-since-stale
-activity_status: decommissioned
-last_activity: 20121218
-note: copyright.list seems clear
-gone: no development
-
-package: dotgnu-pnet
-copyright_holder: notfsf
-doc_category: Software
-doc_summary: DotGNU Portable.NET support for .NET applications
-doc_url: http://dotgnu.org/pnetlib-doc/index.html
-download_url: ftp://ftp.gnu.org/gnu/dotgnu/
-gplv3_status: not-done-in-0.1.2
-last_release: 0.8
-last_release_date: 20070308
-last_release: libjit-0.1.2
-last_release_date: 20081210
-activity_status: decommissioned
-last_activity: 20121218
-gone: no development
-
-package: gnu-queue
-mundane_name: Queue
-copyright_holder: address@hidden and other authors
-doc_category: Sysadmin
-doc_summary: Allocate jobs to nodes in a cluster
-doc_url: none
-gplv3_status: under-discussion partly at GPLv1, but should be updatable
-last_release: 1.30.1
-last_release_date: 20001101
-activity_status: decommissioned
-last_activity: 20120811
-gone: parallel does the job
-
-package: goldwater
-doc_category: Business
-doc_summary: Middleware server
-doc_url: none
-gplv3_status: not-done-since-dotgnu-nomaint
-activity_status: decommissioned
-last_activity: 20120811
-last_contact: 31jan10 replied
-note: cvs -d:pserver:address@hidden:/sources/dgee co goldwater
-note: download_url: ftp.gnu.org:gnu/dotgnu -- taken offline, though
-gone: 11aug12
-
-package: goodbye
-doc_category: Software
-doc_summary: Kiosk management
-doc_url: none
-gplv3_status: not-done-since-no-release
-activity_status: decommissioned
-last_activity: 20120725
-note: no-release
-gone: per rms on gnu-prog-discuss
-
-package: aeneas
-doc_category: Science
-doc_summary: Design and simulation of submicron semiconductor devices
-doc_url: /software/aeneas/#documentation
-gplv3_status: done-in-1.2 (14jul08)
-last_release: 1.2
-last_release_date: 20080714
-activity_status: decommissioned
-last_activity: 20120513
-gone: subsumed into archimedes
-
-package: sxml
-download_url: http://medialab.di.unipi.it/Project/SXML/resources.html
-doc_category: Web
-doc_summary: Simple XML for defining and implementing markup languages
-doc_url: none
-gplv3_status: not-done-since-stale
-last_release: 0.96
-last_release_date: 20010829
-activity_status: decommissioned
-last_activity: 20120512
-last_contact: 14nov10 stepped down
-gone: replaced by xmlat
-
-package: proto
-copyright_holder: confused
-note: copyright.list says fsf, sources don't
-doc_category: Software
-doc_summary: Find prototypes in header files
-doc_url: none
-download_url: http://www.oualline.com/sw/
-gplv3_status: done-since-public-domain
-activity_status: decommissioned
-last_activity: 20110319
-last_contact: 3mar11 to rms, 14mar10 replied, no plans to work on it
-gone: maintainer not interested, rms ok with decommissioning it
-
-package: libiberty
-copyright_holder: fsf
-gplv3_status: under-discussion
-activity_status: decommissioned
-last_activity: 20101202
-note: released-in-combination
-gone: redundant with gcc
-
-package: gnotary
-mundane_name: GNotary
-doc_category: Business
-doc_summary: Digitally sign electronic health records
-doc_url: none
-gplv3_status: not-done-since-stale
-last_release: 0.1.rc1
-last_release_date: 20050827
-activity_status: decommissioned
-last_activity: 20101128
-last_contact: see gnumed
-gone: never got off the ground, maintainers have no time for it
-
-package: songanizer
-copyright_holder: fsf
-doc_category: Audio
-doc_summary: Organize collections of audio files
-doc_url: none
-gplv3_status: not-done-in-1.0
-last_release: 1.0
-last_release_date: 20070326
-activity_status: decommissioned
-last_activity: 20101122
-last_contact: 19nov10 wrote, 10feb09 wrote
-gone: maintainer resigned, never caught on
-
-package: dictionary
-download_url: ftp://ftp.gnu.org/gnu/gcide
-gplv3_status: not-done-since-moribund
-last_release: 0.46
-last_release_date: 20020101
-activity_status: decommissioned
-last_activity: 20101117
-last_contact: 21jun10 replied
-note: exact last release date not known
-note: renamed to/from gcide
-note: gray will make an interface and spruce it up as part of dico.
-gone: no need to be separate from dico
-
-package: beacon
-gplv3_status: not-done-since-no-release
-activity_status: decommissioned
-last_activity: 20101114
-note: nonesuch
-note: no-release
-last_contact: see aroundme
-gone: like aroundme, but never existed
-
-package: aroundme
-mundane_name: AROUNDMe
-download_url: http://www.barnraiser.org/aroundme/
-doc_category: Web
-gplv3_status: done-in-aroundme_pi_20080116a
-activity_status: decommissioned
-last_activity: 20101114
-last_contact: 200808 wrote author, working
-gone: discovered resignation
-
-package: libopts
-gplv3_status: not-done-in-27.6
-last_release: 27.6
-last_release_date: 20070127
-activity_status: decommissioned
-last_activity: 20101109
-last_contact: 15feb10 wrote
-gone: effectively part of autogen, unused on its own.
-
-package: zebra
-download_url: ftp://ftp.zebra.org/pub/zebra/
-logo: http://www.zebra.org/zebralogo.jpg
-gplv3_status: not-done-since-stale
-last_release: 0.95a
-last_release_date: 20050908
-activity_status: decommissioned
-last_activity: 20101108
-last_contact: 10feb10 wrote
-note: 18dec09 quagga unlikely replacement, some developers anti-gplv3.
-note: see also http://www.zebra.org
-gone: maintainer disappeared for years, quagga fork is active.
-
-package: isofsmk
-gplv3_status: not-done-in-1.11.3
-last_release: 1.13
-last_release_date: 20100108
-activity_status: decommissioned
-last_activity: 20100708
-gone: per author, replaced by xorriso.
-
-package: toutdoux
-doc_url: http://www.gnu.org/software/toutdoux/en/documentation.html
-activity_status: decommissioned
-last_activity: 20090420
-gone: per author.
-
-package: octal
-doc_url: http://www.gnu.org/software/octal/ox_api_main/
-activity_status: decommissioned
-last_activity: 20090409
-gone: per author.
-
-package: abcsh
-activity_status: decommissioned
-gone: per author, #332187.
-
-package: gnufi
-activity_status: decommissioned
-last_activity: 20100213
-gone: 13feb10
-
-package: cons
-activity_status: decommissioned
-last_activity: 20100103
-gone: 3jan10
-
-package: radar
-activity_status: decommissioned
-last_activity: 20081013
-gone: 13oct08
-
-package: recode
-activity_status: decommissioned
-last_activity: 20081013
-gone: 13oct08
-
-package: balsa
-activity_status: decommissioned
-last_activity: 20080304
-gone: 4mar08
-
-package: hydrant
-activity_status: decommissioned
-last_activity: 20080218
-gone: 18feb08
-
-package: cfs-el
-activity_status: decommissioned
-last_activity: 20070831
-gone: 31aug07 or so
-
-package: music
-activity_status: decommissioned
-last_activity: 20070828
-gone: 28aug07
-
-package: mana
-activity_status: decommissioned
-last_activity: 20070817
-gone: 17aug07
-
-package: leonardo
-activity_status: decommissioned
-last_activity: 20070512
-gone: 12may07
-
-package: hegemonie
-activity_status: decommissioned
-last_activity: 20070329
-gone: 29mar07
-
-package: gnusql
-activity_status: decommissioned
-last_activity: 20060316
-gone: 16mar06
-
-package: free
-activity_status: decommissioned
-last_activity: 20021025
-gone: 25oct02
-
-package: dld
-activity_status: decommissioned
-last_activity: 20010711
-gone: 11jul01 or so
-
-package: rx
-activity_status: decommissioned
-gone: long ago
-
-package: doschk
-activity_status: decommissioned
-gone: always nongnu
-
-package: emacs-wiki
-activity_status: decommissioned
-gone: never dubbed
-
-package: adhoc
-activity_status: decommissioned
-gone: never dubbed
-
-package: fileutils
-activity_status: decommissioned
-gone: long ago merged into coreutils
-
-package: textutils
-activity_status: decommissioned
-gone: long ago merged into coreutils
-
-package: sh-utils
-activity_status: decommissioned
-gone: long ago merged into coreutils
-
-package: finger
-activity_status: decommissioned
-gone: long ago merged into inetutils
-
-package: gfe
-activity_status: decommissioned
-gone: long ago
-
-package: gts
-mundane_name: G Transaction Server (?)
-activity_status: decommissioned
-gone: long ago
-note: Todd Lewis
-note: http://archives.postgresql.org/pgsql-hackers/1999-03/msg00200.php
-
-package: winboard
-activity_status: decommissioned
-gone: part of xboard
-
-# End. (Do not remove this line or the blank line before it. Thanks.)
Index: rec/gnupackages2txt.awk
===================================================================
RCS file: rec/gnupackages2txt.awk
diff -N rec/gnupackages2txt.awk
--- rec/gnupackages2txt.awk 13 Apr 2019 10:11:05 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,204 +0,0 @@
-# $Id: gnupackages2txt.awk,v 1.5 2019/04/13 10:11:05 ineiev Exp $
-# gnupackages.rec to old gnupackages.txt
-#
-# Copyright (C) 2018 Mike Gerwitz
-#
-# This program 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/>.
-#
-# This script converts the gnupackages.rec recfile into the old txt format
-# that used to be committed directly to the repository. The txt format
-# will eventually be entirely removed; this is intended to allow that
-# transition to proceed incrementally.
-
-BEGIN {
- FS = OFS = ": "
-}
-
-{
- if ( ( substr( $1, 1, 1 ) == "+" ) && ( key != "" ) ) {
- # next line of a multiline record
- sub( /^[+] */, "", $0 )
- add_key( key, $0 )
- next
- }
- key = is_key() ? $1 : ""
- value = $2
-}
-
-# recfile headers (replace the first one with a warning)
-/^%rec:/ {
- print "# THIS FILE IS NOW GENERATED FROM rec/gnupackages.rec;"
- print "# DO NOT MODIFY DIRECTLY!"
-}
-/^%/ { next }
-
-is_key_assign() {
- add_key( key, value )
-}
-
-# A number of keys are handled differently in the recfile
-key == "package" { package = value }
-key == "blurb_id" { next }
-key == "activity_status" { next }
-key == "last_activity" { next }
-key == "container" { next }
-key == "last_contact" { next } # output at end (reorder)
-key == "next_contact" { next } # output at end (reorder)
-key == "note" { next } # output at end (reorder)
-key ~ /^last_release/ { next }
-
-# End of package block
-eob() {
- print "activity-status", mkactivity()
- printkey( "last_contact" )
- printkey( "next_contact" )
- printnotes()
-
- package = ""
- delete pkginfo
- delete pkginfon
-}
-
-{
- # recfiles use snake case and gnupackages.txt uses dashes
- gsub( /_/, "-", $1 )
- print
-}
-
-
-# Key abstractions and predicates
-function is_key() { return $1 ~ /^[a-z_]+$/ }
-function is_key_assign() { return is_key() && value }
-function eob() { return $0 ~ /^$/ && package }
-function is_symnote() { return get_key( "note" ) ~ /^[a-z-]+$/ }
-
-
-# Print a "key: value" line for each value of key K
-#
-# K may have multiple values if `add_key' was called multiple times for
-# the same K.
-function printkey( k, n, i )
-{
- n = keylen( k )
-
- for ( i = 0; i < n; i++ ) {
- print gensub( /_/, "-", "g", k ), get_key( k, i )
- }
-}
-
-# Print note unless it is a symbolic note
-#
-# Symbolic notes have special meaning and are concatenated with the
-# activity status in the output. Note that `is_symnote` only checks
-# the first key value, and so this may not work correctly given multiple
-# notes; it just hasn't been a problem yet, as of this time of writing.
-function printnotes()
-{
- if ( is_symnote() ) {
- return
- }
-
- printkey( "note" )
-}
-
-
-# Generate activity status line
-function mkactivity()
-{
- return mkstatus() mkrelease()
-}
-
-
-# Generate status portion of activity status
-#
-# The status may be suffixed by a date and a symbolic note.
-function mkstatus( status, last_act )
-{
- status = get_key( "activity_status" )
- last_act = get_key( "last_activity" )
-
- switch ( status )
- {
- case "newmaint":
- case "newcomaint":
- case "newpkg":
- case "nomaint":
- status = status "/" last_act
- break;
-
- case "container":
- status = status " " get_key( "container" )
- break;
- }
-
- # notes that look like symbols were taken from the
- # old activity-status, so re-add them
- if ( is_symnote() ) {
- status = status " " get_key( "note" )
- }
-
- return status;
-}
-
-
-# Generate release portion of activity status
-#
-# If there are multiple release versions, then all but the first will
-# have a date suffixed with the form "%s/%d".
-function mkrelease( last_date, last_ver, release, i )
-{
- i = keylen( "last_release" ) - 1
-
- if ( i == -1 ) {
- return ""
- }
-
- # begin string with latest version number (last index)
- release = sprintf( " %d (%s",
- get_key( "last_release_date", i ),
- get_key( "last_release", i ) )
-
- # all other releases, if any
- while ( i-- > 0 ) {
- release = sprintf( "%s, %s/%d",
- release,
- get_key( "last_release", i ),
- get_key( "last_release_date", i ) )
- }
-
- return release ")"
-}
-
-
-# Append a value V for key K
-#
-# If K already has a value, another will be added; values are
-# never replaced by this function.
-function add_key( k, v, i )
-{
- i = pkginfon[k]++;
- pkginfo[k][i] = v
-}
-
-# Get value of key K at index I (default 0)
-function get_key( k, i )
-{
- return pkginfo[k][ or( i, 0 ) ]
-}
-
-# Get number of values for key K
-function keylen( k )
-{
- return pkginfon[k]
-}
Index: rec/pkgblurbs2txt.awk
===================================================================
RCS file: rec/pkgblurbs2txt.awk
diff -N rec/pkgblurbs2txt.awk
--- rec/pkgblurbs2txt.awk 20 Jun 2018 02:36:24 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-# $Id: pkgblurbs2txt.awk,v 1.2 2018/06/20 02:36:24 mikegerwitz Exp $
-# pkgblurbs.rec to old pkgblurbs.txt
-#
-# Copyright (C) 2018 Mike Gerwitz
-#
-# This program 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/>.
-#
-# This script converts the pkgblurbs.rec recfile into the old txt format
-# that used to be committed directly to the repository.
-
-BEGIN {
- print "# Public domain."
- print "#"
- print "# This source code for this file is maintained in GNU womb:"
- print "# http://cvs.savannah.gnu.org/viewvc/gnumaint/?root=womb"
- print "#"
- print "# This file specifies a short blurb for each GNU package. These are"
- print "# used by www.gnu.org, GSRC, and Guix."
- print "#"
- print "# THIS FILE IS NOW GENERATED FROM rec/pkgblurbs.rec;"
- print "# DO NOT MODIFY DIRECTLY!"
- print ""
-}
-
-# essentially just omits ^id: and %rec headers
-/^package:/,/^$/ { print }
-
-END {
- print "# Local Variables:"
- print "# compile-command: \"make pkgblurbs.txt\""
- print "# End:"
-}
Index: rec/gnupackages.rec
===================================================================
RCS file: rec/gnupackages.rec
diff -N rec/gnupackages.rec
--- rec/gnupackages.rec 20 Apr 2019 09:05:07 -0000 1.134
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,5036 +0,0 @@
-# $Id: gnupackages.rec,v 1.134 2019/04/20 09:05:07 th_g Exp $
-# Public domain.
-#
-# This file is maintained in the CVS repository of GNU womb,
-# http://cvs.savannah.gnu.org/viewvc/gnumaint/?root=womb
-#
-# This file records information about GNU packages on a per-package
-# basis, *not* including the maintainers (that's in
-# /gd/gnuorg/maintainers). There is nothing private in this file.
-#
-# Since some things are unique to the package and other things are
-# unique to the maintainer(s), it seems cleanest to have two files.
-#
-# This file is in GNU Recutils' format, meaning it is easiest to query
-# the content via that software. This file contains one record type,
-# Package, and uses the package name as the record key.
-#
-# Info/constraints about the fields:
-# - The package name should always be all-lowercase.
-#
-# - When mundane_name is not specified, default is to capitalize the first
-# letter of the package identifier.
-#
-# - Default for download_url is http://ftp.gnu.org/gnu/PKGNAME.
-#
-# - A doc_url value of "none" means no specific documentation page (home
-# page is used).
-# "htmlxref" means to extract a list of additional manuals from the
-# Texinfo htmlxref.cnf file.
-# Otherwise, it can be a url, which can be used together with htmlxref,
-# but multiple explicit urls or other combinations are not supported.
-#
-# - doc_category values are in doc-categories.txt (following FSD).
-# (doc stuff is used to generate gnu.org/manual.)
-#
-# - each package should always have an activity_status
-#
-# - allowed activity_status values:
-# ok;
-# newmaint,newcomaint (newly-appointed);
-# newpkg (newly-dubbed);
-# nomaint (no maintainer);
-# container (doesn't get released);
-# subpkg (released as part of another package);
-# stable (no current release, but none needed);
-# stale (needs release);
-# moribund (needs release, but not likely to ever get one).
-# alpha (alpha-only releases so far)
-#
-# - most activity statuses must have an associated date of last
-# activity
-#
-# - as a consistency check, the last activity should always be at
-# least the last release date
-#
-# The home page is not a field because that *always* is (should be)
-# /software/PACKAGE, even if that does nothing but redirect. Any other
-# method leads to redundant (hence inevitably inconsistent) information.
-#
-# Finally, this file as a whole is more or less sorted by package
-# identifier, for human convenience. However, software reading this
-# file should accept any order of packages or fields.
-
-# See the file pkg-descriptor.rec in this directory for the full
-# definition of the Package record type.
-
-%rec: Package rec/package-descriptor.rec
-%doc: Current GNU packages
-
-
-package: 3dldf
-mundane_name: 3DLDF
-copyright_holder: notfsf
-doc_category: Graphics
-doc_summary: 3D drawing with MetaPost output
-doc_url: /software/3dldf/manual/
-blurb_id: 3dldf_blurb
-logo: /software/3dldf/graphics/dhnlogo.png
-gplv3_status: in-dev-sources (gnumaint-reply 29 Aug 2007 19:26:27)
-last_release: 2.0.3
-last_release_date: 20131213
-activity_status: stale
-last_activity: 20131213
-
-package: 8sync
-copyright_holder: notfsf
-doc_category: Libraries
-doc_summary: An asynchronous programming library for Guile
-doc_url: /software/8sync/manual/
-blurb_id: 8sync_blurb
-gplv3_status: done
-last_release: 0.4.1
-last_release_date: 20170108
-activity_status: ok
-last_activity: 20170108
-
-package: a2ps
-mundane_name: a2ps
-copyright_holder: notfsf
-doc_category: Printing
-doc_summary: Any file to PostScript, including pretty-printing
-doc_url: none
-blurb_id: a2ps_blurb
-gplv3_status: done-in-4.14
-last_release: 4.14
-last_release_date: 20071228
-activity_status: newcomaint
-last_activity: 20170421
-
-package: acct
-copyright_holder: fsf-ok-#786467
-doc_category: Sysadmin
-doc_summary: Standard login and process accounting utilities
-doc_url: /software/acct/manual/accounting.html
-blurb_id: acct_blurb
-gplv3_status: done-as-of-6.5
-last_release: 6.6.2
-last_release_date: 20141107
-activity_status: ok
-last_activity: 20141107
-
-package: acm
-doc_category: Games
-doc_summary: Multiplayer aerial combat simulation
-doc_url: none
-blurb_id: acm_blurb
-download_url: http://www.websimulations.com/download.htm
-gplv3_status: done-in-5.1
-last_release: 5.1
-last_release_date: 20101205
-last_contact: 16nov10 replied, soon
-activity_status: stale
-last_activity: 20101205
-
-package: adns
-doc_category: Libraries
-doc_summary: Asynchronous DNS client library and utilities
-doc_url: none
-blurb_id: adns_blurb
-download_url: http://www.chiark.greenend.org.uk/~ian/adns/ftp/
-gplv3_status: done-in-1.5.0
-last_release: 1.5.1
-last_release_date: 20160812
-activity_status: ok
-last_activity: 20160812
-
-package: alive
-doc_category: Internet
-doc_summary: Autologin and keep-alive daemon
-doc_url: /software/alive/manual/
-blurb_id: alive_blurb
-download_url: http://download.savannah.gnu.org/releases/alive/
-gplv3_status: not-done-in-1.4.0-nomaint
-last_release: 2.0.2
-last_release_date: 20120908
-activity_status: stale
-last_activity: 20120908
-
-package: anubis
-doc_category: Email
-doc_summary: SMTP message submission daemon
-doc_url: /software/anubis/manual/
-blurb_id: anubis_blurb
-gplv3_status: done-in-4.1.1
-last_release: 4.2
-last_release_date: 20140523
-activity_status: ok
-last_activity: 20140523
-
-package: apl
-mundane_name: APL
-doc_category: Software
-doc_summary: APL interpreter
-doc_url: none
-blurb_id: apl_blurb
-gplv3_status: done-in-1.0
-last_release: 1.6
-last_release_date: 20160828
-activity_status: ok
-last_activity: 20160828
-
-package: archimedes
-doc_category: Science
-doc_summary: Semiconductor device simulator
-doc_url: /software/archimedes/manual/
-blurb_id: archimedes_blurb
-gplv3_status: done-in-0.8.0 (14jul08)
-last_release: 2.0.1
-last_release_date: 20130429
-activity_status: stale
-last_activity: 20130429
-
-package: aris
-doc_category: Mathematics
-doc_summary: Natural deduction first-order logic interface
-doc_url: none
-blurb_id: aris_blurb
-gplv3_status: ok
-last_release: 2.2
-last_release_date: 20140306
-activity_status: ok
-last_activity: 20140306
-
-package: artanis
-language: guile
-doc_category: Internet
-doc_summary: Web application framework written in Guile
-doc_url: htmlxref
-blurb_id: artanis_blurb
-gplv3_status: ok
-activity_status: newpkg
-last_activity: 20150118
-
-package: aspell
-doc_category: Text
-doc_summary: Spell checker
-doc_url: htmlxref
-blurb_id: aspell_blurb
-gplv3_status: under-discussion-library (gnumaint-reply 20 Aug 2007 20:31:07)
-last_release: 0.60.6.1
-last_release_date: 20110604
-activity_status: stale
-last_activity: 20110604
-
-package: auctex
-copyright_holder: fsf-maybe-ok-remaining-few-in-process-#786529
-logo: /software/auctex/img/auctex-logo.png
-mundane_name: AUCTeX
-doc_category: Text
-doc_summary: Emacs environment for editing (all flavors of) TeX files
-doc_url: /software/auctex/manual/
-blurb_id: auctex_blurb
-gplv3_status: done-in-11.85
-last_release: 11.90
-last_release_date: 20170110
-activity_status: ok
-last_activity: 20170110
-
-package: autoconf
-copyright_holder: fsf-ok-#786485
-doc_category: Software
-doc_summary: Create source code configuration scripts
-doc_url: /software/autoconf/manual/
-blurb_id: autoconf_blurb
-gplv3_status: done-in-2.65-with-exception-#349136
-last_release: 2.69
-last_release_date: 20120424
-activity_status: stale
-last_activity: 20120424
-
-package: autoconf-archive
-language: autoconf
-doc_category: Software
-doc_summary: Collection of freely reusable Autoconf macros
-doc_url: none
-blurb_id: autoconf_archive_blurb
-gplv3_status: not-applicable
-last_release: 2016.09.16
-last_release_date: 20160916
-activity_status: ok
-last_activity: 20160916
-
-package: autogen
-copyright_holder: notfsf
-logo: /software/autogen/pix/autogen_back.png
-doc_category: Software
-doc_summary: Automated program generator
-doc_url: /software/autogen/manual/
-blurb_id: autogen_blurb
-gplv3_status: done-in-5.9.5
-last_release: 5.18.10
-last_release_date: 20160524
-activity_status: ok
-last_activity: 20160524
-
-package: automake
-copyright_holder: fsf-no-reply
-language: perl
-doc_category: Software
-doc_summary: Making GNU standards-compliant Makefiles
-doc_url: /software/automake/manual/
-blurb_id: automake_blurb
-gplv3_status: done-with-exception-#349136
-last_release: 1.15
-last_release_date: 20150105
-activity_status: ok
-last_activity: 20150105
-
-package: avl
-copyright_holder: fsf-ok-#786498
-doc_category: Libraries
-doc_summary: Binary and balanced search trees
-doc_url: htmlxref
-blurb_id: avl_blurb
-gplv3_status: done-in-2.0.3
-last_release: 2.0.3
-last_release_date: 20070825
-activity_status: stable
-last_activity: 20070825
-
-package: ballandpaddle
-mundane_name: Ball and Paddle
-doc_category: Games
-doc_summary: Ball and paddle game extensible with Guile
-doc_url: none
-blurb_id: ballandpaddle_blurb
-gplv3_status: done-in-0.7.1
-last_release: 0.8.1
-last_release_date: 20090715
-last_contact: 11feb13 replied soon
-activity_status: stale
-last_activity: 20090715
-
-package: barcode
-doc_category: Business
-doc_summary: Convert text strings to printed bars in various standards
-doc_url: none
-blurb_id: barcode_blurb
-gplv3_status: under-discussion (3nov09)
-last_release: 0.99
-last_release_date: 20130329
-activity_status: stale
-last_activity: 20130329
-
-package: bash
-copyright_holder: fsf-ok-with-examples-#790945
-doc_category: Software
-doc_summary: The GNU Bourne-Again SHell
-doc_url: /software/bash/manual/
-blurb_id: bash_blurb
-gplv3_status: done-in-4.0
-last_release: 4.4
-last_release_date: 20160917
-activity_status: ok
-last_activity: 20160917
-
-package: bayonne
-copyright_holder: notfsf
-doc_category: Telephony
-doc_summary: Telephony server
-doc_url: /software/bayonne/bayonne.html#documentation
-blurb_id: bayonne_blurb
-gplv3_status: next-release-early-2009 (licensing #373278)
-last_release: bayonne-2.99+3.0apionly2
-last_release_date: 20111218
-activity_status: stale
-last_activity: 20111218
-
-package: bazaar
-search_alias: bzr
-savannah: none
-copyright_holder: notfsf
-logo: //planet.bazaar.canonical.com/images/logo.png
-language: c,xpython
-doc_category: Version
-doc_summary: Version control system supporting both distributed and
centralized workflows
-doc_url: http://doc.bazaar.canonical.com/en/
-blurb_id: bazaar_blurb
-download_url: http://bazaar-vcs.org/Download
-gplv3_status: not-done-in-2.02/14dec09-asked-rms, doc-license-is-gpl-too
https://bugs.edge.launchpad.net/bzr/+bug/433734
-last_release: 2.7.0
-last_release_date: 20160131
-note: the bazaar project on savannah is not this; not on savannah at all
-activity_status: ok
-last_activity: 20160131
-
-package: bc
-copyright_holder: fsf-no-reply
-doc_category: Mathematics
-doc_summary: Arbitrary precision numeric processing language
-doc_url: /software/bc/manual/bc.html
-blurb_id: bc_blurb
-gplv3_status: next-release
-last_release: 1.06
-last_release_date: 20001115
-last_contact: 7may12 ken replied, 6may12 phil replied, 22may08 pizzini replied
-activity_status: stale
-last_activity: 20001115
-
-package: bfd
-mundane_name: BFD
-copyright_holder: fsf-ok-#787030
-doc_category: Libraries
-doc_summary: Binary File Descriptor library
-doc_url: htmlxref
-blurb_id: bfd_blurb
-gplv3_status: unknown
-container: is-binutils
-activity_status: container
-
-package: binutils
-copyright_holder: fsf-ok-#787031
-doc_category: Software
-doc_summary: Binary utilities: bfd gas gprof ld
-doc_url: /software/binutils/manual/
-blurb_id: binutils_blurb
-doc_url: htmlxref
-gplv3_status: done-in-binutils-2.18
-last_release: 2.27
-last_release_date: 20160825
-activity_status: ok
-last_activity: 20160825
-
-package: bison
-copyright_holder: fsf-ok-#786486,#786486
-doc_category: Software
-doc_summary: Parser generator
-doc_url: /software/bison/manual/
-blurb_id: bison_blurb
-doc_shop: The Bison Manual
-doc_shop: http://shop.fsf.org/product/bison-manual/
-gplv3_status: done-in-2.4-without-exception-#502111
-last_release: 3.0.4
-last_release_date: 20150123
-activity_status: ok
-last_activity: 20150123
-
-package: bool
-copyright_holder: fsf-no-reply
-doc_category: Text
-doc_summary: Finding text and HTML files that match boolean expressions
-doc_url: none
-blurb_id: bool_blurb
-gplv3_status: done-in-bool-0.2.2
-last_release: 0.2.2
-last_release_date: 20150511
-last_contact: 5sep08,17dec09 asked
-activity_status: ok
-last_activity: 20150511
-
-package: bpel2owfn
-mundane_name: BPEL2oWFN
-logo: /software/bpel2owfn/ressource/bpel2owfn.png
-doc_category: Business
-doc_summary: Translating web service in BPEL to Open Workflow Nets
-doc_url: htmlxref
-blurb_id: bpel2owfn_blurb
-download_url: https://github.com/nlohmann/bpel2owfn
-gplv3_status: done-in-2.0.4
-last_release: 2.4
-last_release_date: 20100124
-last_contact: 9apr10 replied
-activity_status: stable
-last_activity: 20100124
-
-package: c-graph
-logo: /software/c-graph/images/c-graph.png
-doc_category: Mathematics
-doc_summary: Visualizing and demonstrating convolution
-doc_url: /software/c-graph/manual/
-blurb_id: c_graph_blurb
-gplv3_status: done
-last_release: 2.0
-last_release_date: 20120426
-activity_status: stale
-last_activity: 20120426
-
-package: ccaudio
-mundane_name: ccAudio
-doc_category: Telephony
-doc_summary: Standalone C++ class framework for manipulating audio data
-doc_url: /software/ccaudio/ccaudio.html#documentation
-blurb_id: ccaudio_blurb
-gplv3_status: done-in-1.0.0
-last_release: ccaudio2-2.2.0
-last_release_date: 20151213
-activity_status: ok
-last_activity: 20151213
-
-package: ccd2cue
-doc_category: Audio
-doc_summary: CCD to CUE sheet conversion
-doc_url: /software/ccd2cue/manual/
-blurb_id: ccd2cue_blurb
-gplv3_status: done
-last_release: 0.5
-last_release_date: 20150313
-activity_status: ok
-last_activity: 20150313
-
-package: ccide
-doc_category: Software
-doc_summary: Decision table code generator
-doc_url: none
-blurb_id: ccide_blurb
-gplv3_status: done
-download_url: http://sourceforge.net/projects/ccide/files/
-last_release: 0.6.6
-last_release_date: 20120905
-activity_status: stale
-last_activity: 20120905
-
-package: ccrtp
-mundane_name: ccRTP
-copyright_holder: notfsf
-doc_category: Telephony
-doc_summary: Implementation of RTP (real-time transport protocol)
-doc_url: /software/ccrtp/ccrtp.html#documentation
-blurb_id: ccrtp_blurb
-gplv3_status: not-done-in-1.6.2, gplv3 done in libzrtpcpp-1.1.0
-last_release: libzrtpcpp-2.3.4
-last_release_date: 20130701
-last_release: 2.1.2
-last_release_date: 20150329
-activity_status: ok
-last_activity: 20140414
-
-package: ccscript
-mundane_name: ccScript
-doc_category: Telephony
-doc_summary: C++ class framework for virtual machine execution
-doc_url: /software/ccscript/ccscript.html#documentation
-blurb_id: ccscript_blurb
-gplv3_status: done-in-4.0.0
-last_release: ccscript3-1.1.7
-last_release_date: 20090214
-last_release: 5.1.0
-last_release_date: 20151213
-activity_status: ok
-last_activity: 20151213
-
-package: cfengine
-copyright_holder: fsf-no-reply
-logo: //cfengine.com/wp-content/uploads/2014/06/logo_with_box.png
-doc_category: Sysadmin
-doc_summary: Configuration engine for system and network administration
-doc_url: /software/cfengine/docs/cfdocs.html
-blurb_id: cfengine_blurb
-download_url: http://www.cfengine.org/pages/download
-gplv3_status: done-in-v3-but-no-longer-gnu
-last_release: 2.2.8
-last_release_date: 20080805
-last_contact: feb10 gscrivano prepared patches for rms
-activity_status: stale
-last_activity: 20080805
-
-package: cflow
-doc_category: Software
-doc_summary: Create a graph of control flow within a program
-doc_url: /software/cflow/manual/
-blurb_id: cflow_blurb
-gplv3_status: done-in-1.3
-last_release: 1.5
-last_release_date: 20160517
-activity_status: ok
-last_activity: 20160517
-
-package: cgicc
-copyright_holder: notfsf
-doc_category: Libraries
-doc_summary: C++ class library for writing CGI applications
-doc_url: none
-blurb_id: cgicc_blurb
-gplv3_status: done-in-3.2.5
-logo: /software/cgicc/images/cgicc.png
-last_release: 3.2.16
-last_release_date: 20141207
-activity_status: ok
-last_activity: 20141207
-
-package: chess
-copyright_holder: fsf-ok-#786709-also-#786476,794064,795361
-doc_category: Games
-doc_summary: Full chess implementation
-doc_url: /software/chess/manual/
-blurb_id: chess_blurb
-gplv3_status: done-in-6.0.0
-last_release: 6.2.4
-last_release_date: 20161029
-activity_status: ok
-last_activity: 20161029
-
-package: cim
-doc_category: Software
-doc_summary: Simula compiler
-doc_url: none
-blurb_id: cim_blurb
-gplv3_status: not-done-in-3.30
-last_release: 5.1
-last_release_date: 20140518
-activity_status: ok
-last_activity: 20140518
-
-package: classpath
-copyright_holder: fsf-no-reply
-#logowithtoomuchquoting:
//developer.classpath.org/mediation/ClasspathBanners?action=AttachFile&do=get&target=GNU_Classpath_badge-180x180.png
-doc_category: Libraries
-doc_summary: Core class libraries for Java
-doc_url: /software/classpath/docs/
-blurb_id: classpath_blurb
-gplv3_status: needs-exception-not-done-in-0.98-#530926
-last_release: inetlib-1.1.2
-last_release_date: 20100325
-last_release: 0.99
-last_release_date: 20120316
-activity_status: stale
-last_activity: 20120316
-
-package: classpathx
-copyright_holder: fsf-ok-#786644
-logo: /software/classpathx/classpathx-logo.jpg
-language: java
-doc_category: Libraries
-doc_summary: Classpath extensions: javax.* libraries
-doc_url: none
-blurb_id: classpathx_blurb
-gplv3_status: not-done-worry-about-classpath-first
-last_release: activation-1.1.2
-last_release_date: 20131112
-note: jaxp module is not copyright fsf?
-note: mostly merged into classpath
-activity_status: stale
-last_activity: 20131112
-
-package: clisp
-mundane_name: CLISP
-logo: /software/clisp/clisp.png
-doc_category: Software
-doc_summary: A Common Lisp implementation
-doc_url: /software/clisp/impnotes/clisp.html
-blurb_id: clisp_blurb
-gplv3_status: not-done-gplv2-only-in-2.4.5-bruno:24oct07-asked-rms:oct09
-last_release: 2.49
-last_release_date: 20100707
-last_contact: #773646 4oct12 asked bruno, 3jan11-rms-talking,
-activity_status: stale
-last_activity: 20100707
-
-package: combine
-doc_category: Text
-doc_summary: Extensible file matching and filtering
-doc_url: /software/combine/manual/
-blurb_id: combine_blurb
-gplv3_status: in-dev-sources (gnumaint-reply 20 Aug 2007 20:11:22)
-last_release: 0.4.0
-last_release_date: 20130729
-activity_status: stale
-last_activity: 20130729
-
-package: commoncpp
-mundane_name: [u]Common C++
-doc_category: Libraries
-doc_summary: [u]Common C++ framework for threaded applications
-doc_url: /software/commoncpp/commoncpp.html#documentation
-blurb_id: commoncpp_blurb
-gplv3_status: not-done-commoncpp2-1.6.3.tar.gz, done-ucommon-1.9.1
-last_release: commoncpp2-1.8.0
-last_release_date: 20100224
-last_release: ucommon-7.0.0
-last_release_date: 20151213
-activity_status: ok
-last_activity: 20151213
-
-package: complexity
-doc_category: Software
-doc_summary: Analyze complexity of C functions
-doc_url: /software/complexity/manual/
-blurb_id: complexity_blurb
-gplv3_status: done
-last_release: 1.10
-last_release_date: 20160309
-activity_status: ok
-last_activity: 20160309
-
-package: config
-copyright_holder: fsf-ok-#786463
-doc_category: Software
-doc_summary: Ubiquitious config.guess and config.sub scripts
-doc_url: none
-blurb_id: config_blurb
-gplv3_status: done-with-exception-#341945 (gnumaint-reply 21 Aug 2007 18:39:06)
-note: released-through-vc
-activity_status: ok
-
-package: consensus
-doc_category: Internet
-doc_summary: Coordinate free software social networking projects
-doc_url: none
-blurb_id: consensus_blurb
-gplv3_status: not-done-since-no-release
-activity_status: newpkg
-last_activity: 20121227
-
-package: coreutils
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: Core GNU utilities (file, text, shell)
-doc_url: /software/coreutils/manual/
-blurb_id: coreutils_blurb
-gplv3_status: done-in-7.1
-last_release: 8.26
-last_release_date: 20161130
-activity_status: ok
-last_activity: 20161130
-
-package: cpio
-copyright_holder: fsf-ok-#793767
-doc_category: Archiving
-doc_summary: Manage cpio and tar file archives
-doc_url: /software/cpio/manual/
-blurb_id: cpio_blurb
-gplv3_status: done-in-2.9
-last_release: 2.12
-last_release_date: 20150912
-activity_status: ok
-last_activity: 20150912
-
-package: cppi
-copyright_holder: fsf-no-reply
-gplv3_status: done-in-1.14
-doc_category: Software
-doc_summary: Indent C preprocessor directives to reflect nesting and more
-doc_url: /software/cppi/manual/
-blurb_id: cppi_blurb
-last_release: 1.17
-last_release_date: 20130316
-activity_status: stale
-last_activity: 20130316
-
-package: cssc
-mundane_name: CSSC
-copyright_holder: fsf-ok-with-sccs-bsd-#786553
-doc_category: Version
-doc_summary: File-based version control like SCCS
-doc_url: htmlxref
-blurb_id: cssc_blurb
-gplv3_status: done-in-1.1.0-plus-bsd
-last_release: CSSC-1.4.0
-last_release_date: 20140711
-activity_status: ok
-last_activity: 20140711
-
-package: cursynth
-doc_category: Music
-doc_summary: Polyphonic and MIDI subtractive music synthesizer using curses
-doc_url: none
-blurb_id: cursynth_blurb
-gplv3_status: done-initially
-last_release: 1.5
-last_release_date: 20140413
-activity_status: ok
-last_activity: 20140413
-
-package: dap
-copyright_holder: fsf-no-reply
-language: c
-doc_category: Mathematics
-doc_summary: Statistics and graphics package
-doc_url: none
-blurb_id: dap_blurb
-gplv3_status: not-done-maintainer-wants-volunteer (4 Sep 2007 22:37:48, 28 Jan
2008 20:23:40)
-last_release: 3.10
-last_release_date: 20140416
-activity_status: ok
-last_activity: 20140416
-
-package: datamash
-copyright_holder: notfsf
-doc_category: Mathematics
-doc_summary: Scriptable statistics and data calculation
-doc_url: none
-blurb_id: datamash_blurb
-last_release: 1.1.1
-last_release_date: 20170120
-activity_status: ok
-last_activity: 20170120
-
-package: dc
-copyright_holder: see-bc
-doc_category: Mathematics
-doc_summary: Arbitrary precision numeric processing with reverse-polish
notation
-doc_url: /software/bc/manual/dc-1.05/
-blurb_id: dc_blurb
-gplv3_status: see-bc
-note: merged into the bc package (dc.README)
-last_contact: see bc
-activity_status: subpkg
-
-package: ddd
-copyright_holder: fsf-no-reply
-mundane_name: DDD
-copyright_holder: notfsf
-doc_category: Software
-doc_summary: Graphical front-end for GDB and other debuggers
-doc_url: htmlxref
-blurb_id: ddd_blurb
-logo: /graphics/dddlogo.jpg
-gplv3_status: done-as-of-3.3.12
-last_release: 3.3.12
-last_release_date: 20090211
-activity_status: newmaint
-last_activity: 20130118
-
-package: ddrescue
-mundane_name: ddrescue
-doc_category: Sysadmin
-doc_summary: Data recovery utility
-doc_url: htmlxref
-blurb_id: ddrescue_blurb
-gplv3_status: done-in-1.5
-last_release: 1.21
-last_release_date: 20160321
-activity_status: ok
-last_activity: 20160321
-
-package: dejagnu
-mundane_name: DejaGnu
-copyright_holder: fsf-ok-#786474,#786759
-logo: /software/dejagnu/images/logo.png
-doc_category: Software
-doc_summary: GNU software testing framework
-doc_url: /software/dejagnu/manual/
-blurb_id: dejagnu_blurb
-doc_source_format: docbook
-gplv3_status: done?-in-1.5
-last_release: 1.6
-last_release_date: 20160416
-activity_status: ok
-last_activity: 20160416
-
-package: denemo
-doc_category: Music
-doc_summary: Graphical music notation, front-end to GNU Lilypond
-doc_url: none
-blurb_id: denemo_blurb
-logo: //denemo.sourceforge.net/images/logo1.png
-gplv3_status: not-done-as-of-0.8.16-old-authors?
-last_release: 2.0.14
-last_release_date: 20161130
-activity_status: ok
-last_activity: 20161130
-
-package: dia
-logo: //static.gnome.org/img/dialogo.jpg
-doc_category: Graphics
-doc_summary: Diagram creation for GNOME
-doc_url: http://wiki.gnome.org/Apps/Dia/Documentation
-blurb_id: dia_blurb
-download_url: http://ftp.gnome.org/pub/gnome/sources/dia/
-gplv3_status: not-done-in-0.97-awaiting-gnome-in-general-i-suppose
-last_release: 0.97.2
-last_release_date: 20111218
-note: not clear if this is really a GNU package
-activity_status: stale
-last_activity: 20111218
-
-package: dico
-doc_category: Dictionaries
-doc_summary: Implementation of DICT server (RFC 2229)
-doc_url: http://dico.man.gnu.org.ua/
-blurb_id: dico_blurb
-gplv3_status: done-as-of-2.0
-last_release: 2.4
-last_release_date: 20161121
-activity_status: ok
-last_activity: 20161121
-
-package: diction
-doc_category: Text
-doc_summary: Identifies wordy and commonly misused phrases
-doc_url: none
-blurb_id: diction_blurb
-gplv3_status: done-in-1.11
-last_release: 1.11
-last_release_date: 20070917
-activity_status: stable
-last_activity: 20070917
-
-package: diffutils
-copyright_holder: fsf-ok-#786489
-doc_category: Text
-doc_summary: Comparing and merging files
-doc_url: htmlxref
-blurb_id: diffutils_blurb
-gplv3_status: done-in-2.9
-last_release: 3.5
-last_release_date: 20160821
-activity_status: ok
-last_activity: 20160821
-
-package: dionysus
-doc_category: Science
-doc_summary: Local search for universal constants and scientific values
-doc_url: none
-blurb_id: dionysus_blurb
-gplv3_status: done-as-of-1.1.0
-last_release: 1.3.0
-last_release_date: 20100829
-activity_status: stale
-last_activity: 20100829
-
-package: direvent
-doc_category: Sysadmin
-doc_summary: Daemon to monitor directories for events such as file removal
-doc_url: none
-blurb_id: direvent_blurb
-gplv3_status: done
-last_release: 5.1
-last_release_date: 20160706
-activity_status: ok
-last_activity: 20160706
-
-package: djgpp
-mundane_name: DJGPP
-copyright_holder: notfsf (DJ Delorie and others)
-doc_category: Software
-doc_summary: Development system and GNU utilities for DOS on x86 hardware
-doc_url: none
-blurb_id: djgpp_blurb
-gplv3_status: needs-exception-#342079 (gnumaint-reply 20 Aug 2007 21:43:02)
-download_url: http://www.delorie.com/pub/djgpp/current/v2gnu/?M=A
-last_release: 2.03
-last_release_date: 20130205
-note: not clear how to download "djgpp" as a whole.
-last_contact: eliz, in bug-gnulib 26 Jan 2011 20:56:24, says no more releases
-activity_status: stable
-last_activity: 20130205
-
-package: dominion
-doc_category: Games
-doc_summary: Multi-player world simulation and role-playing game
-doc_url: none
-blurb_id: dominion_blurb
-gplv3_status: not-done-since-stale
-last_release: 2.8.2
-last_release_date: 20050217
-last_contact: 8jan10 asked
-activity_status: stale
-last_activity: 20050217
-
-package: dr-geo
-mundane_name: Dr. Geo
-doc_category: Education
-doc_summary: Interactive geometry software
-doc_url: https://www.gnu.org/software/dr-geo/doc/
-blurb_id: dr_geo_blurb
-download_url:
http://sourceforge.net/project/showfiles.php?group_id=13320&package_id=91900
-gplv3_status: not-done-since-nomaint
-last_release: 16.10a
-last_release_date: 20160911
-activity_status: ok
-last_activity: 20160911
-
-package: easejs
-copyright_holder: fsf-ok
-doc_category: Web
-doc_summary: Classical object-oriented framework for JavaScript
-doc_url: http://www.gnu.org/software/easejs/manual.html
-blurb_id: easejs_blurb
-gplv3_status: done-in-0.1.0
-last_release: 0.2.8
-last_release_date: 20160715
-activity_status: ok
-last_activity: 20160715
-
-package: ed
-copyright_holder: notfsf-#786696
-doc_category: Text
-doc_summary: Line-oriented text editor
-doc_url: htmlxref
-blurb_id: ed_blurb
-gplv3_status: done-in-1.0
-last_release: 1.14.1
-last_release_date: 20170112
-activity_status: ok
-last_activity: 20170112
-
-package: edma
-mundane_name: EDMA
-doc_category: Software
-doc_summary: Object-oriented component-based development environment
-doc_url: none
-blurb_id: edma_blurb
-gplv3_status: in-dev-sources
-last_release: 0.18.6, gecb-0.8.4, gidfwizard-0.6.4
-last_release_date: 20130314
-activity_status: stale
-last_activity: 20130314
-
-package: electric
-copyright_holder: fsf-ok-with-dependencies-#786479
-logo: /software/electric/electric.jpg
-doc_category: Science
-doc_url: http://www.staticfreesoft.com/jmanual/
-blurb_id: electric_blurb
-doc_summary: Electrical CAD system
-gplv3_status: in-dev-sources (gnumaint-reply 20 Aug 2007 18:50:41 -0700)
-last_release: 9.07
-last_release_date: 20161123
-activity_status: ok
-last_activity: 20161123
-
-package: emacs
-copyright_holder: fsf-maybe-ok-with-external-#786663
-#logowithtoomuchquoting:
http://cvs.savannah.gnu.org/viewvc/*checkout*/emacs/etc/images/icons/emacs_48.png?root=emacs&revision=1.3
-doc_category: Editors
-doc_summary: The extensible, customizable, self-documenting text editor
-doc_url: /software/emacs/#Manuals
-blurb_id: emacs_blurb
-doc_url: htmlxref
-doc_shop: Emacs Reference Cards
-doc_shop: https://shop.fsf.org/books-docs/emacs-reference-card-v25
-doc_shop: GNU Emacs Manual
-doc_shop: https://shop.fsf.org/books/gnu-emacs-manual-18th-edition-v-261
-gplv3_status: done-in-22.3
-last_release: 25.1
-last_release_date: 20160917
-activity_status: ok
-last_activity: 20160917
-
-package: emacs-muse
-copyright_holder: fsf-ok-#786499
-doc_category: Web
-doc_summary: Authoring and publishing environment for Emacs
-doc_url: /software/emacs-muse/manual/
-blurb_id: emacs_muse_blurb
-download_url:
https://web.archive.org/web/20160507124048/http://download.gna.org/muse-el/
-gplv3_status: done-in-3.10
-last_release: 3.12
-last_release_date: 20080128
-activity_status: stale
-last_activity: 20080128
-
-package: emms
-copyright_holder: fsf-no-reply
-mundane_name: EMMS
-doc_category: Audio
-doc_summary: Emacs Multimedia System
-doc_url: htmlxref
-blurb_id: emms_blurb
-logo: /software/emms/emms-logo-small-2.png
-gplv3_status: done-as-of-3.0
-last_release: 4.2
-last_release_date: 20161108
-activity_status: ok
-last_activity: 20161108
-
-package: enscript
-copyright_holder: fsf-no-reply
-doc_category: Printing
-doc_summary: Generating PostScript, including pretty-printing
-doc_url: none
-blurb_id: enscript_blurb
-gplv3_status: done-in-1.6.5
-last_release: 1.6.6
-last_release_date: 20120925
-activity_status: newmaint
-last_activity: 20140305
-
-package: eprints
-logo: //www.eprints.org/style/eprintslogo.gif
-doc_category: Education
-doc_summary: Web-based repository software, with a default setup for research
papers
-doc_url: http://wiki.eprints.org/w/EPrints_Manual
-blurb_id: eprints_blurb
-download_url: http://files.eprints.org/view/type/release.html
-gplv3_status: not-done-in-3.1.3
-last_release: 3.3.12
-last_release_date: 20130724
-last_contact: 23nov09 replied, no gplv3 decision
-note: explicit ok from rms that this is hosted remotely.
-note: explicitly don't want to release via ftp.gnu.org (11mar10->karl)
-activity_status: stale
-last_activity: 20130724
-
-package: epsilon
-copyright_holder: notfsf-#786552,#374046
-doc_category: Software
-doc_summary: A purely functional programming language
-doc_url: /software/epsilon/manual/
-blurb_id: epsilon_blurb
-gplv3_status: done-per-agreement-#374046
-note: no-release
-last_contact: 12dec12 replied "alpha soon"
-activity_status: stale
-
-package: fdisk
-copyright_holder: fsf-no-reply
-doc_category: Sysadmin
-doc_summary: Low-level disk partitioning and formatting
-doc_url: none
-blurb_id: fdisk_blurb
-gplv3_status: done-in-1.0
-last_release: 2.0.0a1
-last_release_date: 20111204
-activity_status: stale
-last_activity: 20111204
-
-package: ferret
-logo: /software/ferret/ferret.png
-doc_category: Database
-doc_summary: Entity/relationship based data modeler
-doc_url: none
-blurb_id: ferret_blurb
-gplv3_status: done-in-0.7
-last_release: 0.7
-last_release_date: 20081116
-activity_status: newmaint
-last_activity: 20130414
-
-package: findutils
-copyright_holder: fsf-ok-#786556
-doc_category: Software
-doc_summary: Operating on files matching given criteria
-doc_url: /software/findutils/manual/
-blurb_id: findutils_blurb
-gplv3_status: in-dev-sources (gnumaint-reply 23 Aug 2007 10:14:01 +0100)
-last_release: 4.6.0
-last_release_date: 20151228
-last_contact: 1may12-replied-four-blocking-bugs
-activity_status: ok
-last_activity: 20151228
-
-package: fisicalab
-mundane_name: FisicaLab
-copyright_holder: notfsf
-doc_category: Education
-doc_summary: Educational application for solving physics problems
-doc_url: none
-blurb_id: fisicalab_blurb
-gplv3_status: done-in-0.3.3
-last_release: 0.3.5
-last_release_date: 20150530
-activity_status: ok
-last_activity: 20150530
-
-package: flex manual
-doc_summary: null
-blurb_id: flex_manual_blurb
-gplv3_status: doc
-note: no-release
-activity_status: stale
-
-package: foliot
-copyright_holder: notfsf
-doc_category: Business
-doc_summary: An application for tracking time spent on projects
-doc_url: none
-blurb_id: foliot_blurb
-gplv3_status: done-in-0.9.5
-last_release: 0.9.6
-last_release_date: 20160308
-activity_status: ok
-last_activity: 20160308
-
-package: fontopia
-copyright_holder: notfsf
-doc_category: Fonts
-doc_summary: A console font editor
-doc_url: none
-gplv3_status: done-in-1.0
-activity_status: newpkg
-last_activity: 20160426
-
-package: fontutils
-copyright_holder: fsf-ok-#788255
-doc_category: Fonts
-doc_summary: Scanned image, bitmap, outline font manipulation
-doc_url: http://www.delorie.com/gnu/docs/fontutils/fontu_toc.html
-blurb_id: fontutils_blurb
-gplv3_status: not-done-since-stale
-last_release: 0.7
-last_release_date: 20000401
-last_contact: 12feb13 not soon
-activity_status: stale
-last_activity: 20000401
-
-package: freedink
-mundane_name: FreeDink
-search_alias: FreeDink DFArc frontend
-doc_category: Games
-doc_summary: Twisted adventures of young pig farmer Dink Smallwood
-doc_url: http://www.freedink.org/doc/
-blurb_id: freedink_blurb
-copyright_holder: notfsf
-gplv3_status: done-in-1.08 (gnumaint-reply 24 Aug 2007 19:47:56 +0200)
-last_release: 108.4, dfarc-3.10/20120427
-last_release_date: 20141022
-activity_status: ok
-last_activity: 20141022
-
-package: freefont
-mundane_name: Free UCS Outline Fonts
-doc_category: Fonts
-doc_summary: Unicode-encoded outline fonts
-doc_url: none
-blurb_id: freefont_blurb
-gplv3_status: done-in-20090104
-last_release: freefont-src
-last_release_date: 20120503
-activity_status: stale
-last_activity: 20120503
-
-package: freeipmi
-mundane_name: FreeIPMI
-doc_category: Libraries
-doc_summary: Platform management, including sensor and power monitoring
-doc_url: /software/freeipmi/documentation.html
-blurb_id: freeipmi_blurb
-logo: /software/freeipmi/images/freeipmi-logo-small.jpg
-gplv3_status: in-dev-sources
-last_contact: 14jan10 replied, next major release
-last_release: 1.5.4
-last_release_date: 20160930
-activity_status: ok
-last_activity: 20160930
-
-package: freetalk
-doc_category: Internet
-doc_summary: Extensible console-based Jabber client
-doc_url: /software/freetalk/freetalk.html
-blurb_id: freetalk_blurb
-download_url: http://download.savannah.gnu.org/releases/freetalk/
-gplv3_status: done-as-of-3.2
-last_release: 4.1
-last_release_date: 20141220
-activity_status: nomaint
-last_activity: 20161114
-
-package: fribidi
-mundane_name: FriBiDi
-doc_category: Localization
-doc_summary: Implementation of the Unicode bidirectional algorithm
-doc_url: none
-blurb_id: fribidi_blurb
-download_url: http://fribidi.org/download/
-gplv3_status: under-discussion-with-brett (gnumaint-reply 3 Oct 2007 11:06:24)
-last_release: 0.19.2
-last_release_date: 20090326
-activity_status: stale
-last_activity: 20090326
-
-package: g-golf
-mundane_name: G-Golf
-doc_category: Interface
-doc_summary: Guile bindings for GObject Introspection
-doc_url: none
-gplv3_status: not-done
-activity_status: newpkg
-last_activity: 20160725
-
-package: gama
-doc_category: Science
-doc_summary: Adjustment of geodetic networks
-doc_url: /software/gama/manual/
-logo: /software/gama/g-logo.png
-blurb_id: gama_blurb
-gplv3_status: done-in-1.9.04
-last_release: 1.18
-last_release_date: 20160816
-activity_status: ok
-last_activity: 20160816
-
-package: garpd
-mundane_name: Gratuitous ARP Daemon
-doc_category: Internet
-doc_summary: Broadcast gratuitous ARP requests for IPMI and more
-doc_url: none
-blurb_id: garpd_blurb
-gplv3_status: done-in-0.2.0
-last_release: 0.2.0
-last_release_date: 20101206
-last_contact: 21nov10 reply, "soon"
-activity_status: stale
-last_activity: 20101206
-
-package: gawk
-copyright_holder: fsf-maybe-ok-just-doc/macros-#787150
-doc_category: Text
-doc_summary: Text scanning and processing language
-doc_url: /software/gawk/manual/
-blurb_id: gawk_blurb
-doc_url: htmlxref
-gplv3_status: done-in-3.1.6
-last_release: 4.1.4
-last_release_date: 20160825
-activity_status: ok
-last_activity: 20160825
-
-package: gbehistun
-copyright_holder: notfsf
-doc_category: Science
-doc_summary: Planetary Science tools
-doc_url: none
-gplv3_status: unknown
-activity_status: newpkg
-last_activity: 20170129
-
-package: gcal
-copyright_holder: notfsf
-doc_category: Business
-doc_summary: Calculating and printing a wide variety of calendars
-doc_url: /software/gcal/manual/
-blurb_id: gcal_blurb
-gplv3_status: done-in-3.5
-last_release: 4.1
-last_release_date: 20170122
-activity_status: ok
-last_activity: 20170122
-
-package: gcc
-mundane_name: GCC
-copyright_holder: fsf-ok-with-external-#786963
-doc_category: Software
-doc_summary: GNU Compiler Collection
-doc_url: /software/gcc/
-blurb_id: gcc_blurb
-doc_url: htmlxref
-doc_shop: Using GCC: The GNU Compiler Collection Reference Manual
-doc_shop:
http://shop.fsf.org/product/using-gcc-gnu-compiler-collection-reference-manual/
-logo: /software/gcc/img/gccegg-65.png
-gplv3_status: done
-last_release: 4.9.4
-last_release_date: 20160803
-last_release: 5.3
-last_release_date: 20151204
-last_release: 6.3
-last_release_date: 20161221
-activity_status: ok
-last_activity: 20161221
-
-package: gcide
-doc_category: Dictionaries
-doc_summary: GNU Collaborative International Dictionary of English
-doc_url: none
-blurb_id: gcide_blurb
-gplv3_status: unknown
-last_release: 0.51
-last_release_date: 20120304
-activity_status: stale
-last_activity: 20120304
-
-package: gcl
-mundane_name: GNU Common Lisp
-doc_category: Software
-doc_summary: A Common Lisp implementation
-doc_url: none
-blurb_id: gcl_blurb
-gplv3_status: not-done-is-lgplv2+-has-gplv2-only-users-9nov10-asked-rms
-last_release: 2.6.12
-last_release_date: 20141028
-activity_status: ok
-last_activity: 20141028
-
-package: gcompris
-mundane_name: GCompris
-doc_category: Education
-doc_summary: Educational games for small children
-doc_url: http://gcompris.net/wiki/Manual
-blurb_id: gcompris_blurb
-gplv3_status: done-in-8.4beta2 (gnumaint-reply 22 Aug 2007 02:04:12)
-download_url: http://sourceforge.net/project/showfiles.php?group_id=6865
-last_release: 15.02
-last_release_date: 20150224
-activity_status: ok
-last_activity: 20150224
-
-package: gdb
-mundane_name: GDB
-copyright_holder: fsf-not-completely-#786588
-doc_category: Software
-doc_summary: The GNU debugger
-doc_url: /software/gdb/documentation/
-blurb_id: gdb_blurb
-doc_url: htmlxref
-doc_shop: Debugging with GDB: The GNU Source-Level Debugger
-doc_shop:
http://shop.fsf.org/product/debugging-gdb-gnu-source-level-debugger-10/
-gplv3_status: done-in-6.7
-logo: /software/gdb/images/archer.jpg
-last_release: 7.12.1
-last_release_date: 20170121
-activity_status: ok
-last_activity: 20170121
-
-package: gdbm
-copyright_holder: fsf-ok-#793768
-doc_category: Database
-doc_summary: Hash library of database functions compatible with traditional dbm
-doc_url: http://www.gnu.org.ua/software/gdbm/manual/
-blurb_id: gdbm_blurb
-gplv3_status: not-done
-last_release: 1.12
-last_release_date: 20160516
-activity_status: ok
-last_activity: 20160516
-
-package: gengen
-doc_category: Software
-doc_summary: A parameterized-text-generator generator based on a template
-doc_url: /software/gengen/gengen.html
-blurb_id: gengen_blurb
-gplv3_status: done-in-1.3
-last_release: 1.4.2
-last_release_date: 20100906
-activity_status: stale
-last_activity: 20100906
-
-package: gengetopt
-copyright_holder: fsf-ok-#796330
-doc_category: Software
-doc_summary: Create parsers for command line options
-doc_url: /software/gengetopt/gengetopt.html
-blurb_id: gengetopt_blurb
-gplv3_status: done-in-2.22.1
-last_release: 2.22.6
-last_release_date: 20121107
-activity_status: stale
-last_activity: 20121107
-
-package: gettext
-copyright_holder: fsf-ok-with-external-#786766
-doc_category: Localization
-doc_summary: Tools and documentation for translation
-doc_url: /software/gettext/manual/
-blurb_id: gettext_blurb
-gplv3_status: done-except-for-dependencies-in-0.17
-last_release: 0.19.8.1
-last_release_date: 20160611
-activity_status: ok
-last_activity: 20160611
-
-package: gforth
-copyright_holder: fsf-ok-#786710
-logo: /software/gforth/gnu-forth.png
-doc_category: Software
-doc_summary: Forth interpreter
-doc_url: htmlxref
-blurb_id: gforth_blurb
-gplv3_status: done-in-0.7.0
-last_release: 0.7.3
-last_release_date: 20140709
-activity_status: ok
-last_activity: 20140709
-
-package: gg-network
-copyright_holder: not-applicable
-doc_summary: null
-blurb_id: gg_network_blurb
-gplv3_status: not-applicable
-container: for-gnu-group
-note: first gnu group
-activity_status: container
-
-package: ggradebook
-doc_category: Education
-doc_summary: GNOME application to track students' grades for teachers
-doc_url: none
-blurb_id: ggradebook_blurb
-gplv3_status: not-done-since-stale
-last_release: 0.91
-last_release_date: 20000410
-last_contact: 22feb13 replied, 18feb13 asked
-next_contact: 15apr13
-activity_status: newmaint
-last_activity: 20160503
-
-package: ghostscript
-mundane_name: GNU Ghostscript
-copyright_holder: notfsf
-doc_category: Printing
-doc_summary: PostScript and PDF interpreter
-doc_url: none
-blurb_id: ghostscript_blurb
-logo: /software/ghostscript/images/gnugs-head.png
-gplv3_status: done-in-8.71.0
-last_release: 9.14.0
-last_release_date: 20141204
-activity_status: ok
-last_activity: 20141204
-
-package: gift
-mundane_name: GIFT
-logo: /software/gift/gnu.image.finder.png
-doc_category: Graphics
-doc_summary: GNU Image Finding Tool, with query by example
-doc_url: none
-blurb_id: gift_blurb
-gplv3_status: not-done
-last_release: 0.1.14
-last_release_date: 20050324
-last_contact: 18feb13 replied, asked
-activity_status: newmaint
-last_activity: 20110826
-
-package: gimp
-mundane_name: GIMP
-logo: //www.gimp.org/images/wilber_the_gimp.png
-doc_category: Graphics
-doc_summary: GNU Image Manipulation Program
-doc_url: http://www.gimp.org/docs/
-blurb_id: gimp_blurb
-download_url: ftp://ftp.gimp.org/pub/gimp/
-gplv3_status: not-done-in-2.6.8-probably-depends-on-gnome
-last_release: 2.8.14
-last_release_date: 20140826
-activity_status: ok
-last_activity: 20140826
-
-package: gimp www pages
-doc_summary: null
-blurb_id: gimp_www_pages_blurb
-gplv3_status: doc
-container: is-gimp
-note: there is no particularly good reason why this is listed
-note: separately from gimp itself; just historical accident.
-activity_status: container
-
-package: glean
-language: guile
-doc_category: Education
-doc_summary: extensible quizzing and tutorial for self-study
-doc_url: /software/glean/
-blurb_id: glean_blurb
-gplv3_status: ok-agplv3+
-activity_status: newpkg
-last_activity: 20141221
-
-package: gleem
-language: java,c++
-doc_category: Libraries
-doc_summary: OpenGL Extremely Easy-to-use Manipulators
-doc_url: /software/gleem/doc/
-blurb_id: gleem_blurb
-gplv3_status: not-done-since-nomaint
-last_release: 1.2.1
-last_release_date: 20020205
-activity_status: nomaint
-last_activity: 20160921
-note: Package does not meet gnueval standards. Please ensure that
-+ prospective maintainers are willing to do that work.
-
-package: glib
-mundane_name: GLib
-doc_category: Libraries
-doc_summary: Thread-safe general utility library; basis of GTK+ and GNOME
-doc_url: http://library.gnome.org/devel/glib/unstable/
-blurb_id: glib_blurb
-download_url: http://ftp.gnome.org/pub/gnome/sources/glib/
-gplv3_status: see-gtk+
-last_release: 2.46.2
-last_release_date: 20151112
-activity_status: ok
-last_activity: 201511122
-
-package: global
-doc_category: Software
-doc_summary: Cross-environment source code tag system
-doc_url: htmlxref
-blurb_id: global_blurb
-gplv3_status: done-in-5.6.2
-logo: /software/global/globe.png
-last_release: 6.5.4
-last_release_date: 20160327
-activity_status: ok
-last_activity: 20160327
-
-package: glpk
-mundane_name: GLPK
-doc_category: Libraries
-doc_summary: GNU Linear Programming Kit, supporting the MathProg language
-doc_url: none
-blurb_id: glpk_blurb
-gplv3_status: done-in-directory
-last_release: 4.61
-last_release_date: 20170122
-activity_status: ok
-last_activity: 20170122
-
-package: glue
-mundane_name: GLUE
-logo: /software/glue/glue-butterfly.jpg
-doc_category: Software
-doc_summary: Distributed groupware application framework
-doc_url: none
-blurb_id: glue_blurb
-gplv3_status: not-done-since-nonexistent
-note: no-release
-activity_status: moribund
-
-package: gmediaserver
-doc_category: Audio
-doc_summary: UPnP compatible media server
-doc_url: htmlxref
-blurb_id: gmediaserver_blurb
-download_url: http://download.savannah.gnu.org/releases/gmediaserver/
-gplv3_status: done-in-0.13.0 (18 Oct 2007 17:50:13)
-last_release: 0.13.0
-last_release_date: 20071110
-last_contact: 20nov10 replied, this year
-activity_status: stale
-last_activity: 20071110
-
-package: gmp
-mundane_name: GMP
-copyright_holder: fsf-no-reply
-doc_category: Mathematics
-doc_summary: Multiple-precision arithmetic library
-doc_url: /software/gmp/manual/
-blurb_id: gmp_blurb
-logo: //gmplib.org/gmplogo2.png
-gplv3_status: lgplv3+-as-of-4.2.2-in-2007
-last_release: 6.0.0a
-last_release_date: 20140325
-activity_status: ok
-last_activity: 20140325
-
-package: gnash
-copyright_holder: fsf-ok-#786466
-logo: /software/gnash/images/small-GnashGnu.png
-doc_category: Internet
-doc_summary: Flash movie player
-doc_url: /software/gnash/documentation.html
-blurb_id: gnash_blurb
-doc_source_format: docbook
-gplv3_status: done-in-0.8.2
-last_release: 0.8.10
-last_release_date: 20120131
-activity_status: stale
-last_activity: 20120131
-
-package: gnat
-mundane_name: GNAT
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: Ada compiler
-doc_url: none
-blurb_id: gnat_blurb
-download_url: http://libre.adacore.com/libre/download2/
-gplv3_status: done-as-of-2009
-last_release: 2013
-last_release_date: 20130523
-activity_status: stale
-last_activity: 20130523
-
-package: gnats
-mundane_name: GNATS
-copyright_holder: fsf-ok-almost-completely-#790955
-logo: /software/gnats/images/gnatslogo.png
-doc_category: Software
-doc_summary: GNU problem report and bug management system
-doc_url: /software/gnats/#documentation
-blurb_id: gnats_blurb
-gplv3_status: in-dev-sources rms (gnumaint-reply 21 Aug 2007 23:53:43)
-last_release: 4.2.0
-last_release_date: 20150226
-activity_status: ok
-last_activity: 20150226
-
-package: gnatsweb
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: Web interface to GNATS
-doc_url: none
-blurb_id: gnatsweb_blurb
-gplv3_status: not-done-in-4.0.0-newmaint
-last_release: 4.00
-last_release_date: 20030729
-activity_status: newmaint
-last_activity: 20140320
-
-package: gneuralnetwork
-mundane_name: Gneural Network
-copyright_holder: notfsf
-doc_category: Science
-doc_summary: Programmable neural network
-doc_url: none
-blurb_id: gneuralnetwork_blurb
-gplv3_status: done-in-0.0.1
-last_release: 0.9.1
-last_release_date: 20160504
-activity_status: ok
-last_activity: 20160504
-
-package: gnome
-mundane_name: GNOME
-logo: //www.gnome.org/wp-content/themes/gnome-grass/images/gnome-logo.png
-copyright_holder: notfsf
-doc_category: Interface
-doc_summary: The GNU desktop environment
-doc_url: http://library.gnome.org
-blurb_id: gnome_blurb
-gplv3_status: under-discussion-per-bkuhn-speters-mail-23nov09
-last_release: 3.22
-last_release_date: 20160921
-activity_status: ok
-last_activity: 20160921
-
-package: gnowsys
-mundane_name: GNOWSYS
-logo: /software/gnowsys/GNOWSYS_files/g1014.png
-doc_category: Web
-doc_summary: Distributed network-based memory and knowledge management
-doc_url: none
-blurb_id: gnowsys_blurb
-#broken 8apr12 doc_url: http://trac.gnowledge.org/trac/wiki/GnowsysDocumenation
-download_url: http://download.savannah.gnu.org/releases/gnowsys/
-gplv3_status: in-dev-sources
-last_release: 0.6r2
-last_release_date: 20060617
-last_contact: 18mar10 replied
-activity_status: stale
-last_activity: 20060617
-
-package: gnu-c-manual
-mundane_name: GNU C reference manual
-copyright_holder: fsf-ok-#786666
-doc_category: Software
-doc_summary: Reference manual for the C programming language
-doc_url: htmlxref
-blurb_id: gnu_c_manual_blurb
-gplv3_status: doc
-last_release: 0.2.2
-last_release_date: 20130618
-note: to be superseded by rms manual? #786666
-activity_status: stale
-last_activity: 20130618
-
-package: gnu-crypto
-mundane_name: Crypto
-logo: /software/gnu-crypto/graphics/gc-ls-c.png
-doc_category: Security
-doc_summary: Cryptographic primitives and tools for Java programming
-doc_url: htmlxref
-blurb_id: gnu_crypto_blurb
-gplv3_status: not-done-since-no-changes
-last_release: 2.1.0
-last_release_date: 20051023
-last_contact: see classpath
-activity_status: stable
-last_activity: 20051023
-
-package: gnu-pw-mgr
-doc_category: Security
-doc_summary: Retrieve login credentials without recording passwords
-doc_url: none
-blurb_id: gnu_pw_mgr_blurb
-gplv3_status: done-in-1.0
-last_release: 2.0
-last_release_date: 20160508
-activity_status: ok
-last_activity: 20160508
-
-package: gnuae
-mundane_name: GnuAE
-copyright_holder: fsf-ok-#786471
-logo: /software/gnuae/images/gnuae-logo.png
-doc_category: Science
-doc_summary: Designing alternate energy systems
-doc_url: /software/gnuae/manual/
-blurb_id: gnuae_blurb
-gplv3_status: in-dev-sources
-note: no-release
-activity_status: newcomaint
-last_activity: 20130404
-
-package: gnuastro
-mundane_name: Gnuastro
-doc_category: Science
-doc_summary: Astronomy utilities
-doc_url: none
-blurb_id: gnuastro_blurb
-gplv3_status: done-from-beginning
-last_release: 0.2
-last_release_date: 20161003
-activity_status: ok
-last_activity: 20161003
-
-package: gnubatch
-copyright_holder: fsf-ok-#786525
-doc_category: Sysadmin
-doc_summary: Advanced batch scheduling and job control
-doc_url: none
-blurb_id: gnubatch_blurb
-gplv3_status: done-in-1.0
-last_release: 1.11
-last_release_date: 20140422
-activity_status: ok
-last_activity: 20140422
-
-package: gnubg
-mundane_name: Backgammon
-doc_category: Games
-doc_summary: Backgammon game
-doc_url: /software/gnubg/manual/
-blurb_id: gnubg_blurb
-gplv3_status: in-dev-sources (gnumaint-reply 22 Aug 2007 20:47:21)
-last_release: 1.02.000
-last_release_date: 20130728
-last_contact: 20mar13 brandon asked
-activity_status: stale
-last_activity: 20130728
-
-package: gnubiff
-logo: //gnubiff.sourceforge.net/images/tux-sit-small.png
-doc_category: Email
-doc_summary: Mail notification program
-doc_url: http://gnubiff.sourceforge.net/documentation.php
-blurb_id: gnubiff_blurb
-download_url: http://sourceforge.net/project/showfiles.php?group_id=94176
-gplv3_status: done-in-2.2.8 (sowadart 9 Sep 2007 21:00:37 +0200)
-last_release: 2.2.16
-last_release_date: 20150228
-activity_status: ok
-last_activity: 20150228
-
-package: gnubik
-doc_category: Games
-doc_summary: 3d Rubik's cube game
-doc_url: /software/gnubik/manual/
-blurb_id: gnubik_blurb
-gplv3_status: done-in-2.3
-last_release: 2.4.2
-last_release_date: 20150506
-activity_status: ok
-last_activity: 20150506
-
-package: gnucap
-doc_category: Science
-doc_summary: Mixed analog and digital circuit simulator
-doc_url: /software/gnucap/gnucap-man-html/
-blurb_id: gnucap_blurb
-download_url: http://www.gnucap.org/archive/
-gplv3_status: needs-exception-#342232 done-in-aug20-snapshot (gnumaint-reply
28 Aug 2007 15:45:43)
-last_release: 0.35
-last_release_date: 20060920
-last_contact: 15aug08 asked about gplv3
-activity_status: stale
-last_activity: 20060920
-
-package: gnucash
-mundane_name: GnuCash
-logo: //www.gnucash.org/images/banner5.png
-download_url: http://www.gnucash.org/download.phtml
-doc_category: Business
-doc_summary: Personal and small business financial accounting software
-doc_url: http://www.gnucash.org/docs.phtml
-blurb_id: gnucash_blurb
-tech_address: address@hidden
-gplv3_status: not-done-in-2.3.8-some-gplv2-only-files
-last_release: 2.6.14
-last_release_date: 20160917
-last_contact: 24jan10 asked
-activity_status: ok
-last_activity: 20160917
-
-package: gnucobol
-mundane_name: GnuCOBOL
-doc_category: Software
-doc_summary: A modern COBOL compiler
-doc_url: http://open-cobol.sourceforge.net/doc/gnucobol.html
-blurb_id: gnucobol_blurb
-gplv3_status: planned-for-2.x
-last_release: 1.1
-last_release_date: 20140118
-activity_status: stale
-last_activity: 20140118
-
-package: gnucomm
-mundane_name: GnuComm
-doc_category: Telephony
-doc_summary: GNU telecommunications project / GNU Telephony
-doc_url: /software/gnucomm/overview.html
-blurb_id: gnucomm_blurb
-gplv3_status: ok-since-container
-container: for-bayonne-etc.
-activity_status: container
-
-package: gnudos
-mundane_name: GnuDOS
-doc_category: Interface
-doc_summary: MS-DOS-like file manager, editor, and other tools
-doc_url: none
-blurb_id: gnudos_blurb
-gplv3_status: done-in-1.0
-last_release: 1.8
-last_release_date: 20141218
-activity_status: ok
-last_activity: 20141218
-
-package: gnue
-mundane_name: GNU Enterprise
-copyright_holder: fsf-ok-#786904
-fsd: gnuenterprise
-doc_category: Business
-doc_summary: Enterprise resource planning, et al
-doc_url: none
-blurb_id: gnue_blurb
-gplv3_status: done-in-0.5.3
-last_release: gnue-*-0.5.3
-last_release_date: 20100506
-note: many other sub-packages
-activity_status: stale
-last_activity: 20100506
-
-package: gnufm
-copyright_holder: fsf-ok-with-dependencies-#786606
-doc_category: Audio
-doc_summary: Social music explorations
-doc_url: none
-blurb_id: gnufm_blurb
-gplv3_status: not-done-since-no-release
-note: no-release
-activity_status: stale
-last_activity: 20100316
-
-package: gnugo
-copyright_holder: fsf-maybe-ok-two-files-#786733
-logo: /software/gnugo/logo-36.jpg
-doc_category: Games
-doc_summary: Play the game of Go
-doc_url: /software/gnugo/gnugo_toc.html
-blurb_id: gnugo_blurb
-gplv3_status: done-in-3.8
-last_release: 3.8
-last_release_date: 20090219
-activity_status: stable
-last_activity: 20090219
-
-package: gnuit
-copyright_holder: fsf-no-reply
-mundane_name: GNU Interactive Tools
-doc_category: Interface
-doc_summary: Interactive utilities for file browsing, viewing, and more
-doc_url: /software/gnuit/manual/
-blurb_id: gnuit_blurb
-gplv3_status: done-before-4.9.3
-last_release: 4.9.5
-last_release_date: 20090223
-activity_status: stale
-last_activity: 20090223
-
-package: gnujdoc
-doc_category: Translation
-doc_summary: Japanese translations of GNU documents
-doc_url: none
-blurb_id: gnujdoc_blurb
-gplv3_status: not-applicable-since-doc
-last_contact: 26jan10 asked, 15dec08 replied
-note: japanese translations of documents
-activity_status: stable
-
-package: gnujump
-logo: /software/gnujump/logo.png
-doc_category: Games
-doc_summary: Game of jumping to the next floor, trying not to fall
-doc_url: none
-blurb_id: gnujump_blurb
-gplv3_status: done-in-1.0.5 (13aug08)
-last_release: 1.0.8
-last_release_date: 20120724
-activity_status: stale
-last_activity: 20120724
-
-package: gnukart
-doc_category: Games
-doc_summary: Racing game
-doc_url: none
-blurb_id: gnukart_blurb
-gplv3_status: not-done-since-stale
-last_release: 0.1.4d
-last_release_date: 2010707
-last_contact: replied 21apr10
-note: renamed from speedx
-activity_status: newmaint
-last_activity: 20140420
-
-package: gnulib
-copyright_holder: fsf-ok-per-rms-#786492
-doc_category: Software
-doc_summary: Source files to share among distributions
-doc_url: /software/gnulib/manual/
-blurb_id: gnulib_blurb
-gplv3_status: done-as-much-as-possible
-note: released-through-vc
-activity_status: ok
-
-package: gnumach
-mundane_name: Mach
-copyright_holder: see-hurd
-doc_category: Software
-doc_summary: Microkernel of the GNU system
-doc_url: /software/hurd/microkernel/mach/documentation.html
-blurb_id: gnumach_blurb
-gplv3_status: see-hurd
-last_release: 1.8
-last_release_date: 20161218
-last_contact: see hurd
-activity_status: ok
-last_activity: 20161218
-
-package: gnumed
-doc_category: Health
-doc_summary: Paperless medical practice
-doc_url: http://wiki.gnumed.de/bin/view/Gnumed/GnumedManual
-blurb_id: gnumed_blurb
-download_url: http://www.gnumed.de/downloads/
-gplv3_status: working
-last_release: gnumed-server-21.9, gnumed-client-1.6.9
-last_release_date: 20160912
-activity_status: ok
-last_activity: 20160912
-
-package: gnumeric
-doc_category: Spreadsheets
-doc_summary: Spreadsheet application
-doc_url: http://www.gnome.org/projects/gnumeric/doc/gnumeric.shtml
-blurb_id: gnumeric_blurb
-download_url: http://ftp.gnome.org/pub/GNOME/sources/gnumeric/
-gplv3_status: not-done-in-1.9.18-uses-goffice-gnome-not-done
-last_release: 1.12.32
-last_release_date: 20160820
-note: FIXXXME Gnumeric has a logo, but I couldn't find it online. yavor
-activity_status: ok
-last_activity: 20160820
-
-package: gnump3d
-logo: /software/gnump3d/gnump3d.jpg
-doc_category: Audio
-doc_summary: Server for streaming audio files
-doc_url: /software/gnump3d/documents.html
-blurb_id: gnump3d_blurb
-download_url: http://savannah.gnu.org/download/gnump3d/
-gplv3_status: not-done-in-3.0
-last_release: 3.0
-last_release_date: 20071018
-last_contact: 11feb10 asked
-activity_status: stable
-last_activity: 20071018
-
-package: gnun
-copyright_holder: fsf-ok-with-external-#786604
-mundane_name: GNUnited Nations
-doc_category: Translation
-doc_summary: Build system for www.gnu.org translations
-doc_url: /software/trans-coord/manual/
-blurb_id: gnun_blurb
-doc_url: htmlxref
-gplv3_status: done-in-0.1
-last_release: 0.11
-last_release_date: 20161008
-activity_status: ok
-last_activity: 20161008
-
-package: gnunet
-doc_category: Internet
-doc_summary: Secure, decentralized, peer-to-peer networking framework
-doc_url: https://docs.gnunet.org/
-blurb_id: gnunet_blurb
-gplv3_status: depends-on-mysql (gnumaint-reply 20 Aug 2007 20:40:48)
-last_release: java-0.10.1
-last_release_date: 20140408
-last_release: gtk-0.10.1
-last_release_date: 20140408
-last_release: fuse-0.10.0
-last_release_date: 20131222
-last_release: 0.10.1
-last_release_date: 20140408
-activity_status: ok
-last_activity: 20140408
-
-package: gnupg
-mundane_name: GnuPG
-copyright_holder: fsf-maybe-ok-couple-pieces-#786522
-doc_category: Security
-doc_summary: GNU Privacy Guard
-doc_url: http://www.gnupg.org/documentation/
-blurb_id: gnupg_blurb
-doc_url: htmlxref
-download_url: ftp://ftp.gnupg.org/gcrypt/gnupg/
-gplv3_status: done-in-2.0.7
-last_release: 1.4.21
-last_release_date: 20160817
-last_release: 2.0.30
-last_release_date: 20160331
-last_release: 2.1.18
-last_release_date: 20170124
-alias: gpg
-activity_status: ok
-last_activity: 20170123
-
-package: gnupod
-doc_category: Audio
-doc_summary: Manage portable audio device
-doc_url: /software/gnupod/gnupod.html
-blurb_id: gnupod_blurb
-gplv3_status: done-in-0.99.3
-last_release: 0.99.8
-last_release_date: 20091102
-activity_status: stable
-last_activity: 20091102
-
-package: gnuprologjava
-doc_category: Software
-doc_summary: Implementation of Prolog as a Java library
-doc_url: /software/gnuprologjava/api/
-blurb_id: gnuprologjava_blurb
-doc_url: htmlxref
-download_url: http://sourceforge.net/projects/gnuprologjava/
-gplv3_status: done-in-0.2.5-lgplv3+
-last_release: 0.2.6
-last_release_date: 20110106
-note: requires jdk 1.2, released under lgpl (no exception?)
-activity_status: stale
-last_activity: 20110106
-
-package: gnuradio
-mundane_name: Radio
-copyright_holder: fsf-no-reply
-logo: //www.gnuradio.org/assets/imgs/gnuradio_logo_glyphs_as_paths.svg
-language: python
-doc_category: Audio
-doc_summary: Software radio implementations
-doc_url: https://wiki.gnuradio.org/index.php/Main_Page
-blurb_id: gnuradio_blurb
-gplv3_status: done-in-3.1.0-probably-earlier
-last_release: 3.7.5.1
-last_release_date: 20141021
-activity_status: ok
-last_activity: 20141021
-
-package: gnurobots
-mundane_name: Robots
-doc_category: Games
-doc_summary: Program a little robot and watch him explore a world
-doc_url: /software/gnurobots/readme.html
-blurb_id: gnurobots_blurb
-gplv3_status: done-in-1.2.0
-last_release: 1.2.0
-last_release_date: 20080803
-activity_status: stale
-last_activity: 20080803
-
-package: gnuschool
-doc_category: Education
-doc_summary: Web application for educators, students, and school administrators
-doc_url: htmlxref
-blurb_id: gnuschool_blurb
-gplv3_status: done-in-0.2
-last_release: 2.2
-last_release_date: 20130718
-activity_status: stale
-last_activity: 20130718
-
-package: gnushogi
-copyright_holder: fsf-ok-#786568
-doc_category: Games
-doc_summary: The game of Shogi (Japanese chess)
-doc_url: http://www.cs.caltech.edu/~mvanier/hacking/gnushogi/gnushogi_toc.html
-blurb_id: gnushogi_blurb
-download_url: http://www.cs.caltech.edu/~mvanier/hacking/gnushogi/
-gplv3_status: not-done-in-1.3.2-nomaint
-last_release: 1.4.2
-last_release_date: 20140217
-last_contact: 13mar12 replied
-activity_status: ok
-last_activity: 20140217
-
-package: gnusound
-doc_category: Audio
-doc_summary: Multi-track sound editor for GNOME
-doc_url: /software/gnusound/Documentation/
-blurb_id: gnusound_blurb
-gplv3_status: not-done-in-0.7.5
-last_release: 0.7.5
-last_release_date: 20080706
-last_contact: 17sep11 asked #709362, 30jan10 asked
-activity_status: stale
-last_activity: 20080706
-
-package: gnuspeech
-doc_category: Interface
-doc_summary: Extensible rule-based text-to-speech
-doc_url: /software/gnuspeech/#Manuals
-blurb_id: gnuspeech_blurb
-gplv3_status: in-dev-sources
-last_release: gnuspeechsa-0.1.5
-last_release_date: 20151019
-last_release: gnuspeech-0.9
-last_release_date: 20151019
-activity_status: ok
-last_activity: 20151019
-
-package: gnuspool
-copyright_holder: fsf-ok-#786526
-doc_category: Printing
-doc_summary: Spooling system with a variety of interfaces
-doc_url: none
-blurb_id: gnuspool_blurb
-gplv3_status: done-in-1.0
-last_release: 1.8
-last_release_date: 20101021
-activity_status: stale
-last_activity: 20101021
-
-package: gnustandards
-mundane_name: GNU organization
-copyright_holder: fsf-ok
-doc_category: gnuorg
-doc_summary: GNU coding standards and maintainer information
-doc_url: htmlxref
-blurb_id: gnustandards_blurb
-gplv3_status: doc
-note: released-through-vc
-activity_status: ok
-
-package: gnustep
-copyright_holder: fsf-ok-#786917
-logo: //wiki.gnustep.org/skins/common/images/GNUstep-MediaWiki.png
-doc_category: Software
-doc_summary: Object-oriented application development environment
-doc_url: http://www.gnustep.org/developers/documentation.html
-blurb_id: gnustep_blurb
-gplv3_status: not-applicable-stays-v2+-brett 03 Jun 2008 14:47:17
-download_url: ftp://ftp.gnustep.org/pub/gnustep
-note: many packages
-activity_status: ok
-
-package: gnutls
-mundane_name: GnuTLS
-copyright_holder: fsf-no-reply
-logo: /software/gnutls/graphics/gnutls-logo.png
-doc_category: Libraries
-doc_summary: Transport layer security library
-doc_url: /software/gnutls/manual/
-blurb_id: gnutls_blurb
-gplv3_status: stays-v2-indefinitely (gnumaint-reply 21 Aug 2007 11:13:04)
-last_release: 3.3.26
-last_release_date: 20170109
-last_release: 3.4.15
-last_release_date: 20160908
-last_release: 3.5.8
-last_release_date: 20170109
-activity_status: ok
-last_activity: 20170109
-
-package: gnutrition
-copyright_holder: notfsf-#786495
-language: python
-doc_category: Health
-doc_summary: Nutrition analysis
-doc_url: /software/gnutrition/manual/
-blurb_id: gnutrition_blurb
-gplv3_status: done-in-0.31
-last_release: 0.31.2
-last_release_date: 20120901
-activity_status: stale
-last_activity: 20120901
-
-package: gnuzilla
-copyright_holder: notfsf
-doc_category: Internet
-doc_summary: Entirely free browser derived from Mozilla Firefox
-doc_url: none
-blurb_id: gnuzilla_blurb
-gplv3_status: ok-since-container
-container: for-icecat
-activity_status: container
-
-package: goptical
-copyright_holder: fsf-maybe-ok-with-five-generic-C++-templates-#786535
-doc_category: Science
-doc_summary: C++ optical design and simulation library
-doc_url: /software/goptical/manual/
-blurb_id: goptical_blurb
-gplv3_status: done
-last_release: 1.0
-last_release_date: 20120107
-last_contact: 29nov10 replied, before xmas
-activity_status: stale
-last_activity: 20120107
-
-package: gorm
-logo: //gnustep.org/experience/images/Gorm.png
-download_url: ftp://ftp.gnustep.org/pub/gnustep/dev-apps/
-doc_category: Software
-doc_summary: GNUstep interface designer
-doc_url: http://wiki.gnustep.org/index.php/Gorm_Manual
-blurb_id: gorm_blurb
-gplv3_status: not-applicable-since-gnustep
-last_release: 1.2.23
-last_release_date: 20160719
-activity_status: ok
-last_activity: 20160719
-
-package: gpaint
-doc_category: Graphics
-doc_summary: Simple paint program for GNOME
-doc_url: none
-blurb_id: gpaint_blurb
-download_url: ftp://alpha.gnu.org/gpaint/
-gplv3_status: in-0.3.2-alpha-but-unreleased (was gnumaint-reply 20 Aug 2007
23:52:53)
-last_release: 0.3.3
-last_release_date: 20070910
-activity_status: stale
-last_activity: 20070910
-
-package: gperf
-copyright_holder: fsf-ok-#786473
-doc_category: Software
-doc_summary: Perfect hash function generator
-doc_url: /software/gperf/manual/
-blurb_id: gperf_blurb
-gplv3_status: done-in-3.0.4
-last_release: 3.1
-last_release_date: 20170113
-activity_status: ok
-last_activity: 20170113
-
-package: gprolog
-doc_category: Software
-doc_summary: Prolog compiler
-doc_url: http://www.gprolog.org/manual/
-blurb_id: gprolog_blurb
-gplv3_status: not-done-in-1.3.1
-last_release: 1.4.4
-last_release_date: 20130423
-activity_status: stale
-last_activity: 20130423
-
-package: grabcomics
-mundane_name: phpGrabComics
-doc_category: Web
-doc_summary: Saves comic strips from the web
-doc_url: http://server.phpgrabcomics.org/docs/
-blurb_id: grabcomics_blurb
-download_url: http://sourceforge.net/project/showfiles.php?group_id=33239
-gplv3_status: not-done-in-1.5.4
-last_release: 1.5.4
-last_release_date: 20101118
-last_contact: 18nov10 replied
-activity_status: stale
-last_activity: 20101118
-
-package: greg
-copyright_holder: fsf-no-reply
-download_url:
https://web.archive.org/web/20140927003247/http://download.gna.org/greg/
-doc_category: Software
-doc_summary: Software testing framework
-doc_url: /software/greg/gregdoc.html
-blurb_id: greg_blurb
-gplv3_status: not-done-since-stale
-last_release: 2.0.0
-last_release_date: 20060925
-last_contact: 14dec08 asked
-activity_status: stale
-last_activity: 20060925
-
-package: grep
-copyright_holder: fsf-ok-#786534
-doc_category: Text
-doc_summary: Print lines matching a pattern
-doc_url: /software/grep/manual/
-blurb_id: grep_blurb
-gplv3_status: done-in-2.5.4
-last_release: 2.27
-last_release_date: 20161207
-activity_status: ok
-last_activity: 20161207
-
-package: gretl
-logo: //gretl.sourceforge.net/images/gretl-image.png
-doc_category: Business
-doc_summary: Statistical analysis of economic data (econometrics)
-doc_url: http://sourceforge.net/projects/gretl/files/manual/
-blurb_id: gretl_blurb
-download_url: http://sourceforge.net/project/showfiles.php?group_id=36234
-gplv3_status: done-as-of-1.9.2
-last_release: 2016d
-last_release_date: 20161119
-activity_status: ok
-last_activity: 20161119
-
-package: groff
-search_alias: GNU troff
-copyright_holder: fsf-ok-with-external-and-hyphenations-#786537
-doc_category: Text
-doc_summary: Typesetting from plain text mixed with formatting commands
-doc_url: htmlxref
-blurb_id: groff_blurb
-logo: /graphics/groff-head.png
-gplv3_status: done-in-1.20.1
-last_release: 1.22.3
-last_release_date: 20141104
-activity_status: ok
-last_activity: 20141104
-
-package: grub
-mundane_name: GRUB
-copyright_holder: fsf-maybe-ok-external-mostly-followed-#786720
-doc_category: Sysadmin
-doc_summary: GRand Unified Boot loader
-doc_url: /software/grub/grub-documentation.html
-blurb_id: grub_blurb
-gplv3_status: done-as-of-1.97.2
-last_release: 2.00
-last_release_date: 20120627
-activity_status: stale
-last_activity: 20120627
-
-package: gsasl
-copyright_holder: notfsf
-doc_category: Libraries
-doc_summary: Simple Authentication and Security Layer library
-doc_url: /software/gsasl/manual/
-blurb_id: gsasl_blurb
-gplv3_status: stays-lgplv2.1+
-last_release: 1.8.0, libgsasl-1.8.0/20120528
-last_release_date: 20120528
-activity_status: stale
-last_activity: 20120528
-
-package: gsegrafix
-doc_category: Graphics
-doc_summary: GNOME application to create scientific and engineering plots
-doc_url: none
-blurb_id: gsegrafix_blurb
-gplv3_status: done-as-of-1.0.5
-last_release: 1.0.6
-last_release_date: 20110910
-last_contact: 13feb11 asked
-activity_status: stale
-last_activity: 20110910
-
-package: gsl
-mundane_name: GNU Scientific Library
-copyright_holder: notfsf-gough-did-not-assign-though-others-did
-doc_category: Mathematics
-doc_summary: Numerical library for C and C++
-doc_url: htmlxref
-blurb_id: gsl_blurb
-gplv3_status: done-in-1.10 (gnumaint-reply 21 Aug 2007 10:01:29)
-last_release: 2.3
-last_release_date: 20161209
-activity_status: ok
-last_activity: 20161209
-
-package: gslip
-mundane_name: GNU Slip
-doc_category: Libraries
-doc_summary: SLIP (Symmetric LIst Processor) implementation
-doc_url: none
-blurb_id: gslip_blurb
-gplv3_status: should-be-done
-activity_status: newpkg
-last_activity: 20150810
-
-package: gsrc
-mundane_name: GNU Source Release Collection
-copyright_holder: notfsf-#786658
-doc_category: Sysadmin
-doc_summary: Install latest official GNU releases from original source
-doc_url: /software/gsrc/manual/
-blurb_id: gsrc_blurb
-gplv3_status: done
-last_release: 2014.07.06
-last_release_date: 20140706
-activity_status: ok
-last_activity: 20140706
-
-package: gss
-mundane_name: Generic Security Service
-doc_category: Libraries
-doc_summary: Generic Security Service library
-doc_url: /software/gss/manual/
-blurb_id: gss_blurb
-gplv3_status: done-as-of-1.0.0
-last_release: 1.0.3
-last_release_date: 20141009
-activity_status: ok
-last_activity: 20141009
-
-package: gtick
-mundane_name: GTick
-logo: //www.antcom.de/gtick/logo.www.jpg
-doc_category: Music
-doc_summary: Customizable metronome application
-doc_url: none
-blurb_id: gtick_blurb
-gplv3_status: done-in-0.4.0
-download_url: http://www.antcom.de/gtick/download/
-last_release: 0.5.4
-last_release_date: 20140727
-activity_status: ok
-last_activity: 20140727
-
-#package: gts
-#mundane_name: GNU Triangulated Surface Library
-#gplv3_status: not-done-in-4.0.0
-#homepage: http://gts.sourceforge.net/
-#activity_status: ? # 13nov08 asked about gnu status
-
-
-package: gtk+
-mundane_name: GTK+
-doc_category: Interface
-doc_summary: Cross-platform toolkit for creating graphical user interfaces
-doc_url: http://library.gnome.org/devel/gtk/stable/
-blurb_id: gts_blurb
-gplv3_status: under-discussion # stormy.peters mail 23 Nov 2009 19:26:17
-last_release: 3.18.4
-last_release_date: 20151112
-activity_status: ok
-last_activity: 20151112
-
-package: gtypist
-doc_category: Education
-doc_summary: Typing tutor
-doc_url: htmlxref
-blurb_id: gtypist_blurb
-gplv3_status: done-in-2.8
-last_release: 2.9.5
-last_release_date: 20140812
-activity_status: ok
-last_activity: 20140812
-
-package: guile
-copyright_holder: fsf-maybe-ok-just-goops-#786545
-logo: /software/guile/static/base/img/branding.png
-doc_category: Software
-doc_summary: Scheme implementation intended especially for extensions
-doc_url: /software/guile/manual/
-blurb_id: guile_blurb
-gplv3_status: not-done-in-1.8.6-planned-for-1.10/2.0-in-2009 # neil 12jan09
-last_release: 2.0.13
-last_release_date: 20161012
-activity_status: ok
-last_activity: 20161012
-
-package: guile-cv
-doc_category: Libraries
-doc_summary: Computer Vision library for Guile
-doc_url: none
-gplv3_status: unknown
-activity_status: newpkg
-last_activity: 20170421
-
-package: guile-dbi
-doc_category: Database
-doc_summary: Guile database abstraction layer
-doc_url:
http://htmlpreview.github.io/?https://github.com/opencog/guile-dbi/blob/master/website/guile-dbi.html
-blurb_id: guile_dbi_blurb
-gplv3_status: not-done-in-2.1.2
-download_url: https://github.com/opencog/guile-dbi
-last_release: 2.1.6
-last_release_date: 20150802
-activity_status: ok
-last_activity: 20150802
-
-package: guile-opengl
-doc_category: Graphics
-doc_summary: Guile binding for the OpenGL graphics API
-doc_url: none
-blurb_id: guile_opengl_blurb
-gplv3_status: done-in-0.1.0
-last_release: 0.1.0
-last_release_date: 20140518
-activity_status: ok
-last_activity: 20140518
-
-package: guile-gnome
-doc_category: Software
-doc_summary: Guile interface for GTK+ programming for GNOME
-doc_url: /software/guile-gnome/docs/
-blurb_id: guile_gnome_blurb
-doc_url: htmlxref
-gplv3_status: not-done-in-2.16.3
-last_release: guile-gnome-platform-2.16.4
-last_release_date: 20151208
-last_release: guile-clutter-1.12.2.1
-last_release_date: 20151208
-activity_status: ok
-last_activity: 20151208
-
-package: guile-ncurses
-doc_category: Interface
-doc_summary: Guile bindings to ncurses
-doc_url: /software/guile-ncurses/manual/
-blurb_id: guile_ncurses_blurb
-gplv3_status: done-in-0.9
-last_release: 2.1
-last_release_date: 20161113
-activity_status: ok
-last_activity: 20161113
-
-package: guile-rpc
-copyright_holder: fsf-ok-with-external-#786605
-doc_category: Software
-doc_summary: Pure Scheme implementation for the ONC RPC standard
-doc_url: /software/guile-rpc/manual/
-blurb_id: guile_rpc_blurb
-gplv3_status: done-in-0.3-alpha (gnumaint-reply 21 Aug 2007 09:35:53 +0200)
-last_release: 0.4
-last_release_date: 20140521
-activity_status: ok
-last_activity: 20140521
-
-package: guile-sdl
-mundane_name: Guile-SDL
-copyright_holder: notfsf
-doc_category: Audio
-doc_summary: Guile interface for SDL (Simple DirectMedia Layer)
-doc_url: /software/guile-sdl/manual/
-blurb_id: guile_sdl_blurb
-gplv3_status: done-originally
-last_release: 0.5.2
-last_release_date: 20150308
-activity_status: ok
-last_activity: 20150308
-
-package: guix
-search_alias: Guix & GuixSD
-logo: /software/guix/static/base/img/icon.png
-doc_category: Sysadmin
-doc_summary: Functional package manager for installed software packages and
versions
-doc_url: /software/guix/manual/
-blurb_id: guix_blurb
-gplv3_status: done-in-0.0
-last_release: 0.10.0
-last_release_date: 20160329
-activity_status: alpha
-last_activity: 20160329
-
-package: gurgle
-doc_category: Database
-doc_summary: GNU Report Generator Language
-doc_url: http://homepages.inf.ed.ac.uk/timc/gurgle/gurgle.html
-blurb_id: gurgle_blurb
-gplv3_status: done-in-1.61
-last_release: 1.75
-last_release_date: 20130718
-activity_status: stable
-last_activity: 20130718
-
-package: gv
-copyright_holder: notfsf
-doc_category: Printing
-doc_summary: PostScript and PDF viewer using Ghostscript as a back-end
-doc_url: /software/gv/manual/
-blurb_id: gv_blurb
-gplv3_status: done-in-3.6.5
-last_release: 3.7.4
-last_release_date: 20130317
-activity_status: stale
-last_activity: 20130317
-
-package: gvpe
-mundane_name: GVPE
-doc_category: Security
-doc_summary: Secure VPN among multiple nodes over an untrusted network
-doc_url: none
-blurb_id: gvpe_blurb
-gplv3_status: done-in-2.0
-last_release: 2.25
-last_release_date: 20130716
-activity_status: stale
-last_activity: 20130716
-
-package: gwl
-mundane_name: GWL
-doc_category: Libraries
-doc_summary: Workflow language for GNU Guix
-doc_url: none
-gplv3_status: done-originally
-activity_status: newpkg
-last_activity: 20180221
-
-package: gxmessage
-gplv3_status: done
-doc_category: Interface
-doc_summary: Open popup message window with buttons for return
-doc_url: none
-blurb_id: gxmessage_blurb
-last_release: 3.4.1; 20150522 2.20.2
-last_release_date: 20150522
-activity_status: ok
-last_activity: 20150522
-
-package: gzip
-copyright_holder: fsf-ok-with-gailly-contract-#786477
-doc_category: Archiving
-doc_summary: General file (de)compression (using lzw)
-doc_url: /software/gzip/manual/
-blurb_id: gzip_blurb
-gplv3_status: done-as-of-1.4
-last_release: 1.8
-last_release_date: 20160426
-activity_status: ok
-last_activity: 20160426
-
-package: halifax
-mundane_name: HaliFAX
-doc_category: Telephony
-doc_summary: Fax support
-doc_url: none
-blurb_id: halifax_blurb
-gplv3_status: not-done-since-nomaint
-last_release: 0.22.0
-last_release_date: 20010508
-last_contact: wolfgang replied 6jul12
-activity_status: nomaint
-last_activity: 20010508
-
-package: health
-language: python
-doc_category: Health
-doc_summary: Health and hospital information system
-doc_url: none
-blurb_id: health_blurb
-gplv3_status: done
-last_release: gnuhealth-3.0.2
-last_release_date: 20160713
-activity_status: ok
-last_activity: 20160713
-
-package: hello
-copyright_holder: fsf-ok-#786611
-doc_category: Software
-doc_summary: Hello, GNU world: An example GNU package
-doc_url: /software/hello/manual/
-blurb_id: hello_blurb
-gplv3_status: done-in-2.3
-last_release: 2.10
-last_release_date: 20141116
-activity_status: ok
-last_activity: 20141116
-
-package: help2man
-copyright_holder: fsf-ok-#786697
-doc_category: Text
-doc_summary: Automatically generate man pages from program --help
-doc_url: none
-blurb_id: help2man_blurb
-gplv3_status: done-in-1.37.1
-last_release: 1.47.2
-last_release_date: 20150911
-activity_status: ok
-last_activity: 20150911
-
-package: hp2xx
-copyright_holder: notfsf
-doc_category: Printing
-doc_summary: Convert HP-GL format graphics to other vector and bitmap formats
-doc_url: none
-blurb_id: hp2xx_blurb
-gplv3_status: not-done-since-stale
-last_release: 3.4.4
-last_release_date: 20030623
-activity_status: stable
-last_activity: 20030623
-
-package: html-info
-doc_category: Text
-doc_summary: HTML-Info viewer and tools
-doc_url: none
-blurb_id: html_info_blurb
-activity_status: newpkg
-last_activity: 20150113
-
-package: httptunnel
-logo: /graphics/httptunnel-w.png
-doc_category: Internet
-doc_summary: Bidirectional connection tunnelled inside HTTP requests
-doc_url: none
-blurb_id: httptunnel_blurb
-gplv3_status: not-done-since-stale
-last_release: 3.3
-last_release_date: 20020116
-last_contact: 28apr09 replied, 9feb10 asked
-activity_status: stale
-last_activity: 20020116
-
-package: hurd
-copyright_holder: fsf-ok-with-linux-code-rms
-doc_category: Software
-doc_summary: The kernel servers for the GNU operating system
-doc_url: /software/hurd/doc/doc.html
-blurb_id: hurd_blurb
-gplv3_status: under-discussion
-logo: /graphics/hurd_sm_mf.jpg
-last_release: 0.9
-last_release_date: 20161218
-activity_status: ok
-last_activity: 20161218
-
-package: hyperbole
-doc_category: Text
-doc_summary: Emacs hypertext system via customizable buttons
-doc_url: none
-blurb_id: hyperbole_blurb
-gplv3_status: done-in-5.0.3
-last_release: 6.0.1
-last_release_date: 20160727
-activity_status: ok
-last_activity: 20160727
-
-package: icecat
-copyright_holder: notfsf
-logo: /software/gnuzilla/icecat-128.png
-doc_category: Internet
-doc_summary: Entirely free browser derived from Mozilla Firefox
-doc_url: none
-blurb_id: icecat_blurb
-gplv3_status: not-applicable-since-not-our-program
-last_release: 45.7.0
-last_release_date: 20170305
-activity_status: ok
-last_activity: 20170305
-
-package: idutils
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: Identifier database utilities
-doc_url: /software/idutils/manual/
-blurb_id: idutils_blurb
-gplv3_status: done-in-4.5
-last_release: 4.6
-last_release_date: 20120203
-activity_status: stale
-last_activity: 20120203
-
-package: ignuit
-doc_category: Education
-doc_summary: Memorization aid based on Leitner flashcards
-doc_url: none
-blurb_id: ignuit_blurb
-gplv3_status: done
-last_release: 2.24.2
-last_release_date: 20160403
-activity_status: ok
-last_activity: 20160403
-
-package: indent
-copyright_holder: notfsf
-doc_category: Software
-doc_summary: Code reformatter
-doc_url: /software/indent/manual/
-blurb_id: indent_blurb
-gplv3_status: notgpl-is-bsd
-last_release: 2.2.10
-last_release_date: 20090215
-activity_status: newmaint
-last_activity: 20140319
-
-package: inetutils
-doc_category: Internet
-doc_summary: Basic networking utilities
-doc_url: /software/inetutils/manual/
-blurb_id: inetutils_blurb
-gplv3_status: done
-last_release: 1.9.4
-last_release_date: 20150610
-activity_status: ok
-last_activity: 20150610
-
-package: inklingreader
-doc_category: Interface
-doc_summary: Wacom Inkling sketch format conversion and manipulation
-doc_url: none
-blurb_id: inklingreader_blurb
-gplv3_status: done-except-for-inkscape-plugin
-activity_status: newpkg
-last_activity: 20141028
-
-package: intlfonts
-doc_category: Fonts
-doc_summary: TrueType and BDF fonts covering many scripts
-doc_url: none
-blurb_id: intlfonts_blurb
-gplv3_status: needs-exception-#341653-fonts (21 Aug 2007 10:41:44)
-last_release: 1.2.1
-last_release_date: 20030703
-last_contact: 27jan09 asked
-activity_status: stale
-last_activity: 20030703
-
-package: jacal
-mundane_name: JACAL
-logo: //people.csail.mit.edu/jaffer/Logo/equal96.png
-doc_category: Mathematics
-doc_summary: Symbolic mathematics system
-doc_url: http://people.csail.mit.edu/jaffer/jacal_toc.html
-blurb_id: jacal_blurb
-gplv3_status: done-without-guile-licensing-exception (licensing 341651 20 Aug
2007 21:32:09)
-other_download_url: http://groups.csail.mit.edu/mac/ftpdir/scm/
-last_release: 1c4
-last_release_date: 20150116
-activity_status: ok
-last_activity: 20150116
-
-package: java-getopt
-language: java
-doc_category: Libraries
-doc_summary: Java port of GNU getopt
-doc_url:
http://www.urbanophile.com/arenn/hacking/getopt/Package-gnu.getopt.html
-blurb_id: java_getopt_blurb
-download_url: ftp://ftp.urbanophile.com/pub/arenn/software/sources/
-gplv3_status: not-applicable-since-libc-fns-per-rms (karl mail 08 May 2008
04:44:55)
-last_release: 1.0.13
-last_release_date: 20060829
-note: classpath has its own smaller/simpler option parsing library,
-note: per Mark Wielaard, 24apr07. This is an independent port of libc getopt.
-activity_status: stable
-last_activity: 20060829
-
-package: jtw
-mundane_name: Java Training Wheels
-doc_category: Education
-doc_summary: A simplified Java environment for learning programming
-doc_url: none
-gplv3_status: done
-last_release: 1.1
-last_release_date: 20160708
-activity_status: ok
-last_activity: 20160708
-
-package: jel
-doc_category: Libraries
-doc_summary: Java expression library and compiler
-doc_url: /software/jel/manual.html
-blurb_id: jel_blurb
-gplv3_status: done-in-2.0.1
-last_release: 2.0.1
-last_release_date: 20071012
-last_contact: 24jun09 replied
-activity_status: stable
-last_activity: 20071012
-
-package: jwhois
-copyright_holder: fsf-ok-#786523
-language: c
-doc_category: Internet
-doc_summary: An extended whois client
-doc_url: /software/jwhois/manual/
-blurb_id: jwhois_blurb
-gplv3_status: done-in-4.0
-last_release: 4.0
-last_release_date: 20070701
-last_contact: 12dec12 newmaint needed, 20090620 replied, maybe soon
-activity_status: newmaint
-last_activity: 20161012
-
-package: kawa
-logo: /software/kawa/style/kawa-logo.png
-doc_category: Software
-doc_summary: Java framework and implementation of Scheme, Elisp, and more
-doc_url: none
-blurb_id: kawa_blurb
-gplv3_status: notgpl
-last_release: 2.0
-last_release_date: 20141202
-activity_status: ok
-last_activity: 20141202
-
-package: kopi
-language: java
-doc_category: Software
-doc_summary: Java development environment for interactive database applications
-doc_url: none
-blurb_id: kopi_blurb
-download_url: http://sourceforge.net/projects/kopi/files/
-gplv3_status: not-done-in-2.3B
-last_release: 2.3B
-last_release_date: 20070918
-last_contact: 10mar12 asked, 10mar12 benheni asked
-activity_status: stale
-last_activity: 20070918
-
-package: leg
-copyright_holder: fsf-ok-planned-code-#786483
-language: c++
-doc_category: Games
-doc_summary: Libraries and engines for game programming
-doc_url: none
-blurb_id: leg_blurb
-gplv3_status: not-done-since-no-release
-last_contact: 16feb13 replied end of summer, asked, 8nov10 replied, soon
-activity_status: newmaint
-last_activity: 20110519
-
-package: less
-copyright_holder: notfsf
-doc_category: Text
-doc_summary: Paginator for terminals
-doc_url: none
-blurb_id: less_blurb
-gplv3_status: notgpl
-last_release: 481
-last_release_date: 20151016
-activity_status: ok
-last_activity: 20151016
-
-package: libc
-mundane_name: GNU C Library
-copyright_holder: fsf-ok-per-rms-#786983
-doc_category: Libraries
-doc_summary: C library
-doc_url: /software/libc/manual/
-blurb_id: libc_blurb
-gplv3_status: under-discussion
-download_url: http://ftp.gnu.org/gnu/glibc/
-last_release: 2.24
-last_release_date: 20160804
-# seems to be gone from shop, noticed 8aug14, webmasters #934653
-#doc_shop: GNU C Library Application Fundamentals (Vol.1)
-#doc_shop: http://shop.fsf.org/product/gnu-c-library-application-fundamentals/
-activity_status: ok
-last_activity: 20160804
-
-package: libcdio
-doc_category: Audio
-doc_summary: CD Input and Control library
-doc_url: htmlxref
-blurb_id: libcdio_blurb
-gplv3_status: done-in-0.81
-last_release: 0.93, libcdio-paranoia-10.2+0.93+1/20140929,
pycdio-0.20/20130906, rbcdio-0.15/200901518
-last_release_date: 20140929
-activity_status: ok
-last_activity: 20140929
-
-package: libdbh
-doc_category: Database
-doc_summary: Advanced library for disk-based hash tables
-doc_url: none
-blurb_id: libdbh_blurb
-gplv3_status: done-in-5.0.17
-last_release: 5.0.17
-last_release_date: 20150313
-activity_status: ok
-last_activity: 20150313
-
-package: libextractor
-logo: /software/libextractor/extractor_logo.png
-doc_category: Audio
-doc_summary: Library to extract meta-data from media files
-doc_url: htmlxref
-blurb_id: libextractor_blurb
-gplv3_status: depends-on-gnunet (gnumaint-reply 20 Aug 2007 20:40:48)
-last_release: 1.3
-last_release_date: 20131223
-activity_status: stale
-last_activity: 20131223
-
-package: libffcall
-doc_category: Libraries
-doc_summary: Foreign function calls from interpreters
-doc_url: none
-blurb_id: libffcall_blurb
-gplv3_status: not-done-in-1.10-used-by-clisp
-last_release: 1.10
-last_release_date: 20040602
-activity_status: newmaint
-last_activity: 20130713
-
-package: libgcrypt
-copyright_holder: notfsf-any-more-#786520
-download_url: ftp://ftp.gnupg.org/gcrypt/libgcrypt/
-doc_category: Libraries
-doc_summary: Cryptographic function library
-doc_url: htmlxref
-blurb_id: libgcrypt_blurb
-gplv3_status: depends-on-gnutls (gnumaint-reply 21 Aug 2007 11:13:04)
-last_release: 1.7.2
-last_release_date: 20160714
-activity_status: ok
-last_activity: 20160714
-
-package: libiconv
-copyright_holder: fsf-no-reply
-doc_category: Libraries
-doc_summary: Character set conversion library
-doc_url: none
-blurb_id: libiconv_blurb
-gplv3_status: not-done-partially-in-1.12
-last_release: 1.14
-last_release_date: 20110807
-activity_status: newmaint
-last_activity: 20140707
-
-package: libidn
-search_alias: libidn2
-copyright_holder: notfsf-simon-did-not-assign-though-others-did
-doc_category: Libraries
-doc_summary: Internationalized string processing library
-doc_url: /software/libidn/manual/
-blurb_id: libidn_blurb
-gplv3_status: not-done-partially-in-1.6-except-java?-20mar08
-last_release: 1.33
-last_release_date: 20160720
-activity_status: ok
-last_activity: 20160720
-
-package: libjit
-copyright_holder: notfsf
-doc_category: Libraries
-doc_summary: Just-in-Time compilation library
-doc_url: none
-blurb_id: libjit_blurb
-gplv3_status: unknown
-activity_status: newpkg
-last_activity: 20121218
-
-package: libmatheval
-copyright_holder: fsf-ok-#786536
-doc_category: Mathematics
-doc_summary: Library for evaluating symbolic expressions
-doc_url: htmlxref
-blurb_id: libmatheval_blurb
-gplv3_status: done-as-of-1.1.7
-last_release: 1.1.11
-last_release_date: 20130814
-activity_status: newmaint
-last_activity: 20131023
-
-package: libmicrohttpd
-copyright_holder: notfsf
-language: c
-doc_category: Libraries
-doc_summary: C library implementing an HTTP 1.1 server
-doc_url: /software/libmicrohttpd/manual/
-blurb_id: libmicrohttpd_blurb
-gplv3_status: depends-on-gnunet-lgplv2.1+
-last_release: 0.9.49
-last_release_date: 20160409
-activity_status: ok
-last_activity: 20160409
-
-package: libredwg
-copyright_holder: fsf-no-info-in-reply-#786464
-language: c
-doc_category: Science
-doc_summary: C library to handle DWG (CAD-related) files
-doc_url: none
-blurb_id: libredwg_blurb
-gplv3_status: not-done-since-no-release
-note: no-release
-last_contact: 16feb10 replied
-activity_status: newpkg
-last_activity: 20091021
-
-package: liberty-eiffel
-mundane_name: Liberty Eiffel
-doc_category: Software
-doc_summary: Eiffel compiler
-doc_url: none
-blurb_id: liberty_eiffel_blurb
-#logo: //smarteiffel.loria.fr/images/Logo_pp_small.png
-#download_url: http://gforge.inria.fr/frs/?group_id=184
-#gplv3_status: not-done-in-2.3
-last_release: 2016.05
-last_release_date: 20160526
-note: renamed from smarteiffel (and smalleiffel before that).
-activity_status: ok
-last_activity: 20160526
-
-package: librejs
-logo: /software/librejs/images/logo-medium.png
-language: javascript
-doc_category: Internet
-doc_summary: Browser add-on that blocks nonfree nontrivial JavaScript
-doc_url: /software/librejs/manual/
-blurb_id: librejs_blurb
-gplv3_status: ok
-last_release: 6.0.13
-last_release_date: 20160504
-activity_status: ok
-last_activity: 20160504
-
-package: libsigsegv
-doc_category: Software
-doc_summary: Library for handling page faults
-doc_url: none
-blurb_id: libsigsegv_blurb
-gplv3_status: not-done-in-2.5-11nov07
-last_release: 2.10
-last_release_date: 20110403
-activity_status: newmaint
-last_activity: 20140715
-
-package: libtasn1
-copyright_holder: fsf-no-reply-see-note
-language: c
-doc_category: Security
-doc_summary: ASN.1 library
-doc_url: /software/libtasn1/manual/
-blurb_id: libtasn1_blurb
-gplv3_status: done-as-of-2.6
-last_release: 4.8
-last_release_date: 20160411
-note: originated with gnutls, so copyright fsf, even though no explicit
-note: assignment has been needed yet.
-activity_status: ok
-last_activity: 20160411
-
-package: libtool
-copyright_holder: fsf-ok-#786491
-logo: /software/libtool/libtool.jpg
-doc_category: Libraries
-doc_summary: Generic shared library support tools
-doc_url: /software/libtool/manual/
-blurb_id: libtool_blurb
-gplv3_status: needs-exception-#349136
-last_release: 2.4.6
-last_release_date: 20150215
-activity_status: ok
-last_activity: 20150215
-
-package: libunistring
-copyright_holder: fsf-ok-#786481
-language: c
-doc_category: Libraries
-doc_summary: C library for manipulating Unicode strings
-doc_url: /software/libunistring/manual/
-blurb_id: libunistring_blurb
-gplv3_status: done-as-of-0.9.2.1-lgpl
-last_release: 0.9.7
-last_release_date: 20161202
-activity_status: ok
-last_activity: 20161202
-
-package: libxmi
-copyright_holder: fsf-no-reply
-doc_category: Graphics
-doc_summary: Library for rasterizing 2-d vector graphics
-doc_url: none
-blurb_id: libxmi_blurb
-gplv3_status: not-done-since-stale
-last_release: 1.2
-last_release_date: 20000621
-activity_status: stale
-last_activity: 20000621
-
-package: lightning
-copyright_holder: fsf-ok-24dec12
-doc_category: Libraries
-doc_summary: Library for generating assembly code at runtime
-doc_url: /software/lightning/manual/
-blurb_id: lightning_blurb
-gplv3_status: not-done-since-stale
-last_release: 2.1.0
-last_release_date: 20150207
-activity_status: ok
-last_activity: 20150207
-
-package: lilypond
-doc_category: Music
-doc_summary: Music typesetting
-doc_url: http://lilypond.org/manuals.html
-blurb_id: lilypond_blurb
-gplv3_status: done-as-of-2.13.13
-download_url: http://download.linuxaudio.org/lilypond/sources/
-last_release: 2.19.18
-last_release_date: 20150405
-activity_status: ok
-last_activity: 20150405
-
-package: lims
-language: python
-doc_category: Science
-doc_summary: Scientific laboratory information management system
-doc_url: none
-blurb_id: lims_blurb
-gplv3_status: should-be-done-initially
-activity_status: newpkg
-last_activity: 20131104
-
-package: linux-libre
-doc_category: Software
-doc_summary: 100% free redistribution of a cleaned Linux kernel
-doc_url: none
-blurb_id: linux_libre_blurb
-gplv3_status: stays-gplv2-due-to-linux
-download_url: http://linux-libre.fsfla.org/pub/linux-libre/releases/
-last_release: 4.8-gnu
-last_release_date: 20161003
-activity_status: ok
-last_activity: 20161003
-
-package: liquidwar6
-mundane_name: Liquid War 6
-doc_category: Games
-doc_summary: Multiplayer wargame where your army is a blob of liquid
-doc_url: /software/liquidwar6/manual/
-blurb_id: liquidwar6_blurb
-gplv3_status: done-in-0.0.2beta
-last_release: 0.6.3902
-last_release_date: 20150507
-activity_status: ok
-last_activity: 20150507
-
-package: lispintro
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: Introduction to programming in Emacs Lisp
-doc_url: /software/emacs/emacs-lisp-intro/emacs-lisp-intro.html
-blurb_id: lispintro_blurb
-doc_shop: An Introduction to Emacs Lisp
-doc_shop: http://shop.fsf.org/product/Intro_to_Emacs_Lisp_3rd_Ed/
-gplv3_status: doc
-note: released-through-emacs
-activity_status: subpkg
-
-package: lrzsz
-doc_category: Internet
-doc_summary: Implementation of XMODEM/YMODEM/ZMODEM transfer protocols
-doc_url: none
-blurb_id: lrzsz_blurb
-download_url: http://www.ohse.de/uwe/releases/
-gplv3_status: not-done-in-0.12.20
-last_release: 0.12.20
-last_release_date: 19981230
-last_contact: 28nov10 asked, 11apr09 replied, next 3 months
-activity_status: stale
-last_activity: 19981230
-
-package: lsh
-doc_category: Security
-doc_url: http://www.lysator.liu.se/~nisse/lsh/lsh.html
-blurb_id: lsh_blurb
-doc_summary: GNU implementation of the Secure Shell (ssh) protocols
-gplv3_status: not-done-in-2.9-exp
-download_url: http://www.lysator.liu.se/~nisse/archive/
-last_release: 2.1
-last_release_date: 20130626
-activity_status: stale
-last_activity: 20130626
-
-package: m4
-copyright_holder: fsf-ok-#786645
-doc_category: Text
-doc_summary: Macro processor
-doc_url: /software/m4/manual/
-blurb_id: m4_blurb
-gplv3_status: done-as-of-1.14.14
-last_release: 1.4.18
-last_release_date: 20161231
-activity_status: ok
-last_activity: 20161231
-
-package: macchanger
-mundane_name: MAC Changer
-doc_category: Internet
-doc_summary: Viewing and manipulating MAC addresses of network interfaces
-doc_url: none
-blurb_id: macchanger_blurb
-gplv3_status: in-dev-sources (gnumaint-reply 21 Aug 2007 11:29:32 +0200)
-last_release: 1.6.0
-last_release_date: 20130326
-activity_status: stale
-last_activity: 20130326
-
-package: mailman
-copyright_holder: fsf-no-reply
-logo: /graphics/dragonlogo.jpg
-language: c,python
-doc_category: Email
-doc_summary: Mailing list manager
-doc_url: /software/mailman/docs.html
-blurb_id: mailman_blurb
-gplv3_status: next-release-2.2-and-3.0
-last_release: 2.1.21
-last_release_date: 20160228
-activity_status: ok
-last_activity: 20160228
-
-package: mailutils
-copyright_holder: fsf-ok-with-external-libraries-#793769
-doc_category: Email
-doc_summary: Utilities and library for reading and serving mail
-doc_url: /software/mailutils/manual/
-blurb_id: mailutils_blurb
-gplv3_status: done-in-2.0
-last_release: 3.1.1
-last_release_date: 20161216
-activity_status: ok
-last_activity: 20161216
-
-package: make
-copyright_holder: fsf-ok-#788835
-doc_category: Software
-doc_summary: Remake files automatically
-doc_url: /software/make/manual/
-blurb_id: make_blurb
-gplv3_status: in-dev-sources (gnumaint-reply 28 Aug 2007 08:30:15)
-last_release: 4.2.1
-last_release_date: 20160611
-activity_status: ok
-last_activity: 20160611
-
-package: marst
-copyright_holder: fsf-no-reply
-mundane_name: MARST
-doc_category: Software
-doc_summary: Algol-to-C translator
-doc_url: none
-blurb_id: marst_blurb
-gplv3_status: done-in-2.5
-last_release: 2.7
-last_release_date: 20130309
-activity_status: stale
-last_activity: 20130309
-
-package: maverik
-doc_category: Graphics
-doc_summary: Support interactive 3d virtual environments
-doc_url: none
-blurb_id: maverik_blurb
-gplv3_status: done-in-6.4
-last_release: 6.5
-last_release_date: 20130315
-last_contact: 21feb13 replied, 18feb13 asked
-activity_status: stale
-last_activity: 20130315
-
-package: mc
-mundane_name: Midnight Commander
-copyright_holder: fsf-no-reply
-doc_category: Interface
-doc_summary: Graphical file manager
-doc_url: none
-blurb_id: mc_blurb
-gplv3_status: not-done-in-4.6.2-pre1
-last_release: 4.6.2-pre1
-last_release_date: 20070913
-activity_status: stale
-last_activity: 20070913
-
-package: mcron
-logo: /software/mcron/mcron-logo.png
-doc_category: Sysadmin
-doc_summary: Run jobs at scheduled times
-doc_url: none
-blurb_id: mcron_blurb
-gplv3_status: done-in-1.0.4
-last_release: 1.0.8
-last_release_date: 20140525
-activity_status: nomaint
-last_activity: 20140525
-
-package: mcsim
-mundane_name: MCSim
-copyright_holder: fsf-ok-with-pd-#787152
-doc_category: Mathematics
-doc_summary: Monte Carlo simulation and analysis
-doc_url: http://www.gnu.org/software/mcsim/mcsim.html
-blurb_id: mcsim_blurb
-gplv3_status: done-in-5.4.0
-last_release: 5.6.6
-last_release_date: 20170122
-last_contact: 29jan11 replied, 29nov10 replied
-activity_status: ok
-last_activity: 20170122
-
-package: mdk
-mundane_name: MIX Development Kit
-copyright_holder: fsf-ok-#787396
-doc_category: Education
-doc_summary: Virtual development environment for Knuth's MIX
-doc_url: /software/mdk/manual/
-blurb_id: mdk_blurb
-doc_shop: GNU MDK
-doc_shop: http://shop.fsf.org/product/gnu-mdk/
-gplv3_status: done-in-1.2.4-21mar08
-last_release: 1.2.9
-last_release_date: 20151228
-activity_status: ok
-last_activity: 20151228
-
-package: mediagoblin
-logo: //mediagoblin.org/images/logo/mediagoblin_dark_medium.png
-language: python
-doc_category: Internet
-doc_summary: Photo and media sharing
-doc_url: http://docs.mediagoblin.org/
-blurb_id: mediagoblin_blurb
-download_url: http://mediagoblin.org/download/
-gplv3_status: ok
-last_release: 0.9.0
-last_release_date: 20160329
-activity_status: ok
-last_activity: 20160329
-
-package: melting
-logo: //www.ebi.ac.uk/biomodels-static/tools/melting/meltingtop.jpg
-doc_category: Science
-doc_summary: Temperature computations for a nucleic acid duplex
-doc_url: http://www.ebi.ac.uk/compneur-srv/melting/melting5-doc/melting.html
-blurb_id: melting_blurb
-download_url: http://www.ebi.ac.uk/compneur-srv/melting/MELTING5.1.1.tar.gz
-gplv3_status: not-done-in-5.0.3
-last_release: 5.2.0
-last_release_date: 20140808
-last_contact: 22feb10 asked
-activity_status: ok
-last_activity: 20140808
-
-package: mempool
-mundane_name: MemPool
-doc_category: Libraries
-doc_summary: Block allocator library
-doc_url: none
-blob_id: mempool_blob
-activity_status: newmaint
-last_activity: 20170621
-
-package: mes
-doc_category: Sysadmin
-doc_summary: Full source bootstrapping for GNU systems
-doc_url: /software/mes/manual/
-gplv3_status: done
-activity_status: newpkg
-last_activity: 20180725
-
-package: metaexchange
-doc_category: Database
-doc_summary: Manipulate metadata from OAI-PMH and Z39.50
-doc_url: /software/metaexchange/#Documentation
-blurb_id: metaexchange_blurb
-gplv3_status: under-discussion (gnumaint-reply 29 Aug 2007 19:26:27)
-note: no-release
-activity_status: newcomaint
-last_activity: 20130404
-
-package: metahtml
-doc_category: Web
-doc_summary: Combining HTML and Lisp, specifically designed for Web servers
-doc_url: http://metahtml.sourceforge.net/documentation/
-blurb_id: metahtml_blurb
-gplv3_status: not-done-since-nomaint
-last_release: 6.11.01
-last_release_date: 20010306
-note: metahtml.org domain expired
-note: used by gcc (only?), Gerald Pfeifer has patches
-note: bfox has some updates to sources on sf, but has not sent
-last_contact: 27nov11 gerald asked, 19jan11 replied, 23feb10 replied
-activity_status: newmaint
-last_activity: 20160926
-
-package: metalogic-inference
-mundane_name: MLI
-doc_category: Mathematics
-doc_summary: Logical proof program
-doc_url: none
-gplv3_status: unknown
-activity_status: newpkg
-last_activity: 20170419
-
-package: mifluz
-doc_category: Libraries
-doc_summary: Full text indexing library
-doc_url: /software/mifluz/doc.en.html
-blurb_id: mifluz_blurb
-gplv3_status: done-in-0.24.0 (7jul08)
-last_release: 0.25.0
-last_release_date: 20140417
-activity_status: ok
-last_activity: 20140417
-
-package: mig
-copyright_holder: see-hurd
-doc_category: Software
-doc_summary: Mach 3.0 interface generator for the Hurd
-doc_url: none
-blurb_id: mig_blurb
-gplv3_status: see-hurd
-last_release: 1.8
-last_release_date: 20161218
-activity_status: ok
-last_activity: 20161218
-
-package: miscfiles
-doc_category: Text
-doc_summary: Data files for airport codes, zip codes, a dictionary, and more
-doc_url: none
-blurb_id: miscfiles_blurb
-gplv3_status: not-applicable (gnumaint-reply 02 Oct 2007 20:11:47)
-last_release: 1.4.2
-last_release_date: 20101116
-last_contact: 17nov10 replied
-activity_status: stale
-last_activity: 20101116
-
-package: mit-scheme
-mundane_name: MIT/GNU Scheme
-logo: /software/mit-scheme/lambda.png
-doc_category: Software
-doc_summary: A Scheme implementation with integrated editor and debugger
-doc_url: /software/mit-scheme/#Documentation
-blurb_id: mit_scheme_blurb
-doc_url: htmlxref
-gplv3_status: needs-exception-#555330
-last_release: stable.pkg/9.2
-last_release_date: 20140521
-activity_status: ok
-last_activity: 20140521
-
-package: moe
-doc_category: Editors
-doc_summary: Modeless, multiple-buffer, user-friendly 8-bit text editor
-doc_url: htmlxref
-blurb_id: moe_blurb
-gplv3_status: done-in-1.0
-last_release: 1.8
-last_release_date: 20160217
-activity_status: ok
-last_activity: 20160217
-
-package: motti
-copyright_holder: fsf-ok-#786712
-doc_category: Games
-doc_summary: Multiplayer strategy game
-doc_url: htmlxref
-blurb_id: motti_blurb
-gplv3_status: done-in-2.5.0.5
-last_release: 3.1.0
-last_release_date: 20140328
-activity_status: ok
-last_activity: 20140328
-
-package: mpc
-doc_category: Mathematics
-doc_summary: C library for arbitrary precision complex arithmetic
-doc_url: http://www.multiprecision.org/downloads/mpc-1.1.0.pdf
-blurb_id: mpc_blurb
-gplv3_status: lgplv3+-as-of-1.0-in-july-2012
-last_release: 1.0.3
-last_release_date: 20150220
-activity_status: ok
-last_activity: 20150220
-
-package: mpfr
-copyright_holder: fsf-ok-#786594
-logo: //www.mpfr.org/mpfr500.png
-doc_category: Mathematics
-doc_summary: C library for arbitrary precision floating-point arithmetic
-doc_url: http://www.mpfr.org/mpfr-current/#doc
-blurb_id: mpfr_blurb
-gplv3_status: lgplv3+-as-of-3.0.0-in-june-2010
-last_release: 3.1.5
-last_release_date: 20160927
-activity_status: ok
-last_activity: 20160927
-
-package: mpria
-doc_category: Mathematics
-doc_summary: C library for arbitrary precision rational arithmetic
-doc_url: none
-blurb_id: mpria_blurb
-gplv3_status: done
-activity_status: newpkg
-last_activity: 20140110
-
-package: mtools
-doc_category: Sysadmin
-doc_summary: Access MS-DOS disks without mounting
-doc_url: /software/mtools/manual/mtools.html
-blurb_id: mtools_blurb
-gplv3_status: done-as-of-4.0.12
-last_release: 4.0.18
-last_release_date: 20130109
-activity_status: stale
-last_activity: 20130109
-
-package: nana
-doc_category: Libraries
-doc_summary: Library for assertions, logging, performance measurement
-doc_url: none
-blurb_id: nana_blurb
-download_url: http://download.savannah.gnu.org/releases/nana/
-gplv3_status: notgpl
-last_release: 2.5
-last_release_date: 19990912
-note: release date from ChangeLog
-note: assert stuff for gcc
-last_contact: 3jul12 jmd asked, 10mar11 asked maintainers with new addr
-activity_status: moribund
-last_activity: 19990912
-
-package: nano
-copyright_holder: fsf-no-reply-#786770
-doc_category: Editors
-doc_summary: Small, user-friendly console text editor
-doc_url: http://www.nano-editor.org/docs.php
-blurb_id: nano_blurb
-gplv3_status: done-in-2.1.4
-last_release: 2.5.0
-last_release_date: 20151206
-activity_status: ok
-last_activity: 20151206
-
-package: nano-archimedes
-doc_category: Science
-doc_summary: Simulation of quantum systems using the Wigner Monte Carlo method
-doc_url: none
-blurb_id: nano_archimedes_blurb
-gplv3_status: unknown
-last_release: 2.0
-last_release_date: 20151110
-activity_status: ok
-last_activity: 20151110
-
-package: ncurses
-copyright_holder: fsf-ok-#786484
-doc_category: Interface
-doc_summary: Terminal emulation (termcap, terminfo) library
-doc_url: none
-blurb_id: ncurses_blurb
-gplv3_status: notgpl
-last_release: 6.0
-last_release_date: 20150809
-last_release: tack-1.06
-last_release_date: 20081108
-note: as a special case, we accepted ncurses as a GNU package under the
-+ revised BSD license.
-activity_status: ok
-last_activity: 20150809
-
-package: nettle
-doc_category: Security
-doc_summary: C library for low-level cryptographic functionality
-doc_url: htmlxref
-blurb_id: nettle_blurb
-gplv3_status: lgplv2+-as-of-2.2-9nov10-asked-rms
-last_release: 3.3
-last_release_date: 20161001
-activity_status: ok
-last_activity: 20161001
-
-package: network
-doc_category: Internet
-doc_summary: Initiative to encourage development of free network services
-doc_url: none
-blurb_id: network_blurb
-gplv3_status: ok-since-container
-container: for-gnu-"group"
-activity_status: container
-
-package: ocrad
-doc_category: Text
-doc_summary: Optical character recognition based on feature extraction
-doc_url: htmlxref
-blurb_id: ocrad_blurb
-gplv3_status: done-in-0.17
-last_release: 0.25
-last_release_date: 20150416
-activity_status: ok
-last_activity: 20150416
-
-package: octave
-copyright_holder: notfsf-#786632
-logo: /software/octave/images/logo.png
-doc_category: Mathematics
-doc_summary: High-level language for numerical computation
-doc_url: /software/octave/support.html
-blurb_id: octave_blurb
-gplv3_status: done-in-3.0.1 (licensing #345079)
-last_release: 4.2.0
-last_release_date: 20161117
-activity_status: ok
-last_activity: 20161117
-
-package: oleo
-copyright_holder: fsf-no-reply
-doc_category: Spreadsheets
-doc_summary: Spreadsheet for both terminal and graphical interfaces
-doc_url: /software/oleo/doc/oleo.html
-blurb_id: oleo_blurb
-gplv3_status: not-done-since-newmaint
-last_release: 1.99.16
-last_release_date: 20010310
-last_contact: 1feb13 brandon wrote, 5apr12 replied, 1apr12,19feb12,22jan12 jmd
asked
-activity_status: newmaint
-last_activity: 20100601
-
-package: oo-browser
-mundane_name: OO-Browser
-copyright_holder: notfsf
-doc_category: Interface
-doc_summary: An interactive object-oriented class browser for Emacs
-doc_url: none
-gplv3_status: done-in-5.0
-activity_status: newpkg
-last_activity: 20160810
-
-package: orgadoc
-mundane_name: OrgaDoc
-doc_category: Text
-doc_summary: Eiffel program to maintain and query documents across machines
-doc_url: /software/orgadoc/manual/
-blurb_id: orgadoc_blurb
-gplv3_status: not-done-since-stale
-last_release: 0.8
-last_release_date: 20040331
-last_contact: 1mar10 resign
-activity_status: newmaint
-last_activity: 20170421
-
-package: osip
-mundane_name: oSIP
-copyright_holder: notfsf
-logo: /software/osip/osip-logo-60p.png
-doc_category: Libraries
-doc_summary: Library implementing SIP (RFC-3261)
-doc_url: /software/osip/doc/html/
-blurb_id: osip_blurb
-gplv3_status: not-done-in-3.2.0
-last_release: libosip2-4.1.0
-last_release_date: 20140106
-activity_status: stale
-last_activity: 20140106
-
-package: panorama
-doc_category: Graphics
-doc_summary: Framework for 3D graphics production
-doc_url: none
-blurb_id: panorama_blurb
-download_url: http://sourceforge.net/project/showfiles.php?group_id=7862
-gplv3_status: not-done-since-stale
-last_release: 0.18
-last_release_date: 20030211
-last_contact: 11may09 asked
-activity_status: stale
-last_activity: 20030211
-
-package: parallel
-logo: /software/parallel/logo.png
-copyright_holder: notfsf
-doc_category: Sysadmin
-doc_summary: Build and execute command lines in parallel
-doc_url: /software/parallel/man.html
-blurb_id: parallel_blurb
-gplv3_status: done-in-20100424
-last_release: 20160922
-last_release_date: 20160922
-activity_status: ok
-last_activity: 20160922
-
-package: parted
-copyright_holder: fsf-no-reply
-doc_category: Sysadmin
-doc_summary: Disk partition editor
-doc_url: /software/parted/manual/
-blurb_id: parted_blurb
-gplv3_status: done-in-1.8.8 (gnumaint-reply 20 Aug 2007 21:13:48 -0400)
-last_release: 3.2
-last_release_date: 20140728
-activity_status: ok
-last_activity: 20140728
-
-package: pascal
-copyright_holder: fsf-ok-#787589
-logo: //www.gnu-pascal.de/images/GnuPascal-small.png
-doc_category: Software
-doc_summary: GNU Pascal compiler
-doc_url: htmlxref
-blurb_id: pascal_blurb
-download_url: http://www.gnu-pascal.de/alpha/
-gplv3_status: done-as-of-2007-09-04-per-email
-last_contact: 23feb09 replied
-activity_status: moribund
-last_activity: 20050331
-
-package: patch
-doc_category: Software
-doc_summary: Apply differences to originals, with optional backups
-doc_url: /software/diffutils/manual/#Invoking-patch
-blurb_id: patch_blurb
-gplv3_status: done-as-of-2.6.1
-last_release: 2.7.5
-last_release_date: 20150306
-activity_status: ok
-last_activity: 20150306
-
-package: paxutils
-copyright_holder: fsf-ok-#786468
-doc_category: Archiving
-doc_summary: Manage cpio, tar, and pax file archives
-doc_url: none
-blurb_id: paxutils_blurb
-download_url: ftp://alpha.gnu.org/gnu/paxutils/
-note: http://alpha.gnu.org/gnu/paxutils/paxutils-2.4h.tar.gz
-gplv3_status: not-done-since-stale-maintainer-busy
-last_release: 2.4h
-last_release_date: 19990611
-last_contact: 9dec12 replied "soon", 4feb09 replied, autumn09
-activity_status: stale
-last_activity: 19990611
-
-package: pcb
-doc_category: Science
-doc_summary: Design printed circuit board layouts
-doc_url: none
-blurb_id: pcb_blurb
-download_url: http://sourceforge.net/project/showfiles.php?group_id=73743
-gplv3_status: not-done-in-20100929
-last_release: 20100929
-last_release_date: 20100929
-last_contact: 2jul12,2dec10,4mar10,24mar09 asked
-activity_status: stale
-last_activity: 20100929
-
-package: pdf
-copyright_holder: fsf-ok-#786934
-doc_category: Printing
-doc_summary: Library and programs for manipulating PDF
-doc_url: none
-blurb_id: pdf_blurb
-gplv3_status: not-done-since-no-release
-note: no-release
-activity_status: stale
-
-package: pem
-doc_category: Business
-doc_summary: Personal expenses manager
-doc_url: none
-blurb_id: pem_blurb
-gplv3_status: done-in-0.7.8
-last_release: 0.7.9
-last_release_date: 20110815
-activity_status: stale
-last_activity: 20110815
-
-package: pexec
-doc_category: Software
-doc_summary: Execute a command in parallel on multiple hosts
-doc_url: /software/pexec/pexec.1.html
-blurb_id: pexec_blurb
-#old download_url: http://sourceforge.net/project/showfiles.php?group_id=210655
-gplv3_status: done-as-of-1.0rc8
-last_release: 1.0rc8
-last_release_date: 20090914
-activity_status: stale
-last_activity: 20090914
-
-package: pgccfd
-mundane_name: Porting GCC for Dunces
-doc_category: Software
-doc_summary: Guide on porting the GNU compiler to new platforms
-doc_url: none
-blurb_id: pgccfd_blurb
-download_url: ftp://ftp.axis.se/pub/users/hp/pgccfd/
-gplv3_status: needs-fdl-update-nomaint
-last_release: 0.5
-last_release_date: 20130303
-activity_status: newmaint
-last_activity: 20130303
-
-package: phantom_home
-mundane_name: Phantom.Home
-doc_category: Interface
-doc_summary: Computer-controlled home automation
-doc_url: none
-blurb_id: phantom_home_blurb
-download_url: http://ftp.gnu.org/gnu/phantom/home/
-gplv3_status: not-done-since-stale
-last_release: 1.0
-last_release_date: 20000628
-activity_status: stale
-last_activity: 20000628
-
-package: pies
-doc_category: Software
-doc_summary: Program invocation and execution supervisor
-doc_url: http://www.gnu.org.ua/software/pies/manual.html
-blurb_id: pies_blurb
-gplv3_status: done-as-of-1.2
-last_release: 1.3
-last_release_date: 20161001
-activity_status: ok
-last_activity: 20161001
-
-package: pipo
-download_url: http://maddingue.free.fr/softwares/download/GNU-PipoBBS/
-doc_category: Internet
-doc_summary: Bulletin board system
-doc_url: none
-blurb_id: pipo_blurb
-gplv3_status: not-done-since-stale
-last_contact: 9mar10 asked
-last_release: 0.20
-last_release_date: 19990528
-activity_status: stale
-last_activity: 19990528
-
-package: plotutils
-copyright_holder: fsf-no-reply
-doc_category: Graphics
-doc_summary: Plotting utilities and library
-doc_url: none
-blurb_id: plotutils_blurb
-gplv3_status: done-in-2.6
-last_release: 2.6
-last_release_date: 20090926
-activity_status: stale
-last_activity: 20090926
-
-package: polyxmass
-doc_category: Science
-doc_summary: Mass spectrometric data simulations and analyses
-doc_url: none
-blurb_id: polyxmass_blurb
-download_url: http://debian.cs.binghamton.edu/debian/pool/main/p/polyxmass/
-gplv3_status: not-done-since-nomaint
-note: other polyxmass-* directories there too.
-activity_status: newmaint
-last_activity: 20160314
-
-package: powerguru
-copyright_holder: fsf-ok-#786472
-mundane_name: PowerGuru
-doc_category: Interface
-doc_summary: Monitoring, logging, and remote control of power generation
-doc_url: /software/powerguru/#documentation
-blurb_id: powerguru_blurb
-gplv3_status: in-dev-sources
-note: no-release
-activity_status: newcomaint
-last_activity: 20130404
-
-package: proxyknife
-doc_category: Internet
-doc_summary: Customizable multithread proxy hunter
-doc_url: /software/proxyknife/manual/
-blurb_id: proxyknife_blurb
-gplv3_status: done-in-1.7 (gnumaint-reply 24 Sep 2007 22:54:49 +0800)
-last_release: 1.7
-last_release_date: 20070924
-activity_status: stale
-last_activity: 20070924
-
-package: pspp
-mundane_name: PSPP
-copyright_holder: fsf-ok-with-external-#786643
-logo: /software/pspp/pspplogo.png
-doc_category: Mathematics
-doc_summary: Statistical analysis
-doc_url: /software/pspp/manual/
-blurb_id: pspp_blurb
-gplv3_status: done-in-0.4.0.1
-last_release: 0.10.2
-last_release_date: 20160723
-activity_status: ok
-last_activity: 20160723
-
-package: psychosynth
-doc_category: Music
-doc_summary: Interactive software synthesizer
-doc_url: http://www.psychosynth.com/index.php?title=Documentation
-blurb_id: psychosynth_blurb
-gplv3_status: done-as-of-0.1.5
-last_release: 0.3.0
-last_release_date: 20120402
-activity_status: stale
-last_activity: 20120402
-
-package: pth
-logo: /software/pth/pth.jpg
-doc_category: Libraries
-doc_summary: Portable thread library
-doc_url: /software/pth/pth-manual.html
-blurb_id: pth_blurb
-gplv3_status: next-release rms
-last_release: 2.0.7
-last_release_date: 20060608
-last_contact: 3dec11 replied, 10mar11 asked (rms gave up), 4jan11 to rms,
12mar10 asked, 1jun09 replied
-activity_status: stale
-last_activity: 20060608
-
-package: pyconfigure
-language: python
-language: autoconf
-doc_category: Software
-doc_summary: Configure interface for Python-based packages
-doc_url: /software/pyconfigure/manual/
-blurb_id: pyconfigure_blurb
-gplv3_status: stays-lgplv2-indefinitely (rms 26 Sep 2010 06:37:43)
-last_release: 0.2.3
-last_release_date: 20160420
-activity_status: ok
-last_activity: 20160420
-
-package: pythonwebkit
-language: python
-doc_category: Software
-doc_summary: W3C DOM bindings to Webkit for use with GTK and more
-doc_url: none
-blurb_id: pythonwebkit_blurb
-gplv3_status: stays-lgplv2-indefinitely (rms 26 Sep 2010 06:37:43)
-note: no-release
-last_contact: 17feb13 no release (urged doing so)
-activity_status: newmaint
-last_activity: 20100926
-
-package: qexo
-doc_category: Software
-doc_summary: Java implementation of XQuery using GNU Kawa
-doc_url: /software/qexo/#Documentation
-blurb_id: qexo_blurb
-download_url: http://ftp.gnu.org/gnu/kawa/
-gplv3_status: notgpl
-note: see kawa
-last_contact: see kawa
-activity_status: subpkg
-
-package: quickthreads
-doc_category: Libraries
-doc_summary: Thread library
-doc_url: none
-blurb_id: quickthreads_blurb
-gplv3_status: not-done-since-nomaint
-last_release: 1.6.8
-last_release_date: 20060528
-last_contact: 12mar10 asked, 23jul09 awaiting code,
-note: used to be part of guile, but dropped in guile 1.8.0
-activity_status: nomaint
-last_activity: 20060528
-
-package: r
-logo: //www.r-project.org/Rlogo.jpg
-doc_category: Mathematics
-doc_summary: Environment for statistical computing and graphics
-doc_url: http://cran.r-project.org/#doc
-blurb_id: r_blurb
-download_url: http://stat.ethz.ch/CRAN/src/base/
-gplv3_status: not-done-as-of-2.10.1 (ticket 319866?)
-last_release: 3.2.0
-last_release_date: 20150416
-activity_status: ok
-last_activity: 20150416
-
-package: radius
-copyright_holder: fsf-no-reply
-doc_category: Security
-doc_summary: Authentication and accounting services and daemon
-doc_url: /software/radius/manual/
-blurb_id: radius_blurb
-gplv3_status: done-in-1.6
-last_release: 1.6.1
-last_release_date: 20081217
-activity_status: stale
-last_activity: 20081217
-
-package: rcs
-mundane_name: RCS
-copyright_holder: notfsf-tichy-eggert-nguyen-#786470
-doc_category: Version
-doc_summary: Per-file local revision control system
-doc_url: /software/rcs/manual/
-blurb_id: rcs_blurb
-gplv3_status: not-done-since-stale
-last_release: 5.9.4
-last_release_date: 20150122
-activity_status: ok
-last_activity: 20150122
-
-package: readline
-copyright_holder: fsf-ok-with-examples-#790941
-doc_category: Editors
-doc_summary: Edit command lines while typing, with history support
-doc_url: htmlxref
-blurb_id: readline_blurb
-gplv3_status: done-in-4.0
-last_release: 7.0
-last_release_date: 20160917
-activity_status: ok
-last_activity: 20160917
-
-package: recutils
-logo: /software/recutils/logo.png
-doc_category: Database
-doc_summary: Manipulate plain text files as databases
-doc_url: /software/recutils/manual/
-blurb_id: recutils_blurb
-gplv3_status: done
-last_release: 1.6
-last_release_date: 20140324
-activity_status: ok
-last_activity: 20140324
-
-package: reftex
-copyright_holder: see-auctex
-doc_category: Text
-doc_summary: Emacs support for LaTeX cross-references of all kinds
-doc_url: /software/auctex/manual/reftex.index.html
-blurb_id: reftex_blurb
-gplv3_status: done-in-4.33
-last_release: 4.34
-last_release_date: 20090809
-activity_status: stale
-last_activity: 20090809
-
-package: remotecontrol
-copyright_holder: notfsf
-logo: /software/remotecontrol/GNU_remotecontrol_CIRCLE.png
-doc_category: Interface
-doc_summary: Management of IP-enabled thermostats and other HVAC devices
-doc_url: /software/remotecontrol/manual/
-blurb_id: remotecontrol_blurb
-gplv3_status: done-from-start
-last_release: 2.0
-last_release_date: 20160425
-activity_status: ok
-last_activity: 20160425
-
-package: jami
-alias: ring
-doc_category: Live
-doc_summary: A privacy-respecting communication program
-doc_url: none
-gplv3_status: done-from-start
-activity_status: newpkg
-last_activity: 20161018
-
-package: rottlog
-doc_category: Sysadmin
-doc_summary: Log rotation and management
-doc_url: /software/rottlog/manual/
-blurb_id: rottlog_blurb
-gplv3_status: done-in-0.71.2
-last_release: 0.72.2
-last_release_date: 20100330
-activity_status: newmaint
-last_activity: 20130724
-
-package: rpge
-doc_category: Games
-doc_summary: Role playing game engine
-doc_url: none
-blurb_id: rpge_blurb
-gplv3_status: done-in-0.0.1
-last_release: 0.0.3
-last_release_date: 20140106
-note: revived 6jan14, was gone 22may13 per inaction+leg
-activity_status: stale
-last_activity: 20140106
-
-package: rush
-doc_category: Software
-doc_summary: Restricted user (login) shell
-doc_url: http://puszcza.gnu.org.ua/software/rush/manual.html
-blurb_id: rush_blurb
-gplv3_status: done-in-1.5
-last_release: 1.8
-last_release_date: 20161001
-activity_status: ok
-last_activity: 20161001
-
-package: sather
-doc_category: Software
-doc_summary: An object-oriented language designed to be simple, efficient, safe
-doc_url: /software/sather/#doc
-blurb_id: sather_blurb
-gplv3_status: done-in-1.2.3
-last_release: 1.2.3
-last_release_date: 20070707
-last_contact: 20feb13 replied, 19feb13 asked, 14apr12 asked
-activity_status: newmaint
-last_activity: 20120305
-
-package: scm
-mundane_name: SCM
-copyright_holder: fsf-ok-#786490
-language: c
-logo: //people.csail.mit.edu/jaffer/Logo/SCM_64.png
-doc_category: Software
-doc_summary: A Scheme implementation
-doc_url: http://people.csail.mit.edu/jaffer/scm_toc.html
-blurb_id: scm_blurb
-other_download_url: http://people.csail.mit.edu/jaffer/SCM.html
-gplv3_status: done-without-exception-#502112-lgpl-but-done-in-scm-5e5
(info-gnu 4 Feb 2008 00:27:30)
-last_release: 5f2
-last_release_date: 20150116
-activity_status: ok
-last_activity: 20150116
-
-package: screen
-copyright_holder: notfsf-Juergen Weigert, Michael Schroeder, Oliver Laumann,
et al.
-doc_category: Software
-doc_summary: Full-screen window manager providing multiple terminals
-doc_url: /software/screen/manual/
-blurb_id: screen_blurb
-gplv3_status: not-done-in-4.0.3
-last_release: 4.5.0
-last_release_date: 20170118
-activity_status: ok
-last_activity: 20170118
-
-package: sed
-copyright_holder: fsf-ok-#786533
-doc_category: Text
-doc_summary: Stream editor
-doc_url: /software/sed/manual/
-blurb_id: sed_blurb
-gplv3_status: done-in-4.2
-last_release: 4.3
-last_release_date: 20170104
-activity_status: ok
-last_activity: 20170104
-
-package: serveez
-logo: /software/serveez/logo.jpg
-doc_category: Sysadmin
-doc_summary: Framework for implementing IP-based servers
-doc_url: /software/serveez/manual/
-blurb_id: serveez_blurb
-gplv3_status: not-done-in-0.1.7
-last_release: 0.2.2
-last_release_date: 20131202
-activity_status: stale
-last_activity: 20131202
-
-package: sharutils
-copyright_holder: fsf-ok-with-external-29dec-mail
-doc_category: Archiving
-doc_summary: Archives in shell scripts, uuencode/uudecode
-doc_url: /software/sharutils/manual/
-blurb_id: sharutils_blurb
-gplv3_status: done-in-4.7
-last_release: 4.15.2
-last_release_date: 20150530
-activity_status: ok
-last_activity: 20150530
-
-package: shepherd
-copyright_holder: fsf-no-reply-individual-name-in-files
-doc_category: Sysadmin
-doc_summary: System service manager
-doc_url: none
-blurb_id: shepherd_blurb
-gplv3_status: not-done-in-0.5
-download_url: http://www.wt-lorsch.de/dmd--0.5.tar.gz
-last_release: 0.5
-# The exact last release date (as GNU dmd) is not known
-last_release_date: 20030101
-activity_status: newmaint
-last_activity: 20130925
-
-package: shishi
-copyright_holder: notfsf
-logo: /software/shishi/shishi.png
-doc_category: Internet
-doc_summary: Implementation of the Kerberos 5 network security system
-doc_url: /software/shishi/#status
-blurb_id: shishi_blurb
-gplv3_status: done-in-alpha-releases
-last_release: 1.0.2
-last_release_date: 20120403
-activity_status: stale
-last_activity: 20120403
-
-package: shmm
-doc_category: Software
-doc_summary: Shared memory manager utility
-doc_url: none
-blurb_id: shmm_blurb
-gplv3_status: done-in-1.0
-last_release: 1.0
-last_release_date: 20080628
-activity_status: stable
-last_activity: 20080628
-
-package: shtool
-doc_category: Software
-doc_summary: Compilation of utility shell scripts into a shell tool
-doc_url: none
-blurb_id: shtool_blurb
-gplv3_status: not-done rms
-last_release: 2.0.8
-last_release_date: 20080718
-last_contact: see pth
-note: pending (l)gplv3, current address, rationalE?, info-gnu announcement
-activity_status: stale
-last_activity: 20080718
-
-package: sipwitch
-doc_category: Telephony
-doc_summary: Secure peer-to-peer VoIP server for the SIP protocol
-doc_url: /software/sipwitch/sipwitch.html#documentation
-blurb_id: sipwitch_blurb
-gplv3_status: done-in-0.1
-last_release: 1.9.15
-last_release_date: 20151213
-activity_status: ok
-last_activity: 20151213
-
-package: slib
-mundane_name: SLIB
-doc_category: Software
-doc_summary: Portable library for Scheme
-doc_url: http://people.csail.mit.edu/jaffer/slib/index.html
-blurb_id: slib_blurb
-logo: //people.csail.mit.edu/jaffer/Logo/SLIB_64.png
-other_download_url: http://groups.csail.mit.edu/mac/ftpdir/scm/
-gplv3_status: done-since-public-domain (licensing 341650, 20 Aug 2007 21:16:08)
-last_release: 3b5
-last_release_date: 20150116
-activity_status: ok
-last_activity: 20150116
-
-package: smalltalk
-copyright_holder: fsf-ok-with-external-#786531
-doc_category: Software
-doc_summary: Smalltalk environment
-doc_url: http://smalltalk.gnu.org/documentation
-blurb_id: smalltalk_blurb
-doc_url: htmlxref
-logo: //smalltalk.gnu.org/files/gst_logo.png
-gplv3_status: needs-exception-#362488, brett 29 Oct 2009 18:02:27
-last_release: 3.2.5
-last_release_date: 20130407
-note: html manuals are constructed ok, but have generic names ("manual")
-activity_status: stale
-last_activity: 20130407
-
-package: social
-doc_category: Internet
-doc_summary: Decentralized social networking server
-doc_url: none
-blurb_id: social_blurb
-gplv3_status: not-done-since-no-release
-note: no-release
-activity_status: stale
-last_activity: 20100313
-
-package: solfege
-doc_category: Music
-doc_summary: Ear training
-doc_url: none
-logo: //www.solfege.org/static/logo.png
-blurb_id: solfege_blurb
-gplv3_status: done-in-3.10.3
-last_release: 3.22.2
-last_release_date: 20140318
-activity_status: newmaint
-last_activity: 20140318
-
-package: spacechart
-mundane_name: SpaceChart
-copyright_holder: fsf-no-reply
-doc_category: Science
-doc_summary: Stargazing in 3D under GNOME
-doc_url: none
-blurb_id: spacechart_blurb
-gplv3_status: not-done-since-stale
-last_release: 0.9.5
-last_release_date: 20021206
-last_contact: 21mar10,14feb09 asked
-activity_status: stale
-last_activity: 20021206
-
-package: speex
-logo: //www.speex.org/images/logos/parrot_speex_org-3.png
-doc_category: Audio
-doc_summary: Library for patent-free audio compression format
-doc_url: http://www.speex.org/docs/
-blurb_id: speex_blurb
-download_url: http://downloads.xiph.org/releases/speex/
-gplv3_status: notgpl
-last_release: 1.2rc1
-last_release_date: 20080724
-activity_status: stable
-last_activity: 20080724
-
-package: spell
-copyright_holder: fsf-ok-#786524
-doc_category: Text
-doc_summary: Spell checking
-doc_url: none
-blurb_id: spell_blurb
-gplv3_status: not-done-since-stale
-last_release: 1.1
-last_release_date: 20110721
-activity_status: stale
-last_activity: 20110721
-
-package: sqltutor
-copyright_holder: fsf-ok-with-external-#787535
-doc_category: Database
-doc_summary: Interactively learn SQL by example
-doc_url: /software/sqltutor/manual/
-blurb_id: sqltutor_blurb
-gplv3_status: done-as-of-0.6
-last_release: 0.7
-last_release_date: 20140601
-activity_status: ok
-last_activity: 20140601
-
-package: src-highlite
-search_alias: source-highlight
-doc_category: Text
-doc_summary: Produce a document with syntax highlighting from a source file
-doc_url: htmlxref
-blurb_id: src_highlite_blurb
-gplv3_status: done-in-2.8
-last_release: source-highlight-3.1.8
-last_release_date: 20150330
-activity_status: ok
-last_activity: 20150330
-
-package: ssw
-mundane_name: Spread Sheet Widget
-doc_category: Spreadsheets
-doc_summary: Gtk+ widget for viewing and manipulating tabular data
-doc_url: none
-gplv3_status: done
-activity_status: newpkg
-last_activity: 20170525
-
-package: stalkerfs
-copyright_holder: fsf-no-reply
-doc_category: Interface
-doc_summary: Desktop search engine for local files, using FUSE
-doc_url: none
-blurb_id: stalkerfs_blurb
-gplv3_status: in-dev-sources (gnumaint-reply 21 Aug 2007 18:41:09 +0200)
-note: no-release
-activity_status: stale
-
-package: stow
-doc_category: Sysadmin
-doc_summary: Managing installed software packages
-doc_url: /software/stow/manual/
-blurb_id: stow_blurb
-gplv3_status: not-done-since-stale
-last_release: 2.2.2
-last_release_date: 20151109
-activity_status: ok
-last_activity: 20151109
-
-package: stump
-logo: //www.algebra.com/~ichudov/images/active/stump.jpg
-doc_category: Internet
-doc_summary: Secure team-based Usenet moderation program
-doc_url: none
-blurb_id: stump_blurb
-download_url: http://www.algebra.com/~ichudov/stump/
-gplv3_status: not-done-since-stale
-last_release: 2.5
-last_release_date: 20000622
-last_contact: 9dec10 asked, 24mar10 asked, 16mar09 replied
-activity_status: stable
-last_activity: 20000622
-
-package: superopt
-copyright_holder: fsf-no-reply
-doc_category: Software
-doc_summary: Super-optimizer of given functions
-doc_url: none
-blurb_id: superopt_blurb
-gplv3_status: not-done-since-stale
-last_release: 2.5
-last_release_date: 19950614
-note: maintainers@ received patch from ttn, 04 Jan 2014 13:33:11.
-activity_status: newmaint
-last_activity: 20150624
-
-package: swbis
-doc_category: Software
-doc_summary: POSIX software packaging utilities
-doc_url: htmlxref
-blurb_id: swbis_blurb
-gplv3_status: done-in-0.951 (20apr08)
-last_release: 1.12
-last_release_date: 20140803
-activity_status: ok
-last_activity: 20140803
-
-package: sysutils
-copyright_holder: fsf-no-reply
-doc_category: Sysadmin
-doc_summary: Standard system administration utilities: passwd, chsh, and more
-doc_url: none
-blurb_id: sysutils_blurb
-download_url: http://download.savannah.gnu.org/releases/sysutils/
-gplv3_status: not-done-since-stale
-last_release: 0.1.5
-last_release_date: 20060329
-last_contact: 19jan11 asked, 26mar10 asked
-note: real maintainer is David Weinhall <address@hidden>
-activity_status: nomaint
-last_activity: 20150322
-
-package: taler
-doc_category: Business
-doc_summary: Electronic payments for a liberal society
-doc_url: none
-blurb_id: taler_blurb
-gplv3_status: done-from-beginning
-last_release: 0.0.0
-last_release_date: 20160603
-activity_status: ok
-last_activity: 20160603
-
-package: talkfilters
-doc_category: Games
-doc_summary: Convert English text to humorous dialects
-doc_url: http://www.hyperrealm.com/talkfilters/talkfilters.pdf
-blurb_id: talkfilters_blurb
-download_url: http://www.hyperrealm.com/talkfilters/
-gplv3_status: not-done-in-2.3.8 # 27mar10 replied
-last_release: 2.3.8
-last_release_date: 20071228
-activity_status: stable
-last_activity: 20071228
-
-package: tar
-copyright_holder: fsf-ok-#786475
-doc_category: Archiving
-doc_summary: Managing tar archives
-doc_url: /software/tar/manual/
-blurb_id: tar_blurb
-gplv3_status: done-in-1.21
-last_release: 1.29
-last_release_date: 20150516
-activity_status: ok
-last_activity: 20150516
-
-package: termcap
-copyright_holder: fsf-ok-#786501
-doc_category: Interface
-doc_summary: Terminal-independent display support
-doc_url: /software/termutils/manual/termcap-1.3/termcap.html
-blurb_id: termcap_blurb
-gplv3_status: not-done-since-stale-and-not-updated-in-emacs
-last_release: 1.3.1
-last_release_date: 20020313
-last_contact: see termutils
-activity_status: stable
-last_activity: 20020313
-
-package: termutils
-copyright_holder: fsf-ok-#786502
-doc_category: Interface
-doc_summary: The tput and tabs utilities for terminal operations
-doc_url: /software/termutils/manual/termutils-2.0/tput.html
-blurb_id: termutils_blurb
-gplv3_status: not-done-since-stale-and-move-to-ncurses
-last_release: 2.0
-last_release_date: 19951201
-last_contact: 8nov10 asked, 23feb09 replied/asked
-activity_status: stable
-last_activity: 19951201
-
-package: teseq
-doc_category: Software
-doc_summary: Analyze files with terminal control sequences, for debugging
-doc_url: /software/teseq/manual/
-blurb_id: teseq_blurb
-gplv3_status: done-in-1.0.0
-last_release: 1.1.1
-last_release_date: 20150814
-activity_status: ok
-last_activity: 20150814
-
-package: teximpatient
-mundane_name: TeX for the Impatient
-copyright_holder: notfsf
-doc_category: Text
-doc_summary: Book on TeX, plain TeX, and Eplain
-doc_url: none
-blurb_id: teximpatient_blurb
-gplv3_status: doc
-download_url: ftp://tug.org/tex/impatient/
-last_release: 2.3
-last_release_date: 20130530
-activity_status: newmaint
-last_activity: 20160321
-
-package: texinfo
-copyright_holder: fsf-ok
-doc_category: Text
-doc_summary: The GNU documentation format
-doc_url: /software/texinfo/manual/
-blurb_id: texinfo_blurb
-doc_url: htmlxref
-gplv3_status: done-#502113
-last_release: 6.3
-last_release_date: 20160910
-activity_status: ok
-last_activity: 20160910
-
-package: texmacs
-mundane_name: TeXmacs
-gplv3_status: not-done-in-1.0.7
-doc_category: Text
-doc_summary: Editing platform with special features for scientists
-doc_url: none
-blurb_id: texmacs_blurb
-download_url: http://www.texmacs.org/tmweb/download/sources.en.html
-last_release: 1.99.4
-last_release_date: 20151218
-activity_status: ok
-last_activity: 20151218
-
-package: thales
-doc_category: Software
-doc_summary: Unit test framework for Guile
-doc_url: htmlxref
-blurb_id: thales_blurb
-gplv3_status: unknown
-last_release: 1.99
-last_release_date: 20140319
-activity_status: ok
-last_activity: 20140319
-
-package: time
-copyright_holder: fsf-ok-#786500
-doc_category: Sysadmin
-doc_summary: Run a command, then display its resource usage
-doc_url: none
-blurb_id: time_blurb
-gplv3_status: not-done-since-stale
-last_release: 1.7.2
-last_release_date: 20150123
-last_contact: 16feb13 replied on bug-gnu-utils, no eta; 14oct11 replied,
13jan11 replied-within-a-month
-activity_status: ok
-last_activity: 20150123
-
-package: tramp
-mundane_name: TRAMP
-copyright_holder: fsf-ok-#786547
-doc_category: Interface
-doc_summary: Transparent Remote Access, Multiple Protocol GNU Emacs package
-doc_url: htmlxref
-blurb_id: tramp_blurb
-gplv3_status: done-in-2.1.14
-last_release: 2.2.11
-last_release_date: 20141229
-activity_status: ok
-last_activity: 20141229
-
-package: trans-coord
-copyright_holder: fsf-ok
-fsd: none
-doc_category: Translation
-doc_summary: Organizational infrastructure for translating www.gnu.org
-doc_url: /software/trans-coord/manual/
-blurb_id: trans_coord_blurb
-gplv3_status: ok-since-container
-container: for-gnun
-note: savannah project for www.gnu.org translation coordination
-activity_status: container
-
-package: trueprint
-doc_category: Printing
-doc_summary: Pretty-print C sources and other plain text to PostScript
-doc_url: none
-blurb_id: trueprint_blurb
-gplv3_status: unknown
-last_release: 5.4
-last_release_date: 20130311
-activity_status: newmaint
-last_activity: 20140305
-
-package: unifont
-copyright_holder: notfsf
-doc_category: Fonts
-doc_summary: Large bitmap font covering Unicode's Basic Multilingual Plane
-doc_url: none
-blurb_id: unifont_blurb
-gplv3_status: stays-gplv2+-per-author-and-rms
-last_release: 9.0.06
-last_release_date: 20161223
-activity_status: ok
-last_activity: 20161223
-
-package: units
-copyright_holder: fsf-no-reply
-doc_category: Science
-doc_summary: Conversion between thousands of scales
-doc_url: /software/units/manual/
-blurb_id: units_blurb
-gplv3_status: done (gnumaint-reply 26 Sep 2007 21:58:19)
-last_release: 2.11
-last_release_date: 20140402
-activity_status: ok
-last_activity: 20140402
-
-package: unrtf
-mundane_name: UnRTF
-gplv3_status: done-in-0.20.5
-doc_category: Text
-doc_summary: Convert Rich Text Format documents to other formats
-doc_url: none
-blurb_id: unrtf_blurb
-last_release: 0.21.9
-last_release_date: 20150102
-activity_status: ok
-last_activity: 20150102
-
-package: userv
-doc_category: Security
-doc_summary: Daemon to control service access
-doc_url: http://www.chiark.greenend.org.uk/~ian/userv/spec.html/
-blurb_id: userv_blurb
-gplv3_status: under-discussion-system-component (gnumaint-reply 21 Aug 2007
11:55:17 +0100)
-last_release: 1.2.0
-last_release_date: 20170123
-last_contact: 19feb13 maybe soon; see adns
-activity_status: ok
-last_activity: 20170123
-
-package: uucp
-copyright_holder: notfsf-#786532
-mundane_name: UUCP
-doc_category: Sysadmin
-doc_summary: UUCP protocol implementation
-doc_url: none
-blurb_id: uucp_blurb
-gplv3_status: not-done-since-stale
-last_release: 1.07
-last_release_date: 20030603
-last_contact: 9jan11 asked, 3apr10 asked, 19may09 replied
-activity_status: newmaint
-last_activity: 20131008
-
-package: vc-dwim
-fsd: vcdwim
-doc_category: Version
-doc_summary: Version-control-agnostic ChangeLog diff and commit tool
-doc_url: /software/vc-dwim/manual/
-blurb_id: vc_dwim_blurb
-gplv3_status: done-as-of-1.2
-last_release: 1.8
-last_release_date: 20170114
-activity_status: ok
-last_activity: 20170114
-
-package: vcdimager
-mundane_name: VCDImager
-doc_category: Video
-doc_summary: Authoring, disassembling and analyzing (super and) video CDs
-doc_url: none
-blurb_id: vcdimager_blurb
-gplv3_status: under-discussion (4nov07)
-last_release: 0.7.24
-last_release_date: 20110317
-activity_status: stale
-last_activity: 20110317
-
-package: vera
-copyright_holder: notfsf
-doc_category: Dictionaries
-doc_summary: List of acronyms
-doc_url: none
-blurb_id: vera_blurb
-gplv3_status: doc
-last_release: 1.22
-last_release_date: 20140925
-activity_status: ok
-last_activity: 20140925
-
-package: vmgen
-copyright_holder: see-gforth
-doc_category: Software
-doc_summary: Generic virtual machine generation, used by gforth
-doc_url: none
-blurb_id: vmgen_blurb
-download_url: http://ftp.gnu.org/gnu/gforth/
-gplv3_status: in-dev-sources (gnumaint-reply 31 Dec 2007 20:31:05)
-last_release: gforth-0.7.3
-last_release_date: 20140709
-note: vmgen is distributed as part of gforth
-activity_status: ok
-last_activity: 20140709
-
-package: wb
-mundane_name: WB
-logo: //people.csail.mit.edu/jaffer/TreeRoot96.jpg
-doc_category: Libraries
-doc_summary: Disk-based associative array B-tree database library
-doc_url: http://people.csail.mit.edu/jaffer/wb_toc.html
-blurb_id: wb_blurb
-other_download_url: http://groups.csail.mit.edu/mac/ftpdir/scm/
-gplv3_status: done-without-exception-#502112-but-done-in-wb2a2 (info-gnu 4 Feb
2008 00:29:22)
-last_release: 2b3
-last_release_date: 20150116
-activity_status: ok
-last_activity: 20150116
-
-package: wdiff
-copyright_holder: fsf-no-reply
-doc_category: Text
-doc_summary: Word difference finder
-doc_url: /software/wdiff/manual/
-blurb_id: wdiff_blurb
-gplv3_status: done-in-0.6.0
-last_release: 1.2.2
-last_release_date: 20140414
-activity_status: ok
-last_activity: 20140414
-
-package: websocket4j
-language: java
-doc_category: Internet
-doc_summary: WebSocket protocol implementation for Java-HTML5 communication
-doc_url: /software/websocket4j/manual/
-blurb_id: websocket4j_blurb
-gplv3_status: done
-last_release: 1.3
-last_release_date: 20101024
-activity_status: stale
-last_activity: 20101024
-
-package: webstump
-mundane_name: WebSTUMP
-doc_category: Internet
-doc_summary: Web interface to STUMP
-doc_url: none
-blurb_id: webstump_blurb
-download_url: http://www.algebra.com/~ichudov/stump/
-gplv3_status: see-stump
-note: approx. last_activity 1999
-last_contact: see stump
-activity_status: stable
-
-package: wget
-copyright_holder: fsf-ok-#786732
-doc_category: Internet
-doc_summary: Non-interactive command-line utility for downloading files
-doc_url: /software/wget/manual/
-blurb_id: wget_blurb
-gplv3_status: done-in-1.11
-last_release: 1.18
-last_release_date: 20160609
-activity_status: ok
-last_activity: 20160609
-
-package: which
-copyright_holder: notfsf
-doc_category: Sysadmin
-doc_summary: Find full path of shell commands
-doc_url: none
-blurb_id: which_blurb
-gplv3_status: done-in-2.19
-last_release: 2.21
-last_release_date: 20150320
-activity_status: stable
-last_activity: 20150320
-
-package: womb
-copyright_holder: fsf-ok
-doc_category: Software
-doc_summary: Repository for GNU work not intended to be separate packages
-doc_url: none
-blurb_id: womb_blurb
-gplv3_status: in-dev-sources (aug07)
-note: released-through-vc
-activity_status: ok
-
-package: xaos
-mundane_name: XaoS
-doc_category: Graphics
-doc_summary: Real-time fractal zoomer
-doc_url: http://matek.hu/xaos/doku.php?id=documentation:main
-blurb_id: xaos_blurb
-download_url: http://sourceforge.net/projects/xaos/files/XaoS/
-gplv3_status: working (gnumaint-reply 21 Aug 2007 20:43:33 +0200)
-last_release: 3.6
-last_release_date: 20131101
-activity_status: stale
-last_activity: 20131101
-
-package: xboard
-mundane_name: XBoard
-copyright_holder: fsf-maybe-ok-just-scotti-#786505
-doc_category: Games
-doc_summary: Graphical user interface for chess programs
-doc_url: /software/xboard/manual/
-blurb_id: xboard_blurb
-gplv3_status: done-as-of-4.4.2
-last_release: 4.8.0
-last_release_date: 20141102
-activity_status: ok
-last_activity: 20141102
-
-package: xlogmaster
-logo: /graphics/xlogmaster/logo_small.jpg
-doc_category: Sysadmin
-doc_summary: GUI program for monitoring log and other files
-doc_url: /software/xlogmaster/tutorial_toc.html
-blurb_id: xlogmaster_blurb
-gplv3_status: done-as-of-1.6.2
-last_release: 1.6.2
-last_release_date: 20090624
-last_contact: 19feb12 jmd asked about penguin
-activity_status: stale
-last_activity: 20090624
-
-package: xmlat
-doc_category: Web
-doc_summary: Simple XML for defining and implementing markup languages
-doc_url: none
-blurb_id: xmlat_blurb
-gplv3_status: should-be-done
-last_contact: 27feb13 replied, 26feb13 asked
-activity_status: newmaint
-last_activity: 20120512
-
-package: xnee
-doc_category: Software
-doc_summary: Record, replay and distribute user actions under X11
-doc_url: http://xnee.wordpress.com/documentation/
-blurb_id: xnee_blurb
-gplv3_status: done-in-directory
-last_release: 3.19
-last_release_date: 20140506
-activity_status: ok
-last_activity: 20140506
-
-package: xorriso
-doc_category: Archiving
-doc_summary: Create, manipulate, burn ISO-9660 filesystems
-doc_url: /software/xorriso/man_1_xorriso.html
-blurb_id: xorriso_blurb
-gplv3_status: done
-last_release: 1.4.6
-last_release_date: 20160917
-note: Libburnia project = address@hidden
-note: xorriso support also on address@hidden
-note: mkisofs history at http://lists.debian.org/cdwrite/2004/10/msg00071.html
-activity_status: ok
-last_activity: 20160917
-
-package: zile
-copyright_holder: fsf-no-reply
-doc_category: Editors
-doc_summary: Zile is lossy Emacs, a lightweight Emacs clone
-doc_url: none
-blurb_id: zile_blurb
-gplv3_status: done-in-2.2.58
-last_release: 2.4.13
-last_release_date: 20161018
-activity_status: ok
-last_activity: 20161018
-
-# End. (Do not remove this line or the blank line before it. Thanks.)
Index: rec/package-descriptor.rec
===================================================================
RCS file: rec/package-descriptor.rec
diff -N rec/package-descriptor.rec
--- rec/package-descriptor.rec 10 Dec 2018 08:33:50 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,92 +0,0 @@
-# $Id: package-descriptor.rec,v 1.7 2018/12/10 08:33:50 th_g Exp $
-# Public domain.
-#
-# This file is maintained in the CVS repository of GNU womb,
-# http://cvs.savannah.gnu.org/viewvc/gnumaint/?root=womb
-#
-# Info/constraints about the fields:
-# - The package name should always be all-lowercase.
-#
-# - When mundane_name is not specified, default is to capitalize the first
-# letter of the package identifier.
-#
-# - Default for download_url is http://ftp.gnu.org/gnu/PKGNAME.
-#
-# - A doc_url value of "none" means no specific documentation page (home
-# page is used).
-# "htmlxref" means to extract a list of additional manuals from the
-# Texinfo htmlxref.cnf file.
-# Otherwise, it can be a url, which can be used together with htmlxref,
-# but multiple explicit urls or other combinations are not supported.
-#
-# - doc_category values are in doc-categories.txt (following FSD).
-# (doc stuff is used to generate gnu.org/manual.)
-#
-# - each package should always have an activity_status
-#
-# - allowed activity_status values:
-# ok;
-# newmaint,newcomaint (newly-appointed);
-# newpkg (newly-dubbed);
-# nomaint (no maintainer);
-# container (doesn't get released);
-# subpkg (released as part of another package);
-# stable (no current release, but none needed);
-# stale (needs release);
-# moribund (needs release, but not likely to ever get one).
-# alpha (alpha-only releases so far)
-#
-# - most activity statuses must have an associated date of last
-# activity
-#
-# - as a consistency check, the last activity should always be at
-# least the last release date
-#
-# The home page is not a field because that *always* is (should be)
-# /software/PACKAGE, even if that does nothing but redirect. Any other
-# method leads to redundant (hence inevitably inconsistent) information.
-#
-# Finally, this file as a whole is more or less sorted by package
-# identifier, for human convenience. However, software reading this
-# file should accept any order of packages or fields.
-
-%rec: Package
-%doc: Basic package metadata
-%key: package
-%sort: package
-%mandatory: activity_status
-%allowed: package alias blob_id search_alias mundane_name
-+ copyright_holder savannah fsd
-+ language logo doc_category doc_summary doc_url doc_shop download_url
-+ other_download_url gplv3_status activity_status last_activity
-+ last_release last_release_date last_contact next_contact note
-+ container tech_address doc_source_format blurb_id
-# Package names should be all in lower-case
-%type: package regexp /[a-z0-9-]+/
-## Get the blurb separately via a join on the Blurb record type (in
-## pkgblurbs.rec)
-## %type: blurb_id rec Blurb
-## Allowed activity statuses:
-%type: activity_status enum
-+ ok newmaint newcomaint newpkg nomaint container subpkg stable
-+ stale moribund alpha decommissioned nonpkg
-%type: last_activity,last_release_date date
-##
-## CONSTRAINTS
-## Except in a few cases, there should always be a last_activity
-%constraint: activity_status != 'container' &&
-+ activity_status != 'subpkg' &&
-+ activity_status != 'stable' &&
-+ activity_status != 'decommissioned' &&
-+ activity_status != 'nonpkg' &&
-+ note != 'no-release' &&
-+ note != 'released-through-vc' &&
-+ note != 'many packages' => #last_activity
-## If there has been a release, then the last activity should at least
-## be the date of the last release
-%constraint: last_release_date => last_release_date << last_activity ||
-+ last_release_date == last_activity
-%constraint: activity_status = 'ok' => last_release_date >> '3 years ago'
-%constraint: activity_status = 'stale' => last_release_date << '3 years ago' ||
-+ note = 'no-release'
-
Index: spotlight/spotlight.m4
===================================================================
RCS file: spotlight/spotlight.m4
diff -N spotlight/spotlight.m4
--- spotlight/spotlight.m4 17 Oct 2016 20:55:55 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-NN new GNU releases in the last month (as of DATE):
-
-RELEASES
-
-For announcements of most new GNU releases, subscribe to the info-gnu
-mailing list: <https://lists.gnu.org/mailman/listinfo/info-gnu>.
-
-To download: nearly all GNU software is available from
-<https://ftp.gnu.org/gnu/>, or preferably one of its mirrors from
-<https://www.gnu.org/prep/ftp.html>. You can use the url
-<https://ftpmirror.gnu.org/> to be automatically redirected to a
-(hopefully) nearby and up-to-date mirror.
-
-This month, we welcome NEWMAINT.
-
-A number of GNU packages, as well as the GNU operating system as a
-whole, are looking for maintainers and other assistance: please see
-<https://www.gnu.org/server/takeaction.html#unmaint> if you'd like to
-help. The general page on how to help GNU is at
-<https://www.gnu.org/help/help.html>.
-
-If you have a working or partly working program that you'd like
-to offer to the GNU project as a GNU package, see
-<https://www.gnu.org/help/evaluation.html>.
-
-As always, please feel free to write to us at <address@hidden>
-with any GNUish questions or suggestions for future installments.
Index: spotlight/gnubytime.pl
===================================================================
RCS file: spotlight/gnubytime.pl
diff -N spotlight/gnubytime.pl
--- spotlight/gnubytime.pl 22 Mar 2015 22:06:17 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-#!/usr/bin/env perl
-# ftp releases by time,via rsync listing.
-# -rw-r--r-- 918 2002/01/14 14:28:56 .message
-
-$ARGV[0] = "/u/karl/sys/ftp/fp.gnu" unless @ARGV;
-
-while (<>) {
- next if / -> /;
- next if /\.(diff|xdelta)\./;
- next if /snapshot\.pkg/;
- next if /\.darwin/;
- next if /-latest/;
- next if /\.sig/;
- next unless /\.[tj]ar\./;
- my (undef,undef,$date,undef,$pkg) = split (" "); # rsync
- # my ($date,undef,$pkg) = split (" "); # ftp
- $date =~ tr,-/,,d;
- $pkg{$pkg} = $date;
-}
-
-for my $p (sort { $pkg{$b} <=> $pkg{$a} } keys %pkg) {
- ($pfile = $p) =~ s/\.tar\..*$//;
- print "$pkg{$p}\t$pfile\n";
-}
Index: msg.0802/Makefile
===================================================================
RCS file: msg.0802/Makefile
diff -N msg.0802/Makefile
--- msg.0802/Makefile 19 Feb 2008 14:50:53 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,4 +0,0 @@
-try:
- $(MAKE) -s -C .. test-unanswered >tomail.txt
- send.0802
- grep To: msgs/*
Index: msg.0802/.cvsignore
===================================================================
RCS file: msg.0802/.cvsignore
diff -N msg.0802/.cvsignore
--- msg.0802/.cvsignore 19 Feb 2008 14:50:52 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-msgs
-tomail.txt
Index: msg.0802/send.0802
===================================================================
RCS file: msg.0802/send.0802
diff -N msg.0802/send.0802
--- msg.0802/send.0802 19 Feb 2008 14:50:53 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,56 +0,0 @@
-#!/usr/bin/env perl
-# February 2008.
-# - Send to maintainers we have not had established contact with.
-
-exit (&main ());
-
-sub main
-{
- my $mail_template = "msg0802.txt";
- chomp (my @tomail = `cat tomail.txt`); # generated by Makefile
- system ("rm -rf msgs; mkdir msgs"); # clean anything old
-
- my %seen;
- for my $line (@tomail) {
- my ($pkg,$addr) = split (/ - /, $line, 2);
-
- # we arranged things so we don't send this to anyone who maintains
- # multiple packages.
- warn "already saw $addr ($seen{$addr})" if $seen{$addr};
- $seen{$addr} = $pkg;
-
- my $sed = "n"; # don't need this this time
- $msg = &make_msg ($mail_template, $sed, $pkg, ($addr));
-
- # save it.
- local *OFILE;
- ($OFILE = ">msgs/$pkg") =~ tr/ //d; # remove spaces to keep things easy
- open (OFILE) || die "open($OFILE) failed: $!";
- print OFILE $msg;
- close (OFILE) || warn "close($OFILE) failed: $!";
- }
-
- return 0;
-}
-
-
-
-# Play with the message text in MAIL_TEMPLATE, handling the %if noaddr
-# conditional according to SED, and the %fmt: directive, and
-# substituting "%PACKAGE_NAME" and "%MAINTAINER_EMAIL".
-#
-sub make_msg
-{
- my ($mail_template,$sed,$pkgname,@maintainer_emails) = @_;
-
- my @msg = `sed -e $sed $mail_template | fmt --prefix=%fmt:`;
- my $msg = join ("", @msg);
-
- $msg =~ s/^%fmt://gm; # strip our reformatting prefix.
- $msg =~ s/%PACKAGE_NAME/$pkgname/gm;
-
- my $recip = join (", ", @maintainer_emails);
- $msg =~ s/%MAINTAINER_EMAIL/$recip/gm;
-
- return $msg;
-}
Index: msg.0802/msg0802.txt
===================================================================
RCS file: msg.0802/msg0802.txt
diff -N msg.0802/msg0802.txt
--- msg.0802/msg0802.txt 19 Feb 2008 15:07:37 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-From: address@hidden (GNU Project)
-To: %MAINTAINER_EMAIL
-Subject: maintaining GNU %PACKAGE_NAME?
-Reply-to: address@hidden
-
-Greetings,
-
-To the best of our knowledge, you are the maintainer of the
-GNU %PACKAGE_NAME package. Unfortunately, it seems we have lost
-contact with you. We don't know whether you are still working
-on the program or even whether you are still programming at all.
-
-Could you please reply to this message and let us know if you are still
-working on the package? If we cannot regain contact with you (we will
-also try to find a phone number for you), we will need to find another
-maintainer for the package.
-
-Thank you,
-rms / karl
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [commit-womb] gnumaint mkspotlight gm-util.pl gm massmail-130...,
Ineiev <=