unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* IceWM for Guix System
@ 2022-05-13  6:49 白い熊@相撲道
  2022-05-13  8:22 ` zimoun
  0 siblings, 1 reply; 6+ messages in thread
From: 白い熊@相撲道 @ 2022-05-13  6:49 UTC (permalink / raw)
  To: help-guix

Hello:

I wanted to set icewm as the WM in my system config - and was surprised 
that it's not in guix. Indeed no historical discussion on the topic 
indicates low interest in this WM in the Guix community. I prefer it to 
XFCE4 though for its simlicity and does most of what I need.

Now, I'd like to add its package definition to my local guix git 
checkout, however my low guix skill doesn't help me currently in 
understanding also the ....-desktop-service-type and everything that's 
needed to be done, and how to then use it in the system configuration.

Can anyone help me - having done that, or similar for another WM that I 
could take inspiration on how this can be achieved?

-- 
Best regards / 宜しく御願い致します / S pozdravem / C уважением / Z poważaniem / 
Mit freundlichen Grüßen

白い熊
ShiroiKuma


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IceWM for Guix System
  2022-05-13  6:49 IceWM for Guix System 白い熊@相撲道
@ 2022-05-13  8:22 ` zimoun
  2022-05-14 18:38   ` 白い熊@相撲道
  0 siblings, 1 reply; 6+ messages in thread
From: zimoun @ 2022-05-13  8:22 UTC (permalink / raw)
  To: 白い熊@相撲道,
	help-guix

Hi,

On ven., 13 mai 2022 at 08:49, 白い熊@相撲道 <help-guix_gnu.org@sumou.com> wrote:

> Now, I'd like to add its package definition to my local guix git 
> checkout, however my low guix skill doesn't help me currently in 
> understanding also the ....-desktop-service-type and everything that's 
> needed to be done, and how to then use it in the system configuration.

One foot, then the other. :-)

A good start seems to package icewm.


> Can anyone help me - having done that, or similar for another WM that I 
> could take inspiration on how this can be achieved?

For instance,

    guix build -L /tmp/my-pkgs icewm

where /tmp/my-pkgs contains this file icewm.scm:

--8<---------------cut here---------------start------------->8---
(define-module (icewm)
  #:use-module (guix packages)
  #:use-module (gnu packages)
  #:use-module (guix build-system gnu)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (gnu packages autogen)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages gettext)
  )

(define-public icewm
  (package
    (name "icewm")
    (version "1.4.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/bbidulock/icewm")
             (commit version)))
       (sha256 "1gnaslxryzas8k91rb64inynj8gy50lb4kpkfrkj1px57m9hass2")
       (file-name (git-file-name name version))))
    (build-system gnu-build-system)
    (native-inputs
     (list autoconf automake gettext-minimal libtool))
    (home-page "https://ice-wm.org/")
    (synopsis " window manager for the X Window System")
    (description "IceWM is a window manager for the X Window System. The goal
of IceWM is speed, simplicity, and not getting in the user’s way. It comes
with a taskbar with pager, global and per-window keybindings and a dynamic
menu system. Application windows can be managed by keyboard and mouse. Windows
can be iconified to the taskbar, to the tray, to the desktop or be made
hidden. They are controllable by a quick switch window (Alt+Tab) and in a
window list. A handful of configurable focus models are
menu-selectable. Setups with multiple monitors are supported by RandR and
Xinerama. IceWM is very configurable, themeable and well documented. It
includes an optional external background wallpaper manager with transparency
support, a simple session manager and a system tray.")
    (license license:gpl2)))
--8<---------------cut here---------------end--------------->8---

Well, this does not work and fail with the error:

--8<---------------cut here---------------start------------->8---
autoreconf: running: /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf
configure.ac:69: error: possibly undefined macro: AC_DEFINE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:140: error: possibly undefined macro: AC_MSG_WARN
autoreconf: /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf failed with exit status: 1
--8<---------------cut here---------------end--------------->8---

You can address these issues, adds the list of inputs, etc.  Here, icewm
is bootstrapped when you could also use the release version and avoid
automake and friend.  Be careful, the ’bootstrap’ phase is triggered by
the check of the ’configure’ file, and here it is probably named
’configure.sh’.

The list of dependencies (inputs))

        libxft
        libxinerama
        libxpm
        libjpeg
        libxrandr

is also missing.


Feel free to share your progress and ask more help on specific points if
needed.


Cheers,
simon




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IceWM for Guix System
  2022-05-13  8:22 ` zimoun
