Subject: Re: [bug#27440] [PATCH 1/4] gnu: python: Add python2-pyopengl.

From: [email-masked] (Ludovic Courtès)
Date: Fri, 23 Jun 2017 13:52:06 +0200

Hi Rutger,

Rutger Helling <[email-masked]> skribis:

> From 66eaa133a3e2bfc0a0621a009be23dd65229d617 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <[email-masked]>
> Date: Fri, 23 Jun 2017 05:43:09 +0200
> Subject: [PATCH] gnu: python: Add python2-pyopengl.
>
> * gnu/packages/python.scm (python2-pyopengl): New variable.

[...]

> +   (description
> +         "PyOpenGL is the most common cross platform Python binding to OpenGL
> +and related APIs.  The binding is created using the standard ctypes library, and
> +is provided under an extremely liberal BSD-style Open-Source license.")
> +   (license license:bsd-3)))

I removed the mention of the license (everything is free software in
Guix, no need to explain it; also see
<https://www.gnu.org/philosophy/open-source-misses-the-point.html>),
reindented (consider using the ‘etc/indent-code.el’ script), and
committed.

> From 61e2259cdc6167e4747c32f07188917dd0d94413 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <[email-masked]>
> Date: Thu, 22 Jun 2017 22:33:28 +0200
> Subject: [PATCH] gnu: python: Add python-rencode.
>
> * gnu/packages/python.scm (python-rencode): New variable.

[...]

> +   (home-page "https://github.com/aresch/rencode")
> +   (synopsis "For complex, heterogeneous data structures with many small elements")
> +   (description
> +         "The rencode module is similar to bencode from the BitTorrent project.
> +For complex, heterogeneous data structures with many small elements, r-encoding
> +stake up significantly less space than b-encodings.  This version of rencode is a
> +complete rewrite in Cython to attempt to increase the performance over the pure
> +Python module written by Petru Paler, Connelly Barnes et al.")
> +   (license license:bsd-3)))

I adjusted the synopsis and description to hopefully give a better idea
of what this is and committed.

> From d7329ed89e1533744092d59c82da61ef1fe1b62d Mon Sep 17 00:00:00 2001
> From: Rutger Helling <[email-masked]>
> Date: Fri, 23 Jun 2017 05:45:29 +0200
> Subject: [PATCH] gnu: xorg: Add xpra.
>
> * gnu/packages/xorg.scm (xpra): New variable.

Applied with the changes below (I’m currently building it but will push
as soon as it’s done.)

On the topic of synopses/descriptions, please take a look at
<https://www.gnu.org/software/guix/manual/html_node/Synopses-and-Descriptions.html>
if you haven’t already.

Thank you!

Ludo’.

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 932415440..d4da5d709 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5842,17 +5842,20 @@ basic eye-candy effects.")
        #:configure-flags '("--with-tests"
                            "--with-bundle_tests"
                            "--without-strict")
-        #:modules ((guix build python-build-system) (guix build utils))
-        #:phases (modify-phases %standard-phases
+       #:modules ((guix build python-build-system)
+                  (guix build utils))
+
+       #:phases
+       (modify-phases %standard-phases
          (delete 'build)
          (delete 'check) ;; There's no test suite at the moment.
-          ;; Remove BUILD_CPU, BUILD_DATE, BUILD_TIME
-          ;; from build info to prevent deterministic issues.
-          ;; Also correct some directories and use the xvfb
-          ;; binary instead of xorg-server (which doesn't seem
-          ;; to work).
-          (add-before 'install 'fix-output
-            (lambda _
+
+         ;; Remove BUILD_CPU, BUILD_DATE, BUILD_TIME from build info to
+         ;; prevent deterministic issues.  Also correct some directories and
+         ;; use the xvfb binary instead of xorg-server (which doesn't seem to
+         ;; work).
+         (add-before 'install 'remove-timestamps&set-file-names
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (substitute* "add_build_info.py"
                ((".*\"BUILD_CPU\", get_cpuinfo.*") ""))
              (substitute* "add_build_info.py"
@@ -5860,16 +5863,28 @@ basic eye-candy effects.")
              (substitute* "add_build_info.py"
                ((".*\"BUILD_TIME\", datetime.*") ""))
              (substitute* "setup.py"
-                (("/etc/init.d/") (string-append %output "/etc/init.d/")))
+               (("/etc/init.d/")
+                (string-append (assoc-ref outputs "out")
+                               "/etc/init.d/")))
              (substitute* "setup.py"
-                (("/usr/lib/") (string-append %output "/lib/")))
+               (("/usr/lib/")
+                (string-append (assoc-ref outputs "out") "/lib/")))
              (substitute* "./etc/xpra/conf.d/55_server_x11.conf.in"
-                           (("xvfb = %.*") (string-append "xvfb = " (assoc-ref
-%build-inputs "xorg-server") "/bin/Xvfb +extension Composite -nolisten tcp"
-" -noreset -auth $XAUTHORITY -screen 0 5760x2560x24+32"))))))))
+               (("xvfb = %.*")
+                (string-append "xvfb = "
+                               (assoc-ref inputs "xorg-server")
+                               "/bin/Xvfb +extension Composite -nolisten tcp"
+                               " -noreset -auth $XAUTHORITY"
+                               " -screen 0 5760x2560x24+32")))
+             #t)))))
     (home-page "https://www.xpra.org/")
     (synopsis "Remote access to individual applications or full desktops")
     (description "Xpra is a persistent remote display server and client for
-forwarding applications and desktop screens.")
+forwarding applications and desktop screens.  It gives you remote access to
+individual applications or full desktops.  On X11, it is also known as
+``@command{screen} for X11'': it allows you to run programs, usually on a
+remote host, direct their display to your local machine, and then to
+disconnect from these programs and reconnect from the same or another machine,
+without losing any state.  It can also be used to forward full desktops from
+X11 servers, Windows, or macOS.")
     (license license:gpl2+)))
-