[MacPorts] #38728: org-mode enhancements to support Emacs.app and optional contrib modules

MacPorts noreply at macports.org
Thu Apr 18 16:23:34 PDT 2013


#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


More information about the macports-tickets mailing list