Thu Nov 2 03:15:01 2023 UTC ()
sysutils/git-annex: import git-annex-10.20230926

git-annex allows managing files with git, without checking the file
contents into git. While that may seem paradoxical, it is useful when
dealing with files larger than git can currently easily handle, whether due
to limitations in memory, time, or disk space.

It can store large files in many places, from local hard drives, to a large
number of cloud storage services, including S3, WebDAV, and rsync, and many
other usable via plugins. Files can be stored encrypted with gpg, so that
the cloud storage provider cannot see your data. git-annex keeps track of
where each file is stored, so it knows how many copies are available, and
has many facilities to ensure your data is preserved.

git-annex can also be used to keep a folder in sync between computers,
noticing when files are changed, and automatically committing them to git
and transferring them to other computers. The git-annex webapp makes it
easy to set up and use git-annex this way.


(pho)
diff -r0 -r1.1 pkgsrc/sysutils/git-annex/DESCR
diff -r0 -r1.1 pkgsrc/sysutils/git-annex/Makefile
diff -r0 -r1.1 pkgsrc/sysutils/git-annex/PLIST
diff -r0 -r1.1 pkgsrc/sysutils/git-annex/distinfo
diff -r0 -r1.1 pkgsrc/sysutils/git-annex/options.mk
diff -r0 -r1.1 pkgsrc/sysutils/git-annex/patches/patch-Utility_DirWatcher_Kqueue.hs
diff -r0 -r1.1 pkgsrc/sysutils/git-annex/patches/patch-git-annex.cabal

File Added: pkgsrc/sysutils/git-annex/DESCR
git-annex allows managing files with git, without checking the file
contents into git. While that may seem paradoxical, it is useful when
dealing with files larger than git can currently easily handle, whether due
to limitations in memory, time, or disk space.

It can store large files in many places, from local hard drives, to a large
number of cloud storage services, including S3, WebDAV, and rsync, and many
other usable via plugins. Files can be stored encrypted with gpg, so that
the cloud storage provider cannot see your data. git-annex keeps track of
where each file is stored, so it knows how many copies are available, and
has many facilities to ensure your data is preserved.

git-annex can also be used to keep a folder in sync between computers,
noticing when files are changed, and automatically committing them to git
and transferring them to other computers. The git-annex webapp makes it
easy to set up and use git-annex this way.

File Added: pkgsrc/sysutils/git-annex/Makefile
# $NetBSD: Makefile,v 1.1 2023/11/02 03:15:01 pho Exp $

DISTNAME=	git-annex-10.20230926
PKGNAME=	${DISTNAME}
CATEGORIES=	sysutils

MAINTAINER=	pkgsrc-users@NetBSD.org
COMMENT=	Manage files with git, without checking their contents into git
HOMEPAGE=	https://git-annex.branchable.com/
LICENSE=	gnu-agpl-v3

# Don't build git-annex as a dynamic executable. It will depend on like 270
# shared libraries and the dynamic linker will spend 5 seconds each time
# git-annex is invoked. This is unacceptable.
HASKELL_ENABLE_DYNAMIC_EXECUTABLE=	no

.include "options.mk"

# Optional dependencies that we always enable
CONFIGURE_ARGS+=	-f Pairing
.include "../../net/hs-network-multicast/buildlink3.mk"
.include "../../net/hs-network-info/buildlink3.mk"

CONFIGURE_ARGS+=	-f TorrentParser
.include "../../net/hs-torrent/buildlink3.mk"

CONFIGURE_ARGS+=	-f MagicMime
.include "../../misc/hs-magic/buildlink3.mk"

CONFIGURE_ARGS+=	-f Benchmark
.include "../../benchmarks/hs-criterion/buildlink3.mk"

