guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

wip-rox.scm : ROX Desktop


From: Danny Milosavljevic
Subject: wip-rox.scm : ROX Desktop
Date: Tue, 8 Mar 2016 09:04:43 +0100

Hello Louis,

well, writing the package declaration is easy - if you have the time, it would 
be nice.

But I understand that you have to get guix working for you first.

I have a work-in-progress for the ROX Desktop (the ROX-Filer and ROX-Session 
parts work), see below; you can use it as a starting point.

ROX Filer has many forks and some of them are very different from what is on 
the main site.

I still used the original fork for now. 

To use it, with your normal user account do:
$ git clone git://git.sv.gnu.org/guix.git
$ cd guix
$ ./bootstrap
$ ./configure --localstatedir=/var
$ # put contents below into gnu/packages/wip-rox.scm
$ make
$ make check
$ ./pre-inst-env guix package -i rox-filer
$ # from now on, always use guix via ./pre-inst-env guix

Or wait until someone else did it and brought it all the way into an official 
guix release.

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Sou Bunnbu <address@hidden>
;;; Copyright © 2014, 2015 Mark H Weaver <address@hidden>
;;;
;;; 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 rox)
  #:use-module ((guix licenses) #:hide (freetype))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system glib-or-gtk)
  #:use-module (gnu packages)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages xorg)
  #:use-module (gnu packages xdisorg)
  #:use-module (gnu packages web)
  #:use-module (gnu packages fontutils)
  #:use-module (gnu packages image)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages pdf)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages polkit)
  #:use-module (gnu packages gstreamer)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages photo)
  #:use-module (gnu packages pcre)
  #:use-module (gnu packages pulseaudio))

; FIXME add rox-clib

