FOSDEM 2019: Thank you!

2019-02-03 Thread Pjotr Prins
Thank you everyone for this great FOSDEM with the GNU Guix days: it
was just great to see everyone and all the interactions! I feel much
inspired to try GNU Hurd, new Guix features, the new Guile build
system and even Racket (oops).

A special thank you to the speakers and everyone who helped out!

People came from really far, e.g., Argentina, USA (4x!), Canada,
Israel.  Wonderful to have you with us! Thanks you so much for making
the effort!

Especially I wish to thank Manolis Ragkousis for doing so many of the
preparations and dealing with the ungrateful job of organizing the
programme and chasing speakers.

I wish to thanks Andreas Enge, Efraim Flashner and Chris Marusich:
thank you so much for helping out with the minimalistic languages
devroom! We have run one of the most intense devrooms with so many
back-to-back talks and no pauses.

And finally I wish to thank all the people working on GNU Guix and GNU
Mes. You make it all so interesting :). I feel 2019 is going to be an
exceptional year.

The videos should be coming online in the coming days (see the
schedule

https://fosdem.org/2019/schedule/track/minimalistic_languages/

If you were a speaker, please click the link that was sent to you to
release the video. Slides can still be uploaded through pentabarf.

For those still heading back: safe travels! And hope to see everyone
next year in health and great spirits!

Pj.



Re: [PATCH] gnu: Add ungoogled-chromium.

2019-02-03 Thread brettg
As always, I second Bill here. There is a lot of history behind the 
Chromium project that I think many of us are aware of. There, to my 
knowledge, remains to be a complete audit of the Chromium source. Such 
an audit is crucial for us to even know what is problematic and what is 
not when it comes to FSDG compliance. So, unless the ungoogled chromium 
project has done this audit successfully I remain a kind skeptic.


On 04.02.2019 05:52, bill-auger wrote:

re: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg9.html

i would like to remind readers of the guix-devel list that it was
discussed some months ago, why no FSDG distros currently distribute
chromium[1] - it appeared at that time, that most people in that
discussion were in agreement that chromium should not be included in
guix; and marius was instead hosting it in a private repo, as not to
taint the main guix repos with dubious software - has there been a
notable break-through since then?

what is the evidence for this claim that this guix package is "free
software only"? - what does "Marks beautiful computed-origin-method" do
toward that end? - if a procedure for liberating any chromium-derived
software has been discovered, this would be a marvelous accomplishment
and very good news indeed, of which people outside of the guix dev team
would also be interested to learn

if the guix team has discovered some new information or has concocted a
viable liberation recipe for chromium or any of it's offspring, then i
hope that, for the benefit of all fellow Fosstopians, someone would
present that information to the FSDG mailing list for review and
discussion - it would be extra neighborly if that happened *before*
offering this program to guix users, while fully knowing that the other
FSDG distros are still intentionally suppressing it in solidarity

again, i am totally indifferent as to whether anyone uses chromium or
not - my only interest in this is that i would like to strengthen the
FSDG by convincing FSDG distros to communicate and collaborate with 
each

other, and to achieve consensus about common issues such as this, that
clearly affect all distros equally; so that no one is compelled to ask
"why does guixsd endorse that popular program if other FSDG distros
reject it on principal?" - it is difficult enough to explain to users
why these programs are rejected in the first place; but at least the
way things are now, we can say that all FSDG distros are in agreement 
to

err on the conservative side until a satisfactory liberation procedure
is found and documented - currently, the documented liberation
procedure is: "Remove program/package. Use GNU IceCat, or
equivalent"[2] - if there is a better candidate procedure now, let us
get it onto the table for discussion

i would like to consider all FSDG distros as being part of a larger
federation, sharing the same primary goals; but we cant all be reading
all of the dev lists - let us communicate whenever applicable, in the
common venue that exists for that purpose[3] - i tried enticing the
folks on the guix team to do that previously - if there is indeed
something new to announce regarding chromium's dubious FSDG status,
please elect someone from guix to do so now - this would be very
interesting news to the readers of that list, and your effort and/or
accomplishment would be sincerely applauded - other FSDG distros would
be happy (and some quite eager) to re-instate any of these
chromium-derived packages if a consensus could be reached that any of
them could be distributed 100% freely; but if all distros are to decide
for themselves what is freely distributable and what is not, without
evidence and without discussing it with the other FSDG distros nor the
FSF, then the FSDG loses its teeth, and we all look wishy-washy and
flakey on that, the main, central FSDG concern: which programs are
freely distributable and which are not


[1]: 
https://lists.gnu.org/archive/html/guix-devel/2018-09/msg00264.html

[2]:
https://libreplanet.org/wiki/List_of_software_that_does_not_respect_the_Free_System_Distribution_Guidelines#chromium-browser
[3]: https://lists.nongnu.org/mailman/listinfo/gnu-linux-libre




Re: [PATCH] gnu: Add ungoogled-chromium.

2019-02-03 Thread bill-auger
re: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg9.html

i would like to remind readers of the guix-devel list that it was
discussed some months ago, why no FSDG distros currently distribute
chromium[1] - it appeared at that time, that most people in that
discussion were in agreement that chromium should not be included in
guix; and marius was instead hosting it in a private repo, as not to
taint the main guix repos with dubious software - has there been a
notable break-through since then?

what is the evidence for this claim that this guix package is "free
software only"? - what does "Marks beautiful computed-origin-method" do
toward that end? - if a procedure for liberating any chromium-derived
software has been discovered, this would be a marvelous accomplishment
and very good news indeed, of which people outside of the guix dev team
would also be interested to learn

if the guix team has discovered some new information or has concocted a
viable liberation recipe for chromium or any of it's offspring, then i
hope that, for the benefit of all fellow Fosstopians, someone would
present that information to the FSDG mailing list for review and
discussion - it would be extra neighborly if that happened *before*
offering this program to guix users, while fully knowing that the other
FSDG distros are still intentionally suppressing it in solidarity

again, i am totally indifferent as to whether anyone uses chromium or
not - my only interest in this is that i would like to strengthen the
FSDG by convincing FSDG distros to communicate and collaborate with each
other, and to achieve consensus about common issues such as this, that
clearly affect all distros equally; so that no one is compelled to ask
"why does guixsd endorse that popular program if other FSDG distros
reject it on principal?" - it is difficult enough to explain to users
why these programs are rejected in the first place; but at least the
way things are now, we can say that all FSDG distros are in agreement to
err on the conservative side until a satisfactory liberation procedure
is found and documented - currently, the documented liberation
procedure is: "Remove program/package. Use GNU IceCat, or
equivalent"[2] - if there is a better candidate procedure now, let us
get it onto the table for discussion

i would like to consider all FSDG distros as being part of a larger
federation, sharing the same primary goals; but we cant all be reading
all of the dev lists - let us communicate whenever applicable, in the
common venue that exists for that purpose[3] - i tried enticing the
folks on the guix team to do that previously - if there is indeed
something new to announce regarding chromium's dubious FSDG status,
please elect someone from guix to do so now - this would be very
interesting news to the readers of that list, and your effort and/or
accomplishment would be sincerely applauded - other FSDG distros would
be happy (and some quite eager) to re-instate any of these
chromium-derived packages if a consensus could be reached that any of
them could be distributed 100% freely; but if all distros are to decide
for themselves what is freely distributable and what is not, without
evidence and without discussing it with the other FSDG distros nor the
FSF, then the FSDG loses its teeth, and we all look wishy-washy and
flakey on that, the main, central FSDG concern: which programs are
freely distributable and which are not


[1]: https://lists.gnu.org/archive/html/guix-devel/2018-09/msg00264.html
[2]:
https://libreplanet.org/wiki/List_of_software_that_does_not_respect_the_Free_System_Distribution_Guidelines#chromium-browser
[3]: https://lists.nongnu.org/mailman/listinfo/gnu-linux-libre



[shepherd] Stopping service twice should not say “not found”

2019-02-03 Thread Ricardo Wurmus
Hi,

requesting that a shepherd service (e.g. ’foo’) that has already been
stopped be stopped again produces the error "service 'foo' could not be
found".  This is confusing because it implies that ’foo’ is not a valid
name.

(shepherd service) defines a method “stop” that uses “lookup-running” to
find running services:

--8<---cut here---start->8---
;; Stopping by name.
(define-method (stop (obj ) . args)
  (let ((which (lookup-running obj)))
(if (not which)
(let ((unknown (lookup-running 'unknown)))
  (if (and unknown
   (defines-action? unknown 'stop))
  (apply action unknown 'stop obj args)
  (raise (condition ( (name obj))
(apply stop which args
--8<---cut here---end--->8---

I think it would be better to ignore “stop” when it’s run on a stopped
service.  Here’s a patch.

>From c285d0f085e8e9c6a4ad347643f7186807735189 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Sun, 3 Feb 2019 23:25:22 +0100
Subject: [PATCH] service: Don't raise error when stopping an already stopped
 service.

* modules/shepherd/service.scm (stop): If a service by the given name exists
and is already stopped, then don't raise an error.
---
 modules/shepherd/service.scm | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm
index 34a55a1..9f38886 100644
--- a/modules/shepherd/service.scm
+++ b/modules/shepherd/service.scm
@@ -4,6 +4,7 @@
 ;; Copyright (C) 2014 Alex Sassmannshausen 
 ;; Copyright (C) 2016 Alex Kost 
 ;; Copyright (C) 2018 Carlo Zancanaro 
+;; Copyright (C) 2019 Ricardo Wurmus 
 ;;
 ;; This file is part of the GNU Shepherd.
 ;;
@@ -592,13 +593,17 @@ Used by `start' and `enforce'."
 ;; Stopping by name.
 (define-method (stop (obj ) . args)
   (let ((which (lookup-running obj)))
-(if (not which)
-	(let ((unknown (lookup-running 'unknown)))
+(if which
+	(apply stop which args)
+(let ((unknown (lookup-running 'unknown)))
 	  (if (and unknown
 		   (defines-action? unknown 'stop))
 	  (apply action unknown 'stop obj args)
-  (raise (condition ( (name obj))
-(apply stop which args
+  ;; Only print an error if the service does not exist.
+  (match (lookup-services name)
+(()
+ (raise (condition ( (name obj)
+(_ #f)))
 
 (define-method (action (obj ) the-action . args)
   "Perform THE-ACTION on all the services named OBJ.  Return the list of
-- 
2.20.1


--
Ricardo


Re: [PATCH] gnu: Add ungoogled-chromium.

2019-02-03 Thread Amin Bandali
Hello Marius,

Thanks for your work patching and packaging ungoogled-chromium!

I haven’t had a chance to have a closer look at your patch, but would
you mind elaborating on the “* Free software only.” part of your stated
feature-set and if/how it addresses licensing concerns raised previously
e.g. by bill-auger here[1] with respect to the FSDG status of Chromium,
as well as maintaining solidarity with other FSDG-complying distros?

[1]: https://lists.gnu.org/r/guix-devel/2018-09/msg00264.html

Best,
amin



Re: git-annex: problematic shebangs in .git/hooks/pre-commit?

2019-02-03 Thread Timothy Sample
Hi Kyle,

Kyle Meyer  writes:

> Timothy Sample  writes:
>
>> Kyle Meyer  writes:
>
> [...]
>
>>> Perhaps I'm just missing something, but to spell out my concern a
>>> little
>>> more: I have /gnu/store/A/git-annex and /gnu/store/X/bash-minimal.  I
>>> set up a repo with 'git annex init', and
>>> /gnu/store/X/bash-minimal/bin/sh is used in the shebang.
>>>
>>> Some time later I am using /gnu/store/B/git-annex, which references
>>> /gnu/store/Y/bash-minimal.  That repo's hook still uses the
>>> X/bash-minimal/bin/sh.  But if /gnu/store/X/bash-minimal is no longer
>>> referenced by any package, it could be garbage collected, leading to
>>> the
>>> hook failing.
>>
>> Ah yes!  That could be a problem indeed.  Good catch.  Following the
>> example of autoconf, it seems it should just be left alone.
>
> Revisiting this, I tried to simply remove the patch-shell phase (diff
> below).  That worked as intended when I tested manually, but it caused
> many test failures with messages like
>
> fatal: cannot run .git/hooks/pre-commit: No such file or directory
>
> Although the error message isn't too clear, this happens because
> /bin/sh, now used in the hook shebangs, isn't available to the tests
> executed in the build environment.

Thanks for giving this a try!

> Any suggestions on how to deal with this?

I am travelling at the moment, so I can’t dig into it properly.  I
crossed my fingers and tried symlinking /bin/sh to bash, but did not
have permission to make the /bin directory.  (I guessed the build user
would be able to do this from within the build environment, but
apparently not.)  It would be ideal to set up the build environment like
this, but I’m not sure how.

> ---
> diff --git a/gnu/packages/version-control.scm 
> b/gnu/packages/version-control.scm
> index dc2abb0c71..56fe6f5e7a 100644
> --- a/gnu/packages/version-control.scm
> +++ b/gnu/packages/version-control.scm
> @@ -2236,11 +2236,6 @@ (define-public git-annex
> '("--flags=-Android -Assistant -Pairing -S3 -Webapp -WebDAV")
> #:phases
> (modify-phases %standard-phases
> - (add-before 'configure 'patch-shell
> -   (lambda _
> - (substitute* "Utility/Shell.hs"
> -   (("/bin/sh") (which "sh")))
> - #t))
>   (add-before 'configure 'factor-setup
> (lambda _
>   ;; Factor out necessary build logic from the provided


-- Tim



Re: [PATCH] gnu: Add ungoogled-chromium.

2019-02-03 Thread Joshua Branson
Marius Bakke  writes:

> Thanks to Marks beautiful "computed-origin-method", Ungoogled-Chromium
> is finally ready for inclusion in Guix.
>
> Features:
> * Chromium 72.
> * No unsolicited network traffic.
> * Free software only.
> * No DRM.
> * Not an April Fools joke.

Ahh man.  I was really hoping this was an April fools joke.  Last year
someone had packaged systemd, and this person recommended that we do
away with the Shepherd.  May I request that we do an April fools joke
once a year?

I'm sorry if this email is not professional enough.

>
> It's currently using my trivial "fork" of Ungoogled-Chromium[0], which
> will be upstreamed once the upstream reorganization[1] is done.
>
> Comments appreciated!
>
> [0]: 
> https://github.com/mbakke/ungoogled-chromium/commit/f9b9074c322a67b04baf0982797cd7b7e09614b5
> [1]: https://github.com/Eloston/ungoogled-chromium/issues/651
>
> * gnu/packages/aux-files/chromium/master-preferences.json,
> gnu/packages/chromium.scm: New files.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
> ---
>  gnu/local.mk  |   1 +
>  .../chromium/master-preferences.json  |  26 +
>  gnu/packages/chromium.scm | 741 ++
>  3 files changed, 768 insertions(+)
>  create mode 100644 gnu/packages/aux-files/chromium/master-preferences.json
>  create mode 100644 gnu/packages/chromium.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 82db1488d6..b5e937cdd7 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -100,6 +100,7 @@ GNU_SYSTEM_MODULES =  \
>%D%/packages/check.scm \
>%D%/packages/chemistry.scm \
>%D%/packages/chez.scm  \
> +  %D%/packages/chromium.scm  \
>%D%/packages/ci.scm\
>%D%/packages/cinnamon.scm  \
>%D%/packages/clojure.scm   \
> diff --git a/gnu/packages/aux-files/chromium/master-preferences.json 
> b/gnu/packages/aux-files/chromium/master-preferences.json
> new file mode 100644
> index 00..0caa7cc4cd
> --- /dev/null
> +++ b/gnu/packages/aux-files/chromium/master-preferences.json
> @@ -0,0 +1,26 @@
> +{
> +  "distribution": {
> + "import_bookmarks": false,
> + "make_chrome_default": false,
> + "make_chrome_default_for_user": false,
> + "verbose_logging": true,
> + "skip_first_run_ui": true,
> + "suppress_first_run_default_browser_prompt": true
> +  },
> +  "browser": {
> + "has_seen_welcome_page" : true,
> + "check_default_browser" : false
> +  },
> +  "dns_prefetching": {
> +"enabled": false
> +  },
> +  "alternate_error_pages": {
> +"enabled": false
> +  },
> +  "hardware": {
> +"audio_capture_enabled": false
> +  },
> +  "default_apps": "noinstall",
> +  "hide_web_store_icon": true,
> +  "homepage": "https://www.gnu.org/software/guix;
> +}
> diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
> new file mode 100644
> index 00..eb404246d3
> --- /dev/null
> +++ b/gnu/packages/chromium.scm
> @@ -0,0 +1,741 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2019 Marius Bakke 
> +;;;
> +;;; 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 .
> +
> +(define-module (gnu packages chromium)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix packages)
> +  #:use-module (guix gexp)
> +  #:use-module (guix store)
> +  #:use-module (guix monads)
> +  #:use-module (guix download)
> +  #:use-module (guix git-download)
> +  #:use-module (guix utils)
> +  #:use-module (guix build-system gnu)
> +  #:use-module (gnu packages)
> +  #:use-module (gnu packages assembly)
> +  #:use-module (gnu packages base)
> +  #:use-module (gnu packages bison)
> +  #:use-module (gnu packages build-tools)
> +  #:use-module (gnu packages compression)
> +  #:use-module (gnu packages cups)
> +  #:use-module (gnu packages curl)
> +  #:use-module (gnu packages fontutils)
> +  #:use-module (gnu packages gcc)
> +  #:use-module (gnu packages ghostscript)
> +  #:use-module (gnu packages gl)
> +  #:use-module (gnu packages glib)
> +  #:use-module (gnu packages gnome)
> +  #:use-module (gnu packages gnuzilla)
> +  #:use-module (gnu packages gperf)
> +  #:use-module (gnu packages gtk)
> +  #:use-module