pkgsrc-Users archive

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

Re: python-related packages



Pierre Abbat <phma%bezitopo.org@localhost> writes:

> Continuing my rolling-replace, I get this:
>
> *** pkg_chk reports the following packages need replacing, but they are not 
> installed: py27-cups
> py27-dateutil
> py27-dbus
> py27-docutils
> py27-elementtree
> py27-icalendar
> py27-pyrex
> py27-pytz
> py27-qt4
> py27-roman
> py27-sip
> py27-vobject
> *** Please read the errors listed above, fix the problem,
> *** then re-run pkg_rolling-replace to continue.
>
> I picked one and found that py26-cups is installed. Is there a quick way to 
> tell it to replace all the py26-packages with py27-packages, or do I have to 
> build each one manually?

This is really not satisfactory in pkg_rr, or in pkgsrc itself.

The problem is that PYTHON_VERSION_DEFAULT is now 27, but you have 26
installed.  That's fine, but "make replace" in foo/py-bar will assume
you mean 27.  But, the package dir found by looking at the installed
package points there.

A further complication is that many python packages can be parallel
installed (py26-foo and py27-foo both).  But some have unversioned files
(like bin/foo) and thus cannot.

Also, typically some of these are dependencies of other more complicated
things.

So I tend to use something that is like pkg_chk -g.  My advice there is:

  First remove all packages that are automatic=YES and have no depending
  packages, repeating until there are none.  Check the others to see if
  you want them, and set automatic=YES.  This removes a lot of things
  that have accumulated that you don't need, and the less the better,
  especially at times like this.

  Implement an option to pkg_chk to list only manually-installed
  packages, so that automatic packages are skipped, and then use it.
  (If you need them, they'll be built, but you don't want the process to
  lose the automatic=YES.)


It would be nice if pkg_rolling-replace figured out that py26-foo was
26, and passed a PYTHON_VERSION variable to make replace, so that it
replaced the 26 version.  And if pkg_chk didn't report a mismatch,
because py26-foo-1.0nb2 is not actually mismatched (in the normal way)
with py27-foo-1.0nb2.

It would also be nice if "pkg_delete -f" marked any depending packages
unsafe_depends.  Then you could just "pkg_delete -f py26*" and rerun
pkg_rr, assuming that py26* was all automatic.

Attachment: pgpbmxPAql83S.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index