diff options
Diffstat (limited to 'net-misc/modemmanager')
-rw-r--r-- | net-misc/modemmanager/Manifest | 1 | ||||
-rw-r--r-- | net-misc/modemmanager/files/01-org.freedesktop.ModemManager1.rules | 7 | ||||
-rw-r--r-- | net-misc/modemmanager/modemmanager-1.6.4.ebuild | 110 |
3 files changed, 118 insertions, 0 deletions
diff --git a/net-misc/modemmanager/Manifest b/net-misc/modemmanager/Manifest new file mode 100644 index 00000000..9a2f8ecd --- /dev/null +++ b/net-misc/modemmanager/Manifest @@ -0,0 +1 @@ +DIST ModemManager-1.6.4.tar.xz 1464276 SHA256 cdd5b4cb1e4d7643643a28ccbfc4bb354bfa9cb89a77ea160ebdf7926171c668 SHA512 6b31ce186adce445cec8964df751b6146a86271e6c14d860740ae66cfe296ac2ac4df21079357775ac5f7a5837c80a7f8db21a2680bc6b45802f9928565f1c73 WHIRLPOOL 3e3b16299ed5d9179e7d7bd38040d061df21fdde558032c8362110d098d3931f106988a0992a64936d969e008c83d699b85e71211bc0684d9bafb2dbc6b4baa9 diff --git a/net-misc/modemmanager/files/01-org.freedesktop.ModemManager1.rules b/net-misc/modemmanager/files/01-org.freedesktop.ModemManager1.rules new file mode 100644 index 00000000..7fca6472 --- /dev/null +++ b/net-misc/modemmanager/files/01-org.freedesktop.ModemManager1.rules @@ -0,0 +1,7 @@ +// Let users in plugdev group modify ModemManager +polkit.addRule(function(action, subject) { + if (/^org\.freedesktop\.ModemManager1\.(Device\.Control|Contacts|Messaging|Location)$/.test(action.id) && + subject.isInGroup("plugdev") && subject.active) { + return "yes"; + } +}); diff --git a/net-misc/modemmanager/modemmanager-1.6.4.ebuild b/net-misc/modemmanager/modemmanager-1.6.4.ebuild new file mode 100644 index 00000000..9c85e2ce --- /dev/null +++ b/net-misc/modemmanager/modemmanager-1.6.4.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GNOME2_LA_PUNT="yes" +VALA_USE_DEPEND="vapigen" + +inherit gnome2 user readme.gentoo-r1 systemd udev vala + +DESCRIPTION="Modem and mobile broadband management libraries" +HOMEPAGE="https://cgit.freedesktop.org/ModemManager/ModemManager/" +SRC_URI="https://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz" + +LICENSE="GPL-2+" +SLOT="0/1" # subslot = dbus interface version, i.e. N in org.freedesktop.ModemManager${N} +KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ppc64 ~sparc x86" + +IUSE="+introspection mbim policykit +qmi systemd vala" +REQUIRED_USE=" + vala? ( introspection ) +" + +RDEPEND=" + >=dev-libs/glib-2.36.0:2 + >=virtual/libgudev-230:= + introspection? ( >=dev-libs/gobject-introspection-0.9.6:= ) + mbim? ( >=net-libs/libmbim-1.14.0 ) + policykit? ( >=sys-auth/polkit-0.106[introspection] ) + qmi? ( >=net-libs/libqmi-1.16.0:= ) + systemd? ( >=sys-apps/systemd-183 ) +" +DEPEND="${RDEPEND} + dev-util/gdbus-codegen + >=dev-util/gtk-doc-am-1 + >=dev-util/intltool-0.40 + >=sys-devel/gettext-0.19.3 + virtual/pkgconfig + vala? ( $(vala_depend) ) +" + +S="${WORKDIR}/ModemManager-${PV}" + +src_prepare() { + DOC_CONTENTS="If your USB modem shows up as a Flash drive when you plug it in, + You should install sys-apps/usb_modeswitch which will automatically + switch it over to USB modem mode whenever you plug it in.\n" + + if use policykit; then + DOC_CONTENTS+="\nTo control your modem without needing to enter the root password, + add your user account to the 'plugdev' group." + fi + + use vala && vala_src_prepare + gnome2_src_prepare +} + +src_configure() { + gnome2_src_configure \ + --disable-more-warnings \ + --with-udev-base-dir="$(get_udevdir)" \ + --disable-static \ + --with-dist-version=${PVR} \ + $(use_enable introspection) \ + $(use_with mbim) \ + $(use_with policykit polkit) \ + $(usex systemd --with-suspend-resume=systemd --with-suspend-resume=no) \ + $(use_with qmi) \ + $(use_enable vala) +} + +src_install() { + gnome2_src_install + + # Allow users in plugdev group full control over their modem + if use policykit; then + insinto /usr/share/polkit-1/rules.d/ + doins "${FILESDIR}"/01-org.freedesktop.ModemManager1.rules + fi + + readme.gentoo_create_doc +} + +pkg_postinst() { + gnome2_pkg_postinst + + use policykit && enewgroup plugdev + + # The polkit rules file moved to /usr/share + old_rules="${EROOT}etc/polkit-1/rules.d/01-org.freedesktop.ModemManager.rules" + if [[ -f "${old_rules}" ]]; then + case "$(md5sum ${old_rules})" in + c5ff02532cb1da2c7545c3069e5d0992* | 5c50f0dc603c0a56e2851a5ce9389335* ) + # Automatically delete the old rules.d file if the user did not change it + elog + elog "Removing old ${old_rules} ..." + rm -f "${old_rules}" || eerror "Failed, please remove ${old_rules} manually" + ;; + * ) + elog "The ${old_rules}" + elog "file moved to /usr/share/polkit-1/rules.d/ in >=modemmanager-0.5.2.0-r2" + elog "If you edited ${old_rules}" + elog "without changing its behavior, you may want to remove it." + ;; + esac + fi + + systemd_reenable ModemManager.service + + readme.gentoo_print_elog +} |