the daily ams

Next: , Up: (dir)  

Welcome to my info-page! I’ll try to keep a journal, a bunch of random notes, articles I found interesting, and other things here.

Feel free to send comments and suggestions to ams@gnu.org.


Next: , Previous: , Up: Top  

Journal

GNU inetutils 1.9.2

Written on 2014-01-13.

The GNU inetutils team is proud to present version 1.9.2 of the GNU networking utilities. The GNU Networking Utilities are the common networking utilities, clients and servers of the GNU Operating System.

I would like to once again thank Mats Erik Andersson for his tremendously wonderful work; it is due to him that this release sees the light of day. Happy winter solstice!

The following is new in this release:

An advisory file CHECKLIST containing testing and verification advice has been added, pointing administrators to important properties and settings for built executables.

Please send bug reports to bug-inetutils@gnu.org.

Here are the compressed sources: ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.9.2.tar.gz

GNU inetutils 1.9.1

Written on 2012-01-06.

The GNU inetutils team is proud to present version 1.9.1 of the GNU network utilities suite. The GNU network utilities suite provides the following tools: ftp(d), hostname, ifconfig, inetd, logger, ping, rcp, rexec(d), rlogin(d), rsh(d), syslogd, talk(d), telnet(d), tftp(d), traceroute, uucpd, and whois.

The following things are new in this release (please see the NEWS file for all the details):

Please send bug reports to bug-inetutils@gnu.org.

Here are the compressed sources: ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.9.1.tar.gz

GNU inetutils 1.9

Written on 2011-12-31.

The GNU inetutils team is proud to present version 1.9 of the GNU network utilities suite. The GNU network utilities suite provides the following tools: ftp(d), hostname, ifconfig, inetd, logger, ping, rcp, rexec(d), rlogin(d), rsh(d), syslogd, talk(d), telnet(d), tftp(d), traceroute, uucpd, and whois.

Special thanks go to Mats Erik Anderson for doing such an excellent job!

The following things are new in this release (please see the NEWS file for all the details):

Please send bug reports to bug-inetutils@gnu.org.

Here are the compressed sources: ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.9.tar.gz

The end of FSCONS 2011

Written on 2011-11-15.

After a very intensive weekend, FSCONS is sadly over for this year. Lots of interesting discussions and presentations ranging from human rights, to government issues, to free software... And so many amazing people! Many thanks to the crew who organized the event, and to all who participated.

Now it is time to get back to hacking, and make a new release of the GNU Networking Utilities.

GNU miscfiles 1.5

Written on 2010-11-16.

I am happy to announce the release of GNU miscfiles 1.5! GNU miscfiles includes files not of crucial importance for system administration or operation, but which have come to be common on various systems over the years.

New in this release is:

Here are the compressed sources: ftp://ftp.gnu.org/gnu/miscfiles/miscfiles-1.5.tar.gz

Please send all bug reports by electronic mail to bug-miscfiles@gnu.org.

Hacking on GNU inetutils

Written on 2010-10-19.

Ben Asselstine asked me to record a video for his project, 1000 minutes, whilst I was hacking or doing something, and so I did. Follow the links at the site, and you should find it.

1000 minutes is a project to document the free software subculture by having free software developers take desktop video while they work. The idea is to commemorate what it is like to develop free software right now. Future free software developers can look back on this resource to know what the programming experience was like back in 2010.

GNU inetutils 1.8

Written on 2010-05-15.

The GNU inetutils team is proud to present version 1.8 of the GNU network utilities suite. The GNU network utilities suite provides the following tools: ftp(d), hostname, ifconfig, inetd, logger, ping, rcp, rexec(d), rlogin(d), rsh(d), syslogd, talk(d), telnet(d), tftp(d), traceroute, uucpd, and whois.

The following things are new in this release (please see the NEWS file for all the details):

The ftp utility now accepts --active and --passive options.

ifconfig accepts the commands up, down, multicast, and allmulti to be compatible with older ifconfig implementations.

A few more goodies, and of course, bug fixes...

Please send bug reports to bug-inetutils@gnu.org.

Here are the compressed sources: ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.8.tar.gz

GNU inetutils 1.7

Written on 2009-12-16.

The GNU inetutils team is proud to present version 1.7 of the GNU network utilities suite. The GNU network utilities suite provides the following tools: ftp(d), hostname, ifconfig, inetd, logger, ping, rcp, rexec(d), rlogin(d), rsh(d), syslogd, talk(d), telnet(d), tftp(d), traceroute, uucpd, and whois.

Many thanks to all the people who contributed to this release. As always, we are looking for contributors and tester. Happy hacking!

The following things are new in this release:

Please send bug reports to bug-inetutils@gnu.org.

Here are the compressed sources: ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.7.tar.gz

Running only GNU/Linux on a Mac

Written on 2009-11-03.

I was surprised how easy it is to remove all non-free software on a Mac. All you need to do to install GNU/Linux, and without having to fight EFI and other evils is simply to label the partition table as msdos. Mac uses GPT by default, which requires special support in the boot loader; in my case GRUB. Which is easily done using parted.

Boot GNU/Linux from some suitable installation medium (I used a CD-ROM), start a terminal and issue the following:

# parted /dev/sda
(parted) mklabel msdos
(parted) quit

And then just continue installing your favorite GNU/Linux system as you normally would.

