Hello, Richard.
On Wednesday, 20 March 2019 at 14:44, Richard Shaw wrote:
With PySide2 shiboken2, pyside2, and pyside2-tools are provided in
one big
source archive.
I'm working on packaging it[1] but the provided setuptools build system
calls CMake to perform builds and essentially fakeroot installs for build
dependencies between the three projects and then uses setuptools to
manipulate and copy/install the tree.
Problem 1:
Whether a bug in the setuptools script or a bug in setuptools itself
(exposed by their install method) instead of "installing" all three project
in %install it instead installs the same project 3 times when the --root
option is used[2].
I have worked around this temporarily by skipping %build and just
performing the install which also automatically performs builds. Any advice
setuptools experts would be appreciated.
That doesn't seem like a good solution. I'm no setuptools expert though.
What does upstream say about that?
Problem 2:
Trying to rationally break up the monolithic project into rational
sub-packages (including -devel).
Right now I've got the following:
pyside2-tools-5.12.1-1.fc31.x86_64.rpm
python3-pyside2-5.12.1-1.fc31.x86_64.rpm
python3-pyside2-devel-5.12.1-1.fc31.x86_64.rpm
python3-shiboken2-5.12.1-1.fc31.x86_64.rpm
python-pyside2-5.12.1-1.fc31.src.rpm
shiboken2-5.12.1-1.fc31.x86_64.rpm
But getting the inter-package dependencies setup correctly is proving to be
a pain because I'm only building for Rawhide in mock.
Why is it a pain?
Options:
Other distros, notably Arch just call the cmake projects directly instead
of using setuptools. There is a concern that the package may not be 100%
complete since setuptools does some install massaging. But we're not doing
a standalone install (embedded QT libraries) and I think I can pass the
correct options to the CMake build to make sure things install correctly, I
just having tried it yet.
Option A:
Continue fighting setuptools...
Option B1:
Build all the packages using CMake, which would require some sort of
fakeroot install for shiboken2 and pyside2.
Why do you need fakeroot here? Nothing wrong with using it though.
There's also pseudo which might be better.
Option B2:
Build all the packages using CMake but use the same source 3 times for 3
separate packages. like the original pyside and build in the typical
fashion:
shiboken2 -> buildroot override -> Pyside2 -> buildroot override ->
pyside2-tools -> All in one update.
Thoughts?
I'd go with whatever requires less work to maintain and release. A or B1
seem like the best candidates. You wouldn't need to play the build and
add buildroot override game for every update.
Regards,
Dominik
--
Fedora
https://getfedora.org | RPM Fusion
http://rpmfusion.org
There should be a science of discontent. People need hard times and
oppression to develop psychic muscles.
-- from "Collected Sayings of Muad'Dib" by the Princess Irulan