unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] Added package xcalib
@ 2016-11-14 16:05 Petter
  2016-11-15 19:35 ` Leo Famulari
  0 siblings, 1 reply; 6+ messages in thread
From: Petter @ 2016-11-14 16:05 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 204 bytes --]

Hi,

I just made a recipe for xcalib, with help from iyzsong. This is the 
first time I've created one so please be extra alert while reviewing, 
and don't hesitate to inform me of mistakes.

Best,
Petter

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Added-package-xcalib.patch --]
[-- Type: text/x-diff; name=0001-Added-package-xcalib.patch, Size: 2940 bytes --]

From 00ca66ec205baf52dc340faa61fd8ac38122e273 Mon Sep 17 00:00:00 2001
From: Petter <petter@mykolab.ch>
Date: Mon, 14 Nov 2016 16:56:33 +0100
Subject: [PATCH] Added package xcalib

---
 gnu/packages/xcalib.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 gnu/packages/xcalib.scm

diff --git a/gnu/packages/xcalib.scm b/gnu/packages/xcalib.scm
new file mode 100644
index 0000000..49f9a3f
--- /dev/null
+++ b/gnu/packages/xcalib.scm
@@ -0,0 +1,57 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Petter <petter@mykolab.ch>
+;;;
+;;; 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 xcalib)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages xorg))
+
+(define-public xcalib
+  (package
+    (name "xcalib")
+    (version "0.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://downloads.sourceforge.net/xcalib/"
+                                  "xcalib-source-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rh6xb51c5xz926dnn82a2fn643g0sr4a8z66rn6yi7523kjw4ca"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags '("CC=gcc")
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'check)
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (bin (string-append out "/bin")))
+                        (mkdir-p bin)
+                        (install-file "xcalib" bin)))))))
+    (inputs `(("libx11", libx11)
+              ("libxext", libxext)
+              ("libxxf86vm", libxxf86vm)))
+    (synopsis "Monitor calibration loader")
+    (description "Tiny monitor calibration loader for XFree86(or X.org)
+and MS-Windows.  Alter brightness, contrast and colors on your monitor.
+Even inverting all the colors, which is nice for low-light conditions.")
+    (home-page "http://xcalib.sourceforge.net/")
+    (license gpl2)))
-- 
2.10.1


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

* Re: [PATCH] Added package xcalib
  2016-11-14 16:05 [PATCH] Added package xcalib Petter
@ 2016-11-15 19:35 ` Leo Famulari
  2016-11-16  0:37   ` Petter
  0 siblings, 1 reply; 6+ messages in thread
From: Leo Famulari @ 2016-11-15 19:35 UTC (permalink / raw)
  To: Petter; +Cc: guix-devel

On Mon, Nov 14, 2016 at 05:05:55PM +0100, Petter wrote:
> Hi,
> 
> I just made a recipe for xcalib, with help from iyzsong. This is the first
> time I've created one so please be extra alert while reviewing, and don't
> hesitate to inform me of mistakes.

Thanks Petter and iyzsong!

I think the package should go in the (gnu packages xdisorg) module
instead of its own module.

> From 00ca66ec205baf52dc340faa61fd8ac38122e273 Mon Sep 17 00:00:00 2001
> From: Petter <petter@mykolab.ch>
> Date: Mon, 14 Nov 2016 16:56:33 +0100
> Subject: [PATCH] Added package xcalib

The commit title should be "gnu: Add xcalib.".

Also, please add a "changelog" line describing the code changes. In this
case, it should be:

* gnu/packages/xdisorg (xcalib): New variable.

This is the GNU convention, and we mention it in the manual, section 8.5
Submitting Patches [0]. Please refer to earlier Git commits or ask for help
on IRC if you are unsure about it.

[0]
https://www.gnu.org/software/guix/manual/html_node/Submitting-Patches.html

