[csw-devel] SF.net SVN: gar:[2866] csw/mgar/pkg/cvsps/trunk

dmichelsen at users.sourceforge.net dmichelsen at users.sourceforge.net
Tue Jan 20 08:34:03 CET 2009


Revision: 2866
          http://gar.svn.sourceforge.net/gar/?rev=2866&view=rev
Author:   dmichelsen
Date:     2009-01-20 07:34:03 +0000 (Tue, 20 Jan 2009)

Log Message:
-----------
cvsps: Add depends and install

Modified Paths:
--------------
    csw/mgar/pkg/cvsps/trunk/Makefile
    csw/mgar/pkg/cvsps/trunk/checksums
    csw/mgar/pkg/cvsps/trunk/files/patch-extralibs.diff

Modified: csw/mgar/pkg/cvsps/trunk/Makefile
===================================================================
--- csw/mgar/pkg/cvsps/trunk/Makefile	2009-01-19 22:54:31 UTC (rev 2865)
+++ csw/mgar/pkg/cvsps/trunk/Makefile	2009-01-20 07:34:03 UTC (rev 2866)
@@ -13,6 +13,8 @@
 
 PATCHFILES = patch-extralibs.diff
 
+REQUIRED_PKGS = CSWzlib
+
 # We define upstream file regex so we can be notifed of new upstream software release
 UFILES_REGEX = -(\d+(?:\.\d+)*).tar.gz
 
@@ -22,4 +24,14 @@
 BUILD_ARGS = CC="$(CC)" CFLAGS="-I. -DVERSION=\"$(GARVERSION)\" $(CFLAGS)" prefix="$(prefix)"
 BUILD_ARGS += _EXTRA_LIBS="-lnsl -lsocket"
 
+TEST_SCRIPTS =
+
+INSTALL_SCRIPTS = custom
+
 include gar/category.mk
+
+install-custom:
+	ginstall -d $(DESTDIR)$(bindir)
+	ginstall -d $(DESTDIR)$(mandir)/man1
+	ginstall -m 755 $(WORKSRC)/cvsps $(DESTDIR)$(bindir)/
+	ginstall -m 644 $(WORKSRC)/cvsps.1 $(DESTDIR)$(mandir)/man1/

Modified: csw/mgar/pkg/cvsps/trunk/checksums
===================================================================
--- csw/mgar/pkg/cvsps/trunk/checksums	2009-01-19 22:54:31 UTC (rev 2865)
+++ csw/mgar/pkg/cvsps/trunk/checksums	2009-01-20 07:34:03 UTC (rev 2866)
@@ -1,3 +1,3 @@
 bde2110ed9f5d14de8f8cb04e9d596fe  download/cvsps-2.1.tar.gz
 cb54db01900320e1bf80da166c60c2f8  download/CSWcvsps.gspec
-d337546e3cf1195cc7b98ed2b5dd06d1  download/patch-extralibs.diff
+fdfe30f050b93e6db82c665d830216e3  download/patch-extralibs.diff

Modified: csw/mgar/pkg/cvsps/trunk/files/patch-extralibs.diff
===================================================================
--- csw/mgar/pkg/cvsps/trunk/files/patch-extralibs.diff	2009-01-19 22:54:31 UTC (rev 2865)
+++ csw/mgar/pkg/cvsps/trunk/files/patch-extralibs.diff	2009-01-20 07:34:03 UTC (rev 2866)
@@ -1,7 +1,16 @@
 diff -Naur cvsps-2.1.orig/Makefile cvsps-2.1.patched/Makefile
 --- cvsps-2.1.orig/Makefile	2005-05-26 05:39:40.000000000 +0200
-+++ cvsps-2.1.patched/Makefile	2009-01-19 14:40:16.228045093 +0100
-@@ -21,7 +21,7 @@
++++ cvsps-2.1.patched/Makefile	2009-01-19 16:27:48.937444465 +0100
+@@ -16,12 +16,15 @@
+ 	stats.o\
+ 	cap.o\
+ 	cvs_direct.o\
+-	list_sort.o
++	list_sort.o\
++	strsep.o\
++	setenv.o\
++	unsetenv.o
+ 
  all: cvsps
  
  cvsps: $(OBJS)
@@ -10,26 +19,493 @@
  
  install:
  	[ -d $(prefix)/bin ] || mkdir -p $(prefix)/bin
