Subject: Re: depends with wildcards in pkg_*
To: None <firstname.lastname@example.org>
From: Alistair Crooks <email@example.com>
Date: 09/08/1998 09:40:54
> [I do *not* talk about bsd.pkg.mk here!]
> Currently, if a pkg has some dependency with a wildcard in it (foo-*,
> bar>=97, ...), this fails to automatically install this package from
> pkg_add, as the name of the depending package is taken verbatime to create
> a filename that's handled to pkg_add then.
Actually, currently, there are no DEPENDS or CONFLICTS with wildcards
in them. We do plan to change this in the future.
> To improve this, pkg_add needs to look for a (binary!) package matching
> the requested dependency, and then install it.
> Issues here:
> 1. it should make a "best" match, chosing the binary package to be as
> current as possible (i.e. the highest version available)
> 2. the implementation for "local" packages (i.e. on local storage) would
> be to not use "base/package" but scan "base" for a binary package
> matching the given wildcard best (see above), and using that one then.
> 3. When installing via an ftp://-link, I dont' really see a possibility
> here to do the same, until someone comes up with some
> opendir()/readdir() workalike for FTP. Any suggestions here?
> Is there something missing? Suggestions?
Yes - there are two separate things here:
(a) a binary package on the localhost which can be used, as specified
in a DEPENDS+= lesstif>=0.85.2 type of way, and
(b) a binary package which should be fetched, if the DEPENDS+=
lesstif>=0.85.2 type of matching in (a) above fails - at the moment,
bsd.pkg.mk will go into the relevant directory at "make package" time,
and grab the version number and place that in the @pkgdep field of the
+CONTENTS file in the mozilla (or whatever) package.
Now, personally, I believe we should combine the two, and record both
in the +CONTENTS file, probably by using an extra @pkgmatch directive
for (a). This will be done automatically at "make package" time.
Please note that this is completely separate from the +REQUIRED_BY
file, which is a list of currently-installed packages on the
localhost, and should never include any wildcards or dewey relational