which: add GPLv2 version 2.18

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
This commit is contained in:
Dexuan Cui
2010-08-20 20:40:23 +08:00
committed by Richard Purdie
parent 03df313715
commit 9f03fdd5c7
2 changed files with 91 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
# glibc also implements the function group_member. To avoid name conflict,
# here let us append a "_" to which's version.
#
# Signed-off-by Dexuan Cui <dexuan.cui@intel.com>, 2010-08-20
# (this patch is licensed under GPLv2)
--- which-2.18/bash.c
+++ which-2.18/bash.c
@@ -45,7 +45,12 @@
* - changed all occurences of 'gid_t' into 'GID_T'.
* - exported functions needed in which.c
*/
-static int group_member (GID_T gid);
+
+/*
+ * glibc also implements the function group_member. To avoid name conflict,
+ * here let us append a "_" to which's version.
+ */
+static int _group_member (GID_T gid);
static char* extract_colon_unit (char const* string, int *p_index);
/*===========================================================================
@@ -200,8 +205,8 @@
/* From bash-2.05b / general.c / line 805 */
/* Return non-zero if GID is one that we have in our groups list. */
-int
-group_member (GID_T gid)
+static int
+_group_member (GID_T gid)
{
#if defined (HAVE_GETGROUPS)
register int i;
@@ -290,7 +295,7 @@
return (X_BIT (u_mode_bits (finfo.st_mode))) ? (FS_EXISTS | FS_EXECABLE) : FS_EXISTS;
/* Otherwise, if we are in the owning group, the group permissions apply. */
- if (group_member (finfo.st_gid))
+ if (_group_member (finfo.st_gid))
return (X_BIT (g_mode_bits (finfo.st_mode))) ? (FS_EXISTS | FS_EXECABLE) : FS_EXISTS;
/* Otherwise, if we are in the other group, the other permissions apply. */
@@ -331,7 +336,7 @@
/* Given a string containing units of information separated by colons,
return the next one pointed to by (P_INDEX), or NULL if there are no more.
Advance (P_INDEX) to the character after the colon. */
-char*
+static char*
extract_colon_unit (char const* string, int* p_index)
{
int i, start, len;

View File

@@ -0,0 +1,40 @@
DESCRIPTION = "Which is a utility that prints out the full path of the \
executables that bash(1) would execute when the passed \
program names would have been entered on the shell prompt. \
It does this by using the exact same algorithm as bash."
HOMEPAGE = "http://www.xs4all.nl/~carlo17/which/"
BUGTRACKER = "n/a"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
PR = "r0"
SRC_URI = "http://www.xs4all.nl/~carlo17/which/which-${PV}.tar.gz \
file://fix_name_conflict_group_member.patch"
DEPENDS = "cwautomacros-native"
inherit autotools
do_configure_prepend() {
OLD="@ACLOCAL_CWFLAGS@"
NEW="-I ${STAGING_DIR_NATIVE}/${datadir}/cwautomacros/m4"
sed -i "s#${OLD}#${NEW}#g" `grep -rl ${OLD} ${S}`
}
do_install_append() {
mv ${D}/${bindir}/which ${D}/${bindir}/which.${PN}
}
pkg_postinst_${PN}() {
if [ "${PN}" = "${BPN}" ] ; then
update-alternatives --install ${bindir}/which which which.${PN} 100
fi
}
pkg_prerm_${PN}() {
if [ "${PN}" = "${BPN}" ] ; then
update-alternatives --remove which which.${PN}
fi
}