app-shells/mksh: USE=static now uses the system libc
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Mon, 25 Nov 2019 07:27:20 +0000 (08:27 +0100)
committerMichał Górny <mgorny@gentoo.org>
Sun, 1 Dec 2019 23:24:17 +0000 (00:24 +0100)
Which means that glibc needs to be masked as it's static-linking is
broken.

I considered dietlibc as a replacement to klibc but:
- dietlibc is maintained-needed too
- it could be a elibc_glibc? in DEPEND but this would probably be a
noblah USE flag
- it would mean that arches where mksh is believed to work and some of
our libc do but not dietlibc or klibc (like alpha with bug #487672)
would be prevented from USE=static

Closes: https://bugs.gentoo.org/653388
Signed-off-by: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Signed-off-by: Michał Górny <mgorny@gentoo.org>
app-shells/mksh/mksh-57-r2.ebuild [new file with mode: 0644]
app-shells/mksh/mksh-9999.ebuild
profiles/base/package.use.mask
profiles/features/musl/package.use.mask
profiles/features/uclibc/package.use.mask

diff --git a/app-shells/mksh/mksh-57-r2.ebuild b/app-shells/mksh/mksh-57-r2.ebuild
new file mode 100644 (file)
index 0000000..b818b1c
--- /dev/null
@@ -0,0 +1,54 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+if [[ $PV = 9999 ]]; then
+       inherit cvs
+       ECVS_SERVER="anoncvs.mirbsd.org:/cvs"
+       ECVS_MODULE="mksh"
+       ECVS_USER="_anoncvs"
+       ECVS_AUTH="ext"
+       KEYWORDS=""
+else
+       SRC_URI="https://www.mirbsd.org/MirOS/dist/mir/mksh/${PN}-R${PV}.tgz"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="MirBSD Korn Shell"
+# Host is TLSv1.0-only, keep to http for compatibility with modern browsers
+HOMEPAGE="http://mirbsd.de/mksh"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="static test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+       test? (
+               dev-lang/perl
+               sys-apps/ed
+       )
+"
+
+S="${WORKDIR}/${PN}"
+
+src_compile() {
+       tc-export CC
+       use static && export LDSTATIC="-static"
+       export CPPFLAGS="${CPPFLAGS} -DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\""
+       sh Build.sh -r || die
+}
+
+src_install() {
+       into /
+       dobin mksh
+       doman mksh.1
+       dodoc dot.mkshrc
+}
+
+src_test() {
+       ./mksh test.sh -v || die
+}
index 3aa638fe2453fd05afad7cd9e7f92e0cb3875a2a..b818b1caf1a2883ab56abebabb5eb64a3df23ce5 100644 (file)
@@ -13,29 +13,31 @@ if [[ $PV = 9999 ]]; then
        ECVS_AUTH="ext"
        KEYWORDS=""
 else
-       SRC_URI="http://www.mirbsd.org/MirOS/dist/mir/mksh/${PN}-R${PV}.tgz"
-       KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+       SRC_URI="https://www.mirbsd.org/MirOS/dist/mir/mksh/${PN}-R${PV}.tgz"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
 fi
 
 DESCRIPTION="MirBSD Korn Shell"
+# Host is TLSv1.0-only, keep to http for compatibility with modern browsers
 HOMEPAGE="http://mirbsd.de/mksh"
+
 LICENSE="BSD"
 SLOT="0"
 IUSE="static test"
-RDEPEND="static? ( dev-libs/klibc )"
+RESTRICT="!test? ( test )"
+
 DEPEND="
-       ${RDEPEND}
        test? (
                dev-lang/perl
                sys-apps/ed
        )
 "
+
 S="${WORKDIR}/${PN}"
 
 src_compile() {
        tc-export CC
-       # we want to build static with klibc
-       if use static; then export CC="/usr/bin/klcc"; export LDSTATIC="-static"; fi
+       use static && export LDSTATIC="-static"
        export CPPFLAGS="${CPPFLAGS} -DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\""
        sh Build.sh -r || die
 }
@@ -48,5 +50,5 @@ src_install() {
 }
 
 src_test() {
-       ./test.sh -v || die
+       ./mksh test.sh -v || die
 }
index e5768830f1eb481dad083451d266ac2ae794d817..68213dc90544e79961cf1251c678e18334dd4d48 100644 (file)
@@ -7,6 +7,10 @@
 # This file is only for generic masks. For arch-specific masks (i.e.
 # mask everywhere, unmask on arch/*) use arch/base.
 
+# Haelwenn (lanodan) Monnier <contact@hacktivis.me> (2019-12-01)
+# broken static-linking in glibc and maybe others
+>app-shells/mksh-57-r1 static
+
 # Andreas Sturmlechner <asturm@gentoo.org> (2019-11-30)
 # Depends on about-to-be-last-rited media-libs/mediastreamer
 kde-apps/kopete jingle
index e8ef0ab07a3e3ea1fa65726a5e8ad55bb17ac34a..117568e0a6bdc0bbe783c1c112c29373627873a2 100644 (file)
@@ -20,3 +20,6 @@ app-shells/bash mem-scramble
 # lto builds are known to cause an OOM issue during build.
 mail-client/thunderbird lto
 www-client/firefox lto
+
+# static linking works with musl
+app-shells/mksh -static
index eb7b5dc0216186f4564f9f8d739f08f6263e9b16..b00ae69a84ab459db93efc2e1be2bd058e6bf215 100644 (file)
@@ -22,3 +22,6 @@ dev-util/geany-plugins gtkspell
 # 'append-libs', but xfsdump's build system doesn't honor $LIBS.
 # So this is the best way for now.  See 570548.
 sys-fs/xfsdump nls
+
+# static linking works with uClibc
+app-shells/mksh -static