Skip to content

Commit

Permalink
[busybox] Enable ash shell. Contributes to JB#39735
Browse files Browse the repository at this point in the history
Enable ash from configuration with line editing.
Enable more verbose error messages from cp, mv, etc.
Add a profile script to set PS1 to a nicer value.
Obsolete bash and conflict gnu-bash.

Signed-off-by: Tomi Leppänen <tomi.leppanen@jolla.com>
  • Loading branch information
Tomin1 committed Aug 25, 2020
1 parent b75bf72 commit fd0388f
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 39 deletions.
92 changes: 54 additions & 38 deletions rpm/busybox-sailfish.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.31.0
# Mon Jan 27 15:29:36 2020
# Thu Jun 18 15:56:28 2020
#
CONFIG_HAVE_DOT_CONFIG=y

Expand Down Expand Up @@ -96,17 +96,17 @@ CONFIG_SHA3_SMALL=1
CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
# CONFIG_FEATURE_ETC_SERVICES is not set
# CONFIG_FEATURE_EDITING is not set
CONFIG_FEATURE_EDITING_MAX_LEN=0
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
# CONFIG_FEATURE_EDITING_VI is not set
CONFIG_FEATURE_EDITING_HISTORY=0
# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
# CONFIG_FEATURE_REVERSE_SEARCH is not set
# CONFIG_FEATURE_TAB_COMPLETION is not set
# CONFIG_FEATURE_USERNAME_COMPLETION is not set
# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
# CONFIG_FEATURE_EDITING_WINCH is not set
CONFIG_FEATURE_EDITING_HISTORY=255
CONFIG_FEATURE_EDITING_SAVEHISTORY=y
CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y
CONFIG_FEATURE_REVERSE_SEARCH=y
CONFIG_FEATURE_TAB_COMPLETION=y
CONFIG_FEATURE_USERNAME_COMPLETION=y
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
CONFIG_FEATURE_EDITING_WINCH=y
# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_UNICODE_SUPPORT=y
Expand All @@ -120,13 +120,14 @@ CONFIG_LAST_SUPPORTED_WCHAR=767
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
# CONFIG_FEATURE_NON_POSIX_CP is not set
# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
CONFIG_FEATURE_USE_SENDFILE=y
CONFIG_FEATURE_COPYBUF_KB=4
# CONFIG_FEATURE_SKIP_ROOTFS is not set
# CONFIG_MONOTONIC_SYSCALL is not set
# CONFIG_IOCTL_HEX2STR_ERROR is not set
# CONFIG_FEATURE_HWIB is not set
CONFIG_XATTR=y

#
# Applets
Expand Down Expand Up @@ -262,6 +263,10 @@ CONFIG_SHA1SUM=y
CONFIG_SHA256SUM=y
CONFIG_SHA512SUM=y
# CONFIG_SHA3SUM is not set

#
# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
CONFIG_MKDIR=y
CONFIG_MKFIFO=y
Expand Down Expand Up @@ -307,7 +312,7 @@ CONFIG_TEE=y
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
CONFIG_TEST=y
CONFIG_TEST1=y
# CONFIG_TEST2 is not set
CONFIG_TEST2=y
CONFIG_FEATURE_TEST_64=y
# CONFIG_TIMEOUT is not set
CONFIG_TOUCH=y
Expand Down Expand Up @@ -340,7 +345,15 @@ CONFIG_YES=y
# Common options
#
CONFIG_FEATURE_VERBOSE=y

#
# Common options for cp and mv
#
CONFIG_FEATURE_PRESERVE_HARDLINKS=y

#
# Common options for df, du, ls
#
CONFIG_FEATURE_HUMAN_READABLE=y

#
Expand Down Expand Up @@ -1052,6 +1065,10 @@ CONFIG_SV_DEFAULT_SERVICE_DIR=""
# CONFIG_SVC is not set
# CONFIG_SVOK is not set
# CONFIG_SVLOGD is not set

#
# SELinux Utilities
#
# CONFIG_CHCON is not set
# CONFIG_GETENFORCE is not set
# CONFIG_GETSEBOOL is not set
Expand All @@ -1069,30 +1086,30 @@ CONFIG_SV_DEFAULT_SERVICE_DIR=""
#
# Shells
#
# CONFIG_SH_IS_ASH is not set
CONFIG_SH_IS_ASH=y
# CONFIG_SH_IS_HUSH is not set
CONFIG_SH_IS_NONE=y
# CONFIG_BASH_IS_ASH is not set
# CONFIG_SH_IS_NONE is not set
CONFIG_BASH_IS_ASH=y
# CONFIG_BASH_IS_HUSH is not set
CONFIG_BASH_IS_NONE=y
# CONFIG_ASH is not set
# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
# CONFIG_ASH_INTERNAL_GLOB is not set
# CONFIG_ASH_BASH_COMPAT is not set
# CONFIG_BASH_IS_NONE is not set
CONFIG_ASH=y
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
CONFIG_ASH_INTERNAL_GLOB=y
CONFIG_ASH_BASH_COMPAT=y
# CONFIG_ASH_BASH_SOURCE_CURDIR is not set
# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set
# CONFIG_ASH_JOB_CONTROL is not set
# CONFIG_ASH_ALIAS is not set
# CONFIG_ASH_RANDOM_SUPPORT is not set
# CONFIG_ASH_EXPAND_PRMT is not set
# CONFIG_ASH_IDLE_TIMEOUT is not set
# CONFIG_ASH_MAIL is not set
# CONFIG_ASH_ECHO is not set
# CONFIG_ASH_PRINTF is not set
# CONFIG_ASH_TEST is not set
# CONFIG_ASH_HELP is not set
# CONFIG_ASH_GETOPTS is not set
# CONFIG_ASH_CMDCMD is not set
CONFIG_ASH_BASH_NOT_FOUND_HOOK=y
CONFIG_ASH_JOB_CONTROL=y
CONFIG_ASH_ALIAS=y
CONFIG_ASH_RANDOM_SUPPORT=y
CONFIG_ASH_EXPAND_PRMT=y
CONFIG_ASH_IDLE_TIMEOUT=y
CONFIG_ASH_MAIL=y
CONFIG_ASH_ECHO=y
CONFIG_ASH_PRINTF=y
CONFIG_ASH_TEST=y
CONFIG_ASH_HELP=y
CONFIG_ASH_GETOPTS=y
CONFIG_ASH_CMDCMD=y
# CONFIG_CTTYHACK is not set
# CONFIG_HUSH is not set
# CONFIG_HUSH_BASH_COMPAT is not set
Expand Down Expand Up @@ -1137,12 +1154,12 @@ CONFIG_BASH_IS_NONE=y
CONFIG_FEATURE_SH_MATH=y
CONFIG_FEATURE_SH_MATH_64=y
CONFIG_FEATURE_SH_MATH_BASE=y
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set
CONFIG_FEATURE_SH_READ_FRAC=y
# CONFIG_FEATURE_SH_HISTFILESIZE is not set
# CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS is not set
CONFIG_FEATURE_SH_HISTFILESIZE=y
CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y

