commit-womb
[Top][All Lists]
Advanced

[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 &amp; for XHTML.
-      for my $manual (keys %doc_urls) {
-        (my $doc_url_xhtml = $doc_urls{$manual}) =~ s,\&,\&amp;,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&nbsp;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/ /\&nbsp;/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>&nbsp;!);
-  }
-
-  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/\&/\&amp;/g;
-      $blurb =~ s/</\&lt;/g;
-      $blurb =~ s/>/\&gt;/g;
-
-      # "..." typically is best rendered in typewriter.
-      $blurb =~ s,"(.*?)",<tt>$1</tt>,g;
-      $blurb =~ s/"/\&quot;/g;  # quote any stray "
-
-      $blurb =~ s/'/\&#39;/g;  # be sure we can quote text for shell
-      chomp ($blurb = `echo '$blurb' | fmt`);
-      $blurb =~ s/\&#39;/'/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&amp;do=get&amp;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&amp;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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]