Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-16 Thread PHO

On 4/16/24 21:54, Riccardo Mottola wrote:

Then I went up and tried to remove these py39 packages.. and up to the 
tree... I was able to remove them all! No non-python package depended on 
them up to python39 removal. I did the same for python 3.10 and 3.8 
stuff, so I end up with py2.7 and py3.11 which is fine!

I hope I really didn't break anything.
I wonder if this is automated by your steps above? I thought 
pkg_rolling-replace -uv would take care of it.


pkg_rr doesn't, but pkgrrxx(8) from pkgtools/pkgchkxx does something 
better in that regard. Suppose you have installed py39-tomli-2.0.0 and 
py310-tomli-2.0.0 but you haven't installed py311-tomli-2.0.0, and the 
pkgsrc tree was updated to py-tomli-2.0.1nb1. In this case "pkgrrxx -u" 
marks both py39-tomli and py310-tomli as MISMATCH_TODO and attempts to 
rebuild both of them. On the other hand it doesn't try to update 
py311-tomli because it wasn't installed in the first place.


Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-16 Thread Greg Troxel
Riccardo Mottola  writes:

> should I unkeep all stuff I don't know, including dependencies?
> sometimes packages are important, but unknown since dependencies.
> Python is an extreme example: I don't want it (except 2.7 core I need
> to build certain things) but it is pulled in as dependency and all its
> modules too.. from various software, where maybe it is not even a core
> thing.

'keep' is about a package being actively desired.  "pkgin ar" will
remove packages if a) they are not actively desired and b) they are not
a dependency of some package that is being kept.

So if you don't actually want it, uk it.  If it's needed because of
something you do want, it will stay.

I probably should have python311 marked keep on a few systems because I
run scripts outside of pkgsrc, but I have e.g. py311-paho-mqtt marked
keep (because the script uses that) so I don't mark python.

> I installed pkgin, I don't have it since I am using current, there is
> no repository. I understand that for the operation above no repo is
> needed though.

Correct; it doesn't need one.  However you can make one by creating a
summary file from the binary packages you have created (since of course
you keep them :)

  # regenerate for pkgin
  pkgsum () { ls *gz | xargs pkg_info -X | bzip2 > pkg_summary.bz2; }

> # pkgin sk
> processing remote summary
> (https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/10.99.10/All)...
> pkgin: Could not fetch
> https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/10.99.10/All/pkg_summary.gz:
> Not Found
>
> Do you suggest just pointing it to 10.0 repo to silence it? I don't
> want to mix current with binaries.

No, I suggest making a summary file from your own packages and pointing
to that.  Either that or ignoring the warning, or configuring no repo at
all and see how that goes.

> I went for another route. I tried pkg_delete. I hope this one keeps
> correctly track of dependencies with versions! It seems to.
>
> pkg_delete py39-tomli-2.0.1nb1
> Package `py39-tomli-2.0.1nb1' is still required by other packages:
>     py39-pyproject_hooks-1.0.0nb1
>     py39-build-1.2.1
>     py39-setuptools_scm-8.0.4
>     py39-hatchling-1.22.5
>
> Then I went up and tried to remove these py39 packages.. and up to the
> tree... I was able to remove them all! No non-python package depended
> on them up to python39 removal. I did the same for python 3.10 and 3.8
> stuff, so I end up with py2.7 and py3.11 which is fine!

If you have done uk, and then ar, this probably would have happened.

> I hope I really didn't break anything.
> I wonder if this is automated by your steps above? I thought
> pkg_rolling-replace -uv would take care of it.

No, pkg_rr does not have any code to deal with multi-version.

> yay :) However lintpksgrc is less happy:
>
> Scan Makefiles: 19598 packages
> Version mismatch: 'py-cairo' 1.18.2nb6 vs 1.26.0nb1
> Unknown package: 'py-gobject' version 2.28.7nb5
> Unknown package: 'py-gtk2' version 2.24.0nb48
> Version mismatch: 'py-setuptools' 44.1.1nb1 vs 69.5.1
>
> again here I think the multi-version is what bites me:
>
> # pkg_info | grep setuptools
> py27-setuptools-44.1.1nb1 New Python packaging system (python 2.x version)
> py311-setuptools-69.5.1 New Python packaging system

yes, more hacking is needed to really fix all this.

I am just pointing out that uk/ar hygiene avoids a lot of grief.



Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-16 Thread Riccardo Mottola

Hi,

maybe pkg_chck should understand multi-version one day... it is becoming 
a common disease for python, perl... but also other packages.


Greg Troxel wrote:

Yes, all flowing from python's lack of API compat.

This may not help, but I recommmend:

   pkgin sk
   pkgin uk foo # for any kept foo that you don't  actually want
   pkgin ar

which gets rid of a lot of stuff that you don't need -- and don't need
to rebuild.


should I unkeep all stuff I don't know, including dependencies? 
sometimes packages are important, but unknown since dependencies.
Python is an extreme example: I don't want it (except 2.7 core I need to 
build certain things) but it is pulled in as dependency and all its 
modules too.. from various software, where maybe it is not even a core 
thing.


I installed pkgin, I don't have it since I am using current, there is no 
repository. I understand that for the operation above no repo is needed 
though.


# pkgin sk
processing remote summary 
(https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/10.99.10/All)...
pkgin: Could not fetch 
https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/10.99.10/All/pkg_summary.gz: 
Not Found


Do you suggest just pointing it to 10.0 repo to silence it? I don't want 
to mix current with binaries.




After that, if you have  py310-foo, then

   make PYTHON_VERSION_REQD=310 replace

in foo (or something very close to that as I haven't done this in
months).


I will try this... next time!

I went for another route. I tried pkg_delete. I hope this one keeps 
correctly track of dependencies with versions! It seems to.


pkg_delete py39-tomli-2.0.1nb1
Package `py39-tomli-2.0.1nb1' is still required by other packages:
    py39-pyproject_hooks-1.0.0nb1
    py39-build-1.2.1
    py39-setuptools_scm-8.0.4
    py39-hatchling-1.22.5