> +(define-public xcalib
> +  (package
> +    (name "xcalib")
> +    (version "0.8")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://downloads.sourceforge.net/xcalib/"
> +                                  "xcalib-source-" version ".tar.gz"))

We have a SourceForge "mirror" URL that should be used. Grep for
'mirror://sourceforge' in gnu/packages for some examples of how to use
it.

> +    (arguments
> +     '(#:make-flags '("CC=gcc")
> +       #:phases (modify-phases %standard-phases
> +                  (delete 'configure)
> +                  (delete 'check)

Please add a comment explaining why we skip the tests. If there is no
test suite, just use "No test suite". Also, we prefer to skip tests by
setting #:tests? #f instead of deleting the check phase.

> +                  (replace 'install
> +                    (lambda* (#:key outputs #:allow-other-keys)
> +                      (let* ((out (assoc-ref outputs "out"))
> +                             (bin (string-append out "/bin")))
> +                        (mkdir-p bin)
> +                        (install-file "xcalib" bin)))))))

Okay. Please check if there is any documentation that could also be
installed. You can add a build phase before 'install that just fails:
(lambda _ #f), build with --keep-failed, and then look in the build
directory for man pages, READMEs, Info pages, etc.

> +    (license gpl2)))

Please double-check if the source files contain the "or later" text in
the license headers. If so, it's gpl2+.

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