# Mandatory dependencies
.include "../../converters/hs-aeson/buildlink3.mk"
.include "../../devel/hs-ansi-terminal/buildlink3.mk"
.include "../../devel/hs-async/buildlink3.mk"
.include "../../textproc/hs-attoparsec/buildlink3.mk"
.include "../../net/hs-aws/buildlink3.mk"
.include "../../devel/hs-bloomfilter/buildlink3.mk"
.include "../../devel/hs-byteable/buildlink3.mk"
.include "../../textproc/hs-case-insensitive/buildlink3.mk"
.include "../../devel/hs-concurrent-output/buildlink3.mk"
.include "../../devel/hs-conduit/buildlink3.mk"
.include "../../security/hs-crypto-api/buildlink3.mk"
.include "../../devel/hs-data-default/buildlink3.mk"
.include "../../www/hs-dav/buildlink3.mk"
.include "../../sysutils/hs-disk-free-space/buildlink3.mk"
.include "../../devel/hs-dlist/buildlink3.mk"
.include "../../textproc/hs-edit-distance/buildlink3.mk"
.include "../../www/hs-feed/buildlink3.mk"
.include "../../sysutils/hs-filepath-bytestring/buildlink3.mk"
.include "../../math/hs-free/buildlink3.mk"
.include "../../devel/hs-git-lfs/buildlink3.mk"
.include "../../www/hs-http-client/buildlink3.mk"
.include "../../www/hs-http-client-restricted/buildlink3.mk"
.include "../../www/hs-http-client-tls/buildlink3.mk"
.include "../../www/hs-http-conduit/buildlink3.mk"
.include "../../www/hs-http-types/buildlink3.mk"
.include "../../devel/hs-ifelse/buildlink3.mk"
.include "../../devel/hs-memory/buildlink3.mk"
.include "../../devel/hs-microlens/buildlink3.mk"
.include "../../devel/hs-monad-control/buildlink3.mk"
.include "../../devel/hs-monad-logger/buildlink3.mk"
.include "../../net/hs-network/buildlink3.mk"
.include "../../net/hs-network-bsd/buildlink3.mk"
.include "../../net/hs-network-uri/buildlink3.mk"
.include "../../devel/hs-old-locale/buildlink3.mk"
.include "../../devel/hs-optparse-applicative/application.mk"
.include "../../devel/hs-persistent/buildlink3.mk"
.include "../../devel/hs-persistent-template/buildlink3.mk"
.include "../../databases/hs-persistent-sqlite/buildlink3.mk"
.include "../../devel/hs-QuickCheck/buildlink3.mk"
.include "../../devel/hs-random/buildlink3.mk"
.include "../../textproc/hs-regex-tdfa/buildlink3.mk"
.include "../../devel/hs-resourcet/buildlink3.mk"
.include "../../devel/hs-safesemaphore/buildlink3.mk"
.include "../../converters/hs-sandi/buildlink3.mk"
.include "../../security/hs-securemem/buildlink3.mk"
.include "../../net/hs-socks/buildlink3.mk"
.include "../../devel/hs-split/buildlink3.mk"
.include "../../devel/hs-stm-chans/buildlink3.mk"
.include "../../textproc/hs-tagsoup/buildlink3.mk"
.include "../../devel/hs-tasty/buildlink3.mk"
.include "../../devel/hs-tasty-hunit/buildlink3.mk"
.include "../../devel/hs-tasty-quickcheck/buildlink3.mk"
.include "../../devel/hs-tasty-rerun/buildlink3.mk"
.include "../../devel/hs-unix-compat/buildlink3.mk"
.include "../../devel/hs-unliftio-core/buildlink3.mk"
.include "../../devel/hs-unordered-containers/buildlink3.mk"
.include "../../devel/hs-utf8-string/buildlink3.mk"
.include "../../devel/hs-uuid/buildlink3.mk"
.include "../../devel/hs-vector/buildlink3.mk"
.include "../../security/hs-crypton/buildlink3.mk"
.include "../../mk/haskell.mk"
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/sysutils/git-annex/PLIST
@comment $NetBSD: PLIST,v 1.1 2023/11/02 03:15:01 pho Exp $
bin/git-annex
share/doc/${HS_PLATFORM}/${PKGNAME}/COPYRIGHT

File Added: pkgsrc/sysutils/git-annex/distinfo
$NetBSD: distinfo,v 1.1 2023/11/02 03:15:01 pho Exp $

BLAKE2s (git-annex-10.20230926.tar.gz) = 3d4ac090850887661cfed88b44472848322773c7fec8eec979dca55acd5d5741
SHA512 (git-annex-10.20230926.tar.gz) = 68c10f550801b056ce9de12e14d0fe53305c6f1e3ca937066d8a8563f869a646548c9c42808f57572c7bd3bc8501bf5a448114a4b85c7e5dd27875d839aee14d
Size (git-annex-10.20230926.tar.gz) = 1395056 bytes
SHA1 (patch-Utility_DirWatcher_Kqueue.hs) = d4ef7908d32b9396cb3f5661f78f7d7176ab6e47
SHA1 (patch-git-annex.cabal) = 986084229906436cabf1bfdad17af3990de70f81

