aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/which
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/which')
-rw-r--r--meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch51
-rw-r--r--meta/recipes-extended/which/which-2.20/remove-declaration.patch16
-rw-r--r--meta/recipes-extended/which/which_2.18.bb40
-rw-r--r--meta/recipes-extended/which/which_2.20.bb35
4 files changed, 142 insertions, 0 deletions
diff --git a/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch b/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
new file mode 100644
index 0000000000..568d4233fd
--- /dev/null
+++ b/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
@@ -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;
diff --git a/meta/recipes-extended/which/which-2.20/remove-declaration.patch b/meta/recipes-extended/which/which-2.20/remove-declaration.patch
new file mode 100644
index 0000000000..09b81439b6
--- /dev/null
+++ b/meta/recipes-extended/which/which-2.20/remove-declaration.patch
@@ -0,0 +1,16 @@
+Remove the declaration of group_member since it has already been
+declared in unistd.h
+
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+
+diff -ruN which-2.20-orig/bash.c which-2.20/bash.c
+--- which-2.20-orig/bash.c 2010-08-03 12:59:08.897088878 +0800
++++ which-2.20/bash.c 2010-08-03 13:17:23.406097212 +0800
+@@ -46,7 +46,6 @@
+ * - changed all occurences of 'gid_t' into 'GID_T'.
+ * - exported functions needed in which.c
+ */
+-static int group_member (GID_T gid);
+ static char* extract_colon_unit (char const* string, int* p_index);
+
+ /*===========================================================================
diff --git a/meta/recipes-extended/which/which_2.18.bb b/meta/recipes-extended/which/which_2.18.bb
new file mode 100644
index 0000000000..b177949788
--- /dev/null
+++ b/meta/recipes-extended/which/which_2.18.bb
@@ -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
+}
+
diff --git a/meta/recipes-extended/which/which_2.20.bb b/meta/recipes-extended/which/which_2.20.bb
new file mode 100644
index 0000000000..b7730de3b3
--- /dev/null
+++ b/meta/recipes-extended/which/which_2.20.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "which - shows the full path of (shell) commands."
+SECTION = "libs"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\
+ file://which.c;beginline=1;endline=17;md5=a9963693af2272e7a8df6f231164e7a2"
+HOMEPAGE = "http://ftp.gnu.org/gnu/which/"
+DEPENDS = "cwautomacros-native"
+
+inherit autotools
+
+PR = "r0"
+
+SRC_URI = "http://ftp.gnu.org/gnu/which/which-${PV}.tar.gz \
+ file://remove-declaration.patch"
+
+do_configure_prepend() {
+ sed -i -e 's%@ACLOCAL_CWFLAGS@%-I ${STAGING_DIR_NATIVE}/usr/share/cwautomacros/m4%g' ${S}/Makefile.am ${S}/tilde/Makefile.am
+}
+
+do_install() {
+ autotools_do_install
+ 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
+}