* Re: [PATCH] Added package xcalib
  2016-11-15 19:35 ` Leo Famulari
@ 2016-11-16  0:37   ` Petter
  2016-11-18 20:10     ` Leo Famulari
  0 siblings, 1 reply; 6+ messages in thread
From: Petter @ 2016-11-16  0:37 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 3012 bytes --]

Hi Leo,

Thanks for reviewing this patch and helping me do this right!

I have worked through the issues you brought up, and it should at least 
be
better now. Maybe even good.

There is no indication of GPL v2 or later in the project though.

Best,
Petter

On 2016-11-15 20:35, Leo Famulari wrote:
> On Mon, Nov 14, 2016 at 05:05:55PM +0100, Petter wrote:
>> Hi,
>> 
>> I just made a recipe for xcalib, with help from iyzsong. This is the 
>> first
>> time I've created one so please be extra alert while reviewing, and 
>> don't
>> hesitate to inform me of mistakes.
> 
> Thanks Petter and iyzsong!
> 
> I think the package should go in the (gnu packages xdisorg) module
> instead of its own module.
> 
>> From 00ca66ec205baf52dc340faa61fd8ac38122e273 Mon Sep 17 00:00:00 2001
>> From: Petter <petter@mykolab.ch>
>> Date: Mon, 14 Nov 2016 16:56:33 +0100
>> Subject: [PATCH] Added package xcalib
> 
> The commit title should be "gnu: Add xcalib.".
> 
> Also, please add a "changelog" line describing the code changes. In 
> this
> case, it should be:
> 
> * gnu/packages/xdisorg (xcalib): New variable.
> 
> This is the GNU convention, and we mention it in the manual, section 
> 8.5
> Submitting Patches [0]. Please refer to earlier Git commits or ask for 
> help
> on IRC if you are unsure about it.
> 
> [0]
> https://www.gnu.org/software/guix/manual/html_node/Submitting-Patches.html
> 
>> +(define-public xcalib
>> +  (package
>> +    (name "xcalib")
>> +    (version "0.8")
>> +    (source (origin
>> +              (method url-fetch)
>> +              (uri (string-append 
>> "http://downloads.sourceforge.net/xcalib/"
>> +                                  "xcalib-source-" version 
>> ".tar.gz"))
> 
> We have a SourceForge "mirror" URL that should be used. Grep for
> 'mirror://sourceforge' in gnu/packages for some examples of how to use
> it.
> 
>> +    (arguments
>> +     '(#:make-flags '("CC=gcc")
>> +       #:phases (modify-phases %standard-phases
>> +                  (delete 'configure)
>> +                  (delete 'check)
> 
> Please add a comment explaining why we skip the tests. If there is no
> test suite, just use "No test suite". Also, we prefer to skip tests by
> setting #:tests? #f instead of deleting the check phase.
> 
>> +                  (replace 'install
>> +                    (lambda* (#:key outputs #:allow-other-keys)
>> +                      (let* ((out (assoc-ref outputs "out"))
>> +                             (bin (string-append out "/bin")))
>> +                        (mkdir-p bin)
>> +                        (install-file "xcalib" bin)))))))
> 
> Okay. Please check if there is any documentation that could also be
> installed. You can add a build phase before 'install that just fails:
> (lambda _ #f), build with --keep-failed, and then look in the build
> directory for man pages, READMEs, Info pages, etc.
> 
>> +    (license gpl2)))
> 
> Please double-check if the source files contain the "or later" text in
> the license headers. If so, it's gpl2+.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-xcalib.patch --]
[-- Type: text/x-diff; name=0001-gnu-Add-xcalib.patch, Size: 2851 bytes --]

From 9deb4d7360af358a5ef9e280b443b3df8f85143a Mon Sep 17 00:00:00 2001
From: Petter <petter@mykolab.ch>
Date: Wed, 16 Nov 2016 01:14:36 +0100
Subject: [PATCH] gnu: Add xcalib.

* gnu/packages/xdisorg (xcalib): New variable.
---
 gnu/packages/xdisorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index a26c716..faf1a4d 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1062,3 +1063,44 @@ XCB util-xrm module provides the following libraries:
 
 - xrm: utility functions for the X resource manager.")
     (license license:x11)))
+
+(define-public xcalib
+  (package
+    (name "xcalib")
+    (version "0.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/xcalib/xcalib/" version
+                                  "/xcalib-source-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rh6xb51c5xz926dnn82a2fn643g0sr4a8z66rn6yi7523kjw4ca"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags '("CC=gcc")
+       #:tests? #f   ; No test suite
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (bin (string-append out "/bin")))
+                        (mkdir-p bin)
+                        (install-file "xcalib" bin))))
+                  (add-after 'install 'install-doc
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((doc (string-append(assoc-ref outputs "out")
+                                               "/share/doc/")))
+                        (install-file "README" doc)
+                        ;; Avoid unspecified return value.
+                        #t))))))
+    (inputs `(("libx11", libx11)
+              ("libxext", libxext)
+              ("libxxf86vm", libxxf86vm)))
+    (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
+    (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
+profiles to the video card's gamma ramp.  It does work with most video card
+drivers except the generic VESA driver.  Alter brightness, contrast, RGB, and
+invert colors on a specific display/screen.")
+    (home-page "http://xcalib.sourceforge.net/")
+    (license license:gpl2)))
-- 
2.10.1


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

* Re: [PATCH] Added package xcalib
  2016-11-16  0:37   ` Petter
@ 2016-11-18 20:10     ` Leo Famulari
  2016-11-19 17:14       ` Petter
  0 siblings, 1 reply; 6+ messages in thread
From: Leo Famulari @ 2016-11-18 20:10 UTC (permalink / raw)
  To: Petter; +Cc: guix-devel

On Wed, Nov 16, 2016 at 01:37:04AM +0100, Petter wrote:
> I have worked through the issues you brought up, and it should at least be
> better now. Maybe even good.

It was already good, now it's very good :)

> There is no indication of GPL v2 or later in the project though.

Okay.

Pushed as 01278f16a9b with the following two changes:

> +                  (replace 'install
> +                    (lambda* (#:key outputs #:allow-other-keys)
> +                      (let* ((out (assoc-ref outputs "out"))
> +                             (bin (string-append out "/bin")))
> +                        (mkdir-p bin)
> +                        (install-file "xcalib" bin))))

(install-file) does (mkdir-p) itself, so I removed the redundant
(mkdir-p). It's defined in (guix build utils) if you are interested to
see.

> +                  (add-after 'install 'install-doc
> +                    (lambda* (#:key outputs #:allow-other-keys)
> +                      (let ((doc (string-append(assoc-ref outputs "out")
> +                                               "/share/doc/")))
                                                              ^
I added "xcalib" to the end of the path here -----------------|

So, when a user installs xcalib into their profile, the README will be
at ~/.guix-profile/share/doc/xcalib/README, instead of
~/.guix-profile/share/doc/README.

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

* Re: [PATCH] Added package xcalib
  2016-11-18 20:10     ` Leo Famulari
