* [bug#39306] [PATCH] gnu: Add xsettingsd.
@ 2020-01-27 13:04 David Wilson
2020-01-30 12:14 ` Marius Bakke
0 siblings, 1 reply; 7+ messages in thread
From: David Wilson @ 2020-01-27 13:04 UTC (permalink / raw)
To: 39306
[-- Attachment #1: Type: text/plain, Size: 4024 bytes --]
* gnu/packages/wm.scm (xsettingsd): New variable.
---
gnu/packages/wm.scm | 63 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 52d7042806..4fb18e9f67 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -31,6 +31,7 @@
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019 Noodles! <nnoodle@chiru.no>
;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
+;;; Copyright © 2020 David Wilson <david@daviwil.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -59,6 +60,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
+ #:use-module (guix build-system scons)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
@@ -94,6 +96,7 @@
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages serialization)
#:use-module (gnu packages suckless)
#:use-module (gnu packages texinfo)
@@ -1670,3 +1673,63 @@ bar entirely based on XCB. Provides full UTF-8 support, basic
formatting, RandR and Xinerama support and EWMH compliance without
wasting your precious memory.")
(license license:x11))))
+
+(define-public xsettingsd
+ (package
+ (name "xsettingsd")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/derat/xsettingsd.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v"))))
+ (build-system scons-build-system)
+ (inputs
+ `(("libx11" ,libx11)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:scons ,scons-python2
+ #:scons-flags
+ (list "CC=gcc"
+ (string-append "PREFIX=" %output))
+ #:tests? #f ;; Tests require Google's gtest framework
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-sconstruct
+ (lambda _
+ ;; scons doesn't pick up environment variables automatically
+ ;; so it needs some help to find path variables.
+ (substitute* "SConstruct"
+ (("env = Environment\\(")
+ "env = Environment(
+ ENV = {
+ 'PATH': os.environ['PATH'],
+ 'CPATH': os.environ['CPATH'],
+ 'LIBRARY_PATH': os.environ['LIBRARY_PATH'],
+ 'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH']
+ },"))
+ #t))
+ ;; The install task uses gtest to install the binaries.
+ ;; Since we don't have gtest, install binaries manually.
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (mkdir-p bin)
+ (install-file "xsettingsd" bin)
+ (install-file "dump_xsettings" bin)
+ #t))))))
+ (home-page "https://github.com/derat/xsettingsd")
+ (synopsis "Minimal Xorg settings daemon")
+ (description "xsettingsd is a lightweight daemon that provides settings to
+Xorg applications via the XSETTINGS specification. It is used for defining
+font and theme settings when a complete desktop environment (GNOME, KDE) is
+not running. With a simple .xsettingsd configuration file one can avoid
+configuring visual settings in different UI toolkits separately.")
+ (license license:bsd-3)))
--
2.24.1
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#39306] [PATCH] gnu: Add xsettingsd.
2020-01-27 13:04 [bug#39306] [PATCH] gnu: Add xsettingsd David Wilson
@ 2020-01-30 12:14 ` Marius Bakke
2020-01-30 14:20 ` David Wilson
0 siblings, 1 reply; 7+ messages in thread
From: Marius Bakke @ 2020-01-30 12:14 UTC (permalink / raw)
To: David Wilson, 39306
[-- Attachment #1: Type: text/plain, Size: 462 bytes --]
David Wilson <david@daviwil.com> writes:
> * gnu/packages/wm.scm (xsettingsd): New variable.
I wonder if xdisorg.scm is better suited for this package, as it seems
mostly unrelated to window management. WDYT?
[...]
> + #:tests? #f ;; Tests require Google's gtest framework
gtest is provided by the 'googletest' package. Can you try adding it?
Also, for margin comments, we only use one ';', without capitalizing the
comment.
Other than that LGTM.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#39306] [PATCH] gnu: Add xsettingsd.
2020-01-30 12:14 ` Marius Bakke
@ 2020-01-30 14:20 ` David Wilson
2020-01-30 14:46 ` Marius Bakke
0 siblings, 1 reply; 7+ messages in thread
From: David Wilson @ 2020-01-30 14:20 UTC (permalink / raw)
To: Marius Bakke; +Cc: 39306
[-- Attachment #1.1: Type: text/plain, Size: 1166 bytes --]
Hi Marius!
Marius Bakke <mbakke@fastmail.com> writes:
> I wonder if xdisorg.scm is better suited for this package, as it seems
> mostly unrelated to window management. WDYT?
Agreed, that's a more appropriate place.
> gtest is provided by the 'googletest' package. Can you try adding it?
Thanks! I didn't think to check with that name, I've got tests enabled
using that now.
> Also, for margin comments, we only use one ';', without capitalizing the
> comment.
Margin comment no longer needed, but I'll keep this in mind for future
commits.
I've attached an updated patch file with the suggested changes. The
only thing I'm unsure about is disabling a particular warning-as-error
that showed up in the gtest.h header:
---- SNIP ----
/gnu/store/bxapb1f1l8frjpbjckk3zdxhmcig3xzk-googletest-1.10.0/include/gtest/gtest.h:1527:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (lhs == rhs) {
~~~~^~~~~~
cc1plus: all warnings being treated as errors
---- SNIP ----
Since this is a warning in gtest's own header file rather than the
package source, would it be OK to disable errors for it?
Thanks!
David
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
[-- Attachment #2: Updated patch file --]
[-- Type: text/x-patch, Size: 4369 bytes --]
From b5ca2c0377d677c0e3b9e288a8229d54ccd89125 Mon Sep 17 00:00:00 2001
From: David Wilson <david@daviwil.com>
Date: Sun, 26 Jan 2020 05:55:47 -0800
Subject: [PATCH] gnu: Add xsettingsd.
* gnu/packages/xdisorg.scm (xsettingsd): New variable.
---
gnu/packages/xdisorg.scm | 68 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index ecefab1dbb..501ef53d3e 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 David Wilson <david@daviwil.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,6 +58,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system scons)
#:use-module (gnu packages)
#:use-module (gnu packages documentation)
#:use-module (gnu packages admin)
@@ -2005,3 +2007,69 @@ The cutbuffer and clipboard selection are always synchronized.")
can optionally use some appearance settings from XSettings, tint2 and GTK.")
(home-page "https://jgmenu.github.io/")
(license license:gpl2)))
+
+(define-public xsettingsd
+ (package
+ (name "xsettingsd")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/derat/xsettingsd.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v"))))
+ (build-system scons-build-system)
+ (inputs
+ `(("libx11" ,libx11)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("googletest" ,googletest)
+ ("googletest-source" ,(package-source googletest))))
+ (arguments
+ `(#:scons ,scons-python2
+ #:scons-flags
+ (list "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-sconstruct
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "SConstruct"
+ ;; scons doesn't pick up environment variables automatically
+ ;; so it needs help to find path variables
+ (("env = Environment\\(")
+ "env = Environment(
+ ENV = {
+ 'PATH': os.environ['PATH'],
+ 'CPATH': os.environ['CPATH'],
+ 'LIBRARY_PATH': os.environ['LIBRARY_PATH'],
+ 'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH']
+ },")
+ ;; Update path to gtest source files used in tests
+ (("/usr/src/gtest") (string-append
+ (assoc-ref inputs "googletest-source")
+ "/googletest"))
+ ;; Exclude one warning that causes a build error
+ (("-Werror") "-Werror -Wno-error=sign-compare"))
+ #t))
+ ;; The SConstruct script doesn't configure installation so
+ ;; binaries must be copied to the output path directly
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (mkdir-p bin)
+ (install-file "xsettingsd" bin)
+ (install-file "dump_xsettings" bin)
+ #t))))))
+ (home-page "https://github.com/derat/xsettingsd")
+ (synopsis "Minimal Xorg settings daemon")
+ (description "xsettingsd is a lightweight daemon that provides settings to
+Xorg applications via the XSETTINGS specification. It is used for defining
+font and theme settings when a complete desktop environment (GNOME, KDE) is
+not running. With a simple .xsettingsd configuration file one can avoid
+configuring visual settings in different UI toolkits separately.")
+ (license license:bsd-3)))
--
2.24.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#39306] [PATCH] gnu: Add xsettingsd.
2020-01-30 14:20 ` David Wilson
@ 2020-01-30 14:46 ` Marius Bakke
2020-01-30 16:01 ` David Wilson
0 siblings, 1 reply; 7+ messages in thread
From: Marius Bakke @ 2020-01-30 14:46 UTC (permalink / raw)
To: David Wilson; +Cc: 39306
[-- Attachment #1: Type: text/plain, Size: 2076 bytes --]
David Wilson <david@daviwil.com> writes:
> I've attached an updated patch file with the suggested changes. The
> only thing I'm unsure about is disabling a particular warning-as-error
> that showed up in the gtest.h header:
>
> ---- SNIP ----
> /gnu/store/bxapb1f1l8frjpbjckk3zdxhmcig3xzk-googletest-1.10.0/include/gtest/gtest.h:1527:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> if (lhs == rhs) {
> ~~~~^~~~~~
> cc1plus: all warnings being treated as errors
> ---- SNIP ----
>
> Since this is a warning in gtest's own header file rather than the
> package source, would it be OK to disable errors for it?
I'm glad you asked. :-)
It is definitively OK to disable warnings coming from dependencies. In
fact, that is what we are supposed to do, and used to do until the
switch to GCC 7.
To clarify, when we switched to GCC 7, its search paths were changed
from C{,PLUS}_INCLUDE_PATH to CPATH. The only[*] difference between
these search paths is that headers found on the former are treated as
"system headers", which disables warnings.
[*] Besides the fact that GCC 6 and later is very picky about the order
of entries in C_INCLUDE_PATH, which is why we had to switch; see
<https://issues.guix.gnu.org/issue/30756> for details.
So, LGTM, though I have a suggestion for the description:
> + (synopsis "Minimal Xorg settings daemon")
Maybe s/Minimal //, as the description makes it clear that it is a
lightweight alternative to the GNOME and KDE approaches.
> + (description "xsettingsd is a lightweight daemon that provides settings to
> +Xorg applications via the XSETTINGS specification. It is used for defining
> +font and theme settings when a complete desktop environment (GNOME, KDE) is
> +not running. With a simple .xsettingsd configuration file one can avoid
> +configuring visual settings in different UI toolkits separately.")
@command{xsettingsd} and @file{.xsettingsd} will make it look slightly
better/more readable in the various UIs. :-)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#39306] [PATCH] gnu: Add xsettingsd.
2020-01-30 14:46 ` Marius Bakke
@ 2020-01-30 16:01 ` David Wilson
2020-01-30 16:14 ` Marius Bakke
0 siblings, 1 reply; 7+ messages in thread
From: David Wilson @ 2020-01-30 16:01 UTC (permalink / raw)
To: Marius Bakke; +Cc: 39306
[-- Attachment #1.1: Type: text/plain, Size: 910 bytes --]
Marius Bakke <mbakke@fastmail.com> writes:
> It is definitively OK to disable warnings coming from dependencies. In
> fact, that is what we are supposed to do, and used to do until the
> switch to GCC 7.
>
> To clarify, when we switched to GCC 7, its search paths were changed
> from C{,PLUS}_INCLUDE_PATH to CPATH. The only[*] difference between
> these search paths is that headers found on the former are treated as
> "system headers", which disables warnings.
>
> [*] Besides the fact that GCC 6 and later is very picky about the order
> of entries in C_INCLUDE_PATH, which is why we had to switch; see
> <https://issues.guix.gnu.org/issue/30756> for details.
Thanks for the background, that was helpful! I've been out of the loop
on GCC changes for a while so it's good to know that this happened.
I've made the suggested changes to the summary and description, attached
the updated patch.
David
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
[-- Attachment #2: Updated patch --]
[-- Type: text/x-patch, Size: 4378 bytes --]
From 7c9daaf8ab86c84d4bb4ad554912746dacbca5cd Mon Sep 17 00:00:00 2001
From: David Wilson <david@daviwil.com>
Date: Sun, 26 Jan 2020 05:55:47 -0800
Subject: [PATCH] gnu: Add xsettingsd.
* gnu/packages/xdisorg.scm (xsettingsd): New variable.
---
gnu/packages/xdisorg.scm | 68 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index ecefab1dbb..10c5201e5e 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 David Wilson <david@daviwil.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,6 +58,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system scons)
#:use-module (gnu packages)
#:use-module (gnu packages documentation)
#:use-module (gnu packages admin)
@@ -2005,3 +2007,69 @@ The cutbuffer and clipboard selection are always synchronized.")
can optionally use some appearance settings from XSettings, tint2 and GTK.")
(home-page "https://jgmenu.github.io/")
(license license:gpl2)))
+
+(define-public xsettingsd
+ (package
+ (name "xsettingsd")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/derat/xsettingsd.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v"))))
+ (build-system scons-build-system)
+ (inputs
+ `(("libx11" ,libx11)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("googletest" ,googletest)
+ ("googletest-source" ,(package-source googletest))))
+ (arguments
+ `(#:scons ,scons-python2
+ #:scons-flags
+ (list "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-sconstruct
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "SConstruct"
+ ;; scons doesn't pick up environment variables automatically
+ ;; so it needs help to find path variables
+ (("env = Environment\\(")
+ "env = Environment(
+ ENV = {
+ 'PATH': os.environ['PATH'],
+ 'CPATH': os.environ['CPATH'],
+ 'LIBRARY_PATH': os.environ['LIBRARY_PATH'],
+ 'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH']
+ },")
+ ;; Update path to gtest source files used in tests
+ (("/usr/src/gtest") (string-append
+ (assoc-ref inputs "googletest-source")
+ "/googletest"))
+ ;; Exclude one warning that causes a build error
+ (("-Werror") "-Werror -Wno-error=sign-compare"))
+ #t))
+ ;; The SConstruct script doesn't configure installation so
+ ;; binaries must be copied to the output path directly
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (mkdir-p bin)
+ (install-file "xsettingsd" bin)
+ (install-file "dump_xsettings" bin)
+ #t))))))
+ (home-page "https://github.com/derat/xsettingsd")
+ (synopsis "Xorg settings daemon")
+ (description "@command{xsettingsd} is a lightweight daemon that provides settings to
+Xorg applications via the XSETTINGS specification. It is used for defining
+font and theme settings when a complete desktop environment (GNOME, KDE) is
+not running. With a simple @file{.xsettingsd} configuration file one can avoid
+configuring visual settings in different UI toolkits separately.")
+ (license license:bsd-3)))
--
2.24.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#39306] [PATCH] gnu: Add xsettingsd.
2020-01-30 16:01 ` David Wilson
@ 2020-01-30 16:14 ` Marius Bakke
2020-01-31 13:57 ` bug#39306: " David Wilson
0 siblings, 1 reply; 7+ messages in thread
From: Marius Bakke @ 2020-01-30 16:14 UTC (permalink / raw)
To: David Wilson; +Cc: 39306
[-- Attachment #1: Type: text/plain, Size: 986 bytes --]
David Wilson <david@daviwil.com> writes:
> Marius Bakke <mbakke@fastmail.com> writes:
>
>> It is definitively OK to disable warnings coming from dependencies. In
>> fact, that is what we are supposed to do, and used to do until the
>> switch to GCC 7.
>>
>> To clarify, when we switched to GCC 7, its search paths were changed
>> from C{,PLUS}_INCLUDE_PATH to CPATH. The only[*] difference between
>> these search paths is that headers found on the former are treated as
>> "system headers", which disables warnings.
>>
>> [*] Besides the fact that GCC 6 and later is very picky about the order
>> of entries in C_INCLUDE_PATH, which is why we had to switch; see
>> <https://issues.guix.gnu.org/issue/30756> for details.
>
> Thanks for the background, that was helpful! I've been out of the loop
> on GCC changes for a while so it's good to know that this happened.
>
> I've made the suggested changes to the summary and description, attached
> the updated patch.
Excellent, LGTM!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#39306: [PATCH] gnu: Add xsettingsd.
2020-01-30 16:14 ` Marius Bakke
@ 2020-01-31 13:57 ` David Wilson
0 siblings, 0 replies; 7+ messages in thread
From: David Wilson @ 2020-01-31 13:57 UTC (permalink / raw)
To: Marius Bakke; +Cc: 39306-done
Thanks for your help Marius!
Pushed this to master as commit 261d0e8e3837139b9d4314a87c8370c6d7f54124.
David
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-01-31 13:58 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-27 13:04 [bug#39306] [PATCH] gnu: Add xsettingsd David Wilson
2020-01-30 12:14 ` Marius Bakke
2020-01-30 14:20 ` David Wilson
2020-01-30 14:46 ` Marius Bakke
2020-01-30 16:01 ` David Wilson
2020-01-30 16:14 ` Marius Bakke
2020-01-31 13:57 ` bug#39306: " David Wilson
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).