Re: “guix --help” should point to https://guix.gnu.org/help/

2020-05-15 Thread Diego Nicola Barbato
Hey,

zimoun  writes:

> Hi Ricardo,
>
> On Fri, 15 May 2020 at 12:20, Ricardo Wurmus  wrote:
>
>> annoyed by the fact that people turn to Reddit for help with Guix — a
>> venue only very few of us frequent — I wondered if our help channels are
>> visible enough.
>
> Maybe it is "cultural" or/and "generational" thing and we cannot do
> really better. Maybe some people prefer channels as Reddit because
> they are a bit "afraid" by email and/or IRC, especially maybe on
> official channels.  Maybe because when someone has a problem, the
> first thing they does is a query to popular search engines and then
> browse some Reddit-kind of channels, so maybe they feels like it is a
> good entry point.  Maybe some people appreciate the voting system
> (upvote, Discourse, etc.) to be "rewarded". Etc..
>
> Well, I am not convinced it is an issue about visibility. :-(

If the main issue is people turning to the subreddit for help, we could
also kindly ask the moderators to advertise the official help channels
in a sticky post.  After all some people might turn to Reddit before
even thinking of running `guix --help'.

[...]

Regards,

Diego



Re: [bug#42738] [Work in progress] gnu: emacs: update to 27.1

2020-08-19 Thread Diego Nicola Barbato
Hey Guix,

Jack Hill  writes:

[...]

> On Tue, 18 Aug 2020, Michael Rohleder wrote:
>>Jack Hill  writes:

[...]

>>> Is the emacs-wide-int variant needed with the new multiprecision
>>> functionality?
>>
>> I don't think so.
>
> Ok, I've deprecated that package.

I added the emacs-wide-int variant because emacs-telega requires 62-bit
[sic] integers (https://debbugs.gnu.org/39412).  While Telega should
work with regular (non-wide-int) Emacs 27.1 (thanks to the new
multiprecision functionality), the test which checks if Emacs is suitable
for running Telega will fail, because it does not know about "bignums"
and looks at the value of most-positive-fixnum instead:

--8<---cut here---start->8---
  ;; 62bits for numbers is required
  ;; i.e. ./configure --with-wide-int
  (cl-assert (= most-positive-fixnum 2305843009213693951) nil
 "Emacs with wide ints (--with-wide-int) is required")
--8<---cut here---end--->8---

I suggest we keep the emacs-wide-int variant until this issue has been
resolved, so that the Emacs update does not break emacs-telega on 32-bit
systems.

[...]

Greetings,

Diego



Packaging Inferno

2018-10-05 Thread Diego Nicola Barbato
Hello Guix,

I have written a package definition for Inferno and I would like to know
if it would make sense to add it to Guix.  I am asking because I am not
sure if it is compatible with the FSDG (bundled fonts, trademarks, ...)
and if it would be of any use to anyone.

It builds reproducibly on my Laptop (x86_64-linux).  I have not tried to
build it on any of the other (supposedly) supported architectures.

For now the recipe has to be passed to `guix build' or `guix package'
using the `-f' option but I would be glad to add it to a module
(e.g. (gnu packages virtualization), or a module of its own) and send a
patch if it is decided that it belongs in Guix.

Greetings,

Diego



inferno-trivial.scm
Description: inferno-trivial.scm


Re: Packaging Inferno

2018-10-09 Thread Diego Nicola Barbato
Hello,

Thank you for your feedback.

Nils Gillmann  writes:

> Ludovic Courtès transcribed 1.9K bytes:
>> Hello Diego,
>> 
>> Diego Nicola Barbato  skribis:
>> 
>> > I have written a package definition for Inferno and I would like to know
>> > if it would make sense to add it to Guix.  I am asking because I am not
>> > sure if it is compatible with the FSDG (bundled fonts, trademarks, ...)
>> > and if it would be of any use to anyone.
>> 
>> Removing the proprietary(?) fonts like you did sounds like the right

@Ludo:  The fonts I removed are copyright Bigelow & Holmes.  They are
licensed in a way that forbids them from being modified and distributed
except as part of Inferno (or software derived from Inferno) [1].

>> thing to do.  As for trademarks, please see
>> <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks>
>> to determine whether there’s a problem at all.

@Ludo:  Judging from the link there seems to be no problem with the
trademarks after all.  The bundled fonts (the ones I did not remove),
however, are provided in a format native to Inferno (and Plan 9) and can
not be rebuilt from source, which might be a problem according to this
[2] thread.

>> Could you also check whether all the code is GPLv2+ like the ‘license’
>> field suggests?

@Ludo:  According to the NOTICE files scattered through the source tree
and the Inferno home page [3] different parts of Inferno are licensed
under GPLv2+, LGPLv2+, Expat (MIT-template), Lucent Public License 1.02
and Freetype.
Am I right to assume that I have to mention all of them in the ‘license’
field even though the NOTICE in the root of the source tree [4] says
that the "collection" is governed by the GPLv2+?  
I could not find the Lucent Public License [5] in the (guix licenses)
module.  Should I add it or should I use ‘non-copyleft’?

>> Do I get it right that the build result is a script that launches
>> Inferno as a GNU/Linux process?  It seems like it could be useful.

@Ludo: That is right.  I got the script from here [6].  It starts the
window manager and logs in as the current user; it is supposed to
provide a convenient entry point to start exploring the system.
Alongside this script in %out/bin/ there is also a symlink to the emu
binary which is installed by ‘mk install’ under
%out/usr/inferno/Linux/386/bin/ (Linux/arm/bin on arm machines).  This
directory contains several other executables.  I am considering making
some of them (like the Limbo compiler) available under %out/bin in the
same way as emu. 

>> Some comments about the package definition:
>> 
>> > (build-system trivial-build-system)
>> > (native-inputs `(("bash" ,bash)
>> >  ("coreutils" ,coreutils)
>> >  ("grep" ,grep)
>> >  ("sed" ,sed)
>> >  ("awk" ,gawk)
>> >  ("xz" ,xz)
>> >  ("tar" ,tar)
>> >  ("gcc-toolchain" ,gcc-toolchain) 
>> > ))
>> > (inputs `(("libx11" ,libx11)
>> >   ("xorgproto" ,xorgproto)
>> >   ("libxext" ,libxext)))
>> 
>> Like Efraim wrote, I think using ‘gnu-build-system’ would allow you to
>> simplify the package definition.

@Ludo:  My first attempt at writing the package definition used
‘gnu-build-system’. I switched to ‘trivial-build-system’ when I realised
that most phases in %standard-phases were ill suited for building
inferno.  I will try to rewrite the definition using ‘gnu-build-system’.

>> >  ;; build mk
>> >  (invoke "./makemk.sh")
>> 
>> It would be ideal if we had a separate package for ‘mk’ (I suppose it
>> can run on POSIX systems, right?).

@Ludo:  This is Plan 9's mk (their version of make), which, I believe,
can run on POSIX systems.  Though, if we were to add mk to Guix, i would
rather package the one provided by Plan 9 from Userspace [7] since that
project seems to be more active than Inferno.

> I can finish my mk package and send it in.
> My mk is the canonical set of mk files as used by bmake.
> Sources are from http://crufty.net/help/sjg/mk-files.htm
> and/or places linked from there.
>
> If this matches the mk mentioned here, I can create this patch.

@Nils:  Your mk package seems to be unrelated to Plan 9's mk.

>> Once you’ve double-checked the licensing and trademark situation, I
>> think you can go ahead and submit it as a patch (or two patches, with
>> ‘mk’ separately).
>> 
>> Thanks!
>> 
>> Ludo’.
>> 

Greetings,

Diego


[1]: 

LICENCE
Description: Binary data

[2]: https://lists.gnu.org/archive/html/bug-guix/2018-10/msg00010.html
[3]: http://inferno-os.org/inferno/licence.html
[4]: 

NOTICE
Description: Binary data

[5]: https://www.gnu.org/licenses/license-list.html#lucent102
[6]: https://www.ueber.net/who/mjl/inferno/getting-started.html
[7]: https://9fans.github.io/plan9port/


Re: Packaging Inferno

2018-10-11 Thread Diego Nicola Barbato
Hello Efraim,

Efraim Flashner  writes:

> Not a big fan of using the trivial build system for something that ends
> up with this many lines, but I built it on my aarch64 board and here's
> the diff I came up with to make it work.

Thanks for your feedback and especially for testing it on aarch64.  I am
currently rewriting the definition using the ‘gnu-build-system’.

Since I am going to include your modifications, should I add a copyright
line for you?  (I am asking since I am relatively new to this and I am
not sure how such things are handled correctly.)

Greetings,

Diego



Re: Packaging Inferno

2018-10-17 Thread Diego Nicola Barbato
Hello Nils,

Nils Gillmann  writes:

> Diego Nicola Barbato transcribed 12K bytes:
>> Hello,
>> 
>> Thank you for your feedback.
>> 
>> Nils Gillmann  writes:
>> 
>> > Ludovic Courtès transcribed 1.9K bytes:
>> >> Hello Diego,
>> >> 
>> >> Diego Nicola Barbato  skribis:

[...snip...]

>> >> >  ;; build mk
>> >> >  (invoke "./makemk.sh")
>> >> 
>> >> It would be ideal if we had a separate package for ‘mk’ (I suppose it
>> >> can run on POSIX systems, right?).
>> 
>> @Ludo:  This is Plan 9's mk (their version of make), which, I believe,
>> can run on POSIX systems.  Though, if we were to add mk to Guix, i would
>> rather package the one provided by Plan 9 from Userspace [7] since that
>> project seems to be more active than Inferno.
>> 
>> > I can finish my mk package and send it in.
>> > My mk is the canonical set of mk files as used by bmake.
>> > Sources are from http://crufty.net/help/sjg/mk-files.htm
>> > and/or places linked from there.
>> >
>> > If this matches the mk mentioned here, I can create this patch.
>> 
>> @Nils:  Your mk package seems to be unrelated to Plan 9's mk.
>
> Aha! I have it in 9base, which I have also packaged. At least according
> to the README in the 9base/mk/ folder it should be compatible.
>
> Now I don't know if we want all of 9base... I would leave analyis of
> that to you. If 9base on its own does not work, I can extract mk or
> create a package which just builds mk and gets rid of the other files.
>
> https://git.suckless.org/9base
>
> I haven't checked but would assume that differences exist between
> 9base (altough it states plan9 + inferno os) and inferno os mk.

AFAICT it should be possible to build inferno using 9base's mk.  In fact
I think 9base is better suited for this purpose than Plan 9 from
Userspace (plan9port), which was where I suggested we should get mk
from, since it is much smaller.

I can not tell from the source if it will be necessary to extract mk, so
I will try to build inferno using 9base's mk as soon as you send in your
patch and get back to you should I encounter any problems caused by one
of the other commands provided by 9base.

Thanks!

Diego



Re: Packaging Inferno

2018-10-21 Thread Diego Nicola Barbato
Hello Ludo,

I have sent a patch incorporating most of your feedback to
guix-patc...@gnu.org (bug#33080).

l...@gnu.org (Ludovic Courtès) writes:

> Hi Diego,
>
> Sorry for the delay!

No problem (my replies are not quite instantaneous either).

> Diego Nicola Barbato  skribis:
>
>> Nils Gillmann  writes:
>>
>>> Ludovic Courtès transcribed 1.9K bytes:
>>>> Hello Diego,
>>>> 
>>>> Diego Nicola Barbato  skribis:

[...snip...]

>>>> thing to do.  As for trademarks, please see
>>>> <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks>
>>>> to determine whether there’s a problem at all.
>>
>> @Ludo:  Judging from the link there seems to be no problem with the
>> trademarks after all.  The bundled fonts (the ones I did not remove),
>> however, are provided in a format native to Inferno (and Plan 9) and can
>> not be rebuilt from source, which might be a problem according to this
>> [2] thread.
>
> Sometimes TTF files are considered source, so it really depends.  Unless
> there’s evidence that there exists another source for these fonts, I’d
> say we can assume it’s fine, possibly with a comment.

I have found no evidence that there exists another source.

> Do you know whether other FSDG distros and Debian provide these fonts?

They do not provide these exact fonts but those from which some of these
are derived (misc and jis are "based" on X fonts, vera is probably based
on Bitstream Vera).
It is harder to find the origin of the other fonts as there is little
information about them (big5 was "provided by students at the University
of Hong Kong" according to its README; courier, gb, and minitel do not
contain any information).  The remaining fonts just reuse "subfonts"
from the other directories.

>>>> Could you also check whether all the code is GPLv2+ like the ‘license’
>>>> field suggests?
>>
>> @Ludo:  According to the NOTICE files scattered through the source tree
>> and the Inferno home page [3] different parts of Inferno are licensed
>> under GPLv2+, LGPLv2+, Expat (MIT-template), Lucent Public License 1.02
>> and Freetype.
>> Am I right to assume that I have to mention all of them in the ‘license’
>> field even though the NOTICE in the root of the source tree [4] says
>> that the "collection" is governed by the GPLv2+?  
>
> Yes, but you can leave a comment explaining that the combined work is
> effectively GPLv2+.
>
>> I could not find the Lucent Public License [5] in the (guix licenses)
>> module.  Should I add it or should I use ‘non-copyleft’?
>
> You can use ‘non-copyleft’ in that case, with a reference to
> <https://www.gnu.org/licenses/license-list.html#lucent102>.
>
> Note that the page above says that the Lucent PL is incompatible with
> the GPL.  Are we combining GPL code with Lucent code here?

AFAICT LPL code (libmp libsec) is combined with GPL code when building
emu.  There is some more LPL code in the os directory, which is only
needed for building native inferno, and in the appl and module
directories, which contain Limbo code which is run on inferno but not
used to build it.
The NOTICE says that all licenses are compatible with the GPLv2 but that
is apparently incorrect.
As I am not very familiar with software licenses I do not know what to
do about this.  According to the GPL FAQ [*] it is possible to add an
exception when using incompatible libraries, but I am hesitant to
suggest this in a bug report to upstream because I do not know if that
applies here.

Is this a blocker?

>>>> Do I get it right that the build result is a script that launches
>>>> Inferno as a GNU/Linux process?  It seems like it could be useful.
>>
>> @Ludo: That is right.  I got the script from here [6].  It starts the
>> window manager and logs in as the current user; it is supposed to
>> provide a convenient entry point to start exploring the system.
>> Alongside this script in %out/bin/ there is also a symlink to the emu
>> binary which is installed by ‘mk install’ under
>> %out/usr/inferno/Linux/386/bin/ (Linux/arm/bin on arm machines).  This
>> directory contains several other executables.  I am considering making
>> some of them (like the Limbo compiler) available under %out/bin in the
>> same way as emu. 
>
> Sounds good.  Note that, if possible, we should stick to the usual file
> system layout (that is OUT/share, OUT/lib, OUT/bin, etc. and not
> OUT/usr.)  Though if keeping the /usr/inferno layout style is really
> important, we can make an exception.

The layout style is not important; I only used OUT/usr/inferno because
/usr/inferno is the default in mkconfig.  I have changed this to
OUT/share/inferno, which matches what the Nix package [†] does.

[...snip...]

> Thanks for your reply!
>
> Ludo’.

Thanks for the feedback!

Diego

[*]: https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
[†]: 
https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/inferno/default.nix



ESC/P-R package

2017-10-28 Thread Diego Nicola Barbato
Hello,

I would like to create a package for the ESC/P-R printer driver.  The
recipe works on my machine (GuixSD on x86_64).  Yet I am not sure about
the source URL as it appears to break as soon as a new version is made
available because the old link is not preserved.  Should we get the
source from
http://http.debian.net/debian/pool/main/e/epson-inkjet-printer-escpr/
instead, even though it is an older version?

Greetings

Diego


diff -u ~/Programs/Guix/cups.scm.old ~/Programs/Guix/cups.scm
--- ~/Programs/Guix/cups.scm.old2017-10-28 23:26:11.356064722 +0200
+++ ~/Programs/Guix/cups.scm2017-10-29 00:03:38.820338060 +0200
@@ -599,3 +599,30 @@
 protocols, which cover printers made by Konica, HP (LaserJet), Oki, Samsung,
 and more.  See @file{README} for details.")
 (license license:gpl2+)))
+
+(define-public escpr
+  (package
+   (name "escpr")
+   (version "1.6.17")
+   ;; This currently works.  But it will break as soon as a newer
+   ;; version is available since the URLs for older versions are not
+   ;; preserved.  An alternative would be to download the source (for
+   ;; an older version) from this Debian repository:
+   ;; http://http.debian.net/debian/pool/main/e/epson-inkjet-printer-escpr/
+   (source (origin
+   (method url-fetch)
+   (uri 
"https://download3.ebz.epson.net/dsc/f/03/00/06/66/09/4ac2bf69bb1ddf4a9ad525596615cbb40fe4dad5/epson-inkjet-printer-escpr-1.6.17-1lsb3.2.tar.gz";)
+   (sha256
+(base32
+  "0m6v1wdavw4r25jfywqchsx0v9ss1l5fr8vq9d0d8cmjnz8mqblv"
+   (build-system gnu-build-system)
+   (arguments
+`(#:configure-flags
+  `(,(string-append "--prefix=" (assoc-ref %outputs "out"))
+,(string-append "--with-cupsfilterdir=" (assoc-ref %outputs "out") 
"/lib/cups/filter")
+,(string-append "--with-cupsppddir=" (assoc-ref %outputs "out") 
"/share/ppd"
+   (inputs `(("cups" ,cups-minimal)))
+   (synopsis "ESC/P-R printer driver")
+   (description "ESC/P-R driver supporting a multitude of Epson printers.")
+   (home-page "http://download.ebz.epson.net/dsc/search/01/search";)
+   (license license:gpl2+)))

