From 6cd5bf391e8e5a5c1ff028394339107479db8abf Mon Sep 17 00:00:00 2001 From: Jonathan Callen Date: Thu, 27 Aug 2015 23:46:46 -0400 Subject: [PATCH] sys-libs/libudev-compat: New package This installs a libudev.so.0 that wraps libudev.so.1 and provides the few functions that were removed with the SONAME bump. This is only needed for some older binary-only software, including Steam. Package-Manager: portage-2.2.20.1 --- sys-libs/libudev-compat/files/udev_old.c | 37 ++++++++++++++ .../libudev-compat/libudev-compat-186.ebuild | 48 +++++++++++++++++++ sys-libs/libudev-compat/metadata.xml | 8 ++++ 3 files changed, 93 insertions(+) create mode 100644 sys-libs/libudev-compat/files/udev_old.c create mode 100644 sys-libs/libudev-compat/libudev-compat-186.ebuild create mode 100644 sys-libs/libudev-compat/metadata.xml diff --git a/sys-libs/libudev-compat/files/udev_old.c b/sys-libs/libudev-compat/files/udev_old.c new file mode 100644 index 000000000000..584644ad0064 --- /dev/null +++ b/sys-libs/libudev-compat/files/udev_old.c @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2015 Jonathan Callen + * Copyright (C) 2008-2010 Kay Sievers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + */ + +#include +#include + +void *udev_monitor_new_from_socket(void *udev, const void *path) { + errno = ENOSYS; + return NULL; +} + +void *udev_queue_get_failed_list_entry(void *udev_queue) { + errno = ENOSYS; + return NULL; +} + +const char *udev_get_sys_path(void *udev) { + if (!udev) return NULL; + return "/sys"; +} + +const char *udev_get_dev_path(void *udev) { + if (!udev) return NULL; + return "/dev"; +} + +const char *udev_get_run_path(void *udev) { + if (!udev) return NULL; + return "/run/udev"; +} diff --git a/sys-libs/libudev-compat/libudev-compat-186.ebuild b/sys-libs/libudev-compat/libudev-compat-186.ebuild new file mode 100644 index 000000000000..3a725c6eb3ed --- /dev/null +++ b/sys-libs/libudev-compat/libudev-compat-186.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib multilib-minimal toolchain-funcs + +DESCRIPTION="Wrapper around libudev.so.1 for packages needing the old libudev.so.0" +HOMEPAGE="http://gentoo.org/" +SRC_URI="" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +DEPEND="virtual/libudev:0/1[${MULTILIB_USEDEP}]" +RDEPEND="${DEPEND}" + +src_unpack() { + mkdir "${S}" || die + cp "${FILESDIR}"/udev_old.c "${S}" || die +} + +multilib_src_configure() { :; } + +echo_and_run() { + echo "$@" + "$@" +} + +multilib_src_compile() { + # Note: --no-as-needed is used explictly here to ensure that libudev.so.1 + # is pulled in, even though nothing in udev_old.c otherwise requires it + echo_and_run $(tc-getCC) \ + ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \ + -fpic -shared \ + -Wl,-soname,libudev.so.0 \ + -o libudev.so.0 \ + "${S}"/udev_old.c \ + -Wl,--no-as-needed \ + -ludev || die +} + +multilib_src_install() { + dolib.so libudev.so.0 +} diff --git a/sys-libs/libudev-compat/metadata.xml b/sys-libs/libudev-compat/metadata.xml new file mode 100644 index 000000000000..311eca758a15 --- /dev/null +++ b/sys-libs/libudev-compat/metadata.xml @@ -0,0 +1,8 @@ + + + + + jcallen@gentoo.org + Jonathan Callen + + -- 2.26.2