This is an ebuild for the latest version of mzscheme. Currently, the only available ebuild for mzscheme is old and broken (bug#6454). This will install the new mzscheme without a hitch once some problems which are beyond my control are fixed. Problem 1 (BIG): Since emerge looks for mzscheme.src.unix.tar.gz on liblio first, it will download it assuming it has found the newest version but it has actually found the old version. The only way I know to get around this is to manually download the new version and place it in /usr/portage/distfiles. # old version http://download.plt-scheme.org/bundles/103p1/mzscheme/mzscheme.src.unix.tar.gz # new version http://download.plt-scheme.org/bundles/201/mzscheme/mzscheme.src.unix.tar.gz Problem 2 (minor): During emerge, questions are asked and installation waits until it gets an answer. I do not know how to get it to stop. I don't think this is a big problem, it is just uncommon (in my opinion).
Created attachment 3420 [details] dev-lisp/mzscheme-201.ebuild
We don't accept interactive installs, so the ebuild won't be accepted until it is fully automated. If you can fix this pretty soon, I'd like to replace 103 with this one before we release 1.4.
I could not find any way to override the interaction. The only way I can conceive of is to do something like using expect (http://expect.nist.gov/). Unfortunately, this is not my strongest area of expertise so I can't make any promises for a time frame of a solution. To me, this seems like an awkward way to eliminate interaction. Also, 202 is out and it works by simply renaming 201. It works perfectly just like 201 except for the Gentoo specific issues (interaction, liblio problem).
I modified src_install slightly: src_install () { cd ${S}/src echo -e "n\n" | make prefix=${D}/usr \ mandir=${D}/usr/share/man \ infodir=${D}/usr/share/info \ install || die ... } So now it doesn't ask for anything anymore. But it the installed files are seriously misplaced. Examples /usr/install - a bash script, should probably be /usr/bin/mzscheme-install /usr/collects/ - a dir, should probably be /usr/share/mzscheme/collects /usr/notes/ - a dir, should probably be /usr/share/doc/mzscheme-201/notes/ Apart from this, it appears to be work nicely with the 2.95.3 compiler at least. Not tested with 3.2 yet. Can you fix these bad dirs ?
I did not realize how poorly mzscheme installs. It obviously does not follow the fhs (http://www.pathname.com/fhs/). I am including a patch that sets up the directories properly as Karl in comment #c4 suggested and I agree with. I will also show the differences below. Also, my system is gcc 3.2 and I have had no problems with this package related to that. diff mzscheme-202.ebuild mzscheme-202-r1.ebuild 37c37 < make \ --- > echo -e "n\n" | make \ 45,46c45,60 < dodoc notes/COPYING.LIB < dodoc notes/mzscheme/* --- > } > > pkg_postinst () { > mv /usr/install /usr/bin/mzscheme-install > > mkdir -p /usr/share/mzscheme/ > mv /usr/collects/ /usr/share/mzscheme/collects/ > > mkdir -p /usr/share/doc/${PF}/ > mv /usr/notes/ /usr/share/doc/${PF}/ > } > > pkg_postrm () { > rm -f /usr/bin/mzscheme-install > rm -fr /usr/share/mzscheme/ > rm -fr /usr/share/doc/${PF}/
Created attachment 3614 [details, diff] mzscheme-202.ebuild patch to fix directories
Could you please update the patch to fix all of this in src_install ? We do _NOT_ want to muck about with moving directories on a live system. The image in ${D} must be verbatim what is supposed to be installed. If you start moving files around in pkg_postinst(), Portage will not be able to keep track of the files, so one cannot check that the installation is complete (that all files are present, with correct timestamp and md5sum), etc, etc, etc.
I've tested and added a modified your ebuild. It is currently masked because the files have not propagated properly yet. I'll unmask it in a few hours. I'm closing this now. Please reopen if you run into anything.
why is the patch not applied to the ebuild ? w/ 201 i get ACCESS DENIED rename: /usr/bin/mzscheme-install mv: cannot move `/var/tmp/portage/mzscheme-201/image//usr/install' to `/usr/bin/mzscheme-install': Permission denied also (after applying the patch): is it normal (i'm new to mzscheme): $ mzc /usr/bin/mzc: /var/tmp/portage/mzscheme-201-r3/image/usr/bin/mzscheme: No such file or directory /usr/bin/mzc: exec: /var/tmp/portage/mzscheme-201-r3/image/usr/bin/mzscheme: cannot execute: No such file or directory ??