-diff -Naur cvsps-2.1.orig/util.c cvsps-2.1.patched/util.c
---- cvsps-2.1.orig/util.c	2005-05-26 05:39:40.000000000 +0200
-+++ cvsps-2.1.patched/util.c	2009-01-19 14:46:43.782069081 +0100
-@@ -154,16 +154,18 @@
-     char * old_tz = getenv("TZ");
-     time_t ret;
- 
--    setenv("TZ", "UTC", 1);
-+    /* setenv("TZ", "UTC", 1); */
- 
-     tzset();
- 	    
-     ret = mktime(tm);
- 
-+    /*
-     if (old_tz)
- 	setenv("TZ", old_tz, 1);
-     else 
- 	unsetenv("TZ");
-+    */
- 
-     tzset();
- 
+diff -Naur cvsps-2.1.orig/setenv.c cvsps-2.1.patched/setenv.c
+--- cvsps-2.1.orig/setenv.c	1970-01-01 01:00:00.000000000 +0100
++++ cvsps-2.1.patched/setenv.c	2009-01-19 16:27:26.465469216 +0100
+@@ -0,0 +1,330 @@
++/* Copyright (C) 1992,1995-1999,2000-2003,2005-2008 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 3 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#if !_LIBC
++# include <config.h>
++#endif
++#include <alloca.h>
++
++/* Specification.  */
++#include <stdlib.h>
++
++#include <errno.h>
++#ifndef __set_errno
++# define __set_errno(ev) ((errno) = (ev))
++#endif
++
++#include <string.h>
++#if _LIBC || HAVE_UNISTD_H
++# include <unistd.h>
++#endif
++
++#if _LIBC || !HAVE_SETENV
++
++#if !_LIBC
++# include "malloca.h"
++#endif
++
++#if !_LIBC
++# define __environ	environ
++#endif
++
++#if _LIBC
++/* This lock protects against simultaneous modifications of `environ'.  */
++# include <bits/libc-lock.h>
++__libc_lock_define_initialized (static, envlock)
++# define LOCK	__libc_lock_lock (envlock)
++# define UNLOCK	__libc_lock_unlock (envlock)
++#else
++# define LOCK
++# define UNLOCK
++#endif
++
++/* In the GNU C library we must keep the namespace clean.  */
++#ifdef _LIBC
++# define setenv __setenv
++# define clearenv __clearenv
++# define tfind __tfind
++# define tsearch __tsearch
++#endif
++
++/* In the GNU C library implementation we try to be more clever and
++   allow arbitrarily many changes of the environment given that the used
++   values are from a small set.  Outside glibc this will eat up all
++   memory after a while.  */
++#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \
++		      && defined __GNUC__)
++# define USE_TSEARCH	1
++# include <search.h>
++typedef int (*compar_fn_t) (const void *, const void *);
++
++/* This is a pointer to the root of the search tree with the known
++   values.  */
++static void *known_values;
++
++# define KNOWN_VALUE(Str) \
++  ({									      \
++    void *value = tfind (Str, &known_values, (compar_fn_t) strcmp);	      \
++    value != NULL ? *(char **) value : NULL;				      \
++  })
++# define STORE_VALUE(Str) \
++  tsearch (Str, &known_values, (compar_fn_t) strcmp)
++
++#else
++# undef USE_TSEARCH
++
++# define KNOWN_VALUE(Str) NULL
++# define STORE_VALUE(Str) do { } while (0)
++
++#endif
++
++
++/* If this variable is not a null pointer we allocated the current
++   environment.  */
++static char **last_environ;
++
++
++/* This function is used by `setenv' and `putenv'.  The difference between
++   the two functions is that for the former must create a new string which
++   is then placed in the environment, while the argument of `putenv'
++   must be used directly.  This is all complicated by the fact that we try
++   to reuse values once generated for a `setenv' call since we can never
++   free the strings.  */
++int
++__add_to_environ (const char *name, const char *value, const char *combined,
++		  int replace)
++{
++  register char **ep;
++  register size_t size;
++  const size_t namelen = strlen (name);
++  const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
++
++  LOCK;
++
++  /* We have to get the pointer now that we have the lock and not earlier
++     since another thread might have created a new environment.  */
++  ep = __environ;
++
++  size = 0;
++  if (ep != NULL)
++    {
++      for (; *ep != NULL; ++ep)
++	if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
++	  break;
++	else
++	  ++size;
++    }
++
++  if (ep == NULL || *ep == NULL)
++    {
++      char **new_environ;
++#ifdef USE_TSEARCH
++      char *new_value;
++#endif
++
++      /* We allocated this space; we can extend it.  */
++      new_environ =
++	(char **) (last_environ == NULL
++		   ? malloc ((size + 2) * sizeof (char *))
++		   : realloc (last_environ, (size + 2) * sizeof (char *)));
++      if (new_environ == NULL)
++	{
++	  UNLOCK;
++	  return -1;
++	}
++
++      /* If the whole entry is given add it.  */
++      if (combined != NULL)
++	/* We must not add the string to the search tree since it belongs
++	   to the user.  */
++	new_environ[size] = (char *) combined;
++      else
++	{
++	  /* See whether the value is already known.  */
++#ifdef USE_TSEARCH
++# ifdef _LIBC
++	  new_value = (char *) alloca (namelen + 1 + vallen);
++	  __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
++		     value, vallen);
++# else
++	  new_value = (char *) malloca (namelen + 1 + vallen);
++	  if (new_value == NULL)
++	    {
++	      __set_errno (ENOMEM);
++	      UNLOCK;
++	      return -1;
++	    }
++	  memcpy (new_value, name, namelen);
++	  new_value[namelen] = '=';
++	  memcpy (&new_value[namelen + 1], value, vallen);
++# endif
++
++	  new_environ[size] = KNOWN_VALUE (new_value);
++	  if (new_environ[size] == NULL)
++#endif
++	    {
++	      new_environ[size] = (char *) malloc (namelen + 1 + vallen);
++	      if (new_environ[size] == NULL)
++		{
++#if defined USE_TSEARCH && !defined _LIBC
++		  freea (new_value);
++#endif
++		  __set_errno (ENOMEM);
++		  UNLOCK;
++		  return -1;
++		}
++
++#ifdef USE_TSEARCH
++	      memcpy (new_environ[size], new_value, namelen + 1 + vallen);
++#else
++	      memcpy (new_environ[size], name, namelen);
++	      new_environ[size][namelen] = '=';
++	      memcpy (&new_environ[size][namelen + 1], value, vallen);
++#endif
++	      /* And save the value now.  We cannot do this when we remove
++		 the string since then we cannot decide whether it is a
++		 user string or not.  */
++	      STORE_VALUE (new_environ[size]);
++	    }
++#if defined USE_TSEARCH && !defined _LIBC
++	  freea (new_value);
++#endif
++	}
++
++      if (__environ != last_environ)
++	memcpy ((char *) new_environ, (char *) __environ,
++		size * sizeof (char *));
++
++      new_environ[size + 1] = NULL;
++
++      last_environ = __environ = new_environ;
++    }
++  else if (replace)
++    {
++      char *np;
++
++      /* Use the user string if given.  */
++      if (combined != NULL)
++	np = (char *) combined;
++      else
++	{
++#ifdef USE_TSEARCH
++	  char *new_value;
++# ifdef _LIBC
++	  new_value = alloca (namelen + 1 + vallen);
++	  __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
++		     value, vallen);
++# else
++	  new_value = malloca (namelen + 1 + vallen);
++	  if (new_value == NULL)
++	    {
++	      __set_errno (ENOMEM);
++	      UNLOCK;
++	      return -1;
++	    }
++	  memcpy (new_value, name, namelen);
++	  new_value[namelen] = '=';
++	  memcpy (&new_value[namelen + 1], value, vallen);
++# endif
++
++	  np = KNOWN_VALUE (new_value);
++	  if (np == NULL)
++#endif
++	    {
++	      np = malloc (namelen + 1 + vallen);
++	      if (np == NULL)
++		{
++#if defined USE_TSEARCH && !defined _LIBC
++		  freea (new_value);
++#endif
++		  __set_errno (ENOMEM);
++		  UNLOCK;
++		  return -1;
++		}
++
++#ifdef USE_TSEARCH
++	      memcpy (np, new_value, namelen + 1 + vallen);
++#else
++	      memcpy (np, name, namelen);
++	      np[namelen] = '=';
++	      memcpy (&np[namelen + 1], value, vallen);
++#endif
++	      /* And remember the value.  */
++	      STORE_VALUE (np);
++	    }
++#if defined USE_TSEARCH && !defined _LIBC
++	  freea (new_value);
++#endif
++	}
++
++      *ep = np;
++    }
++
++  UNLOCK;
++
++  return 0;
++}
++
++int
++setenv (const char *name, const char *value, int replace)
++{
++  return __add_to_environ (name, value, NULL, replace);
++}
++
++/* The `clearenv' was planned to be added to POSIX.1 but probably
++   never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
++   for Fortran 77) requires this function.  */
++int
++clearenv (void)
++{
++  LOCK;
++
++  if (__environ == last_environ && __environ != NULL)
++    {
++      /* We allocated this environment so we can free it.  */
++      free (__environ);
++      last_environ = NULL;
++    }
++
++  /* Clear the environment pointer removes the whole environment.  */
++  __environ = NULL;
++
++  UNLOCK;
++
++  return 0;
++}
++
++#ifdef _LIBC
++static void
++free_mem (void)
++{
++  /* Remove all traces.  */
++  clearenv ();
++
++  /* Now remove the search tree.  */
++  __tdestroy (known_values, free);
++  known_values = NULL;
++}
++text_set_element (__libc_subfreeres, free_mem);
++
++
++# undef setenv
++# undef clearenv
++weak_alias (__setenv, setenv)
++weak_alias (__clearenv, clearenv)
++#endif
++
++#endif /* _LIBC || !HAVE_SETENV */
+diff -Naur cvsps-2.1.orig/strsep.c cvsps-2.1.patched/strsep.c
+--- cvsps-2.1.orig/strsep.c	1970-01-01 01:00:00.000000000 +0100
++++ cvsps-2.1.patched/strsep.c	2009-01-19 16:12:07.783986518 +0100
+@@ -0,0 +1,58 @@
++/* Copyright (C) 2004, 2007 Free Software Foundation, Inc.
++
++   Written by Yoann Vandoorselaere <yoann at prelude-ids.org>.
++
++   This program is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with this program; if not, write to the Free Software Foundation,
++   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
++
++#ifdef HAVE_CONFIG_H
++# include <config.h>
++#endif
++
++/* Specification.  */
++#include <string.h>
++
++char *
++strsep (char **stringp, const char *delim)
++{
++  char *start = *stringp;
++  char *ptr;
++
++  if (start == NULL)
++    return NULL;
++
++  /* Optimize the case of no delimiters.  */
++  if (delim[0] == '\0')
++    {
++      *stringp = NULL;
++      return start;
++    }
++
++  /* Optimize the case of one delimiter.  */
++  if (delim[1] == '\0')
++    ptr = strchr (start, delim[0]);
++  else
++    /* The general case.  */
++    ptr = strpbrk (start, delim);
++  if (ptr == NULL)
++    {
++      *stringp = NULL;
++      return start;
++    }
++
++  *ptr = '\0';
++  *stringp = ptr + 1;
++
++  return start;
++}
+diff -Naur cvsps-2.1.orig/unsetenv.c cvsps-2.1.patched/unsetenv.c
+--- cvsps-2.1.orig/unsetenv.c	1970-01-01 01:00:00.000000000 +0100
++++ cvsps-2.1.patched/unsetenv.c	2009-01-19 16:27:33.208656225 +0100
+@@ -0,0 +1,90 @@
++/* Copyright (C) 1992,1995-1999,2000-2002,2005-2008 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 3 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++/* Specification.  */
++#include <stdlib.h>
++
++#include <errno.h>
++#if !_LIBC
++# define __set_errno(ev) ((errno) = (ev))
++#endif
++
++#include <string.h>
++#include <unistd.h>
++
++#if !_LIBC
++# define __environ	environ
++#endif
++
++#if _LIBC
++/* This lock protects against simultaneous modifications of `environ'.  */
++# include <bits/libc-lock.h>
++__libc_lock_define_initialized (static, envlock)
++# define LOCK	__libc_lock_lock (envlock)
++# define UNLOCK	__libc_lock_unlock (envlock)
++#else
++# define LOCK
++# define UNLOCK
++#endif
++
++/* In the GNU C library we must keep the namespace clean.  */
++#ifdef _LIBC
++# define unsetenv __unsetenv
++#endif
++
++
++int
++unsetenv (const char *name)
++{
++  size_t len;
++  char **ep;
++
++  if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
++    {
++      __set_errno (EINVAL);
++      return -1;
++    }
++
++  len = strlen (name);
++
++  LOCK;
++
++  ep = __environ;
++  while (*ep != NULL)
++    if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
++      {
++	/* Found it.  Remove this pointer by moving later ones back.  */
++	char **dp = ep;
++
++	do
++	  dp[0] = dp[1];
++	while (*dp++);
++	/* Continue the loop in case NAME appears again.  */
++      }
++    else
++      ++ep;
++
++  UNLOCK;
++
++  return 0;
++}
++
++#ifdef _LIBC
++# undef unsetenv
++weak_alias (__unsetenv, unsetenv)
++#endif


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list