Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 248162

Summary: dev-lang/smlnj creates /usr/bin subdirectories
Product: Gentoo Linux Reporter: Diego Elio Pettenò (RETIRED) <flameeyes>
Component: New packagesAssignee: Gentoo Team for the ML programming language family <ml>
Status: RESOLVED FIXED    
Severity: normal CC: xmw
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Diego Elio Pettenò (RETIRED) gentoo-dev 2008-11-22 12:08:14 UTC
dev-lang/smlnj (/usr/bin/.heap)
dev-lang/smlnj (/usr/bin/.run)

It should use $libdir/$PN or /usr/libexec for this, certainly an /usr/bin subdirectory does not sound right.
Comment 1 Michael Weber (RETIRED) gentoo-dev 2010-07-01 09:48:42 UTC
(In reply to comment #0)
> It should use $libdir/$PN or /usr/libexec for this, certainly an /usr/bin
> subdirectory does not sound right.
The binaries were hardcoded 32bit, $get_libdir might be wrong in the amd64 case.

This fixes the directories to 
--- smlnj-110.71.ebuild.orig    2010-07-01 11:45:46.000000000 +0200
+++ smlnj-110.71.ebuild 2010-07-01 11:46:19.000000000 +0200
@@ -82,6 +82,11 @@
                -e "/^CPP/s:gcc:$(tc-getCC):" \
                -e "/^CFLAGS/{s:-O[0123s]:: ; s:=:= ${CFLAGS}:}" \
                base/runtime/objs/mk.x86-linux || die
+       #use target file locations instead of WORKDIR
+       sed -i \
+               -e "/@BINDIR@/s:\$BINDIR:/usr/lib/${PN}/bin:" \
+               -e "/@LIBDIR@/s:\$LIBDIR:/usr/lib/${PN}/lib:" \
+               config/install.sh || die
 }
 
 src_compile() {
@@ -89,11 +94,13 @@
 }
 
 src_install() {
-       mkdir -p "${D}"/usr
-       mv {bin,lib} "${D}"/usr
+       insinto /usr/lib/${PN}
+       doins -r lib || die
+       insopts -m755
+       doins -r bin || die
 
-       for file in "${D}"/usr/bin/{*,.*}; do
-               [[ -f ${file} ]] && sed "2iSMLNJ_HOME=/usr" -i ${file}
-#              [[ -f ${file} ]] && sed "s:${WORKDIR}:/usr:" -i ${file}
+       local f
+       for f in $(find /usr/lib/smlnj/bin/ -maxdepth 1 -type f ! -name ".*") ; do
+               dosym ${f} /usr/bin/$(basename "${f}") || die
        done
 }

to following list

