Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | SUMMARY = "The basic file, shell and text manipulation utilities" |
| 2 | DESCRIPTION = "The GNU Core Utilities provide the basic file, shell and text \ |
| 3 | manipulation utilities. These are the core utilities which are expected to exist on \ |
| 4 | every system." |
| 5 | |
| 6 | HOMEPAGE = "http://www.gnu.org/software/coreutils/" |
| 7 | BUGTRACKER = "http://debbugs.gnu.org/coreutils" |
| 8 | LICENSE = "GPLv2+" |
| 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ |
| 10 | file://src/ls.c;beginline=4;endline=16;md5=15ed60f67b1db5fedd5dbc37cf8a9543" |
| 11 | PR = "r5" |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 12 | DEPENDS = "virtual/libiconv" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 13 | |
| 14 | inherit autotools gettext texinfo |
| 15 | |
| 16 | SRC_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 Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 26 | file://coreutils-fix-texinfo.patch \ |
| 27 | file://fix_for_manpage_building.patch \ |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 28 | file://loadavg.patch \ |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 29 | " |
| 30 | |
| 31 | SRC_URI[md5sum] = "c9607d8495f16e98906e7ed2d9751a06" |
| 32 | SRC_URI[sha256sum] = "89c2895ad157de50e53298b22d91db116ee4e1dd3fdf4019260254e2e31497b0" |
| 33 | |
| 34 | EXTRA_OECONF += "ac_cv_func_getgroups_works=yes \ |
| 35 | ac_cv_func_strcoll_works=yes" |
| 36 | |
| 37 | # acl is not a default feature |
| 38 | # |
| 39 | PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)}" |
| 40 | |
| 41 | # with, without, depends, rdepends |
| 42 | # |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 43 | PACKAGECONFIG[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 Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 44 | |
| 45 | |
| 46 | # [ gets a special treatment and is not included in this |
| 47 | bindir_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 |
| 55 | base_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 | |
| 58 | sbindir_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. |
| 64 | acpaths = "-I ./m4" |
| 65 | |
| 66 | do_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 | |
| 85 | inherit update-alternatives |
| 86 | |
| 87 | ALTERNATIVE_PRIORITY = "100" |
| 88 | |
| 89 | ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs}" |
| 90 | |
| 91 | ALTERNATIVE_PRIORITY[uptime] = "10" |
| 92 | ALTERNATIVE_PRIORITY[hostname] = "10" |
| 93 | |
| 94 | ALTERNATIVE_LINK_NAME[lbracket] = "${bindir}/[" |
| 95 | ALTERNATIVE_TARGET[lbracket] = "${bindir}/lbracket.${BPN}" |
| 96 | |
| 97 | python __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 | } |