Robert Hinn wrote:

Hello,

I was wondering: seeing some ports called *-devel in the list, does MacPorts offer a sub-package mechanism?

Sadly, it doesn't. The "*-devel" ports are experimental/pre-release, like if "foo" is the stable release then "foo-devel" is the unstable version. This is like BSD Ports, but unlike RPM and DEB.

I haven't found anything in the guide, so I considered using variants as a proper way to handle optional features in a software which I would otherwise build a sub-package for.

That's how it usually works. But there is only one package built, with all files.

Also, following the discussion about binary builds, I think it might get difficult if there are variants of a package that offer optional features which result in some destroot files only being built for certain variants. You'd have to specify which files belong to which variant in that case... Is there already a mechanism for that in the portfiles?

It is difficult, as each combination of variants will be a new package. Variants do not equal subpackages, like some other build systems have (for instance RPM has one separate file list for each subpackage, where as the variants are called "options" and given as rpmbuild arguments)

For archives (tgz/tbz/tlz), the variants used are encoded in the file name. For packages (pkg/rpm/deb), all different variants use the same file name.

I definitely like the idea of binary builds. Although I am a developer, I usually like to get required packages into my system as quickly and hasslefree as possible, so I can continue my work. And I think most users wouldn't want a build environment on their machine if they're not developers (the Mac OS X SDK is an optional install, too ;-) ).

MacPorts doesn't yet have any such subpackages. So developer files are mandatory at the moment.

I also like sub-packages (variants?) very much, since they reduce the need for package dependencies which I don't really need on my machine...

Sub-packages are nice, but variants aren't the same (they are also nice, but a different concept)

Is it okay to use variants for sub-package-like behavior (which I am currently doing in the pike port I updated), or should this done another way?

Fink uses "Split-Off:" to designate subpackages:
http://wiki.finkproject.org/index.php/Fink:Shlibs_tutorial#SplitOffs

--anders

_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to