File Added: pkgsrc/sysutils/git-annex/options.mk
# $NetBSD: options.mk,v 1.1 2023/11/02 03:15:01 pho Exp $

PKG_OPTIONS_VAR=	PKG_OPTIONS.git-annex
PKG_SUPPORTED_OPTIONS=	git-annex-assistant dbus
PKG_SUGGESTED_OPTIONS=	${PKG_SUPPORTED_OPTIONS}

.include "../../mk/bsd.prefs.mk"
.include "../../mk/bsd.options.mk"

###
### Enable git-annex assistant, webapp, and watch command
###
.if ${PKG_OPTIONS:Mgit-annex-assistant}
CONFIGURE_ARGS+=	-f assistant
.  include "../../devel/hs-blaze-builder/buildlink3.mk"
.  include "../../www/hs-clientsession/buildlink3.mk"
.  include "../../sysutils/hs-mountpoints/buildlink3.mk"
.  include "../../www/hs-path-pieces/buildlink3.mk"
.  include "../../textproc/hs-shakespeare/buildlink3.mk"
.  include "../../www/hs-wai/buildlink3.mk"
.  include "../../www/hs-wai-extra/buildlink3.mk"
.  include "../../www/hs-warp/buildlink3.mk"
.  include "../../www/hs-warp-tls/buildlink3.mk"
.  include "../../www/hs-yesod/buildlink3.mk"
.  include "../../www/hs-yesod-core/buildlink3.mk"
.  include "../../www/hs-yesod-form/buildlink3.mk"
.  include "../../www/hs-yesod-static/buildlink3.mk"
.  if ${OPSYS} == "Linux"
.    include "../../devel/hs-hinotify/buildlink3.mk"
.  elif ${OPSYS} == "Darwin"
.    include "../../devel/hs-hfsevents/buildlink3.mk"
.  endif
.else
CONFIGURE_ARGS+=	-f-assistant
.endif

###
### Enable D-Bus and desktop notification support
###
.if ${PKG_OPTIONS:Mdbus}
CONFIGURE_ARGS+=	-f Dbus
.  include "../../sysutils/hs-dbus/buildlink3.mk"
.  include "../../sysutils/hs-fdo-notify/buildlink3.mk"
.else
CONFIGURE_ARGS+=	-f-Dbus
.endif

File Added: pkgsrc/sysutils/git-annex/patches/patch-Utility_DirWatcher_Kqueue.hs
$NetBSD: patch-Utility_DirWatcher_Kqueue.hs,v 1.1 2023/11/02 03:15:01 pho Exp $

Fix build with GHC 9.6.

--- Utility/DirWatcher/Kqueue.hs.orig	2023-11-02 02:54:22.254338562 +0000
+++ Utility/DirWatcher/Kqueue.hs
@@ -82,8 +82,8 @@ getDirInfo dir = do
 	return $ DirInfo dir contents
   where
 	getDirEnt f = catchMaybeIO $ do
-		s <- getSymbolicLinkStatus (dir </> f)
-		return $ DirEnt f (fileID s) (isDirectory s)
+		s <- Posix.getSymbolicLinkStatus (dir </> f)
+		return $ DirEnt f (Posix.fileID s) (Posix.isDirectory s)
 
 {- Difference between the dirCaches of two DirInfos. -}
 (//) :: DirInfo -> DirInfo -> [Change]
@@ -266,4 +266,4 @@ runHooks kq hooks = do
 		Just a -> a (changedFile change) s
 
 	withstatus change a = maybe noop (a change) =<<
-		(catchMaybeIO (getSymbolicLinkStatus (changedFile change)))
+		(catchMaybeIO (Posix.getSymbolicLinkStatus (changedFile change)))

File Added: pkgsrc/sysutils/git-annex/patches/patch-git-annex.cabal
$NetBSD: patch-git-annex.cabal,v 1.1 2023/11/02 03:15:01 pho Exp $

No reason to restrict D-Bus support to Linux. It's a cross-platform thing,
unlike SystemD.

--- git-annex.cabal.orig	2023-11-02 01:33:00.571134681 +0000
+++ git-annex.cabal
@@ -460,7 +460,6 @@ Executable git-annex
             Other-Modules: Utility.DirWatcher.Kqueue
   
   if flag(Dbus)
-    if (os(linux))
       Build-Depends: dbus (>= 0.10.7), fdo-notify (>= 0.3)
       CPP-Options: -DWITH_DBUS -DWITH_DESKTOP_NOTIFY -DWITH_DBUS_NOTIFICATIONS
       Other-Modules: Utility.DBus