Re: [PATCH 1/2] gnu: magit-svn: Update to 2.1.0.

2015-08-21 Thread Mark H Weaver
Alex Kost alez...@gmail.com writes:

 From dbc3edbb675b437eb179008c27565805fd6e8119 Mon Sep 17 00:00:00 2001
 From: Alex Kost alez...@gmail.com
 Date: Wed, 19 Aug 2015 22:57:08 +0300
 Subject: [PATCH 1/2] gnu: magit-svn: Update to 2.1.0.

Have you verified that magit-svn-2.1.0 works properly with magit-1.4.2?

  Mark



Re: [PATCH 2/2] gnu: git-modes: Update to 1.2.0.

2015-08-21 Thread Mark H Weaver
Alex Kost alez...@gmail.com writes:

 From b2f3b8873f7243c13cbfdd8395c8adc9a5678418 Mon Sep 17 00:00:00 2001
 From: Alex Kost alez...@gmail.com
 Date: Wed, 19 Aug 2015 23:06:12 +0300
 Subject: [PATCH 2/2] gnu: git-modes: Update to 1.2.0.

[...]

 -   #:test-target test
 +   #:tests? #f  ; no check target

Interesting.  Did version 1.0.0 have a test suite, and they got rid of
it in 1.2.0?

Otherwise looks good to me.

 Thanks,
   Mark



Re: [PATCH v2] gnu: Add dvtm.

2015-08-21 Thread Mark H Weaver
Leo Famulari l...@famulari.name writes:
 * gnu/packages/dvtm.scm: New file.
 * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Pushed, thanks!

Mark



Re: update youtube-dl

2015-08-21 Thread Mark H Weaver
Efraim Flashner efr...@flashner.co.il writes:

 From ad9e46ab427c9cbca0263066d1625b8c9285cf9c Mon Sep 17 00:00:00 2001
 From: Efraim Flashner efr...@flashner.co.il
 Date: Wed, 19 Aug 2015 16:27:36 +0300
 Subject: [PATCH] * gnu/packages/video.scm (youtube-dl): Update to
  2015.08.16.1.

Your commit log is missing the summary line.  The entire commit log
should look like this:

--8---cut here---start-8---
gnu: youtube-dl: Update to 2015.08.16.1.

* gnu/packages/video.scm (youtube-dl): Update to 2015.08.16.1.
--8---cut here---end---8---

I went ahead and pushed it with this change.

Thanks!
  Mark



[PATCH] guix package: -s shows outputs

2015-08-21 Thread Mark H Weaver
lfam on #guix pointed out that guix package -s does not show the
outputs of the package.  This patch fixes that.

 Mark


From 5853d9df55f4adae4c9d872e3491336efd3b292c Mon Sep 17 00:00:00 2001
From: Mark H Weaver m...@netris.org
Date: Sat, 22 Aug 2015 00:31:11 -0400
Subject: [PATCH] guix package: -s shows outputs.

* guix/ui.scm (package-recutils): Print outputs:.
---
 guix/ui.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/ui.scm b/guix/ui.scm
index 28d4b97..a6d4fd1 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -803,6 +803,7 @@ WIDTH columns.
   ;; Note: Don't i18n field names so that people can post-process it.
   (format port name: ~a~% (package-name p))
   (format port version: ~a~% (package-version p))
