Yesterday, I was installing the latest KDE 4.10 beta, which is built from source.
The Gentoo KDE overlay already has ebuilds, which use KDE’s SVN as the source, rather than a tarball.
While installing all the packages, there was a failure to install kdeartwork-wallpapers
:
* Package: kde-base/kdeartwork-wallpapers-9999 * Repository: kde * Maintainer: kde@gentoo.org * USE: amd64 elibc_glibc kernel_linux userland_GNU * FEATURES: sandbox splitdebug userpriv usersandbox >>> Unpacking source... * Fetching disabled since 1 hours has not passed since last update. * Using existing repository copy at revision 1326016. * working copy: /usr/portage/distfiles/svn-src/kdeartwork/kdeartwork * Exporting parts of working copy to /var/tmp/portage/kde-base/kdeartwork-wallpapers-9999/work/kdeartwork-wallpapers-9999 rsync: link_stat "/usr/portage/distfiles/svn-src/kdeartwork/kdeartwork/wallpapers" failed: No such file or directory (2) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9] * ERROR: kde-base/kdeartwork-wallpapers-9999 failed (unpack phase): * {ESVN}: can't export subdirectory 'wallpapers' to '/var/tmp/portage/kde-base/kdeartwork-wallpapers-9999/work/kdeartwork-wallpapers-9999/'. * * Call stack: * ebuild.sh, line 93: Called src_unpack * environment, line 4224: Called kde4-meta_src_unpack * environment, line 3403: Called kde4-meta_src_extract * environment, line 3309: Called die * The specific snippet of code: * rsync --recursive ${rsync_options} "${wc_path}/${subdir%/}" "${S}/${targetdir}" || die "${escm}: can't export subdirectory '${subdir}' to '${S}/${targetdir}'."; * * If you need support, post the output of `emerge --info '=kde-base/kdeartwork-wallpapers-9999'`, * the complete build log and the output of `emerge -pqv '=kde-base/kdeartwork-wallpapers-9999'`. * This ebuild used the following eclasses from overlays: * /var/lib/layman/kde/eclass/kde4-meta.eclass * /var/lib/layman/kde/eclass/kde4-base.eclass * /var/lib/layman/kde/eclass/kde4-functions.eclass * /var/lib/layman/kde/eclass/cmake-utils.eclass * This ebuild is from an overlay named 'kde': '/var/lib/layman/kde/' * The complete build log is located at '/var/tmp/portage/kde-base/kdeartwork-wallpapers-9999/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/kde-base/kdeartwork-wallpapers-9999/temp/environment'. * Working directory: '/var/tmp/portage/kde-base/kdeartwork-wallpapers-9999/work/kdeartwork-wallpapers-9999' * S: '/var/tmp/portage/kde-base/kdeartwork-wallpapers-9999/work/kdeartwork-wallpapers-9999'
This is a simple package, and since it is a live ebuild, I assumed a directory had been moved and set about debugging the problem. I spent a good amount of time looking into the KDE eclasses, trying to figure out how to figure out what was being built. Only after a while of this, during another attempt at compiling the package, did I realize that SVN could be the culprit.
A little digging revealed that indeed SVN, for reasons unknown, had done only a partial checkout of the repository. Indeed trying manually to checkout the entire part of the repository required was never successful in one go: it took multiple manual resumes to checkout the complete repository. Somehow, this error was never detected by Portage.
Having not even touched SVN for 8 months, after several years of begrudingly using it, I had totally forgotten the sort of pains it allowed.