#
# System Logging Utilities
Expand All @@ -1161,4 +1178,3 @@ CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
# CONFIG_FEATURE_IPC_SYSLOG is not set
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
# CONFIG_FEATURE_KMSG_SYSLOG is not set
CONFIG_XATTR=y
29 changes: 28 additions & 1 deletion rpm/busybox.spec
Expand Up @@ -7,6 +7,7 @@ Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
Source1: rpm/udhcpd.service
Source2: busybox-static.config
Source3: busybox-sailfish.config
Source4: set_ps1.sh
Patch0: 0001-Copy-extended-attributes-if-p-flag-is-provided-to-cp.patch
Patch1: 0002-applets-Busybox-in-usr-bin-instead-of-bin.patch
Patch2: 0003-applets-watch-in-usr-bin.patch
Expand Down Expand Up @@ -49,6 +50,17 @@ useful for recovering from certain types of system failures,
particularly those involving broken shared libraries. This package provides
a statically linked version of Busybox.

%package symlinks-bash
Requires: %{name} = %{version}-%{release}
Summary: Busybox replacement for bash
Conflicts: gnu-bash
Obsoletes: bash < 1:3.2.57+git1
Provides: bash = 1:3.2.57+git1

%description symlinks-bash
%{summary} as symlinks. Provides ash with sh and bash symlinks as
a mostly compatible alternative to GNU Bash.

%package symlinks-coreutils
Requires: %{name} = %{version}-%{release}
Summary: Busybox replacements for coreutils
Expand Down Expand Up @@ -246,6 +258,9 @@ cat >> busybox.links << EOF
%{_bindir}/uname
%{_bindir}/clear
%{_bindir}/reset
%{_bindir}/sh
%{_bindir}/ash
%{_bindir}/bash
EOF

%install
Expand All @@ -259,6 +274,8 @@ rm -f %{buildroot}/sbin/udhcpc
# Cleanup some symlinks
rm -f %{buildroot}/bin/base64

install -m 644 -D %{SOURCE4} %{buildroot}/%{_sysconfdir}/profile.d/set_ps1.sh

install -m 755 busybox-static %{buildroot}/usr/bin/busybox-static
ln -s ../usr/bin/busybox-static %{buildroot}/bin/busybox-static
mkdir -p %{buildroot}/%{_docdir}/%{name}-%{version}
Expand All @@ -270,6 +287,8 @@ install -m 644 -t %{buildroot}/%{_docdir}/%{name}-%{version} \
%license LICENSE
/bin/busybox
%{_bindir}/busybox
/bin/ash
%{_bindir}/ash
/bin/ping
%{_bindir}/ping
/bin/ping6
Expand All @@ -288,6 +307,14 @@ install -m 644 -t %{buildroot}/%{_docdir}/%{name}-%{version} \
%defattr(-,root,root,-)
%doc %{_docdir}/%{name}-%{version}

%files symlinks-bash
%defattr(-,root,root,-)
/bin/bash
/bin/sh
%{_bindir}/bash
%{_bindir}/sh
%{_sysconfdir}/profile.d/set_ps1.sh

%files symlinks-coreutils
%defattr(-,root,root,-)
/bin/basename
Expand Down Expand Up @@ -324,6 +351,7 @@ install -m 644 -t %{buildroot}/%{_docdir}/%{name}-%{version} \
/bin/true
/bin/uname
%{_bindir}/[
%{_bindir}/[[
%{_bindir}/base64
%{_bindir}/basename
%{_bindir}/cat
Expand Down Expand Up @@ -404,7 +432,6 @@ install -m 644 -t %{buildroot}/%{_docdir}/%{name}-%{version} \
%{_bindir}/yes
%{_sbindir}/chroot


%files symlinks-dosfstools
%defattr(-,root,root,-)
/sbin/mkdosfs
Expand Down
1 change: 1 addition & 0 deletions rpm/set_ps1.sh
@@ -0,0 +1 @@
export PS1='[\u@\h \W]\$ '

0 comments on commit fd0388f

Please sign in to comment.