84 lines
3.7 KiB
Plaintext

Here is a checklist for updating KDE4 SC. The same should apply to
KDE5 in future. Based on mistakes zhuk@ did (often) in the past.
Feel free to improve and extend with description of non-trivial
errors could happen.
Those instructions could miss something critical due to changes in
KDE build system or interdependencies; beware and please keep this
file up-to-date to at least avoid extra errors on minor updates.
* Use "sh ./kde-release-helper prepare X.Y.Z" to get testing directory
${PORTSDIR}/x11/kdeXYZ. This will strip REVISIONs in Makefiles,
remove distinfo (so that it will be easy to detect ports you didn't
gone through yet) and so on. Note that CVS/Root files will still
point under ports/x11/kde4, so you can fix other things under
x11/kde4 and then simply "cvs up" under x11/kdeXYZ. Make sure that
X.Y.Z is added to the _MODKDE4_OTHERS line in x11/kde4/kde4.port.mk.
* Use "sh ../kde4/kde-release-helper check-lists" to see what
packages are new and what are not. This will work only after official
KDE release announcement made, though, because it uses the official
mirrors to download lists of distfiles. The changes in l10n packages
list should be reflected in l10n/Makefile.langs.
* Check if resources-only ports (kde-wallpapers, oxygen-icons,
base-artwork) were changed at all. If not, then it's better override
MODKDE4_VERSION in those ports to avoid users re-download same
package.
* Generic workflow for updating ports:
1. make configure
If the "patch" stage fails, fix, then redo "make configure".
Check for dependency changes, and pay attention to the messages
like "could not determine proper linking order": those indicate
wrong order in target_link_libraries() calls that should be fixed.
Those warnings usually won't happen on a clean system (no other
versions of KDE installed, so it's RECOMMENDED to do manual part
of the update while having all of the KDE SC installed.
2. make update-plist
Pay attention to NOT removing the following lines from pkg/PLIST:
share/apps/solid/
share/apps/solid/actions/
The removal could happen due to the fact that default run-time
dependency in case of multimedia/phonon ports module happens on
phonon-vlc, which in turn depends on (surprise!) x11/vlc, which
in turn already contains those. But the other Phonon backend,
phonon-gstreamer, doesn't provide those directories. So to
support both backends, we should have those directories listed.
3. make port-lib-depends-check
Beware: it's known for stuff depending on the R package to display
non-critical warnings about libraries not found here.
* Update of l10n stuff is simple:
cd l10n/ru && make makesum && cd .. && \
make DANGEROUS=yes update-plist package
The build framework will take care on tweaking CMakeLists.txt and
removing extra stuff like localized manual pages.
* Generic order of update:
1. oxygen-icons, smokegen, productivity/akonadi, multimedia/phonon*
2. libs, smokeqt, l10n
3. libk*, baloo, Qt bindings, *thumbs, graphics-mobipocket,
graphics-strigi-analyzer, kqtquickcharts
4. nepomuk-core, baloo-widgets, kross-interpreters
5. pimlibs, baseapps
6. runtime, pim-runtime, py-kde, okular, marble
7. kate, workspace
8. smokekde and everything else except KDE bindings and webdev
9. KDE bindings
10. webdev
* When you think you're done, merge things back:
sh ../kde4/kde-release-helper merge
* Now check that everything works fine still:
cd ../kde4 && make clean="all dist"
dpb x11/kde4
* On commit, remember to clean up REVISION marks and do other tweaks,
if needed, in meta/kde4, and commit it as well.
Also, remember to regen distinfo in x11/kde-shared-data and include
it in the KDE update commit.