aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorehaupt <ehaupt@FreeBSD.org>2011-10-04 17:03:11 +0800
committerehaupt <ehaupt@FreeBSD.org>2011-10-04 17:03:11 +0800
commit38461123557019542c6fdff567a59c929e98b977 (patch)
treee26c87823c5dc98ca55f576ae693eb1bc251bce4
parent1d26b8d0231dd05cdd24ba704169d9a44b09875f (diff)
downloadfreebsd-ports-gnome-38461123557019542c6fdff567a59c929e98b977.tar.gz
freebsd-ports-gnome-38461123557019542c6fdff567a59c929e98b977.tar.zst
freebsd-ports-gnome-38461123557019542c6fdff567a59c929e98b977.zip
Update to 1.24
-rw-r--r--archivers/tardy/Makefile17
-rw-r--r--archivers/tardy/distinfo4
-rw-r--r--archivers/tardy/files/patch-libtardy__rcstring__list__sort_vers.cc11
-rw-r--r--archivers/tardy/files/patch-libtardy__rcstring__list__strverscmp.h160
4 files changed, 186 insertions, 6 deletions
diff --git a/archivers/tardy/Makefile b/archivers/tardy/Makefile
index ef75b39f39d2..7238752326de 100644
--- a/archivers/tardy/Makefile
+++ b/archivers/tardy/Makefile
@@ -6,17 +6,26 @@
#
PORTNAME= tardy
-PORTVERSION= 1.20
+PORTVERSION= 1.24
CATEGORIES= archivers
-MASTER_SITES= SF
+MASTER_SITES= SF/${PORTNAME}/files/${PORTVERSION}/ CRITICAL
MAINTAINER= ehaupt@FreeBSD.org
COMMENT= Manipulate the file headers in tar archive files in various ways
+LICENSE= GPLv3
+
+BUILD_DEPENDS= ${LOCALBASE}/include/boost/shared_ptr.hpp:${PORTSDIR}/devel/boost-libs \
+ ${LOCALBASE}/include/libiberty/libiberty.h:${PORTSDIR}/devel/gnulibiberty
+LIB_DEPENDS= explain.45:${PORTSDIR}/devel/libexplain
+
GNU_CONFIGURE= yes
+
MAKE_JOBS_UNSAFE= yes
-LICENSE= GPLv3
+CFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+
MAN1= tardy.1
PLIST_FILES= bin/tardy
@@ -28,6 +37,6 @@ post-patch:
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/bin/${PORTNAME} ${PREFIX}/bin
- ${INSTALL_MAN} ${WRKSRC}/man1/${MAN1} ${MANPREFIX}/man/man1
+ ${INSTALL_MAN} ${WRKSRC}/man/man1/${MAN1} ${MANPREFIX}/man/man1
.include <bsd.port.mk>
diff --git a/archivers/tardy/distinfo b/archivers/tardy/distinfo
index 736d51e67de5..926c8e6a7beb 100644
--- a/archivers/tardy/distinfo
+++ b/archivers/tardy/distinfo
@@ -1,2 +1,2 @@
-SHA256 (tardy-1.20.tar.gz) = d5d4b0616f7b3dc2f126d22f0d940e54b8a93c4078a97684f1dde0aba76477ea
-SIZE (tardy-1.20.tar.gz) = 1720019
+SHA256 (tardy-1.24.tar.gz) = b0eb792f33284078ee841e2747bfa48c261a8d1ede5b842a61dbf82a6f3c0cd9
+SIZE (tardy-1.24.tar.gz) = 1831193
diff --git a/archivers/tardy/files/patch-libtardy__rcstring__list__sort_vers.cc b/archivers/tardy/files/patch-libtardy__rcstring__list__sort_vers.cc
new file mode 100644
index 000000000000..3abd005e1a3c
--- /dev/null
+++ b/archivers/tardy/files/patch-libtardy__rcstring__list__sort_vers.cc
@@ -0,0 +1,11 @@
+--- ./libtardy/rcstring/list/sort_vers.cc.orig 2011-10-03 14:12:58.000000000 +0200
++++ ./libtardy/rcstring/list/sort_vers.cc 2011-10-04 10:09:13.000000000 +0200
+@@ -21,6 +21,8 @@
+
+ #include <libtardy/rcstring/list.h>
+
++#include "strverscmp.h"
++
+
+ static int
+ cmp(const void *va, const void *vb)
diff --git a/archivers/tardy/files/patch-libtardy__rcstring__list__strverscmp.h b/archivers/tardy/files/patch-libtardy__rcstring__list__strverscmp.h
new file mode 100644
index 000000000000..4e15b8b6cd56
--- /dev/null
+++ b/archivers/tardy/files/patch-libtardy__rcstring__list__strverscmp.h
@@ -0,0 +1,160 @@
+--- ./libtardy/rcstring/list/strverscmp.h.orig 2011-10-04 10:09:13.000000000 +0200
++++ ./libtardy/rcstring/list/strverscmp.h 2011-10-04 10:11:40.000000000 +0200
+@@ -0,0 +1,157 @@
++/* Compare strings while treating digits characters numerically.
++ Copyright (C) 1997, 2002, 2005 Free Software Foundation, Inc.
++ This file is part of the libiberty library.
++ Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
++
++ Libiberty 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.1 of the License, or (at your option) any later version.
++
++ Libiberty 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 the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++ 02110-1301 USA. */
++
++#include <libiberty/libiberty.h>
++#include <libiberty/safe-ctype.h>
++
++/*
++@deftypefun int strverscmp (const char *@var{s1}, const char *@var{s2})
++The @code{strverscmp} function compares the string @var{s1} against
++@var{s2}, considering them as holding indices/version numbers. Return
++value follows the same conventions as found in the @code{strverscmp}
++function. In fact, if @var{s1} and @var{s2} contain no digits,
++@code{strverscmp} behaves like @code{strcmp}.
++
++Basically, we compare strings normally (character by character), until
++we find a digit in each string - then we enter a special comparison
++mode, where each sequence of digits is taken as a whole. If we reach the
++end of these two parts without noticing a difference, we return to the
++standard comparison mode. There are two types of numeric parts:
++"integral" and "fractional" (those begin with a '0'). The types
++of the numeric parts affect the way we sort them:
++
++@itemize @bullet
++@item
++integral/integral: we compare values as you would expect.
++
++@item
++fractional/integral: the fractional part is less than the integral one.
++Again, no surprise.
++
++@item
++fractional/fractional: the things become a bit more complex.
++If the common prefix contains only leading zeroes, the longest part is less
++than the other one; else the comparison behaves normally.
++@end itemize
++
++@smallexample
++strverscmp ("no digit", "no digit")
++ @result{} 0 // @r{same behavior as strcmp.}
++strverscmp ("item#99", "item#100")
++ @result{} <0 // @r{same prefix, but 99 < 100.}
++strverscmp ("alpha1", "alpha001")
++ @result{} >0 // @r{fractional part inferior to integral one.}
++strverscmp ("part1_f012", "part1_f01")
++ @result{} >0 // @r{two fractional parts.}
++strverscmp ("foo.009", "foo.0")
++ @result{} <0 // @r{idem, but with leading zeroes only.}
++@end smallexample
++
++This function is especially useful when dealing with filename sorting,
++because filenames frequently hold indices/version numbers.
++@end deftypefun
++
++*/
++
++/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
++ fractional parts, S_Z: idem but with leading Zeroes only */
++#define S_N 0x0
++#define S_I 0x4
++#define S_F 0x8
++#define S_Z 0xC
++
++/* result_type: CMP: return diff; LEN: compare using len_diff/diff */
++#define CMP 2
++#define LEN 3
++
++
++/* Compare S1 and S2 as strings holding indices/version numbers,
++ returning less than, equal to or greater than zero if S1 is less than,
++ equal to or greater than S2 (for more info, see the Glibc texinfo doc). */
++
++int
++strverscmp (const char *s1, const char *s2)
++{
++ const unsigned char *p1 = (const unsigned char *) s1;
++ const unsigned char *p2 = (const unsigned char *) s2;
++ unsigned char c1, c2;
++ int state;
++ int diff;
++
++ /* Symbol(s) 0 [1-9] others (padding)
++ Transition (10) 0 (01) d (00) x (11) - */
++ static const unsigned int next_state[] =
++ {
++ /* state x d 0 - */
++ /* S_N */ S_N, S_I, S_Z, S_N,
++ /* S_I */ S_N, S_I, S_I, S_I,
++ /* S_F */ S_N, S_F, S_F, S_F,
++ /* S_Z */ S_N, S_F, S_Z, S_Z
++ };
++
++ static const int result_type[] =
++ {
++ /* state x/x x/d x/0 x/- d/x d/d d/0 d/-
++ 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */
++
++ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
++ /* S_I */ CMP, -1, -1, CMP, +1, LEN, LEN, CMP,
++ +1, LEN, LEN, CMP, CMP, CMP, CMP, CMP,
++ /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
++ /* S_Z */ CMP, +1, +1, CMP, -1, CMP, CMP, CMP,
++ -1, CMP, CMP, CMP
++ };
++
++ if (p1 == p2)
++ return 0;
++
++ c1 = *p1++;
++ c2 = *p2++;
++ /* Hint: '0' is a digit too. */
++ state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0));
++
++ while ((diff = c1 - c2) == 0 && c1 != '\0')
++ {
++ state = next_state[state];
++ c1 = *p1++;
++ c2 = *p2++;
++ state |= (c1 == '0') + (ISDIGIT (c1) != 0);
++ }
++
++ state = result_type[state << 2 | (((c2 == '0') + (ISDIGIT (c2) != 0)))];
++
++ switch (state)
++ {
++ case CMP:
++ return diff;
++
++ case LEN:
++ while (ISDIGIT (*p1++))
++ if (!ISDIGIT (*p2++))
++ return 1;
++
++ return ISDIGIT (*p2) ? -1 : diff;
++
++ default:
++ return state;
++ }
++}