Re: emacs-guix (upstream) needs more love: a survey of repositories, homepage and issues

2022-09-02 Thread Simon Streit
Hello Théo,

Théo Maxime Tyburn  writes:
> It is here https://github.com/theottm/emacs-guix-clone. There is only
> one branch.
>
>> if you succeed in building the new merged branch please notify me and
>> I'll try to upstream it to
>> https://git.savannah.gnu.org/cgit/guix/emacs-guix.git
>
> I just sucessfuly built it. You can probably use

I could successfully build your branch.  Unfortunately with geiser's
recent upgrade from 0.23.2 to 0.26 emacs-geiser broke on my side.

Geiser has since [1] removed all references to company.  The end result
is, that emacs-geiser will fail to load a REPL while it tries to
initiate geiser-company.

Here is my modification that fixes the REPL again: [2].

It'd be nice to see this pushed too and merge all the branches that now
exist with emacs-guix.


Kind Regards
Simon 


[1] 
https://gitlab.com/emacs-geiser/geiser/-/commit/18faa0ba32c9ce751c16960b2a39b3880b523272
[2] https://git.steel-is-real.com/emacs-guix-clone/log/?h=simons-hack



Re: Samba Services

2022-07-06 Thread Simon Streit
Julien Lepiller  writes:

> ./doc/guix.texi:29670: warning: node next `Network File System' in menu 
> `Continuous
> Integration' and in sectioning `Samba Services' differ
> ./doc/guix.texi:16349: node `Services' lacks menu item for `Samba Services' 
> despite being
> its Up target
> ./doc/guix.texi:29985: warning: node prev `Continuous Integration' in menu 
> `Network File
> System' and in sectioning `Samba Services' differ
>
> In particular, it sounds like you didn't add the Samba Services node to the 
> menu near line
> 16349 (that's a different menu from the one at the top of the file I 
> believe). The other
> warnings should disappear after you add it.

The devil is in the details.  Thanks a lot, this had been nagging me for
some time now. 


Simon 



Samba Services

2022-07-05 Thread Simon Streit
Hello,

While preparing my patch series [1], I've run into issues where I can't
compile my own branch now:

--8<---cut here---start->8---
  MAKEINFO doc/guix.fa.info
./doc/guix.es.texi:30547: warning: node next `Sistema de archivos en red' in 
menu `Integración continua' and in sectioning `Samba Services' differ
./doc/guix.es.texi:16840: node `Servicios' lacks menu item for `Samba Services' 
despite being its Up target
./doc/guix.es.texi:30867: warning: node prev `Integración continua' in menu 
`Sistema de archivos en red' and in sectioning `Samba Services' differ
./doc/guix.texi:29670: warning: node next `Network File System' in menu 
`Continuous Integration' and in sectioning `Samba Services' differ
./doc/guix.texi:16349: node `Services' lacks menu item for `Samba Services' 
despite being its Up target
./doc/guix.texi:29985: warning: node prev `Continuous Integration' in menu 
`Network File System' and in sectioning `Samba Services' differ
make[2]: *** [Makefile:4834: doc/guix.es.info] Error 1
make[2]: *** Waiting for unfinished jobs
make[2]: *** [Makefile:4704: doc/guix.info] Error 1
./doc/guix.fa.texi:29097: warning: node next `Network File System' in menu 
`Continuous Integration' and in sectioning `Samba Services' differ
./doc/guix.fa.texi:16005: node `Services' lacks menu item for `Samba Services' 
despite being its Up target
./doc/guix.fa.texi:29407: warning: node prev `Continuous Integration' in menu 
`Network File System' and in sectioning `Samba Services' differ
make[2]: *** [Makefile:4899: doc/guix.fa.info] Error 1
./doc/guix.de.texi:31749: warning: node next `Network File System' in menu 
`Kontinuierliche Integration' and in sectioning `Samba Services' differ
./doc/guix.de.texi:17543: node `Dienste' lacks menu item for `Samba Services' 
despite being its Up target
./doc/guix.de.texi:32070: warning: node prev `Kontinuierliche Integration' in 
menu `Network File System' and in sectioning `Samba Services' differ
make[2]: *** [Makefile:4769: doc/guix.de.info] Error 1
make[2]: Leaving directory '/home/ss2/code/guix'
make[1]: *** [Makefile:6573: all-recursive] Error 1
make[1]: Leaving directory '/home/ss2/code/guix'
make: *** [Makefile:4004: all] Error 2
--8<---cut here---end--->8---