Then I went up and tried to remove these py39 packages.. and up to the 
tree... I was able to remove them all! No non-python package depended on 
them up to python39 removal. I did the same for python 3.10 and 3.8 
stuff, so I end up with py2.7 and py3.11 which is fine!

I hope I really didn't break anything.
I wonder if this is automated by your steps above? I thought 
pkg_rolling-replace -uv would take care of it.


Now p_rr tells me
RR> No more packages to replace; done.

yay :) However lintpksgrc is less happy:

Scan Makefiles: 19598 packages
Version mismatch: 'py-cairo' 1.18.2nb6 vs 1.26.0nb1
Unknown package: 'py-gobject' version 2.28.7nb5
Unknown package: 'py-gtk2' version 2.24.0nb48
Version mismatch: 'py-setuptools' 44.1.1nb1 vs 69.5.1

again here I think the multi-version is what bites me:

# pkg_info | grep setuptools
py27-setuptools-44.1.1nb1 New Python packaging system (python 2.x version)
py311-setuptools-69.5.1 New Python packaging system

Riccardo


Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-15 Thread Greg Troxel
Riccardo Mottola  writes:

> *** pkg_chk reports the following packages need replacing, but they
> are not installed: py311-tomli
> *** Please read the errors listed above, fix the problem,
> *** then re-run pkg_rolling-replace to continue.

> # pkg_info | grep tomli
> py310-tomli-2.0.1nb1 Lil' TOML parser
> py39-tomli-2.0.1nb1 Lil' TOML parser

This is pkg_rr inheriting pkg_chk's lack of grasping multi-version packages. 

> Does pkg_rr has a "cache" or is it fresh calculated information?

There is no pkg_rr cache but rebuild, unsafe_depends and mismatch are
stored as package variables.

> Again python modules pain :)

Yes, all flowing from python's lack of API compat.

This may not help, but I recommmend:

  pkgin sk
  pkgin uk foo # for any kept foo that you don't  actually want
  pkgin ar

which gets rid of a lot of stuff that you don't need -- and don't need
to rebuild.

After that, if you have  py310-foo, then

  make PYTHON_VERSION_REQD=310 replace

in foo (or something very close to that as I haven't done this in
months).


Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-15 Thread Rhialto
On Mon 15 Apr 2024 at 17:19:14 +0200, Riccardo Mottola wrote:
> Does pkg_rr has a "cache" or is it fresh calculated information?

It has a sort of cache, as hinted at by this:

> rr> WARNING: mismatch variable not set due to permissions;
> rr>  mismatch status will not persist.

where (if allowed) it sets a "mismatch" variable in the pkgdb on
packages that are reported as mismatches. So the next time you don't
need to run pkg_chk (the -u option) again. If the package gets deleted
for some reason, the flag is deleted with it.

So this would not explain your case, I think.

