bundle plasma packages together

Sandro Knauß hefee at debian.org
Thu Nov 12 00:01:23 GMT 2020


Hey,

as we have another hard ride for testing users when we push a new plasma version,
it came to my mind, that we may should help Britney to provide the correct metadata.
For KDE PIM we solved this by using virtual packages to bundle,
kde pim does not guarantee ABI stability at all, so virtual package and dropping
symbols files was a good way forward.
Plasma provide ABI stability, so we don't need to add virtual packages.

But we can still add the needed dependencies automatically. 

Serveral options:

1.
We can inject additional dependencies via symbols files
libcolorcorrect.so.5 libcolorcorrect5 #MINVER# 
->
libcolorcorrect.so.5 libcolorcorrect5 #MINVER# , libcolorcorrect5 (<< 5.20)

But this would needs manual updating the symbols file for every major bump. 
All depended packages would need to be recompiled. 
Don't know how many packages depend on plasma outside plasma umbrella and you need
to request a transition.
This approach overrides the idea of symbols files a little bit.

2.
Remove symbols files, so the dependencies are generated by shlibs and use some logic in rules to generate blocking dependencies. Downside with this approach is the same like for option 1 but at least no manual step to update the version is needed.

(debian/rules)

include /usr/share/dpkg/pkg-info.mk
MainVersion = $(call dpkg_late_eval,MainVersion,echo '${DEB_VERSION_UPSTREAM}' | sed -e 's/^.*\.\([0-9]\+\)\.[0-9]\+$$/\1/')
NextVersion = $(call dpkg_late_eval,NextVersion, echo "$$(( ${MainVersion}+1 ))" )
NextMainPackageVersion = $(call dpkg_late_eval,NextMainPackageVersion,echo '${DEB_VERSION_EPOCH_UPSTREAM}' | sed -e 's/\.[0-9]\+\.[0-9]\+$$/.${NextVersion}/')
pkgs_lib = $(filter-out %-dev %-dbg %-bin %-data,$(filter lib%,$(shell dh_listpackages)))

override_dh_makeshlibs:
        for pkg in $(pkgs_lib); do \
                dh_makeshlibs -a -Xusr/lib/libkdeinit5_\* -O--buildsystem=kf5 -p$${pkg} -V "$${pkg} (>= $(DEB_VERSION_EPOCH_UPSTREAM)), $${pkg} (<< $(NextMainPackageVersion)~)"; \
        done

3. 

manipulate the substvars file to add (<< NEXTVERSION) for plasma umbrella packages. I don't have a good idea how to detect if a dependency is a plasma umbrella package. In the end you end with the same like the group break approach, but maybe this opens a way to have less manual steps.

Maybe others have also more ideas.

hefee
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://alioth-lists.debian.net/pipermail/pkg-kde-talk/attachments/20201112/bd630257/attachment.sig>


More information about the pkg-kde-talk mailing list