#51863 closed enhancement (fixed)
New Port ChezScheme
Reported by: | wbl (Watson Ladd) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | Cc: | mohd-akram (Mohamed Akram) | |
Port: | chezscheme |
Description
A portfile that installs ChezScheme. Unfortunately the command is named scheme, so there will be incompatibilities with other scheme implementations that also call the command scheme.
Attachments (10)
Change History (25)
Changed 8 years ago by wbl (Watson Ladd)
comment:1 Changed 8 years ago by neverpanic (Clemens Lang)
comment:2 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)
Since this software is hosted at github, please use the github portgroup. Its github.setup line will replace the name, version, distfiles, and master_sites lines. The checksums will need to change because the github portgroup uses "tarball"-style URLs, not "archive"-style URLs like you used.
The purpose of configure.pre_args
is to specify the prefix, so instead of clearing configure.pre_args
and putting --installprefix=${prefix}
in configure.args
, you should set configure.pre_args
to --installprefix=${prefix}
.
comment:3 follow-up: 4 Changed 8 years ago by wbl (Watson Ladd)
Is there an example of something in the github portgroup I can look up? I'm not entirely sure I follow that part of the comment.
Also, how should I declare an X11 dependency? I think once I get that and the CC patch adopted upstream we will be a lot closer to getting this in.
comment:4 Changed 8 years ago by larryv (Lawrence Velázquez)
Replying to watsonbladd@…:
Also, how should I declare an X11 dependency? I think once I get that and the CC patch adopted upstream we will be a lot closer to getting this in.
X11/Xlib.h
comes from the xorg-libX11
port. You may need to add others, depending on the specific components required.
comment:5 Changed 8 years ago by mohd-akram (Mohamed Akram)
Cc: | mohd-akram added |
---|
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | Portfile.2 added |
---|
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | patch-c-Mf-base.diff added |
---|
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | patch-c-Mf-ta6osx.diff added |
---|
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | patch-c-Mf-ti3osx.diff added |
---|
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | patch-configure.diff added |
---|
comment:6 Changed 8 years ago by mohd-akram (Mohamed Akram)
I've added a new Portfile and associated patches, and renamed the port to chez-scheme.
comment:7 Changed 8 years ago by wbl (Watson Ladd)
Thanks! I'll take a more in-depth look later on . Can we get some of these changes upstreamed? Modifying the makefiles and configure ourselves is less preferable than providing arguments to their system. You also missed the nanopass download in configure.
comment:8 Changed 8 years ago by mohd-akram (Mohamed Akram)
I'm not sure which changes can be upstreamed tbh. They statically link with zlib, but there's no libz.a on macOS from what I can tell. Letting the port use its own zlib would simplify the patches a lot, leaving just the $CC
change. Couldn't get rid of the nanopass download, it's required.
comment:9 Changed 8 years ago by wbl (Watson Ladd)
What we'd like is if that could be downloaded in the fetch phase instead/could be included with the source tarball, but I'm just relaying what I was told above. I was trying to talk to upstream, but am pretty new to this myself.
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | Portfile.3 added |
---|
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | patch-configure.2.diff added |
---|
comment:10 Changed 8 years ago by mohd-akram (Mohamed Akram)
I've removed nanopass from the configure file and made MacPorts fetch it. Hopefully, this is sufficient.
comment:11 follow-up: 12 Changed 8 years ago by mf2k (Frank Schima)
Can nanopass be implemented as a new port and then make it a dependency for chezscheme?
comment:12 Changed 8 years ago by mohd-akram (Mohamed Akram)
So the folder is hardcoded in the Makefile which would need another patch file. We then need to decide on a directory to put it in (eg. $prefix/share/scheme/r6rs
) since this is a Scheme library. Finally, the environment variable CHEZSCHEMELIBDIRS
needs to be set to this directory before build. There doesn't seem to be a scheme
folder in the ports tree where this (and other Scheme libraries) would ideally belong. I can create another ticket if I should proceed with this.
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | Portfile.4 added |
---|
Changed 8 years ago by mohd-akram (Mohamed Akram)
Attachment: | patch-s-Mf-base.diff added |
---|
comment:13 Changed 8 years ago by mohd-akram (Mohamed Akram)
I've created a pull request for nanopass here - https://github.com/macports/macports-ports/pull/470 - and attached the relevant files for this change.
comment:14 Changed 7 years ago by raimue (Rainer Müller)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:15 Changed 7 years ago by raimue (Rainer Müller)
Thank you for the port submission and working on its dependencies. I committed this port now with the following slight changes:
- moved
github.setup
to the top - added your GitHub username to the maintainers option
For future update, please continue to file tickets in Trac or create pull requests on GitHub. Hopefully we should get to them faster than to this first submission.
A couple of lint warnings:
A couple of comments:
build.target-delete all
, I'd just usebuild.target
(without anything after it), which setsbuild.target
to empty, like you did it forconfigure.pre_args
.gcc
to compile. We want it to use$CC
from the environment and pay attention to our$CFLAGS
(which it seems to do) and$LDFLAGS
./usr/local/lib
[2][1]:
[2]: