public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Anthony G. Basile" <blueness@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/hardened-dev:musl commit in: sys-libs/libutempter/, sys-libs/libutempter/files/
Date: Fri, 20 Jun 2014 20:41:21 +0000 (UTC)	[thread overview]
Message-ID: <1403296900.c94180900d99e4deb4d47d21e92224e05d80be0f.blueness@gentoo> (raw)

commit:     c94180900d99e4deb4d47d21e92224e05d80be0f
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 20 20:41:40 2014 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Jun 20 20:41:40 2014 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-dev.git;a=commit;h=c9418090

sys-libs/libutempter: remove assumption that libc = glibc

Package-Manager: portage-2.2.8-r1
Manifest-Sign-Key: 0xF52D4BBA

---
 .../libutempter-remove-glibc-assumption.patch      | 81 ++++++++++++++++++++++
 sys-libs/libutempter/libutempter-1.1.6-r99.ebuild  | 72 +++++++++++++++++++
 sys-libs/libutempter/metadata.xml                  |  6 ++
 3 files changed, 159 insertions(+)

diff --git a/sys-libs/libutempter/files/libutempter-remove-glibc-assumption.patch b/sys-libs/libutempter/files/libutempter-remove-glibc-assumption.patch
new file mode 100644
index 0000000..6ed9335
--- /dev/null
+++ b/sys-libs/libutempter/files/libutempter-remove-glibc-assumption.patch
@@ -0,0 +1,81 @@
+diff -Naur libutempter-1.1.6.orig/utempter.c libutempter-1.1.6/utempter.c
+--- libutempter-1.1.6.orig/utempter.c	2010-11-04 13:14:53.000000000 -0400
++++ libutempter-1.1.6/utempter.c	2014-06-20 16:37:09.762403323 -0400
+@@ -34,13 +34,7 @@
+ #include <sys/stat.h>
+ #include <utmp.h>
+ 
+-#ifdef __GLIBC__
+ # include <pty.h>
+-#elif defined(__FreeBSD__)
+-# include <libutil.h>
+-#else
+-# error Unsupported platform
+-#endif /* __GLIBC__ || __FreeBSD__ */
+ 
+ #define	DEV_PREFIX	"/dev/"
+ #define	DEV_PREFIX_LEN	(sizeof(DEV_PREFIX)-1)
+@@ -106,17 +100,12 @@
+ 
+ static int
+ write_uwtmp_record(const char *user, const char *term, const char *host,
+-#ifdef __GLIBC__
+ 		   pid_t pid,
+-#endif
+ 		   int add)
+ {
+ 	struct utmp ut;
+ 	struct timeval tv;
+-
+-#ifdef __GLIBC__
+ 	size_t offset;
+-#endif
+ 
+ 	memset(&ut, 0, sizeof(ut));
+ 
+@@ -128,8 +117,6 @@
+ 	if (host)
+ 		strncpy(ut.ut_host, host, sizeof(ut.ut_host));
+ 
+-#ifdef __GLIBC__
+-
+ 	offset = (strlen(term) <= sizeof(ut.ut_id)) ? 0 :
+ 			strlen(term) - sizeof(ut.ut_id);
+ 	strncpy(ut.ut_id, term + offset, sizeof(ut.ut_id));
+@@ -156,27 +143,6 @@
+ 
+ 	(void) updwtmp(_PATH_WTMP, &ut);
+ 
+-#elif defined(__FreeBSD__)
+-
+-	ut.ut_time = tv.tv_sec;
+-
+-	if (add)
+-	{
+-		login(&ut);
+-	} else
+-	{
+-		if (logout(term) != 1)
+-		{
+-#ifdef	UTEMPTER_DEBUG
+-			fprintf(stderr, "utempter: logout: %s\n",
+-				strerror(errno));
+-#endif
+-			exit(EXIT_FAILURE);
+-		}
+-	}
+-
+-#endif /* __GLIBC__ || __FreeBSD__ */
+-
+ #ifdef	UTEMPTER_DEBUG
+ 	fprintf(stderr,
+ 		"utempter: DEBUG: utmp/wtmp record %s for terminal '%s'\n",
+@@ -255,8 +221,6 @@
+ 	validate_device(device);
+ 
+ 	return write_uwtmp_record(pw->pw_name, device + DEV_PREFIX_LEN, host,
+-#ifdef __GLIBC__
+ 				  pid,
+-#endif
+ 				  add);
+ }

diff --git a/sys-libs/libutempter/libutempter-1.1.6-r99.ebuild b/sys-libs/libutempter/libutempter-1.1.6-r99.ebuild
new file mode 100644
index 0000000..65dcc7c
--- /dev/null
+++ b/sys-libs/libutempter/libutempter-1.1.6-r99.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libutempter/libutempter-1.1.6-r2.ebuild,v 1.1 2014/05/06 12:52:04 chainsaw Exp $
+
+EAPI="4"
+
+inherit eutils user multilib flag-o-matic
+
+DESCRIPTION="Library that allows non-privileged apps to write utmp (login) info, which need root access"
+HOMEPAGE="http://altlinux.org/index.php?module=sisyphus&package=libutempter"
+SRC_URI="ftp://ftp.altlinux.org/pub/people/ldv/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="static-libs elibc_FreeBSD"
+
+RDEPEND="!sys-apps/utempter"
+
+pkg_setup() {
+	enewgroup utmp 406
+}
+
+src_prepare() {
+	local args=(
+		-e "/^libdir /s:/usr/lib:${EPREFIX}/usr/$(get_libdir):"
+		-e '/^libexecdir /s:=.*:= $(libdir)/misc:'
+		-e '/^CFLAGS = $(RPM_OPT_FLAGS)/d'
+		-e 's:,-stats::'
+		-e "/^includedir /s:/usr/include:${EPREFIX}/usr/include:"
+		-e "/^mandir /s:=.*:= ${EPREFIX}/usr/share/man:"
+	)
+	use static-libs || args+=(
+			-e '/^STATICLIB/d'
+			-e '/INSTALL.*STATICLIB/d'
+		)
+	sed -i "${args[@]}" Makefile || die
+
+	epatch "${FILESDIR}"/${PN}-remove-glibc-assumption.patch
+}
+
+src_configure() {
+	use elibc_FreeBSD && append-libs -lutil
+	tc-export AR CC
+}
+
+src_compile() {
+	emake LDLIBS="${LIBS}"
+}
+
+src_install() {
+	default
+
+	if ! use prefix ; then
+		fowners root:utmp /usr/$(get_libdir)/misc/utempter/utempter
+		fperms 2755 /usr/$(get_libdir)/misc/utempter/utempter
+	fi
+	dodir /usr/sbin
+	dosym ../$(get_libdir)/misc/utempter/utempter /usr/sbin/utempter
+}
+
+pkg_postinst() {
+	if [ -f "${EROOT}/var/log/wtmp" ] ; then
+		chown root:utmp "${EROOT}/var/log/wtmp"
+		chmod 664 "${EROOT}/var/log/wtmp"
+	fi
+
+	if [ -f "${EROOT}/var/run/utmp" ] ; then
+		chown root:utmp "${EROOT}/var/run/utmp"
+		chmod 664 "${EROOT}/var/run/utmp"
+	fi
+}

diff --git a/sys-libs/libutempter/metadata.xml b/sys-libs/libutempter/metadata.xml
new file mode 100644
index 0000000..5aafc10
--- /dev/null
+++ b/sys-libs/libutempter/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<herd>base-system</herd>
+	<herd>x11</herd>
+</pkgmetadata>


                 reply	other threads:[~2014-06-20 20:41 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1403296900.c94180900d99e4deb4d47d21e92224e05d80be0f.blueness@gentoo \
    --to=blueness@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox