<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Dec 3, 2021 at 6:23 PM <a href="mailto:stes@PANDORA.BE">stes@PANDORA.BE</a> <<a href="mailto:stes@telenet.be">stes@telenet.be</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Hello,<br>
<br>
On the website <a href="http://pkg.opendiana.org" rel="noreferrer" target="_blank">pkg.opendiana.org</a> I entered "pycairo" in Package Search.<br>
<br>
This results in some packages like :<br>
<br>
library/python-2/pycairo <br>
library/python-2/pycairo-26 <br>
library/python/pycairo <br>
library/python/pycairo-26<br>
library/python/pycairo-27<br>
library/python/pycairo-34 <br>
library/python/pycairo-35<br>
<br>
Those are distinct IPS packages not versions of the same IPS package.<br>
<br>
Without knowing the details of the python Makefile rules, I think the manifests<br>
<br>
./pycairo/pycairo-PYVER.p5m<br>
./pycairo/pycairo-GENFRAG.p5m<br>
<br>
the PYVER is somehow replaced by the Python Version that is targeted.<br>
<br>
So producing a 37 or 39 package could produce a different package without obsoleting the old package,<br>
and perhaps using a "mediator" it is possible to deliver the same file in two different IPS packages.<br>
<br>
The mediator in this case could be the python mediator ?<br>
<br>
Unfortunately I'm not familiar with the python build framework, but if you search/grep for mediator,<br>
there are many examples.<br>
<br>
For example<br>
<br>
grep mediator */*.p5m<br>
<br>
setuptools/setuptools-PYVER.p5m:link path=usr/bin/easy_install target=easy_install-$(PYVER) mediator=python \<br>
<br>
So the symbolic link /usr/bin/easy_install is set to the target easy_install-35 or easy_install-37 or whathever the mediator python indicates.<br>
<br>
Regards,<br>
David Stes<br>
<br>
----- Op 2 dec 2021 om 22:03 schreef gary mills <a href="mailto:gary_mills@fastmail.fm" target="_blank">gary_mills@fastmail.fm</a>:<br>
<br>
> I'm working on upgrading the pycairo package to the latest version,<br>
> but I've run into a conflict with the existing version.  Specifically,<br>
> the conflict is with usr/include/pycairo/py3cairo.h and<br>
> usr/lib/pkgconfig/py3cairo.pc, both of which are created by both<br>
> versions.  The existing version only supports python 3.5.  The latest<br>
> version supports only 3.7 and 3.9.  The latter are required by many<br>
> other packages.<br>
> <br>
> I could solve the conflict by obsoleting the existing pycairo package.<br>
> Is this possible?  Do I need to retain it?<br>
> <br>
> If I have to retain it, I'll need the Makefile to publish packages for<br>
> python 3.5, 3.7, and 3.9, using both the existing and latest versions<br>
> of the source.  How do I do that?  Is it even possible?  I haven't<br>
> seen any examples of doing that.<br></blockquote><div><br></div><div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default">You could split first the package in two directories:</div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default"><a href="https://github.com/OpenIndiana/oi-userland/commit/2de4e11a0f8069802bf0d32d3d937bb46edef321">https://github.com/OpenIndiana/oi-userland/commit/2de4e11a0f8069802bf0d32d3d937bb46edef321</a></div><br></div><div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default">Then provide the headers in /usr/include/pycairoXY like it was done for pycairo-27, and provide a symlink in the current version usr/include/pycairo/py3cairo.h -> usr/include/pycairoXY/py3cairo.h  using a $(PYTHON_X.Y_ONLY) in the manifest to include it only in X.Y version (or use the GENFRAG manifest), same for the *.pc file.</div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default">Actually file path=usr/include/pycairo is provided in py2cairo-27 as a symlink... so more work will be needed in the future...</div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default">When ready to switch to 3.9 as default version you can republish but you will need a dependency to the 3.5 version that does not ship the symlinks to avoid conflicts.<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small" class="gmail_default">It seems a bit overkill to introduce a mediator.<br></div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> <br>
> <br>
> --<br>
> -Gary Mills-          -refurb-                -Winnipeg, Manitoba, Canada-<br>
> <br>
> _______________________________________________<br>
> oi-dev mailing list<br>
> <a href="mailto:oi-dev@openindiana.org" target="_blank">oi-dev@openindiana.org</a><br>
> <a href="https://openindiana.org/mailman/listinfo/oi-dev" rel="noreferrer" target="_blank">https://openindiana.org/mailman/listinfo/oi-dev</a><br>
<br>
_______________________________________________<br>
oi-dev mailing list<br>
<a href="mailto:oi-dev@openindiana.org" target="_blank">oi-dev@openindiana.org</a><br>
<a href="https://openindiana.org/mailman/listinfo/oi-dev" rel="noreferrer" target="_blank">https://openindiana.org/mailman/listinfo/oi-dev</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><font style="font-family:courier new,monospace" size="1">---<br>Praise the Caffeine embeddings<br></font></div></div></div></div></div>