diff mbox series

[bug#39592] gnu: Add fbset.

Message ID 20200213231023.14895-1-me@tobias.gr
State Accepted
Headers show
Series [bug#39592] gnu: Add fbset. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

ashish.is--- via Guix-patches" via Feb. 13, 2020, 11:10 p.m. UTC
* gnu/packages/linux.scm (fbset): New public variable.
---
 gnu/packages/linux.scm | 56 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

Comments

ashish.is--- via Guix-patches" via Feb. 13, 2020, 11:32 p.m. UTC | #1
Tobias Geerinckx-Rice via Guix-patches via 写道:
> +       #:tests? #f))

; no test suite, of course.
Maxim Cournoyer Feb. 14, 2020, 6:53 p.m. UTC | #2
Tobias Geerinckx-Rice <me@tobias.gr> writes:

> * gnu/packages/linux.scm (fbset): New public variable.
> ---
>  gnu/packages/linux.scm | 56 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 56 insertions(+)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index b098567d24..3072b0f7d9 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -1275,6 +1275,62 @@ The Discordian calendar was made popular by the \"Illuminatus!\" trilogy
>  by Robert Shea and Robert Anton Wilson.")
>      (license license:public-domain)))
>  
> +(define-public fbset
> +  (package
> +    (name "fbset")
> +    (version "2.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "http://users.telenet.be/geertu/Linux/fbdev/fbset-"
> +                           version ".tar.gz"))
> +       (sha256
> +        (base32 "080wnisi0jq7dp0jcwdp83rq8q8s3kw41vc712516xbv4jq4mzs0"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     '(#:modules ((guix build gnu-build-system)
> +                  (guix build utils)
> +                  (srfi srfi-26))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure)            ; no configure script
> +         (add-before 'install 'pre-install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((out (assoc-ref outputs "out")))
> +               (substitute* "Makefile"
> +                 (("mknod ") "true ")
> +                 ;; The Makefile doesn't honour PREFIX or similar.
> +                 (("/usr") out))
> +               (mkdir out)
> +               (with-directory-excursion out
> +                 (for-each mkdir-p (list "sbin"
> +                                         "man/man5"
> +                                         "man/man8")))
> +               #t)))
> +         (add-after 'install 'install-fb.modes
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (etc (string-append out "/etc")))
> +               (for-each (cut install-file <> etc)
> +                         (find-files "etc" "^fb\\.modes"))
> +               (symlink "fb.modes.ATI"
> +                        (string-append etc "/fb.modes"))
> +               #t))))
> +       ;; Parallel building races to create modes.tab.c.
> +       #:parallel-build? #f
> +       #:tests? #f))
> +    (native-inputs
> +     `(("bison" ,bison)
> +       ("flex" ,flex)))
> +    (home-page "http://users.telenet.be/geertu/Linux/fbdev/")
> +    (synopsis "Show and modify Linux frame buffer settings")
> +    (description
> +     "The kernel Linux's @dfn{frame buffers} provide a simple interface to
> +different kinds of graphic displays.  The @command{fbset} utility can query and
> +change various device settings such as depth, virtual resolution, and timing
> +parameters.")
> +    (license license:gpl2)))
> +
>  (define-public procps
>    (package
>      (name "procps")

Thanks, LGTM.

In my tests, I couldn't get it to resize dynamically my resolution, but
it might be useful to someone else.

Maxim
ashish.is--- via Guix-patches" via Feb. 15, 2020, 9:05 p.m. UTC | #3
Maxim,

Maxim Cournoyer 写道:
> Thanks, LGTM.

Pushed as 96636e4910870906efb63f9e8890515c142bd941.

> In my tests, I couldn't get it to resize dynamically my 
> resolution, but
> it might be useful to someone else.

To document my experience: it successfully resized the logical 
viewport, but didn't actually change the resolution of my panel. 
Considering this thing was written in a time of CRTs and before 
KMS, that's not unreasonable & might require some custom EDID 
hackery to do that.

Thanks,

T G-R
diff mbox series

Patch

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index b098567d24..3072b0f7d9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1275,6 +1275,62 @@  The Discordian calendar was made popular by the \"Illuminatus!\" trilogy
 by Robert Shea and Robert Anton Wilson.")
     (license license:public-domain)))
 
+(define-public fbset
+  (package
+    (name "fbset")
+    (version "2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://users.telenet.be/geertu/Linux/fbdev/fbset-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "080wnisi0jq7dp0jcwdp83rq8q8s3kw41vc712516xbv4jq4mzs0"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (add-before 'install 'pre-install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "Makefile"
+                 (("mknod ") "true ")
+                 ;; The Makefile doesn't honour PREFIX or similar.
+                 (("/usr") out))
+               (mkdir out)
+               (with-directory-excursion out
+                 (for-each mkdir-p (list "sbin"
+                                         "man/man5"
+                                         "man/man8")))
+               #t)))
+         (add-after 'install 'install-fb.modes
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (etc (string-append out "/etc")))
+               (for-each (cut install-file <> etc)
+                         (find-files "etc" "^fb\\.modes"))
+               (symlink "fb.modes.ATI"
+                        (string-append etc "/fb.modes"))
+               #t))))
+       ;; Parallel building races to create modes.tab.c.
+       #:parallel-build? #f
+       #:tests? #f))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)))
+    (home-page "http://users.telenet.be/geertu/Linux/fbdev/")
+    (synopsis "Show and modify Linux frame buffer settings")
+    (description
+     "The kernel Linux's @dfn{frame buffers} provide a simple interface to
+different kinds of graphic displays.  The @command{fbset} utility can query and
+change various device settings such as depth, virtual resolution, and timing
+parameters.")
+    (license license:gpl2)))
+
 (define-public procps
   (package
     (name "procps")