mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 13:58:15 -05:00
gnu: git-annex: Add support for v4 of S3 support.
* gnu/packages/haskell-apps.scm (git-annex)[source]: Add patch. * gnu/packages/patches/git-annex-S3v4.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
232f2d2634
commit
5de2246f40
3 changed files with 81 additions and 1 deletions
|
@ -974,6 +974,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ghostscript-no-header-id.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-uuid.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
|
||||
%D%/packages/patches/git-annex-S3v4.patch \
|
||||
%D%/packages/patches/glib-tests-timer.patch \
|
||||
%D%/packages/patches/glibc-CVE-2015-5180.patch \
|
||||
%D%/packages/patches/glibc-CVE-2015-7547.patch \
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
|
||||
;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
|
||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
|
||||
;;; Copyright © 2020 Brian Leung <bkleung89@gmail.com>
|
||||
|
@ -37,6 +37,7 @@ (define-module (gnu packages haskell-apps)
|
|||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system haskell)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages gl)
|
||||
|
@ -347,6 +348,7 @@ (define-public git-annex
|
|||
(method url-fetch)
|
||||
(uri (string-append "https://hackage.haskell.org/package/"
|
||||
"git-annex/git-annex-" version ".tar.gz"))
|
||||
(patches (search-patches "git-annex-S3v4.patch"))
|
||||
(sha256
|
||||
(base32 "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl"))))
|
||||
(build-system haskell-build-system)
|
||||
|
|
77
gnu/packages/patches/git-annex-S3v4.patch
Normal file
77
gnu/packages/patches/git-annex-S3v4.patch
Normal file
|
@ -0,0 +1,77 @@
|
|||
From the upstream commit, with the changes to CHANGELOG and the docs
|
||||
folder removed.
|
||||
|
||||
From 1532d67c3ecf452b8c86bcc5928525398755cd01 Mon Sep 17 00:00:00 2001
|
||||
From: Joey Hess <joeyh@joeyh.name>
|
||||
Date: Thu, 7 May 2020 13:18:11 -0400
|
||||
Subject: [PATCH] S3: Support signature=v4
|
||||
|
||||
To use S3 Signature Version 4. Some S3 services seem to require v4, while
|
||||
others may only support v2, which remains the default.
|
||||
|
||||
I'm also not sure if v4 works correctly in all cases, there is this
|
||||
upstream bug report: https://github.com/aristidb/aws/issues/262
|
||||
I've only tested it against the default S3 endpoint.
|
||||
---
|
||||
CHANGELOG | 3 +++
|
||||
Remote/S3.hs | 23 ++++++++++++++++++-
|
||||
..._3bbdf23c8a4a480f4f6b8e8a2f8ddecd._comment | 13 +++++++++++
|
||||
..._854390b9a781da82ecb85ad85eecad04._comment | 13 +++++++++++
|
||||
doc/special_remotes/S3.mdwn | 4 ++++
|
||||
..._cf57e8dbd9fdc7c487565b61808b6bb2._comment | 10 ++++++++
|
||||
6 files changed, 65 insertions(+), 1 deletion(-)
|
||||
create mode 100644 doc/bugs/S3_special_remote_support_for_DigitalOcean_Spaces/comment_2_3bbdf23c8a4a480f4f6b8e8a2f8ddecd._comment
|
||||
create mode 100644 doc/forum/backblaze_s3/comment_1_854390b9a781da82ecb85ad85eecad04._comment
|
||||
create mode 100644 doc/special_remotes/S3/comment_34_cf57e8dbd9fdc7c487565b61808b6bb2._comment
|
||||
|
||||
diff --git a/Remote/S3.hs b/Remote/S3.hs
|
||||
index cb345d1f8..e3ea492f2 100644
|
||||
--- a/Remote/S3.hs
|
||||
+++ b/Remote/S3.hs
|
||||
@@ -99,6 +99,8 @@ remote = specialRemoteType $ RemoteType
|
||||
(FieldDesc "port to connect to")
|
||||
, optionalStringParser requeststyleField
|
||||
(FieldDesc "for path-style requests, set to \"path\"")
|
||||
+ , signatureVersionParser signatureField
|
||||
+ (FieldDesc "S3 signature version")
|
||||
, optionalStringParser mungekeysField HiddenField
|
||||
, optionalStringParser AWS.s3credsField HiddenField
|
||||
]
|
||||
@@ -148,6 +150,22 @@ protocolField = Accepted "protocol"
|
||||
requeststyleField :: RemoteConfigField
|
||||
requeststyleField = Accepted "requeststyle"
|
||||
|
||||
+signatureField :: RemoteConfigField
|
||||
+signatureField = Accepted "signature"
|
||||
+
|
||||
+newtype SignatureVersion = SignatureVersion Int
|
||||
+
|
||||
+signatureVersionParser :: RemoteConfigField -> FieldDesc -> RemoteConfigFieldParser
|
||||
+signatureVersionParser f fd =
|
||||
+ genParser go f defver fd
|
||||
+ (Just (ValueDesc "v2 or v4"))
|
||||
+ where
|
||||
+ go "v2" = Just (SignatureVersion 2)
|
||||
+ go "v4" = Just (SignatureVersion 4)
|
||||
+ go _ = Nothing
|
||||
+
|
||||
+ defver = SignatureVersion 2
|
||||
+
|
||||
portField :: RemoteConfigField
|
||||
portField = Accepted "port"
|
||||
|
||||
@@ -877,7 +895,10 @@ s3Configuration c = cfg
|
||||
Nothing
|
||||
| port == 443 -> AWS.HTTPS
|
||||
| otherwise -> AWS.HTTP
|
||||
- cfg = S3.s3 proto endpoint False
|
||||
+ cfg = case getRemoteConfigValue signatureField c of
|
||||
+ Just (SignatureVersion 4) ->
|
||||
+ S3.s3v4 proto endpoint False S3.SignWithEffort
|
||||
+ _ -> S3.s3 proto endpoint False
|
||||
|
||||
data S3Info = S3Info
|
||||
{ bucket :: S3.Bucket
|
||||
--
|
||||
2.26.2
|
||||
|
Loading…
Reference in a new issue