[prev in list] [next in list] [prev in thread] [next in thread]
List: macports-users
Subject: Re: Writing a port for a Mono executable (Pash)
From: Ryan Schmidt <ryandesign () macports ! org>
Date: 2015-11-14 7:04:25
Message-ID: 18745A4D-BD68-4DF1-9A8C-310BAF1410CB () macports ! org
[Download RAW message or body]
This is a question about Portfile development, so it belongs on the macports-dev \
mailing list. I'm Cc'ing that list now. If you're not subscribed to that list yet, \
please subscribe. If you reply, please remove macports-users from the recipient list.
On Nov 13, 2015, at 7:14 PM, Ludwig wrote:
>
> I'm writing a port for Pash, a Power Shell clone for Mono, and am stuck as
> described here: https://trac.macports.org/ticket/49656#comment:4
>
> > Pash builds successfully via Mono's xbuild tool, but it doesn't have a "make
> > install" equivalent, it leaves the executable in the project hierarchy at
> > Source/PashConsole/bin/Debug/Pash.exe.
>
> > Furthermore, it's not a "normal" executable, it's a "PE32 executable
> > (console) Intel 80386 Mono/.Net assembly, for MS Windows," meaning it has to
> > be launched via Mono, e.g. mono path/to/Pash.exe.
>
> > AFAICT none of the other ports in the mono category use xbuild, so I don't
> > have a model to follow here.
Since xbuild is a program installed by a MacPorts port, you should run it by its \
absolute path, ${prefix}/bin/xbuild, to ensure there are no problems if the user has \
a nonstandard binpath set in macports.conf.
> > I guess the right thing to do would be a
> > post-install script creating a one-line launcher shell script, which is what
> > would be installed in ${prefix}/bin.
Right, except it would be a post-destroot block, not post-install. You would install \
the script into ${destroot}${prefix}/bin, and at install time, MacPorts will place it \
in ${prefix}/bin.
> > But I don't know where to put the
> > project directory, which is full of DLLs and stuff that the executable
> > presumably depends on, and as such should be kept in its entirety.
> > ${workpath} and ${portpath} are subject to being cleaned, right? What is the
> > proper location for persistent files?
Somewhere in ${prefix}. Perhaps ${prefix}/libexec/${subport} would be appropriate.
> > Attached what I've got of the Portfile so far.
There should be no comma between multiple values for an option, for example in the \
license line.
> > The checksums are for the
> > tarball I rolled from the source, do I attach that here or…?
You shouldn't manually roll a tarball. The port should download from the officially \
available stable tarballs. If there are none, ask the developers to create one. If \
they won't, you can download from their source repository or, since this project is \
hosted on github, you should use the github portgroup and download from github's \
automatically-generated tarballs. Documentation is in the github portgroup file.
> > Sorry if these are dopey questions, this is my first real attempt at
> > packaging a port.
These are good questions, please ask on macports-dev if you have other questions \
about Portfile writing.
_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-users
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic