From 37812739b21655d95127f747689d20ac6615995f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 21 Feb 2023 23:47:54 -0500 Subject: [PATCH] user/git-annex: new aport --- user/git-annex/APKBUILD | 144 +++++++++++ user/git-annex/bloomfilter-ghc9.2.diff | 302 ++++++++++++++++++++++ user/git-annex/fix-makefile.patch | 34 +++ user/git-annex/git-annex.config | 267 +++++++++++++++++++ user/git-annex/git-lfs-depend-update.diff | 18 ++ user/git-annex/git-lfs.config | 80 ++++++ 6 files changed, 845 insertions(+) create mode 100644 user/git-annex/APKBUILD create mode 100644 user/git-annex/bloomfilter-ghc9.2.diff create mode 100644 user/git-annex/fix-makefile.patch create mode 100644 user/git-annex/git-annex.config create mode 100644 user/git-annex/git-lfs-depend-update.diff create mode 100644 user/git-annex/git-lfs.config diff --git a/user/git-annex/APKBUILD b/user/git-annex/APKBUILD new file mode 100644 index 0000000..b1333e8 --- /dev/null +++ b/user/git-annex/APKBUILD @@ -0,0 +1,144 @@ +# Maintainer: Antoine Martin (ayakael) +# Contributor: Antoine Martin (ayakael) +pkgname=git-annex +pkgver=10.20230214 +_bloomfilterver=2.0.1.0 +_gitlfsver=1.2.0 +pkgrel=0 +pkgdesc="Manage files with git, without checking their contents into git" +url="http://git-annex.branchable.com" +arch="x86_64 aarch64" # limited by ghc +license="AGPL-3.0-or-later" +depends=" + curl + git + rsync + " +makedepends=" + alex + cabal + dbus-dev + file-dev + ghc + gmp-dev + gnutls-dev + happy + libffi-dev + libgsasl-dev + libxml2-dev + ncurses-dev + zlib-dev + " +source=" + https://git.joeyh.name/index.cgi/git-annex.git/snapshot/git-annex-$pkgver.tar.gz + https://hackage.haskell.org/package/bloomfilter-$_bloomfilterver/bloomfilter-$_bloomfilterver.tar.gz + https://hackage.haskell.org/package/git-lfs-$_gitlfsver/git-lfs-$_gitlfsver.tar.gz + git-annex.config + git-lfs.config + bloomfilter-ghc9.2.diff + git-lfs-depend-update.diff + fix-makefile.patch + " +subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-fish-completion $pkgname-zsh-completion" + +# Add / remove '-' between "-f" and "FeatureName" to adjust feature build +_feature_flags=" + -fAssistant \ + -fWebApp \ + -fPairing \ + -fProduction \ + -fTorrentParser \ + -fMagicMime \ + -fBenchmark \ + -f-DebugLocks \ + -fDbus \ + -fNetworkBSD \ + -fGitLfs \ + -fHttpClientRestricted \ + " +_cabal_home="$srcdir/dist" +_cabal_config="git-annex git-lfs" + +cabal_update() { + msg "Freezing $pkgname dependencies" + + # Resolve deps and generate fresh cabal.config with version constraints. + HOME="$_cabal_home" cabal update + for i in $_cabal_config; do + cd "$srcdir/$i"* + HOME="$_cabal_home" cabal v1-freeze --shadow-installed-packages + + # Add version tag at the first line. + sed -i "1i--$pkgver" "cabal.config" + + mv "cabal.config" "$startdir/$i.config" + cd "$startdir" + done + + if ! abuild checksum; then + die "Failed to update checksum, run 'abuild checksum' manually" + fi +} + +prepare() { + default_prepare + + if [ "$(head -n 1 "$srcdir/git-annex.config")" != "--$pkgver" ]; then + die "Requirements file is outdated, run 'abuild cabal_update'" + fi + + for i in $_cabal_config; do + cd "$srcdir"/$i* + ln -sf "$srcdir/$i.config" cabal.config + done + + # ghc version path + export PATH="$PATH:/usr/lib/llvm14/bin" + + # problematic depend install + HOME="$_cabal_home" cabal update + + msg "Installing dependency bloomfilter-$_bloomfilterver out-of-tree" + cd "$srcdir"/bloomfilter-* + patch -p1 -i "$srcdir"/bloomfilter-ghc9.2.diff + HOME="$_cabal_home" cabal v1-install + + msg "installing dependency git-lfs-$_gitlfsver out-of-tree" + cd "$srcdir"/git-lfs-* + patch -p1 -i "$srcdir"/git-lfs-depend-update.diff + HOME="$_cabal_home" cabal v1-install +} + +build() { + # ghc version path + export PATH="$PATH:/usr/lib/llvm14/bin" + + msg "Building git-annex-$pkgver" + HOME="$_cabal_home" cabal update + HOME="$_cabal_home" cabal v1-install \ + --only-dependencies \ + $_feature_flags + HOME="$_cabal_home" cabal v1-configure $_feature_flags + HOME="$_cabal_home" cabal v1-build -j + mv dist/build/git-annex/git-annex . + ln -s git-annex git-annex-shell +} + +check() { + "$builddir"/git-annex test +} + +package() { + HOME="$_cabal_home" make DESTDIR="$pkgdir" install +} + +sha512sums=" +60047137c1b72d9d9161275063028af020016aa87b8929164ec35e53bb6d2eac1067896cc81e14bcd46ee1a3621319c9928658d94e80d2b88188242dce79bd10 git-annex-10.20230214.tar.gz +1031cc28c5e5c1b7687355b709d436ebab1956ffd7591a010fa3852a1bc7412925a365f99937feeacf4b1a5d3c7b34bc0370707ad6e4533280dcac4ea3fa7c21 bloomfilter-2.0.1.0.tar.gz +13d8c3c7c9844e935af278b4b6dc477b4ef069a3b61a5fea5bf28aadbd3ca4b475aa23701fe7be8a9468af78771d1fabda3e74c5d4b9a3fbb77ee8b803198f65 git-lfs-1.2.0.tar.gz +e7589b54b3b50b233c12ca0d5d4b94b82087067b2e1c40ed3678663c21f18723afc738571ec846e944aed946612894df6597ae81e4232e1053df8021df313ee2 git-annex.config +dceb863b2839fa6ec01390c1806f6da17fc2468f54a45b354da56f6d5412bc83292a456c387b6374aadb4aec1a490aac4f0373843d114ca33fb858f382a472ec git-lfs.config +500ebfd84e5771ed62ad2491b3f484d9a049091cd9bced072f34e64d81fd4db8aff2cfd9a0b2278335ac86198bfca551aec6ce3a2bd07d4484393a4288d3af35 bloomfilter-ghc9.2.diff +923d9e93380238115841f2dfbe61d34bf4bf8b3806f898d259125f31f5e4c6147840b1da737385aaa96a425d0dd4bacb2ab846ec3ea608ec6de243484fdded2e git-lfs-depend-update.diff +178be26bc808f6a5c065957b04e3a32b02f0a6b5eb8c422c9d8960b6e9a1f90d689360c5ad491156783b25e80f4c2f9861e9ccff5091c302be713fa3063df670 fix-makefile.patch +" diff --git a/user/git-annex/bloomfilter-ghc9.2.diff b/user/git-annex/bloomfilter-ghc9.2.diff new file mode 100644 index 0000000..32ac639 --- /dev/null +++ b/user/git-annex/bloomfilter-ghc9.2.diff @@ -0,0 +1,302 @@ +From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001 +From: Simon Jakobi +Date: Fri, 12 Nov 2021 01:37:36 +0100 +Subject: [PATCH 1/2] Fix build with GHC 9.2 + +The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}` +introduced in base-4.5. + +Fixes #19. +--- + Data/BloomFilter.hs | 16 +++++------ + Data/BloomFilter/Hash.hs | 15 +++++----- + Data/BloomFilter/Mutable.hs | 20 +++++++------- + Data/BloomFilter/Util.hs | 55 ++++++------------------------------- + bloomfilter.cabal | 2 +- + 5 files changed, 34 insertions(+), 74 deletions(-) + +diff --git a/Data/BloomFilter.hs b/Data/BloomFilter.hs +index 2210cef..6b47c21 100644 +--- a/Data/BloomFilter.hs ++++ b/Data/BloomFilter.hs +@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..)) + import Data.Array.Base (unsafeAt) + import qualified Data.Array.Base as ST + import Data.Array.Unboxed (UArray) +-import Data.Bits ((.&.)) +-import Data.BloomFilter.Util (FastShift(..), (:*)(..)) ++import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR) ++import Data.BloomFilter.Util ((:*)(..)) + import qualified Data.BloomFilter.Mutable as MB + import qualified Data.BloomFilter.Mutable.Internal as MB + import Data.BloomFilter.Mutable.Internal (Hash, MBloom) +@@ -98,7 +98,7 @@ data Bloom a = B { + } + + instance Show (Bloom a) where +- show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } " ++ show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } " + + instance NFData (Bloom a) where + rnf !_ = () +@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt) + -- | Given a filter's mask and a hash value, compute an offset into + -- a word array and a bit offset within that word. + hashIdx :: Int -> Word32 -> (Int :* Int) +-hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask) ++hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask) + where hashMask = 31 -- bitsInHash - 1 + y = fromIntegral x .&. mask + +@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt + -- /still/ some possibility that @True@ will be returned. + elem :: a -> Bloom a -> Bool + elem elt ub = all test (hashesU ub elt) +- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0 ++ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0 + + modify :: (forall s. (MBloom s a -> ST s z)) -- ^ mutation function (result is discarded) + -> Bloom a +@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts + -- is /still/ some possibility that @True@ will be returned. + notElem :: a -> Bloom a -> Bool + notElem elt ub = any test (hashesU ub elt) +- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0 ++ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0 + + -- | Return the size of an immutable Bloom filter, in bits. + length :: Bloom a -> Int +-length = shiftL 1 . shift ++length = unsafeShiftL 1 . shift + + -- | Build an immutable Bloom filter from a seed value. The seeding + -- function populates the filter as follows. +@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert + logPower2 :: Int -> Int + logPower2 k = go 0 k + where go j 1 = j +- go j n = go (j+1) (n `shiftR` 1) ++ go j n = go (j+1) (n `unsafeShiftR` 1) + + -- $overview + -- +diff --git a/Data/BloomFilter/Hash.hs b/Data/BloomFilter/Hash.hs +index 132a3a4..d071fd4 100644 +--- a/Data/BloomFilter/Hash.hs ++++ b/Data/BloomFilter/Hash.hs +@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash + ) where + + import Control.Monad (foldM) +-import Data.Bits ((.&.), (.|.), xor) +-import Data.BloomFilter.Util (FastShift(..)) ++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor) + import Data.List (unfoldr) + import Data.Int (Int8, Int16, Int32, Int64) + import Data.Word (Word8, Word16, Word32, Word64) +@@ -91,11 +90,11 @@ class Hashable a where + -> Word64 -- ^ salt + -> IO Word64 + hashIO64 v salt = do +- let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound ++ let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound + s2 = fromIntegral salt + h1 <- hashIO32 v s1 + h2 <- hashIO32 v s2 +- return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2 ++ return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2 + + -- | Compute a 32-bit hash. + hash32 :: Hashable a => a -> Word32 +@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute + cheapHashes k v = go 0 + where go i | i == j = [] + | otherwise = hash : go (i + 1) +- where !hash = h1 + (h2 `shiftR` i) +- h1 = fromIntegral (h `shiftR` 32) ++ where !hash = h1 + (h2 `unsafeShiftR` i) ++ h1 = fromIntegral (h `unsafeShiftR` 32) + h2 = fromIntegral h + h = hashSalt64 0x9150a946c4a8966e v + j = fromIntegral k +@@ -163,7 +162,7 @@ instance Hashable Integer where + (salt `xor` 0x3ece731e) + | otherwise = hashIO32 (unfoldr go k) salt + where go 0 = Nothing +- go i = Just (fromIntegral i :: Word32, i `shiftR` 32) ++ go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32) + + instance Hashable Bool where + hashIO32 = hashOne32 +@@ -224,7 +223,7 @@ instance Hashable Word64 where + -- | A fast unchecked shift. Nasty, but otherwise GHC 6.8.2 does a + -- test and branch on every shift. + div4 :: CSize -> CSize +-div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2) ++div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2) + + alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32 + alignedHash ptr bytes salt +diff --git a/Data/BloomFilter/Mutable.hs b/Data/BloomFilter/Mutable.hs +index edff1fc..0bb5cc9 100644 +--- a/Data/BloomFilter/Mutable.hs ++++ b/Data/BloomFilter/Mutable.hs +@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable + import Control.Monad (liftM, forM_) + import Control.Monad.ST (ST) + import Data.Array.Base (unsafeRead, unsafeWrite) +-import Data.Bits ((.&.), (.|.)) ++import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR) + import Data.BloomFilter.Array (newArray) +-import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo) ++import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo) + import Data.Word (Word32) + import Data.BloomFilter.Mutable.Internal + +@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes + | numBits > maxHash = maxHash + | isPowerOfTwo numBits = numBits + | otherwise = nextPowerOfTwo numBits +- numElems = max 2 (twoBits `shiftR` logBitsInHash) +- numBytes = numElems `shiftL` logBytesInHash +- trueBits = numElems `shiftL` logBitsInHash ++ numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash) ++ numBytes = numElems `unsafeShiftL` logBytesInHash ++ trueBits = numElems `unsafeShiftL` logBitsInHash + shft = logPower2 trueBits + msk = trueBits - 1 + isPowerOfTwo n = n .&. (n - 1) == 0 +@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash)) + -- | Given a filter's mask and a hash value, compute an offset into + -- a word array and a bit offset within that word. + hashIdx :: Int -> Word32 -> (Int :* Int) +-hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask) ++hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask) + where hashMask = 31 -- bitsInHash - 1 + y = fromIntegral x .&. msk + +@@ -125,7 +125,7 @@ insert mb elt = do + let mu = bitArray mb + forM_ (hashesM mb elt) $ \(word :* bit) -> do + old <- unsafeRead mu word +- unsafeWrite mu word (old .|. (1 `shiftL` bit)) ++ unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit)) + + -- | Query a mutable Bloom filter for membership. If the value is + -- present, return @True@. If the value is not present, there is +@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt) + where mu = bitArray mb + loop ((word :* bit):wbs) = do + i <- unsafeRead mu word +- if i .&. (1 `shiftL` bit) == 0 ++ if i .&. (1 `unsafeShiftL` bit) == 0 + then return False + else loop wbs + loop _ = return True +@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt) + + -- | Return the size of a mutable Bloom filter, in bits. + length :: MBloom s a -> Int +-length = shiftL 1 . shift ++length = unsafeShiftL 1 . shift + + + -- | Slow, crummy way of computing the integer log of an integer known +@@ -153,7 +153,7 @@ length = shiftL 1 . shift + logPower2 :: Int -> Int + logPower2 k = go 0 k + where go j 1 = j +- go j n = go (j+1) (n `shiftR` 1) ++ go j n = go (j+1) (n `unsafeShiftR` 1) + + -- $overview + -- +diff --git a/Data/BloomFilter/Util.hs b/Data/BloomFilter/Util.hs +index 7f695dc..6ade6e5 100644 +--- a/Data/BloomFilter/Util.hs ++++ b/Data/BloomFilter/Util.hs +@@ -2,15 +2,11 @@ + + module Data.BloomFilter.Util + ( +- FastShift(..) +- , nextPowerOfTwo ++ nextPowerOfTwo + , (:*)(..) + ) where + +-import Data.Bits ((.|.)) +-import qualified Data.Bits as Bits +-import GHC.Base +-import GHC.Word ++import Data.Bits ((.|.), unsafeShiftR) + + -- | A strict pair type. + data a :* b = !a :* !b +@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int + {-# INLINE nextPowerOfTwo #-} + nextPowerOfTwo n = + let a = n - 1 +- b = a .|. (a `shiftR` 1) +- c = b .|. (b `shiftR` 2) +- d = c .|. (c `shiftR` 4) +- e = d .|. (d `shiftR` 8) +- f = e .|. (e `shiftR` 16) +- g = f .|. (f `shiftR` 32) -- in case we're on a 64-bit host ++ b = a .|. (a `unsafeShiftR` 1) ++ c = b .|. (b `unsafeShiftR` 2) ++ d = c .|. (c `unsafeShiftR` 4) ++ e = d .|. (d `unsafeShiftR` 8) ++ f = e .|. (e `unsafeShiftR` 16) ++ g = f .|. (f `unsafeShiftR` 32) -- in case we're on a 64-bit host + !h = g + 1 + in h +- +--- | This is a workaround for poor optimisation in GHC 6.8.2. It +--- fails to notice constant-width shifts, and adds a test and branch +--- to every shift. This imposes about a 10% performance hit. +-class FastShift a where +- shiftL :: a -> Int -> a +- shiftR :: a -> Int -> a +- +-instance FastShift Word32 where +- {-# INLINE shiftL #-} +- shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#) +- +- {-# INLINE shiftR #-} +- shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#) +- +-instance FastShift Word64 where +- {-# INLINE shiftL #-} +- shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#) +- +- {-# INLINE shiftR #-} +- shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#) +- +-instance FastShift Int where +- {-# INLINE shiftL #-} +- shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#) +- +- {-# INLINE shiftR #-} +- shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#) +- +-instance FastShift Integer where +- {-# INLINE shiftL #-} +- shiftL = Bits.shiftL +- +- {-# INLINE shiftR #-} +- shiftR = Bits.shiftR +diff --git a/bloomfilter.cabal b/bloomfilter.cabal +index 821a5d7..c621f7f 100644 +--- a/bloomfilter.cabal ++++ b/bloomfilter.cabal +@@ -18,7 +18,7 @@ extra-source-files: README.markdown cbits/lookup3.c cbits/lookup3.h + library + build-depends: + array, +- base >= 4.4 && < 5, ++ base >= 4.5 && < 5, + bytestring >= 0.9, + deepseq + exposed-modules: Data.BloomFilter + diff --git a/user/git-annex/fix-makefile.patch b/user/git-annex/fix-makefile.patch new file mode 100644 index 0000000..cde83b5 --- /dev/null +++ b/user/git-annex/fix-makefile.patch @@ -0,0 +1,34 @@ +diff --git a/Makefile b/Makefile +index 437afb7ee2a..c471026dede 100644 +--- a/Makefile ++++ b/Makefile +@@ -85,24 +85,24 @@ install-docs: docs install-mans + rsync -a --delete html/ $(DESTDIR)$(PREFIX)/$(SHAREDIR)/doc/git-annex/html/; \ + fi + +-install-bins: build ++install-bins: + install -d $(DESTDIR)$(PREFIX)/bin + install git-annex $(DESTDIR)$(PREFIX)/bin + ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell + ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-remote-tor-annex + +-install-desktop: build Build/InstallDesktopFile ++install-desktop: Build/InstallDesktopFile + ./Build/InstallDesktopFile $(PREFIX)/bin/git-annex || true + +-install-completions: build ++install-completions: + install -d $(DESTDIR)$(PREFIX)/$(SHAREDIR)/bash-completion/completions + install -m 0644 bash-completion.bash $(DESTDIR)$(PREFIX)/$(SHAREDIR)/bash-completion/completions/git-annex + install -d $(DESTDIR)$(ZSH_COMPLETIONS_PATH) + ./git-annex --zsh-completion-script git-annex 2>/dev/null \ + > $(DESTDIR)$(ZSH_COMPLETIONS_PATH)/_git-annex +- install -d $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/vendor_completions.d ++ install -d $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/completions + ./git-annex --fish-completion-script git-annex 2>/dev/null \ +- > $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/vendor_completions.d/git-annex.fish ++ > $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/completions/git-annex.fish + + test: git-annex git-annex-shell + ./git-annex test diff --git a/user/git-annex/git-annex.config b/user/git-annex/git-annex.config new file mode 100644 index 0000000..d18d920 --- /dev/null +++ b/user/git-annex/git-annex.config @@ -0,0 +1,267 @@ +--10.20230214 +constraints: Cabal ==3.8.1.0, + Cabal-syntax ==3.8.1.0, + DAV ==1.3.4, + Glob ==0.10.2, + HUnit ==1.6.2.0, + IfElse ==0.85, + OneTuple ==0.3.1, + Only ==0.1, + QuickCheck ==2.14.2, + SafeSemaphore ==0.10.1, + StateVar ==1.2.2, + adjunctions ==4.4.2, + aeson ==2.1.0.0, + alex ==3.2.7.1, + ansi-terminal ==0.11.4, + ansi-wl-pprint ==0.6.9, + appar ==0.1.8, + array ==0.5.4.0, + asn1-encoding ==0.9.6, + asn1-parse ==0.9.5, + asn1-types ==0.3.4, + assoc ==1.0.2, + async ==2.2.4, + attoparsec ==0.14.4, + attoparsec-iso8601 ==1.1.0.0, + auto-update ==0.1.6, + aws ==0.24, + base ==4.17.0.0, + base-compat ==0.12.2, + base-compat-batteries ==0.12.2, + base-orphans ==0.8.7, + base16-bytestring ==1.0.2.0, + base64-bytestring ==1.2.1.0, + basement ==0.0.15, + bencode ==0.6.1.1, + bifunctors ==5.5.14, + binary ==0.8.9.1, + binary-orphans ==1.0.3, + bitvec ==1.1.3.0, + blaze-builder ==0.4.2.2, + blaze-html ==0.9.1.2, + blaze-markup ==0.8.2.8, + bloomfilter ==2.0.1.0, + bsb-http-chunked ==0.0.0.4, + byteable ==0.1.1, + byteorder ==1.0.4, + bytestring ==0.11.3.1, + cabal-doctest ==1.0.9, + call-stack ==0.4.0, + case-insensitive ==1.2.1.0, + cassava ==0.5.3.0, + cereal ==0.5.8.3, + cipher-aes ==0.2.11, + clientsession ==0.9.1.2, + clock ==0.8.3, + code-page ==0.2.1, + colour ==2.3.6, + comonad ==5.0.8, + concurrent-output ==1.10.17, + conduit ==1.3.4.3, + conduit-extra ==1.3.6, + connection ==0.3.1, + containers ==0.6.6, + contravariant ==1.5.5, + cookie ==0.4.6, + cprng-aes ==0.6.1, + criterion ==1.6.0.0, + criterion-measurement ==0.2.1.0, + crypto-api ==0.13.3, + crypto-cipher-types ==0.0.9, + crypto-random ==0.0.9, + cryptohash-md5 ==0.11.101.0, + cryptohash-sha1 ==0.11.101.0, + cryptonite ==0.30, + cryptonite-conduit ==0.2.2, + css-text ==0.1.3.0, + data-default ==0.7.1.1, + data-default-class ==0.1.2.0, + data-default-instances-containers ==0.0.1, + data-default-instances-dlist ==0.0.1, + data-default-instances-old-locale ==0.0.1, + data-fix ==0.3.2, + dbus ==1.2.27, + deepseq ==1.4.8.0, + dense-linear-algebra ==0.1.0.0, + directory ==1.3.7.1, + disk-free-space ==0.1.0.1, + distributive ==0.6.2.1, + dlist ==1.0, + easy-file ==0.2.2, + edit-distance ==0.2.2.1, + email-validate ==2.3.2.18, + entropy ==0.4.1.10, + exceptions ==0.10.5, + fast-logger ==3.1.2, + fdo-notify ==0.3.1, + feed ==1.3.2.1, + file-embed ==0.0.15.0, + filepath ==1.4.2.2, + filepath-bytestring ==1.4.2.1.12, + free ==5.1.10, + generically ==0.1, + ghc-bignum ==1.3, + ghc-boot-th ==9.4.4, + ghc-prim ==0.9.0, + git-lfs ==1.2.0, + happy ==1.20.1.1, + hashable ==1.4.2.0, + haskeline ==0.8.2, + hinotify ==0.4.1, + hjsmin ==0.2.1, + hourglass ==0.2.12, + hsc2hs ==0.68.9, + http-api-data ==0.5, + http-client ==0.7.13.1, + http-client-restricted ==0.0.5, + http-client-tls ==0.3.6.1, + http-conduit ==2.3.8, + http-date ==0.0.11, + http-types ==0.12.3, + http2 ==4.0.0, + indexed-traversable ==0.1.2, + indexed-traversable-instances ==0.1.1.1, + integer-gmp ==1.1, + integer-logarithms ==1.0.3.1, + invariant ==0.6, + iproute ==1.7.12, + js-chart ==2.9.4.1, + kan-extensions ==5.2.5, + language-javascript ==0.7.1.0, + lens ==5.2, + libyaml ==0.1.2, + lift-type ==0.1.1.1, + lifted-base ==0.2.3.12, + magic ==1.1, + math-functions ==0.3.4.2, + memory ==0.18.0, + microlens ==0.4.13.1, + microlens-th ==0.4.3.11, + microstache ==1.0.2.3, + mime-types ==0.1.1.0, + monad-control ==1.0.3.1, + monad-logger ==0.3.39, + monad-loops ==0.4.3, + mono-traversable ==1.0.15.3, + mountpoints ==1.0.2, + mtl ==2.2.2, + mwc-random ==0.15.0.2, + network ==3.1.2.7, + network-bsd ==2.8.1.0, + network-byte-order ==0.1.6, + network-info ==0.2.1, + network-multicast ==0.3.2, + network-uri ==2.6.4.2, + old-locale ==1.0.0.7, + old-time ==1.1.0.3, + optparse-applicative ==0.17.0.0, + parallel ==3.2.2.0, + parsec ==3.1.15.0, + path-pieces ==0.2.1, + pem ==0.2.4, + persistent ==2.14.4.4, + persistent-sqlite ==2.13.1.1, + persistent-template ==2.12.0.0, + pretty ==1.1.3.6, + primitive ==0.7.4.0, + process ==1.6.16.0, + profunctors ==5.6.2, + psqueues ==0.2.7.3, + random ==1.2.1.1, + recv ==0.1.0, + reflection ==2.1.6, + regex-base ==0.94.0.2, + regex-tdfa ==1.3.2, + resource-pool ==0.4.0.0, + resourcet ==1.2.6, + rts ==1.0.2, + safe ==0.3.19, + safe-exceptions ==0.1.7.3, + sandi ==0.5, + scientific ==0.3.7.0, + securemem ==0.1.10, + semialign ==1.2.0.1, + semigroupoids ==5.3.7, + semigroups ==0.20, + setenv ==0.1.1.3, + shakespeare ==2.0.30, + silently ==1.2.5.3, + simple-sendfile ==0.2.30, + skein ==1.0.9.4, + socks ==0.6.1, + split ==0.2.3.5, + splitmix ==0.1.0.4, + statistics ==0.16.1.2, + stm ==2.5.1.0, + stm-chans ==3.0.0.6, + streaming-commons ==0.2.2.5, + strict ==0.4.0.1, + syb ==0.7.2.2, + tagged ==0.8.7, + tagsoup ==0.14.8, + tasty ==1.4.3, + tasty-hunit ==0.10.0.3, + tasty-quickcheck ==0.10.2, + tasty-rerun ==1.1.18, + template-haskell ==2.19.0.0, + terminal-size ==0.3.3, + terminfo ==0.4.1.5, + text ==2.0.1, + text-short ==0.1.5, + th-abstraction ==0.4.5.0, + th-compat ==0.1.4, + th-lift ==0.8.2, + th-lift-instances ==0.1.20, + these ==1.1.1.1, + time ==1.12.2, + time-compat ==1.9.6.1, + time-locale-compat ==0.1.1.5, + time-manager ==0.0.0, + tls ==1.6.0, + tls-session-manager ==0.0.4, + torrent ==10000.1.1, + transformers ==0.5.6.2, + transformers-base ==0.4.6, + transformers-compat ==0.7.2, + typed-process ==0.2.10.1, + unix ==2.7.3, + unix-compat ==0.6, + unix-time ==0.4.8, + unliftio ==0.2.23.0, + unliftio-core ==0.2.1.0, + unordered-containers ==0.2.19.1, + utf8-string ==1.0.2, + uuid ==1.3.15, + uuid-types ==1.0.5, + vault ==0.3.1.5, + vector ==0.13.0.0, + vector-algorithms ==0.9.0.1, + vector-binary-instances ==0.2.5.2, + vector-stream ==0.1.0.0, + vector-th-unbox ==0.2.2, + void ==0.7.3, + wai ==3.2.3, + wai-app-static ==3.1.7.4, + wai-extra ==3.1.13.0, + wai-logger ==2.4.0, + warp ==3.3.24, + warp-tls ==3.3.5, + witherable ==0.4.2, + word8 ==0.1.3, + x509 ==1.7.7, + x509-store ==1.6.9, + x509-system ==1.6.7, + x509-validation ==1.6.12, + xml-conduit ==1.9.1.1, + xml-hamlet ==0.5.0.2, + xml-types ==0.3.8, + xss-sanitize ==0.3.7.1, + yaml ==0.11.10.0, + yesod ==1.6.2.1, + yesod-core ==1.6.24.1, + yesod-form ==1.7.4, + yesod-persistent ==1.6.0.8, + yesod-static ==1.6.1.0, + z-attoparsec-z-attoparsec-internal ==0.14.4, + zlib ==0.6.3.0 diff --git a/user/git-annex/git-lfs-depend-update.diff b/user/git-annex/git-lfs-depend-update.diff new file mode 100644 index 0000000..3936b04 --- /dev/null +++ b/user/git-annex/git-lfs-depend-update.diff @@ -0,0 +1,18 @@ +diff --git a/git-lfs.cabal b/git-lfs.cabal +index c4a116993af..05aba2c5cf9 100644 +--- a/git-lfs.cabal ++++ b/git-lfs.cabal +@@ -23,11 +23,11 @@ Library + base >= 4.5 && < 5, + http-client >= 0.5 && < 0.8, + http-types >= 0.7 && < 0.13, +- aeson >= 1.3 && < 2.1, ++ aeson >= 1.3 && <= 2.2, + network-uri >= 2.6 && < 2.8, + case-insensitive >= 1.2 && < 1.3, + containers >= 0.5 && < 0.7, +- text >= 1.2 && < 1.3, ++ text >= 1.2 && < 2.1, + bytestring >= 0.10 && < 0.12 + + source-repository head diff --git a/user/git-annex/git-lfs.config b/user/git-annex/git-lfs.config new file mode 100644 index 0000000..e28cca9 --- /dev/null +++ b/user/git-annex/git-lfs.config @@ -0,0 +1,80 @@ +--10.20230214 +constraints: OneTuple ==0.3.1, + QuickCheck ==2.14.2, + StateVar ==1.2.2, + aeson ==2.1.0.0, + appar ==0.1.8, + array ==0.5.4.0, + assoc ==1.0.2, + async ==2.2.4, + attoparsec ==0.14.4, + base ==4.17.0.0, + base-compat ==0.12.2, + base-compat-batteries ==0.12.2, + base-orphans ==0.8.7, + base64-bytestring ==1.2.1.0, + bifunctors ==5.5.14, + binary ==0.8.9.1, + blaze-builder ==0.4.2.2, + byteorder ==1.0.4, + bytestring ==0.11.3.1, + case-insensitive ==1.2.1.0, + comonad ==5.0.8, + containers ==0.6.6, + contravariant ==1.5.5, + cookie ==0.4.6, + data-default-class ==0.1.2.0, + data-fix ==0.3.2, + deepseq ==1.4.8.0, + directory ==1.3.7.1, + distributive ==0.6.2.1, + dlist ==1.0, + exceptions ==0.10.5, + filepath ==1.4.2.2, + generically ==0.1, + ghc-bignum ==1.3, + ghc-boot-th ==9.4.4, + ghc-prim ==0.9.0, + hashable ==1.4.2.0, + http-client ==0.7.13.1, + http-types ==0.12.3, + indexed-traversable ==0.1.2, + indexed-traversable-instances ==0.1.1.1, + integer-logarithms ==1.0.3.1, + iproute ==1.7.12, + mime-types ==0.1.1.0, + mtl ==2.2.2, + network ==3.1.2.7, + network-uri ==2.6.4.2, + parsec ==3.1.15.0, + pretty ==1.1.3.6, + primitive ==0.7.4.0, + process ==1.6.16.0, + random ==1.2.1.1, + rts ==1.0.2, + scientific ==0.3.7.0, + semialign ==1.2.0.1, + semigroupoids ==5.3.7, + splitmix ==0.1.0.4, + stm ==2.5.1.0, + streaming-commons ==0.2.2.5, + strict ==0.4.0.1, + tagged ==0.8.7, + template-haskell ==2.19.0.0, + text ==2.0.1, + text-short ==0.1.5, + th-abstraction ==0.4.5.0, + th-compat ==0.1.4, + these ==1.1.1.1, + time ==1.12.2, + time-compat ==1.9.6.1, + transformers ==0.5.6.2, + transformers-compat ==0.7.2, + unix ==2.7.3, + unordered-containers ==0.2.19.1, + uuid-types ==1.0.5, + vector ==0.13.0.0, + vector-stream ==0.1.0.0, + witherable ==0.4.2, + z-attoparsec-z-attoparsec-internal ==0.14.4, + zlib ==0.6.3.0