diff --git a/database/rrdtool/rrdtool-1.2.19-parsetime.patch b/database/rrdtool/rrdtool-1.2.19-parsetime.patch
deleted file mode 100644
index 842bf23b3..000000000
--- a/database/rrdtool/rrdtool-1.2.19-parsetime.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-# --- SDE-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-#
-# Filename: package/.../rrdtool/rrdtool-1.2.19-parsetime.patch
-# Copyright (C) 2007 The OpenSDE Project
-#
-# More information can be found in the files COPYING and README.
-#
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
-# of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-# --- SDE-COPYRIGHT-NOTE-END ---
-
-parsing absolute time should not send us 30,000 years into the future
-(Tatsuki Makino tatsuki_makino hotmail.com)
-
---- ./src/parsetime.c (Revision 1001)
-+++ ./src/parsetime.c (Revision 1002)
-@@ -850,7 +850,7 @@
- if ( ptv->tm.tm_hour == 30 ){
- ptv->tm.tm_hour = hour_sv;
- }
-- if ( ptv->tm.tm_hour == 30000 ){
-+ if ( ptv->tm.tm_year == 30000 ){
- ptv->tm.tm_year = year_sv;
- }
- };
diff --git a/database/rrdtool/rrdtool-1.2.19-rrd_dump.patch b/database/rrdtool/rrdtool-1.2.19-rrd_dump.patch
deleted file mode 100644
index 441d53c7f..000000000
--- a/database/rrdtool/rrdtool-1.2.19-rrd_dump.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-# --- SDE-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-#
-# Filename: package/.../rrdtool/rrdtool-1.2.19-rrd_dump.patch
-# Copyright (C) 2007 The OpenSDE Project
-#
-# More information can be found in the files COPYING and README.
-#
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
-# of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-# --- SDE-COPYRIGHT-NOTE-END ---
-
-fix memmory problem in rrd_dump.c
-
---- ./src/rrd_dump.c (Revision 1009)
-+++ ./src/rrd_dump.c (Revision 1010)
-@@ -115,39 +115,39 @@
- fprintf(out_file, "\t %ld \n\n",
- rrd.live_head->last_up,somestring);
- for(i=0;ids_cnt;i++){
-- fprintf(out_file, "\t\n");
-- fprintf(out_file, "\t\t %s \n",rrd.ds_def[i].ds_nam);
-- fprintf(out_file, "\t\t %s \n",rrd.ds_def[i].dst);
-- if (dst_conv(rrd.ds_def[i].dst) != DST_CDEF) {
-- fprintf(out_file, "\t\t %lu \n",rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt);
-- if (isnan(rrd.ds_def[i].par[DS_min_val].u_val)){
-- fprintf(out_file, "\t\t NaN \n");
-- } else {
-- fprintf(out_file, "\t\t %0.10e \n",rrd.ds_def[i].par[DS_min_val].u_val);
-- }
-- if (isnan(rrd.ds_def[i].par[DS_max_val].u_val)){
-- fprintf(out_file, "\t\t NaN \n");
-- } else {
-- fprintf(out_file, "\t\t %0.10e \n",rrd.ds_def[i].par[DS_max_val].u_val);
-- }
-- } else { /* DST_CDEF */
-- char *str;
-- rpn_compact2str((rpn_cdefds_t *) &(rrd.ds_def[i].par[DS_cdef]),rrd.ds_def,&str);
-- fprintf(out_file, "\t\t %s \n", str);
-- free(str);
-- }
-- fprintf(out_file, "\n\t\t\n");
-- fprintf(out_file, "\t\t %s \n",rrd.pdp_prep[i].last_ds);
-- if (isnan(rrd.pdp_prep[i].scratch[PDP_val].u_val)){
-- fprintf(out_file, "\t\t NaN \n");
-- } else {
-- fprintf(out_file, "\t\t %0.10e \n",rrd.pdp_prep[i].scratch[PDP_val].u_val);
-- }
-- fprintf(out_file, "\t\t %lu \n",
-- rrd.pdp_prep[i].scratch[PDP_unkn_sec_cnt].u_cnt);
-+ fprintf(out_file, "\t\n");
-+ fprintf(out_file, "\t\t %s \n",rrd.ds_def[i].ds_nam);
-+ fprintf(out_file, "\t\t %s \n",rrd.ds_def[i].dst);
-+ if (dst_conv(rrd.ds_def[i].dst) != DST_CDEF) {
-+ fprintf(out_file, "\t\t %lu \n",rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt);
-+ if (isnan(rrd.ds_def[i].par[DS_min_val].u_val)){
-+ fprintf(out_file, "\t\t NaN \n");
-+ } else {
-+ fprintf(out_file, "\t\t %0.10e \n",rrd.ds_def[i].par[DS_min_val].u_val);
-+ }
-+ if (isnan(rrd.ds_def[i].par[DS_max_val].u_val)){
-+ fprintf(out_file, "\t\t NaN \n");
-+ } else {
-+ fprintf(out_file, "\t\t %0.10e \n",rrd.ds_def[i].par[DS_max_val].u_val);
-+ }
-+ } else { /* DST_CDEF */
-+ char *str=NULL;
-+ rpn_compact2str((rpn_cdefds_t *) &(rrd.ds_def[i].par[DS_cdef]),rrd.ds_def,&str);
-+ fprintf(out_file, "\t\t %s \n", str);
-+ free(str);
-+ }
-+ fprintf(out_file, "\n\t\t\n");
-+ fprintf(out_file, "\t\t %s \n",rrd.pdp_prep[i].last_ds);
-+ if (isnan(rrd.pdp_prep[i].scratch[PDP_val].u_val)){
-+ fprintf(out_file, "\t\t NaN \n");
-+ } else {
-+ fprintf(out_file, "\t\t %0.10e \n",rrd.pdp_prep[i].scratch[PDP_val].u_val);
-+ }
-+ fprintf(out_file, "\t\t %lu \n",
-+ rrd.pdp_prep[i].scratch[PDP_unkn_sec_cnt].u_cnt);
-
-- fprintf(out_file, "\t\n\n");
-- }
-+ fprintf(out_file, "\t\n\n");
-+ }
-
- fputs("", out_file);
-
---- ./src/rrd_tune.c (Revision 1009)
-+++ ./src/rrd_tune.c (Revision 1010)
-@@ -290,7 +290,7 @@
- rrd.ds_def[i].par[DS_min_val].u_val,
- rrd.ds_def[i].par[DS_max_val].u_val);
- } else {
-- char *buffer;
-+ char *buffer = NULL;
- rpn_compact2str((rpn_cdefds_t *) &(rrd.ds_def[i].par[DS_cdef]),rrd.ds_def,&buffer);
- printf("DS[%s] typ: %s\tcdef: %s\n", rrd.ds_def[i].ds_nam,rrd.ds_def[i].dst,buffer);
- free(buffer);
---- ./src/rrd_info.c (Revision 1009)
-+++ ./src/rrd_info.c (Revision 1010)
-@@ -117,7 +117,7 @@
- switch (current_ds) {
- case DST_CDEF:
- {
-- char *buffer = 0;
-+ char *buffer = NULL;
- rpn_compact2str((rpn_cdefds_t *) &(rrd.ds_def[i].par[DS_cdef]),
- rrd.ds_def, &buffer);
- info.u_str = buffer;
diff --git a/database/rrdtool/rrdtool-1.2.19-rrd_getopt.patch b/database/rrdtool/rrdtool-1.2.19-rrd_getopt.patch
deleted file mode 100644
index 57232c8e3..000000000
--- a/database/rrdtool/rrdtool-1.2.19-rrd_getopt.patch
+++ /dev/null
@@ -1,2741 +0,0 @@
-# --- SDE-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-#
-# Filename: package/.../rrdtool/rrdtool-1.2.19-rrd_getopt.patch
-# Copyright (C) 2007 The OpenSDE Project
-#
-# More information can be found in the files COPYING and README.
-#
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
-# of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-# --- SDE-COPYRIGHT-NOTE-END ---
-
-renamed getopt to rrd_getopt to avoid confusion on some systems
-
---- ./src/getopt1.c (Revision 1006)
-+++ ./src/getopt1.c (Revision 1007)
-@@ -1,189 +0,0 @@
--/* getopt_long and getopt_long_only entry points for GNU getopt.
-- Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
--
-- This file is part of the GNU C Library. Its master source is NOT part of
-- the C library, however. The master source lives in /gd/gnu/lib.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public License as
-- published by the Free Software Foundation; either version 2 of the
-- License, or (at your option) any later version.
--
-- The GNU C Library 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
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
--
--#ifdef HAVE_CONFIG_H
--#include "../rrd_config.h"
--#endif
--
--#include "getopt.h"
--
--#if !defined (__STDC__) || !__STDC__
--/* This is a separate conditional since some stdc systems
-- reject `defined (const)'. */
--#ifndef const
--#define const
--#endif
--#endif
--
--#include
--
--/* Comment out all this code if we are using the GNU C Library, and are not
-- actually compiling the library itself. This code is part of the GNU C
-- Library, but also included in many other GNU distributions. Compiling
-- and linking in this code is a waste when using the GNU C library
-- (especially if it is a shared library). Rather than having every GNU
-- program understand `configure --with-gnu-libc' and omit the object files,
-- it is simpler to just do this in the source for each such file. */
--
--#define GETOPT_INTERFACE_VERSION 2
--#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
--#include
--#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
--#define ELIDE_CODE
--#endif
--#endif
--
--#ifndef ELIDE_CODE
--
--
--/* This needs to come after some library #include
-- to get __GNU_LIBRARY__ defined. */
--#ifdef __GNU_LIBRARY__
--#include
--#endif
--
--#ifndef NULL
--#define NULL 0
--#endif
--
--int
--getopt_long (argc, argv, options, long_options, opt_index)
-- int argc;
-- char *const *argv;
-- const char *options;
-- const struct option *long_options;
-- int *opt_index;
--{
-- return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
--}
--
--/* Like getopt_long, but '-' as well as '--' can indicate a long option.
-- If an option that starts with '-' (not '--') doesn't match a long option,
-- but does match a short option, it is parsed as a short option
-- instead. */
--
--int
--getopt_long_only (argc, argv, options, long_options, opt_index)
-- int argc;
-- char *const *argv;
-- const char *options;
-- const struct option *long_options;
-- int *opt_index;
--{
-- return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
--}
--
--
--#endif /* Not ELIDE_CODE. */
--
--#ifdef TEST
--
--#include
--
--int
--main (argc, argv)
-- int argc;
-- char **argv;
--{
-- int c;
-- int digit_optind = 0;
--
-- while (1)
-- {
-- int this_option_optind = optind ? optind : 1;
-- int option_index = 0;
-- static struct option long_options[] =
-- {
-- {"add", 1, 0, 0},
-- {"append", 0, 0, 0},
-- {"delete", 1, 0, 0},
-- {"verbose", 0, 0, 0},
-- {"create", 0, 0, 0},
-- {"file", 1, 0, 0},
-- {0, 0, 0, 0}
-- };
--
-- c = getopt_long (argc, argv, "abc:d:0123456789",
-- long_options, &option_index);
-- if (c == -1)
-- break;
--
-- switch (c)
-- {
-- case 0:
-- printf ("option %s", long_options[option_index].name);
-- if (optarg)
-- printf (" with arg %s", optarg);
-- printf ("\n");
-- break;
--
-- case '0':
-- case '1':
-- case '2':
-- case '3':
-- case '4':
-- case '5':
-- case '6':
-- case '7':
-- case '8':
-- case '9':
-- if (digit_optind != 0 && digit_optind != this_option_optind)
-- printf ("digits occur in two different argv-elements.\n");
-- digit_optind = this_option_optind;
-- printf ("option %c\n", c);
-- break;
--
-- case 'a':
-- printf ("option a\n");
-- break;
--
-- case 'b':
-- printf ("option b\n");
-- break;
--
-- case 'c':
-- printf ("option c with value `%s'\n", optarg);
-- break;
--
-- case 'd':
-- printf ("option d with value `%s'\n", optarg);
-- break;
--
-- case '?':
-- break;
--
-- default:
-- printf ("?? getopt returned character code 0%o ??\n", c);
-- }
-- }
--
-- if (optind < argc)
-- {
-- printf ("non-option ARGV-elements: ");
-- while (optind < argc)
-- printf ("%s ", argv[optind++]);
-- printf ("\n");
-- }
--
-- exit (0);
--}
--
--#endif /* TEST */
---- ./src/getopt.c (Revision 1006)
-+++ ./src/getopt.c (Revision 1007)
-@@ -1,1002 +0,0 @@
--/* Getopt for GNU.
-- NOTE: getopt is now part of the C library, so if you don't know what
-- "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
-- before changing it!
--
-- Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
-- Free Software Foundation, Inc.
--
-- This file is part of the GNU C Library. Its master source is NOT part of
-- the C library, however. The master source lives in /gd/gnu/lib.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public License as
-- published by the Free Software Foundation; either version 2 of the
-- License, or (at your option) any later version.
--
-- The GNU C Library 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
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
--
--/* This tells Alpha OSF/1 not to define a getopt prototype in .
-- Ditto for AIX 3.2 and . */
--#ifndef _NO_PROTO
--#define _NO_PROTO
--#endif
--
--#ifdef HAVE_CONFIG_H
--#include "../rrd_config.h"
--#endif
--
--#if !defined (__STDC__) || !__STDC__
--/* This is a separate conditional since some stdc systems
-- reject `defined (const)'. */
--#ifndef const
--#define const
--#endif
--#endif
--
--#include
--
--/* Comment out all this code if we are using the GNU C Library, and are not
-- actually compiling the library itself. This code is part of the GNU C
-- Library, but also included in many other GNU distributions. Compiling
-- and linking in this code is a waste when using the GNU C library
-- (especially if it is a shared library). Rather than having every GNU
-- program understand `configure --with-gnu-libc' and omit the object files,
-- it is simpler to just do this in the source for each such file. */
--
--#define GETOPT_INTERFACE_VERSION 2
--#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
--#include
--#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
--#define ELIDE_CODE
--#endif
--#endif
--
--#ifndef ELIDE_CODE
--
--
--/* This needs to come after some library #include
-- to get __GNU_LIBRARY__ defined. */
--#ifdef __GNU_LIBRARY__
--/* Don't include stdlib.h for non-GNU C libraries because some of them
-- contain conflicting prototypes for getopt. */
--#include
--#include
--#endif /* GNU C library. */
--
--#ifdef VMS
--#include
--#if HAVE_STRING_H - 0
--#include
--#endif
--#endif
--
--#if defined (_WIN32) && !defined (__CYGWIN32__)
--/* It's not Unix, really. See? Capital letters. */
--#include
--#define getpid() GetCurrentProcessId()
--#endif
--
--#ifndef _
--/* This is for other GNU distributions with internationalized messages.
-- When compiling libc, the _ macro is predefined. */
--#ifdef HAVE_LIBINTL_H
--# include
--# define _(msgid) gettext (msgid)
--#else
--# define _(msgid) (msgid)
--#endif
--#endif
--
--/* This version of `getopt' appears to the caller like standard Unix `getopt'
-- but it behaves differently for the user, since it allows the user
-- to intersperse the options with the other arguments.
--
-- As `getopt' works, it permutes the elements of ARGV so that,
-- when it is done, all the options precede everything else. Thus
-- all application programs are extended to handle flexible argument order.
--
-- Setting the environment variable POSIXLY_CORRECT disables permutation.
-- Then the behavior is completely standard.
--
-- GNU application programs can use a third alternative mode in which
-- they can distinguish the relative order of options and other arguments. */
--
--#include "getopt.h"
--
--/* For communication from `getopt' to the caller.
-- When `getopt' finds an option that takes an argument,
-- the argument value is returned here.
-- Also, when `ordering' is RETURN_IN_ORDER,
-- each non-option ARGV-element is returned here. */
--
--char *optarg = NULL;
--
--/* Index in ARGV of the next element to be scanned.
-- This is used for communication to and from the caller
-- and for communication between successive calls to `getopt'.
--
-- On entry to `getopt', zero means this is the first call; initialize.
--
-- When `getopt' returns -1, this is the index of the first of the
-- non-option elements that the caller should itself scan.
--
-- Otherwise, `optind' communicates from one call to the next
-- how much of ARGV has been scanned so far. */
--
--/* 1003.2 says this must be 1 before any call. */
--int optind = 1;
--
--/* Formerly, initialization of getopt depended on optind==0, which
-- causes problems with re-calling getopt as programs generally don't
-- know that. */
--
--int __getopt_initialized = 0;
--
--/* The next char to be scanned in the option-element
-- in which the last option character we returned was found.
-- This allows us to pick up the scan where we left off.
--
-- If this is zero, or a null string, it means resume the scan
-- by advancing to the next ARGV-element. */
--
--static char *nextchar;
--
--/* Callers store zero here to inhibit the error message
-- for unrecognized options. */
--
--int opterr = 1;
--
--/* Set to an option character which was unrecognized.
-- This must be initialized on some systems to avoid linking in the
-- system's own getopt implementation. */
--
--int optopt = '?';
--
--/* Describe how to deal with options that follow non-option ARGV-elements.
--
-- If the caller did not specify anything,
-- the default is REQUIRE_ORDER if the environment variable
-- POSIXLY_CORRECT is defined, PERMUTE otherwise.
--
-- REQUIRE_ORDER means don't recognize them as options;
-- stop option processing when the first non-option is seen.
-- This is what Unix does.
-- This mode of operation is selected by either setting the environment
-- variable POSIXLY_CORRECT, or using `+' as the first character
-- of the list of option characters.
--
-- PERMUTE is the default. We permute the contents of ARGV as we scan,
-- so that eventually all the non-options are at the end. This allows options
-- to be given in any order, even with programs that were not written to
-- expect this.
--
-- RETURN_IN_ORDER is an option available to programs that were written
-- to expect options and other ARGV-elements in any order and that care about
-- the ordering of the two. We describe each non-option ARGV-element
-- as if it were the argument of an option with character code 1.
-- Using `-' as the first character of the list of option characters
-- selects this mode of operation.
--
-- The special argument `--' forces an end of option-scanning regardless
-- of the value of `ordering'. In the case of RETURN_IN_ORDER, only
-- `--' can cause `getopt' to return -1 with `optind' != ARGC. */
--
--static enum
--{
-- REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
--} ordering;
--
--/* Value of POSIXLY_CORRECT environment variable. */
--static char *posixly_correct;
--
--/* we must include string as there are warnings without it ... */
--#include
--
--#ifdef __GNU_LIBRARY__
--/* We want to avoid inclusion of string.h with non-GNU libraries
-- because there are many ways it can cause trouble.
-- On some systems, it contains special magic macros that don't work
-- in GCC. */
--#define my_index strchr
--#else
--
--/* Avoid depending on library functions or files
-- whose names are inconsistent. */
--
--char *getenv ();
--
--static char *
--my_index (str, chr)
-- const char *str;
-- int chr;
--{
-- while (*str)
-- {
-- if (*str == chr)
-- return (char *) str;
-- str++;
-- }
-- return 0;
--}
--
--/* If using GCC, we can safely declare strlen this way.
-- If not using GCC, it is ok not to declare it. */
--#ifdef __GNUC__
--/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
-- That was relevant to code that was here before. */
--#if !defined (__STDC__) || !__STDC__
--/* gcc with -traditional declares the built-in strlen to return int,
-- and has done so at least since version 2.4.5. -- rms. */
--extern int strlen (const char *);
--#endif /* not __STDC__ */
--#endif /* __GNUC__ */
--
--#endif /* not __GNU_LIBRARY__ */
--
--/* Handle permutation of arguments. */
--
--/* Describe the part of ARGV that contains non-options that have
-- been skipped. `first_nonopt' is the index in ARGV of the first of them;
-- `last_nonopt' is the index after the last of them. */
--
--static int first_nonopt;
--static int last_nonopt;
--
--#ifdef _LIBC
--/* Bash 2.0 gives us an environment variable containing flags
-- indicating ARGV elements that should not be considered arguments. */
--
--static const char *nonoption_flags;
--static int nonoption_flags_len;
--
--static int original_argc;
--static char *const *original_argv;
--
--/* Make sure the environment variable bash 2.0 puts in the environment
-- is valid for the getopt call we must make sure that the ARGV passed
-- to getopt is that one passed to the process. */
--static void store_args (int argc, char *const *argv) __attribute__ ((unused));
--static void
--store_args (int argc, char *const *argv)
--{
-- /* XXX This is no good solution. We should rather copy the args so
-- that we can compare them later. But we must not use malloc(3). */
-- original_argc = argc;
-- original_argv = argv;
--}
--text_set_element (__libc_subinit, store_args);
--#endif
--
--/* Exchange two adjacent subsequences of ARGV.
-- One subsequence is elements [first_nonopt,last_nonopt)
-- which contains all the non-options that have been skipped so far.
-- The other is elements [last_nonopt,optind), which contains all
-- the options processed since those non-options were skipped.
--
-- `first_nonopt' and `last_nonopt' are relocated so that they describe
-- the new indices of the non-options in ARGV after they are moved. */
--
--#if defined (__STDC__) && __STDC__
--static void exchange (char **);
--#endif
--
--static void
--exchange (argv)
-- char **argv;
--{
-- int bottom = first_nonopt;
-- int middle = last_nonopt;
-- int top = optind;
-- char *tem;
--
-- /* Exchange the shorter segment with the far end of the longer segment.
-- That puts the shorter segment into the right place.
-- It leaves the longer segment in the right place overall,
-- but it consists of two parts that need to be swapped next. */
--
-- while (top > middle && middle > bottom)
-- {
-- if (top - middle > middle - bottom)
-- {
-- /* Bottom segment is the short one. */
-- int len = middle - bottom;
-- register int i;
--
-- /* Swap it with the top part of the top segment. */
-- for (i = 0; i < len; i++)
-- {
-- tem = argv[bottom + i];
-- argv[bottom + i] = argv[top - (middle - bottom) + i];
-- argv[top - (middle - bottom) + i] = tem;
-- }
-- /* Exclude the moved bottom segment from further swapping. */
-- top -= len;
-- }
-- else
-- {
-- /* Top segment is the short one. */
-- int len = top - middle;
-- register int i;
--
-- /* Swap it with the bottom part of the bottom segment. */
-- for (i = 0; i < len; i++)
-- {
-- tem = argv[bottom + i];
-- argv[bottom + i] = argv[middle + i];
-- argv[middle + i] = tem;
-- }
-- /* Exclude the moved top segment from further swapping. */
-- bottom += len;
-- }
-- }
--
-- /* Update records for the slots the non-options now occupy. */
--
-- first_nonopt += (optind - last_nonopt);
-- last_nonopt = optind;
--}
--
--/* Initialize the internal data when the first call is made. */
--
--#if defined (__STDC__) && __STDC__
--static const char *_getopt_initialize (int, char *const *, const char *);
--#endif
--static const char *
--_getopt_initialize (argc, argv, optstring)
-- int argc;
-- char *const *argv;
-- const char *optstring;
--{
-- /* Start processing options with ARGV-element 1 (since ARGV-element 0
-- is the program name); the sequence of previously skipped
-- non-option ARGV-elements is empty. */
--
-- first_nonopt = last_nonopt = optind = 1;
--
-- nextchar = NULL;
--
-- posixly_correct = getenv ("POSIXLY_CORRECT");
--
-- /* Determine how to handle the ordering of options and nonoptions. */
--
-- if (optstring[0] == '-')
-- {
-- ordering = RETURN_IN_ORDER;
-- ++optstring;
-- }
-- else if (optstring[0] == '+')
-- {
-- ordering = REQUIRE_ORDER;
-- ++optstring;
-- }
-- else if (posixly_correct != NULL)
-- ordering = REQUIRE_ORDER;
-- else
-- ordering = PERMUTE;
--
--#ifdef _LIBC
-- if (posixly_correct == NULL
-- && argc == original_argc && argv == original_argv)
-- {
-- /* Bash 2.0 puts a special variable in the environment for each
-- command it runs, specifying which ARGV elements are the results of
-- file name wildcard expansion and therefore should not be
-- considered as options. */
-- char var[100];
-- sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ());
-- nonoption_flags = getenv (var);
-- if (nonoption_flags == NULL)
-- nonoption_flags_len = 0;
-- else
-- nonoption_flags_len = strlen (nonoption_flags);
-- }
-- else
-- nonoption_flags_len = 0;
--#endif
--
-- return optstring;
--}
--
--/* Scan elements of ARGV (whose length is ARGC) for option characters
-- given in OPTSTRING.
--
-- If an element of ARGV starts with '-', and is not exactly "-" or "--",
-- then it is an option element. The characters of this element
-- (aside from the initial '-') are option characters. If `getopt'
-- is called repeatedly, it returns successively each of the option characters
-- from each of the option elements.
--
-- If `getopt' finds another option character, it returns that character,
-- updating `optind' and `nextchar' so that the next call to `getopt' can
-- resume the scan with the following option character or ARGV-element.
--
-- If there are no more option characters, `getopt' returns -1.
-- Then `optind' is the index in ARGV of the first ARGV-element
-- that is not an option. (The ARGV-elements have been permuted
-- so that those that are not options now come last.)
--
-- OPTSTRING is a string containing the legitimate option characters.
-- If an option character is seen that is not listed in OPTSTRING,
-- return '?' after printing an error message. If you set `opterr' to
-- zero, the error message is suppressed but we still return '?'.
--
-- If a char in OPTSTRING is followed by a colon, that means it wants an arg,
-- so the following text in the same ARGV-element, or the text of the following
-- ARGV-element, is returned in `optarg'. Two colons mean an option that
-- wants an optional arg; if there is text in the current ARGV-element,
-- it is returned in `optarg', otherwise `optarg' is set to zero.
--
-- If OPTSTRING starts with `-' or `+', it requests different methods of
-- handling the non-option ARGV-elements.
-- See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
--
-- Long-named options begin with `--' instead of `-'.
-- Their names may be abbreviated as long as the abbreviation is unique
-- or is an exact match for some defined option. If they have an
-- argument, it follows the option name in the same ARGV-element, separated
-- from the option name by a `=', or else the in next ARGV-element.
-- When `getopt' finds a long-named option, it returns 0 if that option's
-- `flag' field is nonzero, the value of the option's `val' field
-- if the `flag' field is zero.
--
-- The elements of ARGV aren't really const, because we permute them.
-- But we pretend they're const in the prototype to be compatible
-- with other systems.
--
-- LONGOPTS is a vector of `struct option' terminated by an
-- element containing a name which is zero.
--
-- LONGIND returns the index in LONGOPT of the long-named option found.
-- It is only valid when a long-named option has been found by the most
-- recent call.
--
-- If LONG_ONLY is nonzero, '-' as well as '--' can introduce
-- long-named options. */
--
--int
--_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
-- int argc;
-- char *const *argv;
-- const char *optstring;
-- const struct option *longopts;
-- int *longind;
-- int long_only;
--{
-- optarg = NULL;
--
-- if (!__getopt_initialized || optind == 0)
-- {
-- optstring = _getopt_initialize (argc, argv, optstring);
-- optind = 1; /* Don't scan ARGV[0], the program name. */
-- __getopt_initialized = 1;
-- }
--
-- /* Test whether ARGV[optind] points to a non-option argument.
-- Either it does not have option syntax, or there is an environment flag
-- from the shell indicating it is not an option. The later information
-- is only used when the used in the GNU libc. */
--#ifdef _LIBC
--#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
-- || (optind < nonoption_flags_len \
-- && nonoption_flags[optind] == '1'))
--#else
--#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
--#endif
--
-- if (nextchar == NULL || *nextchar == '\0')
-- {
-- /* Advance to the next ARGV-element. */
--
-- /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
-- moved back by the user (who may also have changed the arguments). */
-- if (last_nonopt > optind)
-- last_nonopt = optind;
-- if (first_nonopt > optind)
-- first_nonopt = optind;
--
-- if (ordering == PERMUTE)
-- {
-- /* If we have just processed some options following some non-options,
-- exchange them so that the options come first. */
--
-- if (first_nonopt != last_nonopt && last_nonopt != optind)
-- exchange ((char **) argv);
-- else if (last_nonopt != optind)
-- first_nonopt = optind;
--
-- /* Skip any additional non-options
-- and extend the range of non-options previously skipped. */
--
-- while (optind < argc && NONOPTION_P)
-- optind++;
-- last_nonopt = optind;
-- }
--
-- /* The special ARGV-element `--' means premature end of options.
-- Skip it like a null option,
-- then exchange with previous non-options as if it were an option,
-- then skip everything else like a non-option. */
--
-- if (optind != argc && !strcmp (argv[optind], "--"))
-- {
-- optind++;
--
-- if (first_nonopt != last_nonopt && last_nonopt != optind)
-- exchange ((char **) argv);
-- else if (first_nonopt == last_nonopt)
-- first_nonopt = optind;
-- last_nonopt = argc;
--
-- optind = argc;
-- }
--
-- /* If we have done all the ARGV-elements, stop the scan
-- and back over any non-options that we skipped and permuted. */
--
-- if (optind == argc)
-- {
-- /* Set the next-arg-index to point at the non-options
-- that we previously skipped, so the caller will digest them. */
-- if (first_nonopt != last_nonopt)
-- optind = first_nonopt;
-- return -1;
-- }
--
-- /* If we have come to a non-option and did not permute it,
-- either stop the scan or describe it to the caller and pass it by. */
--
-- if (NONOPTION_P)
-- {
-- if (ordering == REQUIRE_ORDER)
-- return -1;
-- optarg = argv[optind++];
-- return 1;
-- }
--
-- /* We have found another option-ARGV-element.
-- Skip the initial punctuation. */
--
-- nextchar = (argv[optind] + 1
-- + (longopts != NULL && argv[optind][1] == '-'));
-- }
--
-- /* Decode the current option-ARGV-element. */
--
-- /* Check whether the ARGV-element is a long option.
--
-- If long_only and the ARGV-element has the form "-f", where f is
-- a valid short option, don't consider it an abbreviated form of
-- a long option that starts with f. Otherwise there would be no
-- way to give the -f short option.
--
-- On the other hand, if there's a long option "fubar" and
-- the ARGV-element is "-fu", do consider that an abbreviation of
-- the long option, just like "--fu", and not "-f" with arg "u".
--
-- This distinction seems to be the most useful approach. */
--
-- if (longopts != NULL
-- && (argv[optind][1] == '-'
-- || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
-- {
-- char *nameend;
-- const struct option *p;
-- const struct option *pfound = NULL;
-- int exact = 0;
-- int ambig = 0;
-- int indfound = -1;
-- int option_index;
--
-- for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
-- /* Do nothing. */ ;
--
-- /* Test all long options for either exact match
-- or abbreviated matches. */
-- for (p = longopts, option_index = 0; p->name; p++, option_index++)
-- if (!strncmp (p->name, nextchar, nameend - nextchar))
-- {
-- if ((unsigned int) (nameend - nextchar)
-- == (unsigned int) strlen (p->name))
-- {
-- /* Exact match found. */
-- pfound = p;
-- indfound = option_index;
-- exact = 1;
-- break;
-- }
-- else if (pfound == NULL)
-- {
-- /* First nonexact match found. */
-- pfound = p;
-- indfound = option_index;
-- }
-- else
-- /* Second or later nonexact match found. */
-- ambig = 1;
-- }
--
-- if (ambig && !exact)
-- {
-- if (opterr)
-- fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
-- argv[0], argv[optind]);
-- nextchar += strlen (nextchar);
-- optind++;
-- optopt = 0;
-- return '?';
-- }
--
-- if (pfound != NULL)
-- {
-- option_index = indfound;
-- optind++;
-- if (*nameend)
-- {
-- /* Don't test has_arg with >, because some C compilers don't
-- allow it to be used on enums. */
-- if (pfound->has_arg)
-- optarg = nameend + 1;
-- else
-- {
-- if (opterr) {
-- if (argv[optind - 1][1] == '-')
-- /* --option */
-- fprintf (stderr,
-- _("%s: option `--%s' doesn't allow an argument\n"),
-- argv[0], pfound->name);
-- else
-- /* +option or -option */
-- fprintf (stderr,
-- _("%s: option `%c%s' doesn't allow an argument\n"),
-- argv[0], argv[optind - 1][0], pfound->name);
-- }
-- nextchar += strlen (nextchar);
--
-- optopt = pfound->val;
-- return '?';
-- }
-- }
-- else if (pfound->has_arg == 1)
-- {
-- if (optind < argc)
-- optarg = argv[optind++];
-- else
-- {
-- if (opterr)
-- fprintf (stderr,
-- _("%s: option `%s' requires an argument\n"),
-- argv[0], argv[optind - 1]);
-- nextchar += strlen (nextchar);
-- optopt = pfound->val;
-- return optstring[0] == ':' ? ':' : '?';
-- }
-- }
-- nextchar += strlen (nextchar);
-- if (longind != NULL)
-- *longind = option_index;
-- if (pfound->flag)
-- {
-- *(pfound->flag) = pfound->val;
-- return 0;
-- }
-- return pfound->val;
-- }
--
-- /* Can't find it as a long option. If this is not getopt_long_only,
-- or the option starts with '--' or is not a valid short
-- option, then it's an error.
-- Otherwise interpret it as a short option. */
-- if (!long_only || argv[optind][1] == '-'
-- || my_index (optstring, *nextchar) == NULL)
-- {
-- if (opterr)
-- {
-- if (argv[optind][1] == '-')
-- /* --option */
-- fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
-- argv[0], nextchar);
-- else
-- /* +option or -option */
-- fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
-- argv[0], argv[optind][0], nextchar);
-- }
-- nextchar = (char *) "";
-- optind++;
-- optopt = 0;
-- return '?';
-- }
-- }
--
-- /* Look at and handle the next short option-character. */
--
-- {
-- char c = *nextchar++;
-- char *temp = my_index (optstring, c);
--
-- /* Increment `optind' when we start to process its last character. */
-- if (*nextchar == '\0')
-- ++optind;
--
-- if (temp == NULL || c == ':')
-- {
-- if (opterr)
-- {
-- if (posixly_correct)
-- /* 1003.2 specifies the format of this message. */
-- fprintf (stderr, _("%s: illegal option -- %c\n"),
-- argv[0], c);
-- else
-- fprintf (stderr, _("%s: invalid option -- %c\n"),
-- argv[0], c);
-- }
-- optopt = c;
-- return '?';
-- }
-- /* Convenience. Treat POSIX -W foo same as long option --foo */
-- if (temp[0] == 'W' && temp[1] == ';')
-- {
-- char *nameend;
-- const struct option *p;
-- const struct option *pfound = NULL;
-- int exact = 0;
-- int ambig = 0;
-- int indfound = 0;
-- int option_index;
--
-- /* This is an option that requires an argument. */
-- if (*nextchar != '\0')
-- {
-- optarg = nextchar;
-- /* If we end this ARGV-element by taking the rest as an arg,
-- we must advance to the next element now. */
-- optind++;
-- }
-- else if (optind == argc)
-- {
-- if (opterr)
-- {
-- /* 1003.2 specifies the format of this message. */
-- fprintf (stderr, _("%s: option requires an argument -- %c\n"),
-- argv[0], c);
-- }
-- optopt = c;
-- if (optstring[0] == ':')
-- c = ':';
-- else
-- c = '?';
-- return c;
-- }
-- else
-- /* We already incremented `optind' once;
-- increment it again when taking next ARGV-elt as argument. */
-- optarg = argv[optind++];
--
-- /* optarg is now the argument, see if it's in the
-- table of longopts. */
--
-- for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
-- /* Do nothing. */ ;
--
-- /* Test all long options for either exact match
-- or abbreviated matches. */
-- for (p = longopts, option_index = 0; p->name; p++, option_index++)
-- if (!strncmp (p->name, nextchar, nameend - nextchar))
-- {
-- if ((unsigned int) (nameend - nextchar) == strlen (p->name))
-- {
-- /* Exact match found. */
-- pfound = p;
-- indfound = option_index;
-- exact = 1;
-- break;
-- }
-- else if (pfound == NULL)
-- {
-- /* First nonexact match found. */
-- pfound = p;
-- indfound = option_index;
-- }
-- else
-- /* Second or later nonexact match found. */
-- ambig = 1;
-- }
-- if (ambig && !exact)
-- {
-- if (opterr)
-- fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
-- argv[0], argv[optind]);
-- nextchar += strlen (nextchar);
-- optind++;
-- return '?';
-- }
-- if (pfound != NULL)
-- {
-- option_index = indfound;
-- if (*nameend)
-- {
-- /* Don't test has_arg with >, because some C compilers don't
-- allow it to be used on enums. */
-- if (pfound->has_arg)
-- optarg = nameend + 1;
-- else
-- {
-- if (opterr)
-- fprintf (stderr, _("\
--%s: option `-W %s' doesn't allow an argument\n"),
-- argv[0], pfound->name);
--
-- nextchar += strlen (nextchar);
-- return '?';
-- }
-- }
-- else if (pfound->has_arg == 1)
-- {
-- if (optind < argc)
-- optarg = argv[optind++];
-- else
-- {
-- if (opterr)
-- fprintf (stderr,
-- _("%s: option `%s' requires an argument\n"),
-- argv[0], argv[optind - 1]);
-- nextchar += strlen (nextchar);
-- return optstring[0] == ':' ? ':' : '?';
-- }
-- }
-- nextchar += strlen (nextchar);
-- if (longind != NULL)
-- *longind = option_index;
-- if (pfound->flag)
-- {
-- *(pfound->flag) = pfound->val;
-- return 0;
-- }
-- return pfound->val;
-- }
-- nextchar = NULL;
-- return 'W'; /* Let the application handle it. */
-- }
-- if (temp[1] == ':')
-- {
-- if (temp[2] == ':')
-- {
-- /* This is an option that accepts an argument optionally. */
-- if (*nextchar != '\0')
-- {
-- optarg = nextchar;
-- optind++;
-- }
-- else
-- optarg = NULL;
-- nextchar = NULL;
-- }
-- else
-- {
-- /* This is an option that requires an argument. */
-- if (*nextchar != '\0')
-- {
-- optarg = nextchar;
-- /* If we end this ARGV-element by taking the rest as an arg,
-- we must advance to the next element now. */
-- optind++;
-- }
-- else if (optind == argc)
-- {
-- if (opterr)
-- {
-- /* 1003.2 specifies the format of this message. */
-- fprintf (stderr,
-- _("%s: option requires an argument -- %c\n"),
-- argv[0], c);
-- }
-- optopt = c;
-- if (optstring[0] == ':')
-- c = ':';
-- else
-- c = '?';
-- }
-- else
-- /* We already incremented `optind' once;
-- increment it again when taking next ARGV-elt as argument. */
-- optarg = argv[optind++];
-- nextchar = NULL;
-- }
-- }
-- return c;
-- }
--}
--
--int
--getopt (argc, argv, optstring)
-- int argc;
-- char *const *argv;
-- const char *optstring;
--{
-- return _getopt_internal (argc, argv, optstring,
-- (const struct option *) 0,
-- (int *) 0,
-- 0);
--}
--
--#endif /* Not ELIDE_CODE. */
--
--#ifdef TEST
--
--/* Compile with -DTEST to make an executable for use in testing
-- the above definition of `getopt'. */
--
--int
--main (argc, argv)
-- int argc;
-- char **argv;
--{
-- int c;
-- int digit_optind = 0;
--
-- while (1)
-- {
-- int this_option_optind = optind ? optind : 1;
--
-- c = getopt (argc, argv, "abc:d:0123456789");
-- if (c == -1)
-- break;
--
-- switch (c)
-- {
-- case '0':
-- case '1':
-- case '2':
-- case '3':
-- case '4':
-- case '5':
-- case '6':
-- case '7':
-- case '8':
-- case '9':
-- if (digit_optind != 0 && digit_optind != this_option_optind)
-- printf ("digits occur in two different argv-elements.\n");
-- digit_optind = this_option_optind;
-- printf ("option %c\n", c);
-- break;
--
-- case 'a':
-- printf ("option a\n");
-- break;
--
-- case 'b':
-- printf ("option b\n");
-- break;
--
-- case 'c':
-- printf ("option c with value `%s'\n", optarg);
-- break;
--
-- case '?':
-- break;
--
-- default:
-- printf ("?? getopt returned character code 0%o ??\n", c);
-- }
-- }
--
-- if (optind < argc)
-- {
-- printf ("non-option ARGV-elements: ");
-- while (optind < argc)
-- printf ("%s ", argv[optind++]);
-- printf ("\n");
-- }
--
-- exit (0);
--}
--
--#endif /* TEST */
---- ./src/getopt.h (Revision 1006)
-+++ ./src/getopt.h (Revision 1007)
-@@ -1,133 +0,0 @@
--/* Declarations for getopt.
-- Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
--
-- This file is part of the GNU C Library. Its master source is NOT part of
-- the C library, however. The master source lives in /gd/gnu/lib.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public License as
-- published by the Free Software Foundation; either version 2 of the
-- License, or (at your option) any later version.
--
-- The GNU C Library 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
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
--
--#ifndef _GETOPT_H
--#define _GETOPT_H 1
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--/* For communication from `getopt' to the caller.
-- When `getopt' finds an option that takes an argument,
-- the argument value is returned here.
-- Also, when `ordering' is RETURN_IN_ORDER,
-- each non-option ARGV-element is returned here. */
--
--extern char *optarg;
--
--/* Index in ARGV of the next element to be scanned.
-- This is used for communication to and from the caller
-- and for communication between successive calls to `getopt'.
--
-- On entry to `getopt', zero means this is the first call; initialize.
--
-- When `getopt' returns -1, this is the index of the first of the
-- non-option elements that the caller should itself scan.
--
-- Otherwise, `optind' communicates from one call to the next
-- how much of ARGV has been scanned so far. */
--
--extern int optind;
--
--/* Callers store zero here to inhibit the error message `getopt' prints
-- for unrecognized options. */
--
--extern int opterr;
--
--/* Set to an option character which was unrecognized. */
--
--extern int optopt;
--
--/* Describe the long-named options requested by the application.
-- The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-- of `struct option' terminated by an element containing a name which is
-- zero.
--
-- The field `has_arg' is:
-- no_argument (or 0) if the option does not take an argument,
-- required_argument (or 1) if the option requires an argument,
-- optional_argument (or 2) if the option takes an optional argument.
--
-- If the field `flag' is not NULL, it points to a variable that is set
-- to the value given in the field `val' when the option is found, but
-- left unchanged if the option is not found.
--
-- To have a long-named option do something other than set an `int' to
-- a compiled-in constant, such as set a value from `optarg', set the
-- option's `flag' field to zero and its `val' field to a nonzero
-- value (the equivalent single-letter option character, if there is
-- one). For long options that have a zero `flag' field, `getopt'
-- returns the contents of the `val' field. */
--
--struct option
--{
--#if defined (__STDC__) && __STDC__
-- const char *name;
--#else
-- char *name;
--#endif
-- /* has_arg can't be an enum because some compilers complain about
-- type mismatches in all the code that assumes it is an int. */
-- int has_arg;
-- int *flag;
-- int val;
--};
--
--/* Names for the values of the `has_arg' field of `struct option'. */
--
--#define no_argument 0
--#define required_argument 1
--#define optional_argument 2
--
--#if defined (__STDC__) && __STDC__
--#ifdef __GNU_LIBRARY__
--/* Many other libraries have conflicting prototypes for getopt, with
-- differences in the consts, in stdlib.h. To avoid compilation
-- errors, only prototype getopt for the GNU C library. */
--extern int getopt (int argc, char *const *argv, const char *shortopts);
--#else /* not __GNU_LIBRARY__ */
--extern int getopt ();
--#endif /* __GNU_LIBRARY__ */
--extern int getopt_long (int argc, char *const *argv, const char *shortopts,
-- const struct option *longopts, int *longind);
--extern int getopt_long_only (int argc, char *const *argv,
-- const char *shortopts,
-- const struct option *longopts, int *longind);
--
--/* Internal only. Users should not call this directly. */
--extern int _getopt_internal (int argc, char *const *argv,
-- const char *shortopts,
-- const struct option *longopts, int *longind,
-- int long_only);
--#else /* not __STDC__ */
--extern int getopt ();
--extern int getopt_long ();
--extern int getopt_long_only ();
--
--extern int _getopt_internal ();
--#endif /* __STDC__ */
--
--#ifdef __cplusplus
--}
--#endif
--
--#endif /* _GETOPT_H */
---- ./src/rrd_getopt.c (Revision 0)
-+++ ./src/rrd_getopt.c (Revision 1007)
-@@ -0,0 +1,1002 @@
-+/* Getopt for GNU.
-+ NOTE: getopt is now part of the C library, so if you don't know what
-+ "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
-+ before changing it!
-+
-+ Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
-+ Free Software Foundation, Inc.
-+
-+ This file is part of the GNU C Library. Its master source is NOT part of
-+ the C library, however. The master source lives in /gd/gnu/lib.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA. */
-+
-+/* This tells Alpha OSF/1 not to define a getopt prototype in .
-+ Ditto for AIX 3.2 and . */
-+#ifndef _NO_PROTO
-+#define _NO_PROTO
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+#include "../rrd_config.h"
-+#endif
-+
-+#if !defined (__STDC__) || !__STDC__
-+/* This is a separate conditional since some stdc systems
-+ reject `defined (const)'. */
-+#ifndef const
-+#define const
-+#endif
-+#endif
-+
-+#include
-+
-+/* Comment out all this code if we are using the GNU C Library, and are not
-+ actually compiling the library itself. This code is part of the GNU C
-+ Library, but also included in many other GNU distributions. Compiling
-+ and linking in this code is a waste when using the GNU C library
-+ (especially if it is a shared library). Rather than having every GNU
-+ program understand `configure --with-gnu-libc' and omit the object files,
-+ it is simpler to just do this in the source for each such file. */
-+
-+#define GETOPT_INTERFACE_VERSION 2
-+#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
-+#include
-+#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-+#define ELIDE_CODE
-+#endif
-+#endif
-+
-+#ifndef ELIDE_CODE
-+
-+
-+/* This needs to come after some library #include
-+ to get __GNU_LIBRARY__ defined. */
-+#ifdef __GNU_LIBRARY__
-+/* Don't include stdlib.h for non-GNU C libraries because some of them
-+ contain conflicting prototypes for getopt. */
-+#include
-+#include
-+#endif /* GNU C library. */
-+
-+#ifdef VMS
-+#include
-+#if HAVE_STRING_H - 0
-+#include
-+#endif
-+#endif
-+
-+#if defined (_WIN32) && !defined (__CYGWIN32__)
-+/* It's not Unix, really. See? Capital letters. */
-+#include
-+#define getpid() GetCurrentProcessId()
-+#endif
-+
-+#ifndef _
-+/* This is for other GNU distributions with internationalized messages.
-+ When compiling libc, the _ macro is predefined. */
-+#ifdef HAVE_LIBINTL_H
-+# include
-+# define _(msgid) gettext (msgid)
-+#else
-+# define _(msgid) (msgid)
-+#endif
-+#endif
-+
-+/* This version of `getopt' appears to the caller like standard Unix `getopt'
-+ but it behaves differently for the user, since it allows the user
-+ to intersperse the options with the other arguments.
-+
-+ As `getopt' works, it permutes the elements of ARGV so that,
-+ when it is done, all the options precede everything else. Thus
-+ all application programs are extended to handle flexible argument order.
-+
-+ Setting the environment variable POSIXLY_CORRECT disables permutation.
-+ Then the behavior is completely standard.
-+
-+ GNU application programs can use a third alternative mode in which
-+ they can distinguish the relative order of options and other arguments. */
-+
-+#include "rrd_getopt.h"
-+
-+/* For communication from `getopt' to the caller.
-+ When `getopt' finds an option that takes an argument,
-+ the argument value is returned here.
-+ Also, when `ordering' is RETURN_IN_ORDER,
-+ each non-option ARGV-element is returned here. */
-+
-+char *optarg = NULL;
-+
-+/* Index in ARGV of the next element to be scanned.
-+ This is used for communication to and from the caller
-+ and for communication between successive calls to `getopt'.
-+
-+ On entry to `getopt', zero means this is the first call; initialize.
-+
-+ When `getopt' returns -1, this is the index of the first of the
-+ non-option elements that the caller should itself scan.
-+
-+ Otherwise, `optind' communicates from one call to the next
-+ how much of ARGV has been scanned so far. */
-+
-+/* 1003.2 says this must be 1 before any call. */
-+int optind = 1;
-+
-+/* Formerly, initialization of getopt depended on optind==0, which
-+ causes problems with re-calling getopt as programs generally don't
-+ know that. */
-+
-+int __getopt_initialized = 0;
-+
-+/* The next char to be scanned in the option-element
-+ in which the last option character we returned was found.
-+ This allows us to pick up the scan where we left off.
-+
-+ If this is zero, or a null string, it means resume the scan
-+ by advancing to the next ARGV-element. */
-+
-+static char *nextchar;
-+
-+/* Callers store zero here to inhibit the error message
-+ for unrecognized options. */
-+
-+int opterr = 1;
-+
-+/* Set to an option character which was unrecognized.
-+ This must be initialized on some systems to avoid linking in the
-+ system's own getopt implementation. */
-+
-+int optopt = '?';
-+
-+/* Describe how to deal with options that follow non-option ARGV-elements.
-+
-+ If the caller did not specify anything,
-+ the default is REQUIRE_ORDER if the environment variable
-+ POSIXLY_CORRECT is defined, PERMUTE otherwise.
-+
-+ REQUIRE_ORDER means don't recognize them as options;
-+ stop option processing when the first non-option is seen.
-+ This is what Unix does.
-+ This mode of operation is selected by either setting the environment
-+ variable POSIXLY_CORRECT, or using `+' as the first character
-+ of the list of option characters.
-+
-+ PERMUTE is the default. We permute the contents of ARGV as we scan,
-+ so that eventually all the non-options are at the end. This allows options
-+ to be given in any order, even with programs that were not written to
-+ expect this.
-+
-+ RETURN_IN_ORDER is an option available to programs that were written
-+ to expect options and other ARGV-elements in any order and that care about
-+ the ordering of the two. We describe each non-option ARGV-element
-+ as if it were the argument of an option with character code 1.
-+ Using `-' as the first character of the list of option characters
-+ selects this mode of operation.
-+
-+ The special argument `--' forces an end of option-scanning regardless
-+ of the value of `ordering'. In the case of RETURN_IN_ORDER, only
-+ `--' can cause `getopt' to return -1 with `optind' != ARGC. */
-+
-+static enum
-+{
-+ REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-+} ordering;
-+
-+/* Value of POSIXLY_CORRECT environment variable. */
-+static char *posixly_correct;
-+
-+/* we must include string as there are warnings without it ... */
-+#include
-+
-+#ifdef __GNU_LIBRARY__
-+/* We want to avoid inclusion of string.h with non-GNU libraries
-+ because there are many ways it can cause trouble.
-+ On some systems, it contains special magic macros that don't work
-+ in GCC. */
-+#define my_index strchr
-+#else
-+
-+/* Avoid depending on library functions or files
-+ whose names are inconsistent. */
-+
-+char *getenv ();
-+
-+static char *
-+my_index (str, chr)
-+ const char *str;
-+ int chr;
-+{
-+ while (*str)
-+ {
-+ if (*str == chr)
-+ return (char *) str;
-+ str++;
-+ }
-+ return 0;
-+}
-+
-+/* If using GCC, we can safely declare strlen this way.
-+ If not using GCC, it is ok not to declare it. */
-+#ifdef __GNUC__
-+/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
-+ That was relevant to code that was here before. */
-+#if !defined (__STDC__) || !__STDC__
-+/* gcc with -traditional declares the built-in strlen to return int,
-+ and has done so at least since version 2.4.5. -- rms. */
-+extern int strlen (const char *);
-+#endif /* not __STDC__ */
-+#endif /* __GNUC__ */
-+
-+#endif /* not __GNU_LIBRARY__ */
-+
-+/* Handle permutation of arguments. */
-+
-+/* Describe the part of ARGV that contains non-options that have
-+ been skipped. `first_nonopt' is the index in ARGV of the first of them;
-+ `last_nonopt' is the index after the last of them. */
-+
-+static int first_nonopt;
-+static int last_nonopt;
-+
-+#ifdef _LIBC
-+/* Bash 2.0 gives us an environment variable containing flags
-+ indicating ARGV elements that should not be considered arguments. */
-+
-+static const char *nonoption_flags;
-+static int nonoption_flags_len;
-+
-+static int original_argc;
-+static char *const *original_argv;
-+
-+/* Make sure the environment variable bash 2.0 puts in the environment
-+ is valid for the getopt call we must make sure that the ARGV passed
-+ to getopt is that one passed to the process. */
-+static void store_args (int argc, char *const *argv) __attribute__ ((unused));
-+static void
-+store_args (int argc, char *const *argv)
-+{
-+ /* XXX This is no good solution. We should rather copy the args so
-+ that we can compare them later. But we must not use malloc(3). */
-+ original_argc = argc;
-+ original_argv = argv;
-+}
-+text_set_element (__libc_subinit, store_args);
-+#endif
-+
-+/* Exchange two adjacent subsequences of ARGV.
-+ One subsequence is elements [first_nonopt,last_nonopt)
-+ which contains all the non-options that have been skipped so far.
-+ The other is elements [last_nonopt,optind), which contains all
-+ the options processed since those non-options were skipped.
-+
-+ `first_nonopt' and `last_nonopt' are relocated so that they describe
-+ the new indices of the non-options in ARGV after they are moved. */
-+
-+#if defined (__STDC__) && __STDC__
-+static void exchange (char **);
-+#endif
-+
-+static void
-+exchange (argv)
-+ char **argv;
-+{
-+ int bottom = first_nonopt;
-+ int middle = last_nonopt;
-+ int top = optind;
-+ char *tem;
-+
-+ /* Exchange the shorter segment with the far end of the longer segment.
-+ That puts the shorter segment into the right place.
-+ It leaves the longer segment in the right place overall,
-+ but it consists of two parts that need to be swapped next. */
-+
-+ while (top > middle && middle > bottom)
-+ {
-+ if (top - middle > middle - bottom)
-+ {
-+ /* Bottom segment is the short one. */
-+ int len = middle - bottom;
-+ register int i;
-+
-+ /* Swap it with the top part of the top segment. */
-+ for (i = 0; i < len; i++)
-+ {
-+ tem = argv[bottom + i];
-+ argv[bottom + i] = argv[top - (middle - bottom) + i];
-+ argv[top - (middle - bottom) + i] = tem;
-+ }
-+ /* Exclude the moved bottom segment from further swapping. */
-+ top -= len;
-+ }
-+ else
-+ {
-+ /* Top segment is the short one. */
-+ int len = top - middle;
-+ register int i;
-+
-+ /* Swap it with the bottom part of the bottom segment. */
-+ for (i = 0; i < len; i++)
-+ {
-+ tem = argv[bottom + i];
-+ argv[bottom + i] = argv[middle + i];
-+ argv[middle + i] = tem;
-+ }
-+ /* Exclude the moved top segment from further swapping. */
-+ bottom += len;
-+ }
-+ }
-+
-+ /* Update records for the slots the non-options now occupy. */
-+
-+ first_nonopt += (optind - last_nonopt);
-+ last_nonopt = optind;
-+}
-+
-+/* Initialize the internal data when the first call is made. */
-+
-+#if defined (__STDC__) && __STDC__
-+static const char *_getopt_initialize (int, char *const *, const char *);
-+#endif
-+static const char *
-+_getopt_initialize (argc, argv, optstring)
-+ int argc;
-+ char *const *argv;
-+ const char *optstring;
-+{
-+ /* Start processing options with ARGV-element 1 (since ARGV-element 0
-+ is the program name); the sequence of previously skipped
-+ non-option ARGV-elements is empty. */
-+
-+ first_nonopt = last_nonopt = optind = 1;
-+
-+ nextchar = NULL;
-+
-+ posixly_correct = getenv ("POSIXLY_CORRECT");
-+
-+ /* Determine how to handle the ordering of options and nonoptions. */
-+
-+ if (optstring[0] == '-')
-+ {
-+ ordering = RETURN_IN_ORDER;
-+ ++optstring;
-+ }
-+ else if (optstring[0] == '+')
-+ {
-+ ordering = REQUIRE_ORDER;
-+ ++optstring;
-+ }
-+ else if (posixly_correct != NULL)
-+ ordering = REQUIRE_ORDER;
-+ else
-+ ordering = PERMUTE;
-+
-+#ifdef _LIBC
-+ if (posixly_correct == NULL
-+ && argc == original_argc && argv == original_argv)
-+ {
-+ /* Bash 2.0 puts a special variable in the environment for each
-+ command it runs, specifying which ARGV elements are the results of
-+ file name wildcard expansion and therefore should not be
-+ considered as options. */
-+ char var[100];
-+ sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ());
-+ nonoption_flags = getenv (var);
-+ if (nonoption_flags == NULL)
-+ nonoption_flags_len = 0;
-+ else
-+ nonoption_flags_len = strlen (nonoption_flags);
-+ }
-+ else
-+ nonoption_flags_len = 0;
-+#endif
-+
-+ return optstring;
-+}
-+
-+/* Scan elements of ARGV (whose length is ARGC) for option characters
-+ given in OPTSTRING.
-+
-+ If an element of ARGV starts with '-', and is not exactly "-" or "--",
-+ then it is an option element. The characters of this element
-+ (aside from the initial '-') are option characters. If `getopt'
-+ is called repeatedly, it returns successively each of the option characters
-+ from each of the option elements.
-+
-+ If `getopt' finds another option character, it returns that character,
-+ updating `optind' and `nextchar' so that the next call to `getopt' can
-+ resume the scan with the following option character or ARGV-element.
-+
-+ If there are no more option characters, `getopt' returns -1.
-+ Then `optind' is the index in ARGV of the first ARGV-element
-+ that is not an option. (The ARGV-elements have been permuted
-+ so that those that are not options now come last.)
-+
-+ OPTSTRING is a string containing the legitimate option characters.
-+ If an option character is seen that is not listed in OPTSTRING,
-+ return '?' after printing an error message. If you set `opterr' to
-+ zero, the error message is suppressed but we still return '?'.
-+
-+ If a char in OPTSTRING is followed by a colon, that means it wants an arg,
-+ so the following text in the same ARGV-element, or the text of the following
-+ ARGV-element, is returned in `optarg'. Two colons mean an option that
-+ wants an optional arg; if there is text in the current ARGV-element,
-+ it is returned in `optarg', otherwise `optarg' is set to zero.
-+
-+ If OPTSTRING starts with `-' or `+', it requests different methods of
-+ handling the non-option ARGV-elements.
-+ See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-+
-+ Long-named options begin with `--' instead of `-'.
-+ Their names may be abbreviated as long as the abbreviation is unique
-+ or is an exact match for some defined option. If they have an
-+ argument, it follows the option name in the same ARGV-element, separated
-+ from the option name by a `=', or else the in next ARGV-element.
-+ When `getopt' finds a long-named option, it returns 0 if that option's
-+ `flag' field is nonzero, the value of the option's `val' field
-+ if the `flag' field is zero.
-+
-+ The elements of ARGV aren't really const, because we permute them.
-+ But we pretend they're const in the prototype to be compatible
-+ with other systems.
-+
-+ LONGOPTS is a vector of `struct option' terminated by an
-+ element containing a name which is zero.
-+
-+ LONGIND returns the index in LONGOPT of the long-named option found.
-+ It is only valid when a long-named option has been found by the most
-+ recent call.
-+
-+ If LONG_ONLY is nonzero, '-' as well as '--' can introduce
-+ long-named options. */
-+
-+int
-+_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
-+ int argc;
-+ char *const *argv;
-+ const char *optstring;
-+ const struct option *longopts;
-+ int *longind;
-+ int long_only;
-+{
-+ optarg = NULL;
-+
-+ if (!__getopt_initialized || optind == 0)
-+ {
-+ optstring = _getopt_initialize (argc, argv, optstring);
-+ optind = 1; /* Don't scan ARGV[0], the program name. */
-+ __getopt_initialized = 1;
-+ }
-+
-+ /* Test whether ARGV[optind] points to a non-option argument.
-+ Either it does not have option syntax, or there is an environment flag
-+ from the shell indicating it is not an option. The later information
-+ is only used when the used in the GNU libc. */
-+#ifdef _LIBC
-+#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
-+ || (optind < nonoption_flags_len \
-+ && nonoption_flags[optind] == '1'))
-+#else
-+#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
-+#endif
-+
-+ if (nextchar == NULL || *nextchar == '\0')
-+ {
-+ /* Advance to the next ARGV-element. */
-+
-+ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
-+ moved back by the user (who may also have changed the arguments). */
-+ if (last_nonopt > optind)
-+ last_nonopt = optind;
-+ if (first_nonopt > optind)
-+ first_nonopt = optind;
-+
-+ if (ordering == PERMUTE)
-+ {
-+ /* If we have just processed some options following some non-options,
-+ exchange them so that the options come first. */
-+
-+ if (first_nonopt != last_nonopt && last_nonopt != optind)
-+ exchange ((char **) argv);
-+ else if (last_nonopt != optind)
-+ first_nonopt = optind;
-+
-+ /* Skip any additional non-options
-+ and extend the range of non-options previously skipped. */
-+
-+ while (optind < argc && NONOPTION_P)
-+ optind++;
-+ last_nonopt = optind;
-+ }
-+
-+ /* The special ARGV-element `--' means premature end of options.
-+ Skip it like a null option,
-+ then exchange with previous non-options as if it were an option,
-+ then skip everything else like a non-option. */
-+
-+ if (optind != argc && !strcmp (argv[optind], "--"))
-+ {
-+ optind++;
-+
-+ if (first_nonopt != last_nonopt && last_nonopt != optind)
-+ exchange ((char **) argv);
-+ else if (first_nonopt == last_nonopt)
-+ first_nonopt = optind;
-+ last_nonopt = argc;
-+
-+ optind = argc;
-+ }
-+
-+ /* If we have done all the ARGV-elements, stop the scan
-+ and back over any non-options that we skipped and permuted. */
-+
-+ if (optind == argc)
-+ {
-+ /* Set the next-arg-index to point at the non-options
-+ that we previously skipped, so the caller will digest them. */
-+ if (first_nonopt != last_nonopt)
-+ optind = first_nonopt;
-+ return -1;
-+ }
-+
-+ /* If we have come to a non-option and did not permute it,
-+ either stop the scan or describe it to the caller and pass it by. */
-+
-+ if (NONOPTION_P)
-+ {
-+ if (ordering == REQUIRE_ORDER)
-+ return -1;
-+ optarg = argv[optind++];
-+ return 1;
-+ }
-+
-+ /* We have found another option-ARGV-element.
-+ Skip the initial punctuation. */
-+
-+ nextchar = (argv[optind] + 1
-+ + (longopts != NULL && argv[optind][1] == '-'));
-+ }
-+
-+ /* Decode the current option-ARGV-element. */
-+
-+ /* Check whether the ARGV-element is a long option.
-+
-+ If long_only and the ARGV-element has the form "-f", where f is
-+ a valid short option, don't consider it an abbreviated form of
-+ a long option that starts with f. Otherwise there would be no
-+ way to give the -f short option.
-+
-+ On the other hand, if there's a long option "fubar" and
-+ the ARGV-element is "-fu", do consider that an abbreviation of
-+ the long option, just like "--fu", and not "-f" with arg "u".
-+
-+ This distinction seems to be the most useful approach. */
-+
-+ if (longopts != NULL
-+ && (argv[optind][1] == '-'
-+ || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
-+ {
-+ char *nameend;
-+ const struct option *p;
-+ const struct option *pfound = NULL;
-+ int exact = 0;
-+ int ambig = 0;
-+ int indfound = -1;
-+ int option_index;
-+
-+ for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
-+ /* Do nothing. */ ;
-+
-+ /* Test all long options for either exact match
-+ or abbreviated matches. */
-+ for (p = longopts, option_index = 0; p->name; p++, option_index++)
-+ if (!strncmp (p->name, nextchar, nameend - nextchar))
-+ {
-+ if ((unsigned int) (nameend - nextchar)
-+ == (unsigned int) strlen (p->name))
-+ {
-+ /* Exact match found. */
-+ pfound = p;
-+ indfound = option_index;
-+ exact = 1;
-+ break;
-+ }
-+ else if (pfound == NULL)
-+ {
-+ /* First nonexact match found. */
-+ pfound = p;
-+ indfound = option_index;
-+ }
-+ else
-+ /* Second or later nonexact match found. */
-+ ambig = 1;
-+ }
-+
-+ if (ambig && !exact)
-+ {
-+ if (opterr)
-+ fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
-+ argv[0], argv[optind]);
-+ nextchar += strlen (nextchar);
-+ optind++;
-+ optopt = 0;
-+ return '?';
-+ }
-+
-+ if (pfound != NULL)
-+ {
-+ option_index = indfound;
-+ optind++;
-+ if (*nameend)
-+ {
-+ /* Don't test has_arg with >, because some C compilers don't
-+ allow it to be used on enums. */
-+ if (pfound->has_arg)
-+ optarg = nameend + 1;
-+ else
-+ {
-+ if (opterr) {
-+ if (argv[optind - 1][1] == '-')
-+ /* --option */
-+ fprintf (stderr,
-+ _("%s: option `--%s' doesn't allow an argument\n"),
-+ argv[0], pfound->name);
-+ else
-+ /* +option or -option */
-+ fprintf (stderr,
-+ _("%s: option `%c%s' doesn't allow an argument\n"),
-+ argv[0], argv[optind - 1][0], pfound->name);
-+ }
-+ nextchar += strlen (nextchar);
-+
-+ optopt = pfound->val;
-+ return '?';
-+ }
-+ }
-+ else if (pfound->has_arg == 1)
-+ {
-+ if (optind < argc)
-+ optarg = argv[optind++];
-+ else
-+ {
-+ if (opterr)
-+ fprintf (stderr,
-+ _("%s: option `%s' requires an argument\n"),
-+ argv[0], argv[optind - 1]);
-+ nextchar += strlen (nextchar);
-+ optopt = pfound->val;
-+ return optstring[0] == ':' ? ':' : '?';
-+ }
-+ }
-+ nextchar += strlen (nextchar);
-+ if (longind != NULL)
-+ *longind = option_index;
-+ if (pfound->flag)
-+ {
-+ *(pfound->flag) = pfound->val;
-+ return 0;
-+ }
-+ return pfound->val;
-+ }
-+
-+ /* Can't find it as a long option. If this is not getopt_long_only,
-+ or the option starts with '--' or is not a valid short
-+ option, then it's an error.
-+ Otherwise interpret it as a short option. */
-+ if (!long_only || argv[optind][1] == '-'
-+ || my_index (optstring, *nextchar) == NULL)
-+ {
-+ if (opterr)
-+ {
-+ if (argv[optind][1] == '-')
-+ /* --option */
-+ fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
-+ argv[0], nextchar);
-+ else
-+ /* +option or -option */
-+ fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
-+ argv[0], argv[optind][0], nextchar);
-+ }
-+ nextchar = (char *) "";
-+ optind++;
-+ optopt = 0;
-+ return '?';
-+ }
-+ }
-+
-+ /* Look at and handle the next short option-character. */
-+
-+ {
-+ char c = *nextchar++;
-+ char *temp = my_index (optstring, c);
-+
-+ /* Increment `optind' when we start to process its last character. */
-+ if (*nextchar == '\0')
-+ ++optind;
-+
-+ if (temp == NULL || c == ':')
-+ {
-+ if (opterr)
-+ {
-+ if (posixly_correct)
-+ /* 1003.2 specifies the format of this message. */
-+ fprintf (stderr, _("%s: illegal option -- %c\n"),
-+ argv[0], c);
-+ else
-+ fprintf (stderr, _("%s: invalid option -- %c\n"),
-+ argv[0], c);
-+ }
-+ optopt = c;
-+ return '?';
-+ }
-+ /* Convenience. Treat POSIX -W foo same as long option --foo */
-+ if (temp[0] == 'W' && temp[1] == ';')
-+ {
-+ char *nameend;
-+ const struct option *p;
-+ const struct option *pfound = NULL;
-+ int exact = 0;
-+ int ambig = 0;
-+ int indfound = 0;
-+ int option_index;
-+
-+ /* This is an option that requires an argument. */
-+ if (*nextchar != '\0')
-+ {
-+ optarg = nextchar;
-+ /* If we end this ARGV-element by taking the rest as an arg,
-+ we must advance to the next element now. */
-+ optind++;
-+ }
-+ else if (optind == argc)
-+ {
-+ if (opterr)
-+ {
-+ /* 1003.2 specifies the format of this message. */
-+ fprintf (stderr, _("%s: option requires an argument -- %c\n"),
-+ argv[0], c);
-+ }
-+ optopt = c;
-+ if (optstring[0] == ':')
-+ c = ':';
-+ else
-+ c = '?';
-+ return c;
-+ }
-+ else
-+ /* We already incremented `optind' once;
-+ increment it again when taking next ARGV-elt as argument. */
-+ optarg = argv[optind++];
-+
-+ /* optarg is now the argument, see if it's in the
-+ table of longopts. */
-+
-+ for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
-+ /* Do nothing. */ ;
-+
-+ /* Test all long options for either exact match
-+ or abbreviated matches. */
-+ for (p = longopts, option_index = 0; p->name; p++, option_index++)
-+ if (!strncmp (p->name, nextchar, nameend - nextchar))
-+ {
-+ if ((unsigned int) (nameend - nextchar) == strlen (p->name))
-+ {
-+ /* Exact match found. */
-+ pfound = p;
-+ indfound = option_index;
-+ exact = 1;
-+ break;
-+ }
-+ else if (pfound == NULL)
-+ {
-+ /* First nonexact match found. */
-+ pfound = p;
-+ indfound = option_index;
-+ }
-+ else
-+ /* Second or later nonexact match found. */
-+ ambig = 1;
-+ }
-+ if (ambig && !exact)
-+ {
-+ if (opterr)
-+ fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
-+ argv[0], argv[optind]);
-+ nextchar += strlen (nextchar);
-+ optind++;
-+ return '?';
-+ }
-+ if (pfound != NULL)
-+ {
-+ option_index = indfound;
-+ if (*nameend)
-+ {
-+ /* Don't test has_arg with >, because some C compilers don't
-+ allow it to be used on enums. */
-+ if (pfound->has_arg)
-+ optarg = nameend + 1;
-+ else
-+ {
-+ if (opterr)
-+ fprintf (stderr, _("\
-+%s: option `-W %s' doesn't allow an argument\n"),
-+ argv[0], pfound->name);
-+
-+ nextchar += strlen (nextchar);
-+ return '?';
-+ }
-+ }
-+ else if (pfound->has_arg == 1)
-+ {
-+ if (optind < argc)
-+ optarg = argv[optind++];
-+ else
-+ {
-+ if (opterr)
-+ fprintf (stderr,
-+ _("%s: option `%s' requires an argument\n"),
-+ argv[0], argv[optind - 1]);
-+ nextchar += strlen (nextchar);
-+ return optstring[0] == ':' ? ':' : '?';
-+ }
-+ }
-+ nextchar += strlen (nextchar);
-+ if (longind != NULL)
-+ *longind = option_index;
-+ if (pfound->flag)
-+ {
-+ *(pfound->flag) = pfound->val;
-+ return 0;
-+ }
-+ return pfound->val;
-+ }
-+ nextchar = NULL;
-+ return 'W'; /* Let the application handle it. */
-+ }
-+ if (temp[1] == ':')
-+ {
-+ if (temp[2] == ':')
-+ {
-+ /* This is an option that accepts an argument optionally. */
-+ if (*nextchar != '\0')
-+ {
-+ optarg = nextchar;
-+ optind++;
-+ }
-+ else
-+ optarg = NULL;
-+ nextchar = NULL;
-+ }
-+ else
-+ {
-+ /* This is an option that requires an argument. */
-+ if (*nextchar != '\0')
-+ {
-+ optarg = nextchar;
-+ /* If we end this ARGV-element by taking the rest as an arg,
-+ we must advance to the next element now. */
-+ optind++;
-+ }
-+ else if (optind == argc)
-+ {
-+ if (opterr)
-+ {
-+ /* 1003.2 specifies the format of this message. */
-+ fprintf (stderr,
-+ _("%s: option requires an argument -- %c\n"),
-+ argv[0], c);
-+ }
-+ optopt = c;
-+ if (optstring[0] == ':')
-+ c = ':';
-+ else
-+ c = '?';
-+ }
-+ else
-+ /* We already incremented `optind' once;
-+ increment it again when taking next ARGV-elt as argument. */
-+ optarg = argv[optind++];
-+ nextchar = NULL;
-+ }
-+ }
-+ return c;
-+ }
-+}
-+
-+int
-+getopt (argc, argv, optstring)
-+ int argc;
-+ char *const *argv;
-+ const char *optstring;
-+{
-+ return _getopt_internal (argc, argv, optstring,
-+ (const struct option *) 0,
-+ (int *) 0,
-+ 0);
-+}
-+
-+#endif /* Not ELIDE_CODE. */
-+
-+#ifdef TEST
-+
-+/* Compile with -DTEST to make an executable for use in testing
-+ the above definition of `getopt'. */
-+
-+int
-+main (argc, argv)
-+ int argc;
-+ char **argv;
-+{
-+ int c;
-+ int digit_optind = 0;
-+
-+ while (1)
-+ {
-+ int this_option_optind = optind ? optind : 1;
-+
-+ c = getopt (argc, argv, "abc:d:0123456789");
-+ if (c == -1)
-+ break;
-+
-+ switch (c)
-+ {
-+ case '0':
-+ case '1':
-+ case '2':
-+ case '3':
-+ case '4':
-+ case '5':
-+ case '6':
-+ case '7':
-+ case '8':
-+ case '9':
-+ if (digit_optind != 0 && digit_optind != this_option_optind)
-+ printf ("digits occur in two different argv-elements.\n");
-+ digit_optind = this_option_optind;
-+ printf ("option %c\n", c);
-+ break;
-+
-+ case 'a':
-+ printf ("option a\n");
-+ break;
-+
-+ case 'b':
-+ printf ("option b\n");
-+ break;
-+
-+ case 'c':
-+ printf ("option c with value `%s'\n", optarg);
-+ break;
-+
-+ case '?':
-+ break;
-+
-+ default:
-+ printf ("?? getopt returned character code 0%o ??\n", c);
-+ }
-+ }
-+
-+ if (optind < argc)
-+ {
-+ printf ("non-option ARGV-elements: ");
-+ while (optind < argc)
-+ printf ("%s ", argv[optind++]);
-+ printf ("\n");
-+ }
-+
-+ exit (0);
-+}
-+
-+#endif /* TEST */
-
-Eigenschaftsänderungen: src/rrd_getopt.c
-___________________________________________________________________
-Name: svn:keywords
- + Author Date Id Revision
-Name: svn:eol-style
- + native
-
---- ./src/rrd_getopt.h (Revision 0)
-+++ ./src/rrd_getopt.h (Revision 1007)
-@@ -0,0 +1,133 @@
-+/* Declarations for getopt.
-+ Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
-+
-+ This file is part of the GNU C Library. Its master source is NOT part of
-+ the C library, however. The master source lives in /gd/gnu/lib.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA. */
-+
-+#ifndef _GETOPT_H
-+#define _GETOPT_H 1
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* For communication from `getopt' to the caller.
-+ When `getopt' finds an option that takes an argument,
-+ the argument value is returned here.
-+ Also, when `ordering' is RETURN_IN_ORDER,
-+ each non-option ARGV-element is returned here. */
-+
-+extern char *optarg;
-+
-+/* Index in ARGV of the next element to be scanned.
-+ This is used for communication to and from the caller
-+ and for communication between successive calls to `getopt'.
-+
-+ On entry to `getopt', zero means this is the first call; initialize.
-+
-+ When `getopt' returns -1, this is the index of the first of the
-+ non-option elements that the caller should itself scan.
-+
-+ Otherwise, `optind' communicates from one call to the next
-+ how much of ARGV has been scanned so far. */
-+
-+extern int optind;
-+
-+/* Callers store zero here to inhibit the error message `getopt' prints
-+ for unrecognized options. */
-+
-+extern int opterr;
-+
-+/* Set to an option character which was unrecognized. */
-+
-+extern int optopt;
-+
-+/* Describe the long-named options requested by the application.
-+ The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-+ of `struct option' terminated by an element containing a name which is
-+ zero.
-+
-+ The field `has_arg' is:
-+ no_argument (or 0) if the option does not take an argument,
-+ required_argument (or 1) if the option requires an argument,
-+ optional_argument (or 2) if the option takes an optional argument.
-+
-+ If the field `flag' is not NULL, it points to a variable that is set
-+ to the value given in the field `val' when the option is found, but
-+ left unchanged if the option is not found.
-+
-+ To have a long-named option do something other than set an `int' to
-+ a compiled-in constant, such as set a value from `optarg', set the
-+ option's `flag' field to zero and its `val' field to a nonzero
-+ value (the equivalent single-letter option character, if there is
-+ one). For long options that have a zero `flag' field, `getopt'
-+ returns the contents of the `val' field. */
-+
-+struct option
-+{
-+#if defined (__STDC__) && __STDC__
-+ const char *name;
-+#else
-+ char *name;
-+#endif
-+ /* has_arg can't be an enum because some compilers complain about
-+ type mismatches in all the code that assumes it is an int. */
-+ int has_arg;
-+ int *flag;
-+ int val;
-+};
-+
-+/* Names for the values of the `has_arg' field of `struct option'. */
-+
-+#define no_argument 0
-+#define required_argument 1
-+#define optional_argument 2
-+
-+#if defined (__STDC__) && __STDC__
-+#ifdef __GNU_LIBRARY__
-+/* Many other libraries have conflicting prototypes for getopt, with
-+ differences in the consts, in stdlib.h. To avoid compilation
-+ errors, only prototype getopt for the GNU C library. */
-+extern int getopt (int argc, char *const *argv, const char *shortopts);
-+#else /* not __GNU_LIBRARY__ */
-+extern int getopt ();
-+#endif /* __GNU_LIBRARY__ */
-+extern int getopt_long (int argc, char *const *argv, const char *shortopts,
-+ const struct option *longopts, int *longind);
-+extern int getopt_long_only (int argc, char *const *argv,
-+ const char *shortopts,
-+ const struct option *longopts, int *longind);
-+
-+/* Internal only. Users should not call this directly. */
-+extern int _getopt_internal (int argc, char *const *argv,
-+ const char *shortopts,
-+ const struct option *longopts, int *longind,
-+ int long_only);
-+#else /* not __STDC__ */
-+extern int getopt ();
-+extern int getopt_long ();
-+extern int getopt_long_only ();
-+
-+extern int _getopt_internal ();
-+#endif /* __STDC__ */
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _GETOPT_H */
-
-Eigenschaftsänderungen: src/rrd_getopt.h
-___________________________________________________________________
-Name: svn:keywords
- + Author Date Id Revision
-Name: svn:eol-style
- + native
-
---- ./src/rrd_tool.h (Revision 1006)
-+++ ./src/rrd_tool.h (Revision 1007)
-@@ -115,7 +115,7 @@
- #endif
-
- /* local include files -- need to be after the system ones */
--#include "getopt.h"
-+#include "rrd_getopt.h"
- #include "rrd_format.h"
-
- #ifndef max
---- ./src/rrd_getopt1.c (Revision 0)
-+++ ./src/rrd_getopt1.c (Revision 1007)
-@@ -0,0 +1,189 @@
-+/* getopt_long and getopt_long_only entry points for GNU getopt.
-+ Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
-+
-+ This file is part of the GNU C Library. Its master source is NOT part of
-+ the C library, however. The master source lives in /gd/gnu/lib.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA. */
-+
-+#ifdef HAVE_CONFIG_H
-+#include "../rrd_config.h"
-+#endif
-+
-+#include "rrd_getopt.h"
-+
-+#if !defined (__STDC__) || !__STDC__
-+/* This is a separate conditional since some stdc systems
-+ reject `defined (const)'. */
-+#ifndef const
-+#define const
-+#endif
-+#endif
-+
-+#include
-+
-+/* Comment out all this code if we are using the GNU C Library, and are not
-+ actually compiling the library itself. This code is part of the GNU C
-+ Library, but also included in many other GNU distributions. Compiling
-+ and linking in this code is a waste when using the GNU C library
-+ (especially if it is a shared library). Rather than having every GNU
-+ program understand `configure --with-gnu-libc' and omit the object files,
-+ it is simpler to just do this in the source for each such file. */
-+
-+#define GETOPT_INTERFACE_VERSION 2
-+#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
-+#include
-+#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-+#define ELIDE_CODE
-+#endif
-+#endif
-+
-+#ifndef ELIDE_CODE
-+
-+
-+/* This needs to come after some library #include
-+ to get __GNU_LIBRARY__ defined. */
-+#ifdef __GNU_LIBRARY__
-+#include
-+#endif
-+
-+#ifndef NULL
-+#define NULL 0
-+#endif
-+
-+int
-+getopt_long (argc, argv, options, long_options, opt_index)
-+ int argc;
-+ char *const *argv;
-+ const char *options;
-+ const struct option *long_options;
-+ int *opt_index;
-+{
-+ return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
-+}
-+
-+/* Like getopt_long, but '-' as well as '--' can indicate a long option.
-+ If an option that starts with '-' (not '--') doesn't match a long option,
-+ but does match a short option, it is parsed as a short option
-+ instead. */
-+
-+int
-+getopt_long_only (argc, argv, options, long_options, opt_index)
-+ int argc;
-+ char *const *argv;
-+ const char *options;
-+ const struct option *long_options;
-+ int *opt_index;
-+{
-+ return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
-+}
-+
-+
-+#endif /* Not ELIDE_CODE. */
-+
-+#ifdef TEST
-+
-+#include
-+
-+int
-+main (argc, argv)
-+ int argc;
-+ char **argv;
-+{
-+ int c;
-+ int digit_optind = 0;
-+
-+ while (1)
-+ {
-+ int this_option_optind = optind ? optind : 1;
-+ int option_index = 0;
-+ static struct option long_options[] =
-+ {
-+ {"add", 1, 0, 0},
-+ {"append", 0, 0, 0},
-+ {"delete", 1, 0, 0},
-+ {"verbose", 0, 0, 0},
-+ {"create", 0, 0, 0},
-+ {"file", 1, 0, 0},
-+ {0, 0, 0, 0}
-+ };
-+
-+ c = getopt_long (argc, argv, "abc:d:0123456789",
-+ long_options, &option_index);
-+ if (c == -1)
-+ break;
-+
-+ switch (c)
-+ {
-+ case 0:
-+ printf ("option %s", long_options[option_index].name);
-+ if (optarg)
-+ printf (" with arg %s", optarg);
-+ printf ("\n");
-+ break;
-+
-+ case '0':
-+ case '1':
-+ case '2':
-+ case '3':
-+ case '4':
-+ case '5':
-+ case '6':
-+ case '7':
-+ case '8':
-+ case '9':
-+ if (digit_optind != 0 && digit_optind != this_option_optind)
-+ printf ("digits occur in two different argv-elements.\n");
-+ digit_optind = this_option_optind;
-+ printf ("option %c\n", c);
-+ break;
-+
-+ case 'a':
-+ printf ("option a\n");
-+ break;
-+
-+ case 'b':
-+ printf ("option b\n");
-+ break;
-+
-+ case 'c':
-+ printf ("option c with value `%s'\n", optarg);
-+ break;
-+
-+ case 'd':
-+ printf ("option d with value `%s'\n", optarg);
-+ break;
-+
-+ case '?':
-+ break;
-+
-+ default:
-+ printf ("?? getopt returned character code 0%o ??\n", c);
-+ }
-+ }
-+
-+ if (optind < argc)
-+ {
-+ printf ("non-option ARGV-elements: ");
-+ while (optind < argc)
-+ printf ("%s ", argv[optind++]);
-+ printf ("\n");
-+ }
-+
-+ exit (0);
-+}
-+
-+#endif /* TEST */
-
-Eigenschaftsänderungen: src/rrd_getopt1.c
-___________________________________________________________________
-Name: svn:keywords
- + Author Date Id Revision
-Name: svn:eol-style
- + native
-
---- ./src/Makefile.am (Revision 1006)
-+++ ./src/Makefile.am (Revision 1007)
-@@ -13,8 +13,8 @@
- AM_CPPFLAGS = -DRRD_DEFAULT_FONT=\"$(RRD_DEFAULT_FONT)\" -DNUMVERS=@NUMVERS@
-
- UPD_C_FILES = \
-- getopt.c \
-- getopt1.c \
-+ rrd_getopt.c \
-+ rrd_getopt1.c \
- parsetime.c \
- rrd_hw.c \
- rrd_diff.c \
-@@ -51,7 +51,7 @@
- art_rgba_svp.h \
- unused.h \
- rrd_gfx.h \
-- getopt.h parsetime.h \
-+ rrd_getopt.h parsetime.h \
- rrd_format.h rrd_tool.h rrd_xport.h rrd.h rrd_hw.h rrd_rpncalc.h \
- rrd_nan_inf.h fnv.h rrd_graph.h rrd_afm.h rrd_afm_data.h \
- rrd_is_thread_safe.h
diff --git a/database/rrdtool/rrdtool-1.2.19-rrdcgi.patch b/database/rrdtool/rrdtool-1.2.19-rrdcgi.patch
deleted file mode 100644
index 69bb0d2c8..000000000
--- a/database/rrdtool/rrdtool-1.2.19-rrdcgi.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-# --- SDE-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-#
-# Filename: package/.../rrdtool/rrdtool-1.2.19-rrdcgi.patch
-# Copyright (C) 2007 The OpenSDE Project
-#
-# More information can be found in the files COPYING and README.
-#
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
-# of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-# --- SDE-COPYRIGHT-NOTE-END ---
-
-Printstrftime on rrd_cgi.c returns an illegal value.
-It causes segmentation fault error. (Tatsuki Makino tatsuki_makino hotmail.com)
-
---- ./src/rrd_cgi.c (Revision 1000)
-+++ ./src/rrd_cgi.c (Revision 1001)
-@@ -574,7 +574,7 @@
- /* Make sure that we were given the right number of args */
- if( argc != 4) {
- rrd_set_error( "wrong number of args %d", argc);
-- return (char *) -1;
-+ return stralloc("");
- }
-
- /* Init start and end time */
-@@ -584,14 +584,14 @@
- /* Parse the start and end times we were given */
- if( (parsetime_error = parsetime( args[1], &start_tv))) {
- rrd_set_error( "start time: %s", parsetime_error);
-- return (char *) -1;
-+ return stralloc("");
- }
- if( (parsetime_error = parsetime( args[2], &end_tv))) {
- rrd_set_error( "end time: %s", parsetime_error);
-- return (char *) -1;
-+ return stralloc("");
- }
- if( proc_start_end( &start_tv, &end_tv, &start_tmp, &end_tmp) == -1) {
-- return (char *) -1;
-+ return stralloc("");
- }
-
- /* Do we do the start or end */
-@@ -603,7 +603,7 @@
- }
- else {
- rrd_set_error( "start/end not found in '%s'", args[0]);
-- return (char *) -1;
-+ return stralloc("");
- }
-
- /* now format it */
-@@ -612,7 +612,7 @@
- }
- else {
- rrd_set_error( "strftime failed");
-- return (char *) -1;
-+ return stralloc("");
- }
- }
-
diff --git a/database/rrdtool/rrdtool-1.2.19-setuppy.patch b/database/rrdtool/rrdtool-1.2.19-setuppy.patch
deleted file mode 100644
index da7c3dc07..000000000
--- a/database/rrdtool/rrdtool-1.2.19-setuppy.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-# --- SDE-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-#
-# Filename: package/.../rrdtool/rrdtool-1.2.19-setuppy.patch
-# Copyright (C) 2007 The OpenSDE Project
-#
-# More information can be found in the files COPYING and README.
-#
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
-# of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-# --- SDE-COPYRIGHT-NOTE-END ---
-
-use setup.py for python install and build work instad of trying todo
-it on our own
-
---- /dev/null 2007-03-06 16:53:58.620152249 +0200
-+++ ./bindings/python/setup.py 2007-03-08 14:42:01.000000000 +0200
-@@ -0,0 +1,56 @@
-+#! /usr/bin/env python
-+#
-+# setup.py
-+#
-+# py-rrdtool distutil setup
-+#
-+# Author : Hye-Shik Chang
-+# Date : $Date: 2003/02/14 02:38:16 $
-+# Created : 24 May 2002
-+#
-+# $Revision: 1.7 $
-+#
-+# ==========================================================================
-+# This file is part of py-rrdtool.
-+#
-+# py-rrdtool is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU Lesser General Public License as published
-+# by the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# py-rrdtool 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 Lesser General Public License for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public License
-+# along with Foobar; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+#
-+
-+from distutils.core import setup, Extension
-+import sys, os
-+
-+RRDBASE = os.environ.get('LOCALBASE', '../../src')
-+library_dir = os.environ.get('LIBDIR', os.path.join(RRDBASE, 'lib'))
-+include_dir = os.environ.get('INCDIR', RRDBASE)
-+
-+setup(name = "py-rrdtool",
-+ version = "0.2.1",
-+ description = "Python Interface to RRDTool",
-+ author = "Hye-Shik Chang",
-+ author_email = "perky@fallin.lv",
-+ license = "LGPL",
-+ url = "http://oss.oetiker.ch/rrdtool",
-+ #packages = ['rrdtool'],
-+ ext_modules = [
-+ Extension(
-+ "rrdtoolmodule",
-+ ["rrdtoolmodule.c"],
-+ libraries=['rrd'],
-+ runtime_library_dirs=[library_dir],
-+ library_dirs=[library_dir],
-+ include_dirs=[include_dir],
-+ )
-+ ]
-+)
---- ./bindings/python/Makefile.am (Revision 990)
-+++ ./bindings/python/Makefile.am (Revision 993)
-@@ -1,12 +0,0 @@
--AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src @PYTHON_INCLUDES@
--
--pyexec_PROGRAMS = rrdtoolmodule.so
--
--rrdtoolmodule_so_LDADD = $(top_builddir)/src/librrd.la
--rrdtoolmodule_so_SOURCES = rrdtoolmodule.c
--
--noinst_HEADERS = rrd_extra.h
--
--clean-local:
-- rm -rf build
--
---- ./bindings/Makefile.am (Revision 990)
-+++ ./bindings/Makefile.am (Revision 993)
-@@ -1,3 +1,5 @@
-+.PHONY: python ruby
-+
- if BUILD_TCL
- SUB_tcl = tcl
- endif
-@@ -2,16 +4,13 @@
-
--if BUILD_PYTHON
--SUB_python = python
--endif
-+SUBDIRS = $(SUB_tcl)
-
--SUBDIRS = $(SUB_tcl) $(SUB_python)
--
- # the following files are not mentioned in any other Makefile
- EXTRA_DIST = perl-piped/MANIFEST perl-piped/README perl-piped/Makefile.PL perl-piped/RRDp.pm perl-piped/t/base.t \
-- perl-shared/ntmake.pl perl-shared/MANIFEST perl-shared/README perl-shared/Makefile.PL perl-shared/RRDs.pm perl-shared/RRDs.xs perl-shared/t/base.t \
-- ruby/CHANGES ruby/README ruby/extconf.rb ruby/main.c ruby/test.rb
-+ perl-shared/ntmake.pl perl-shared/MANIFEST perl-shared/README perl-shared/Makefile.PL perl-shared/RRDs.pm perl-shared/RRDs.xs perl-shared/t/base.t \
-+ ruby/CHANGES ruby/README ruby/extconf.rb ruby/main.c ruby/test.rb \
-+ python/ACKNOWLEDGEMENT python/AUTHORS python/COPYING python/README python/rrd_extra.h python/rrdtoolmodule.c python/setup.py
-
-
- # add the following to the all target
--all-local: @COMP_PERL@ @COMP_RUBY@
-+all-local: @COMP_PERL@ @COMP_RUBY@ @COMP_PYTHON@
-
-@@ -21,11 +20,16 @@
- test -f perl-piped/Makefile && cd perl-piped && $(MAKE) install || true
- test -f perl-shared/Makefile && cd perl-shared && $(MAKE) install || true
- test -f ruby/Makefile && cd ruby && $(MAKE) EPREFIX=$(exec_prefix) $(RUBY_MAKE_OPTIONS) install || true
-+ test -d python/build && cd python && rm -rf build && env LIBDIR=$(libdir) $(PYTHON) setup.py install --prefix=$(prefix) --exec-prefix=$(exec_prefix) || true
-
- # rules for buildung the ruby module
- ruby:
- cd ruby && $(RUBY) extconf.rb && $(MAKE) EPREFIX=$(exec_prefix) $(RUBY_MAKE_OPTIONS)
-
-+# rules for buildung the pyton module
-+python:
-+ cd python && env LIBDIR=../../src/.libs $(PYTHON) setup.py build
-+
- # rules for building the perl module
- perl_piped: perl-piped/Makefile
- cd perl-piped && $(MAKE)
-@@ -46,5 +50,5 @@
- test -f perl-shared/Makefile && cd perl-shared && $(MAKE) clean || true
- test -f perl-shared/Makefile && rm -f perl-shared/Makefile || true
- test -f ruby/Makefile && cd ruby && $(MAKE) clean && rm Makefile || true
--
-+ test -d python/build && cd python && rm -rf build || true
- ##END##
---- ./configure.ac (Revision 990)
-+++ ./configure.ac (Revision 993)
-@@ -504,6 +504,7 @@
-
- fi
-
-+
- AC_MSG_CHECKING(Ruby Modules to build)
- AC_MSG_RESULT(${COMP_RUBY:-No Ruby Modules will be built})
-
-@@ -583,8 +584,14 @@
- AM_CHECK_PYTHON_HEADERS(,[enable_python=no;AC_MSG_WARN(could not find Python headers)])
- fi
-
--AM_CONDITIONAL(BUILD_PYTHON,[test "$enable_python" = "yes"])
-+if test x$enable_python = xno; then
-+ COMP_PYTHON=
-+else
-+ COMP_PYTHON="python"
-+fi
-
-+AC_SUBST(COMP_PYTHON)
-+
- dnl Check for nroff
- AC_PATH_PROGS(NROFF, gnroff nroff)
- AC_PATH_PROGS(TROFF, groff troff)
---- ./Makefile.am (Revision 990)
-+++ ./Makefile.am (Revision 993)
-@@ -45,6 +45,6 @@
- cd bindings/tcl && $(MAKE) tcl-install
-
- site-python-install: all
-- cd bindings/python && $(MAKE) python-install
-+ cd bindings/python && $(PYTHON) setup.py install
-
- ##END##
---- ./configure.ac (Revision 994)
-+++ ./configure.ac (Revision 995)
-@@ -616,7 +616,6 @@
- AC_CONFIG_FILES([bindings/Makefile])
- AC_CONFIG_FILES([bindings/tcl/Makefile])
- AC_CONFIG_FILES([bindings/tcl/ifOctets.tcl])
--AC_CONFIG_FILES([bindings/python/Makefile])
- AC_CONFIG_FILES([Makefile])
-
- AC_CONFIG_COMMANDS([default],[[ chmod +x examples/*.pl]],[[]])
diff --git a/database/rrdtool/rrdtool.conf b/database/rrdtool/rrdtool.conf
index 4de36ee1c..d422f4f41 100644
--- a/database/rrdtool/rrdtool.conf
+++ b/database/rrdtool/rrdtool.conf
@@ -16,7 +16,7 @@
# we have to run auto*crap because we patch .am and .ac files
# for rrdtool-1.2.19
-hook_add preconf 5 "aclocal && automake --add-missing ; autoconf"
+# hook_add preconf 5 "aclocal && automake --add-missing ; autoconf"
var_append extraconfopt " " "--enable-shared"
@@ -33,3 +33,5 @@ else
var_append extraconfopt ' ' "--disable-perl"
fi
+# ruby support is broken right now (2007-05-13)
+var_append extraconfopt ' ' "--disable-ruby"
diff --git a/database/rrdtool/rrdtool.desc b/database/rrdtool/rrdtool.desc
index a53f12a28..4914156dc 100644
--- a/database/rrdtool/rrdtool.desc
+++ b/database/rrdtool/rrdtool.desc
@@ -35,7 +35,7 @@
[L] GPL
[S] Stable
-[V] 1.2.19
+[V] 1.2.23
[P] X -----5---9 125.000
-[D] 3686089427 rrdtool-1.2.19.tar.gz http://oss.oetiker.ch/rrdtool/pub/
+[D] 2708609138 rrdtool-1.2.23.tar.gz http://oss.oetiker.ch/rrdtool/pub/