GNU secrets – argp

Written on 2009-05-11.

The GNU system has many nice features that people do not know about, so I thought I’d start of by once in while show a not so well known part of the GNU system. Today, that is argp.

Parsing options to command line programs is a tedious business, it is often error prone, and you always forget something. Most people use the getopt or getopt_long (a GNU extension) functions, some do it manually. While getopt and getop_long make the life easier for programmers, they are still tedious since one must maintain the --help and --version options manually, or managing optional and non-optional arguments to options.

The GNU C library has excellent documentation on argp, and many examples. See Parsing Program Options with Argp, for details.

Here is are some examples of a program that makes use of argp:

$ ./ex-argp --help
Usage: ex-argp [OPTION...] ARG1 ARG2
ex-argp -- a simple example of argument parsing with argp

  -o, --output=FILE          Output to FILE instead of standard output
  -q, --quiet                Don't produce any output
  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or
optional for any corresponding short options.

Report bugs to <ams@gnu.org>.
$ ./ex-argp --version
ex-argp 0.0
$ ./ex-argp --output=foo
ex-argp: invalid number of arguments
Try `ex-argp --help' or `ex-argp --usage' for more information.
$ ./ex-argp --output=foo 123 123
ARG1=123
ARG2=123
--quiet=no
--output=foo

What follows is the source code for the above example, the equivalent using getopt or getopt_long, would be much more tedious, longer and harder to maintain.

#include <stdio.h>
#include <stdlib.h>
#include <argp.h>

const char *argp_program_version = "ex-argp 0.0";
const char *argp_program_bug_address = "<ams@gnu.org>";

static char doc[] =
  "ex-argp -- a simple example of argument parsing with argp";
static char args_doc[] = "ARG1 ARG2";

#define OPT_OUTPUT 256

static struct argp_option options[] = {
  {"quiet", 'q', 0, 0, "Don't produce any output"},
  {"output", OPT_OUTPUT, "FILE", 0,
   "Output to FILE instead of standard output"},
  {0}
};

struct arguments
{
  char *args[2];                /* ARG1 & ARG2 */
  int quiet;                    /* --quiet */
  char *output;                 /* --output=FILE */
};

static error_t
parse_opt (int key, char *arg, struct argp_state *state)
{
  /* Get the INPUT argument from `argp_parse', which we know is a
     pointer to our arguments structure. */
  struct arguments *arguments = state->input;

  switch (key)
    {
    case 'q':
      arguments->quiet = 1;
      break;
    case OPT_OUTPUT:
      arguments->output = arg;
      break;
    case ARGP_KEY_ARG:
      if (state->arg_num >= 2)  /* Too many arguments.  */
        argp_error (state, "invalid number of arguments");
      arguments->args[state->arg_num] = arg;
      break;
    case ARGP_KEY_END:
      if (state->arg_num < 2)   /* Not enough arguments.  */
        argp_error (state, "invalid number of arguments");
      break;
    default:
      return ARGP_ERR_UNKNOWN;
    }
  return 0;
}

static struct argp argp = { options, parse_opt, args_doc, doc };

int
main (int argc, char **argv)
{
  struct arguments arguments;

  arguments.quiet = 0;
  arguments.output = "-";

  argp_parse (&argp, argc, argv, 0, 0, &arguments);

  printf ("ARG1=%s\nARG2=%s\n"
          "--quiet=%s\n"
          "--output=%s\n",
          arguments.args[0], arguments.args[1],
          arguments.quiet ? "yes" : "no", arguments.output);

  exit (0);
}

GNU lsh fiddling

Written on 2009-04-06.

Been trying to get several programs (cvs, git, rsync, ...) to work nicely with GNU lsh. And so far, have been quite successful with it, I have the following in my ~/.profile:

# Tweaks to programs so that they will use lsh instead of ssh.
export BZR_SSH=lsh
export CVS_RSH=lsh
export GIT_SSH=lsh
export RSYNC_RSH=lsh

Pretty pages...

Written on 2009-03-07.

These pages now use a CSS style-sheet so that things look a lot nicer. The style-sheet was written by Noah Slater.

First useful entry

Written on 2009-02-27.

Thanks to Roland McGrath we now have tarballs published for the GNU C library (version 2.8 and 2.9). And I’ll be making later version available at ftp://ftp.gnu.org/gnu/glibc/ when 2.10 is tagged.

Yet another journal...

Written on 2008-11-13.

José E. Marchesi, and Giuseppe Scrivano convinced me (or maybe forced!) to keep a journal. So here it is, and I hope to keep posting things on occasion.


Next: , Previous: , Up: Top  

Photography

Royal Enfield 535

Pictures of my Royal Enfield 535, made by Pontus Adefjord.

photos/535/IMGP8025_thumb

photos/535/IMGP8016_thumb

photos/535/IMGP8012_thumb

photos/535/IMGP8033_thumb

photos/535/IMGP8018_thumb

photos/535/IMGP8022_thumb

photos/535/IMGP8014_thumb

photos/535/IMGP8017_thumb

photos/535/IMGP8036_thumb


Previous: , Up: Top  

Bookmarks

http://stallman.org/

Richard M. Stallman’s home page.

http://wingolog.org/

Andy Wingo’s home page.

http://havebackpack.com/

Daniel Luna’s escapades across the world.