@ 2022-05-14 18:38   ` 白い熊@相撲道
  2022-05-14 18:56     ` Ekaitz Zarraga
  0 siblings, 1 reply; 6+ messages in thread
From: 白い熊@相撲道 @ 2022-05-14 18:38 UTC (permalink / raw)
  To: zimoun; +Cc: help-guix

On 2022-05-13 10:22, zimoun wrote:

>     guix build -L /tmp/my-pkgs icewm
> 
> where /tmp/my-pkgs contains this file icewm.scm:
...
> You can address these issues, adds the list of inputs, etc.  Here, 
> icewm
> is bootstrapped when you could also use the release version and avoid
> automake and friend.  Be careful, the ’bootstrap’ phase is triggered by
> the check of the ’configure’ file, and here it is probably named
> ’configure.sh’.
...
> Feel free to share your progress and ask more help on specific points 
> if

Many thanks Simon for the guidance - I'm learning many things working 
through this. Now I need more help please :@)

I've been able to get it built with the following package definition:
--8<---------------cut here---------------start------------->8---
(define-module (icewm)
   #:use-module (guix packages)
   #:use-module (gnu packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xorg)
   )

(define-public icewm
   (package
     (name "icewm")
     (version "2.9.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              
"https://github.com/ice-wm/icewm/releases/download/2.9.7/icewm-"
	     version
	     ".tar.lz"))
        (sha256 (base32 
"0an7h55sacikkvb7llz2n93dl7xds24ics8mqzmznjddygiphpy2"))))
     (build-system gnu-build-system)
     (inputs
      (list fontconfig fribidi imlib2 libice libjpeg-turbo libsm 
libxcomposite libxdamage libxext libxfixes libxft libxinerama libxpm 
libxrandr libxrender libx11 lzip perl pkg-config))
     (home-page "https://ice-wm.org/")
     (synopsis " window manager for the X Window System")
     (description "IceWM is a window manager for the X Window System. The 
goal
of IceWM is speed, simplicity, and not getting in the user’s way. It 
comes
with a taskbar with pager, global and per-window keybindings and a 
dynamic
menu system. Application windows can be managed by keyboard and mouse. 
Windows
can be iconified to the taskbar, to the tray, to the desktop or be made
hidden. They are controllable by a quick switch window (Alt+Tab) and in 
a
window list. A handful of configurable focus models are
menu-selectable. Setups with multiple monitors are supported by RandR 
and
Xinerama. IceWM is very configurable, themeable and well documented. It
includes an optional external background wallpaper manager with 
transparency
support, a simple session manager and a system tray.")
     (license license:gpl2)))
--8<---------------cut here---------------end--------------->8---

However it fails on running 'make check' with one test failed:
FAIL: strtest

I do not know how to solve this - configure doesn't have options for 
skip check, don't know how to overcome this. Could you help me get over 
this hurdle and then indicate how to proceed further?

---
Best regards / 宜しく御願い致します / S pozdravem / C уважением / Z poważaniem / 
Mit freundlichen Grüßen

