summaryrefslogtreecommitdiff
path: root/net-misc/modemmanager
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/modemmanager')
-rw-r--r--net-misc/modemmanager/Manifest1
-rw-r--r--net-misc/modemmanager/files/01-org.freedesktop.ModemManager1.rules7
-rw-r--r--net-misc/modemmanager/modemmanager-1.6.4.ebuild110
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
+}