From mboxrd@z Thu Jan 1 00:00:00 1970 From: Danny Milosavljevic Subject: Re: [PATCH v3 2/2] gnu: Add python2-wxpython. Date: Wed, 2 Nov 2016 08:57:42 +0100 Message-ID: <20161102085742.1504352b@scratchpost.org> References: <20161025160907.30181-1-theodoros.for@openmailbox.org> <20161025170001.2717-1-theodoros.for@openmailbox.org> <20161025170001.2717-3-theodoros.for@openmailbox.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48885) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1qQk-0004b6-W7 for guix-devel@gnu.org; Wed, 02 Nov 2016 03:57:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c1qQg-00038n-LH for guix-devel@gnu.org; Wed, 02 Nov 2016 03:57:55 -0400 Received: from dd1012.kasserver.com ([85.13.128.8]:51386) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c1qQg-00037q-AR for guix-devel@gnu.org; Wed, 02 Nov 2016 03:57:50 -0400 In-Reply-To: <20161025170001.2717-3-theodoros.for@openmailbox.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" To: Theodoros Foradis Cc: guix-devel@gnu.org Hi, On Tue, 25 Oct 2016 20:00:00 +0300 Theodoros Foradis wrote: > * gnu/packages/wxwidgets.scm (python2-wxpython): New variable. > --- > gnu/packages/wxwidgets.scm | 82 ++++++++++++++++++++++++++++++++++++++++= ++++++ > 1 file changed, 82 insertions(+) >=20 > diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm > index 4efe7a1..07f0d7b 100644 > --- a/gnu/packages/wxwidgets.scm > +++ b/gnu/packages/wxwidgets.scm > @@ -2,6 +2,7 @@ > ;;; Copyright =C2=A9 2015 Taylan Ulrich Bay=C4=B1rl=C4=B1/Kammer > ;;; Copyright =C2=A9 2016 Ricardo Wurmus > ;;; Copyright =C2=A9 2016 Theodoros Foradis > +;;; Copyright =C2=A9 2016 Danny Milosavljevic > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -23,6 +24,7 @@ > #:use-module (guix download) > #:use-module ((guix licenses) #:prefix l:) > #:use-module (guix build-system glib-or-gtk) > + #:use-module (guix build-system python) > #:use-module (guix build utils) > #:use-module (gnu packages) > #:use-module (gnu packages compression) > @@ -32,8 +34,10 @@ > #:use-module (gnu packages gtk) > #:use-module (gnu packages image) > #:use-module (gnu packages pkg-config) > + #:use-module (gnu packages python) > #:use-module (gnu packages sdl) > #:use-module (gnu packages webkit) > + #:use-module (gnu packages xml) > #:use-module (gnu packages xorg)) > =20 > (define-public wxwidgets > @@ -118,3 +122,81 @@ and many other languages.") > "gtk+" > (package-inputs wxwidgets)))) > (name "wxwidgets-gtk2"))) > + > +(define-public python2-wxpython > + (package > + (name "python2-wxpython") > + (version "3.0.2.0") > + (source (origin > + (method url-fetch) > + (uri (string-append "mirror://sourceforge/wxpython/wxPytho= n/" > + version "/wxPython-src-" version ".tar= .bz2")) > + (sha256 > + (base32 > + "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm")) > + (modules '((guix build utils))) > + (snippet > + '(begin > + (lambda (folder) > + (delete-file-recursively (string-append "src/" folde= r)) > + '("expat" "jpeg" "png" "tiff" "zlib" "msw" "osx" "ms= dos")) > + (substitute* '("wxPython/setup.py") > + ;; setup.py tries to keep its own license the same a= s wxwidget's > + ;; license (which it expects under $WXWIN/docs). > + (("'preamble.txt', 'licence.txt', 'licendoc.txt', 'l= gpl.txt'") "") > + ))))) > + (build-system python-build-system) > + (arguments > + `(#:python ,python-2 > + #:tests? #f ; tests fail > + #:configure-flags (list "WXPORT=3Dgtk2" > + "UNICODE=3D1") > + #:phases > + (modify-phases %standard-phases > + (add-before 'build 'chdir > + (lambda _ > + (chdir "wxPython") > + #t)) > + (add-after 'chdir 'set-wx-out-dir > + (lambda* (#:key outputs #:allow-other-keys) > + ;; By default, install phase tries to copy the wxPython hea= ders in > + ;; gnu/store/...-wxwidgets-3.0.2 , which it can't, so they = are redirected > + ;; to the output directory by setting WXPREFIX. > + (substitute* "config.py" > + (("=3D getWxConfigValue\\('--prefix'\\)") > + (string-append "=3D '" (assoc-ref outputs "out") "'"))) > + (substitute* "wx/build/config.py" > + (("=3D getWxConfigValue\\('--prefix'\\)") > + (string-append "=3D '" (assoc-ref outputs "out") "'"))) > + #t)) > + (add-after 'set-wx-out-dir 'setenv > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (setenv "WXWIN" (assoc-ref inputs "wxwidgets")) > + (setenv "CPPFLAGS" (string-append "-I" > + (assoc-ref inputs "wxwidg= ets") > + "/lib/wx/include/gtk2-uni= code-release-2.8" > + " -I" > + (assoc-ref inputs "wxwidg= ets") > + "/include/wx-3.0" > + " -D_FILE_OFFSET_BITS=3D6= 4" > + " -DWXUSINGDLL" > + " -D__WXGTK__")) It would be better for future maintainability to call "wx-config --cppflags= " there instead: (use-modules (ice-9 popen) (ice-9 rdelim)) (let ((port (open-pipe* OPEN_READ (string-append (assoc-ref inputs "wxwidge= ts") "/bin/wx-config") "--cppflags"))) (setenv "CPPFLAGS" (read-string port)) (close-pipe port)) > + #t))))) > + (native-inputs > + `(("gtk+" ,gtk+-2) > + ("expat" ,expat) > + ("libjpeg" ,libjpeg) > + ("libpng" ,libpng) > + ("libtiff" ,libtiff) > + ("libsm" ,libsm) > + ("libx11" ,libx11) > + ("mesa" ,mesa) > + ("pkg-config" ,pkg-config) > + ("python2-setuptools" ,python2-setuptools) > + ("zlib" ,zlib))) > + (inputs > + `(("wxwidgets" ,wxwidgets-gtk2))) This can be reduced to: (native-inputs `(("mesa" ,mesa) ; for glcanvas ("pkg-config" ,pkg-config) ("python2-setuptools" ,python2-setuptools))) (inputs `(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp ("wxwidgets" ,wxwidgets-gtk2))) ... without loss of functionality. > + (synopsis "Python2 Bindings for wxWidgets") > + (description "@code{wxpython} are Python2 bindings for wxWidgets.") > + (home-page "http://wxpython.org/") > + (license (package-license wxwidgets))))