From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id KJ3ZEAlObGD3zAAAgWs5BA (envelope-from ) for ; Tue, 06 Apr 2021 14:03:21 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id cEDMCglObGAeNQAA1q6Kng (envelope-from ) for ; Tue, 06 Apr 2021 12:03:21 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D7C621B5AD for ; Tue, 6 Apr 2021 14:03:18 +0200 (CEST) Received: from localhost ([::1]:39896 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTkQP-0004gX-FV for larch@yhetil.org; Tue, 06 Apr 2021 08:03:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60510) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTkQA-0004gI-SF for bug-guix@gnu.org; Tue, 06 Apr 2021 08:03:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:56097) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lTkQA-0000p0-Iw for bug-guix@gnu.org; Tue, 06 Apr 2021 08:03:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lTkQA-0002zF-FL for bug-guix@gnu.org; Tue, 06 Apr 2021 08:03:02 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#47260: Package GNU MediaGoblin as a Guix service Resent-From: Ben Sturmfels Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 06 Apr 2021 12:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47260 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 47260@debbugs.gnu.org Cc: cwebber@dustycloud.org, =?UTF-8?Q?L=C3=A9o?= Le Bouter , jgart Received: via spool by 47260-submit@debbugs.gnu.org id=B47260.161771054111418 (code B ref 47260); Tue, 06 Apr 2021 12:03:02 +0000 Received: (at 47260) by debbugs.gnu.org; 6 Apr 2021 12:02:21 +0000 Received: from localhost ([127.0.0.1]:39410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTkPL-0002xq-OT for submit@debbugs.gnu.org; Tue, 06 Apr 2021 08:02:21 -0400 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:49939) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTkPH-0002xI-99 for 47260@debbugs.gnu.org; Tue, 06 Apr 2021 08:02:10 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 47BCC1599; Tue, 6 Apr 2021 08:02:01 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Tue, 06 Apr 2021 08:02:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sturm.com.au; h= from:to:cc:subject:references:date:in-reply-to:message-id :mime-version:content-type; s=fm2; bh=CA12EyGaIhpTr0Jmez+9DsKpem WV1orMyuHCJtqKARA=; b=FgqQUfYacBaMFRwl/kLVPoyUoJGkjvqiH93souRZl1 Nr0y96xb1KThI12n0wT8okdX0CQTb4VWEHj/eB9wvVx/47rqVRWLNaz39ctcOnGm bUQ3yqSGFVuoqRTA1Swdlfirpb08BtCV/J/B4XgW78uGlTvwydqkG5cJA7IRQote 81uWpedtsvHYSj1gDPcFbpDcwys1IANieY0AG+fE0lxk2iCuRDwYkhkCSA2+LB0i 4NBl3gZglIDt60QQjZtIzPtBYsEtMYab7EaS9AxzT1gp3RBcrXbW8Y0Rz57ejn/4 m4Oz4bK1hJJOrdlWmFuRdMj3wVBmeVXsXOejuhZLkAHA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=CA12Ey GaIhpTr0Jmez+9DsKpemWV1orMyuHCJtqKARA=; b=frP3tTBcr2HUmYYIo0hcy7 GZ3jVz6rFqu7yrVAr6gS4yQaBa47Pxzv3Qb24RJCDKzmlZO+UuIToLA+ze0aQItl HzSe1X15tgFi05f5Fkyb2yzVhCbOfGBLcRAIwk9DwcHqqnfXuFNYxMRbS7uzsEae /LoTp14aY07KW4Yha0YKGSVgcNjVxgveITVhJmBvqlvfX9peZovojN9LJkcHl+c2 d6lE0OyleSDdjEqSLgGD+2Z1KzSeEGXeZIaJmoar9XtQbLlHGDlpAz+jn6EXnSgE ABemEJU6QR9EI9E6HWOZ1nQ2Lg/pjL/6XcRVmpA7JqrNdMQ/oO5DqTUBYz/Ck2Ng == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudejgedggeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufhffjgfkfgggtgesmhdtre ertdertdenucfhrhhomhepuegvnhcuufhtuhhrmhhfvghlshcuoegsvghnsehsthhurhhm rdgtohhmrdgruheqnecuggftrfgrthhtvghrnhepgfeukeekteeihfejjedtleefgeefke ekfeekffdvtddvjeelueetheffgeehjeefnecuffhomhgrihhnpehgnhhurdhorhhgnecu kfhppeduvdefrddvgeefrddujeeirddutdefnecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehmrghilhhfrhhomhepsggvnhesshhtuhhrmhdrtghomhdrrghu X-ME-Proxy: Received: from localhost (123-243-176-103.tpgi.com.au [123.243.176.103]) by mail.messagingengine.com (Postfix) with ESMTPA id 97D0F24005E; Tue, 6 Apr 2021 08:01:58 -0400 (EDT) Received: from Marseille (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 7fbebf7d; Tue, 6 Apr 2021 12:01:56 +0000 (UTC) References: <87eegbz65q.fsf@sturm.com.au> <87k0ppqny7.fsf@sturm.com.au> <87tuoqsqw3.fsf@sturm.com.au> Date: Tue, 06 Apr 2021 22:01:56 +1000 In-Reply-To: <87tuoqsqw3.fsf@sturm.com.au> (Ben Sturmfels's message of "Thu, 01 Apr 2021 13:03:08 +1100") Message-ID: <87wntfsjt7.fsf@sturm.com.au> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" Reply-to: Ben Sturmfels From: Ben Sturmfels via Bug reports for GNU Guix X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1617710600; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=CA12EyGaIhpTr0Jmez+9DsKpemWV1orMyuHCJtqKARA=; b=PxLfkrYSkpHneYVTf73LeN5gOo9Qy3KrW5SauMpAaDzZxwdz5Q779sNlRA4aqpdh9SPM8C sCaxN12uDTffhfgTFum7ec/kLBKMd/heONcaOS6L+2OvaCvtr5w3YID8/y/CELuUHxUJBi Id6n4IBsHcLikNHlNA86hIYn8xnRV36v5RGhAzU+tVsEIG7mO/9XfDBfVAvklfL0orhXCN Vcy6pxNV/yQh3e4M5LC+C4vv2FZ+/iRLn1SLuqY2o3V3oxmRm/vJfcNRfbvBN6vs6tSo3j f5Dv7a3u+58Jr5MKZqELek//g4AOZzOtT97i6OEF5JKNkNLJlHmfvmxIKVEvQw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1617710600; a=rsa-sha256; cv=none; b=ISD3iH0T+Yj8TxKrfImOZfLET2fjs9zT24UKyFeeLRA8Dz95HQXtfMug41Ior2YzaIzJ9D +JG3d2+8mFszBoqyGmpgcS4pGZoT17dOHCJHKi4UpR6m/BsZLAHNyROCsvaUsiu7MIHR0u thsgMgKhzg50sEe4sqj0PheHhvJqVAmH6eBXT9AJVbBSqh9tnYocyWiMjyZ7R1vc1PPoxT /FtzcpKEunuW0aY1mDkkcMM61cycRdMuQtTwhoUgL2QYExjsWJmBaaUaZY9SW7Q8QFLyLc DFzrVMkhpfFgnJPeT3wXSL913C5Dcs5pAp7X6kbSCQQBzuKOvzuU/Gynf/6Eug== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=sturm.com.au header.s=fm2 header.b=FgqQUfYa; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm2 header.b=frP3tTBc; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Spam-Score: -2.03 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=sturm.com.au header.s=fm2 header.b=FgqQUfYa; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm2 header.b=frP3tTBc; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Queue-Id: D7C621B5AD X-Spam-Score: -2.03 X-Migadu-Scanner: scn0.migadu.com X-TUID: xdDAxoyRzsEN --=-=-= Content-Type: text/plain On Thu, 01 Apr 2021, Ben Sturmfels wrote: > 5. Get a basic Guix service working, with sqlite3 and without the > offloaded media transcoding currently using Celery task queue with a > Redis broker. Woo! After a lot of trial and error, I finally have a basic MediaGoblin running entirely under Guix with no virtualenv trickery! After applying the attached patch to my guix repo, I grab a copy of the basic config files and enable audio and video: curl https://git.savannah.gnu.org/cgit/mediagoblin.git/plain/mediagoblin.example.ini > mediagoblin.ini curl https://git.savannah.gnu.org/cgit/mediagoblin.git/plain/paste.ini > paste.ini echo "[[mediagoblin.media_types.audio]]" >> mediagoblin.ini echo "[[mediagoblin.media_types.video]]" >> mediagoblin.ini Build MediaGoblin, which downloads from our master branch and runs the full test suite successfully: ~/ws/guix/pre-inst-env guix build mediagoblin Then install MediaGoblin in a container (not working in a non-container guix environment or without explicit "python"): ~/ws/guix/pre-inst-env guix environment --container --network --share=$HOME/.bash_history --ad-hoc mediagoblin python Create an sqlite3 database and add a user: gmg dbupdate gmg adduser --username admin --password a --email admin@example.com gmg changepw admin a Upload an image, audio and video via CLI: gmg addmedia admin image.jpg gmg addmedia admin audio.wav gmg addmedia admin video.mp4 Start the web interface: CELERY_ALWAYS_EAGER=true paster serve paste.ini The web interface is working. Looks like we're missing some CSS (probably due to files not being included in the setuptools package), but that's a minor issue. Getting there! Regards, Ben --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-MediaGoblin-package.patch >From 704cd6aa56f17d4f705d33f1f58ff03e2581a2da Mon Sep 17 00:00:00 2001 From: Ben Sturmfels Date: Tue, 6 Apr 2021 12:48:47 +1000 Subject: [PATCH] Add MediaGoblin package. --- gnu/local.mk | 1 + gnu/packages/mediagoblin.scm | 266 +++++++++++++++++++++++++++++++++++ 2 files changed, 267 insertions(+) create mode 100644 gnu/packages/mediagoblin.scm diff --git a/gnu/local.mk b/gnu/local.mk index f2d595f2cc..b2daa3cfe6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -467,6 +467,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/python-science.scm \ %D%/packages/python-web.scm \ %D%/packages/python-xyz.scm \ + %D%/packages/mediagoblin.scm \ %D%/packages/toys.scm \ %D%/packages/tryton.scm \ %D%/packages/qt.scm \ diff --git a/gnu/packages/mediagoblin.scm b/gnu/packages/mediagoblin.scm new file mode 100644 index 0000000000..87649c965a --- /dev/null +++ b/gnu/packages/mediagoblin.scm @@ -0,0 +1,266 @@ +;; Install with: +;; +;; ~/ws/guix/pre-inst-env guix environment --container --network --share=$HOME/.bash_history --ad-hoc mediagoblin +;; +;; Doesn't currently work when not in a container: +;; +;; ~/ws/guix/pre-inst-env guix environment --ad-hoc mediagoblin + +(define-module (gnu packages mediagoblin) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python) + #:use-module (gnu packages) + #:use-module (gnu packages xiph) ; flac for embedded libsndfile + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages certs) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) ; unzip for embedded python-wtforms + #:use-module (gnu packages databases) + #:use-module (gnu packages libffi) ; cffi for embedded python-soundfile + #:use-module (gnu packages openldap) + #:use-module (gnu packages pdf) + #:use-module (gnu packages pkg-config) ; embedded libsndfile + #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages gstreamer) + #:use-module (gnu packages glib) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages rsync) + #:use-module (gnu packages ssh) + #:use-module (gnu packages time) + #:use-module (gnu packages video) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xml) + #:use-module ((guix licenses) #:select (bsd-3 gpl2+) #:prefix license:)) + +(define python-wtforms + (package + (name "python-wtforms") + (version "2.3.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "WTForms" version)) + (sha256 + (base32 + ;; Interesting, if this has is that of a lower version, it blindly + ;; ignores the version number above and you silently get the older + ;; version. + "17427m7p9nn9byzva697dkykykwcp2br3bxvi8vciywlmkh5s6c1")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; TODO: Fix tests for upgraded version. + (propagated-inputs + `(("python-markupsafe" ,python-markupsafe))) + (native-inputs + `(("unzip" ,unzip))) ; CHECK WHETHER NEEDED - not in `guix import` but is in old package. + (home-page "http://wtforms.simplecodes.com/") + (synopsis + "Form validation and rendering library for Python web development") + (description + "WTForms is a flexible forms validation and rendering library +for Python web development. It is very similar to the web form API +available in Django, but is a standalone package.") + (license license:bsd-3))) + + +;; Copied from guix/gnu/packages/pulseaudio.scm in the core-updates branch which +;; adds flac/ogg/vorbis/opus support. This is required for building +;; python-soundfile (March 2021). +(define libsndfile + (package + (name "libsndfile") + (version "1.0.30") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/erikd/libsndfile" + "/releases/download/v" version + "/libsndfile-" version ".tar.bz2")) + (sha256 + (base32 + "06k1wj3lwm7vf21s8yqy51k6nrkn9z610bj1gxb618ag5hq77wlx")) + (modules '((ice-9 textual-ports) (guix build utils))) + (snippet + '(begin + ;; Remove carriage returns (CRLF) to prevent bogus + ;; errors from bash like "$'\r': command not found". + (let ((data (call-with-input-file + "tests/pedantic-header-test.sh.in" + (lambda (port) + (string-join + (string-split (get-string-all port) + #\return)))))) + (call-with-output-file "tests/pedantic-header-test.sh.in" + (lambda (port) (format port data)))) + + ;; While at it, fix hard coded executable name. + (substitute* "tests/test_wrapper.sh.in" + (("^/usr/bin/env") "env")) + #t)))) + (build-system gnu-build-system) + (propagated-inputs + `(("flac" ,flac) + ("libogg" ,libogg) + ("libvorbis" ,libvorbis) + ("opus" ,opus))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python" ,python))) + (home-page "http://www.mega-nerd.com/libsndfile/") + (synopsis "Reading and writing files containing sampled sound") + (description + "Libsndfile is a C library for reading and writing files containing +sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through +one standard library interface. + +It was designed to handle both little-endian (such as WAV) and +big-endian (such as AIFF) data, and to compile and run correctly on +little-endian (such as Intel and DEC/Compaq Alpha) processor systems as well +as big-endian processor systems such as Motorola 68k, Power PC, MIPS and +SPARC. Hopefully the design of the library will also make it easy to extend +for reading and writing new sound file formats.") + (license license:gpl2+))) + +;; Need soundfile for new Python 3 audio spectrograms. Can me merged into Guix +;; once core-updates is merged. +(define python-soundfile + (package + (name "python-soundfile") + (version "0.10.3.post1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "SoundFile" version)) + (sha256 + (base32 + "0yqhrfz7xkvqrwdxdx2ydy4h467sk7z3gf984y1x2cq7cm1gy329")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-cffi" ,python-cffi) + ("libsndfile" ,libsndfile) + ("python-numpy" ,python-numpy))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'set-library-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((libsndfile (assoc-ref inputs "libsndfile"))) + (substitute* "soundfile.py" + (("_find_library\\('sndfile'\\)") + (string-append "'" libsndfile "/lib/libsndfile.so.1'"))) + #t)))))) + (home-page "https://github.com/bastibe/python-soundfile") + (synopsis "An audio library based on libsndfile, CFFI and NumPy") + (description + "The soundfile module can read and write sound files, representing audio +data as NumPy arrays.") + (license license:bsd-3))) + +;; ================================================================= + +(define-public mediagoblin + (package + (name "mediagoblin") + (version "0.12.0.dev") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/mediagoblin.git") + (commit "3d72ccf4dfb106d8b9dcc5ac4cb754d6efa80649"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0i6h8781nlnnqrw8jf0n0264p2fvc3z9rcp8vzv4a7aghiqmn2b2")))) + (build-system python-build-system) + (arguments + `( + #:tests? #f + ;; #:phases (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (setenv "PYTHONPATH" + ;; (string-append (getcwd) ":" + ;; (getenv "PYTHONPATH"))) + ;; ;; Translations needed for tests to pass. Probably + ;; ;; should be done during build stage? + ;; (invoke "./devtools/compile_translations.sh") + ;; (invoke "pytest" "./mediagoblin/tests" "-rs" "--boxed") + ;; #t))) + )) + (native-inputs + `(("nss-certs" ,nss-certs) + ("python-pytest" ,python-pytest) + ("python-pytest-forked" ,python-pytest-forked) + ("python-pytest-xdist" ,python-pytest-xdist) + ("python-webtest" ,python-webtest))) + ;; lle-bout suggests avoiding propagated-inputs and insteading creating + ;; wrappers scripts. See: + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47260#44 + (propagated-inputs + `(("python-alembic" ,python-alembic) + ("python-babel" ,python-babel) + ("python-celery" ,python-celery) + ("python-configobj" ,python-configobj) + ("python-dateutil" ,python-dateutil) + ("python-docutils" ,python-docutils) ; What for? + ("python-email-validator" ,python-email-validator) + ("python-exif-read" ,python-exif-read) + ("python-feedgenerator" ,python-feedgenerator) + ("python-itsdangerous" ,python-itsdangerous) + ("python-jinja2" ,python-jinja2) + ("python-jsonschema" ,python-jsonschema) + ("python-ldap" ,python-ldap) ; For LDAP plugin + ("python-lxml" ,python-lxml) + ("python-markdown" ,python-markdown) + ("python-oauthlib" ,python-oauthlib) + ("python-openid" ,python-openid) ; For OpenID plugin + ("python-pastescript" ,python-pastescript) + ("python-pillow" ,python-pillow) + ("python-py-bcrypt" ,python-py-bcrypt) + ("python-pyld" ,python-pyld) + ("python-pytz" ,python-pytz) + ("python-requests" ,python-requests) ; For Persona plugin, batchaddmedia + ("python-setuptools" ,python-setuptools) ; What for? + ("python-soundfile" ,python-soundfile) + ("python-sphinx" ,python-sphinx) + ("python-sqlalchemy" ,python-sqlalchemy) + ("python-translitcodec" ,python-translitcodec) + ("python-unidecode" ,python-unidecode) + ("python-waitress" ,python-waitress) + ("python-werkzeug" ,python-werkzeug) + ("python-wtforms" ,python-wtforms) + + ;; Audio/video media + ("gobject-introspection" ,gobject-introspection) + ("gst-libav" ,gst-libav) + ("gst-plugins-bad" ,gst-plugins-bad) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("gst-plugins-ugly" ,gst-plugins-ugly) + ("gstreamer" ,gstreamer) + ("openh264" ,openh264) + ("python-gst" ,python-gst) ; For tests to pass + ("python-numpy" ,python-numpy) ; Audio spectrograms + ("python-pygobject" ,python-pygobject) + + ;; PDF media. + ("poppler" ,poppler) + + )) + (home-page "https://mediagoblin.org/") + (synopsis "Web application for media publishing") + (description "MediaGoblin is a web application for publishing all kinds of +media.") + (license agpl3+))) -- 2.31.1 --=-=-=--