On Nov 25, 2007 10:09 PM, Dan McGee <dan@archlinux.org> wrote:
To our bash maintainers- it would be cool if you could rebuild bash sometime with these changes, as adding the provides=('sh') line will really help me down the road when I am trying to make Arch a bit more shell-agnostic. I have another patch coming shortly (to the ML) that will make a lot of base packages depend on sh instead of bash when that is possible.
Of course, the rebuild can wait until the next patch level bump, but just know that these changes have been made.
And here is the patch I speak of. This is against the current CVS core HEAD checkout. I've went through each package that depends on bash, and tried to figure out whether the dependency could be switched to sh, should stay as bash, or be removed all together. PLEASE give me feedback so I don't go blindly breaking things. I've posted my logic as well as a few other comments below. If you want to try things out, I have a statically built dash package (against klibc, so it is super light) here <http://www.archlinux.org/~dan/dash-changes/>. I would love to get this in the core repo if there are no objections. I would eventually like to have an Arch system that doesn't go to hell when the /bin/sh symlink is changed to dash, but I'm going to need help from other devs and users when doing this. -Dan automake -> sh autoconf -> sh gzip -> sh tar -> nothing? (no install) initscripts -> needs bash util-linux-ng -> nothing? (no install) coreutils -> nothing? (no install) man -> sh hwdetect -> needs fixing, #!/bin/sh line is a lie (see below) less -> nothing? (no install) grep -> nothing? (no install) tcp_wrappers -> nothing? (no install) filesystem -> sh? looks like only install script needs it findutils -> nothing? (no install) e2fsprogs -> nothing? (no install) perl -> sh? looks like only install script needs it pacman -> needs bash (makepkg) glibc -> sh? just install script gawk -> sh m4 -> nothing? (no install) flex -> sh make -> nothing? (no install) libtool -> sh capi4k-utils -> don't know, don't use it (can someone check?) wlan-ng26-utils -> don't know, don't use it (can someone check?) $ hwdetect [: 57: ==: unexpected operator [: 58: ==: unexpected operator [: 59: ==: unexpected operator [: 70: ==: unexpected operator [: 126: ==: unexpected operator [: 166: ==: unexpected operator This can be fixed by changing all occurances of "==" to a single "=", and the rm statement at the end must be expanded as {} expansion is a bash thing. Index: base/coreutils/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/coreutils/PKGBUILD,v retrieving revision 1.29 diff -u -r1.29 PKGBUILD --- base/coreutils/PKGBUILD 15 Nov 2007 23:53:13 -0000 1.29 +++ base/coreutils/PKGBUILD 26 Nov 2007 04:31:28 -0000 @@ -8,7 +8,7 @@ license=('GPL') url="http://www.gnu.org/software/coreutils" groups=('base') -depends=('bash' 'glibc' 'shadow>=4.0.4.1-3' 'pam' 'acl') +depends=('glibc' 'shadow>=4.0.4.1-3' 'pam' 'acl') replaces=('sh-utils' 'fileutils' 'textutils') backup=('etc/pam.d/su') options=('!makeflags') Index: base/e2fsprogs/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/e2fsprogs/PKGBUILD,v retrieving revision 1.34 diff -u -r1.34 PKGBUILD --- base/e2fsprogs/PKGBUILD 15 Nov 2007 23:53:14 -0000 1.34 +++ base/e2fsprogs/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -8,7 +8,7 @@ license=('GPL' 'LGPL' 'MIT') url="http://e2fsprogs.sourceforge.net" groups=('base') -depends=('glibc' 'bash') +depends=('glibc') makedepends=('bc') source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz Makefile-fsck.static.patch) Index: base/filesystem/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/filesystem/PKGBUILD,v retrieving revision 1.90 diff -u -r1.90 PKGBUILD --- base/filesystem/PKGBUILD 15 Nov 2007 23:53:14 -0000 1.90 +++ base/filesystem/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -10,7 +10,7 @@ url="http://www.archlinux.org" groups=('base') install=filesystem.install -depends=('bash' 'coreutils') +depends=('sh' 'coreutils') backup=(etc/fstab etc/crypttab etc/group etc/hosts etc/ld.so.conf etc/passwd \ etc/shadow etc/gshadow etc/resolv.conf etc/motd etc/nsswitch.conf \ etc/shells etc/host.conf etc/securetty) Index: base/findutils/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/findutils/PKGBUILD,v retrieving revision 1.35 diff -u -r1.35 PKGBUILD --- base/findutils/PKGBUILD 15 Nov 2007 23:53:14 -0000 1.35 +++ base/findutils/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -7,7 +7,7 @@ arch=(i686 x86_64) license=('GPL') groups=('base') -depends=('glibc' 'bash') +depends=('glibc') url="http://www.gnu.org/software/findutils" source=(ftp://ftp.gnu.org/pub/gnu/findutils/findutils-$pkgver.tar.gz) md5sums=('a0e31a0f18a49709bf5a449867c8049a') Index: base/gawk/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/gawk/PKGBUILD,v retrieving revision 1.8 diff -u -r1.8 PKGBUILD --- base/gawk/PKGBUILD 15 Nov 2007 23:53:15 -0000 1.8 +++ base/gawk/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -12,7 +12,7 @@ provides=('awk') replaces=('mawk') source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz) -depends=('bash' 'glibc') +depends=('sh' 'glibc') md5sums=('b237751aef53c9ead9644e376bc53386') build() { Index: base/glibc/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/glibc/PKGBUILD,v retrieving revision 1.78 diff -u -r1.78 PKGBUILD --- base/glibc/PKGBUILD 15 Nov 2007 23:53:15 -0000 1.78 +++ base/glibc/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -10,7 +10,7 @@ license=('GPL' 'LGPL') url="http://www.gnu.org/software/libc" groups=('base') -depends=('bash' 'kernel-headers>=2.6.23.1' 'tzdata') +depends=('sh' 'kernel-headers>=2.6.23.1' 'tzdata') makedepends=('gcc>=4.2.2-2') replaces=('glibc-xen') source=(http://ftp.gnu.org/gnu/glibc/glibc-${pkgver}.tar.bz2 Index: base/grep/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/grep/PKGBUILD,v retrieving revision 1.23 diff -u -r1.23 PKGBUILD --- base/grep/PKGBUILD 15 Nov 2007 23:53:16 -0000 1.23 +++ base/grep/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -8,7 +8,7 @@ license=('GPL') url="http://www.gnu.org/software/grep/grep.html" groups=('base') -depends=('glibc' 'bash' 'pcre') +depends=('glibc' 'pcre') makedepends=('texinfo>=4.8a') source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz # patches from fedora cvs Index: base/gzip/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/gzip/PKGBUILD,v retrieving revision 1.22 diff -u -r1.22 PKGBUILD --- base/gzip/PKGBUILD 15 Nov 2007 23:53:16 -0000 1.22 +++ base/gzip/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -8,7 +8,7 @@ url="http://www.gzip.org" license=('GPL') groups=('base') -depends=('glibc' 'bash') +depends=('glibc' 'sh') makedepends=('patch') source=(ftp://ftp.gnu.org/pub/gnu/gzip/gzip-$pkgver.tar.gz gzip-fixutimens.patch) Index: base/less/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/less/PKGBUILD,v retrieving revision 1.28 diff -u -r1.28 PKGBUILD --- base/less/PKGBUILD 25 Nov 2007 15:42:17 -0000 1.28 +++ base/less/PKGBUILD 26 Nov 2007 04:31:29 -0000 @@ -8,7 +8,7 @@ arch=('i686' 'x86_64') url="http://www.greenwoodsoftware.com/less" groups=('base') -depends=('ncurses' 'bash' 'file') +depends=('ncurses' 'file') source=(http://www.greenwoodsoftware.com/$pkgname/$pkgname-$pkgver.tar.gz) md5sums=('da84d9378b8daf7ef1a95d13611d3294') Index: base/man/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/man/PKGBUILD,v retrieving revision 1.37 diff -u -r1.37 PKGBUILD --- base/man/PKGBUILD 16 Nov 2007 00:02:34 -0000 1.37 +++ base/man/PKGBUILD 26 Nov 2007 04:31:30 -0000 @@ -8,7 +8,7 @@ url="http://primates.ximian.com/~flucifredi/man/" license=('GPL') groups=('base') -depends=('groff' 'less' 'gzip' 'awk' 'coreutils' 'bash') +depends=('groff' 'less' 'gzip' 'awk' 'coreutils' 'sh') backup=(etc/man.conf) source=(http://primates.ximian.com/~flucifredi/man/man-$pkgver.tar.gz \ whatis.cron.daily man-troff.patch) Index: base/perl/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/perl/PKGBUILD,v retrieving revision 1.52 diff -u -r1.52 PKGBUILD --- base/perl/PKGBUILD 7 Nov 2007 01:43:18 -0000 1.52 +++ base/perl/PKGBUILD 26 Nov 2007 04:31:30 -0000 @@ -8,7 +8,7 @@ license=('GPL' 'PerlArtistic') url="http://www.perl.org" groups=('base') -depends=('gdbm' 'db>=4.6' 'bash' 'coreutils' 'glibc') +depends=('gdbm' 'db>=4.6' 'coreutils' 'glibc' 'sh') source=(http://www.perl.com/CPAN/src/perl-$pkgver.tar.gz http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/DB_File-1.814.tar.gz http://search.cpan.org/CPAN/authors/id/S/SA/SAPER/Sys-Syslog-0.10.tar.gz Index: base/tar/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/tar/PKGBUILD,v retrieving revision 1.25 diff -u -r1.25 PKGBUILD --- base/tar/PKGBUILD 16 Nov 2007 00:02:38 -0000 1.25 +++ base/tar/PKGBUILD 26 Nov 2007 04:31:30 -0000 @@ -8,7 +8,7 @@ license=('GPL') groups=('base') url="http://www.gnu.org/software/tar/tar.html" -depends=('glibc' 'bash') +depends=('glibc') source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.bz2 tar.1) md5sums=('bcc2e19b19823b9ab68c94586067a792' 'a5f8c5da7a9465ea1978145f3ef0610c') Index: base/tcp_wrappers/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/tcp_wrappers/PKGBUILD,v retrieving revision 1.17 diff -u -r1.17 PKGBUILD --- base/tcp_wrappers/PKGBUILD 16 Nov 2007 00:02:38 -0000 1.17 +++ base/tcp_wrappers/PKGBUILD 26 Nov 2007 04:31:30 -0000 @@ -9,7 +9,7 @@ license=('custom') groups=('base') backup=(etc/hosts.allow etc/hosts.deny) -depends=('bash' 'glibc') +depends=('glibc') source=(ftp://ftp.porcupine.org/pub/security/${pkgname}_$pkgver.tar.gz \ hosts.allow hosts.deny try-from.8 safe_finger.8 gcc340.patch \ shared_lib_plus_plus-1.patch) Index: base/util-linux-ng/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/base/util-linux-ng/PKGBUILD,v retrieving revision 1.3 diff -u -r1.3 PKGBUILD --- base/util-linux-ng/PKGBUILD 16 Nov 2007 00:02:39 -0000 1.3 +++ base/util-linux-ng/PKGBUILD 26 Nov 2007 04:31:31 -0000 @@ -6,7 +6,7 @@ pkgdesc="Miscellaneous system utilities for Linux" arch=('i686' 'x86_64') groups=('base') -depends=('bash' 'ncurses' 'zlib' 'e2fsprogs') +depends=('ncurses' 'zlib' 'e2fsprogs') replaces=('linux32' 'util-linux') conflicts=('linux32' 'util-linux') provides=('linux32' 'util-linux') Index: devel/autoconf/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/devel/autoconf/PKGBUILD,v retrieving revision 1.26 diff -u -r1.26 PKGBUILD --- devel/autoconf/PKGBUILD 15 Nov 2007 23:53:12 -0000 1.26 +++ devel/autoconf/PKGBUILD 26 Nov 2007 04:31:31 -0000 @@ -8,7 +8,7 @@ license=('GPL') url="http://www.gnu.org/software/autoconf" groups=('base-devel') -depends=('awk' 'm4' 'diffutils' 'bash') +depends=('awk' 'm4' 'diffutils' 'sh') options=('!makeflags') source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz) md5sums=('51f472f71a6a04850a0f0126bf594cdb') Index: devel/automake/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/devel/automake/PKGBUILD,v retrieving revision 1.42 diff -u -r1.42 PKGBUILD --- devel/automake/PKGBUILD 15 Nov 2007 23:53:12 -0000 1.42 +++ devel/automake/PKGBUILD 26 Nov 2007 04:31:31 -0000 @@ -8,7 +8,7 @@ license=('GPL') url="http://www.gnu.org/software/automake" groups=('base-devel') -depends=('perl' 'bash') +depends=('perl' 'sh') source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz) md5sums=('452163c32d061c53a7acc0e8c1b689ba') Index: devel/flex/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/devel/flex/PKGBUILD,v retrieving revision 1.20 diff -u -r1.20 PKGBUILD --- devel/flex/PKGBUILD 15 Nov 2007 23:53:14 -0000 1.20 +++ devel/flex/PKGBUILD 26 Nov 2007 04:31:31 -0000 @@ -8,7 +8,7 @@ url="http://flex.sourceforge.net" license=('custom') groups=('base-devel') -depends=('glibc' 'bash') +depends=('glibc' 'sh') source=(http://downloads.sourceforge.net/sourceforge/flex/flex-$pkgver.tar.bz2 flex-yytext.patch) md5sums=('343374a00b38d9e39d1158b71af37150' '3aeab6871ea9fed8ed45db5692e390ca') Index: devel/libtool/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/devel/libtool/PKGBUILD,v retrieving revision 1.31 diff -u -r1.31 PKGBUILD --- devel/libtool/PKGBUILD 15 Nov 2007 23:53:18 -0000 1.31 +++ devel/libtool/PKGBUILD 26 Nov 2007 04:31:31 -0000 @@ -8,7 +8,7 @@ license=('GPL') url="http://www.gnu.org/software/libtool" groups=('base-devel') -depends=('bash') +depends=('sh') source=(ftp://ftp.gnu.org/pub/gnu/libtool/$pkgname-$pkgver.tar.gz) md5sums=('d0071c890101fcf4f2be8934a37841b0') options=('!libtool') Index: devel/m4/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/devel/m4/PKGBUILD,v retrieving revision 1.25 diff -u -r1.25 PKGBUILD --- devel/m4/PKGBUILD 16 Nov 2007 00:02:34 -0000 1.25 +++ devel/m4/PKGBUILD 26 Nov 2007 04:31:31 -0000 @@ -8,7 +8,7 @@ license=('GPL') url="http://www.gnu.org/software/m4" groups=('base-devel') -depends=('glibc' 'bash') +depends=('glibc') source=(ftp://ftp.gnu.org/gnu/m4/$pkgname-$pkgver.tar.gz) md5sums=('4f2cdda3328ec06198578596e8b12727') Index: devel/make/PKGBUILD =================================================================== RCS file: /home/cvs-core/core/devel/make/PKGBUILD,v retrieving revision 1.18 diff -u -r1.18 PKGBUILD --- devel/make/PKGBUILD 16 Nov 2007 00:02:34 -0000 1.18 +++ devel/make/PKGBUILD 26 Nov 2007 04:31:31 -0000 @@ -8,7 +8,7 @@ url="http://www.gnu.org/software/make" license=('GPL') groups=('base-devel') -depends=('glibc' 'bash') +depends=('glibc') source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz) md5sums=('a4e9494ac6dc3f6b0c5ff75c5d52abba')