> Riccardo
-Olaf.
-- 
___ Olaf 'Rhialto' Seibert
\X/ There is no AI. There is just someone else's work.   --I. Rose


signature.asc
Description: PGP signature


Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-15 Thread Riccardo Mottola

Hi Greg,

once gtk3 was sorted out, pkg_rr completed. Yay. Then I did re-run it, 
to check, and I see this:


RR> Checking for mismatched installed packages using pkg_chk
rr> Installed: py311-tomli-2.0.1nb1 py311-tomli-2.0.1nb1
rr> WARNING: mismatch variable not set due to permissions;
rr>  mismatch status will not persist.
RR> Excluding the following mismatched packages:
rr> EXCLUDE=[]
RR> Checking for rebuild-requested installed packages (rebuild=YES)
RR> Checking for unsafe installed packages (unsafe_depends=YES)
RR> Packages to rebuild:
rr> MISMATCH_TODO=[py311-tomli]
rr> REBUILD_TODO=[]
rr> UNSAFE_TODO=[]
RR> Building dependency graph for installed packages
RR> Tsorting dependency graph
*** pkg_chk reports the following packages need replacing, but they are 
not installed: py311-tomli

*** Please read the errors listed above, fix the problem,
*** then re-run pkg_rolling-replace to continue.

possibly the package was installed but I removed it? Or is it getting 
confused between 3.10 and 3.11 Python versions:


I have:
# pkg_info | grep tomli
py310-tomli-2.0.1nb1 Lil' TOML parser
py39-tomli-2.0.1nb1 Lil' TOML parser

Does pkg_rr has a "cache" or is it fresh calculated information?

Again python modules pain :)

Riccardo


Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-15 Thread Riccardo Mottola

Hi Greg,

Greg Troxel wrote:

gtk3 is buggy.  It tries to link against installed libs during the
build, instead of only the libs being built.

I did
   pkg_delete -f gtk3+
and then it builds fine.

Actually fixing this is harder; you'll have to find where gtk3+'s build
manages to have /usr/pkg/lib in the search path first.  This sort of
thing is gradually getting better, but it's hard.  And, people that only
pbulk don't hit it, so the set of motivated people is smaller.  However,
it will probably only take one person who is both motivated and has a
round tuit to fix this.


thanks for the tip... didn't thought of it, I was seeking for existing 
broken libraries, while the broken library was gtk3 itself.


I too did pkg_delete -f gtk3+, then manually make_replace fails, because 
it is not installed. I used make_install and then:



sudo pkg_admin set automatic=YES gtk3+-3.24.41nb2


I suppose that should be equivalent to make_replace of a dependency package.

Now... let's restart pkg_rr and see where it goes!

Riccardo


Re: Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-14 Thread Greg Troxel
Riccardo Mottola  writes:

> I am running 10.99.10 and updated pkgsrc and want to upgrade with
> pkg_rolling-replace
>
> gtk3 fails with the error below.

This is about 'make replace', not pkg_rr.

> I see the issue on freetype, which is a little scary.
> The blocking problem whough is that libgdk-3 has undefined reference
> to X symbols!

gtk3 is buggy.  It tries to link against installed libs during the
build, instead of only the libs being built.

I did
  pkg_delete -f gtk3+
and then it builds fine.

Actually fixing this is harder; you'll have to find where gtk3+'s build
manages to have /usr/pkg/lib in the search path first.  This sort of
thing is gradually getting better, but it's hard.  And, people that only
pbulk don't hit it, so the set of motivated people is smaller.  However,
it will probably only take one person who is both motivated and has a
round tuit to fix this.



Upgrade of current pkgsrc fails due to gtk3 on 10.99

2024-04-14 Thread Riccardo Mottola

Hi,

I am running 10.99.10 and updated pkgsrc and want to upgrade with 
pkg_rolling-replace


gtk3 fails with the error below.

I see the issue on freetype, which is a little scary.
The blocking problem whough is that libgdk-3 has undefined reference to 
X symbols!


A check:
$ ls -l /usr/pkg/lib/libgdk-3.so.0
lrwxr-xr-x  1 root  wheel  21 Mar 21 00:24 /usr/pkg/lib/libgdk-3.so.0 -> 
libgdk-3.so.0.2409.32


shows that it is quite an old compiled library, so it has not been 
processed by pkg_rolling-replace.


However, lintpkgsrc doesn't show gdk or similar to be outdated:


Ideas? Riccardo
---


