On file installation
Fernando Apesteguía
fernando.apesteguia at gmail.com
Tue May 15 17:14:59 UTC 2012
On Mon, May 14, 2012 at 7:40 PM, Fernando Apesteguía
<fernando.apesteguia at gmail.com> wrote:
> On Mon, May 14, 2012 at 7:31 PM, Chris Rees <crees at freebsd.org> wrote:
>> On 14 May 2012 18:23, Fernando Apesteguía <fernando.apesteguia at gmail.com> wrote:
>>> Hi,
>>>
>>> I'm working on a port for an application written in Java and I'm
>>> having some problems deciding how to install the application.
>>> Previous to the installation, the WRKSRC directory contains some .jar
>>> files and some directories along with some .txt files for
>>> licenses, but also some .exe and .bat files _which I don't want to
>>> install_. It is basically a package that contains both files for
>>> windows and non-windows systems.
>>>
>>> I was thinking on using COPYTREE_SHARE to install everything and then
>>> remove the non necessary files, but doesn't look like
>>> an elegant solution. Also, I wouldn't like to explicitly specify every
>>> one of the files I want to copy. Is there a way of using something
>>> similar to bash's extglob so I can copy !(*.exe|*bat)? If not, how to proceed?
>>>
>>> I already looked at the existent ports to find something similar but
>>> it seems hard to find. I also had a look at bsd.port.mk but
>>> I couldn't find what I'm looking for.
>>
>> You can use find primaries with COPYTREE_SHARE such as;
>>
>> (cd ${WRKSRC}/wherever && ${COPYTREE_SHARE} \*
>> ${JAVALIBDIR}/${PORTNAME}/wherever "-not -name \*.exe -and -not -name
>> \*.bat"
>
> Thanks! I think that is what I was looking for :)
Sorry guys, but I think I need more help :). I tried with the following line:
( cd ${WRKSRC}/JDownloader && ${COPYTREE_SHARE} \*
${PREFIX}/${PORTNAME}/ "! -name \*.exe" )
but it doesn't seem to follow primaries and it still installs the .exe
files. I just tried with:
( cd ${WRKSRC}/JDownloader && ${COPYTREE_SHARE} \*
${PREFIX}/${PORTNAME}/ "! -name JDownloader.exe" )
and check that effectively the file is not installed so I suppose this
has something to do with quoting and escaping special characters (the
asterisk). I found the following line in audio/xmp/Makefile:
( cd ${WRKSRC}/docs && ${COPYTREE_SHARE} \* \
${DOCSDIR} '! ( -name Makefile -or -name xmp.1 \
-or -name *.bak -or -name *.orig )' )
that seems pretty close to what I'm trying to do, so I tried with this:
( cd ${WRKSRC}/JDownloader && ${COPYTREE_SHARE} \*
${PREFIX}/${PORTNAME}/ '! ( -name *.exe )' )
but then, the asterisk is expanded and find fails:
find: JDownloader.exe: unknown primary or operator
what am I doing wrong?
Thanks in advance.
>
> I'll give it a try.
>
>>
>> Chris
More information about the freebsd-ports
mailing list