Diff finished.  Sun Oct 29 00:04:01 2017



Re: ESC/P-R package

2017-10-30 Thread Diego Nicola Barbato
Hello Ludo,

l...@gnu.org (Ludovic Courtès) writes:

> Hello Diego,
>
> Diego Nicola Barbato  skribis:
>
>> I would like to create a package for the ESC/P-R printer driver.  The
>> recipe works on my machine (GuixSD on x86_64).  Yet I am not sure about
>> the source URL as it appears to break as soon as a new version is made
>> available because the old link is not preserved.  Should we get the
>> source from
>> http://http.debian.net/debian/pool/main/e/epson-inkjet-printer-escpr/
>> instead, even though it is an older version?
>
> It would be ideal if you would find a mirror of the latest upstream
> source at debian.org or anywhere else.  Then you can change your recipe
> to include several URLs:
>
>   (origin
> ;; …
> (uri (list "…epson.net…" "…debian.org…")))
>
> Does that make sense?

I agree that this would be ideal.  But as of now the latest version I
have found on a mirror is 1.6.16 (on the aforementioned Debian
repository) while the latest version is 1.6.17.  I could use the
epson.net source and add the one on debian.org as soon as it is updated
to the latest version.

> When you’re ready I encourage you to follow
> <https://www.gnu.org/software/guix/manual/html_node/Submitting-Patches.html>
> and send us the ‘git format-patch’-produced patch so we can incorporate it.

