pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

star: Update to 1.6.1



Module Name:	pkgsrc-wip
Committed By:	Michael Baeuerle <michael.baeuerle%stz-e.de@localhost>
Pushed By:	micha
Date:		Wed Sep 11 15:08:50 2019 +0200
Changeset:	c545704a229636abf8f7b51830cb9bb20d7973fc

Modified Files:
	Makefile
Added Files:
	star/COMMIT_MSG
	star/DESCR
	star/MESSAGE.star
	star/Makefile
	star/PLIST
	star/distinfo

Log Message:
star: Update to 1.6.1

Based on Release 2019-08-13.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c545704a229636abf8f7b51830cb9bb20d7973fc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile          |   1 +
 star/COMMIT_MSG   | 340 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 star/DESCR        |   3 +
 star/MESSAGE.star |  14 +++
 star/Makefile     |  80 +++++++++++++
 star/PLIST        |  80 +++++++++++++
 star/distinfo     |   6 +
 7 files changed, 524 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index b3b558eb77..131a81f53f 100644
--- a/Makefile
+++ b/Makefile
@@ -4562,6 +4562,7 @@ SUBDIR+=	ssid
 SUBDIR+=	ssu
 SUBDIR+=	st-term-git
 SUBDIR+=	stackdriver-collectd
+SUBDIR+=	star
 SUBDIR+=	stardict
 SUBDIR+=	stardict-tools
 SUBDIR+=	starfighter
