From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: [PATCH] gnu: Add mongodb. Date: Fri, 18 Mar 2016 15:10:34 -0400 Message-ID: <20160318191034.GD9682@jasmine> References: <877fh1rvkn.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56112) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agznD-0000Ky-0R for guix-devel@gnu.org; Fri, 18 Mar 2016 15:10:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agznA-0000oF-GQ for guix-devel@gnu.org; Fri, 18 Mar 2016 15:10:38 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:42662) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agznA-0000nl-D3 for guix-devel@gnu.org; Fri, 18 Mar 2016 15:10:36 -0400 Content-Disposition: inline In-Reply-To: <877fh1rvkn.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Roel Janssen Cc: guix-devel@gnu.org On Thu, Mar 17, 2016 at 04:08:24PM +0100, Roel Janssen wrote: > Subject: [PATCH] gnu: Add mongodb. Thanks for this patch! > * gnu/packages/databases.scm (mongodb): New variable. > * gnu/packages/patches/mongodb-add-version-file.patch: New file. > * gnu-system.am (dist_patch_DATA): Add patch file. Okay. [...] > +(define-public mongodb > + (package > + (name "mongodb") > + (version "3.3.3") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://github.com/mongodb/mongo/archive/r" > + version ".tar.gz")) Do you know if GitHub is the preferred or canonical source for mongodb tarballs? Okay if so, but often the GitHub tarballs are auto-generated snapshots, while the upstream project has specially prepared distribution tarballs from their website. I see a tarball here: https://www.mongodb.org/downloads Did you compare them? If not, will you do that and decide which is more appropriate? > + (file-name (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 "01v16j8xbry7m7apwlhiqhgx3zyyk2kadyk2sr9m6k20wnh5j24y")) > + (patches (list (search-patch "mongodb-add-version-file.patch"))))) > + (build-system gnu-build-system) > + (native-inputs > + `(("scons" ,scons) > + ("python" ,python-2) > + ("perl" ,perl))) > + (arguments > + `(#:tests? #f ; There is no 'check' target. Wow, I would have expected a project like this to have a test suite. > + #:phases > + (modify-phases %standard-phases > + (delete 'configure) ; There is no configure phase > + (add-after 'unpack 'scons-propagate-environment > + (lambda _ > + ;; Modify the SConstruct file to arrange for > + ;; environment variables to be propagated. > + (substitute* "SConstruct" > + (("^env = Environment\\(") > + "env = Environment(ENV=os.environ, ")))) So, this saves the environment of the build process and propagates it to run-time? > + (replace 'build > + (lambda _ > + (zero? (system* "scons" "mongod" "mongo" "mongos")))) > + (replace 'install > + (lambda _ > + (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))) > + (install-file "mongod" bin) > + (install-file "mongos" bin) > + (install-file "mongo" bin))))))) No libraries or documentation? > + (home-page "https://www.mongodb.org/") > + (synopsis "High performance and high availability document database") > + (description "Mongo is a high-performance, high availability, > +schema-free document-oriented database. A key goal of MongoDB is to bridge > +the gap between key/value stores (which are fast and highly scalable) and > +traditional RDBMS systems (which are deep in functionality).") > + (license (list agpl3 asl2.0)))) > + > (define-public postgresql > (package > (name "postgresql") > diff --git a/gnu/packages/patches/mongodb-add-version-file.patch b/gnu/packages/patches/mongodb-add-version-file.patch > new file mode 100644 > index 0000000..ffcb70e > --- /dev/null > +++ b/gnu/packages/patches/mongodb-add-version-file.patch > @@ -0,0 +1,10 @@ > +This patch is used to replace the need for git. It's a work-around > +for a problem described here: https://jira.mongodb.org/browse/SERVER-21317 > + > +Patch by Roel Janssen > +--- a/version.json 1970-01-01 01:00:00.000000000 +0100 > ++++ b/version.json 2016-03-16 15:10:23.933578071 +0100 > +@@ -0,0 +1,3 @@ > ++{ > ++ "version": "3.3.3-guix-" > ++} It's okay that this is different from the "version" field in the package definition? Just checking... > -- > 2.5.0 > > Dear Guix, > > This is a patch to add MongoDB (server and client) tools. I used a > three-line patch to fix the build process's reliance on Git and the > .git/ directory. > > Kind regards, > Roel Janssen