@ 2016-11-19 17:14       ` Petter
  2016-11-19 18:36         ` Leo Famulari
  0 siblings, 1 reply; 6+ messages in thread
From: Petter @ 2016-11-19 17:14 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel



On 2016-11-18 21:10, Leo Famulari wrote:
> On Wed, Nov 16, 2016 at 01:37:04AM +0100, Petter wrote:
>> I have worked through the issues you brought up, and it should at 
>> least be
>> better now. Maybe even good.
> 
> It was already good, now it's very good :)
> 
>> There is no indication of GPL v2 or later in the project though.
> 
> Okay.
> 
> Pushed as 01278f16a9b with the following two changes:
> 
>> +                  (replace 'install
>> +                    (lambda* (#:key outputs #:allow-other-keys)
>> +                      (let* ((out (assoc-ref outputs "out"))
>> +                             (bin (string-append out "/bin")))
>> +                        (mkdir-p bin)
>> +                        (install-file "xcalib" bin))))
> 
> (install-file) does (mkdir-p) itself, so I removed the redundant
> (mkdir-p). It's defined in (guix build utils) if you are interested to
> see.

Ok. I looked it up in another package, and copied the approach. (I see 
this redundancy occurs in several other places.)

> 
>> +                  (add-after 'install 'install-doc
>> +                    (lambda* (#:key outputs #:allow-other-keys)
>> +                      (let ((doc (string-append(assoc-ref outputs 
>> "out")
>> +                                               "/share/doc/")))
>                                                               ^
> I added "xcalib" to the end of the path here -----------------|
> 
> So, when a user installs xcalib into their profile, the README will be
> at ~/.guix-profile/share/doc/xcalib/README, instead of
> ~/.guix-profile/share/doc/README.

Aha. So that's how it will be used :)

Thanks for doing the final touches! And I really appreciate your 
detailed explanations! The next patch should hopefully be less of a 
burden on you reviewers :)

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

* Re: [PATCH] Added package xcalib
  2016-11-19 17:14       ` Petter
@ 2016-11-19 18:36         ` Leo Famulari
  0 siblings, 0 replies; 6+ messages in thread
From: Leo Famulari @ 2016-11-19 18:36 UTC (permalink / raw)
  To: Petter; +Cc: guix-devel

On Sat, Nov 19, 2016 at 06:14:32PM +0100, Petter wrote:
> On 2016-11-18 21:10, Leo Famulari wrote:
> > (install-file) does (mkdir-p) itself, so I removed the redundant
> > (mkdir-p). It's defined in (guix build utils) if you are interested to
> > see.
> 
> Ok. I looked it up in another package, and copied the approach. (I see this
> redundancy occurs in several other places.)

Feel free to submit patches fixing those redundancies!

> Thanks for doing the final touches! And I really appreciate your detailed
> explanations! The next patch should hopefully be less of a burden on you
> reviewers :)

That's my plan :)

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

end of thread, other threads:[~2016-11-19 18:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 16:05 [PATCH] Added package xcalib Petter
2016-11-15 19:35 ` Leo Famulari
2016-11-16  0:37   ` Petter
2016-11-18 20:10     ` Leo Famulari
2016-11-19 17:14       ` Petter
2016-11-19 18:36         ` Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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).