about summary refs log tree commit diff
path: root/gn/packages/python24.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gn/packages/python24.scm')
-rw-r--r--gn/packages/python24.scm520
1 files changed, 520 insertions, 0 deletions
diff --git a/gn/packages/python24.scm b/gn/packages/python24.scm
new file mode 100644
index 0000000..cc5e61c
--- /dev/null
+++ b/gn/packages/python24.scm
@@ -0,0 +1,520 @@
+(define-module (gn packages python24)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system python)
+  #:use-module (gn packages python)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages tcl)
+  #:use-module (srfi srfi-1))
+
+;; TODO: Check against 'guix lint -c cve python2.4' list:
+;; CVE-2019-9740, CVE-2019-9947, CVE-2019-9948, CVE-2018-1060, CVE-2018-1061,
+;; CVE-2014-9365, CVE-2012-0845, CVE-2012-1150, CVE-2011-1521, CVE-2011-4940,
+;; CVE-2010-3492, CVE-2008-5031, CVE-2008-5983
+(define-public python-2.4
+  (package
+    (inherit python-2)
+    (name "python2.4")
+    (version "2.4.6")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://www.python.org/ftp/python/"
+                          version "/Python-" version ".tar.bz2"))
+      (sha256
+       (base32
+        "021y88a4ki07dgq19yhg6zfvmncfiz7h5b2255438i9zmlwl246s"))))
+    (outputs '("out"))
+    (arguments
+      (substitute-keyword-arguments (package-arguments python-2)
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'create-setup-local
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((zlib (assoc-ref inputs "zlib"))
+                      (tcl  (assoc-ref inputs "tcl"))
+                      (tk   (assoc-ref inputs "tk"))
+                      (gdbm (assoc-ref inputs "gdbm"))
+                      (read (assoc-ref inputs "readline"))
+                      (ssl  (assoc-ref inputs "openssl")))
+                  (with-output-to-file "Modules/Setup.local"
+                    (lambda _
+                      (format #t "readline readline.c -I~a/include -L~a/lib -lreadline~@
+                              _ssl _ssl.c -DUSE_SSL -I$~a/include/openssl -L~a/lib -lssl -lcrypto~@
+                              _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT -L~a/lib -I~a/include -L~a/lib -I~a/include -ltk~a -ltcl~a~@
+                              gdbm gdbmmodule.c -I~a/include -L~a/lib -lgdbm~@
+                              zlib zlibmodule.c -I~a/include -L~a/lib -lz~%"
+read read ssl ssl tcl tcl tk tk ,(version-major+minor (package-version tcl)) ,(version-major+minor (package-version tcl)) gdbm gdbm zlib zlib))))
+                  #t))
+            (add-before 'check 'delete-failing-tests
+              (lambda _
+                (for-each
+                  (lambda (file)
+                    (delete-file (string-append "Lib/test/" file)))
+                  '("test_socket.py" "test_anydbm.py" "test_whichdb.py" "test_zlib.py"))
+                #t))
+            (add-after 'check 'find-netinet-in-h
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((glibc (assoc-ref inputs "libc")))
+                  (substitute* (find-files "Lib/plat-generic" ".*")
+                    (("/usr/include/netinet/in.h")
+                     (string-append glibc "/include/netinet/in.h")))
+                  #t)))
+            (delete 'move-tk-inter)))))
+    (native-search-paths
+      (list (search-path-specification
+              (variable "PYTHONPATH")
+              (files '("lib/python2.4/site-packages")))))
+    (properties '((cpe-name . "python")))))
+
+(define (default-python2.4)
+    "Return the default Python-2.4 package."
+      ;; Lazily resolve the binding.
+        (let ((python (resolve-interface '(gn packages python24))))
+              (module-ref python 'python-2.4)))
+
+(define package-with-python24
+  ((@@ (guix build-system python) package-with-explicit-python) (delay (default-python2.4))
+                                                                "python-" "python24-"
+                                                                #:variant-property 'python24-variant))
+
+(define (strip-python24-variant p)
+  (package
+    (inherit p)
+    (properties (alist-delete 'python24-variant (package-properties p)))))
+
+(define-public python24-htmlgen
+  (package
+    (name "python24-htmlgen")
+    (version "0.9")
+    ;(version "0.99")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "htmlgen" version))
+        (sha256
+         (base32
+          "14xzjgwdqgs1vs5mq7mg3w48snvgb77yywv64mg8k6qhapmnafdw"))))
+          ;"1kbn6jcbf2mpb9f8hm5gcsipy7habqrq4794lpdbzm5mqxlclmnl"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4))
+    (native-inputs
+     `(("python24-setuptools" ,python24-setuptools)))
+    (propagated-inputs
+     `(("python24-asserts" ,python24-asserts)))
+    (home-page "https://github.com/srittau/python-htmlgen")
+    (synopsis "Python HTML 5 Generator")
+    (description "Python-htmlgen is a library to generate HTML from classes.")
+    (license license:expat)))
+
+(define-public python24-setuptools
+  (package
+    (inherit python-setuptools)
+    (name "python24-setuptools")
+    (version "1.4.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "setuptools" version))
+        (sha256
+         (base32
+          "1gfvalhvzcskwj85r3lh9sx190f8k807vz5zln8agaw31ak8cf96"))))
+    (arguments
+     `(#:python ,python-2.4
+       #:tests? #f)))) ; skip the tests
+
+(define-public python24-asserts
+  (package
+    (name "python24-asserts")
+    (version "0.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "asserts" version))
+        (sha256
+         (base32
+          "05ffy111giwv6sqx97vzzsvcra0gxzx2ilv16gyw135v583frxbn"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4))
+    (native-inputs
+     `(("python24-setuptools" ,python24-setuptools)))
+    (home-page "https://github.com/srittau/python-asserts")
+    (synopsis "Stand-alone Assertions for Python")
+    (description "Stand-alone Assertions for Python")
+    (license license:expat)))
+
+(define-public python24-pyx
+  (package
+    (name "python24-pyx")
+    (version "0.12.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pyx" version))
+        (sha256
+         (base32
+          "13kyhqx19rw7dlv2xapdb68j8l9laq6nrpgkyd6549qwidmb4dz8"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4))
+    (native-inputs
+     `(("python24-setuptools" ,python24-setuptools)))
+    (home-page "http://pyx.sourceforge.net/")
+    (synopsis "Python package for the generation of PostScript, PDF, and SVG files")
+    (description "Python package for the generation of PostScript, PDF, and SVG files")
+    (license license:gpl2+)))
+
+(define-public python24-pyxlwriter
+  (package
+    (name "python24-pyxlwriter")
+    (version "0.4a3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://sourceforge/pyxlwriter/pyxlwriter/"
+                            version "/pyXLWriter-" version ".zip"))
+        (sha256
+         (base32
+          "1kfsi6la9y53rwayszgayfmkjfknpp650v69a0hwd1fcfk1df735"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:use-setuptools? #f
+       #:tests? #f)) ; no tests
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (home-page "https://sourceforge.net/projects/pyxlwriter/")
+    (synopsis "Python library for generating Excel compatible spreadsheets")
+    (description "PyXLWriter is a Python library for generating Excel compatible
+spreadsheets.  It's a port of John McNamara's Perl @code{Spreadsheet::WriteExcel}
+module version 1.01 to Python.  It allows writing of Excel compatible
+spreadsheets without the need for COM objects.")
+    (license license:lgpl2.1+)))
+
+(define-public python24-pil
+  (package
+    (inherit python2-pil1)
+    (name "python24-pil")
+    (arguments
+     (substitute-keyword-arguments (package-arguments python2-pil1)
+       ((#:python _) python-2.4)))))
+
+(define-public python24-piddle
+  (package
+    (inherit python2-piddle-1.0.15)
+    (name "python24-piddle")
+    (arguments
+     (substitute-keyword-arguments (package-arguments python2-piddle-1.0.15)
+       ((#:python _) python-2.4)))
+    (propagated-inputs
+     `(("python24-pil" ,python24-pil)))))
+
+;; Apparently this is the library which mimics python-2.6+'s json library
+(define-public python24-simplejson
+  (let ((base (package-with-python24 python-simplejson)))
+    (package
+      (inherit base)
+      (version "2.0.9") ; last version to officially support python2.4
+      (source
+        (origin
+          (method url-fetch)
+          (uri (pypi-uri "simplejson" version))
+          (sha256
+           (base32
+            "1vlkxibal9ljabybawnqr3jh6f6g21c5pbrzl65z9vwbfxhg9kdb"))))
+      (native-inputs
+       `(("python24-setuptools" ,python24-setuptools)
+         ,@(package-native-inputs base))))))
+
+(define-public python24-numarray
+  (package
+    (name "python24-numarray")
+    (version "1.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/numpy/Old Numarray/" version
+             "/numarray-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0x1i4j7yni7k4p9kjxs1lgln1psdmyrz65wp2yr35yn292iw2vbg"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:use-setuptools? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda _
+             (invoke "python" "setup.py" "config" "build"
+                     "--gencode" "--use_lapack")))
+         (add-after 'unpack 'find-lapack-and-openblas
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((lapack (assoc-ref inputs "lapack"))
+                   (blas   (assoc-ref inputs "openblas")))
+               (substitute* "cfg_packages.py"
+                 (("lapack_libs = .*'m']")
+                  "lapack_libs = ['lapack', 'openblas', 'm']\n")
+                 (("lapack_dirs = .*")
+                  (string-append "lapack_dirs = ['"
+                                 lapack "/lib', '" blas "/lib']\n"))
+                 (("lapack_include_dirs = .*")
+                  (string-append "lapack_include_dirs = ['"
+                                 lapack "/include', '" blas "/include']\n")))
+               #t)))
+         (replace 'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let ((out (assoc-ref outputs "out")))
+                      (invoke "python" "setup.py" "config"
+                              "install" "--use_lapack"
+                              (string-append "--prefix=" out))))))
+       #:tests? #f))   ; no test target
+    (inputs
+     `(("lapack" ,lapack)
+       ("openblas" ,openblas)))
+    (home-page "http://www.numpy.org/")
+    (synopsis "Array processing of numbers, strings, records and objects")
+    (description "Numarray is an array processing package designed to
+efficiently manipulate large multi-dimensional arrays.  Numarray is modelled
+after Numeric and features c-code generated from python template scripts, the
+capacity to operate directly on arrays in files, and improved type promotions.
+Numarray provides support for manipulating arrays consisting of numbers,
+strings, records, or objects using the same basic infrastructure and syntax.")
+    (license license:bsd-3)))
+
+(define-public python24-pp
+  (package
+    (name "python24-pp")
+    (version "1.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+             "http://www.parallelpython.com/downloads/pp/pp-" version ".zip"))
+        (sha256
+         (base32
+          "0qkxcyclz3vgwpl6xvsrg76q59dj0wwy8qx15567bafv659ypyb1"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:use-setuptools? #f
+       #:tests? #f)) ; no tests
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (home-page "http://www.parallelpython.com")
+    (synopsis "Parallel and distributed programming for Python")
+    (description "PP is a python module which provides mechanism for parallel
+execution of python code on SMP (systems with multiple processors or cores) and
+clusters (computers connected via network).")
+    (license license:bsd-3)))
+
+(define GN1-thirdparty-sources
+  (origin
+    (method url-fetch/tarbomb)
+    ;; ipfs get QmTPwYT2pehdxdG1TiHEzVzLgbeuhJ4utXShuz3twA84AB
+    (uri "file:///gnu/store/p33a2sh3x2nhiiphdw9nly80njg6p8fi-thirdparty.tgz")
+    (file-name "GN1-thirdparty")
+    (sha256
+     (base32
+      "0nnp6g412hjfrcn3k2yrfb14sxv06k0149whc7qmv678nyj5zhfa"))))
+
+(define-public python24-json-GN1
+  (package
+    (name "python24-json-GN1")
+    (version "GN1")
+    (source GN1-thirdparty-sources)
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (sitedir (string-append out "/lib/python2.4/site-packages/json/")))
+               (mkdir-p sitedir)
+               (copy-recursively "thirdparty/json" sitedir)
+               #t))))))
+    (home-page "")
+    (synopsis "")
+    (description "")
+    (license license:lgpl2.1+)))
+
+(define-public python24-svg-GN1
+  (package
+    (name "python24-svg-GN1")
+    (version "1.0")
+    (source GN1-thirdparty-sources)
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (sitedir (string-append out "/lib/python2.4/site-packages/svg/")))
+               (mkdir-p sitedir)
+               (copy-recursively "thirdparty/svg" sitedir)
+               #t))))))
+    (home-page "")
+    (synopsis "")
+    (description "")
+    (license license:bsd-4)))
+
+(define-public python24-htmlgen-GN1
+  (package
+    (name "python24-htmlgen-GN1")
+    (version "2.5")
+    (source GN1-thirdparty-sources)
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (sitedir (string-append out "/lib/python2.4/site-packages/htmlgen/")))
+               (mkdir-p sitedir)
+               (copy-recursively "thirdparty/htmlgen" sitedir)
+               #t))))))
+    (home-page "")
+    (synopsis "")
+    (description "")
+    (license license:bsd-2))) ; I'm not actually sure, checked HTMLgen.py
+
+(define-public python24-pyx-GN1
+  (package
+    (name "python24-pyx-GN1")
+    (version "0.8")
+    (source GN1-thirdparty-sources)
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (sitedir (string-append out "/lib/python2.4/site-packages/pyx/")))
+               (mkdir-p sitedir)
+               (copy-recursively "thirdparty/pyx" sitedir)
+               #t))))))
+    (home-page "")
+    (synopsis "")
+    (description "")
+    (license license:gpl2+)))
+
+(define-public python24-pyxlwriter-GN1
+  (package
+    (name "python24-pyxlwriter-GN1")
+    (version "0.4a3")
+    (source GN1-thirdparty-sources)
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (sitedir (string-append out "/lib/python2.4/site-packages/pyXLWriter/")))
+               (mkdir-p sitedir)
+               (copy-recursively "thirdparty/pyXLWriter" sitedir)
+               #t))))))
+    (home-page "")
+    (synopsis "")
+    (description "")
+    (license license:lgpl2.1+)))
+
+(define-public python24-pp-GN1
+  (package
+    (name "python24-pp-GN1")
+    (version "1.5.7")
+    (source GN1-thirdparty-sources)
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:use-setuptools? #f
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "thirdparty/pp-1.5.7") #t)))))
+    (home-page "")
+    (synopsis "")
+    (description "")
+    (license license:bsd-3)))
+
+(define-public python24-numarray-GN1
+  (package
+    (name "python24-numarray-GN1")
+    (version "1.5.2")
+    (source GN1-thirdparty-sources)
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2.4
+       #:use-setuptools? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda _
+             (invoke "python" "setup.py" "config" "build"
+                     "--gencode" "--use_lapack")))
+         (add-after 'unpack 'find-lapack-and-openblas
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((lapack (assoc-ref inputs "lapack"))
+                   (blas   (assoc-ref inputs "openblas")))
+               (substitute* "cfg_packages.py"
+                 (("lapack_libs = .*'m']")
+                  "lapack_libs = ['lapack', 'openblas', 'm']\n")
+                 (("lapack_dirs = .*")
+                  (string-append "lapack_dirs = ['"
+                                 lapack "/lib', '" blas "/lib']\n"))
+                 (("lapack_include_dirs = .*")
+                  (string-append "lapack_include_dirs = ['"
+                                 lapack "/include', '" blas "/include']\n")))
+               #t)))
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "thirdparty/numarray-1.5.2")
+             (for-each make-file-writable (find-files "."))
+             #t))
+         (replace 'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let ((out (assoc-ref outputs "out")))
+                      (invoke "python" "setup.py" "config"
+                              "install" "--use_lapack"
+                              (string-append "--prefix=" out))))))
+       #:tests? #f))   ; no test target
+    (inputs
+     `(("lapack" ,lapack)
+       ("openblas" ,openblas)))
+    (home-page "")
+    (synopsis "")
+    (description "")
+    (license license:bsd-3)))