pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: How to express package dependency that doesn't require updating?

David Shao <> writes:

> I would like to have the line
> CONFIGURE_ARGS+=    --with-pciids-path=${PREFIX}/share/pciids
> added to the Makefile for libpciaccess, but I would like libpciaccess
> to only care that misc/pciids is installed and not update as a
> dependency when pciids is updated with say:
> pkg_rolling-replace -suv

Generally, -s is not needed; it forces a rebuild even if the package
version has not changed.  However,  pciids should get a new version
every time it changes, so pkg_rr with or without -s should behave the
same way.

We need to be careful, because the point of the rebuild rules (pkg_rr
and bulk builds) is that one ends up in the same state as if doing a
full build from nothing.   It's not clear if what you want is consistent
with that.

> libpciaccess would only care that the file pci.ids is in the directory
> /usr/pkg/share/pciids/ and not what the contents of that file are for
> updating purposes.

I think what you mean is that you would like to split the notion of ABI
(more broadly, run-time interface) into two parts:

  a definition of what is logically a procedure call

  data returned by that procedure call

and then:

  make pcciids only update the first notion of ABI

  teach pkg_rr and bulk builds that only a change in the first notion of
  ABI triggers a rebuild

This is a lot of work, and the real gain is in marking packages that
have bug fixes but not an ABI change and not an API change in such a way
that they don't have new version numbers.  Not only is this tricky to
get right, but it introduces the chance of not getting the right answer
because there was a real change that wasn't noted.

> The file pci.ids is updated frequently, and it would be extremely
> painful to update every single port depending on libpciaccess every
> time pci.ids is updated.

Is it really?  Have you tried, and how long does it take?  Using bulk
builds, or pkg_rr?

hal is the only dependency.

Why are you using "-s" on pkg_rolling-replace?  You are asking for
behavior which is less strict than normal about dependency updates, but
are using an option that causes more strict than normal behavior.
I never use -s unless I have a problem, and then I view the situation as
due to a bug.

But, I think bulk builds are going to be harder, because there the
focus on getting repeatable answers is stronger.

I'm opposed to baking in pciids data to other packages, unless it also
affects the version number, because then you'll have two packages with
the same version and different contents.

I am also not following how pci.ids gets changed frequently.  The pkgsrc
entry refers to a specific file with a 2009 date.  My package was last
updated in June (not sure why), and doesn't seem to be out of date.
Where are these frequent updates coming from, and how are they
manifesting themselves in pkgsrc?

I agree with jperkin@ that choosing to update the pciids package just
before each branch (eg. on 9/1) makes sense as a workaround for less
than optimal dependency management.

Attachment: pgpVdtOFEjxeU.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index