From b3cd383722ae22bc2567f1b4f8a875e79dd56bca Mon Sep 17 00:00:00 2001 From: Lars Wendler Date: Wed, 9 May 2018 13:31:34 +0200 Subject: app-shells/dash: Fixed subshell regression. See https://patchwork.kernel.org/patch/10382199/ Closes: https://bugs.gentoo.org/655320 Package-Manager: Portage-2.3.36, Repoman-2.3.9 --- app-shells/dash/dash-0.5.10-r1.ebuild | 79 +++++++++++++++++++++++ app-shells/dash/dash-0.5.10.ebuild | 76 ---------------------- app-shells/dash/files/dash-0.5.10-subshells.patch | 16 +++++ 3 files changed, 95 insertions(+), 76 deletions(-) create mode 100644 app-shells/dash/dash-0.5.10-r1.ebuild delete mode 100644 app-shells/dash/dash-0.5.10.ebuild create mode 100644 app-shells/dash/files/dash-0.5.10-subshells.patch (limited to 'app-shells') diff --git a/app-shells/dash/dash-0.5.10-r1.ebuild b/app-shells/dash/dash-0.5.10-r1.ebuild new file mode 100644 index 000000000000..97e4202bc4d1 --- /dev/null +++ b/app-shells/dash/dash-0.5.10-r1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit flag-o-matic toolchain-funcs versionator + +#MY_PV="$(get_version_component_range 1-3)" +DEB_PATCH="" #$(get_version_component_range 4) +#MY_P="${PN}-${MY_PV}" + +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" +if [[ -n "${DEB_PATCH}" ]] ; then + DEB_PF="${PN}_${MY_PV}-${DEB_PATCH}" + SRC_URI+=" mirror://debian/pool/main/d/dash/${DEB_PF}.diff.gz" +fi + +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 vanilla" + +RDEPEND="!static? ( libedit? ( dev-libs/libedit ) )" +DEPEND="${RDEPEND} + virtual/pkgconfig + libedit? ( static? ( dev-libs/libedit[static-libs] ) )" + +PATCHES=( + "${FILESDIR}"/${PN}-0.5.9.1-format-security.patch + "${FILESDIR}"/${P}-subshells.patch +) + +src_prepare() { + if [[ -n "${DEB_PATCH}" ]] ; then + eapply "${WORKDIR}"/${DEB_PF}.diff + eapply */debian/diff/* + fi + + #337329 #527848 + use vanilla || eapply "${FILESDIR}"/${PN}-0.5.10-dumb-echo.patch + + 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 + fi + append-cppflags -DJOBS=$(usex libedit 1 0) + use static && append-ldflags -static + # Do not pass --enable-glob due to #443552. + # Autotools use $LINENO as a proxy for extended debug support + # (i.e. they're running bash), so disable that. #527644 + local myeconfargs=( + --bindir="${EPREFIX}"/bin + --enable-fnmatch + --disable-lineno + $(use_with libedit) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + if [[ -n "${DEB_PATCH}" ]] ; then + dodoc */debian/changelog + fi +} diff --git a/app-shells/dash/dash-0.5.10.ebuild b/app-shells/dash/dash-0.5.10.ebuild deleted file mode 100644 index 72821681d9b7..000000000000 --- a/app-shells/dash/dash-0.5.10.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit flag-o-matic toolchain-funcs versionator - -#MY_PV="$(get_version_component_range 1-3)" -DEB_PATCH="" #$(get_version_component_range 4) -#MY_P="${PN}-${MY_PV}" - -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" -if [[ -n "${DEB_PATCH}" ]] ; then - DEB_PF="${PN}_${MY_PV}-${DEB_PATCH}" - SRC_URI+=" mirror://debian/pool/main/d/dash/${DEB_PF}.diff.gz" -fi - -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 vanilla" - -RDEPEND="!static? ( libedit? ( dev-libs/libedit ) )" -DEPEND="${RDEPEND} - virtual/pkgconfig - libedit? ( static? ( dev-libs/libedit[static-libs] ) )" - -PATCHES=( "${FILESDIR}"/${PN}-0.5.9.1-format-security.patch ) - -src_prepare() { - if [[ -n "${DEB_PATCH}" ]] ; then - eapply "${WORKDIR}"/${DEB_PF}.diff - eapply */debian/diff/* - fi - - #337329 #527848 - use vanilla || eapply "${FILESDIR}"/${PN}-0.5.10-dumb-echo.patch - - 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 - fi - append-cppflags -DJOBS=$(usex libedit 1 0) - use static && append-ldflags -static - # Do not pass --enable-glob due to #443552. - # Autotools use $LINENO as a proxy for extended debug support - # (i.e. they're running bash), so disable that. #527644 - local myeconfargs=( - --bindir="${EPREFIX}"/bin - --enable-fnmatch - --disable-lineno - $(use_with libedit) - ) - econf "${myeconfargs[@]}" -} - -src_install() { - default - if [[ -n "${DEB_PATCH}" ]] ; then - dodoc */debian/changelog - fi -} diff --git a/app-shells/dash/files/dash-0.5.10-subshells.patch b/app-shells/dash/files/dash-0.5.10-subshells.patch new file mode 100644 index 000000000000..5943db11e697 --- /dev/null +++ b/app-shells/dash/files/dash-0.5.10-subshells.patch @@ -0,0 +1,16 @@ +https://bugs.gentoo.org/655320 +https://patchwork.kernel.org/patch/10382199/ + +--- dash-0.5.10/src/jobs.c ++++ dash-0.5.10/src/jobs.c +@@ -975,8 +975,8 @@ + int st; + + TRACE(("waitforjob(%%%d) called\n", jp ? jobno(jp) : 0)); +- while ((jp && jp->state == JOBRUNNING) || gotsigchld) +- dowait(DOWAIT_BLOCK, jp); ++ while (jp ? jp->state == JOBRUNNING : gotsigchld) ++ dowait(jp ? DOWAIT_BLOCK : DOWAIT_NORMAL, jp); + if (!jp) + return exitstatus; + st = getstatus(jp); -- cgit v1.2.3-65-gdbad