commit:     e3813844624d2d93ebff79fcd800fe6e516d9063
Author:     Jonathan Scruggs <j.scruggs <AT> gmail <DOT> com>
AuthorDate: Sat Sep  3 16:13:01 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Sep  4 20:14:09 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e3813844

app-misc/ddctool: New package

ddctool primarily uses DDC/CI (Display Data Channel Command Interface)
to communicate with monitors implementing MCCS (Monitor Control Command
Set) over I2C. Normally, the video driver for the monitor exposes the
I2C channel as devices named /dev/i2c-n. Alternatively, there is initial
support for monitors (such as Apple displays) that implement MCCS using
a USB connection.

Package-Manager: portage-2.3.0

Signed-off-by: Jonathan Scruggs (j.scruggs <AT> gmail.com)
Closes: https://github.com/gentoo/gentoo/pull/2201
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 app-misc/ddctool/Manifest             |  1 +
 app-misc/ddctool/ddctool-0.4.2.ebuild | 79 +++++++++++++++++++++++++++++++++++
 app-misc/ddctool/metadata.xml         | 32 ++++++++++++++
 3 files changed, 112 insertions(+)

diff --git a/app-misc/ddctool/Manifest b/app-misc/ddctool/Manifest
new file mode 100644
index 00000000..d413b27
--- /dev/null
+++ b/app-misc/ddctool/Manifest
@@ -0,0 +1 @@
+DIST ddctool-0.4.2.tar.gz 739613 SHA256 
742465d74247c21a87247e3a386d0cbcf95808cde9fc88efae21f21c12ae9748 SHA512 
7b86ae475f877ff4e66a51e0612fe505479e88b6221c74e7951e10537a3d9720f0f7c82cbbaaa990aa6daef7e1aabf493f6eb59e908af61a8f1159b9d9ac16a8
 WHIRLPOOL 
4d32cf667c9a61790c5ac1a02338349b085d8922b3b89e28814b394bb975c74452dd7dd8d2f14561256d724ac10f032debab8b686700783beba4dbc00b3b4238

diff --git a/app-misc/ddctool/ddctool-0.4.2.ebuild 
b/app-misc/ddctool/ddctool-0.4.2.ebuild
new file mode 100644
index 00000000..e64c579
--- /dev/null
+++ b/app-misc/ddctool/ddctool-0.4.2.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit linux-info udev user
+
+DESCRIPTION="Program for querying and changing monitor settings"
+HOMEPAGE="http://www.ddctool.com/";
+
+MY_GIT_COMMIT="9712e9b54693872cd390476a7606fc8d13b66034"
+SRC_URI="https://github.com/rockowitz/ddctool/raw/${MY_GIT_COMMIT}/${P}.tar.gz";
+
+# Binary drivers need special instructions compared to the open source 
counterparts.
+# If a user switches drivers, they will need to set different use flags for
+# Xorg or Wayland or Mesa, so this will trigger the rebuild against
+# the different drivers.
+IUSE="udev-i2c udev-usb video_cards_fglrx video_cards_nvidia"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="x11-libs/libXrandr"
+DEPEND="video_cards_fglrx? ( x11-libs/amd-adl-sdk )
+       udev-usb? ( virtual/libusb )
+       virtual/udev
+       virtual/pkgconfig
+       ${RDEPEND}"
+
+pkg_pretend() {
+       # This program needs /dev/ic2-* devices to communicate with the monitor.
+       CONFIG_CHECK="~I2C_CHARDEV"
+       ERROR_I2C_CHARDEV="You must enable I2C_CHARDEV in your kernel to 
continue"
+       if use udev-usb; then
+               CONFIG_CHECK="~USB_HIDDEV"
+               ERROR_I2C_CHARDEV="USB_HIDDEV is needed to support USB monitors"
+       fi
+}
+
+src_configure() {
+       econf $(usex video_cards_fglrx "--with-adl-headers=/usr/include/ADL" "")
+}
+
+src_install() {
+       default
+       use udev-i2c && udev_dorules data/etc/udev/rules.d/45-ddctool-i2c.rules
+       use udev-usb && udev_dorules data/etc/udev/rules.d/45-ddctool-usb.rules
+}
+
+pkg_postinst() {
+       if use udev-i2c; then
+               enewgroup i2c
+               udev_reload
+               einfo "To allow non-root users access to the /dev/i2c-* 
devices, add those"
+               einfo "users to the i2c group: usermod -aG i2c user"
+               einfo "Restart the computer or reload the i2c-dev module to 
activate"
+               einfo "the new udev rule."
+               einfo "For more information read: 
http://www.ddctool.com/i2c_permissions/";
+       fi
+
+       if use udev-usb; then
+               enewgroup video
+               udev_reload
+               einfo "To allow non-root users access to the USB monitor, add 
those users"
+               einfo "to the video group: usermod -aG video user"
+               einfo "Restart the computer, reload the hiddev module, or 
replug the monitor"
+               einfo "to activate the new udev rule."
+               einfo "For more information read: http://www.ddctool.com/usb/";
+       fi
+
+       if use video_cards_nvidia; then
+               einfo 
"=================================================================="
+               einfo "Please read the following webpage on proper usage with 
the nVidia "
+               einfo "binary drivers, or it may not work: 
http://www.ddctool.com/nvidia/";
+               einfo 
"=================================================================="
+       fi
+}

diff --git a/app-misc/ddctool/metadata.xml b/app-misc/ddctool/metadata.xml
new file mode 100644
index 00000000..7b3b1c0
--- /dev/null
+++ b/app-misc/ddctool/metadata.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>j.scru...@gmail.com</email>
+               <name>Jonathan Scruggs</name>
+       </maintainer>
+       <maintainer type="project">
+               <email>proxy-ma...@gentoo.org</email>
+               <name>Proxy Maintainers</name>
+       </maintainer>
+       <longdescription>
+               ddctool primarily uses DDC/CI (Display Data Channel Command 
Interface)
+               to communicate with monitors implementing MCCS (Monitor Control 
Command
+               Set) over I2C. Normally, the video driver for the monitor 
exposes the
+               I2C channel as devices named /dev/i2c-n. Alternatively, there 
is initial
+               support for monitors (such as Apple displays) that implement 
MCCS using
+               a USB connection.
+       </longdescription>
+       <use>
+               <flag name="udev-i2c">
+                       Adds a udev rule to allow non-root users in the i2c 
group to
+                       access the /dev/i2c-* devices. Otherwise, only root 
will be
+                       able to use ddctool.
+               </flag>
+               <flag name="udev-usb">
+                       Adds a udev rule to allow non-root users in the video 
group to
+                       access USB connected monitors. Otherwise, only root 
will be
+                       able to use ddctool.
+               </flag>
+       </use>
+</pkgmetadata>

Reply via email to