guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: gnu: Add awesome.


From: Ludovic Courtès
Subject: 01/02: gnu: Add awesome.
Date: Thu, 16 Jun 2016 12:35:07 +0000 (UTC)

civodul pushed a commit to branch master
in repository guix.

commit 3d1240aa2561792895795315c7783a28bf4412af
Author: Carlo Zancanaro <address@hidden>
Date:   Wed Jun 15 22:15:33 2016 +1000

    gnu: Add awesome.
    
    * gnu/packages/wm.scm (awesome): New variable.
    * gnu/packages/patches/awesome-reproducible-png.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
    
    Co-authored-by: Ludovic Courtès <address@hidden>
---
 gnu/local.mk                                       |    1 +
 .../patches/awesome-reproducible-png.patch         |   14 +++
 gnu/packages/wm.scm                                |   96 ++++++++++++++++++++
 3 files changed, 111 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index abd05ef..55fea0e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -439,6 +439,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/avahi-localstatedir.patch               \
   %D%/packages/patches/avidemux-install-to-lib.patch           \
   %D%/packages/patches/avrdude-fix-libusb.patch                        \
+  %D%/packages/patches/awesome-reproducible-png.patch          \
   %D%/packages/patches/bash-completion-directories.patch       \
   %D%/packages/patches/bigloo-gc-shebangs.patch                        \
   %D%/packages/patches/binutils-ld-new-dtags.patch             \
diff --git a/gnu/packages/patches/awesome-reproducible-png.patch 
b/gnu/packages/patches/awesome-reproducible-png.patch
new file mode 100644
index 0000000..0fae65b
--- /dev/null
+++ b/gnu/packages/patches/awesome-reproducible-png.patch
@@ -0,0 +1,14 @@
+Do not introduce timestamps in PNG files (for icons).
+See <https://wiki.debian.org/ReproducibleBuilds/TimestampsInPNG>.
+
+--- awesome-3.4.15/CMakeLists.txt      2013-02-11 14:50:21.000000000 +0100
++++ awesome-3.4.15/CMakeLists.txt      2016-06-16 13:59:30.528125439 +0200
+@@ -295,7 +295,7 @@ macro(a_icon_convert match replacement i
+         set(ALL_ICONS ${ALL_ICONS} ${output})
+ 
+         add_custom_command(
+-            COMMAND ${CONVERT_EXECUTABLE} ${input} ${ARGN} ${output}
++            COMMAND ${CONVERT_EXECUTABLE} +set date:create +set date:modify 
-define png:exclude-chunk=time ${input} ${ARGN} ${output}
+             OUTPUT  ${output}
+             DEPENDS ${input}
+             VERBATIM)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 5f32fc4..f385d2b 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -7,6 +7,8 @@
 ;;; Copyright © 2016 Danny Milosavljevic <address@hidden>
 ;;; Copyright © 2016 Efraim Flashner <address@hidden>
 ;;; Copyright © 2016 Al McElrath <address@hidden>
+;;; Copyright © 2016 Carlo Zancanaro <address@hidden>
+;;; Copyright © 2016 Ludovic Courtès <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +30,7 @@
   #:use-module (guix packages)
   #:use-module (gnu packages)
   #:use-module (gnu packages linux)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system haskell)
   #:use-module (gnu packages haskell)
@@ -49,6 +52,11 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages web)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages lua)
   #:use-module (guix download)
   #:use-module (guix git-download))
 
@@ -370,3 +378,91 @@ and easy to handle yet full of features to make an easy 
and fast desktop
 experience.")
     (home-page "http://fluxbox.org/";)
     (license license:expat)))
+
+(define-public awesome
+  (package
+    (name "awesome")
+    (version "3.4.15")
+    (source
+     (origin (method url-fetch)
+             (uri (string-append
+                   "https://awesome.naquadah.org/download/awesome-";
+                   version ".tar.xz"))
+             (sha256
+              (base32
+               "1m910lr7wkw2dgzmirfvz7dasfswhhccdf65l21iiciv24c3w1bb"))
+             (modules '((guix build utils)
+                        (srfi srfi-19)))
+             (imported-modules '((guix build utils)))
+             (snippet
+              ;; Remove non-reproducible timestamp and use the date of the
+              ;; source file instead.
+              '(substitute* "common/version.c"
+                 (("__DATE__ \" \" __TIME__")
+                  (date->string
+                   (time-utc->date
+                    (make-time time-utc 0
+                               (stat:mtime (stat "awesome.c"))))
+                   "\"~c\""))))
+             (patches (search-patches "awesome-reproducible-png.patch"))))
+    (build-system cmake-build-system)
+    (native-inputs `(("asciidoc" ,asciidoc)
+                     ("docbook-xsl" ,docbook-xsl)
+                     ("doxygen" ,doxygen)
+                     ("gperf" ,gperf)
+                     ("imagemagick" ,imagemagick)
+                     ("libxml2" ,libxml2)         ;for XML_CATALOG_FILES
+                     ("pkg-config" ,pkg-config)
+                     ("xmlto" ,xmlto)))
+    (inputs `(("cairo" ,cairo)
+              ("dbus" ,dbus)
+              ("gdk-pixbuf" ,gdk-pixbuf)
+              ("glib" ,glib)
+              ("imlib2" ,imlib2)
+              ("libev" ,libev)
+              ("libxcb" ,libxcb)
+              ("libxcursor" ,libxcursor)
+              ("libxdg-basedir" ,libxdg-basedir)
+              ("lua" ,lua-5.1)
+              ("pango" ,pango)
+              ("startup-notification" ,startup-notification)
+              ("xcb-util" ,xcb-util)
+              ("xcb-util-cursor" ,xcb-util-cursor)
+              ("xcb-util-image" ,xcb-util-image)
+              ("xcb-util-keysyms" ,xcb-util-keysyms)
+              ("xcb-util-renderutil" ,xcb-util-renderutil)
+              ("xcb-util-wm" ,xcb-util-wm)))
+    (arguments
+     `(;; Let compression happen in our 'compress-documentation' phase so that
+       ;; '--no-name' is used, which removes timestamps from gzip output.
+       #:configure-flags '("-DCOMPRESS_MANPAGES=off")
+
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'xmlto-skip-validation
+                    (lambda _
+                      ;; We can't download the necessary schema, so so skip
+                      ;; validation and assume they're valid.
+                      (substitute* "../build/CMakeFiles/man.dir/build.make"
+                        (("/xmlto")
+                         (string-append "/xmlto --skip-validation")))
+                      #t))
+                  (replace 'check
+                    (lambda _
+                      ;; There aren't any tests, so just make sure the binary
+                      ;; gets built and can be run successfully.
+                      (zero? (system* "../build/awesome" "-v")))))))
+    (synopsis "Highly configurable window manager")
+    (description
+     "awesome is a window manager for X.  It manages windows in different
+layouts, like floating or tiled.  Any layout can be applied dynamically,
+optimizing the environment for the application in use and the task currently
+being performed.
+
+In a tiled layout, windows are managed in a master and stacking area.  In a
+floating layout windows can be resized and moved freely.  Dialog windows are
+always managed as floating, regardless of the layout currently applied.
+
+Windows are grouped by tags in awesome.  Each window can be tagged with one or
+more tags.  Selecting certain tags displays all windows with these tags.")
+    (license license:gpl2+)
+    (home-page "https://awesome.naquadah.org/";)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]