Thank you for your feedback.  I apologise for not adhering to the
guidelines; this is my first contribution to a free software project.
If it is enough to add just the epson.net source for the time being I
will submit my patch as soon as possible and according to the manual.

Greetings

Diego



Re: ESC/P-R package

2017-11-08 Thread Diego Nicola Barbato
Hello Guix,

I have sent the following patch to the guix-patches mailing list
(29...@debbugs.gnu.org):

>From 5d6449cc3cfc4154fff24abcdd54c05b44b9e471 Mon Sep 17 00:00:00 2001
From: Diego Nicola Barbato 
Date: Wed, 1 Nov 2017 02:48:14 +0100
Subject: gnu: Add Epson escpr printer driver.

* gnu/packages/cups.scm (escpr): New variable.
---
 gnu/packages/cups.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 491668e52..54a93fe49 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -599,3 +599,35 @@ printer/driver specific, but spooler-independent PPD file.")
 protocols, which cover printers made by Konica, HP (LaserJet), Oki, Samsung,
 and more.  See @file{README} for details.")
 (license license:gpl2+)))
+
+(define-public escpr
+  (package
+(name "escpr")
+(version "1.6.17")
+;; This currently works.  But it will break as soon as a newer
+;; version is available since the URLs for older versions are not
+;; preserved.  An alternative source will be added as soon as
+;; available.
+(source (origin
+  (method url-fetch)
+  ;; The uri has to be chopped up in order to satisfy guix lint.
+  (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/06/66/09/";
+  "4ac2bf69bb1ddf4a9ad525596615cbb40fe4dad5/"
+  "epson-inkjet-printer-escpr-1.6.17-1lsb3.2.tar.gz"))
+  (sha256
+   (base32
+"0m6v1wdavw4r25jfywqchsx0v9ss1l5fr8vq9d0d8cmjnz8mqblv"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   `(,(string-append "--prefix="
+ (assoc-ref %outputs "out"))
+ ,(string-append "--with-cupsfilterdir="
+ (assoc-ref %outputs "out") "/lib/cups/filter")
+ ,(string-append "--with-cupsppddir="
+ (assoc-ref %outputs "out") "/share/ppd"
+(inputs `(("cups" ,cups-minimal)))
+(synopsis "ESC/P-R printer driver")
+(description "ESC/P-R driver and PPDs supporting a multitude of Epson printers.")
+(home-page "http://download.ebz.epson.net/dsc/search/01/search";)
+(license license:gpl2+)))
-- 
2.14.3


It appears to build reproducibly (at least on my system).  And I have
checked it with `guix lint'.  It passes all tests except `guix lint -c
source' which does not report an error but strangely crashes with the
following output:

~$ guix lint -c source escpr
Backtrace:scpr@1.6.17 [source]...
  13 (primitive-load "/gnu/store/19wpps1nmlg4j1530knl7kdhvgc…")
In guix/ui.scm:
  1384:12 12 (run-guix-command _ . _)
In srfi/srfi-1.scm:
640:9 11 (for-each # …)
In guix/scripts/lint.scm:
   1062:4 10 (run-checkers # …)
In srfi/srfi-1.scm:
640:9  9 (for-each # …)
In guix/scripts/lint.scm:
673:4  8 (check-source #)
In guix/monads.scm:
553:0  7 (_ _)
In guix/scripts/lint.scm:
   109:38  6 (_ ())
543:7  5 (validate-uri _ # …)
96:17  4 (emit-warning # …)
In ice-9/boot-9.scm:
837:9  3 (catch system # …)
In guix/packages.scm:
   355:11  2 (_)
In ice-9/ports.scm:
   439:11  1 (call-with-input-file #f # …)
In unknown file:
   0 (open-file #f "r" #:encoding #f #:guess-encoding #f)

ERROR: In procedure open-file:
ERROR: Wrong type (expecting string): #f

I have not yet found an alternative source.  But the current one works
(except for the `guix lint' error).  I will try to send a patch as soon
as the URI changes or the source is made available on this Debian
repository:
http://http.debian.net/debian/pool/main/e/epson-inkjet-printer-escpr/

Greetings

Diego


Re: [bug#29096] [PATCH] gnu: Add Epson escpr printer driver.

2018-01-26 Thread Diego Nicola Barbato
I sent a copy of this to guix-devel@gnu.org because the bug has already
been closed.

Danny Milosavljevic  writes:

> On Wed, 01 Nov 2017 03:20:04 +0100
> Diego Nicola Barbato  wrote:
>
>> This patch adds the Epson ESC/P-R printer driver.
>
> Nice! Could you also add the escpr to the documentation in doc/guix.texi
> (in a new patch) ?
>
> Maybe extend the documentation from
>
> --
> Suppose you want to enable the Web interface of CUPS and also add
> support for HP printers @i{via} the @code{hplip} package.  You can do
> that directly, like this (you need to use the @code{(gnu packages cups)}
> module):
>
> @example
> (service cups-service-type
>  (cups-configuration
>(web-interface? #t)
>(extensions
>  (list cups-filters hplip
> @end example
> --
>
> to
>
> --
> Suppose you want to enable the Web interface of CUPS, add support for Epson 
> printers $i{via}
> the @code{escpr} and also add support for HP printers @i{via} the 
> @code{hplip} package.  You can do
> that directly, like this (you need to use the @code{(gnu packages cups)}
> module):
>
> @example
> (service cups-service-type
>  (cups-configuration
>(web-interface? #t)
>(extensions
>  (list cups-filters escpr hplip
> @end example
> --
>
> (if that's how it's used).

Yes this is how it is used.  I additionally installed it into my user
profile so as to have easier access to the ppd files.

> I think otherwise it's not really discoverable for the regular user how to
> use this (installing the package into the user profile would do nothing,
> right?).

I agree that it is hard to discover.  Is it OK if I simply apply your
proposed extension to the documentation?

> I wonder whether we should extend the default cups-configuration
> to list both escpr and hplib.  But that's for later...

Thanks.

Diego



pull: Update the %sbindir variable in (guix config) when building.

2018-02-13 Thread Diego Nicola Barbato
Hello Guix,

The attached patch is supposed to fix <https://bugs.gnu.org/30370>.  I
am posting this here and not on guix-patches as I am not familiar with
the internals of guix and do not know what the intended behaviour of
this was.

I have checked that it actually fixes the problem.  However I do not
know if it breaks anything.

Greetings

Diego

>From 56d427eefe5c4667ed97b41f6411972b2c6ecc20 Mon Sep 17 00:00:00 2001
From: Diego Nicola Barbato 
Date: Tue, 13 Feb 2018 01:36:40 +0100
Subject: [PATCH] pull: Update the %sbindir variable in (guix config) when
 building.

Fixes <https://bugs.gnu.org/30370>.

* build-aux/build-self.scm (guix): New variable.
(builder): Use it.
---
 build-aux/build-self.scm | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index 17d947bec..4c85c09df 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -44,6 +44,9 @@
 ;; could be renamed or shuffled around in modules over time.  Conversely,
 ;; 'find-best-packages-by-name' is expected to always have the same semantics.
 
+(define guix
+  (first (find-best-packages-by-name "guix" #f)))
+
 (define libgcrypt
   (first (find-best-packages-by-name "libgcrypt" #f)))
 
@@ -165,8 +168,6 @@ files."
 (if (defined? '%localstatedir) %localstatedir (dirname %state-directory)))
   (define sysconfdir
 (if (defined? '%sysconfdir) %sysconfdir (dirname %config-directory)))
-  (define sbindir
-(if (defined? '%sbindir) %sbindir (dirname %guix-register-program)))
 
   (define builder
 #~(begin
@@ -222,7 +223,7 @@ files."
 #:storedir #$storedir
 #:localstatedir #$localstatedir
 #:sysconfdir #$sysconfdir
-#:sbindir #$sbindir
+#:sbindir (string-append #$guix "/sbin")
 
 #:package-name #$%guix-package-name
 #:package-version #$version
-- 
2.16.1



Starting SLiM on multiple ttys

2019-04-27 Thread Diego Nicola Barbato
Hello Guix,

I would like to propose an enhancement to our SLiM service which would
allow it to be started on multiple ttys (much like our mingetty
service).  I believe this would be useful for users who do not want to
use GDM but still want to be able to run multiple graphical sessions at
the same time.

For this to work we would have to patch our SLiM package along the lines
of this [0] since the Xorg display is currently hard coded (although we
probably do not need the command line option).

I have attached a crude proof of concept which can be tested by running
something along the lines of:
--8<---cut here---start->8---
qemu-system-x86_64 -snapshot -enable-kvm -m 4G $(guix system vm-image 
config.scm)
--8<---cut here---end--->8---


Regards,

Diego

[0]: http://www.beroal.in.ua/prg/linux/slim-conf-arg.patch



proof_of_concept.tar.gz
Description: Binary data


Re: SLiM graphical login manager and keyboard layout

2019-10-18 Thread Diego Nicola Barbato
Hello Tanguy,

Tanguy Le Carrour  writes:

[...]

> I'm struggling to set the keyboard layout as, apparently,
> slim-service-type is not supposed to be extended as gdm-service-type is.

You can set the keyboard layout directly in the slim-configuration like
this:

--8<---cut here---start->8---
(service slim-service-type
 (slim-configuration
  (xorg-configuration
   (keyboard-layout keyboard-layout
--8<---cut here---end--->8---

> I guess it's only a matter of copying (and adapting) the `(extend …)` and
> `(compose …)` blocks from `gdm-service-type` to `slim-service-type`. But it's
> just a guess. I've tried to define `my-slim-service-type` in my system config,
> but failed!

It's a good guess: I tried this a while back and it works, if there is
only one instance of slim-service-type:

>From be8f7e45384bb0676ea88f4cb488dd23114436f5 Mon Sep 17 00:00:00 2001
From: Diego Nicola Barbato 
Date: Fri, 27 Sep 2019 11:24:38 +0200
Subject: [PATCH] services: slim: Allow using 'set-xorg-configuration' with
 SLiM.

Fixes <https://bugs.gnu.org/37422>.

* gnu/services/xorg.scm (slim-service-type)[compose, extend]: New fields.
---
 gnu/services/xorg.scm | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 1d55e388a1..1b78550825 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -589,6 +589,21 @@ reboot_cmd " shepherd "/sbin/reboot\n"
;; avoid bad surprises.
(service-extension profile-service-type
   (const (list xterm)
+
+;; For convenience, this service can be extended with an
+;;  record.  Take the first one that
+;; comes.
+(compose (lambda (extensions)
+   (match extensions
+ (() #f)
+ ((config . _) config
+(extend (lambda (config xorg-configuration)
+  (if xorg-configuration
+  (slim-configuration
+   (inherit config)
+   (xorg-configuration xorg-configuration))
+  config)))
+
 (default-value (slim-configuration
 
 (define-deprecated (slim-service #:key (slim slim)
-- 
2.23.0


If there are multiple SLiM services, it doesn't work, because "[t]here
can be only one instance of an extensible service type" (according to
'Service Types and Services' in the manual).

Because of that I believe making slim-service-type extensible would be
more confusing than useful, which is why I didn't pursue this further.
Maybe it should be mentioned in the manual that 'set-xorg-configuration'
doesn't work with SLiM?

Regards,

Diego


Re: SLiM graphical login manager and keyboard layout

2019-10-18 Thread Diego Nicola Barbato
Tanguy Le Carrour  writes:

> Hi Diego!
>
>
> Le 10/18, Diego Nicola Barbato a écrit :
>> You can set the keyboard layout directly in the slim-configuration like
>> this:
>> --8<---cut here---start->8---
>> (service slim-service-type
>>  (slim-configuration
>>   (xorg-configuration
>>(keyboard-layout keyboard-layout
>> --8<---cut here---end--->8---
>
> I have a slightly different version that works!

That's because mine doesn't make sense (sorry!).  I've messed it up when
adapting it from my own config.scm.

>(service slim-service-type
>  (slim-configuration
>   (xorg-configuration
>(xorg-configuration
> (keyboard-layout keyboard-layout))
>
>
> I don't understand the "double" `xorg-configuration`, though! ^_^'

The outer 'xorg-configuration' is a field of the 'slim-configuration'
data type.  The inner 'xorg-configuration' is itself a data type
representing the Xorg configuration (with its 'keyboard-layout' field
set to the value of 'keyboard-layout').

If you look at the section 'X Window' in the Guix manual, you'll see
that the default value for the 'xorg-configuration' field (of the
'slim-configuration' data type) is '(xorg-configuration)', which is
simply the 'xorg-configuration' data type with all its fields set to
their respective default values.

HTH,

Diego



Recent $EMACSLOADPATH changes broke my setup: Bug or Feature?

2019-11-27 Thread Diego Nicola Barbato
Hey Guix,

I've already asked about this on IRC, but since the people responsible
for the changes didn't seem to be present I'll ask here too.

I use EXWM so I've installed ‘emacs’ and ‘emacs-exwm’ in my system
profile.  Additionally I've installed Emacs packages (‘emacs-org’,
‘emacs-pdf-tools’, ‘emacs-emms’, etc.) in my user profile.  Since the
changes to the way Emacs packages are handled this no longer works,
i.e. Emacs no longer knows about the packages installed in my user
profile.

I can work around it by installing ‘emacs’ to my user profile.  But it
doesn't make much sense to me that I have to install ‘emacs’ “twice”
just so an environment variable is set.

Is this an intended consequence of the recent changes or should this be
considered a bug?

Regards,

Diego



System logs are world-readable

2020-02-02 Thread Diego Nicola Barbato
Hey Guix,

In Guix System the system log files (/var/log/messages, /var/log/debug,
etc.) are world readable by default.  Since `dmesg' was restricted to
privileged users a while ago [0] it seems reasonable to make these files
readable by privileged users only as well.

What do others think?

Regards,

Diego

[0]: 
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=24446ce299943efe3dfded6c9dd0cf9421d8da04