Rafael Sadowski <raf...@sizeofvoid.org> writes: > Hi @ports, > > I found this port because the HOMEPAGE is unreachable. The diff fix > MASTER_SITES and update to last stable release. > > Okay? Comments?
Comments and updated diff below, > Kind regards, > > Rafael > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/archivers/libtar/Makefile,v > retrieving revision 1.13 > diff -u -p -u -p -r1.13 Makefile > --- Makefile 24 Nov 2015 09:11:02 -0000 1.13 > +++ Makefile 25 Sep 2016 20:08:24 -0000 > @@ -2,25 +2,39 @@ > > COMMENT= C library for manipulating tar files > > -DISTNAME= libtar-1.2.11 > -REVISION= 2 > +VERSION= 1.2.20 > +DISTNAME= libtar-${VERSION} > > -SHARED_LIBS= tar 0.0 # .1.2 > +SHARED_LIBS= tar 0.1 # .1.3 0.1 is right, but there is no .1.3 version-info upstream. > CATEGORIES= archivers devel > > -HOMEPAGE= http://www.feep.net/libtar/ > - > # BSD-like > PERMIT_PACKAGE_CDROM= Yes > > WANTLIB= c z > > -MASTER_SITES= https://distfiles.nl/ \ > - ftp://ftp.feep.net/pub/software/libtar/ > +DISTFILES= libtar-{libtar/archive/}v${VERSION}${EXTRACT_SUFX} > +MASTER_SITES= https://github.com/tklauser/ Instead of those, better use GH_* variables. However, I'm a bit unsure whether we want to use this repo and not http://repo.or.cz/w/libtar.git/ "This is a maintenance repo for the libtar project, temporarily run by Chris Frey until Mark Roth decides to pick up development again. No tarball releases will be done, but just grab the tagged sources from this repo. If you wish to contribute a patch, feel free to post to the libtar mailing list, where Chris Frey and Mark Roth hang out." Well, the mailing-list seems down down. The guy at github cloned the repo, the few modifications he added seem valuable but there aren't any additional tags compared to the repo.or.cz > + > +BUILD_DEPENDS= ${MODGNU_AUTOCONF_DEPENDS} \ > + ${MODGNU_AUTOMAKE_DEPENDS} > + > +USE_GMAKE= Yes > +CONFIGURE_STYLE= gnu > + > +MAKE_FLAGS= CC="${CC}" CFLAGS="${CFLAGS}" Not needed. > +CONFIGURE_ENV += CPPFLAGS="-I${LOCALBASE}/include" \ > + LDFLAGS="-L${LOCALBASE}/lib" Not needed. > +AUTOCONF_VERSION= 2.69 > +AUTOMAKE_VERSION= 1.11 > > -NO_TEST= Yes > +NO_TEST= Yes > > -CONFIGURE_STYLE=gnu > +pre-configure: > + cd ${WRKSRC} && ${SETENV} AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \ > + AUTOCONF_VERSION=${AUTOCONF_VERSION} autoreconf --force > --install Index: Makefile =================================================================== RCS file: /d/cvs/ports/archivers/libtar/Makefile,v retrieving revision 1.13 diff -u -p -r1.13 Makefile --- Makefile 24 Nov 2015 09:11:02 -0000 1.13 +++ Makefile 2 Nov 2016 01:14:08 -0000 @@ -2,25 +2,33 @@ COMMENT= C library for manipulating tar files -DISTNAME= libtar-1.2.11 -REVISION= 2 +GH_ACCOUNT= tklauser +GH_PROJECT= libtar +GH_TAGNAME= v1.2.20 -SHARED_LIBS= tar 0.0 # .1.2 +SHARED_LIBS= tar 0.1 # unknown CATEGORIES= archivers devel -HOMEPAGE= http://www.feep.net/libtar/ - # BSD-like PERMIT_PACKAGE_CDROM= Yes WANTLIB= c z -MASTER_SITES= https://distfiles.nl/ \ - ftp://ftp.feep.net/pub/software/libtar/ +BUILD_DEPENDS= ${MODGNU_AUTOCONF_DEPENDS} \ + ${MODGNU_AUTOMAKE_DEPENDS} \ + devel/libtool + +USE_GMAKE= Yes +CONFIGURE_STYLE= gnu + +AUTOCONF_VERSION= 2.69 +AUTOMAKE_VERSION= 1.11 -NO_TEST= Yes +NO_TEST= Yes -CONFIGURE_STYLE=gnu +pre-configure: + cd ${WRKSRC} && ${SETENV} AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \ + AUTOCONF_VERSION=${AUTOCONF_VERSION} autoreconf --force --install .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /d/cvs/ports/archivers/libtar/distinfo,v retrieving revision 1.2 diff -u -p -r1.2 distinfo --- distinfo 4 Apr 2013 16:03:55 -0000 1.2 +++ distinfo 2 Nov 2016 00:56:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (libtar-1.2.11.tar.gz) = Si7vtrcIj0HeVzVuUFnL8fkXUJtKgQ98YUYlo3joe7g= -SIZE (libtar-1.2.11.tar.gz) = 145354 +SHA256 (libtar-1.2.20.tar.gz) = MVL8Yc8DyC77+ZZFWW79rbopfqw+haUq4YmQKgcsmhY= +SIZE (libtar-1.2.20.tar.gz) = 63544 Index: patches/patch-lib_Makefile_in =================================================================== RCS file: patches/patch-lib_Makefile_in diff -N patches/patch-lib_Makefile_in --- patches/patch-lib_Makefile_in 10 Oct 2013 07:02:56 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,35 +0,0 @@ -$OpenBSD: patch-lib_Makefile_in,v 1.3 2013/10/10 07:02:56 jasper Exp $ - -Enable shared library, from pkgsrc. - ---- lib/Makefile.in.orig Sun Dec 15 19:02:30 2002 -+++ lib/Makefile.in Thu Oct 10 08:59:32 2013 -@@ -69,13 +69,15 @@ all: ${ALL} - .PHONY: clean distclean install - - libtar.a: ${LIBTAR_OBJS} ${LIBOBJS} -- ${AR} rc libtar.a ${LIBTAR_OBJS} ${LIBOBJS} -- ${RANLIB} libtar.a -+ ${LIBTOOL} --mode=link --tag=CC \ -+ ${CC} -o libtar.la ${LIBTAR_OBJS:.o=.lo} ${LIBOBJS:.o=.lo} \ -+ ${LDFLAGS} -rpath ${TRUEPREFIX}/lib -version-info 1:2 - - ${LIBTAR_OBJS}: ${LIBTAR_HDRS} - - .c.o: -- ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< -+ ${LIBTOOL} --mode=compile --tag=CC \ -+ ${CC} ${CFLAGS} ${CPPFLAGS} -c -o ${@:.o=.lo} $< -prefer-pic - - clean: - rm -f *~ *.o ${ALL} core -@@ -85,7 +87,8 @@ distclean: clean - - install: ${ALL} - ${MKDIR} ${DESTDIR}${libdir} -- ${INSTALL_DATA} libtar.a ${DESTDIR}${libdir} -+ ${LIBTOOL} --mode=install \ -+ ${INSTALL_DATA} libtar.la ${DESTDIR}${libdir} - ${MKDIR} ${DESTDIR}${includedir} - ${INSTALL_DATA} ${srcdir}/libtar.h ${DESTDIR}${includedir} - ${INSTALL_DATA} ../listhash/libtar_listhash.h ${DESTDIR}${includedir} Index: patches/patch-lib_block_c =================================================================== RCS file: patches/patch-lib_block_c diff -N patches/patch-lib_block_c --- patches/patch-lib_block_c 10 Oct 2013 07:16:28 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,85 +0,0 @@ -$OpenBSD: patch-lib_block_c,v 1.1 2013/10/10 07:16:28 jasper Exp $ - -Security fix for CVE-2013-4397 Integer overflow in libtar - -Patch from http://repo.or.cz/w/libtar.git/commit/45448e8bae671c2f7e80b860ae0fc0cedf2bdc04 - ---- lib/block.c.orig Tue Jan 7 02:40:59 2003 -+++ lib/block.c Thu Oct 10 08:59:51 2013 -@@ -90,8 +90,8 @@ th_read_internal(TAR *t) - int - th_read(TAR *t) - { -- int i, j; -- size_t sz; -+ int i; -+ size_t sz, j, blocks; - char *ptr; - - #ifdef DEBUG -@@ -118,21 +118,26 @@ th_read(TAR *t) - if (TH_ISLONGLINK(t)) - { - sz = th_get_size(t); -- j = (sz / T_BLOCKSIZE) + (sz % T_BLOCKSIZE ? 1 : 0); -+ blocks = (sz / T_BLOCKSIZE) + (sz % T_BLOCKSIZE ? 1 : 0); -+ if (blocks > ((size_t)-1 / T_BLOCKSIZE)) -+ { -+ errno = E2BIG; -+ return -1; -+ } - #ifdef DEBUG - printf(" th_read(): GNU long linkname detected " -- "(%ld bytes, %d blocks)\n", sz, j); -+ "(%ld bytes, %d blocks)\n", sz, blocks); - #endif -- t->th_buf.gnu_longlink = (char *)malloc(j * T_BLOCKSIZE); -+ t->th_buf.gnu_longlink = (char *)malloc(blocks * T_BLOCKSIZE); - if (t->th_buf.gnu_longlink == NULL) - return -1; - -- for (ptr = t->th_buf.gnu_longlink; j > 0; -- j--, ptr += T_BLOCKSIZE) -+ for (j = 0, ptr = t->th_buf.gnu_longlink; j < blocks; -+ j++, ptr += T_BLOCKSIZE) - { - #ifdef DEBUG - printf(" th_read(): reading long linkname " -- "(%d blocks left, ptr == %ld)\n", j, ptr); -+ "(%d blocks left, ptr == %ld)\n", blocks-j, ptr); - #endif - i = tar_block_read(t, ptr); - if (i != T_BLOCKSIZE) -@@ -163,21 +168,26 @@ th_read(TAR *t) - if (TH_ISLONGNAME(t)) - { - sz = th_get_size(t); -- j = (sz / T_BLOCKSIZE) + (sz % T_BLOCKSIZE ? 1 : 0); -+ blocks = (sz / T_BLOCKSIZE) + (sz % T_BLOCKSIZE ? 1 : 0); -+ if (blocks > ((size_t)-1 / T_BLOCKSIZE)) -+ { -+ errno = E2BIG; -+ return -1; -+ } - #ifdef DEBUG - printf(" th_read(): GNU long filename detected " -- "(%ld bytes, %d blocks)\n", sz, j); -+ "(%ld bytes, %d blocks)\n", sz, blocks); - #endif -- t->th_buf.gnu_longname = (char *)malloc(j * T_BLOCKSIZE); -+ t->th_buf.gnu_longname = (char *)malloc(blocks * T_BLOCKSIZE); - if (t->th_buf.gnu_longname == NULL) - return -1; - -- for (ptr = t->th_buf.gnu_longname; j > 0; -- j--, ptr += T_BLOCKSIZE) -+ for (j = 0, ptr = t->th_buf.gnu_longname; j < blocks; -+ j++, ptr += T_BLOCKSIZE) - { - #ifdef DEBUG - printf(" th_read(): reading long filename " -- "(%d blocks left, ptr == %ld)\n", j, ptr); -+ "(%d blocks left, ptr == %ld)\n", blocks-j, ptr); - #endif - i = tar_block_read(t, ptr); - if (i != T_BLOCKSIZE) Index: patches/patch-libtar_Makefile_in =================================================================== RCS file: patches/patch-libtar_Makefile_in diff -N patches/patch-libtar_Makefile_in --- patches/patch-libtar_Makefile_in 16 Apr 2010 13:10:47 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,40 +0,0 @@ -$OpenBSD: patch-libtar_Makefile_in,v 1.1.1.1 2010/04/16 13:10:47 ajacoutot Exp $ - -Enable shared library, from pkgsrc. - ---- libtar/Makefile.in.orig Sun Dec 15 19:02:30 2002 -+++ libtar/Makefile.in Thu Apr 15 17:58:09 2010 -@@ -45,7 +45,7 @@ LIBTAR_HDRS = ../config.h \ - ${top_srcdir}/compat/compat.h \ - ${top_srcdir}/lib/libtar.h \ - ../listhash/libtar_listhash.h --LIBTAR_LIBS = ../lib/libtar.a -+LIBTAR_LIBS = ../lib/libtar.la - ALL = libtar - - -@@ -54,12 +54,15 @@ all: ${ALL} - .PHONY: clean distclean install - - libtar: ${LIBTAR_OBJS} ${LIBTAR_LIBS} ${LIBTAR_HDRS} -- ${CC} ${CFLAGS} ${LDFLAGS} -o libtar libtar.o ${LIBTAR_LIBS} ${LIBS} -+ ${LIBTOOL} --mode=link --tag=CC \ -+ ${CC} ${CFLAGS} ${LDFLAGS} -o libtar libtar.lo \ -+ ${LIBTAR_LIBS} ${LIBS} - - ${LIBTAR_OBJS}: ${LIBTAR_HDRS} - - .c.o: -- ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< -+ ${LIBTOOL} --mode=compile \ -+ ${CC} ${CFLAGS} ${CPPFLAGS} -c -o ${@:.o=.lo} $< -prefer-pic - - clean: - rm -f *~ *.o ${ALL} core -@@ -69,5 +72,5 @@ distclean: clean - - install: ${ALL} - ${MKDIR} ${DESTDIR}${bindir} -- ${INSTALL_PROGRAM} libtar ${DESTDIR}${bindir} -+ ${LIBTOOL} --mode=install ${INSTALL_PROGRAM} libtar ${DESTDIR}${bindir} - -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE