Fri Apr 3 09:43:47 2015 UTC ()
Import py34-attic-0.14 as devel/py-attic, packaged for wip by myself.

Attic is a deduplicating backup program. The main goal of Attic is
to provide an efficient and secure way to backup data. The data
deduplication technique used makes Attic suitable for daily backups
since only changes are stored.


(wiz)
diff -r0 -r1.1 pkgsrc/devel/py-attic/ALTERNATIVES
diff -r0 -r1.1 pkgsrc/devel/py-attic/DESCR
diff -r0 -r1.1 pkgsrc/devel/py-attic/Makefile
diff -r0 -r1.1 pkgsrc/devel/py-attic/PLIST
diff -r0 -r1.1 pkgsrc/devel/py-attic/distinfo
diff -r0 -r1.1 pkgsrc/devel/py-attic/patches/patch-attic_platform.py
diff -r0 -r1.1 pkgsrc/devel/py-attic/patches/patch-attic_testsuite_archiver.py
diff -r0 -r1.1 pkgsrc/devel/py-attic/patches/patch-attic_xattr.py

File Added: pkgsrc/devel/py-attic/Attic/ALTERNATIVES
bin/attic bin/attic@PYVERSSUFFIX@

File Added: pkgsrc/devel/py-attic/Attic/DESCR
Attic is a deduplicating backup program. The main goal of Attic is
to provide an efficient and secure way to backup data. The data
deduplication technique used makes Attic suitable for daily backups
since only changes are stored.

File Added: pkgsrc/devel/py-attic/Attic/Makefile
# $NetBSD: Makefile,v 1.1 2015/04/03 09:43:47 wiz Exp $

DISTNAME=	Attic-0.14
PKGNAME=	${PYPKGPREFIX}-${DISTNAME:S/A/a/}
CATEGORIES=	sysutils
MASTER_SITES=	https://pypi.python.org/packages/source/A/Attic/

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	https://attic-backup.org/
COMMENT=	Deduplicating backup program
LICENSE=	modified-bsd

DEPENDS+=	${PYPKGPREFIX}-msgpack-[0-9]*:../../devel/py-msgpack

PYTHON_VERSIONS_INCOMPATIBLE=	26 27
PLIST_SUBST+=			PYVERSSUFFIX=${PYVERSSUFFIX}

post-install:
	cd ${DESTDIR}${PREFIX}/bin && mv attic attic${PYVERSSUFFIX}