diff --git a/star/COMMIT_MSG b/star/COMMIT_MSG
new file mode 100644
index 0000000000..fd0ba25047
--- /dev/null
+++ b/star/COMMIT_MSG
@@ -0,0 +1,340 @@
+smake: Update to 1.6.1
+
+Switch to latest distfile.
+Update PLIST.
+
+Changelog
+=========
+
+Release 2019-03-29:
+- libschily: the lutimens() emulation no longer returns ENOSYS in case
+  that the lstat() call fails, since this error code may e.g. be
+  ENAMETOOLONG and used as an important indicator for long path name
+  handling.
+
+  This bug caused incorrect behavior when star extracted long pathnames
+  on a platform without utimensat().
+
+- star: The code restructuring to openat() from Summer 2018 did not
+  only cause a noticeable speed up even when not using -find, it at
+  the same time resulted in a wrong error message when a file type
+  was seen that is not archivable (e.g. a socket while using the USTAR
+  format). The correct message was something like "Unsupported filetype",
+  while the bug caused a "file not found " message. This has been fixed
+  by adding a new parameter "fd" to the function stat_to_info().
+
+- star: header.c::get_xhtype() we did forgot to initialize:
+
+     finfo.f_devminorbits
+
+  and
+
+     finfo.f_xflags
+
+  This is now done.
+
+- star: The USTAR format now is able to create base-256 values in
+  the field "t_devmajor". "t_devminor" did already support base-256.
+
+- star: The GNU tar format now is able to create base-256 values in
+  the fields "t_devmajor" and "t_devminor".
+
+- star: The man page star.4 now mentions which fileds may have
+  base-256 numbers.
+
+- star: The man page star.4 now longer contains the doubled "field field"
+  in the explanation of the added UID/GID number for ACLs.
+
+- star: The man page star.4 now has a better description for the additional
+  numeric fields in the ACL entries to prevent GNU tar from continuing
+  with it's incompatible ACL implementation.
+
+- star: New ACL reference archives for the ultra compact format, that has
+  been defined together with the libachive people, have been added to the
+  directory testscripts/:
+
+  acl-nfsv4-compact-test.tar.gz
+  acl-nfsv4-compact-test2.tar.gz
+  acl-nfsv4-compact-test3.tar.gz
+  acl-nfsv4-compact-test4.tar.gz
+  acl-nfsv4-compact-test5.tar.gz
+
+- star: Linux now uses the new <linux/fs.h> instead of <ext2/ext2_fs.h>
+  to retrieve file flags.
+
+  Thanks to a hint from Martin Matuska <martin%matuska.org@localhost> from the
+  libarchive team.
+
+- star: Support for the following new BSD Flags:
+
+     compressed hidden offline rdonly reparse sparse system
+
+  has been added.
+
+  Thanks to a hint from Martin Matuska <martin%matuska.org@localhost> from the
+  libarchive team.
+
+- star: Support for the following new Linux flags:
+
+     dirsync nocow notail projinherit topdir
+
+  has been added.
+
+  Thanks to a hint from Martin Matuska <martin%matuska.org@localhost> from the
+  libarchive team.
+
+- star: Support for reading non-comliant libarchive tarballs that use.
+
+     "securedeletion" or "journal"
+
+  instead of the documented text has been added. This was used by
+  libarchive until March 20, when libarchive has been fixed. We introduce
+  the above names for compatibility with old TARs created by libarchive.
+
+- star: When an "old star" archive is read and this archive is from a system
+  like FreeBSD with non-continous minor bits, star no longer warns unless
+  there is a device file in the archive.
+
+- star: unit tests: the scripts now contain
+
+     LC_ALL=C export LC_ALL
+
+  instead of just LC_ALL=C to make the environment exported.
+
+- star/libstrar: The case where iconv() returns -1 and sets errno to E2BIG
+  is now handled correctly.
+
+- star: The testscripts/ directory now contains the tar test archives
+  from the portability tests from Michal Gorny. Check
+
+     http://cdrtools.sourceforge.net/private/portability-of-tar-features.html
+
+  for an updated (to match star-1.6) variant of the results from the portability
+  tests from Michal Gorny.
+
+- star: older versions of star did not print the messages:
+
+     "WARNING: Archive is 'xxx' compressed, trying to use the -xxx option.\n"
+
+  in case that the option -print-artype was in use. Later versions that
+  added support for more than "gzip" and "bzip2" forgot to add the same
+  exception for the new compression methods. We now ommit this message
+  for all compression types.
+
+- star: Support for the "lzma" compression has been added.
+
+- star: Support for the "freeze2" compression has been added.
+
+- star: The compression method name list did not include the text "zstd".
+  We added the missing text.
+
+- star: The hint messages that are printed when a compressed input archive
+  is not seekable did forgot to mention "lzip" and "zstd". We added the
+  forgotten messages.
+
+- star: New unit tests check whether star is able to auto-detect and auto
+  decompress various compression formats.
+
+- star: The unit tests now include the portability tests from Michal Gorny
+
+- A new option cli=name (must be argv[1]) allows to select all
+  supported command line interfaces (star, suntar, gnutar,
+  pax, cpio) when called as star.
+
+  This is needed to be able to test all command line interfaces from
+  out unit tests since star is not installed in this case and a selection
+  from argv[0] would not work.
+
+- star: The version date is now "2019/03/20"
+
+Release 2019-04-29:
+- libfind/star: the verbose listing code has ben restructured to have
+  the file permissions in the same string as the file type.
+  This is needed to implement the POSIX pax listformat interpreter
+  format %M in future.
+
+- libfind/star: the verbose listing no longer prints "l" for mandatory
+  record locking for non-directory type file, but rather only
+  for plain files.
+
+- star: The "gnutar" emulation now prints the --help output to stdout as
+  GNU tar does.
+
+- star: The gnutar.1 man page now mentions that the GNU tar
+  options -g / -G did never work and it thus makes no sense to
+  implement them.
+
+- star: very outdated code in list.c has been removed.
+
+- star: Added new unit tests for incremental backups and restores.
+  This in special include tests that always fail with GNU tar
+  as GNU tar is not usable and never was usable for incremental
+  restores in case that the differences are more than trivial.
+
+- star: new version date 2019-04-01
+
+Release 2019-06-13:
+- star: fixed a bug in the FIFO code that mainly happened on Linux (with
+  a 1000x higher probability than it happens on Solaris). The bug was.
+  caused, as a check for a flag has been done twice instead of only once
+  where it could change it's value between both locations. As a.
+  result, star reported "star: Implementation botch: with FIFO_MEOF"
+  as the tar side of the FIFO did sometimes not wait for the FIFO_IWAIT
+  state when called as "star -multivolume -tv f=... f=... ...
+  For this reason, star incorrectly got a wakeup at the wrong location.
+
+  The bug appeared in case that star -x/-t -multivol f=.. f=.. ....
+  has been called with very small tar archives.
+
+  Thanks to Heiko Eissfeldt for reporting.
+
+- star: The FIFO code renamed the "flag" member of the "m_head" structure
+  to "gflag" for better readability.
+
+- star: The debugging code in the FIFO has been enhanced to print the
+  names of the flag bits in addition to the hex values.
+
+- star: A deadlock situation that happens once every 500000 tries on
+  Linux with multi-volume archives has been fixed.
+
+  The problem was caused by a complex condition where the get side
+  of the FIFO needs to check the EOF FIFO flag and the amount of data
+  available in the FIFO and then decide whether to wait for a wakeup or
+  not.
+
+  Since the EOF flag needs to be checked first, a context switch in
+  the get side of the FIFO could allow the put side to set the EOF flag
+  before the get side did check the fill ratio of the FIFO. This
+  caused both the get side and the put side to wait for a wakeup.
+
+  The new code introduced a new variable mp->mayoblock that is set by
+  the get side before checking for EOF. This new flags allows the
+  put side to know that the get side is just in a critical situation
+  and lets the put side wait until mp->mayoblock is no longer set,
+  which signals a stable state in the get side. This permits to
+  avoid the deadlock.
+
+- star: Note that the FIFO has been initially written as a lock free
+  design in the late 1980's. This is to allow high portability to even
+  older UNIX versions. The star FIFO works on all UNIX variants that
+  support pipes and shared memory, which is e.g. the case for
+  SunOS-4.0 from 1988. At the time the FIFO has been designed, the
+  target OS did not support multi-CPU systems and problems in the
+  FIFO first appeared with massively faster multi-CPU systems around
+  y2000. The recently detected problems all have been triggered by a
+  different context switch behavior on Linux, even though they could
+  have appeared on any OS in case that many million tries are
+  attempted.
+
+- star: bumped version to 1.6.1
+
+Release 2019-07-15:
+- star: the compress unit test no longer fails on Cygwin because the
+  gzip binary is compiled incorrectly and does not support LZW.
+  The related test is now skipped.
+
+  Thanks to Heiko Eissfeldt for reporting
+
+- star: some new unit tests failed if the schilytools source tree has
+  been installed in a directory with spaces in it's name.
+
+  Thanks to Heiko Eissfeldt for reporting
+
+- star: The unit tests for incremental backups include archives that
+  include userid/groupid and username/groupname that may not be
+  restorable on a different computer. We now ignore these ID meta.
+  data when comparing the results.
+
+  Thanks to Heiko Eissfeldt for reporting
+
+- star: When comparing nanoseconds in time stamps, star now has a mode
+  that treats time stamps as equal in case that tv_nsec % 100 == 0
+  and the rest of the nano seconds is equal. This is needd on Cygwin
+  since NTFS counts in 1/10 microseconds since Januar 1 1601.
+
+  This applies to both star -diff and the "newer" check while extracting
+  files.
+
+  Thanks to Heiko Eissfeldt for reporting
+
+- star: a new option diffopts=dnlink has been implemented to support
+  filesystems that do not follow the historic UNIX model for hard links
+  on directories.
+
+  Since Cygwin usually has a linkcount of 1 on directories, you need
+  to use "star -diff diffopts=!dnlink ..." if you like to diff the
+  meta data from a historical UNIX filesystem.
+
+  Thanks to Heiko Eissfeldt for reporting
+
+- star: The incremental backup/restore tests now use.
+  "star -diff diffopts=!dnlink ..." to make them work on Cygwin.
+
+  Thanks to Heiko Eissfeldt for reporting
+
+- star: star -c -H exustar -acl -xattr-linux .
+  did cause file not found messages from the attempt to archive the
+  Linux xattrs. This was caused by a change from July 2018 when trying to
+  optimize directory access in (non-find) create mode. The call to read
+  the Linux xattrs has now been moved to the location where in former
+  times the ACL code has already been moved.
+
+  The move is needed because there is no ACL/XATTR related function
+  that is similar to openat().
+
+- star: A similar problem with get_xattr() did exist with star -diff
+
+- star: star -diff did not compare ACLs since getinfo() no longer
+  includes a call to get_acl(). We now call get_xattr() and get_acl()
+  in diff.c
+
+- star: The Solaris ACL interface now implelements lacl() / lacl_get() /
+  lacl_set() to support very long pathnames with ACLs.
+
+- star: The Linux ACL interface now implelements lacl_get_file() /
+  lacl_set_file() to support very long pathnames with ACLs on platforms
+  that implement the withdrawn POSIX ACL draft.
+
+- star: The Linux xattr interface now implelements.
+  llgetxattr() / llsetxattr() / lllistxattr() to support very long
+  pathnames with Linux xattrs.
+
+- star: New version date
+
+Release 2019-07-22:
+- star: "pax -pe" no longer sets the variable "doxattr" as this caused
+  an error message:
+
+     "NFSv4 extended attribute files are not yet supported.\n"
+
+  that caused the OpenSolaris-ON "nightly" compilation to abort as a
+  result of that error and exit code != 0.
+
+Release 2019-08-13:
+- libschily: Various functions and *at() emulation functions call stat()
+  even though the caller does not know about that call.
+
+  This could cause a missbehavior in case that a file returns EOVERFLOW
+  with a normal stat(). We now compile these functions in unconditional
+  large file mode to overcome that problem.
+
+  The affected files are:
+
+  diropen.c lutimens.c findinpath.c linkat.c mkdirs.c searchinpath.c
+  resolvepath.c  lchmod.c renameat.c.
+
+  Note that this problem affected star(1) on platforms that do not
+  fully implement all *at() interfaces, since star started to support
+  really long path names in July 2018.
+
+- star: Star did not compile on platforms without ACLs anymore since
+  we did rearrange the code with schilytools 2019-07-15.
+
+  We now have the needed #undef USE_ACL in diff.c as well.
+
+  Thanks to Dennis Clarke for reporting.
+
+- star: Avoid a warning when a star -dump archive is unpacked on FreeBSD
+  or Linux with non-contiguous minor bits. The warning is not needed
+  since we only use SCHILY.dev in order to detect mount points but
+  not to compute the major/minor parts.
diff --git a/star/DESCR b/star/DESCR
new file mode 100644
index 0000000000..56094cc106
--- /dev/null
+++ b/star/DESCR
@@ -0,0 +1,3 @@
+The Schily tape archiver
+
+Unique standard tape archiver (the oldest free TAR implementation).
diff --git a/star/MESSAGE.star b/star/MESSAGE.star
new file mode 100644
index 0000000000..e45888ac69
--- /dev/null
+++ b/star/MESSAGE.star
@@ -0,0 +1,14 @@
+===========================================================================
+$NetBSD: MESSAGE.star,v 1.1 2018/11/10 19:56:17 wiz Exp $
+
+Note: The location of the ${PKGNAME_NOREV} `defaults' file has been set to
+
+	${STAR_CONF}
+
+This is the pkgsrc standard config file location, NOT the ${PKGNAME_NOREV}
+standard location, which is /etc/default/star.
+
+The reason for this is that pkgsrc packages should not use configuration
+files outside ${LOCALBASE} unless they are explicitly set by the user.
+
+===========================================================================
diff --git a/star/Makefile b/star/Makefile
new file mode 100644
index 0000000000..c107691785
--- /dev/null
+++ b/star/Makefile
@@ -0,0 +1,80 @@
+# $NetBSD$
+
+DISTNAME=	schily-2019-08-13
+PKGNAME=	star-1.6.1
+CATEGORIES=	archivers
+MASTER_SITES=	${MASTER_SITE_SOURCEFORGE:=schilytools/}
+EXTRACT_SUFX=	.tar.bz2
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	http://s-tar.sf.net/
+COMMENT=	Unique standard tape archiver
+LICENSE=	cddl-1.0
+
+MAKE_JOBS_SAFE=	no
+
+USE_TOOLS+=	tbl
+TOOL_DEPENDS+=	smake-[0-9]*:../../devel/smake
+SMAKE=		MAKEFLAGS= smake
+MAKE_FLAGS+=	DESTDIR=${DESTDIR} INS_BASE=${PREFIX} DEFMANBASE=. MANDIR=${PKGMANDIR}
+# Honor CPPFLAGS, CFLAGS and LDFLAGS
+MAKE_FLAGS+=	CPPOPTX=${CPPFLAGS:Q} COPTX=${CFLAGS:Q} LDOPTX=${LDFLAGS:Q}
+
+.include "../../mk/bsd.prefs.mk"
+
+# The default location is /etc/default/star
+# We patch the documentation appropriately. Additionally, we also provide a
+# MESSAGE stating the reasons we do this, as required by the license.
+STAR_CONF?=	${PKG_SYSCONFDIR}/star
+
+.if ${STAR_CONF} != "/etc/default/star"
+MESSAGE_SRC+=	MESSAGE.star
+MESSAGE_SUBST+=	PKGNAME_NOREV=${PKGNAME_NOREV}
+MESSAGE_SUBST+=	STAR_CONF=${STAR_CONF:Q}
+.endif
+
+CONF_FILES=	${PREFIX}/share/examples/star/star ${STAR_CONF}
+AUTO_MKDIRS=	yes
+
+SUBST_CLASSES+=		fix
+SUBST_STAGE.fix=	pre-configure
+SUBST_FILES.fix+=	star/star.1
+SUBST_FILES.fix+=	star/star.dfl
+SUBST_FILES.fix+=	star/defaults.c
+SUBST_SED.fix=		-e "s,/etc/default/star,${STAR_CONF},g"
+SUBST_MESSAGE.fix=	Replace defaults file paths.
+
+# Shared platform specific code for schilytools (provided by smake package)
+.include "../../devel/smake/Makefile.common"
+
+do-configure:
+	cd ${WRKSRC}/inc && ${SMAKE} ${MAKE_FLAGS}
+
+do-build:
+	cd ${WRKSRC} && for library in					\
+		libschily libdeflt libfind librmt;			\
+	do								\
+		cd ${WRKSRC}/$${library} && ${SMAKE} ${MAKE_FLAGS};	\
+	done
+	cd ${WRKSRC}/star && ${SMAKE} ${MAKE_FLAGS}
+
+# Process tables in manpage
+post-build:
+	cd ${WRKSRC} && if ${TEST} -f star/pkgsrc_tbl.done; then :;	\
+	else								\
+		${TBL} star/spax.1 >star/spax.1.tmp &&			\
+		${MV} -f star/spax.1.tmp star/spax.1 &&			\
+		${TBL} star/star.4 >star/star.4.tmp &&			\
+		${MV} -f star/star.4.tmp star/star.4 &&			\
+		${TOUCH} star/pkgsrc_tbl.done;				\
+	fi
+
+do-test:
+	cd ${WRKSRC}/star && cd tests ; ${SMAKE} ${MAKE_FLAGS} tests
+
+do-install:
+	cd ${WRKSRC}/star && ${SMAKE} ${MAKE_FLAGS} install
+	${INSTALL_DATA} ${WRKSRC}/star/star.dfl				\
+		${DESTDIR}${PREFIX}/share/examples/star/star
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/star/PLIST b/star/PLIST
new file mode 100644
index 0000000000..167e8c3c66
--- /dev/null
+++ b/star/PLIST
@@ -0,0 +1,80 @@
+@comment $NetBSD$
+bin/gnutar
+bin/scpio
+bin/spax
+bin/star
+bin/suntar
+bin/tar
+bin/ustar
+man/man1/gnutar.1
+man/man1/scpio.1
+man/man1/spax.1
+man/man1/star.1
+man/man1/suntar.1
+man/man1/ustar.1
+man/man5/star.5
+share/doc/star/README
+share/doc/star/README.ACL
+share/doc/star/README.crash
+share/doc/star/README.largefiles
+share/doc/star/README.mtio
+share/doc/star/README.otherbugs
+share/doc/star/README.pattern
+share/doc/star/README.posix-2001
+share/doc/star/STARvsGNUTAR
+share/doc/star/testscripts/00INDEX
+share/doc/star/testscripts/100char_longlink.tar
+share/doc/star/testscripts/100char_longlink.tar-non-compliant
+share/doc/star/testscripts/README.GNUtar-multivol.fail
+share/doc/star/testscripts/README.create-and-remove
+share/doc/star/testscripts/README.gtarfail
+share/doc/star/testscripts/README.largefiles
+share/doc/star/testscripts/README.longnames
+share/doc/star/testscripts/README.paxbug
+share/doc/star/testscripts/README.quicktest
+share/doc/star/testscripts/acl-nfsv4-compact-test.tar.gz
+share/doc/star/testscripts/acl-nfsv4-compact-test2.tar.gz
+share/doc/star/testscripts/acl-nfsv4-compact-test3.tar.gz
+share/doc/star/testscripts/acl-nfsv4-compact-test4.tar.gz
+share/doc/star/testscripts/acl-nfsv4-compact-test5.tar.gz
+share/doc/star/testscripts/acl-nfsv4-test.tar.gz
+share/doc/star/testscripts/acl-nfsv4-test2.tar.gz
+share/doc/star/testscripts/acl-nfsv4-test3.tar.gz
+share/doc/star/testscripts/acl-nfsv4-test4.tar.gz
+share/doc/star/testscripts/acl-nfsv4-test5.tar.gz
+share/doc/star/testscripts/acl-test.tar.gz
+share/doc/star/testscripts/acl-test2.tar.gz
+share/doc/star/testscripts/acl-test3.tar.gz
+share/doc/star/testscripts/acl-test4.tar.gz
+share/doc/star/testscripts/acl-test5.tar.gz
+share/doc/star/testscripts/create-and-remove.tar
+share/doc/star/testscripts/dirloop.tar
+share/doc/star/testscripts/g-hdr.pax.gz
+share/doc/star/testscripts/gnu-multi-fail-volume1.gtar
+share/doc/star/testscripts/gnu-multi-fail-volume2.gtar
+share/doc/star/testscripts/gtarfail.tar
+share/doc/star/testscripts/gtarfail2.tar
+share/doc/star/testscripts/long.ustar.gz
+share/doc/star/testscripts/longpath.tar.bz2
+share/doc/star/testscripts/mk
+share/doc/star/testscripts/mk2
+share/doc/star/testscripts/not_a_tar_file
+share/doc/star/testscripts/not_a_tar_file1
+share/doc/star/testscripts/not_a_tar_file2
+share/doc/star/testscripts/not_a_tar_file3
+share/doc/star/testscripts/old-file.tar
+share/doc/star/testscripts/pax-big-10g.tar.bz2
+share/doc/star/testscripts/quicktest.filelist
+share/doc/star/testscripts/remove.tar
+share/doc/star/testscripts/tartest-quicktest.out
+share/doc/star/testscripts/types-star-oldsparse.tar.gz
+share/doc/star/testscripts/typescript
+share/doc/star/testscripts/ustar-all-filetypes.tar
+share/doc/star/testscripts/ustar-all-quicktest-past-contig.tar
+share/doc/star/testscripts/ustar-all-quicktest.tar
+share/doc/star/testscripts/ustar-all-quicktest.tar-without-cont-file
+share/doc/star/testscripts/ustar-bad-filetypes.tar
+share/doc/star/testscripts/ustar-bad-signedsum.tar
+share/doc/star/testscripts/ustar-big-2g.tar.bz2
+share/doc/star/testscripts/ustar-big-8g.tar.bz2
+share/examples/star/star
diff --git a/star/distinfo b/star/distinfo
new file mode 100644
index 0000000000..ea93ab4062
--- /dev/null
+++ b/star/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (schily-2019-08-13.tar.bz2) = 2eae2dea47ce9101942ca7e425cd523bddf515fa
+RMD160 (schily-2019-08-13.tar.bz2) = df65883a857790f902406b6bf07fb75ba530e8eb
+SHA512 (schily-2019-08-13.tar.bz2) = e69ed060aa5b5203b8af20834b9cceb0c4dc7be20b8d43d781c056f974ba67337415f512575461ee16504e6162311fc84fca9b83ae240c4102d2cfe95bfa9cd7
+Size (schily-2019-08-13.tar.bz2) = 4447359 bytes


Home | Main Index | Thread Index | Old Index