Index: head/archivers/star/Makefile =================================================================== --- head/archivers/star/Makefile (revision 422893) +++ head/archivers/star/Makefile (revision 422894) @@ -1,63 +1,62 @@ # Created by: Andreas Klemm # $FreeBSD$ PORTNAME= star -DISTVERSION= 1.5.2 +DISTVERSION= 1.5.3 CATEGORIES= archivers -MASTER_SITES= http://BSDforge.com/projects/source/srchivers/star/ +MASTER_SITES= SF/s-tar MAINTAINER= portmaster@BSDforge.com COMMENT= Unique standard tape archiver with many enhancements LICENSE= CDDL GPLv2 LICENSE_COMB= multi LICENSE_FILES= ${WRKSRC}/CDDL.Schily.txt BUILD_DEPENDS= smake:devel/smake USES= gettext iconv tar:bzip2 -USE_GCC= any .if defined(NO_INSTALL_MANPAGES) XMKFLAGS= XMK_FILE="" .endif MAKEFLAGS+= DEFMANBASE=. MAKE_ENV+= MAKEFLAGS=${MAKEFLAGS} PORTDOCS= README README.crash README.mtio README.pattern STARvsGNUTAR \ README.ACL README.largefiles README.otherbugs \ README.posix-2001 OPTIONS_DEFINE= DOCS post-patch: @${FIND} ${WRKSRC} -type f -print \ | ${XARGS} ${REINPLACE_CMD} -e "s@/etc/default@${PREFIX}/etc@g" @${MV} ${WRKSRC}/rmt/rmt.1 ${WRKSRC}/rmt/srmt.1 do-build: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} smake cd ${WRKSRC}/star && ${SETENV} ${MAKE_ENV} smake -f Makefile.doc do-install: cd ${WRKSRC}/star && ${SETENV} ${MAKE_ENV} smake \ ${INSTALL_TARGET} INS_BASE=${STAGEDIR}${PREFIX} ${XMKFLAGS} cd ${WRKSRC}/rmt && ${SETENV} ${MAKE_ENV} smake \ ${INSTALL_TARGET} INS_BASE=${STAGEDIR}${PREFIX} ${XMKFLAGS} cd ${WRKSRC}/tartest && ${SETENV} ${MAKE_ENV} smake \ ${INSTALL_TARGET} INS_BASE=${STAGEDIR}${PREFIX} ${XMKFLAGS} # Ugh... cmake doesn't like install-strip @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/star @${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/srmt @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/tartest ${INSTALL_DATA} ${WRKSRC}/star/star.dfl ${STAGEDIR}${PREFIX}/etc/star.sample ${INSTALL_DATA} ${WRKSRC}/rmt/rmt.dfl ${STAGEDIR}${PREFIX}/etc/rmt.sample post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} .for FILE in ${PORTDOCS} (cd ${WRKSRC}/star && ${INSTALL_DATA} ${FILE} ${STAGEDIR}${DOCSDIR}/${FILE}) .endfor .include Index: head/archivers/star/distinfo =================================================================== --- head/archivers/star/distinfo (revision 422893) +++ head/archivers/star/distinfo (revision 422894) @@ -1,2 +1,3 @@ -SHA256 (star-1.5.2.tar.bz2) = 762645b98af13bb9b0512812814ec8e90635d1400c94eb5911e9774daed2addf -SIZE (star-1.5.2.tar.bz2) = 874558 +TIMESTAMP = 1472598366 +SHA256 (star-1.5.3.tar.bz2) = 070342833ea83104169bf956aa880bcd088e7af7f5b1f8e3d29853b49b1a4f5b +SIZE (star-1.5.3.tar.bz2) = 889881 Index: head/archivers/star/files/patch-autoconf_xconfig.h.in =================================================================== --- head/archivers/star/files/patch-autoconf_xconfig.h.in (nonexistent) +++ head/archivers/star/files/patch-autoconf_xconfig.h.in (revision 422894) @@ -0,0 +1,25 @@ +--- autoconf/xconfig.h.in.orig 2014-05-15 19:04:57 UTC ++++ autoconf/xconfig.h.in +@@ -3,7 +3,7 @@ + * Dynamic autoconf C-include code. + * Do not edit, this file has been created automatically. + * +- * Copyright (c) 1998-2014 J. Schilling ++ * Copyright (c) 1998-2016 J. Schilling + * + * The layout for this file is controlled by "configure". + * Switch off cstyle(1) checks for now. +@@ -1051,6 +1051,13 @@ + # define HAVE_NFSV4_ACL 1 /* NFSv4 ACL's present */ + #endif + ++#if defined(HAVE_ACL_GET_BRAND_NP) ++#ifndef HAVE_NFSV4_ACL ++# define HAVE_NFSV4_ACL 1 /* NFSv4 ACL's present */ ++#endif ++# define HAVE_FREEBSD_NFSV4_ACL 1 /* FreeBSD NFSv4 ACL implementation */ ++#endif ++ + /* + * HP-UX ACL support. + * Note: unfortunately, HP-UX has an (undocumented) acl() function in libc. Property changes on: head/archivers/star/files/patch-autoconf_xconfig.h.in ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/archivers/star/files/patch-star_Makefile =================================================================== --- head/archivers/star/files/patch-star_Makefile (revision 422893) +++ head/archivers/star/files/patch-star_Makefile (revision 422894) @@ -1,22 +1,22 @@ ---- star/Makefile.orig 2010-05-13 19:47:27 UTC +--- star/Makefile.orig 2013-11-05 22:36:07 UTC +++ star/Makefile @@ -15,7 +15,7 @@ include $(SRCROOT)/$(RULESDIR)/rules.to INSDIR= bin TARGET= star #SYMLINKS= ustar tar -SYMLINKS= ustar tar gnutar suntar scpio spax +SYMLINKS= ustar suntar scpio spax CPPOPTS += -D__STAR__ CPPOPTS += -DSET_CTIME -DFIFO -DUSE_MMAP -DUSE_REMOTE -DUSE_RCMD_RSH #CPPOPTS += -DSET_CTIME -DFIFO -DUSE_MMAP -@@ -52,8 +52,8 @@ LIBS= -ldeflt -lrmt -lfind -lschily $(L +@@ -55,8 +55,8 @@ LIBS= -ldeflt -lrmt -lfind -lschily $(L # # Wenn -lfind, dann auch $(LIB_INTL) # -XMK_FILE= Makefile.man ustarman.mk starformatman.mk scpioman.mk gnutarman.mk \ - spaxman.mk suntarman.mk Makefile.dfl Makefile.doc +XMK_FILE= Makefile.man starformatman.mk scpioman.mk \ + spaxman.mk suntarman.mk star_fat.c: star.c $(RM) $(RM_FORCE) $@; cp star.c $@ Index: head/archivers/star/files/patch-star_acl__unix.c =================================================================== --- head/archivers/star/files/patch-star_acl__unix.c (nonexistent) +++ head/archivers/star/files/patch-star_acl__unix.c (revision 422894) @@ -0,0 +1,179 @@ +--- star/acl_unix.c.orig 2014-03-31 17:44:46 UTC ++++ star/acl_unix.c +@@ -1,8 +1,8 @@ +-/* @(#)acl_unix.c 1.49 14/03/31 Copyright 2001-2014 J. Schilling */ ++/* @(#)acl_unix.c 1.51 16/09/03 Copyright 2001-2014 J. Schilling */ + #include + #ifndef lint + static UConst char sccsid[] = +- "@(#)acl_unix.c 1.49 14/03/31 Copyright 2001-2014 J. Schilling"; ++ "@(#)acl_unix.c 1.51 16/09/03 Copyright 2001-2014 J. Schilling"; + #endif + /* + * ACL get and set routines for unix like operating systems. +@@ -11,7 +11,7 @@ static UConst char sccsid[] = + * + * There are currently two basic flavors of ACLs: + * +- * Flavor 1: UFS/POSIX draft ++ * Flavor 1: UFS/POSIX.1e draft (withrawn in 1997) + * + * The Solaric UFS ACLs that have been developed between 1990 and 1994. + * These ACLs have been made available as extensions to NFSv2 and NFSv3. +@@ -27,7 +27,7 @@ static UConst char sccsid[] = + * As True64 does not like ACL "mask" entries and this version of the + * ACL code does not generate "mask" entries on True64, ACL support for + * True64 is currently broken. You cannot read back archives created +- * on true64. ++ * on True64. + * + * Flavor 2: NFSv4 + * +@@ -196,6 +196,9 @@ EXPORT void + opt_acl() + { + printf(" acl-POSIX.1e-draft"); ++#ifdef HAVE_NFSV4_ACL ++ printf(" acl-NFSv4"); ++#endif + } + + /* +@@ -217,6 +220,15 @@ get_acls(info) + if (is_symlink(info)) + return (TRUE); + ++#ifdef HAVE_FREEBSD_NFSV4_ACL ++ if (acl_to_info(info->f_sname, ACL_TYPE_NFS4, &acl_ace_text)) { ++ if (*acl_ace_text.ps_path != '\0') { ++ info->f_xflags |= XF_ACL_ACE; ++ info->f_acl_ace = acl_ace_text.ps_path; ++ } ++ return (TRUE); ++ } ++#endif + if (!acl_to_info(info->f_sname, ACL_TYPE_ACCESS, &acl_access_text)) + return (FALSE); + if (*acl_access_text.ps_path != '\0') { +@@ -263,6 +275,13 @@ acl_to_info(name, type, acltext) + if (err == ENOSYS) + return (TRUE); + #endif ++#ifdef HAVE_FREEBSD_NFSV4_ACL ++ /* ++ * If ACL type is not NFS4 we continue with POSIX.1e ACLs ++ */ ++ if (type == ACL_TYPE_NFS4 && err == EINVAL) ++ return (FALSE); ++#endif + if (!errhidden(E_GETACL, name)) { + if (!errwarnonly(E_GETACL, name)) + xstats.s_getaclerrs++; +@@ -273,7 +292,12 @@ acl_to_info(name, type, acltext) + return (FALSE); + } + seterrno(0); +- text = acl_to_text(acl, NULL); ++#ifdef HAVE_FREEBSD_NFSV4_ACL ++ if (type == ACL_TYPE_NFS4) ++ text = acl_to_text_np(acl, NULL, ACL_TEXT_APPEND_ID); ++ else ++#endif ++ text = acl_to_text(acl, NULL); + acl_free(acl); + if (text == NULL) { + if (geterrno() == 0) +@@ -313,6 +337,22 @@ acl_to_info(name, type, acltext) + ; + } + ++#ifdef HAVE_FREEBSD_NFSV4_ACL ++ /* remove space fields */ ++ if (type == ACL_TYPE_NFS4) { ++ c = text; ++ while ((c = strchr(c, ' ')) != NULL) { ++ char *d = c, *e; ++ ++ while (*d && *d == ' ') ++ d++; ++ e = c; ++ while ((*e++ = *d++) != '\0') ++ ; ++ } ++ } ++#endif ++ + /* count fields */ + for (c = text; *c != '\0'; c++) { + if (*c == '\n') { +@@ -320,6 +360,14 @@ acl_to_info(name, type, acltext) + entries++; + } + } ++#ifdef HAVE_FREEBSD_NFSV4_ACL ++ if (type == ACL_TYPE_NFS4) { ++ if (strcpy_pspace(PS_EXIT, acltext, text) < 0) { ++ acl_free((acl_t)text); ++ return (FALSE); ++ } ++ } else ++#endif + if ((entries > 3) || /* > 4 on Solaris? */ + (type == ACL_TYPE_DEFAULT && entries >= 3)) { + if ((entries * 56) > acltext->ps_size) +@@ -446,6 +494,55 @@ set_acls(info) + + aclps.ps_path = acltext; + aclps.ps_size = PATH_MAX; ++ ++#ifdef HAVE_FREEBSD_NFSV4_ACL ++ if (info->f_xflags & XF_ACL_ACE) { ++ ssize_t len = strlen(info->f_acl_ace) + 2; ++ ++ if (len > aclps.ps_size) { ++ aclps.ps_path = NULL; ++ aclps.ps_size = 0; ++ grow_pspace(PS_EXIT, &aclps, len); ++ if (aclps.ps_size <= len) { ++ free_pspace(&aclps); ++ return; ++ } ++ } ++ acl_check_ids(aclps.ps_path, info->f_acl_ace, TRUE); ++ ++ if ((acl = acl_from_text(aclps.ps_path)) == NULL) { ++ if (!errhidden(E_BADACL, info->f_name)) { ++ if (!errwarnonly(E_BADACL, info->f_name)) ++ xstats.s_badacl++; ++ errmsg("Cannot convert NFSv4 ACL '%s' to internal format for ' %s'.\n", ++ aclps.ps_path, info->f_name); ++ (void) errabort(E_BADACL, info->f_name, TRUE); ++ } ++ } else { ++ if (acl_set_file(info->f_name, ACL_TYPE_NFS4, ++ acl) < 0) { ++ /* ++ * XXX What should we do if errno is ++ * ENOTSUP/ENOSYS? ++ */ ++ if (!errhidden(E_SETACL, info->f_name)) { ++ if (!errwarnonly(E_SETACL, ++ info->f_name)) ++ xstats.s_setacl++; ++ errmsg("Cannot set NFSv4 ACL '%s' for '%s'.\n", ++ aclps.ps_path, info->f_name); ++ (void) errabort(E_SETACL, info->f_name, ++ TRUE); ++ } ++ } ++ acl_free(acl); ++ } ++ if (aclps.ps_path != acltext) ++ free_pspace(&aclps); ++ return; ++ } ++#endif /* HAVE_FREEBSD_NFSV4_ACL */ ++ + if (info->f_xflags & XF_ACL_ACCESS) { + ssize_t len = strlen(info->f_acl_access) + 2; + Property changes on: head/archivers/star/files/patch-star_acl__unix.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/archivers/star/pkg-descr =================================================================== --- head/archivers/star/pkg-descr (revision 422893) +++ head/archivers/star/pkg-descr (revision 422894) @@ -1,19 +1,19 @@ Star is the fastest known implementation of a tar archiver. Main advantages over other tar implementations: fifo - Keeps the tape streaming. pattern matcher - For a convenient user interface. sophisticated diff - User tailorable interface for comparing tar archives against file trees. no namelen limitation - Pathnames up to 1024 Bytes may be archived. deals with all 3 times - Stores/restores all 3 times of a file. does not clobber files - More recent copies on disk will not be clobbered from tape. automatic byte swap - star automatically detects swapped archives. automatic format detect - Automatically detects archive formats: old tar, gnu tar, ansi tar, star. fully ansi compatible - star is fully ANSI/Posix 1003.1 compatible. Please mail bugs and suggestions to: Author: Joerg Schilling -WWW: http://cdrecord.berlios.de/old/private/star.html +WWW: https://sourceforge.net/projects/s-tar/