Skip to content

Commit

Permalink
app-shells/dash: new revision that more-closely matches upstream.
Browse files Browse the repository at this point in the history
Our dash ebuilds differed from upstream in two ways in the past: we
disabled LINENO support with --disable-lineno, and we patched the
"echo" command to ignore certain arguments and escape sequences.

Disabling LINENO tricks configure scripts into re-executing themselves
with bash, which can hide errors for users (good?), but also hides
them from developers (bad). The LINENO variable is covered by POSIX,
and it's counterintuitive to silently force bash on users who have
explicitly set /bin/sh to dash. This new revision therefore re-enables
LINENO. This same change (in the context of Debian) was discussed on
the autoconf mailing list.

The "dumb echo" patch reflects a similar situation. Dash's upstream
"echo" implementation differs from the bash implementation, but is
correct according to POSIX. This can shed light upon some portability
bugs, particularly in autoconf scripts, and the "dumb echo" patch
hides some of those bugs from end users. But again, it hides them from
the authors as well and thereby perpetuates the portability issues.
Since this patch is Gentoo-specific, and hides problems that are
better addressed elsewhere, this new revision eliminates it.

Closes: https://bugs.gentoo.org/687002
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Michael Orlitzky <[email protected]>
  • Loading branch information
orlitzky committed Mar 15, 2020
1 parent 90466bc commit 808dded
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions app-shells/dash/dash-0.5.10.2-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit flag-o-matic toolchain-funcs

DESCRIPTION="Debian Almquist Shell"
HOMEPAGE="http://gondor.apana.org.au/~herbert/dash/"
SRC_URI="http://gondor.apana.org.au/~herbert/dash/files/${P}.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="libedit static"

BDEPEND="virtual/pkgconfig"
RDEPEND="!static? ( libedit? ( dev-libs/libedit ) )"
DEPEND="${RDEPEND}
libedit? ( static? ( dev-libs/libedit[static-libs] ) )"

PATCHES=( "${FILESDIR}/${PN}-0.5.9.1-format-security.patch" )

src_prepare() {
default

# Fix the invalid sort
sed -i -e 's/LC_COLLATE=C/LC_ALL=C/g' src/mkbuiltins

# Use pkg-config for libedit linkage
sed -i \
-e "/LIBS/s:-ledit:\`$(tc-getPKG_CONFIG) --libs libedit $(usex static --static '')\`:" \
configure || die
}

src_configure() {
# don't redefine stat on Solaris
if [[ ${CHOST} == *-solaris* ]] ; then
export ac_cv_func_stat64=yes

# if your headers strictly adhere to POSIX, you'll need this too
[[ ${CHOST##*solaris2.} -le 10 ]] && append-cppflags -DNAME_MAX=255
fi
append-cppflags -DJOBS=$(usex libedit 1 0)
use static && append-ldflags -static
# Do not pass --enable-glob due to #443552.
local myeconfargs=(
--bindir="${EPREFIX}"/bin
--enable-fnmatch
$(use_with libedit)
)
econf "${myeconfargs[@]}"
}

0 comments on commit 808dded

Please sign in to comment.