io smlnj # qlist smlnj
/usr/bin/sml
/usr/bin/ml-antlr
/usr/bin/ml-build
/usr/bin/heap2exec
/usr/bin/ml-makedepend
/usr/bin/ml-ulex
/usr/bin/ml-yacc
/usr/bin/ml-lex
/usr/lib/smlnj/bin/sml
/usr/lib/smlnj/bin/.run/run.x86-linux
/usr/lib/smlnj/bin/.run/run.x86-linux.so
/usr/lib/smlnj/bin/.run/run.x86-linux.a
/usr/lib/smlnj/bin/.heap/ml-ulex.x86-linux
/usr/lib/smlnj/bin/.heap/sml.x86-linux
/usr/lib/smlnj/bin/.heap/ml-yacc.x86-linux
/usr/lib/smlnj/bin/.heap/ml-antlr.x86-linux
/usr/lib/smlnj/bin/.heap/ml-lex.x86-linux
/usr/lib/smlnj/bin/ml-antlr
/usr/lib/smlnj/bin/ml-build
/usr/lib/smlnj/bin/heap2exec
/usr/lib/smlnj/bin/.link-sml
/usr/lib/smlnj/bin/ml-makedepend
/usr/lib/smlnj/bin/ml-ulex
/usr/lib/smlnj/bin/ml-yacc
/usr/lib/smlnj/bin/ml-lex
/usr/lib/smlnj/bin/.arch-n-opsys
/usr/lib/smlnj/bin/.run-sml
/usr/lib/smlnj/lib/cml/.cm/x86-unix/cml-internal.cm
/usr/lib/smlnj/lib/cml/.cm/x86-unix/cml.cm
/usr/lib/smlnj/lib/cml/.cm/x86-unix/core-cml.cm
/usr/lib/smlnj/lib/cml/.cm/x86-unix/basis.cm
/usr/lib/smlnj/lib/cml-lib/.cm/x86-unix/smlnj-lib.cm
/usr/lib/smlnj/lib/cml-lib/.cm/x86-unix/trace-cml.cm
/usr/lib/smlnj/lib/smlnj-tdp/.cm/x86-unix/plugins.cm
/usr/lib/smlnj/lib/smlnj-tdp/.cm/x86-unix/back-trace.cm
/usr/lib/smlnj/lib/smlnj-tdp/.cm/x86-unix/coverage.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/StagedAlloc.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/Visual.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/CCall-x86.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/RA.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/Lib.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/CCall-Vararg.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/PPC.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/Peephole.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/Graphs.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/MLTREE.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/CCall-x86-64.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/AMD64.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/ALPHA.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/Control.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/IA32-Peephole.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/IA32.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/CCall.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/HPPA.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/SPARC.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/AMD64-Peephole.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/CCall-sparc.cm
/usr/lib/smlnj/lib/SMLNJ-MLRISC/.cm/x86-unix/MLRISC.cm
/usr/lib/smlnj/lib/regexp-lib.cm/.cm/x86-unix/regexp-lib.cm
/usr/lib/smlnj/lib/ml-lpt-lib.cm/.cm/x86-unix/ml-lpt-lib.cm
/usr/lib/smlnj/lib/ml-ulex-tool.cm/.cm/x86-unix/ml-ulex-tool.cm
/usr/lib/smlnj/lib/smlnj/cm/.cm/x86-unix/cm.cm
/usr/lib/smlnj/lib/smlnj/cm/.cm/x86-unix/tools.cm
/usr/lib/smlnj/lib/smlnj/.cm/x86-unix/cm.cm
/usr/lib/smlnj/lib/smlnj/.cm/x86-unix/compiler.cm
/usr/lib/smlnj/lib/smlnj/.cm/x86-unix/installer.cm
/usr/lib/smlnj/lib/smlnj/.cm/x86-unix/cmb.cm
/usr/lib/smlnj/lib/smlnj/.cm/x86-unix/library-install.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/current.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/x86-unix.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/ppc-unix.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/ppc-macos.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/alpha32-unix.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/x86-win32.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/amd64-unix.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/sparc-unix.cm
/usr/lib/smlnj/lib/smlnj/cmb/.cm/x86-unix/hppa-unix.cm
/usr/lib/smlnj/lib/smlnj/init/.cm/x86-unix/init.cmi
/usr/lib/smlnj/lib/smlnj/smlnj-lib/.cm/x86-unix/pp-lib.cm
/usr/lib/smlnj/lib/smlnj/smlnj-lib/.cm/x86-unix/controls-lib.cm
/usr/lib/smlnj/lib/smlnj/smlnj-lib/.cm/x86-unix/smlnj-lib.cm
/usr/lib/smlnj/lib/smlnj/smlnj-lib/.cm/x86-unix/html-lib.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/Visual.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/Lib.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/PPC.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/Graphs.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/MLTREE.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/AMD64.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/ALPHA.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/Control.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/IA32.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/HPPA.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/SPARC.cm
/usr/lib/smlnj/lib/smlnj/MLRISC/.cm/x86-unix/MLRISC.cm
/usr/lib/smlnj/lib/smlnj/basis/.cm/x86-unix/basis.cm
/usr/lib/smlnj/lib/smlnj/ml-yacc/.cm/x86-unix/ml-yacc-lib.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/sparc.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/current.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/compiler.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/all.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/alpha32.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/ppc.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/x86.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/hppa.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/amd64.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/minimal-only.cm
/usr/lib/smlnj/lib/smlnj/compiler/.cm/x86-unix/minimal.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/core.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/basics.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/parser.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/sparc.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/execute.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/alpha32.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/ppc.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/x86.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/elaborate.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/debugprof.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/hppa.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/amd64.cm
/usr/lib/smlnj/lib/smlnj/viscomp/.cm/x86-unix/elabdata.cm
/usr/lib/smlnj/lib/smlnj/installer/.cm/x86-unix/util.cm
/usr/lib/smlnj/lib/smlnj/internal/.cm/x86-unix/srcpath-lib.cm
/usr/lib/smlnj/lib/smlnj/internal/.cm/x86-unix/intsys.cm
/usr/lib/smlnj/lib/smlnj/internal/.cm/x86-unix/cm0.cm
/usr/lib/smlnj/lib/smlnj/internal/.cm/x86-unix/smlnj-version.cm
/usr/lib/smlnj/lib/smlnj/internal/.cm/x86-unix/cm-sig-lib.cm
/usr/lib/smlnj/lib/smlnj/internal/.cm/x86-unix/cm-lib.cm
/usr/lib/smlnj/lib/SMLNJ-LIB/PP/.cm/x86-unix/pp-lib.cm
/usr/lib/smlnj/lib/SMLNJ-LIB/HTML/.cm/x86-unix/html-lib.cm
/usr/lib/smlnj/lib/SMLNJ-LIB/Util/.cm/x86-unix/smlnj-lib.cm
/usr/lib/smlnj/lib/SMLNJ-LIB/Controls/.cm/x86-unix/controls-lib.cm
/usr/lib/smlnj/lib/noweb-tool.cm/.cm/x86-unix/noweb-tool.cm
/usr/lib/smlnj/lib/grm-ext.cm/.cm/x86-unix/grm-ext.cm
/usr/lib/smlnj/lib/mllex-tool.cm/.cm/x86-unix/mllex-tool.cm
/usr/lib/smlnj/lib/make-tool.cm/.cm/x86-unix/make-tool.cm
/usr/lib/smlnj/lib/pgraph.cm/.cm/x86-unix/pgraph.cm
/usr/lib/smlnj/lib/inet-lib.cm/.cm/x86-unix/inet-lib.cm
/usr/lib/smlnj/lib/json-lib.cm/.cm/x86-unix/json-lib.cm
/usr/lib/smlnj/lib/dir-tool.cm/.cm/x86-unix/dir-tool.cm
/usr/lib/smlnj/lib/reactive-lib.cm/.cm/x86-unix/reactive-lib.cm
/usr/lib/smlnj/lib/SMLNJ-ML-YACC-LIB/.cm/x86-unix/ml-yacc-lib.cm
/usr/lib/smlnj/lib/pathconfig
/usr/lib/smlnj/lib/lex-ext.cm/.cm/x86-unix/lex-ext.cm
/usr/lib/smlnj/lib/hash-cons-lib.cm/.cm/x86-unix/hash-cons-lib.cm
/usr/lib/smlnj/lib/unix-lib.cm/.cm/x86-unix/unix-lib.cm
/usr/lib/smlnj/lib/nw-ext.cm/.cm/x86-unix/nw-ext.cm
/usr/lib/smlnj/lib/shell-tool.cm/.cm/x86-unix/shell-tool.cm
/usr/lib/smlnj/lib/ml-antlr-tool.cm/.cm/x86-unix/ml-antlr-tool.cm
/usr/lib/smlnj/lib/mlyacc-tool.cm/.cm/x86-unix/mlyacc-tool.cm
/usr/lib/smlnj/lib/pickle-lib.cm/.cm/x86-unix/pickle-lib.cm
/usr/lib/smlnj/lib/SMLNJ-BASIS/.cm/x86-unix/basis.cm
Comment 2 Marijn Schouten (RETIRED) gentoo-dev 2012-10-19 10:38:42 UTC
I've now fixed this issue with a slight variation of Michael Weber's patch (thanks xmw!), but I'm leaving this bug open until an upstream solution is available.
Comment 3 Marijn Schouten (RETIRED) gentoo-dev 2012-10-22 12:19:48 UTC
I've had to revert the fix for this for now because of bug 438934. I don't consider this important enough to look into it too much, but if anyone else is interested, then I am still open to a solution.
Comment 4 Larry the Git Cow gentoo-dev 2018-03-10 23:31:25 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b740f3f14324d405b1dddf4335e168e1ea2eee21

