From mboxrd@z Thu Jan 1 00:00:00 1970 From: Theodoros Foradis Subject: Re: [PATCH v3 2/2] gnu: Add python2-wxpython. Date: Wed, 02 Nov 2016 15:53:13 +0200 Message-ID: <8737jat2dp.fsf@openmailbox.org> References: <20161025160907.30181-1-theodoros.for@openmailbox.org> <20161025170001.2717-1-theodoros.for@openmailbox.org> <20161025170001.2717-3-theodoros.for@openmailbox.org> <20161102085742.1504352b@scratchpost.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]:45139) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1w1l-0008Cx-Vg for guix-devel@gnu.org; Wed, 02 Nov 2016 09:56:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c1w1i-0000IW-7V for guix-devel@gnu.org; Wed, 02 Nov 2016 09:56:30 -0400 Received: from smtp19.openmailbox.org ([62.4.1.53]:34409 helo=smtp4.openmailbox.org) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1c1w1h-0000I4-T3 for guix-devel@gnu.org; Wed, 02 Nov 2016 09:56:26 -0400 In-reply-to: <20161102085742.1504352b@scratchpost.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: Guix-devel Hello, Danny Milosavljevic writes: > 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/wxPy= thon/" >> + version "/wxPython-src-" version ".= tar.bz2")) >> + (sha256 >> + (base32 >> + "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm= ")) >> + (modules '((guix build utils))) >> + (snippet >> + '(begin >> + (lambda (folder) >> + (delete-file-recursively (string-append "src/" fo= lder)) >> + '("expat" "jpeg" "png" "tiff" "zlib" "msw" "osx" = "msdos")) >> + (substitute* '("wxPython/setup.py") >> + ;; setup.py tries to keep its own license the sam= e as wxwidget's >> + ;; license (which it expects under $WXWIN/docs). >> + (("'preamble.txt', 'licence.txt', 'licendoc.txt',= 'lgpl.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 = headers in >> + ;; gnu/store/...-wxwidgets-3.0.2 , which it can't, so th= ey 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 "wxw= idgets") >> + "/lib/wx/include/gtk2-= unicode-release-2.8" >> + " -I" >> + (assoc-ref inputs "wxw= idgets") >> + "/include/wx-3.0" >> + " -D_FILE_OFFSET_BITS=3D= 64" >> + " -DWXUSINGDLL" >> + " -D__WXGTK__")) > > It would be better for future maintainability to call "wx-config --cppf= lags" there instead: > > (use-modules (ice-9 popen) (ice-9 rdelim)) > (let ((port (open-pipe* OPEN_READ (string-append (assoc-ref inputs "wxw= idgets") "/bin/wx-config") "--cppflags"))) > (setenv "CPPFLAGS" (read-string port)) > (close-pipe port)) > This works correctly. >> + #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. > Correct, and tested to be working, thanks! Kicad builds on top of those changes as is. >> + (synopsis "Python2 Bindings for wxWidgets") >> + (description "@code{wxpython} are Python2 bindings for wxWidgets.= ") >> + (home-page "http://wxpython.org/") >> + (license (package-license wxwidgets)))) --=20 Theodoros Foradis