Cvs variant in portfile

Ryan Schmidt ryandesign at macports.org
Fri Aug 10 18:17:03 PDT 2007


On Aug 10, 2007, at 12:34, Sbranzo wrote:

> I'm trying to add a cvs variant to the slrn-devel portfile.
> As now i can fetch the sources with this:
>
> variant cvs {
>         fetch.type      cvs
>          
> cvs.root        :pserver:anonymous at slrn.cvs.sourceforge.net:/ 
> cvsroot/slrn
>         cvs.module      slrn
>         cvs.password
>         cvs.date        20070717
>         version         ${version}-${cvs.date}
>         worksrcdir      slrn
>         pre-configure {
>                 autopoint -f;
>                 aclocal -I autoconf;
>                 autoheader;
>                 automake --foreign --add-missing;
>                 autoconf;
>         }
>         depends_build-append    port:autoconf port:automake
> }
>
> I can't pass the org.macports.configure phase because I should  
> execute the
> autogen.sh script instead  of ./configure.
>
> Autogen.sh checks if automake autoconf and autopoint exist and than
> executes:
> -------------------------------
> autopoint -f;
> aclocal -I autoconf;
> autoheader;
> automake --foreign --add-missing;
> autoconf;
>
> ./configure $@
> -------------------------------
>
> I'd like to run the first 5 commands before running configure, but the
> pre-configure hook seems to be ignored.
>
> What I get is always:
>
> [...]
> --->  Verifying checksum(s) for slrn-devel
> --->  Extracting slrn-devel
> --->  Configuring slrn-devel
> Error: Target org.macports.configure returned: no such file or  
> directory
> Warning: the following items did not execute (for slrn-devel):  
> org.macports.activate org.macports.configure org.macports.build  
> org.macports.destroot org.macports.archive org.macports.install
> Error: Status 1 encountered during processing.
>
>
> Which is the right way to address this problem?

Why are you adding such a variant? Under which circumstances might a  
user want, or not want, to select it? I'm trying to figure out why  
you don't just fetch from CVS all the time, as that would seem to  
simplify things, wouldn't it? Variants are not supposed to change the  
version of the installed software, so if it's the same version, why  
would anyone care whether it's fetched from CVS or somewhere else, so  
long as it's fetched?

The immediate answer to your question, I think, is that the commands  
you are issuing are not valid TCL commands, and are therefore are not  
getting executed, and therefore the ./configure script, which the  
configure phase it trying to run, does not exist, hence the error  
message about no such file or directory. Hopefully if you would run  
the install in debug mode ("sudo port -dv install"), error messages  
to this effect would be printed. I think you would need something  
like this:

         pre-configure {
                 system "cd ${worksrcdir} && autopoint -f"
                 system "cd ${worksrcdir} && aclocal -I autoconf"
                 system "cd ${worksrcdir} && autoheader"
                 system "cd ${worksrcdir} && automake --foreign --add- 
missing"
                 system "cd ${worksrcdir} && autoconf"
         }




More information about the macports-dev mailing list