.include "../../lang/python/distutils.mk"
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/devel/py-attic/Attic/PLIST
@comment $NetBSD: PLIST,v 1.1 2015/04/03 09:43:47 wiz Exp $
bin/attic${PYVERSSUFFIX}
${PYSITELIB}/${EGG_FILE}/PKG-INFO
${PYSITELIB}/${EGG_FILE}/SOURCES.txt
${PYSITELIB}/${EGG_FILE}/dependency_links.txt
${PYSITELIB}/${EGG_FILE}/requires.txt
${PYSITELIB}/${EGG_FILE}/top_level.txt
${PYSITELIB}/attic/__init__.py
${PYSITELIB}/attic/__init__.pyc
${PYSITELIB}/attic/__init__.pyo
${PYSITELIB}/attic/_version.py
${PYSITELIB}/attic/_version.pyc
${PYSITELIB}/attic/_version.pyo
${PYSITELIB}/attic/archive.py
${PYSITELIB}/attic/archive.pyc
${PYSITELIB}/attic/archive.pyo
${PYSITELIB}/attic/archiver.py
${PYSITELIB}/attic/archiver.pyc
${PYSITELIB}/attic/archiver.pyo
${PYSITELIB}/attic/cache.py
${PYSITELIB}/attic/cache.pyc
${PYSITELIB}/attic/cache.pyo
${PYSITELIB}/attic/chunker.so
${PYSITELIB}/attic/crypto.so
${PYSITELIB}/attic/fuse.py
${PYSITELIB}/attic/fuse.pyc
${PYSITELIB}/attic/fuse.pyo
${PYSITELIB}/attic/hashindex.so
${PYSITELIB}/attic/helpers.py
${PYSITELIB}/attic/helpers.pyc
${PYSITELIB}/attic/helpers.pyo
${PYSITELIB}/attic/key.py
${PYSITELIB}/attic/key.pyc
${PYSITELIB}/attic/key.pyo
${PYSITELIB}/attic/lrucache.py
${PYSITELIB}/attic/lrucache.pyc
${PYSITELIB}/attic/lrucache.pyo
${PYSITELIB}/attic/platform.py
${PYSITELIB}/attic/platform.pyc
${PYSITELIB}/attic/platform.pyo
${PYSITELIB}/attic/remote.py
${PYSITELIB}/attic/remote.pyc
${PYSITELIB}/attic/remote.pyo
${PYSITELIB}/attic/repository.py
${PYSITELIB}/attic/repository.pyc
${PYSITELIB}/attic/repository.pyo
${PYSITELIB}/attic/testsuite/__init__.py
${PYSITELIB}/attic/testsuite/__init__.pyc
${PYSITELIB}/attic/testsuite/__init__.pyo
${PYSITELIB}/attic/testsuite/archive.py
${PYSITELIB}/attic/testsuite/archive.pyc
${PYSITELIB}/attic/testsuite/archive.pyo
${PYSITELIB}/attic/testsuite/archiver.py
${PYSITELIB}/attic/testsuite/archiver.pyc
${PYSITELIB}/attic/testsuite/archiver.pyo
${PYSITELIB}/attic/testsuite/chunker.py
${PYSITELIB}/attic/testsuite/chunker.pyc
${PYSITELIB}/attic/testsuite/chunker.pyo
${PYSITELIB}/attic/testsuite/crypto.py
${PYSITELIB}/attic/testsuite/crypto.pyc
${PYSITELIB}/attic/testsuite/crypto.pyo
${PYSITELIB}/attic/testsuite/hashindex.py
${PYSITELIB}/attic/testsuite/hashindex.pyc
${PYSITELIB}/attic/testsuite/hashindex.pyo
${PYSITELIB}/attic/testsuite/helpers.py
${PYSITELIB}/attic/testsuite/helpers.pyc
${PYSITELIB}/attic/testsuite/helpers.pyo
${PYSITELIB}/attic/testsuite/key.py
${PYSITELIB}/attic/testsuite/key.pyc
${PYSITELIB}/attic/testsuite/key.pyo
${PYSITELIB}/attic/testsuite/lrucache.py
${PYSITELIB}/attic/testsuite/lrucache.pyc
${PYSITELIB}/attic/testsuite/lrucache.pyo
${PYSITELIB}/attic/testsuite/mock.py
${PYSITELIB}/attic/testsuite/mock.pyc
${PYSITELIB}/attic/testsuite/mock.pyo
${PYSITELIB}/attic/testsuite/platform.py
${PYSITELIB}/attic/testsuite/platform.pyc
${PYSITELIB}/attic/testsuite/platform.pyo
${PYSITELIB}/attic/testsuite/repository.py
${PYSITELIB}/attic/testsuite/repository.pyc
${PYSITELIB}/attic/testsuite/repository.pyo
${PYSITELIB}/attic/testsuite/run.py
${PYSITELIB}/attic/testsuite/run.pyc
${PYSITELIB}/attic/testsuite/run.pyo
${PYSITELIB}/attic/testsuite/xattr.py
${PYSITELIB}/attic/testsuite/xattr.pyc
${PYSITELIB}/attic/testsuite/xattr.pyo
${PYSITELIB}/attic/xattr.py
${PYSITELIB}/attic/xattr.pyc
${PYSITELIB}/attic/xattr.pyo

File Added: pkgsrc/devel/py-attic/Attic/distinfo
$NetBSD: distinfo,v 1.1 2015/04/03 09:43:47 wiz Exp $

SHA1 (Attic-0.14.tar.gz) = f76df257c86f89eb973f88dba53166997fb8fbf1
RMD160 (Attic-0.14.tar.gz) = 1fef1993c5964adb1a5c90ef39b101607c2d05b5
Size (Attic-0.14.tar.gz) = 233837 bytes
SHA1 (patch-attic_platform.py) = 1d8aaf58f1e0edad13a0fbb9a93c092eadc035f4
SHA1 (patch-attic_testsuite_archiver.py) = 1fb19c1ee64505b2b73d44d556623fe8f8315016
SHA1 (patch-attic_xattr.py) = 69ea74cef7e9e67398ad4a95a49fcfd2f7b3debe

