Subject: Re: X11 packages
To: Robert Elz <kre@munnari.OZ.AU>
From: Johnny Lam <jlam@jgrind.org>
List: tech-pkg
Date: 12/01/2001 06:30:05
On Sat, Dec 01, 2001 at 07:25:21PM +0700, Robert Elz wrote:
> 
> It would probably be a good idea to make it impossible to install xpkgwedge
> after X pkgs have been installed, and impossible to remove it if any X
> pkgs remain installed.   The latter just means making every X application
> (that needs xpgkwedge facilities, other than just the change of install
> location, which is most of them) have an explicit dependency on xpkgwedge.

I think this basically means the packages that use Imakefiles, or have
app-defaults files.  The only problem I have with an explicit dependency
on xpkgwedge is that xpkgwedge is only used at build-time; there are no
files it installs that are used at run-time, except for possibly pkgxmkmf,
which allows Imakefiles to work properly when they reference xpkgwedge'd
X11 packages.

> For the former, perhaps the xpkgwedge buildlink could test if xpkgwedge
> is installed (which it does now), and if not, then build and install
> something called xpkgwedge-fake, which is nothing at all (other than an
> entry in the pkgdb) - but which conflicts with xpkgwedge.   Then to install
> xpkgwedge, xpkgwedge-fake would need to be deleted, but all those X apps
> would now have a dependency on xpkgwedge-fake embedded in them, so it would
> be obvious that they have to be removed and reinstalled.

I see the good you're describing here: this allows binary packages to fail
as expected when they come from non-xpkgwedge and xpkgwedge builds, e.g.
graphics/xpm built with xpkgwedge wouldn't be usable as a dependency for
graphics/gd built without xpkgwedge because they conflict when xpkgwedge-fake
tries to install but is blocked by xpkgwedge.  I really like this idea.  I
hope other package developers can chime in here with their thoughts.

> I don't know if this is enough to guarantee that the packages actually get
> recompiled though - does the pkg dependency system cope with that, or if the
> work files are all still around, would a new "make install" just use them
> and reinstall ?

If the work directories are still around, then pkgsrc just checks for the
presence of the .*_cookie files it creates to determine what it's done so
far.  So, the short answer is: you need to do an explicit "make clean", then
"make install" if you have old work directories.

> Doing this, I have come across a number of things that are broken, which I
> suspect are xpkgwedge related (that is, the pkg isn't coping).
> Many are games ...
> 
> xmris wants its score file in X11R6 somewhere
> xmahjongg can't find its tiles - I did a ktrace to see if I could see
> where it was looking, and failed to see anything at all...  but I have never
> had that problem without xpkgwedge
> xfig can't find its app-defaults file

If you find any other packages, please send-pr that they fail with xpkgwedge.
I'll take a look at the packages you've named above.

> And at the minute I don't recall what else there was - but overall it has
> all worked very well.    Thanks for the work.

We must thank Todd Vierling for coming up with the concept and the initial
implementation.  Thanks, Todd!

	Cheers,

	-- Johnny Lam <jlam@jgrind.org>