+  (format port outputs: ~a~% (string-join (package-outputs p)))
   (format port systems: ~a~%
   (string-join (package-transitive-supported-systems p)))
   (format port dependencies: ~a~%
-- 
2.5.0



Re: [PATCH 2/2] gnu: abcde: Update to 2.7.

2015-08-21 Thread Mark H Weaver
Efraim Flashner efr...@flashner.co.il writes:
 * gnu/packages/cdrom.scm (abcde): Update to 2.7.

Pushed, thanks!

 Mark



Re: [PATCH] gnu: Add sassc.

2015-08-21 Thread Mark H Weaver
David Thompson dthomps...@worcester.edu writes:

 From 4a6d1a798a0625d8bc104b86db56f5d2594a5d80 Mon Sep 17 00:00:00 2001
 From: David Thompson dthomps...@worcester.edu
 Date: Wed, 19 Aug 2015 21:54:57 -0400
 Subject: [PATCH] gnu: Add sassc.

 * gnu/packages/web.scm (sassc): New variable.
 ---
  gnu/packages/web.scm | 53 
 
  1 file changed, 53 insertions(+)

 diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
 index 48bfbc7..ce4cfeb 100644
 --- a/gnu/packages/web.scm
 +++ b/gnu/packages/web.scm
 @@ -642,6 +642,59 @@ minimum to provide high performance operation.)
  ;; bundled CuTest framework uses a different non-copyleft license.
  (license (list l:asl2.0 (l:non-copyleft 
 file://test/CuTest-README.txt)
  
 +(define-public sassc
 +  ;; libsass must be statically linked and it isn't included in source the
 +  ;; sassc release tarballs, hence this odd package recipe.
 +  (let* ((version 3.2.5)
 + (libsass
 +  (origin
 +(method url-fetch)
 +(uri (string-append
 +  https://github.com/sass/libsass/archive/;
 +  version .tar.gz))
 +(file-name (string-append libsass- version .tar.gz))
 +(sha256
 + (base32
 +  1x25k6p1s1yzsdpzb7bzh8japilmi1mk3z96q66pycbinj9z9is4)
 +(package
 +  (name sassc)
 +  (version version)
 +  (source (origin
 +(method url-fetch)
 +(uri (string-append https://github.com/sass/sassc/archive/;
 +version .tar.gz))

Please add a 'file-name' field here.

 +(sha256
 + (base32
 +  1xf3w75w840rj0nx375rxi7mcv1ngqqq8p3zrzjlyx8jfpnldmv5
 +  (build-system gnu-build-system)
 +  (arguments
 +   `(#:make-flags '(CC=gcc)
 + #:test-target test
 + #:phases
 + (modify-phases %standard-phases
 +   (delete 'configure)
 +   (add-before 'build 'set-libsass-path
 + (lambda* (#:key inputs #:allow-other-keys)
 +   (system* tar xvf (assoc-ref inputs libsass))

I think this phase should be renamed, since it is doing much more than
just setting the path.  How about 'unpack-libsass-and-set-path'?

The return value of 'system*' should be checked.

Also, I think this pass should go after 'unpack' instead of before
'build', so that the other passes between 'unpack' and 'build' can do
their jobs.  It's possible that it doesn't make a difference in this
case, but that might change in a future version of libsass, and anyway
since copy+paste from existing packages is a common method, we should
encourage best practices.

 +   (setenv SASS_LIBSASS_PATH
 +   (string-append (getcwd) /libsass- ,version))
 +
 +   #t))

I'd probably remove that blank line here.

 +   (replace 'install ; no install target
 + (lambda* (#:key outputs #:allow-other-keys)
 +   (let ((bin (string-append (assoc-ref outputs out) /bin)))
 + (mkdir-p bin)
 + (copy-file bin/sassc
 +(string-append bin /sassc))
 + #t))
 +  (inputs
 +   `((libsass ,libsass)))
 +  (synopsis CSS pre-processor)
 +  (description SassC is a compiler written in C for the CSS 
 pre-processor
 +language known as SASS.)
 +  (home-page http://sass-lang.com/libsass;)
 +  (license l:expat

Otherwise it looks good to me.  Thanks!

 Mark



Re: [PATCH 2/2] gnu: Add d-feet.

2015-08-21 Thread Mark H Weaver
One more thing:

宋文武 iyzs...@gmail.com writes:
 +   (modify-phases %standard-phases
 + (add-before
 +  'check 'pre-check
 +  (lambda* (#:key inputs #:allow-other-keys)
 +;; The test suite requires a running X server.
 +(system (format #f ~a/bin/Xvfb :1 
 +(assco-ref inputs xorg-server)))
 +(setenv DISPLAY :1)
 +;; Don't fail on missing '/etc/machine-id'.
 +(setenv DBUS_FATAL_WARNINGS 0)
 +;; tests.py and window.py don't meet E402:
 +;;   E402 module level import not at top of file
 +(substitute* src/tests/Makefile
 +  ((--ignore=E123) --ignore=E123,E402

I forgot to mention that you should add #t here, since phase procedures
are supposed to return a boolean, but the return value of 'substitute*'
is unspecified.

 Thanks,
   Mark



Re: [PATCH 1/2] gnu: itstool: Wrap with PTYHONPATH.

2015-08-21 Thread 宋文武
Mark H Weaver m...@netris.org writes:

 宋文武 iyzs...@gmail.com writes:

 gnu: itstool: Wrap with PTYHONPATH.

 s/PTYHONPATH/PYTHONPATH/
oops, thanks!

 * gnu/packages/glib.scm (itstool): Change 'propagated-inputs' to 'inputs'.
   [arguments]: New field.
 ---
  gnu/packages/glib.scm | 10 +-
  1 file changed, 9 insertions(+), 1 deletion(-)

 diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
 index 88c61b6..59d64e9 100644
 --- a/gnu/packages/glib.scm
 +++ b/gnu/packages/glib.scm
 @@ -315,10 +315,18 @@ The intltool collection can be used to do these things:
(base32
 0fh34wi52i0qikgvlmrcpf1vx6gc1xqdad4539l4d9hikfsrz45z
  (build-system gnu-build-system)
 -(propagated-inputs
 +(inputs
   `((libxml2 ,libxml2)
 (python2-libxml2 ,python2-libxml2)
 (python-2 ,python-2)))
 +(arguments
 + '(#:phases
 +   (modify-phases %standard-phases
 + (add-after
 +  'install 'wrap-program
 +  (lambda _
 +(wrap-program (string-append %output /bin/itstool)

 In phase procedures, it's probably better to accept the 'outputs'
 keyword argument to the phase procedure and use that.
ok.

 +  `(PYTHONPATH = (,(getenv PYTHONPATH)
  (home-page http://www.itstool.org;)
  (synopsis Tool to translate XML documents with PO files)
  (description

 Otherwise it looks good to me.
Pushed, thanks for review!



Re: [PATCH] daemon: Split CHROOT_ENABLED into CHROOT_ENABLED and CONTAINER_ENABLED.

2015-08-21 Thread Mark H Weaver
Manolis Ragkousis manolis...@gmail.com writes:

 With this patch, the daemon can perform chrooted builds on Hurd, without
 creating problems to other parts of the daemon that can't be supported.

 So as Mark said, the cases are:

 1. CONTAINER_ENABLED and CHROOT_ENABLED are both true.
 In this case, the daemon works as expected, which is what happens in Linux 
 now.

 2. CONTAINER_ENABLED is false and CHROOT_ENABLED is true.
 Here, things like namespaces cannot be supported, but we can still
 perform chrooted builds.

 3. CONTAINER_ENABLED and CHROOT_ENABLED are both false.
 Here, the daemon is unusable on the system, as it should.

 From 9faae6784c63a47f3cc8faa160c208f60dad1e9c Mon Sep 17 00:00:00 2001
 From: Manolis Ragkousis manolis...@gmail.com
 Date: Thu, 20 Aug 2015 13:50:04 +0300
 Subject: [PATCH] daemon: Split CHROOT_ENABLED into CHROOT_ENABLED and
  CONTAINER_ENABLED.

 * nix/libstore/build.cc (CHROOT_ENABLED): Split.
   (DerivationGoal::startBuilder): Replace CHROOT_ENABLED with 
 CONTAINER_ENABLED.
   (DerivationGoal::runChild): Same.
 ---
  nix/libstore/build.cc | 14 +++---
  1 file changed, 11 insertions(+), 3 deletions(-)

 diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
 index a9eedce..7cde735 100644
 --- a/nix/libstore/build.cc
 +++ b/nix/libstore/build.cc
 @@ -51,7 +51,15 @@
  #include linux/fs.h
  #endif
  
 -#define CHROOT_ENABLED HAVE_CHROOT  HAVE_UNSHARE  HAVE_SYS_MOUNT_H  
 defined(MS_BIND)  defined(MS_PRIVATE)  defined(CLONE_NEWNS)  
 defined(SYS_pivot_root)
 +/* In non Linux systems we can still support chroot builds, even
 +   though sys/mount.h doesn't exist.*/
 +#if __linux__
 +#define CHROOT_ENABLED HAVE_CHROOT  HAVE_SYS_MOUNT_H
 +#else
 +#define CHROOT_ENABLED HAVE_CHROOT
 +#endif
 +
 +#define CONTAINER_ENABLED CHROOT_ENABLED  defined(MS_BIND)  
 defined(MS_PRIVATE)  defined(CLONE_NEWNS)  defined(SYS_pivot_root)
  
  #if CHROOT_ENABLED
  #include sys/socket.h
 @@ -1946,7 +1954,7 @@ void DerivationGoal::startBuilder()
 - The UTS namespace ensures that builders see a hostname of
   localhost rather than the actual hostname.
  */
 -#if CHROOT_ENABLED
 +#if CONTAINER_ENABLED
  if (useChroot) {
   char stack[32 * 1024];
   int flags = CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWIPC | CLONE_NEWUTS | 
 SIGCHLD;
 @@ -1994,7 +2002,7 @@ void DerivationGoal::runChild()
  
  commonChildInit(builderOut);
  
 -#if CHROOT_ENABLED
 +#if CONTAINER_ENABLED
  if (useChroot) {
  /* Initialise the loopback interface. */
  AutoCloseFD fd(socket(PF_INET, SOCK_DGRAM, IPPROTO_IP));

This still doesn't look right.  What about all the code starting from
line 2040 that sets up /dev and /etc in the chroot, as well as all the
store directories, and notably the code starting from line 2123 that
actually does the chroot?

As you have it now, I don't think it's actually doing the chroot at all
when CONTAINER_ENABLED is false.  Am I missing something?

  Mark



elogind status

2015-08-21 Thread Andy Wingo
Hi :)

To pick up a thread from May, I was poking at elogind recently.  A bit
of recap as to how things got here, then the status.

To recall: by default on a Unix system, the user has full control over
their space, but can't do very much about the system itself.  When D-Bus
came along, more and more system services were exposing interfaces
allowing users to take actions on the system, but that bent the policy
too far towards the user -- the admin had no control.  So things started
going the other way again, with PolicyKit brokering privileged actions,
and the admin could specify rules saying under what conditions a user
would be able to take a privileged action, such as rebooting the system,
inhibiting suspend, etc.

One of the conditions that PolicyKit can use to determine whether an
action is authorized or not is knowing whether the user is physically
sitting in front of the computer or not.  This information used to be
maintained by ConsoleKit, which implemented login tracking by running a
wrapper around sessions -- like ck-launch-session.  It exposed a D-Bus
interface that programs could query.

But ConsoleKit is unmaintained now.  The CK developers joined the
systemd team, and shifted to work on logind, which is a part of systemd.
Logind tracks sessions by integrating with PAM -- every time a user logs
in, logind can know it, add some metadata to their PAM session, and
likewise for logout.  This also lets logind know how they log in --
graphically, at the console, remotely, etc.  Logind exposes a C API, in
practice these days part of libsystemd, but it's more common for
programs to use logind's D-Bus API.

I want GNOME on Guix :)  GNOME used to support ConsoleKit but doesn't
any more.  There is a ConsoleKit2 project that started recently but
without buy-in from GNOME I don't see a future for it.  GNOME really
needs the org.freedesktop.login1 D-Bus interface -- really wants it.  So
I thought, OK, let's pull logind out of systemd, and see where that gets
us.

The result is https://github.com/andywingo/elogind.  It provides:

  * a logind-compatible API with a different library name, libelogind

  * a pkg-config file, libelogind.pc

  * a daemon, elogind

  * a PAM module, pam_elogind.so

  * a query/control utility, loginctl

It might be worth it to install more compatibility interfaces for
systemd, e.g. libsystemd.so, or a symlink for systemd/sd-login.h to go
to elogind/sd-login.h.  Or perhaps we should just provide the systemd
header files with the systemd names.  In practice this means that
building packages that use the C interfaces need a bit more munging in
Guix to replace names.

In the patches I sent to this list, we have also a service which runs
elogind, and the facilities to integrate pam_elogind.so with the rest of
the system.  The PAM integration is really horrible and I'd be
interested in other options; see footnote for my os-config.scm.

Upstream logind integrates with systemd to ensure that user sessions are
run in cgroups, which is a pretty neat feature.  They manage cgroups
with a hierarchical slice abstraction.  Perhaps DMD should do this at
some point.  Using cgroups also lets logind know when a process was
started by a user but the user has logged out, and optionally lets the
administrator kill user processes when they log out.  So, elogind will
expose information about users, sessions, and seats, but for now not
slices.  Most logind users don't care so this is OK.

Andy

[*] Configuring elogind

First of all you need some extra file systems.  These paths provide a
documented interface to logind information:

  (file-system
(device systemd)
(mount-point /run/systemd)
(type tmpfs)
(check? #f)
(flags '(no-suid no-dev no-exec))
(options mode=0755)
(create-mount-point? #t))
  (file-system
(device systemd)
(mount-point /run/user)
(type tmpfs)
(check? #f)
(flags '(no-suid no-dev no-exec))
(options mode=0755)
(create-mount-point? #t))

Since elogind wants to manage the content of these directories, it has a
little internal rm-rf helper to clean them when elogind starts up.  But
that helper is really conservative and doesn't want to remove files on a
filesystem that's not tmpfs or ramfs, hence these mounts.

Secondly you need to configure a pam-elogind module.

  (define pam-elogind
(pam-entry
 (control required)
 (module #~(string-append #$elogind /lib/security/pam_elogind.so

We add the pam module to the base pam services:

  (pam-services
   (base-pam-services #:additional-session-modules (list pam-elogind)))

Now we have to add that module to *all* services that can log in that
elogind should know about :(  In my case:

  (services
   (let ((motd (text-file motd 
This is the GNU operating system, welcome!\n\n)))
 (list (console-font-service tty1)
   (console-font-service tty2)
   (console-font-service tty3)
   (console-font-service tty4)
   (console-font-service tty5)
   

Re: elogind status

2015-08-21 Thread 宋文武
Andy Wingo wi...@igalia.com writes:

 [...]
Great news!

 On Fri 21 Aug 2015 13:48, Claes Wallin (韋嘉誠) 
 g...@clacke.user.lysator.liu.se writes:

 How much do you know about what uselessd, nosh and the Ubuntu logind
 shim and how they did things? I don't know anything, I just know these
 things exist.

 No idea!  Could be some things didn't exist back in May?

 Looking now:

  * uselessd is unmaintained, based on an old fork of systemd, actively
hates things I don't care about, aims to replace systemd and not just
logind

  * nosh: doesn't implement the login1 d-bus interface

  * Ubuntu logind shim: Couldn't find information about this.  Ubuntu
uses systemd now so this isn't a way forward for Guix.
AFAIK, systemd-shim emulates the systemd function, so that Debian/Ubuntu
could run logind(from systemd) without running systemd as init. I think
it's for migration.

Also, I find another attempt 'LoginKit' from Devuan, but it suspended.
https://github.com/dimkr/LoginKit/issues/11

 I like systemd so I don't have many motivations of anti-systemd people
 :)  I'm cool with DMD too, don't really care to be honest.  But logind
 interfaces seem to pervade a lot of GNOME, so I'm happy to just take
 systemd's implementation and hack it into a standalone thing.
Really cool, I think we can reach GNOME soon :-)



[PATCH] gnu: llvm: Update to 3.6.2.

2015-08-21 Thread Andy Wingo
Applies on top of my previous LLVM patch.

From f126a706123f27d77c528444602325ca17f691b2 Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@igalia.com
Date: Fri, 21 Aug 2015 16:52:26 +0200
Subject: [PATCH] gnu: llvm: Update to 3.6.2.

* gnu/packages/llvm.scm (llvm, clang-runtime, clang): Update to 3.6.2.
---
 gnu/packages/llvm.scm | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 2f315a3..18e0ca9 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -35,7 +35,7 @@
 (define-public llvm
   (package
 (name llvm)
-(version 3.6.0)
+(version 3.6.2)
 (source
  (origin
   (method url-fetch)
@@ -43,7 +43,7 @@
   version /llvm- version .src.tar.xz))
   (sha256
(base32
-1kmr5vlnz1419nnvyc7lsrcfx09n65ravjbmzxrqz7ml07jnk6mk
+153vcvj8gvgwakzr4j0kndc0b7wn91c2g1vy2vg24s6spxcc23gn
 (build-system cmake-build-system)
 (native-inputs
  `((python ,python-wrapper)
@@ -172,11 +172,11 @@ code analysis tools.)
 (define-public clang-runtime
   (clang-runtime-from-llvm
llvm
-   04bbn946jninynkrjyp337xqs8ihn4fkz5xgvmywxkddwmwznjbz))
+   11qx8d3pbfqjaj2x207pvlvzihbs1z2xbw4crpz7aid6h1yz6bqg))
 
 (define-public clang
   (clang-from-llvm llvm clang-runtime
-   0b8825mvdhfk5r9gwcwp1j2dl9kw5glgyk7pybq2dzhrh4vnj3my))
+   1wwr8s6lzr324hv4s1k6na4j5zv6n9kdhi14s4kb9b13d93814df))
 
 (define-public llvm-3.5
   (package (inherit llvm)
-- 
2.4.3



[PATCH] gnu: rhythmbox: Add gst-plugins-ugly dependency.

2015-08-21 Thread Andy Wingo
Not sure what the right solution to this mess is; ideally a user would
just have to install a set of gstreamer plugins and those would work
across all of their applications, and you wouldn't have to specify the
plugins for each gst-using app.  Dunno.  For now this works better than
not being able to play mp3s tho :P

Andy

From d73e56bbb687eb42a7449aca37c807afdbf2cbaf Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@igalia.com
Date: Fri, 21 Aug 2015 16:49:31 +0200
Subject: [PATCH] gnu: rhythmbox: Add gst-plugins-ugly dep.

* gnu/packages/gnome.scm (rhythmbox): Depend on gst-plugins-ugly so that we
  can play mp3 files.
---
 gnu/packages/gnome.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b97c9ff..433a37a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3007,6 +3007,7 @@ which can read a large number of file formats.)
   (gstreamer ,gstreamer)
   (gst-plugins-base ,gst-plugins-base)
   (gst-plugins-good ,gst-plugins-good)
+  (gst-plugins-ugly ,gst-plugins-ugly)
   (totem-pl-parser ,totem-pl-parser)
   (libgudev ,libgudev)
   ;;(libmtp ,libmtp) FIXME: Not detected
-- 
2.4.3



Re: elogind status

2015-08-21 Thread Andy Wingo
On Fri 21 Aug 2015 13:48, Claes Wallin (韋嘉誠) 
g...@clacke.user.lysator.liu.se writes:

 How much do you know about what uselessd, nosh and the Ubuntu logind
 shim and how they did things? I don't know anything, I just know these
 things exist.

No idea!  Could be some things didn't exist back in May?

Looking now:

 * uselessd is unmaintained, based on an old fork of systemd, actively
   hates things I don't care about, aims to replace systemd and not just
   logind

 * nosh: doesn't implement the login1 d-bus interface

 * Ubuntu logind shim: Couldn't find information about this.  Ubuntu
   uses systemd now so this isn't a way forward for Guix.

I like systemd so I don't have many motivations of anti-systemd people
:)  I'm cool with DMD too, don't really care to be honest.  But logind
interfaces seem to pervade a lot of GNOME, so I'm happy to just take
systemd's implementation and hack it into a standalone thing.

Andy



Re: [PATCH 6/7] gnu: Add elogind service.

2015-08-21 Thread 宋文武
Andy Wingo wi...@igalia.com writes:

 * gnu/services/desktop.scm (elogind-service): New function.
   (%desktop-services): Add elogind-service.
 ---
  gnu/services/desktop.scm | 27 ++-
  1 file changed, 26 insertions(+), 1 deletion(-)

 diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
 index 4e4b49d..737a734 100644
 --- a/gnu/services/desktop.scm
 +++ b/gnu/services/desktop.scm
 @@ -26,6 +26,7 @@
#:use-module (gnu system shadow)
#:use-module (gnu packages glib)
#:use-module (gnu packages admin)
 +  #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gnome)
#:use-module (gnu packages avahi)
#:use-module (gnu packages wicd)
 @@ -39,6 +40,7 @@
  geoclue-application
  %standard-geoclue-applications
  geoclue-service
 +elogind-service
  %desktop-services))
  
  ;;; Commentary:
 @@ -374,6 +376,28 @@ site} for more information.
  
  
  ;;;
 +;;; Elogind login and seat management service.
 +;;;
 +
 +(define* (elogind-service #:key (elogind elogind))
 +  Return a service that runs the @command{elogind} login and seat management
 +service.  The @command{elogind} service integrates with PAM to allow other
 +system components to know the set of logged-in users as well as their session
 +types (graphical, console, remote, etc.).  It can also clean up after users
 +when they log out.
 +  (with-monad %store-monad
 +(return
 + (service
 +  (documentation Run the elogind login and seat management service.)
 +  (provision '(elogind))
 +  (requirement '(dbus-system))
 +
 +  (start #~(make-forkexec-constructor
 +(list (string-append #$elogind
  /lib/elogind/elogind
Should be /libexec/elogind/elogind.
 +  (stop #~(make-kill-destructor))
 +
 +
 +;;;
  ;;; The default set of desktop services.
  ;;;
  (define %desktop-services
 @@ -389,7 +413,8 @@ site} for more information.
   ;; time, so we currently add them to the set of default services.
   (colord-service)
   (geoclue-service)
 - (dbus-service (list avahi wicd upower colord geoclue))
 + (elogind-service)
 + (dbus-service (list avahi wicd upower colord geoclue elogind))
  
   (ntp-service)
  
 -- 
 2.4.3
Look good to me!



Re: elogind status

2015-08-21 Thread Thompson, David
On Fri, Aug 21, 2015 at 8:11 AM, Andy Wingo wi...@igalia.com wrote:

 I like systemd so I don't have many motivations of anti-systemd people
 :)  I'm cool with DMD too, don't really care to be honest.  But logind
 interfaces seem to pervade a lot of GNOME, so I'm happy to just take
 systemd's implementation and hack it into a standalone thing.

I think this is a good strategy.  It will be nice to finally have
GNOME.  I am completely ignorant of how all this stuff fits together
so many, many thanks for working on it.

- Dave



Re: [PATCH 6/7] gnu: Add elogind service.

2015-08-21 Thread Andy Wingo
On Fri 21 Aug 2015 16:17, 宋文武 iyzs...@gmail.com writes:

 Look good to me!

Thanks :)  There is a v2 of this patch.  I had to change some paths in
upstream elogind and the path to the binary changed; so if you apply,
apply v2 of the patch please.  Attaching below as I had some mail
weirdness and perhaps it didn't go through.

Cheers,

Andy

From 7517af974b60a0a3e6ce03d3419863e16edd5999 Mon Sep 17 00:00:00 2001
Message-Id: 7517af974b60a0a3e6ce03d3419863e16edd5999.1440062095.git.wi...@pobox.com
In-Reply-To: 95cd06d0b1639449fffa2ded823e54d0f26afbb6.1440062095.git.wi...@pobox.com
References: 95cd06d0b1639449fffa2ded823e54d0f26afbb6.1440062095.git.wi...@pobox.com
From: Andy Wingo wi...@pobox.com
Date: Tue, 18 Aug 2015 11:56:17 +0200
Subject: [PATCH v2 6/7] gnu: Add elogind service.
To: guix-devel@gnu.org

* gnu/services/desktop.scm (elogind-service): New function.
  (%desktop-services): Add elogind-service.
---
 gnu/services/desktop.scm | 27 ++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4e4b49d..4973e82 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
@@ -39,6 +40,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+elogind-service
 %desktop-services))
 
 ;;; Commentary:
@@ -374,6 +376,28 @@ site} for more information.
 
 
 ;;;
+;;; Elogind login and seat management service.
+;;;
+
+(define* (elogind-service #:key (elogind elogind))
+  Return a service that runs the @command{elogind} login and seat management
+service.  The @command{elogind} service integrates with PAM to allow other
+system components to know the set of logged-in users as well as their session
+types (graphical, console, remote, etc.).  It can also clean up after users
+when they log out.
+  (with-monad %store-monad
+(return
+ (service
+  (documentation Run the elogind login and seat management service.)
+  (provision '(elogind))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$elogind /libexec/elogind/elogind
+  (stop #~(make-kill-destructor))
+
+
+;;;
 ;;; The default set of desktop services.
 ;;;
 (define %desktop-services
@@ -389,7 +413,8 @@ site} for more information.
  ;; time, so we currently add them to the set of default services.
  (colord-service)
  (geoclue-service)
- (dbus-service (list avahi wicd upower colord geoclue))
+ (elogind-service)
+ (dbus-service (list avahi wicd upower colord geoclue elogind))
 
  (ntp-service)
 
-- 
2.4.3



[PATCH] gnu: Add conky.

2015-08-21 Thread Siniša Biđin

Hi,

This depends on my previous Lua patch, adding its pkg-config file.

SinišaFrom 24415951e5458ce176ee3fe860b125e1229c9a35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sini=C5=A1a=20Bi=C4=91in?= sin...@bidin.eu
Date: Fri, 21 Aug 2015 18:20:46 +0200
Subject: [PATCH] gnu: Add conky.

* gnu/packages/conky.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am  |  1 +
 gnu/packages/conky.scm | 78 ++
 2 files changed, 79 insertions(+)
 create mode 100644 gnu/packages/conky.scm

diff --git a/gnu-system.am b/gnu-system.am
index b43dc5b..9557515 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -65,6 +65,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/commencement.scm			\
   gnu/packages/compression.scm			\
   gnu/packages/conkeror.scm			\
+  gnu/packages/conky.scm			\
   gnu/packages/cook.scm\
   gnu/packages/cpio.scm\
   gnu/packages/cppi.scm\
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
new file mode 100644
index 000..fa04c56
--- /dev/null
+++ b/gnu/packages/conky.scm
@@ -0,0 +1,78 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Siniša Biđin sin...@bidin.eu
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see http://www.gnu.org/licenses/.
+
+(define-module (gnu packages conky)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages xorg))
+
+(define-public conky
+  (package
+(name conky)
+(version 1.10.0)
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append https://github.com/brndnmtthws/conky/archive/v;
+   version .tar.gz))
+   (file-name (string-append name - version .tar.gz))
+   (sha256
+(base32 1szq4ckfkvyabv5llf9nkdxipn7429sralsxyr7z0dyc3zwz74pk
+(build-system cmake-build-system)
+(arguments
+ `(#:tests? #f ; there are no tests
+   #:phases
+   (alist-cons-after
+'unpack 'add-freetype-to-search-path
+(lambda* (#:key inputs #:allow-other-keys)
+  (substitute* cmake/ConkyPlatformChecks.cmake
+((set\\(INCLUDE_SEARCH_PATH)
+ (string-append
+  set(INCLUDE_SEARCH_PATH 
+  (assoc-ref inputs freetype) /include/freetype2 )))
+  #t)
+(alist-replace
+ 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+   (let ((bin (string-append (assoc-ref outputs out) /bin)))
+ (mkdir-p bin)
+ (copy-file src/conky (string-append bin /conky
+ %standard-phases
+(inputs
+ `((freetype ,freetype)
+   (ncurses ,ncurses)
+   (libx11 ,libx11)
+   (libxdamage ,libxdamage)
+   (libxft ,libxft)
+   (lua ,lua)))
+(native-inputs
+ `((pkg-config ,pkg-config)))
+(home-page https://github.com/brndnmtthws/conky;)
+(synopsis Light-weight system monitor for X)
+(description
+ Conky is a free, light-weight system monitor for X, that displays any
+kind of information on your desktop.)
+(license (list license:bsd-3 license:gpl3
--
2.4.3


Re: elogind status

2015-08-21 Thread Andy Wingo
On Fri 21 Aug 2015 17:19, 宋文武 iyzs...@gmail.com writes:

 I follow the config, and get elogind running up.
 The pam, seat and session things work,
 I can use loginctl or call the dbus method to switch between sessions.

Nice!

 But the reboot and poweroff don't work, which turn out to run the
 systemd special target ;-

Yeah I think they call out to systemd's dbus interface.  Same for
suspend and lid handling.  I am not sure what to do there; I would
rather not fake systemd's dbus interface, because that sounds like a
large compatibility headache.  Perhaps we could invoke hooks instead,
and have distros customize those hooks.  Or perhaps we include systemd's
code to do these tasks, if that code is small.

Andy



Re: screen locker

2015-08-21 Thread 宋文武
Marcus Moeller marcus.moel...@gmx.ch writes:

 Hi all.

 I wanted to install a screen locker on GuixSD and all I found was slock.

 Sadly when I try to start it as unprivileged user, I got an error like:

 cannot disable the out-of-memory-killer for this process
Same here, I think only root can run it.
(the unprivileged user can't set /proc/self/oom_score_adj).



Re: elogind status

2015-08-21 Thread 宋文武
Andy Wingo wi...@igalia.com writes:

 Hi :)

 [...]

 The result is https://github.com/andywingo/elogind.  It provides:

   * a logind-compatible API with a different library name, libelogind

   * a pkg-config file, libelogind.pc

   * a daemon, elogind

   * a PAM module, pam_elogind.so

   * a query/control utility, loginctl

 It might be worth it to install more compatibility interfaces for
 systemd, e.g. libsystemd.so, or a symlink for systemd/sd-login.h to go
 to elogind/sd-login.h.  Or perhaps we should just provide the systemd
 header files with the systemd names.  In practice this means that
 building packages that use the C interfaces need a bit more munging in
 Guix to replace names.
Yeah, as seen in your polkit patch.

 In the patches I sent to this list, we have also a service which runs
 elogind, and the facilities to integrate pam_elogind.so with the rest of
 the system.  The PAM integration is really horrible and I'd be
 interested in other options; see footnote for my os-config.scm.

 Upstream logind integrates with systemd to ensure that user sessions are
 run in cgroups, which is a pretty neat feature.  They manage cgroups
 with a hierarchical slice abstraction.  Perhaps DMD should do this at
 some point.  Using cgroups also lets logind know when a process was
 started by a user but the user has logged out, and optionally lets the
 administrator kill user processes when they log out.  So, elogind will
 expose information about users, sessions, and seats, but for now not
 slices.  Most logind users don't care so this is OK.
Thanks for the detail explaination, maybe we can use cgmanager somehow
later: https://github.com/lxc/cgmanager

 Andy

 [*] Configuring elogind
 [...]
 It's a bit of a cross-cutting concern and I don't know what to do about
 it exactly.  But, with all of this, and the patches I have sent,
 pam_elogind.so does tell logind about users.  I rewired polkit to use
 elogind for console information but I haven't tried going back up the
 stack to get a GNOME session.  Future work, I guess, and help is very
 much welcome :)  If you are interested in hacking on elogind I am sure
 you will find things to do.  Let me know and I'll add you to the
 maintainers.
I follow the config, and get elogind running up.
The pam, seat and session things work,
I can use loginctl or call the dbus method to switch between sessions.
But the reboot and poweroff don't work, which turn out to run the
systemd special target ;-



Re: elogind status

2015-08-21 Thread Thompson, David
On Fri, Aug 21, 2015 at 11:19 AM, 宋文武 iyzs...@gmail.com wrote:
 Andy Wingo wi...@igalia.com writes:

 Hi :)

 [...]

 The result is https://github.com/andywingo/elogind.  It provides:

   * a logind-compatible API with a different library name, libelogind

   * a pkg-config file, libelogind.pc

   * a daemon, elogind

   * a PAM module, pam_elogind.so

   * a query/control utility, loginctl

 It might be worth it to install more compatibility interfaces for
 systemd, e.g. libsystemd.so, or a symlink for systemd/sd-login.h to go
 to elogind/sd-login.h.  Or perhaps we should just provide the systemd
 header files with the systemd names.  In practice this means that
 building packages that use the C interfaces need a bit more munging in
 Guix to replace names.
 Yeah, as seen in your polkit patch.

 In the patches I sent to this list, we have also a service which runs
 elogind, and the facilities to integrate pam_elogind.so with the rest of
 the system.  The PAM integration is really horrible and I'd be
 interested in other options; see footnote for my os-config.scm.

 Upstream logind integrates with systemd to ensure that user sessions are
 run in cgroups, which is a pretty neat feature.  They manage cgroups
 with a hierarchical slice abstraction.  Perhaps DMD should do this at
 some point.  Using cgroups also lets logind know when a process was
 started by a user but the user has logged out, and optionally lets the
 administrator kill user processes when they log out.  So, elogind will
 expose information about users, sessions, and seats, but for now not
 slices.  Most logind users don't care so this is OK.

 Thanks for the detail explaination, maybe we can use cgmanager somehow
 later: https://github.com/lxc/cgmanager

I think I'm opposed to this.  I say I think because I haven't done
all of my homework yet, but I am just starting to write a Scheme
interface to cgroups for use with 'call-with-container' so I've
learned a thing or two.  I'd like to see dmd use cgroups like systemd
does, but I don't think we need to bring in any LXC tools to do it.
All the LXC stuff I've looked at has been too high level to be useful
to us.  Guile has everything we need. :)

- Dave



Re: [PATCH] gnu: rhythmbox: Add gst-plugins-ugly dependency.

2015-08-21 Thread Mark H Weaver
Andy Wingo wi...@igalia.com writes:

 Not sure what the right solution to this mess is; ideally a user would
 just have to install a set of gstreamer plugins and those would work
 across all of their applications, and you wouldn't have to specify the
 plugins for each gst-using app.  Dunno.  For now this works better than
 not being able to play mp3s tho :P

I don't think we should apply this patch.  Instead, please set
GST_PLUGIN_SYSTEM_PATH to ~/.guix-profile/lib/gstreamer-1.0 and then
all gstreamer plugins installed in your profile should be available
to programs based on gstreamer.  Works for me with totem, anyway.

Note that we have a 'native-search-paths' specification on the
'gstreamer' package, so if you install that package in your profile, it
should remind you to set GST_PLUGIN_SYSTEM_PATH.  Unfortunately, this is
not very satisfactory because there's usually no reason to install
gstreamer in your profile.

It would be good to find a better solution to this more general problem.
Ideally, it would be good to remind the user about 'native-search-paths'
for all *run-time* dependencies of the packages in the user's profile.
Things get messy in a different way when your packages are split between
your user profile and the system profile.  I'm not sure yet how to solve
the more general problem.

What do you think?

Thanks,
  Mark



Re: [PATCH] gnu: Simplify LLVM build.

2015-08-21 Thread Mark H Weaver
Hi Andy,

Thank you for this most excellent, radical simplification of our llvm
package!  However, I agree with Eric about the commit log.

Andy Wingo wi...@igalia.com writes:

 On Mon 17 Aug 2015 10:43, Eric Bavier ericbav...@openmailbox.org writes:

 From db066d194d3b8359eddd0149234bfad29c11542d Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@igalia.com
 Date: Mon, 17 Aug 2015 08:26:07 +0200
 Subject: [PATCH] gnu: Simplify LLVM build.
 
 * gnu/packages/llvm.scm (llvm): Simplify build.

 Could this perhaps be a bit more descriptive?  It also doesn't
 follow our standard.  Maybe:

 gnu: llvm: Simplify build rpath handling.

 * gnu/packages/llvm.scm (llvm)[arguments]: Remove phases argument.
   Add to configure-flags -DCMAKE_SKIP_BUILD_RPATH=FALSE and
   -DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE.

 `~Eric

 It could :)  However I do not see how the change you mention would be
 indicated by the GCS, HACKING, or guix.texi.  As per the GCS I think
 this falls under simple changes.

Whether changes are simple is a matter of judgment, I suppose.  In
this case you've replaced 18 out of 45 lines (40%) of the package
description, the entire customization of the cmake-build-system process.
Under Ludovic's leadership, we strive for high standards in our commit
logs, and I for one am thankful for that when looking over the logs.

 If Guix has additional requirements they should be indicated
 somewhere; did I miss the document?

No, you didn't miss it.  We have a lot to do, and writing precise
documentation of our coding standards is not something we've yet found
time for.  I'm not sure it's something that could be precisely
documented even if we tried.

I'd like to push your commit with Eric's proposed commit log.
Is that okay?

 Mark



[GSoC] Guix + GNUnet: report

2015-08-21 Thread asgeir
Hello!

it’s been a while since my last report, time for some news.

  What happened since last time?
  ——

After our meeting with Ludovic and Christian, I started working on the
downloading and publication related functions. The tests and example
programs were rapidly riddled with bugs and segfaults, and I’ve spent
around one month trying to get the publication working.

Once these problems have been addressed (i.e. a week ago), I could
finally start working on the GNUnet publisher for Guix. Its first
version can only upload one store item at a time, and isn’t even
functional yet: a fikle segfault deems it unusable. Before noticing
this segfault (it doesn’t always happen), I started working on a more
complex version that would allow bulk publication of store items, but
this gain in complexity came with a hole new set of strange and hardly
traceable errors (SIGILL and SIGBUS), and it’s far from being
usable. Moreover, the two version seem to have difficulties handling
symlinks.

  Guile – GNUnet
  ——

The bindings are focused on the FileSharing service, and seem
usable. I’ll write detailed documentation before the end of the GSoC,
and list the pitfalls to avoid (at least those I’m aware of). There’s
still work to do, notably:

  — unify the names, according to Scheme/Guile/Guix conventions, and
reorganize the source.

  — check every function for lacks of arguments checking, verify
everything that’s given to foreign functions.

  — replace all ad-hoc exceptions with more meaningful srfi-34
exceptions;

  — replace `invalid-result` exceptions, raised whenever a foreign
function returns NULL, with more meaningful ones (by inspecting
the GNUnet source);

  — use the various “context pointers” to allow a more functional
style: discarded in the current bindings, these are transmitted
from one function call to another (akin `fold`).

  — improve testing, document everything, complete the bindings and
extend them to other GNUnet services.

  Publishing packages
  ———

Eclosed you’ll find the more usable version of the publisher, “tested”
with the following software:

  — Guix: commit 7cb6f648b2486b0e6060a333564432a0830637de
  — GNUnet:   rev.   36242
  — Libextractor: rev. 36031
  — the bindings: commit dc6f74d269fcb324d8649f3c511299b7ba2be2a4

It’s important to use a recent version of GNUnet, because its API
changed recently (especially, Guix’s currently packaged version isn’t
good).

This publisher can be tested: for that you’ll have to put
`publish-gnunet.scm` and `publish-utils.scm` in `guix/scripts`, and
start GNUnet (see my previous reports). Then you can create an ego:

  $ gnunet-identity -C mytestego

and call the publisher with:

  $ guix publish-gnunet -c /path/to/gnunet.conf -P mytestego \
   /gnu/store/somedirectory

The file `publish-utils.scm` contains code shared between the HTTP
publisher and this one; I did not knew were to store it, thus the
improper module in (guix scripts). `publish-gnunet-multi.scm` is the
WIP second version, not usable at all :(

As usual, do not hesitate to contact me for any question or remark!
-- 
Rémi
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Rémi Birot-Delrue asg...@free.fr
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see http://www.gnu.org/licenses/.

(define-module (guix scripts publish-gnunet)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-9)
  #:use-module (srfi srfi-11)
  #:use-module ((srfi srfi-26) #:select (cut))
  #:use-module (srfi srfi-37)
  #:use-module ((rnrs bytevectors) #:select (string-utf8
	 utf8-string))
  #:use-module (ice-9 match)
  #:use-module (ice-9 ftw)
  #:use-module (ice-9 regex)
  #:use-module (system foreign)
  #:use-module (guix base32)
  #:use-module (guix pki)
  #:use-module (guix store)
  #:use-module (guix ui)
  #:use-module ((guix config)  #:select (%store-directory))
  #:use-module ((gnu gnunet common)#:renamer (symbol-prefix-proc 'gn:))
  #:use-module ((gnu gnunet configuration) #:renamer (symbol-prefix-proc 'gn:))
  #:use-module ((gnu gnunet scheduler) #:renamer (symbol-prefix-proc 'gn:))
  #:use-module ((gnu gnunet container metadata)
		   #:renamer (symbol-prefix-proc 'gn:))
  #:use-module ((gnu gnunet identity)  

Re: screen locker

2015-08-21 Thread Leo Famulari
On Fri, Aug 21, 2015, at 11:47, 宋文武 wrote:
 Same here, I think only root can run it.
 (the unprivileged user can't set /proc/self/oom_score_adj).

Slock on Debian (package suckless-tools) doesn't have this issue. I am
looking into how they deal with it.



Re: question

2015-08-21 Thread Mark H Weaver
Dika Setya Prayogi dikasetyapray...@gmail.com writes:
 hi. is there any guixhurd available to dowoload, or is still under
 development ?

It's still under development.

Mark



Re: screen locker

2015-08-21 Thread Leo Famulari
It seems that slock wants to have the setuid bit set.

I see in the docs [1] that the store cannot contain setuid programs. Is
the workaround in the docs only applicable to GuixSD, or can it be used
with the standalone package manager?

[1]
http://www.gnu.org/software/guix/manual/html_node/Setuid-Programs.html

On Fri, Aug 21, 2015, at 13:46, Leo Famulari wrote:
 On Fri, Aug 21, 2015, at 11:47, 宋文武 wrote:
  Same here, I think only root can run it.
  (the unprivileged user can't set /proc/self/oom_score_adj).
 
 Slock on Debian (package suckless-tools) doesn't have this issue. I am
 looking into how they deal with it.
 



Re: [PATCH 1/1] gnu: Add dvtm.

2015-08-21 Thread Mark H Weaver
Hi!

Leo Famulari l...@famulari.name writes:
 * gnu/packages/dvtm.scm: New file.
 * gnu-system.am: Add it.

Please include the Makefile variable being changed, like this:

* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

 diff --git a/gnu/packages/dvtm.scm b/gnu/packages/dvtm.scm
 new file mode 100644
 index 000..83ee293
 --- /dev/null
 +++ b/gnu/packages/dvtm.scm
 @@ -0,0 +1,29 @@
 +(define-module (gnu packages dvtm)

This new file needs the same header as our other source files, but with
only your own copyright notice on top.

 +  #:use-module (guix packages)
 +  #:use-module (guix download)
 +  #:use-module (guix build-system gnu)
 +  #:use-module (guix licenses)
 +  #:use-module (gnu packages ncurses))
 +
 +(define-public dvtm 
 +  (package
 +   (name dvtm)
 +   (version 0.14)
 +   (source (origin
 + (method url-fetch)

Please don't use any tabs in *.scm files.

 + (uri (string-append http://www.brain-dump.org/projects/dvtm/dvtm-; 
 version.tar.gz))

Please keep all lines in *.scm files to 80 columns or less.  Also, there
should be a space after version.

 + (sha256
 +  (base32 0ykl8dz7ivjgdzhmhlgidnp2ffh5gxq9lbg276w7iid4z10v76wa
 +   (build-system gnu-build-system)
 +   (arguments
 + `(#:make-flags (list (string-append PREFIX= (assoc-ref %outputs 
 out)))

(arguments should be lined up with (build-system, and the ` should
be below the 'a'.  

 +   #:phases (alist-replace 'configure (lambda _ (setenv CC (which 
 gcc))) %standard-phases)

You should be able to remove this line and simply add CC=gcc to the
make flags.

 +   #:tests? #f))

Please add a comment saying why tests are disabled.  It could be as
simple as:

  #:tests? #f))  ; no test suite

 +
 +   (inputs `((ncurses ,ncurses)))
 +   (synopsis Tiling window management for the console)
 +   (description dvtm brings the concept of tiling window management, 
 +popularized by X11-window managers like dwm to the console.  As a console 
 window 
 +manager it tries to make it easy to work with multiple console based 
 programs.  )

There should probably be a comma after dwm here.  Please remove the
extraneous spaces at the end of the description, and wrap to fit in 80
columns.

 +   (home-page http://www.brain-dump.org/projects/dvtm/;)
 +   (license (list isc x11

When there is more than one license, we add a comment above the
'license' field explaining the license situation.  We need to do this
because the meaning of our license lists is ambiguous: it might mean
dual-licensing, or it might mean that some of the code is under one
license and some is under another.

Also, it should be the 'expat' license, not the 'x11' license.  They are
both often ambiguously called the mit license, and are very similar,
so it's a common mistake.

Can you send an updated patch?

 Thanks,
   Mark



Re: [PATCH 1/2] gnu: Add font-ubuntu

2015-08-21 Thread Mark H Weaver
Hi, sorry this is a bit late, but:

l...@gnu.org (Ludovic Courtès) writes:
 Eric Dvorsak e...@dvorsak.fr skribis:

 * gnu/packages/fonts/scm (font-ubuntu): New variable.

That last / should have been a ..  Oh well.

 I changed the license URL to
 http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt and applied it.
 Thank you!

The patch labelled this license as 'non-copyleft', but I'm not sure
that's right.  It includes this text:

  4) The Font Software, modified or unmodified, in part or in whole,
  must be distributed entirely under this licence, and must not be
  distributed under any other licence.  [...]

So this ensures that additional restrictions cannot be added later, like
a copyleft license.  I'm not entirely sure it's a free software license
as indicated by 'fsf-free' either, but that's okay because fonts qualify
as non-functional data.  It might be that we don't yet have anything in
(guix licenses) that applies here.  Maybe we need another
license-producing procedure for non-functional works that satify the
FSDG requirements?

  Mark



Re: elogind status

2015-08-21 Thread 韋嘉誠
On Fri, Aug 21, 2015 at 12:33 PM, Andy Wingo wi...@igalia.com wrote:
 Hi :)

 To pick up a thread from May, I was poking at elogind recently.  A bit
 of recap as to how things got here, then the status.

[ . . . ]

 I want GNOME on Guix :)  GNOME used to support ConsoleKit but doesn't
 any more.  There is a ConsoleKit2 project that started recently but
 without buy-in from GNOME I don't see a future for it.  GNOME really
 needs the org.freedesktop.login1 D-Bus interface -- really wants it.  So
 I thought, OK, let's pull logind out of systemd, and see where that gets
 us.

 The result is https://github.com/andywingo/elogind.  It provides:

   * a logind-compatible API with a different library name, libelogind

   * a pkg-config file, libelogind.pc

   * a daemon, elogind

   * a PAM module, pam_elogind.so

   * a query/control utility, loginctl

This is great to hear!

How much do you know about what uselessd, nosh and the Ubuntu logind
shim and how they did things? I don't know anything, I just know these
things exist.

I want GNOME on Guix too! Currently running Guix on NixOS mostly for
this reason (they use systemd).

-- 
   /c



Re: screen locker

2015-08-21 Thread Daniel Pimentel

On 2015-08-20 04:51, Marcus Moeller wrote:

Hi all.

I wanted to install a screen locker on GuixSD and all I found was 
slock.


Sadly when I try to start it as unprivileged user, I got an error like:

cannot disable the out-of-memory-killer for this process

Greets
Marcus

You can install xlockmore and configure your password to screen locker.

Enlightenment have you own screen locker.

Gnome3 too but not available on GuixSD. In soon 3:)

So when I use Windowmaker or Xfce I was use xlockmore package.
--
Daniel Pimentel (d4n1 3:)



Re: [PATCH 1/1] gnu: Add dvtm.

2015-08-21 Thread Leo Famulari
Hello,

Thanks for your detailed critique of my first patch!

On Fri, Aug 21, 2015, at 18:35, Mark H Weaver wrote:
 Please include the Makefile variable being changed, like this:
 
 * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Done.

 This new file needs the same header as our other source files, but with
 only your own copyright notice on top.

Done. 
 
 Please don't use any tabs in *.scm files.

All the tabs are gone.

I'm new to scheme so I tried to follow Riastradh's Lisp Style Rules, as
suggested in guix docs section 7.4.4 (Coding Style). Basically, I just
used C-M-q in vanilla emacs but I guess that that is not enough. I will
have to read more code and configure my editor more carefully...

 Please keep all lines in *.scm files to 80 columns or less.  Also, there
 should be a space after version.

Done.

 (arguments should be lined up with (build-system, and the ` should
 be below the 'a'.  

Done.
 
  + #:phases (alist-replace 'configure (lambda _ (setenv CC (which 
  gcc))) %standard-phases)
 
 You should be able to remove this line and simply add CC=gcc to the
 make flags.

I'm glad you told me this. That line was copy-pasted. I've replaced the
part that skipped configure and check using modify-phases, which I find
much clearer.

 Please add a comment saying why tests are disabled.  It could be as
 simple as:
 
   #:tests? #f))  ; no test suite

Done.

  +   (description dvtm brings the concept of tiling window management, 
  +popularized by X11-window managers like dwm to the console.  As a console 
  window 
  +manager it tries to make it easy to work with multiple console based 
  programs.  )
 
 There should probably be a comma after dwm here.  Please remove the
 extraneous spaces at the end of the description, and wrap to fit in 80
 columns.

I copied this description verbatim from the project's home page. Think I
should file a bug upstream? ;)

I hadn't noticed the error but now it bugs me, so I've made the change.

Trailing whitespace removed.

  +   (home-page http://www.brain-dump.org/projects/dvtm/;)
  +   (license (list isc x11
 
 When there is more than one license, we add a comment above the
 'license' field explaining the license situation.  We need to do this
 because the meaning of our license lists is ambiguous: it might mean
 dual-licensing, or it might mean that some of the code is under one
 license and some is under another.
 
 Also, it should be the 'expat' license, not the 'x11' license.  They are
 both often ambiguously called the mit license, and are very similar,
 so it's a common mistake.

Done.

 Can you send an updated patch?

It follows this email.

Thanks for your help. Please let know if there are problems with the new
revision.

Leo


On Fri, Aug 21, 2015, at 18:35, Mark H Weaver wrote:
 Hi!
 
 Leo Famulari l...@famulari.name writes:
  * gnu/packages/dvtm.scm: New file.
  * gnu-system.am: Add it.
 
 Please include the Makefile variable being changed, like this:
 
 * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
 
  diff --git a/gnu/packages/dvtm.scm b/gnu/packages/dvtm.scm
  new file mode 100644
  index 000..83ee293
  --- /dev/null
  +++ b/gnu/packages/dvtm.scm
  @@ -0,0 +1,29 @@
  +(define-module (gnu packages dvtm)
 
 This new file needs the same header as our other source files, but with
 only your own copyright notice on top.
 
  +  #:use-module (guix packages)
  +  #:use-module (guix download)
  +  #:use-module (guix build-system gnu)
  +  #:use-module (guix licenses)
  +  #:use-module (gnu packages ncurses))
  +
  +(define-public dvtm 
  +  (package
  +   (name dvtm)
  +   (version 0.14)
  +   (source (origin
  +   (method url-fetch)
 
 Please don't use any tabs in *.scm files.
 
  +   (uri (string-append http://www.brain-dump.org/projects/dvtm/dvtm-; 
  version.tar.gz))
 
 Please keep all lines in *.scm files to 80 columns or less.  Also, there
 should be a space after version.
 
  +   (sha256
  +(base32 0ykl8dz7ivjgdzhmhlgidnp2ffh5gxq9lbg276w7iid4z10v76wa
  +   (build-system gnu-build-system)
  + (arguments
  +   `(#:make-flags (list (string-append PREFIX= (assoc-ref %outputs 
  out)))
 
 (arguments should be lined up with (build-system, and the ` should
 be below the 'a'.  
 
  + #:phases (alist-replace 'configure (lambda _ (setenv CC (which 
  gcc))) %standard-phases)
 
 You should be able to remove this line and simply add CC=gcc to the
 make flags.
 
  + #:tests? #f))
 
 Please add a comment saying why tests are disabled.  It could be as
 simple as:
 
   #:tests? #f))  ; no test suite
 
  +
  +   (inputs `((ncurses ,ncurses)))
  +   (synopsis Tiling window management for the console)
  +   (description dvtm brings the concept of tiling window management, 
  +popularized by X11-window managers like dwm to the console.  As a console 
  window 
  +manager it tries to make it easy to work with multiple console based 
  programs.  )
 
 There should probably be a comma after dwm here.  

[PATCH v2] gnu: Add dvtm.

2015-08-21 Thread Leo Famulari
* gnu/packages/dvtm.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am |  1 +
 gnu/packages/dvtm.scm | 54 +++
 2 files changed, 55 insertions(+)
 create mode 100644 gnu/packages/dvtm.scm

diff --git a/gnu-system.am b/gnu-system.am
index 3858e73..b2b177b 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -87,6 +87,7 @@ GNU_SYSTEM_MODULES =  \
   gnu/packages/docbook.scm \
   gnu/packages/doxygen.scm \
   gnu/packages/dunst.scm   \
+  gnu/packages/dvtm.scm\
   gnu/packages/ebook.scm   \
   gnu/packages/ed.scm  \
   gnu/packages/elf.scm \
diff --git a/gnu/packages/dvtm.scm b/gnu/packages/dvtm.scm
new file mode 100644
index 000..17c7205
--- /dev/null
+++ b/gnu/packages/dvtm.scm
@@ -0,0 +1,54 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Leo Famulari l...@famulari.name
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see http://www.gnu.org/licenses/.
+
+(define-module (gnu packages dvtm)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (gnu packages ncurses))
+
+(define-public dvtm
+  (package
+   (name dvtm)
+   (version 0.14)
+   (source (origin
+(method url-fetch)
+(uri (string-append http://www.brain-dump.org/projects/dvtm/dvtm-;
+ version .tar.gz))
+(sha256
+ (base32 0ykl8dz7ivjgdzhmhlgidnp2ffh5gxq9lbg276w7iid4z10v76wa
+   (build-system gnu-build-system)
+   (arguments
+`(#:make-flags (list CC=gcc
+ (string-append PREFIX= (assoc-ref %outputs out)))
+  #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check  ; no test suite
+   (inputs `((ncurses ,ncurses)))
+   (synopsis Tiling window management for the console)
+   (description dvtm brings the concept of tiling window management,
+popularized by X11-window managers like dwm, to the console.  As a console
+window manager it tries to make it easy to work with multiple console based
+programs.)
+   (home-page http://www.brain-dump.org/projects/dvtm/;)
+
+   ;; dvtm reuses some code of dwm and is released under the same MIT/X11
+   ;; license. The terminal emulation part is licensed under the ISC license.
+   ;; source: http://www.brain-dump.org/projects/dvtm/#license
+   (license (list expat isc
-- 
2.4.3




Re: [PATCH 1/2] gnu: itstool: Wrap with PTYHONPATH.

2015-08-21 Thread Mark H Weaver
宋文武 iyzs...@gmail.com writes:

 gnu: itstool: Wrap with PTYHONPATH.

s/PTYHONPATH/PYTHONPATH/

 * gnu/packages/glib.scm (itstool): Change 'propagated-inputs' to 'inputs'.
   [arguments]: New field.
 ---
  gnu/packages/glib.scm | 10 +-
  1 file changed, 9 insertions(+), 1 deletion(-)

 diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
 index 88c61b6..59d64e9 100644
 --- a/gnu/packages/glib.scm
 +++ b/gnu/packages/glib.scm
 @@ -315,10 +315,18 @@ The intltool collection can be used to do these things:
(base32
 0fh34wi52i0qikgvlmrcpf1vx6gc1xqdad4539l4d9hikfsrz45z
  (build-system gnu-build-system)
 -(propagated-inputs
 +(inputs
   `((libxml2 ,libxml2)
 (python2-libxml2 ,python2-libxml2)
 (python-2 ,python-2)))
 +(arguments
 + '(#:phases
 +   (modify-phases %standard-phases
 + (add-after
 +  'install 'wrap-program
 +  (lambda _
 +(wrap-program (string-append %output /bin/itstool)

In phase procedures, it's probably better to accept the 'outputs'
keyword argument to the phase procedure and use that.

 +  `(PYTHONPATH = (,(getenv PYTHONPATH)
  (home-page http://www.itstool.org;)
  (synopsis Tool to translate XML documents with PO files)
  (description

Otherwise it looks good to me.

 Thanks,
   Mark



Re: [PATCH 2/2] gnu: Add d-feet.

2015-08-21 Thread Mark H Weaver
宋文武 iyzs...@gmail.com writes:

 * gnu/packages/gnome.scm (d-feet): New variable.
 ---
  gnu/packages/gnome.scm | 55 
 ++
  1 file changed, 55 insertions(+)

 diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
 index 1c31be2..393e983 100644
 --- a/gnu/packages/gnome.scm
 +++ b/gnu/packages/gnome.scm
 @@ -3302,3 +3302,58 @@ work and the interface is well tested.)
   Epiphany is a GNOME web browser targeted at non-technical users.  Its
  principles are simplicity and standards compliance.)
  (license license:gpl2+)))
 +
 +(define-public d-feet
 +  (package
 +(name d-feet)
 +(version 0.3.10)
 +(source (origin
 +  (method url-fetch)
 +  (uri (string-append mirror://gnome/sources/ name /
 +  (version-major+minor version) /
 +  name - version .tar.xz))
 +  (sha256
 +   (base32
 +0nb31bvwnj7pcpm85g8bvgjc6s5kbqy8g4qp7pzqf8w6rdgxzw48
 +(build-system glib-or-gtk-build-system)
 +(arguments
 + '(#:out-of-source? #f ; tests need to run in the source directory.
 +   #:phases
 +   (modify-phases %standard-phases
 + (add-before
 +  'check 'pre-check
 +  (lambda* (#:key inputs #:allow-other-keys)
 +;; The test suite requires a running X server.
 +(system (format #f ~a/bin/Xvfb :1 
 +(assco-ref inputs xorg-server)))

Did you test this?  I don't see how this could work, since you mispelled
'assoc-ref'.  Anyway, I guess that Xvfb will be in $PATH, so you can
probably just launch it as Xvfb.  If so, you could avoid the 'format'
and change the 'lambda*' to just lambda _

 +(setenv DISPLAY :1)
 +;; Don't fail on missing '/etc/machine-id'.
 +(setenv DBUS_FATAL_WARNINGS 0)
 +;; tests.py and window.py don't meet E402:
 +;;   E402 module level import not at top of file
 +(substitute* src/tests/Makefile
 +  ((--ignore=E123) --ignore=E123,E402
 + (add-after
 +  'install 'wrap-program
 +  (lambda _
 +(wrap-program (string-append %output /bin/d-feet)
 +  `(PYTHONPATH = (,(getenv PYTHONPATH)))
 +  `(GI_TYPELIB_PATH = (,(getenv GI_TYPELIB_PATH)
 +(native-inputs
 + `((intltool ,intltool)
 +   (itstool ,itstool)
 +   (pkg-config ,pkg-config)
 +   (python-pep8 ,python-pep8)
 +   (xmllint ,libxml2)
 +   (xorg-server ,xorg-server)))
 +(inputs
 + `((gobject-introspection ,gobject-introspection)
 +   (gtk+ ,gtk+)
 +   (python ,python-wrapper)
 +   (python-pygobject ,python-pygobject)))
 +(home-page https://wiki.gnome.org/Apps/DFeet;)
 +(synopsis D-Bus debugger)
 +(description
 + D-Feet is a D-Bus debugger, which can be used to inspect D-Bus 
 interfaces
 +of running programs and invoke methods on those interfaces.)
 +(license license:gpl2+)))

Otherwise it looks good to me.

 Thanks,
   Mark



Re: [PATCH 1/2] gnu: Add eyed3.

2015-08-21 Thread Andreas Enge
On Thu, Aug 20, 2015 at 05:50:10PM +0800, 宋文武 wrote:
 eyeD3 is both a tool and python library, I wonder whether
 'python-eyed3' fits better.

Usually when a package provides binaries we do not use the python prefix.
It would also depend on whether there is a python- and a python2- variant.
If not, this could be seen as an indication that the binary characteristic
is stronger than the library property.

Andreas




Re: [GSoC update] Porting Guix to GNU/Hurd

2015-08-21 Thread Alex Sassmannshausen
Amirouche Boubekki writes:

 Le 2015-08-19 22:27, taylanbayi...@gmail.com a écrit:
 Manolis Ragkousis manolis...@gmail.com writes:
 
 [...]
 
 But nevertheless we can safely say we have ported Guix to Hurd. :-)
 
 [...]
 
 Amazing news! :-)
 
 Thanks so much for working on this.  I haven't tried out Hurd so far 
 but
 am meaning to do so eventually; sounds like my first Hurd system will 
 be
 GuixSD at the same time.  So much awesome in one system.

 I second that. Thanks :)

+1

Congratulations on your good progress, Manolis!

Alex