Gentoo Archives: gentoo-commits

From: David Seifert <soap@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-misc/ddctool/
Date: Sun, 04 Sep 2016 20:14:30
Message-Id: 1473020049.e3813844624d2d93ebff79fcd800fe6e516d9063.soap@gentoo
1 commit: e3813844624d2d93ebff79fcd800fe6e516d9063
2 Author: Jonathan Scruggs <j.scruggs <AT> gmail <DOT> com>
3 AuthorDate: Sat Sep 3 16:13:01 2016 +0000
4 Commit: David Seifert <soap <AT> gentoo <DOT> org>
5 CommitDate: Sun Sep 4 20:14:09 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e3813844
7
8 app-misc/ddctool: New package
9
10 ddctool primarily uses DDC/CI (Display Data Channel Command Interface)
11 to communicate with monitors implementing MCCS (Monitor Control Command
12 Set) over I2C. Normally, the video driver for the monitor exposes the
13 I2C channel as devices named /dev/i2c-n. Alternatively, there is initial
14 support for monitors (such as Apple displays) that implement MCCS using
15 a USB connection.
16
17 Package-Manager: portage-2.3.0
18
19 Signed-off-by: Jonathan Scruggs (j.scruggs <AT> gmail.com)
20 Closes: https://github.com/gentoo/gentoo/pull/2201
21 Signed-off-by: David Seifert <soap <AT> gentoo.org>
22
23 app-misc/ddctool/Manifest | 1 +
24 app-misc/ddctool/ddctool-0.4.2.ebuild | 79 +++++++++++++++++++++++++++++++++++
25 app-misc/ddctool/metadata.xml | 32 ++++++++++++++
26 3 files changed, 112 insertions(+)
27
28 diff --git a/app-misc/ddctool/Manifest b/app-misc/ddctool/Manifest
29 new file mode 100644
30 index 00000000..d413b27
31 --- /dev/null
32 +++ b/app-misc/ddctool/Manifest
33 @@ -0,0 +1 @@
34 +DIST ddctool-0.4.2.tar.gz 739613 SHA256 742465d74247c21a87247e3a386d0cbcf95808cde9fc88efae21f21c12ae9748 SHA512 7b86ae475f877ff4e66a51e0612fe505479e88b6221c74e7951e10537a3d9720f0f7c82cbbaaa990aa6daef7e1aabf493f6eb59e908af61a8f1159b9d9ac16a8 WHIRLPOOL 4d32cf667c9a61790c5ac1a02338349b085d8922b3b89e28814b394bb975c74452dd7dd8d2f14561256d724ac10f032debab8b686700783beba4dbc00b3b4238
35
36 diff --git a/app-misc/ddctool/ddctool-0.4.2.ebuild b/app-misc/ddctool/ddctool-0.4.2.ebuild
37 new file mode 100644
38 index 00000000..e64c579
39 --- /dev/null
40 +++ b/app-misc/ddctool/ddctool-0.4.2.ebuild
41 @@ -0,0 +1,79 @@
42 +# Copyright 1999-2016 Gentoo Foundation
43 +# Distributed under the terms of the GNU General Public License v2
44 +# $Id$
45 +
46 +EAPI=6
47 +
48 +inherit linux-info udev user
49 +
50 +DESCRIPTION="Program for querying and changing monitor settings"
51 +HOMEPAGE="http://www.ddctool.com/"
52 +
53 +MY_GIT_COMMIT="9712e9b54693872cd390476a7606fc8d13b66034"
54 +SRC_URI="https://github.com/rockowitz/ddctool/raw/${MY_GIT_COMMIT}/${P}.tar.gz"
55 +
56 +# Binary drivers need special instructions compared to the open source counterparts.
57 +# If a user switches drivers, they will need to set different use flags for
58 +# Xorg or Wayland or Mesa, so this will trigger the rebuild against
59 +# the different drivers.
60 +IUSE="udev-i2c udev-usb video_cards_fglrx video_cards_nvidia"
61 +
62 +LICENSE="GPL-2"
63 +SLOT="0"
64 +KEYWORDS="~amd64 ~x86"
65 +
66 +RDEPEND="x11-libs/libXrandr"
67 +DEPEND="video_cards_fglrx? ( x11-libs/amd-adl-sdk )
68 + udev-usb? ( virtual/libusb )
69 + virtual/udev
70 + virtual/pkgconfig
71 + ${RDEPEND}"
72 +
73 +pkg_pretend() {
74 + # This program needs /dev/ic2-* devices to communicate with the monitor.
75 + CONFIG_CHECK="~I2C_CHARDEV"
76 + ERROR_I2C_CHARDEV="You must enable I2C_CHARDEV in your kernel to continue"
77 + if use udev-usb; then
78 + CONFIG_CHECK="~USB_HIDDEV"
79 + ERROR_I2C_CHARDEV="USB_HIDDEV is needed to support USB monitors"
80 + fi
81 +}
82 +
83 +src_configure() {
84 + econf $(usex video_cards_fglrx "--with-adl-headers=/usr/include/ADL" "")
85 +}
86 +
87 +src_install() {
88 + default
89 + use udev-i2c && udev_dorules data/etc/udev/rules.d/45-ddctool-i2c.rules
90 + use udev-usb && udev_dorules data/etc/udev/rules.d/45-ddctool-usb.rules
91 +}
92 +
93 +pkg_postinst() {
94 + if use udev-i2c; then
95 + enewgroup i2c
96 + udev_reload
97 + einfo "To allow non-root users access to the /dev/i2c-* devices, add those"
98 + einfo "users to the i2c group: usermod -aG i2c user"
99 + einfo "Restart the computer or reload the i2c-dev module to activate"
100 + einfo "the new udev rule."
101 + einfo "For more information read: http://www.ddctool.com/i2c_permissions/"
102 + fi
103 +
104 + if use udev-usb; then
105 + enewgroup video
106 + udev_reload
107 + einfo "To allow non-root users access to the USB monitor, add those users"
108 + einfo "to the video group: usermod -aG video user"
109 + einfo "Restart the computer, reload the hiddev module, or replug the monitor"
110 + einfo "to activate the new udev rule."
111 + einfo "For more information read: http://www.ddctool.com/usb/"
112 + fi
113 +
114 + if use video_cards_nvidia; then
115 + einfo "=================================================================="
116 + einfo "Please read the following webpage on proper usage with the nVidia "
117 + einfo "binary drivers, or it may not work: http://www.ddctool.com/nvidia/"
118 + einfo "=================================================================="
119 + fi
120 +}
121
122 diff --git a/app-misc/ddctool/metadata.xml b/app-misc/ddctool/metadata.xml
123 new file mode 100644
124 index 00000000..7b3b1c0
125 --- /dev/null
126 +++ b/app-misc/ddctool/metadata.xml
127 @@ -0,0 +1,32 @@
128 +<?xml version="1.0" encoding="UTF-8"?>
129 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
130 +<pkgmetadata>
131 + <maintainer type="person">
132 + <email>j.scruggs@×××××.com</email>
133 + <name>Jonathan Scruggs</name>
134 + </maintainer>
135 + <maintainer type="project">
136 + <email>proxy-maint@g.o</email>
137 + <name>Proxy Maintainers</name>
138 + </maintainer>
139 + <longdescription>
140 + ddctool primarily uses DDC/CI (Display Data Channel Command Interface)
141 + to communicate with monitors implementing MCCS (Monitor Control Command
142 + Set) over I2C. Normally, the video driver for the monitor exposes the
143 + I2C channel as devices named /dev/i2c-n. Alternatively, there is initial
144 + support for monitors (such as Apple displays) that implement MCCS using
145 + a USB connection.
146 + </longdescription>
147 + <use>
148 + <flag name="udev-i2c">
149 + Adds a udev rule to allow non-root users in the i2c group to
150 + access the /dev/i2c-* devices. Otherwise, only root will be
151 + able to use ddctool.
152 + </flag>
153 + <flag name="udev-usb">
154 + Adds a udev rule to allow non-root users in the video group to
155 + access USB connected monitors. Otherwise, only root will be
156 + able to use ddctool.
157 + </flag>
158 + </use>
159 +</pkgmetadata>