File Added: pkgsrc/devel/py-attic/patches/Attic/patch-attic_platform.py
$NetBSD: patch-attic_platform.py,v 1.1 2015/04/03 09:43:47 wiz Exp $

Make xattr support optional.
https://github.com/jborg/attic/pull/235

--- attic/platform.py.orig	2014-05-03 13:16:06.000000000 +0000
+++ attic/platform.py
@@ -9,9 +9,13 @@ elif platform == 'FreeBSD':
 elif platform == 'Darwin':
     from attic.platform_darwin import acl_get, acl_set, API_VERSION
 else:
-    API_VERSION = 1
+    # this is a dummy acl interface for platforms for which we do not have
+    # a real implementation (or which do not support acls at all).
 
-    def acl_get(path, item, numeric_owner=False):
+    API_VERSION = 2
+
+    def acl_get(path, item, st, numeric_owner=False):
         pass
+
     def acl_set(path, item, numeric_owner=False):
         pass

File Added: pkgsrc/devel/py-attic/patches/Attic/patch-attic_testsuite_archiver.py
$NetBSD: patch-attic_testsuite_archiver.py,v 1.1 2015/04/03 09:43:47 wiz Exp $

Make xattr support optional.
https://github.com/jborg/attic/pull/235

--- attic/testsuite/archiver.py.orig	2014-10-27 20:54:50.000000000 +0000
+++ attic/testsuite/archiver.py
@@ -140,9 +140,14 @@ class ArchiverTestCase(ArchiverTestCaseB
                 os.path.join(self.input_path, 'hardlink'))
         # Symlink
         os.symlink('somewhere', os.path.join(self.input_path, 'link1'))
-        if xattr.is_enabled():
+        if xattr.is_enabled(self.input_path):
             xattr.setxattr(os.path.join(self.input_path, 'file1'), 'user.foo', b'bar')
-            xattr.setxattr(os.path.join(self.input_path, 'link1'), 'user.foo_symlink', b'bar_symlink', follow_symlinks=False)
+            # XXX this always fails for me
+            # ubuntu 14.04, on a TMP dir filesystem with user_xattr, using fakeroot
+            # same for newer ubuntu and centos.
+            # if this is supported just on specific platform, platform should be checked first,
+            # so that the test setup for all tests using it does not fail here always for others.
+            #xattr.setxattr(os.path.join(self.input_path, 'link1'), 'user.foo_symlink', b'bar_symlink', follow_symlinks=False)
         # FIFO node
         os.mkfifo(os.path.join(self.input_path, 'fifo1'))
         if has_lchflags:

File Added: pkgsrc/devel/py-attic/patches/Attic/patch-attic_xattr.py
$NetBSD: patch-attic_xattr.py,v 1.1 2015/04/03 09:43:47 wiz Exp $

Make xattr support optional.
https://github.com/jborg/attic/pull/235

--- attic/xattr.py.orig	2014-12-14 13:28:33.000000000 +0000
+++ attic/xattr.py
@@ -8,10 +8,10 @@ from ctypes import CDLL, create_string_b
 from ctypes.util import find_library
 
 
-def is_enabled():
+def is_enabled(path=None):
     """Determine if xattr is enabled on the filesystem
     """
-    with tempfile.NamedTemporaryFile() as fd:
+    with tempfile.NamedTemporaryFile(dir=path) as fd:
         try:
             setxattr(fd.fileno(), 'user.name', b'value')
         except OSError:
@@ -248,4 +248,14 @@ elif sys.platform.startswith('freebsd'):
         _check(func(path, EXTATTR_NAMESPACE_USER, name, value, len(value) if value else 0), path)
 
 else:
-    raise Exception('Unsupported platform: %s' % sys.platform)
+    # this is a dummy xattr interface for platforms for which we do not have
+    # a real implementation (or which do not support xattr at all).
+
+    def listxattr(path, *, follow_symlinks=True):
+        return []
+
+    def getxattr(path, name, *, follow_symlinks=True):
+        return
+
+    def setxattr(path, name, value, *, follow_symlinks=True):
+        return