Chances are I missed something while preparing the manual. The problem
arises with this [2] commit.  

Test units in this branch have been prepared too.  Thinking about it
wsdd hasn't got any yet.  

[1] https://git.steel-is-real.com/guix/log/?h=simons-samba-service
[2] 
https://git.steel-is-real.com/guix/commit/?h=simons-samba-service=04fd3f8e4eb840b9e2b10337a65035f33bbffce4

Thanks in advance for looking into this! 


Kind regards
Simon 



Re: disable suspend without user login

2022-01-27 Thread Simon Streit
Hello Attila,

Attila Lendvai  writes:

> does anyone know how to turn off GDM's (or elogind's?) auto suspend on
> a recent Guix?

Have you maybe seen [1]? And you've probably come across [2] too.

I kept them as bookmarks to pull out in the future.  The first seems to
explain it well enough to disable it in Debian.  I've never tested it
myself though, but think it is the most promising approach to look into.

I looked into the service definition of gdm, but gave up half way, and
am on to other services now.


Kind regards
Simon


[1] https://www.asumu.xyz/blog/index-2.html
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=896083



Re: WSDD Service Module

2022-01-25 Thread Simon Streit

Hello, thanks for your reply.

Ludovic Courtès  writes:
> My understanding is that you intend the ‘interface’ field to be either
> #f or a string, is that right?

I think it rather be a list of strings, since wsdd takes the list of
interfaces to listen to.  So it should expand to --interface eth0
--interface eth1, etc.

> When you write:
>
>   (interface)
>
> that means: “call the procedure bound to ‘interface’, passing it zero
> arguments”.  However, if ‘interface’ is a string, you cannot call it, so
> you get a wrong-type-to-apply error.
>
> Likewise, ‘for-each’ expects its second argument to be a list.  But
> here, ‘interface’ is supposedly a string, not a list, so if you do:
>
>   (for-each (lambda …) interface)
>
> you’ll get a wrong-type-argument error.

So I changed it, that interface is usually an empty list now, and with
for-each I'd like to have it expanded.  Good thing is, I've gotten at
least a step further, but only after hard coding the list as an argument
in the for-each expression.  So it should work?  It still doesn't.  And
I still don't understand how it is somehow not passed as a list
properly.

One thing I noticed, after hard coding the argument, the procedure is
not properly expanded in the constructor.  How come?  This is the output
in the service file:
--8<---cut here---start->8---
(make-forkexec-constructor
 (list "/gnu/store/6jpn21wnnyz59ii634hfbk34yy48nxrq-wsdd-0.6.4/bin/wsdd" 
"--hoplimit" "1" for-each
   (lambda
   (arg)
 (format #t "--interface ~s "
 (arg)))
   (interface)
   "--workgroup" "WORKGROUP")
 #:user "wsdd" #:group "wsdd" #:log-file "/var/log/wsdd.log")
--8<---cut here---end--->8---

My for-each procedure and list works in my REPL, but it fails in Guix.
It might have to do with me trying to get on with
make-forkexec-constructor.  So this constructor needs a list of strings?
I put interfaces into a let*, and would call it in the constructor.
Unfortunately this results into an invalid G-expression.


Thanks for you help.  It is taking its time to get comfortable with
Guile.

I've attached the current state of the service too.



wsdd.scm
Description: Binary data


Kind regards
Simon


Re: WSDD Service Module

2022-01-25 Thread Simon Streit
Ludovic Courtès  writes:

> (+Cc: guix-devel.)

Hope I get it right this time.

> Then I recommend calling it ‘interfaces’ (plural).

Will do.

>   #~(make-forkexec-constructor
>   … #$@(map (lambda …) interfaces)
>   …)
>
> which would expand to:
>
>   (make-forkexec-constructor
> … "--interface=eth0" "--interface=eth1"
> …)

Yes this makes more sense, and it works too!  I got too focused
on trying to use for-each.

Time to complete this service.


Thanks a lot!
Simon



WSDD Service Module

2022-01-21 Thread Simon Streit
Hello!