[25/908] Generating gtk/Gtk-3.0.gir with a custom command (wrapped by 
meson to set env)

FAILED: gtk/Gtk-3.0.gir
env 
PKG_CONFIG_PATH=/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/meson-uninstalled 
PKG_CONFIG=/usr/pkgsrc/x11/gtk3/work/.tools/bin/pkg-config CC=gcc 
/usr/pkg/bin/g-ir-scanner --quiet --no-libtool --namespace=Gtk 
--nsversion=3.0 --warn-all --output gtk/Gtk-3.0.gir 
--c-include=gtk/gtk.h --quiet -DGTK_COMPILATION 
--c-include=gtk/gtk-a11y.h --c-include=gtk/gtkx.h 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gtk 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gtk 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gdk/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gtk 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gtk 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gdk/x11 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk/x11 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gdk/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk/. 
--filelist=/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gtk/libgtk-3.so.0.2409.32.p/Gtk_3.0_gir_filelist 
--include-uninstalled=gdk/Gdk-3.0.gir --include=Atk-1.0 
--include=xlib-2.0 --symbol-prefix=gtk --identifier-prefix=Gtk 
--pkg-export=gtk+-3.0 --cflags-begin -DG_LOG_USE_STRUCTURED=1 
-DGLIB_MIN_REQUIRED_VERSION=GLIB_VERSION_2_56 
-DGLIB_MAX_ALLOWED_VERSION=GLIB_VERSION_2_58 '-DGTK_VERSION="3.24.41"' 
-D_GNU_SOURCE -I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gdk/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk/. 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gtk 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gtk 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/gdk/x11 
-I/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk/x11 
-I/usr/pkg/include -I/usr/pkg/include/glib-2.0 
-I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gio-unix-2.0 
-I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/cairo 
-I/usr/X11R7/include -I/usr/X11R7/include/pixman-1 
-I/usr/pkg/include/fribidi -D_REENTRANT -I/usr/pkg/include/harfbuzz 
-I/usr/pkg/include/freetype2 -I/usr/pkg/include/libpng16 
-I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/atk-1.0 
-I/usr/X11R7/include/libdrm -I/usr/pkg/include/at-spi2-atk/2.0 
-I/usr/pkg/include/at-spi-2.0 -I/usr/pkg/include/dbus-1.0 
-I/usr/pkg/lib/dbus-1.0/include 
-I/usr/pkg/include/gobject-introspection-1.0 -I/usr/pkg/include 
-I/usr/include -I/usr/pkg/include/glib-2.0 
-I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include 
-I/usr/include/krb5 -I/usr/X11R7/include -I/usr/pkg/include/freetype2 
-I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm 
-I/usr/pkg/include -I/usr/include -I/usr/pkg/include/glib-2.0 
-I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include 
-I/usr/include/krb5 -I/usr/X11R7/include -I/usr/pkg/include/freetype2 
-I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm --cflags-end 
--add-include-path=/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk 
--add-include-path=/usr/pkg/share/gir-1.0 
--add-include-path=/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk 
-L/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gtk --library gtk-3 
-L/usr/pkgsrc/x11/gtk3/work/gtk+-3.24.41/output/gdk -L/usr/pkg/lib 
-L/usr/lib -L/usr/X11R7/lib -L/usr/pkg/lib --extra-library=gmodule-2.0 
--extra-library=glib-2.0 --extra-library=intl 
--extra-library=gobject-2.0 --extra-library=gio-2.0 
--extra-library=pangocairo-1.0 --extra-library=pango-1.0 
--extra-library=harfbuzz --extra-library=cairo 
--extra-library=pangoft2-1.0 --extra-library=freetype -L/usr/X11R7/lib 
--extra-library=fontconfig --extra-library=fribidi 
--extra-library=cairo-gobject --extra-library=gdk_pixbuf-2.0 
--extra-library=atk-1.0 --extra-library=epoxy --extra-library=m 
--extra-library=Xi --extra-library=X11 --extra-library=atk-bridge-2.0 
--extra-library=rt --extra-library=xkbcommon 
--extra-library=wayland-client --extra-library=wayland-cursor 
--extra-library=wayland-egl --extra-library=Xrender --extra-library=Xext 
--extra-library=Xcursor --extra-library=Xdamage --extra-library=Xfixes 
--extra-library=Xcomposite --extra-library=Xrandr 
--extra-library=Xinerama --extra-library=girepository-1.0 
--sources-top-dirs