On May 28, 2015, at 11:30 AM, René J.V. Bertin wrote:

> On Thursday May 28 2015 12:27:19 Lawrence Velázquez wrote:
> 
>> Install some dummy files instead of failing. Something like this:
>> 
>>    PortSystem 1.0
>>    name foo
>>    supported_archs noarch
>>    archive_sites
>>    distfiles
>>    use_configure no
>>    build {}
>>    destroot {
>>        system "echo $name is a stub port 
>> >${destroot}${prefix}/share/doc/${name}/README"
>>    }
> 
> I thought I'd been told not to override build and/or other phases, a while 
> ago, but use some formula instead.

The above is the currently-accepted method of implementing a stub port, in the 
absence of a portfile option like "stub yes" which I would prefer because it 
would make it easier to locate stub ports.

https://lists.macosforge.org/pipermail/macports-dev/2014-September/028120.html

Even introducing a stub portgroup would be preferable to repeating this code 
everywhere.


In general you should not override phases if there are alternatives. Note in 
the above that the archivefetch, fetch, checksum, extract, patch and configure 
phases are not being overridden because alternatives are being used. 
(archivefetch is skipped because archive_sites is cleared; fetch, checksum and 
extract are skipped because distfiles is cleared; patch is skipped because 
patchfiles is empty; configure is skipped because use_configure is set to no 
(which also disables the universal variant, as does setting supported_archs to 
noarch).)


I don't like the name "stub port" because it is confusingly similar to 
"subport" which is a different concept. But not all stub ports are meta ports 
so we can't just call them meta ports.


> I shouldn't have mentioned raising an error: in fact I want to use the main 
> port to depend on a specific subport by default (sort of like a default 
> subport).

Right, that's done a lot, for example in all the py-*, p5-* and php-* ports. 
But that's the type of port I think of as not being a meta port. Maybe I'm 
overthinking the terminology, but I'm differentiating between a port that does 
nothing but depend on more than one other port for the purpose of making it 
easier to install a collection of ports (like the gimp port), and a port that 
does nothing but install a default subport of itself (e.g. the py, p5, php 
ports, etc.)

_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to