I've been preparing WSDD [1] for Guix.  This is a Web Service Discovery
Daemon that replaces host discovery through SMBv1.  SMBv1 has been
disabled in Samba and Windows for some time now for security reasons.
Hence WSDD is a drop in replacement for host discovery.

I've packaged wsdd already, and while preparing this post I noticed that the
version is already outdated too.  That's next on the list now.

Unfortunately while preparing its service, there is this one part that
I'm having trouble trying to get working:
--8<---cut here---start->8---
#$(if interface
  #~(for-each (lambda (arg)
(display (string-append "--interface" arg))
;; (format #t "--interface ~a " (list->string arg))
)
  #$(interface))
  '())
--8<---cut here---end--->8---

Which is the main intention for this post: I'd really appreciate a little
hint on how to solve this small problem.  Everything else looks okay.

The documentation for this service module has not been completed yet.
I'm still working on it.  Once it is done I'll submit a patch.  This is
part of my ongoing work on working with samba.

The service declaration can be found at [2] and [3] is the package
itself.


Thanks in advance!
Simon


[1] https://github.com/christgau/wsdd
[2] 
https://git.steel-is-real.com/siguix/tree/siguix/services/wsdd.scm?h=wip-wsdd=f125d84ef57a555b389d7bafa54b7352bf8faa74
[3] 
https://git.steel-is-real.com/siguix/tree/siguix/packages/wsdd.scm?h=wip-wsdd



WSDD Service Module

2022-01-21 Thread Simon Streit
Hello!

I've been preparing WSDD [1] for Guix.  This is a Web Service Discovery
Daemon that replaces host discovery through SMBv1.  SMBv1 has been
disabled in Samba and Windows for some time now for security reasons.
Hence WSDD is a drop in replacement for host discovery.

I've packaged wsdd already, and while preparing this post I noticed that the
version is already outdated too.  That's next on the list now.

Unfortunately while preparing its service, there is this one part that
I'm having trouble trying to get working:
--8<---cut here---start->8---
#$(if interface
  #~(for-each (lambda (arg)
(display (string-append "--interface" arg))
;; (format #t "--interface ~a " (list->string arg))
)
  #$(interface))
  '())
--8<---cut here---end--->8---

Which is the main intention for this post: I'd really appreciate a little
hint on how to solve this small problem.  Everything else looks okay.

The documentation for this service module has not been completed yet.
I'm still working on it.  Once it is done I'll submit a patch.  This is
part of my ongoing work with samba.

The service declaration can be found at [2] and [3] is the package
itself.


Thanks in advance!
Simon


[1] https://github.com/christgau/wsdd
[2] 
https://git.steel-is-real.com/siguix/tree/siguix/services/wsdd.scm?h=wip-wsdd=f125d84ef57a555b389d7bafa54b7352bf8faa74
[3] 
https://git.steel-is-real.com/siguix/tree/siguix/packages/wsdd.scm?h=wip-wsdd



Announcing Samba Service for Guix

2021-11-05 Thread Simon Streit
Hello!

I am happy to announce the development of a Samba service for Guix.

Currently I am attending a technical college for informatics where I am
working on my final thesis that is due to be completed by February
next year.

Hence I have already proposed to develop and document the process
extending Guix.  So far I have managed to write a service that can
control nmbd, smbd and winbindd with default configuration options
provided by [1].  I have attached said service.  It is not intended for
production use yet, and needs to be extended to make more use of Samba's
capabilities.

The daemon samba itself has not been touched yet since it expects to
be a DC. It would need extra services too, especially kerberos, and
extensive scripting to run.  Printing has not been looked at either.
Documentation for info is missing.  I am not sure if the configuration
system I butchered from other service definitions is worthwhile or
could be done in an entirely different way.  Samba's configuration
system is extensive and flexible.  There are some extra package
definitions I want to write too.

I have not decided yet how far to go or how much of Samba should be
implemented as a service.  To implement the complete Samba suite would
exceed the scope of my assignment and will need proper testing until
it can be provided in Guix.  Hence I would like to implement sections
of it in such a way that can easily be extended at a later point,
should there be a need for it.

It is a little over a year already since I have installed my first
Guix system.  So far I have only been randomly handing in patches
every now and then with various success for new package definitions
while trying to learn more Scheme.  Preparing this service has
been a lot more educational than writing packages so far.

Kind regards,
Simon

[1] 
https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD



samba.scm
Description: Binary data