Question for fellow retro-computers : building kdelibs4 without nepomuk?
Duncan
1i5t5.duncan at cox.net
Tue May 28 12:17:36 BST 2024
René J.V. Bertin posted on Fri, 24 May 2024 12:38:29 +0200 as excerpted:
> On Friday May 24 2024 04:37:39 Duncan wrote:
>
>>As I recall, for most of kde4, even with semantic-desktop disabled (to
>>the degree possible)
>
> Do you happen to have a pointer to the most recent version of the patch
> you mentioned?
Any patches would be in the git repositories. The main gentoo repo
carries both ~arch (testing) and arch-stabilized versions (and patches);
the gentoo/kde project carries any betas/rcs not around long enough for
the main repo along with live-git versions (both release-branch and
master), with a project-repo first policy so everything that hits the main
repo (barring limited integration stuff added to the main repo by others
and synced back to the project repo) hits the gentoo/kde repo first.
Organization of both repos is by package category (kde-frameworks, kde-
apps, etc), package, with metadata and eclass (ebuild libraries used by
many package ebuilds) directories also at the category level.
Patches then appear in the files subdir within the package dir (within the
category dir). Patch names generally contain the version number the patch
was originally built for (tho it generally applies to later versions to...
until it doesn't as it was upstreamed or upstream changed and the patch is
rebased and retitled accordingly), and the patches themselves have a
comment (often the same as the corresponding git log entry) at the top
saying what they do.
Of course for kde I generally use the live ebuilds so most closely follow
the gentoo/kde repo, but the main gentoo repo should contain the last
carried (probably the last released but as I'm "live" I don't follow kde
in the main repo closely enough to know) 4.x version.
Links:
Gentoo/kde project git (choose your access method)
https://gitweb.gentoo.org/proj/kde.git/
https://anongit.gentoo.org/git/proj/kde.git
git+ssh://git@git.gentoo.org/proj/kde.git
Also mirrored to github:
https://github.com/gentoo-mirror/kde.git
Gentoo main repo git:
https://gitweb.gentoo.org/repo/gentoo.git/
(and presumably the other two methods too...)
github mirror:
https://github.com/gentoo-mirror/gentoo
Meanwhile, probably more of interest to other gentooers than to you...
while digging up the above I came across this page listing all the gentoo
hosted repos including all sorts of niche and user repos, and was just
/amazed/.
https://gitweb.gentoo.org/
>>if you're on Intel-Mac hardware,
>
> Apple haven't yet ditched all support for the Intel architecture (though
> surely will sooner rather than later given their track record in
> dropping support for older models). The problem is that this entire
> effort focusses on models even older than my own 2011 Mac.
Heh. 2011 sounds familiar. My primary system's still a 2011 AMD fx6100
(three compute-modules, each with a pair of single-thread intteger cores
sharing a single floating-point unit, so hardware 6-thread for integer,
effectively hyperthreaded for floating point).
I'm long since upgraded to SSDs, upgraded the graphics and have good
monitors, but that 2011 fx is really getting a bit long in the tooth for
building gentoo and I've been reluctantly using prebuilt binaries for the
bigger packages (like the browsers, I'm avoiding qtwebengine, see below)
as they're like 8-hour builds for a single package. (I can still do live-
git kde due only to a smart-rebuild script that only rebuilds on update,
and ccache caching the build artifacts so there's little actually
recompiling in the usual case. The first rebuild after a qt or or gcc
upgrade is murder tho, as that invalidates all the ccached build
artifacts.)
(I've been saying "this year" on an upgrade for three years now, but while
the money's actually been in the bank for it for half that, turns out I
kind of /like/ having that additional financial cushion, and between that
and not having appropriate receiving arrangements to ship a multi-
thousand-dollar computer...)
> One of the big hurdles with KF5 was that Qt5 introduced their version of
> KStandardPaths, and gave it a "proper Mac-native implementation". KDE
> migrated to that class, but never bothered to update their build system.
> So while the code is perfectly capable to find its runtime resources
> where Qt says they should be, the build system installs them to the
> places where the XDG standard says they should go.
Yes, I actually had problems with qt5 in a similar context. But of course
I'm on Linux and my case is was due to my "reverse-usrmerge" --
/usr -> . symlink so /bin and /lib(64) become the primary locations
instead of /usr/bin and /usr/lib. (A more normal usrmerge has
/bin -> /usr/bin and /lib(64) -> /usr/lib(64) instead, so the /usr
locations are primary.)
When qt5 did its thing with its standard paths its build system correctly
detected and set the /lib64 and /bin locations, but the gentoo ebuilds
still were coded for and installed to the /usr/* locations (reverse-
usrmerge isn't an officially gentoo-supported option, but the general
policy is do what you want as long as you can manage it, patch it when
necessary, etc, and my guess is that many, perhaps most, gentooers who
remain with it long enough, end up with their own not officially supported
local installation quirks of one form or another... that quirk-friendly
policy being one of the benefits of gentoo that make it worth sticking
with for those who care for such things). I ended up with patches or sed-
scripts (both auto-applied-on-update) to a few gentoo ebuilds to s:/usr::,
where they hard-coded /usr in the build, plus a few bugs filed with
upstream kde that turned out to be due to bad path-comparisons (one side
was using the canonical path, the other the symlink path), resolved when
they fixed it (for other bugs, mine were never actually traced) so both
sides used the canonical path.
FWIW I've not had similar problems with the qt6 build system and was able
to drop my gentoo ebuild patches/seds (with the upstream kde fix still in
place too).
Like I said, I've noticed a /much/ more port-friendly "run it where you
want to" upstream kde policy lately. While some devs don't care to do the
extra work for such things themselves, often there's others within kde
working on it, and the general policy is if you don't want to do it, fine,
but don't get in the way of others that do. There was a discussion on the
kde-core list not long ago where this played out, and (separately) I've
seen the implications in the form of reverted commits because they can't
depend on that version yet because the CI for some platform (Android,
MSWindows, the BSDs with active kde support and devs, I believe I've seen
Macs on the list too) doesn't have it yet, etc.
I've also seen it in the willingness to give for example gentoo/kde devs
commit rights (so it's not just author:gentoodev, it's also
committedby:gentoodev, in the upstream kde git log) for patches to for
example make building tests truly optional at build time (gentoo's often
end-deployment-level builds without necessarily wanting build-time tests
use-case tends to catch this sort of error more than most upstream or
binary-distro developer use-cases would, because they tend to build and
run tests, while their end-users don't build at all). Now, the cycle is
submit the patch as a PR and get it approved, after which the distro-dev
can apply it themselves, while before it was submit the PR, get it
approved, wait for an upstream dev to apply it. OTOH, often mistakenly
applied commits (by upstream core devs) get reverted due to lack of
approval or because it breaks CI with an older version, as well.
As I said, /much/ friendlier to downstreams, Linux or other platforms,
than previously.
Which was why I said if you ware starting from scratch it would likely be
easier to do with qt6/kde6, because they're much more supportive of such
things now than they were. But you're not starting from scratch, so...
> One of the more OCD-pedantic Plasma developers even once said that he
> felt like breaking all possibilities to build "his" code on the "wrong"
> platform, "just because he could".
These days there'd be significant pressure on such a developer to at least
let others support those platforms even if they weren't interested... or
"use their talents elsewhere" if they weren't willing to do that.
And I'll just leave that right there, as any more would break my "if I'm
not making a positive contribution I shouldn't be posting" personal
policy...
> I never even bothered with KDEPim5, actually. Partly because even
> test-driving it means you can't go back to KDEPim4, partly because
> another OCD-pedantic dev decided it'd use QtWebEngine throughout, which
> is complete overkill for just displaying HTML email.
I jumped off the kdepim train when kmail jumped the akonadi shark in mid-
kde4 and wanted a full database installation just to do mail (badly,
because the database kept corrupting).
So I missed the kdepim5 qtwebenginification entirely.
Unfortunately, kde6 in general has gone the same way with all the local
help documentation, qtwebenginifying khelpcenter, which displays the kde
help "handbooks". Without khelpcenter the default loads the online help
from the web using the default browser, even if the documentation is
installed locally and in theory they could load it in the browser locally.
Since I've been on kde for years I don't use the help much, and I have
cable internet, so that has been "OK-ish" here. And I set USE=-handbook
(gentoo's method of turning off the individual kde app documentation build
options) so the packages don't install the would-be-unused documentation,
so it works.
If I used the handbooks enough to care (or I was paying per-MB/GB for
internet use), I'd probably just create a bash wrapper for the browser and
call it khelpcenter, avoiding both the remote load of not having it, and
the heavy and insecure dep of qtwebengine, which FWIW gentoo now ships
with this disclaimer:
>>>
This version of Qt WebEngine is based on Chromium version
${QT6_CHROMIUM_VER}, with additional security fixes up to
${QT6_CHROMIUM_PATCHES_VER}. Extensive as it is, the list of backports is
impossible to evaluate, but always bound to be behind Chromium's release
schedule.
In addition, various online services may deny service based on an outdated
user agent version (and/or other checks). Google is already known to do
so.
tl;dr your web browsing experience will be compromised.
<<<
While neither the security nor "browsing experience" points apply to
trusted/curated content such as these handbooks, it *definitely* applies
untrusted mail that could be from *anyone*.
(Ironic case in point: One of my credit card banks keeps sending me email
saying I'm not reading their email. I most certainly am, but they most
certainly won't know it because my email client doesn't blindly execute
HTML from untrusted mail, thus not activating their web bugs and whatever
other malware they have in their email. Meanwhile, my security policy of
never clicking on links in emails claiming to be from the bank, actually
going to the site using my preconfigured and trusted link and loading
whatever from there instead, means the trackers in those links never
activate. Given the implications I stopped using that card for general
purchases and only use it for a pre-scheduled monthly charge of a fixed
value (that I'll eventually drop as well), so I'll quickly know if their
security behavior is similar to that they expect, almost demand, from
their customers, and my account is breached due to /them/, not me.)
So I guess I'm glad kdepim jumping the akonadi shark got me off of it
before it jumped the qtwebengine shark as well!
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
More information about the kde
mailing list