blob: 9ce717d1aae071d6d65f701ec175487a676a43cf [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001SUMMARY = "The basic file, shell and text manipulation utilities"
2DESCRIPTION = "The GNU Core Utilities provide the basic file, shell and text \
3manipulation utilities. These are the core utilities which are expected to exist on \
4every system."
5
6HOMEPAGE = "http://www.gnu.org/software/coreutils/"
7BUGTRACKER = "http://debbugs.gnu.org/coreutils"
8LICENSE = "GPLv2+"
9LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
10 file://src/ls.c;beginline=4;endline=16;md5=15ed60f67b1db5fedd5dbc37cf8a9543"
11PR = "r5"
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012DEPENDS = "virtual/libiconv"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013
14inherit autotools gettext texinfo
15
16SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.bz2 \
17 file://gnulib_m4.patch \
18 file://futimens.patch \
19 file://coreutils-ls-x.patch \
20 file://coreutils-6.9-cp-i-u.patch \
21 file://coreutils-i18n.patch \
22 file://coreutils-overflow.patch \
23 file://coreutils-fix-install.patch \
24 file://man-touch.patch \
25 file://coreutils_fix_for_automake-1.12.patch \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050026 file://coreutils-fix-texinfo.patch \
27 file://fix_for_manpage_building.patch \
Patrick Williamsf1e5d692016-03-30 15:21:19 -050028 file://loadavg.patch \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050029 "
30
31SRC_URI[md5sum] = "c9607d8495f16e98906e7ed2d9751a06"
32SRC_URI[sha256sum] = "89c2895ad157de50e53298b22d91db116ee4e1dd3fdf4019260254e2e31497b0"
33
34EXTRA_OECONF += "ac_cv_func_getgroups_works=yes \
35 ac_cv_func_strcoll_works=yes"
36
37# acl is not a default feature
38#
39PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)}"
40
41# with, without, depends, rdepends
42#
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050043PACKAGECONFIG[acl] = "ac_cv_header_sys_acl_h=yes ac_cv_header_acl_libacl_h=yes ac_cv_search_acl_get_file=-lacl,ac_cv_header_sys_acl_h=no ac_cv_header_acl_libacl_h=no ac_cv_search_acl_get_file=,acl,"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050044
45
46# [ gets a special treatment and is not included in this
47bindir_progs = "base64 basename cksum comm csplit cut dir dircolors dirname du \
48 env expand expr factor fmt fold groups head hostid id install \
49 join link logname md5sum mkfifo nice nl nohup od paste pathchk \
50 pinky pr printenv printf ptx readlink seq sha1sum sha224sum sha256sum \
51 sha384sum sha512sum shred shuf sort split sum tac tail tee test \
52 tr tsort tty unexpand uniq unlink users vdir wc who whoami yes uptime"
53
54# hostname gets a special treatment and is not included in this
55base_bindir_progs = "cat chgrp chmod chown cp date dd echo false kill ln ls mkdir \
56 mknod mv pwd rm rmdir sleep stty sync touch true uname hostname stat"
57
58sbindir_progs= "chroot"
59
60# Let aclocal use the relative path for the m4 file rather than the
61# absolute since coreutils has a lot of m4 files, otherwise there might
62# be an "Argument list too long" error when it is built in a long/deep
63# directory.
64acpaths = "-I ./m4"
65
66do_install() {
67 autotools_do_install
68
69 install -d ${D}${base_bindir}
70 [ "${bindir}" != "${base_bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i; done
71
72 install -d ${D}${sbindir}
73 [ "${bindir}" != "${sbindir}" ] && for i in ${sbindir_progs}; do mv ${D}${bindir}/$i ${D}${sbindir}/$i; done
74
75 # [ requires special handling because [.coreutils will cause the sed stuff
76 # in update-alternatives to fail, therefore use lbracket - the name used
77 # for the actual source file.
78 mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN}
79
80 # Newer versions of coreutils do not include su, to mimic this behavior
81 # we simply remove it.
82 rm -f ${D}${bindir}/su
83}
84
85inherit update-alternatives
86
87ALTERNATIVE_PRIORITY = "100"
88
89ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs}"
90
91ALTERNATIVE_PRIORITY[uptime] = "10"
92ALTERNATIVE_PRIORITY[hostname] = "10"
93
94ALTERNATIVE_LINK_NAME[lbracket] = "${bindir}/["
95ALTERNATIVE_TARGET[lbracket] = "${bindir}/lbracket.${BPN}"
96
97python __anonymous() {
98 for prog in d.getVar('base_bindir_progs', True).split():
99 d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir', True), prog))
100
101 for prog in d.getVar('sbindir_progs', True).split():
102 d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('sbindir', True), prog))
103}