Subject: [bug#52238] [PATCH] gnu: Add MEGA SDK

From: Jaft <[email-masked]>
Date: Thu, 2 Dec 2021 06:32:26 +0000 (UTC)

* gnu/packages/mega.scm (mega-sdk):Add MEGA SDK

The SDK is a dependency of MEGAsync so I thought to make a new file since there's multiple packages that are MEGA related and then I discovered that the megacmd package exists; is it better for this to be placed in sync.scm, next to megacmd?

---
gnu/packages/mega.scm | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
new file   gnu/packages/mega.scm
@@ -0,0 +1,74 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Wamm K. D. <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages mega)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages adns)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages crypto))
+
+(define-public mega-sdk
+  (let ([version "3.9.10"])
+    (package
+      (name "mega-sdk")
+      (version version)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/meganz/sdk/")
+                      (commit (string-append "v" version))))
+                (file-name (git-file-name name version))
+                (sha256 (base32
+                          "08qw23rm4rrvlsbcixrncbi5x0qgqkpx74l5f1gq2rgll0ksx8ph"))
+                (modules '((guix build utils)))))
+      (build-system gnu-build-system)
+      (native-inputs `(("autoconf" ,autoconf)
+                       ("automake" ,automake)
+                       ("libtool" ,libtool)))
+      (inputs `(("crypto++" ,crypto++)
+                ("zlib" ,zlib)
+                ("sqlite" ,sqlite)
+                ("openssl" ,openssl)
+                ("c-ares" ,c-ares)
+                ("curl" ,curl)
+                ("freeimage" ,freeimage)
+                ("readline" ,readline)
+                ("libsodium" ,libsodium)))
+      (arguments `(#:tests? #f))
+      (home-page "https://mega.nz/sdk")
+      (synopsis "SDK for the MEGA service, offered by MEGA Limited")
+      (description "A low-level SDK for the MEGA service which powers the
+file-sharing site.  This package provides two executables:
+@itemize
+@item megacli: a command-line tool that allows usage of all SDK features
+@item megasimplesync: a command line tool that allows usage of the
+synchronization engine
+@end itemize")
+      (license license:bsd-2))))