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.