白い熊
ShiroiKuma


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IceWM for Guix System
  2022-05-14 18:38   ` 白い熊@相撲道
@ 2022-05-14 18:56     ` Ekaitz Zarraga
  2022-05-14 21:38       ` 白い熊@相撲道
  0 siblings, 1 reply; 6+ messages in thread
From: Ekaitz Zarraga @ 2022-05-14 18:56 UTC (permalink / raw)
  To: 白い熊@相撲道
  Cc: zimoun, help-guix

Hi,


------- Original Message -------
On Saturday, May 14th, 2022 at 8:38 PM, 白い熊@相撲道 <help-guix_gnu.org@sumou.com> wrote:


> On 2022-05-13 10:22, zimoun wrote:
>
> > guix build -L /tmp/my-pkgs icewm
> >
> > where /tmp/my-pkgs contains this file icewm.scm:
>
> ...
>
> > You can address these issues, adds the list of inputs, etc. Here,
> > icewm
> > is bootstrapped when you could also use the release version and avoid
> > automake and friend. Be careful, the ’bootstrap’ phase is triggered by
> > the check of the ’configure’ file, and here it is probably named
> > ’configure.sh’.
>
> ...
>
> > Feel free to share your progress and ask more help on specific points
> > if
>
>
> Many thanks Simon for the guidance - I'm learning many things working
> through this. Now I need more help please :@)
>
> I've been able to get it built with the following package definition:
> --8<---------------cut here---------------start------------->8---
>
> (define-module (icewm)
> #:use-module (guix packages)
> #:use-module (gnu packages)
> #:use-module (guix build-system gnu)
> #:use-module (guix download)
> #:use-module ((guix licenses) #:prefix license:)
> #:use-module (gnu packages autogen)
> #:use-module (gnu packages autotools)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages fontutils)
> #:use-module (gnu packages fribidi)
> #:use-module (gnu packages gettext)
> #:use-module (gnu packages image)
> #:use-module (gnu packages perl)
> #:use-module (gnu packages pkg-config)
> #:use-module (gnu packages xorg)
> )
>
> (define-public icewm
> (package
> (name "icewm")
> (version "2.9.7")
> (source
> (origin
> (method url-fetch)
> (uri (string-append
>
> "https://github.com/ice-wm/icewm/releases/download/2.9.7/icewm-"
> version
> ".tar.lz"))
> (sha256 (base32
> "0an7h55sacikkvb7llz2n93dl7xds24ics8mqzmznjddygiphpy2"))))
> (build-system gnu-build-system)
> (inputs
> (list fontconfig fribidi imlib2 libice libjpeg-turbo libsm
> libxcomposite libxdamage libxext libxfixes libxft libxinerama libxpm
> libxrandr libxrender libx11 lzip perl pkg-config))
> (home-page "https://ice-wm.org/")
> (synopsis " window manager for the X Window System")
> (description "IceWM is a window manager for the X Window System. The
> goal
> of IceWM is speed, simplicity, and not getting in the user’s way. It
> comes
> with a taskbar with pager, global and per-window keybindings and a
> dynamic
> menu system. Application windows can be managed by keyboard and mouse.
> Windows
> can be iconified to the taskbar, to the tray, to the desktop or be made
> hidden. They are controllable by a quick switch window (Alt+Tab) and in
> a
> window list. A handful of configurable focus models are
> menu-selectable. Setups with multiple monitors are supported by RandR
> and
> Xinerama. IceWM is very configurable, themeable and well documented. It
> includes an optional external background wallpaper manager with
> transparency
> support, a simple session manager and a system tray.")
> (license license:gpl2)))
> --8<---------------cut here---------------end--------------->8---
>
>
> However it fails on running 'make check' with one test failed:
> FAIL: strtest
>
> I do not know how to solve this - configure doesn't have options for
> skip check, don't know how to overcome this. Could you help me get over
> this hurdle and then indicate how to proceed further?
>
> ---
> Best regards / 宜しく御願い致します / S pozdravem / C уважением / Z poważaniem /
> Mit freundlichen Grüßen
>
> 白い熊
> ShiroiKuma


We try to avoid disabling tests, but for giving it a try you can
set the #:tests? argument to #f. You can see how that is done in
sc-im package for instance (see gnu/packages/spreadsheet.scm:62
or run `guix edit sc-im`)

Hope this helps,

Ekaitz


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IceWM for Guix System
  2022-05-14 18:56     ` Ekaitz Zarraga
@ 2022-05-14 21:38       ` 白い熊@相撲道
  2022-05-14 23:11         ` 白い熊
  0 siblings, 1 reply; 6+ messages in thread
From: 白い熊@相撲道 @ 2022-05-14 21:38 UTC (permalink / raw)
  To: Ekaitz Zarraga; +Cc: zimoun, help-guix

On 2022-05-14 20:56, Ekaitz Zarraga wrote:

> We try to avoid disabling tests, but for giving it a try you can
> set the #:tests? argument to #f. You can see how that is done in
> sc-im package for instance (see gnu/packages/spreadsheet.scm:62
> or run `guix edit sc-im`)

Thank you Ekaitz. So, indeed, it built fine - though I realize the 
problem with skipping tests. I installed icewm then, can run it and it 
works.

Now I need to cons some icewm-desktop-service-type onto 
%desktop-services in system config - am trying to find out how to define 
it and where - so that I'd be able to reconfigure the system and have 
icewm as one of the options for login among the available session 
managers, so X could start a session in it.

How do I do this?

---
Best regards / 宜しく御願い致します / S pozdravem / C уважением / Z poważaniem / 
Mit freundlichen Grüßen

白い熊
ShiroiKuma


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IceWM for Guix System
  2022-05-14 21:38       ` 白い熊@相撲道
@ 2022-05-14 23:11         ` 白い熊
  0 siblings, 0 replies; 6+ messages in thread
From: 白い熊 @ 2022-05-14 23:11 UTC (permalink / raw)
  To: help-guix

On 2022-05-14 23:38, 白い熊 wrote:

> Now I need to cons some icewm-desktop-service-type onto
> %desktop-services in system config - am trying to find out how to
> define it and where - so that I'd be able to reconfigure the system
> and have icewm as one of the options for login among the available
> session managers, so X could start a session in it.

I think I figured it out - at least partially - it's really fun...

Anyhow I added a #phases modification to the package definition, setup a 
local directory channel with the package definition. Then could add the 
package module and the icewm package to system config, reconfigure and 
it's there with other WMs.

This is what I ended up with for reference:
--8<---------------cut here---------------start------------->8---
(define-module (icewm)
   #:use-module (guix packages)
   #:use-module (gnu packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xorg)
   )

(define-public icewm
   (package
     (name "icewm")
     (version "2.9.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              
"https://github.com/ice-wm/icewm/releases/download/2.9.7/icewm-"
	     version
	     ".tar.lz"))
        (sha256 (base32 
"0an7h55sacikkvb7llz2n93dl7xds24ics8mqzmznjddygiphpy2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
        #:phases
        (modify-phases %standard-phases
		      (add-after 'install 'install-xsession
				 (lambda* (#:key outputs #:allow-other-keys)
				   ;; Add a .desktop file to xsessions.
				   (let* ((output    (assoc-ref outputs "out"))
					  (xsessions (string-append output "/share/xsessions")))
				     (mkdir-p xsessions)
				     (call-with-output-file (string-append xsessions
									   "/icewm.desktop")
				       (lambda (port)
					 (format port
						 "[Desktop Entry]~@
                             Name=icewm~@
                             Comment=IceWM window manager~@
                             Exec=~a/bin/icewm~@
                             TryExec=~@*~a/bin/icewm~@
                             Type=Application~%"
						 output)))
				     #t))))))
     (inputs
      (list fontconfig fribidi imlib2 libice libjpeg-turbo libsm 
libxcomposite libxdamage libxext libxfixes libxft libxinerama libxpm 
libxrandr libxrender libx11 lzip perl pkg-config))
     (home-page "https://ice-wm.org/")
     (synopsis " window manager for the X Window System")
     (description "IceWM is a window manager for the X Window System. The 
goal
of IceWM is speed, simplicity, and not getting in the user’s way. It 
comes
with a taskbar with pager, global and per-window keybindings and a 
dynamic
menu system. Application windows can be managed by keyboard and mouse. 
Windows
can be iconified to the taskbar, to the tray, to the desktop or be made
hidden. They are controllable by a quick switch window (Alt+Tab) and in 
a
window list. A handful of configurable focus models are
menu-selectable. Setups with multiple monitors are supported by RandR 
and
Xinerama. IceWM is very configurable, themeable and well documented. It
includes an optional external background wallpaper manager with 
transparency
support, a simple session manager and a system tray.")
     (license license:gpl2)))
--8<---------------cut here---------------end--------------->8---

It might be incomplete though - maybe it's lacking some services or 
something, as the IceWM that starts up now does not have full Settings 
options - like Display settings for instance - as the IceWM from Ubuntu 
Mate has on the same machine from a parallel boot. It might be due to 
some concrete configurations etc - I'll explore. Or it might be due to 
having not declared something helpful in the package definition... If 
anyone has ideas, I'll be happy to hear those and test them...

---
Best regards / 宜しく御願い致します / S pozdravem / C уважением / Z poważaniem / 
Mit freundlichen Grüßen

白い熊
ShiroiKuma


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-05-14 23:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-13  6:49 IceWM for Guix System 白い熊@相撲道
2022-05-13  8:22 ` zimoun
2022-05-14 18:38   ` 白い熊@相撲道
2022-05-14 18:56     ` Ekaitz Zarraga
2022-05-14 21:38       ` 白い熊@相撲道
2022-05-14 23:11         ` 白い熊

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).