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>