commit b740f3f14324d405b1dddf4335e168e1ea2eee21
Author:     Mark Wright <gienah@gentoo.org>
AuthorDate: 2018-03-10 23:29:58 +0000
Commit:     Mark Wright <gienah@gentoo.org>
CommitDate: 2018-03-10 23:30:52 +0000

    dev-lang/smlnj: Bump to 110.82, fix install dirs, build on pax kernels.
    
    Bump to 110.82, fixes 487064 , thanks to Keshav Kini and OGINO Masanori for
    reporting.
    
    Install to the smlnj subdirectory underneath the 32 bit lib directory if it
    exists, or the 64 bit lib directory otherwise, and create symlinks in /usr/bin
    to point to the executables.  Fixes 248162, thanks to flameeyes for reporting,
    xmv and hkbst for helping.
    
    Fix build on pax kernels, fixes 564132, thanks to Fedja Beader for reporting.
    
    Closes: https://bugs.gentoo.org/487064
    Closes: https://bugs.gentoo.org/248162
    Closes: https://bugs.gentoo.org/564132
    Package-Manager: Portage-2.3.24, Repoman-2.3.6

 dev-lang/smlnj/Manifest                        |  24 ++++
 dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch | 116 +++++++++++++++++
 dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch | 132 ++++++++++++++++++++
 dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch | 137 ++++++++++++++++++++
 dev-lang/smlnj/metadata.xml                    |   4 +
 dev-lang/smlnj/smlnj-110.82.ebuild             | 166 +++++++++++++++++++++++++
 6 files changed, 579 insertions(+)