#38728: org-mode enhancements to support Emacs.app and optional contrib modules --------------------------+---------------------- Reporter: jrh@… | Owner: dports@… Type: enhancement | Status: assigned Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: org-mode | --------------------------+---------------------- Comment (by jrh@…): Replying to [comment:7 dports@…]:
Hmm, I think {{{ depends_lib path:${prefix}/share/emacs/site-lisp:emacs }}} doesn't quite work; there are some packages that will install into site- lisp even if emacs isn't installed, which would allow them to satisfy the dependency.
All we really care about is that {{{${prefix}/share/emacs/site-lisp}}} exists so we can put files there. If it doesn't exist, then the {{{emacs}}} package will create it; if it ''does'' exist, then we're already good. I guess we also implicitly assume that there's some Emacsen available to compile, but that could be optional as well. (I've seen some packages, like slime, that couldn't get compilation to work so they just install the .el files and don't worry about it.) Otherwise, do something like {{{ set org_mode_emacs_binary "${applications_dir}/Emacs.app/Contents/MacOS/Emacs" if {![file exists $org_mode_emacs_binary] { set org_mode_emacs_binary "${prefix}/bin/emacs" } set emacs_provider [registry_file_registered $org_mode_emacs_binary] if {$app_provider == 0} { depends_build-append path:bin/emacs:emacs } else { depends_build-append port:${app_provider} } }}}
We'll need to do something closer to what the gnuplot port is doing, and this would probably be a good time to refactor that into a portgroup...
I think that's an excellent idea. I also have no idea what's involved in accomplishing it, technically or politically.
I'm also not thrilled about using a combination of wildcards in ORG_ADD_CONTRIB to exclude org-jira; that will need to be updated when new contrib modules are added to make sure they're included too.
Yeah, it's not ideal. I just didn't want to create a separate variant for each file in contrib, and wasn't sure how to easily construct a Make variable representing "everything in contrib except org-jira". We basically need something like the value of {{{ `cd ${worksrcpath}/contrib && ls *.el | cut -d "." -f 1 | grep -v org-jira | tr "\n" " "` }}} stored in the variable ORG_ADD_CONTRIB in ${worksrcpath}/local.mk. Portfiles are TCL scripts, right? What are the quoting rules? Can you put all of that stuff between backticks inside of a 'system' call? -- Ticket URL: <https://trac.macports.org/ticket/38728#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X