(define-public rox-lib
  (package
    (name "rox-lib")
    (version "2.0.6")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/rox/rox-lib2-"
                                  (version-major+minor version)
                                  ".tar.bz2"))
              (sha256
               (base32 ; FIXME
                "07c8r3xwx5is298zk77m3r784gmr5y4mh8bbca5zdjqk5vxdwsw7"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("pkg-config" ,pkg-config)
       ("intltool" ,intltool))) ; FIXME
    (propagated-inputs `(("glib" ,glib))) ; required by *.pc ; FIXME
    (home-page "http://rox.sourceforge.net/desktop/";)
    (synopsis "Basic utility library for ROX")
    (description "A general-purpose utility library for ROX")
    (license lgpl2.0+))) ; FIXME

(define-public rox-session
  (package
    (name "rox-session")
    (version "0.40.0")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/rox/rox-session-"
                                  version
                                  ".tar.gz"))
              (sha256
               (base32
                "15jf4nl51mh3pc45r0hlz24rn3hz6c3qqli40w9bm1bd4a00z0cn"))))
    (build-system gnu-build-system)
    (arguments
     '(#:out-of-source? #t
       #:configure-flags (list (string-append "--with-xsession-prefix=" 
%output))
       #:tests? #f
       #:phases (alist-cons-before
                 'configure 'pre-configure
                 (lambda _
                   (chdir "src"))
                 (alist-replace
                  'install
                  (lambda* (#:key outputs #:allow-other-keys)
                   ;(zero? (system* "pwd"))) ; FIXME
                   (let* ((out (assoc-ref outputs "out"))
                          (bin (string-append out "/bin")))
                      (and
                        (zero? (system* "mkdir" out))
                        (zero? (system* "mkdir" bin))
                        (zero? (system* "cp" "--" "../src/../ROX-Session" 
bin))) ; FIXME
                      ))
                  %standard-phases))))
    (native-inputs ; FIXME
     `(("pkg-config" ,pkg-config)
       ("intltool" ,intltool)))
    (inputs ; FIXME check
     `(;("iceauth" ,iceauth)
       ;("upower" ,upower)
       ;("polkit" ,polkit)
       ;("libsm" ,libsm)
       ;("libwnck" ,libwnck-1)
       ("libxtst" ,libxtst)
       ("libxxf86vm" ,libxxf86vm)
       ("dbus-glib" ,dbus-glib)
       ("dbus" ,dbus)
       ("libxml2"       ,libxml2) ; 2.0.0
       ("gtk2"     ,gtk+-2))) ; 2.12.0
    (home-page "http://rox.sourceforge.net/desktop/";)
    (synopsis "ROX session manager")
    (description
     "Session manager for ROX. It will restore your session on startup.")
    (license gpl2+))) ; FIXME

; FIXME
(define-public rox-settings
  (package
    (name "rox-settings")
    (version "4.12.0")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/rox/rox-settings-"
                                  (version-major+minor version)
                                  ".tar.bz2"))
              (sha256
               (base32
                "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4"))
))
    (build-system gnu-build-system)
    (native-inputs
     `(("pkg-config" ,pkg-config)
       ("intltool" ,intltool)))
    (inputs ; FIXME
     `(
       ("libnotify" ,libnotify)
       ("libxcursor", libxcursor)
       ("libxi" ,libxi)
       ("libxklavier" ,libxklavier)
       ("libxrandr" ,libxrandr)
       ("upower" ,upower)
       ("xf86-input-libinput" ,xf86-input-libinput)))
    (home-page "http://rox.sourceforge.net/desktop/";)
    (synopsis "ROX settings manager")
    (description "Settings manager for ROX")
    (license gpl2+))) ; FIXME

; see also https://mail-index.netbsd.org/pkgsrc-bugs/2016/02/07/msg058783.html
; see also https://github.com/dtomas/rox-filer/commits/master
(define-public rox-filer 
  (package
    (name "rox-filer")
    (version "2.11")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/rox/rox-filer-"
                                  version ".tar.bz2"))
              (sha256
               (base32
                "1a0v21y3srmz0ikg62df6hpc94j5axs1b5wbshp7mvqqxqrbsad9"))))
    (build-system gnu-build-system)
    (arguments
     '(#:out-of-source? #t
       #:configure-flags '("LDFLAGS=-ldl -lm")
       #:tests? #f
       #:phases (alist-cons-before
                 'configure 'pre-configure
                 (lambda _
                   (chdir "ROX-Filer/src"))
                 (alist-replace
                  'install
                  (lambda* (#:key outputs #:allow-other-keys)
                   ;(zero? (system* "pwd"))) ; FIXME
                   (let* ((out (assoc-ref outputs "out"))
                          (bin (string-append out "/bin")))
                      (and
                        (zero? (system* "mkdir" out))
                        (zero? (system* "mkdir" bin))
                        (zero? (system* "cp" "--" "../src/../ROX-Filer" bin))) 
; FIXME
                      ))
                  %standard-phases))))
    (native-inputs ; FIXME
     `(("pkg-config" ,pkg-config)
       ;("coreutils" ,coreutils)
       ("intltool" ,intltool)
       ("gettext" ,gnu-gettext)))  ; FIXME is gettext implicit?
    (inputs
     `(("libsm" ,libsm)
       ("shared-mime-info"     ,shared-mime-info)  ; 0.14
       ("libxml2"       ,libxml2) ; 2.0.0
       ("gtk2"     ,gtk+-2))) ; 2.12.0
    (home-page "http://rox.sourceforge.net/desktop/";)
    (synopsis "ROX file manager")
    (description "A modern file manager for ROX graphical desktop")
    (license gpl2+)))

(define-public rox
  (package
    (name "rox")
    (version (package-version rox-session))
    (source #f)
    (build-system glib-or-gtk-build-system)
    (arguments
     '(#:modules ((guix build gnu-build-system)
                  (guix build glib-or-gtk-build-system)
                  (guix build utils)
                  (srfi srfi-26)) ))
    (propagated-inputs
     `(("rox-lib"              ,rox-lib) ; TODO remove
       ("gnome-icon-theme"     ,gnome-icon-theme) ; TODO remove ?
       ("hicolor-icon-theme"   ,hicolor-icon-theme)
       ("shared-mime-info"     ,shared-mime-info)  ; TODO remove explicit 
mention?
       ("rox-filer"            ,rox-filer)
       ("rox-session"          ,rox-session)
       ("rox-settings"         ,rox-settings)
       ))
    (home-page "http://rox.sourceforge.net/desktop/";)
    (synopsis "Desktop environment (meta-package)")
    (description "ROX is a RISC OS-like desktop environment.")
    (license gpl2+))) ; FIXME collect more licenses



reply via email to

[Prev in Thread] Current Thread [Next in Thread]