source: kde/plasma/plasma-all.xml@ 1e0d054a

12.2 lazarus trunk
Last change on this file since 1e0d054a was 1e0d054a, checked in by Bruce Dubbs <bdubbs@…>, 4 weeks ago

Rename kde files to be version agnostic

  • Property mode set to 100644
File size: 19.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY plasma-download-http "https://download.kde.org/stable/plasma/&plasma-version;">
8 <!ENTITY plasma-download-ftp " ">
9 <!ENTITY plasma-md5sum "See Below">
10 <!ENTITY plasma-size "220 MB">
11 <!ENTITY plasma-buildsize "1.0 GB (444 MB installed)">
12 <!ENTITY plasma-time "14 SBU (using parallelism=8)">
13]>
14
15<sect1 id="plasma-build" xreflabel="Plasma-&plasma-version;">
16 <?dbhtml filename="plasma-all.html"?>
17
18
19 <title>Building Plasma</title>
20
21 <indexterm zone="plasma-build">
22 <primary sortas="a-kde-plasma">KDE Plasma</primary>
23 </indexterm>
24
25 <para>
26 KDE Plasma is a collection of packages based on top of KDE Frameworks
27 and QML. They implement the KDE Display Environment (Plasma).
28 </para>
29
30 &lfs121_checked;
31
32 <para>
33 The instructions below build all of the Plasma packages in one
34 step by using a bash script.
35 </para>
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&plasma-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&plasma-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &plasma-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &plasma-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &plasma-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &plasma-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">Plasma Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Required</bridgehead>
74 <para role="required">
75 <xref linkend="boost"/>,
76 <xref linkend="gtk3"/>,
77 <xref linkend="kf6-frameworks"/>,
78 <xref linkend="kirigami-addons"/>,
79 <xref linkend="libdisplay-info"/>,
80 <xref linkend="libpwquality"/>,
81 <xref linkend="libqalculate"/>,
82 <xref linkend="libnl"/>,
83 <xref linkend="libxcvt"/>,
84 <xref linkend="libxkbcommon"/>,
85 <xref linkend="mesa"/> built with <xref linkend="wayland"/>,
86 <xref linkend="pipewire"/>,
87 <xref linkend="pulseaudio-qt"/>,
88 <xref linkend="qca"/>,
89 <xref linkend="qcoro"/>,
90 <xref linkend="sassc"/>,
91 <xref linkend="taglib"/>,
92 <xref linkend="xdotool"/>, and
93 <xref linkend="xorg-evdev-driver"/>
94 </para>
95
96 <bridgehead renderas="sect4">Recommended</bridgehead>
97 <para role="recommended">
98 <xref linkend="gsettings-desktop-schemas"/>,
99 <xref linkend="libcanberra"/>,
100 <xref linkend="libinput"/>,
101 <xref linkend="libpcap"/>,
102 <xref linkend="linux-pam"/>,
103 <xref linkend="lm_sensors"/>,
104 <xref linkend="oxygen-icons"/>,
105 <xref linkend="pciutils"/>,
106 <xref linkend="power-profiles-daemon"/>, and
107 the following Python modules:
108 <xref linkend="psutil"/>,
109 <xref linkend="pygdbmi"/>,
110 <xref linkend="sentry-sdk"/>,
111 <xref linkend="urllib3"/> (if they are not installed, they will be
112 downloaded and installed by the drkonqi build procedure)
113 </para>
114
115 <bridgehead renderas="sect4">Recommended (runtime)</bridgehead>
116 <para role="recommended">
117 <xref role="runtime" linkend="accountsservice"/>,
118 <xref role="runtime" linkend="breeze-icons"/>,
119 <xref role="runtime" linkend="smartmontools"/>,
120 <xref role="runtime" linkend="xdg-desktop-portal"/>, and
121 <xref role="runtime" linkend="xwayland"/>
122 </para>
123
124 <bridgehead renderas="sect4">Optional</bridgehead>
125 <para role="optional">
126 <xref linkend="appstream"/> (build with -qt=true),
127 <xref linkend="glu"/>,
128 <xref linkend='ibus'/>,
129 <xref linkend='qtwebengine'/>,
130 <xref linkend="xorg-synaptics-driver"/>,
131 <ulink url="https://www.kdevelop.org/">KDevPlatform</ulink>,
132 <ulink url="https://gpsd.gitlab.io/gpsd/">libgps</ulink>,
133 <ulink url="https://github.com/libhybris/libhybris">libhybris</ulink>,
134 <ulink url="https://www.freedesktop.org/software/PackageKit/releases/">packagekit-qt</ulink>,
135 <ulink url="https://launchpad.net/qapt">Qapt</ulink>,
136 <ulink url="https://github.com/osiam/osiam">SCIM</ulink>, and
137 <ulink url="http://www.dest-unreach.org/socat/">socat</ulink> (for pam_kwallet)
138 </para>
139
140 <sect2>
141 <title>Downloading KDE Plasma</title>
142
143 <para>
144 The easiest way to get the KDE Plasma packages is to use a single
145 <command>wget</command> to fetch them all at once:
146 </para>
147
148<screen><userinput>url=https://download.kde.org/stable/plasma/&plasma-version;/
149wget -r -nH -nd -A '*.xz' -np $url</userinput>
150<literal>
151The options used here are:
152 -r recurse through child directories
153 -nH disable generation of host-prefixed directories
154 -nd do not create a hierarchy of directories
155 -A '*.xz' just get the *.xz files
156 -np don't get parent directories</literal></screen>
157
158 </sect2>
159
160 <sect2>
161 <title>Setting Package Order</title>
162
163 <para>
164 The order of building files is important due to internal dependencies.
165 Create the list of files in the proper order as follows:
166 </para>
167
168<screen><userinput>cat &gt; plasma-&plasma-version;.md5 &lt;&lt; "EOF"
169<literal>be3516c192fcdbed07454de4b379f5db kdecoration-6.1.4.tar.xz
170dfd2bd982b5ab4daa5a3545e54cf9cb3 libkscreen-6.1.4.tar.xz
171c05c1623be161c149a61ac3db0ce5382 libksysguard-6.1.4.tar.xz
1727035691a6f63b28f389d76002afc3da8 breeze-6.1.4.tar.xz
1739d82aff77358f55069020a408987c111 breeze-gtk-6.1.4.tar.xz
1742e3a5220acf76e2c0edf9701978e802b layer-shell-qt-6.1.4.tar.xz
175250385889199481e81b979bd0dd51669 plasma-activities-6.1.4.tar.xz
176d6686b711c1e52c0de7c75b66c9dc6e3 libplasma-6.1.4.tar.xz
17798101a610670cfae5779bc9940d8561f kscreenlocker-6.1.4.tar.xz
178ca7bf1418903745c65dcbf7583299ceb kinfocenter-6.1.4.tar.xz
1794c4b58890f3bf7bf1b1d99e89f9271a8 kglobalacceld-6.1.4.tar.xz
180d297f096ac9492262b8274a024618bd3 kwayland-6.1.4.tar.xz
1812d4516080f370a6cf40351266277b010 kwin-6.1.4.tar.xz
182131d3250d9124c8f21751f5e5255a7d6 plasma5support-6.1.4.tar.xz
183fc8fe31088cad9f1a904554956df708b plasma-activities-stats-6.1.4.tar.xz
18485a3ff80ec16299dc8aa12190ce2bc24 kpipewire-6.1.4.tar.xz
185575c902a134bb24214f76c500460df39 plasma-workspace-6.1.4.tar.xz
186d000e0ee0f0e530c9dc64ab9252bc17a plasma-disks-6.1.4.tar.xz
187180136a6b20736c359b999cbd3509afc bluedevil-6.1.4.tar.xz
1883f065b337807c2a37d27a90bbcf1d8d1 kde-gtk-config-6.1.4.tar.xz
189bcfa7f92df7c2f1a6c7718a12f81734c kmenuedit-6.1.4.tar.xz
19008590284bc4613804563db94a68c7cd2 kscreen-6.1.4.tar.xz
191801318aea037e3d64f0aa7c9ca4fef8b kwallet-pam-6.1.4.tar.xz
192aa6bc381778b4e10c9798c3abeeb5692 kwrited-6.1.4.tar.xz
1939c4f88ca9936252f62705f27687af764 milou-6.1.4.tar.xz
194cbeb7b6b0094e9ec19af07ea458c8eb3 plasma-nm-6.1.4.tar.xz
195aa32529c005706d2253333c93faa45de plasma-pa-6.1.4.tar.xz
1964c7484c0d5e4352372d32a340656abec plasma-workspace-wallpapers-6.1.4.tar.xz
197f904e90a9db900551d228f20dac06a45 polkit-kde-agent-1-6.1.4.tar.xz
198312fe34839a8d0861cc676766a4317e4 powerdevil-6.1.4.tar.xz
199adc8dad07c1157e79aed7476025b6925 plasma-desktop-6.1.4.tar.xz
200cfbc61347436b9ff7ff43b7130d7955a kgamma-6.1.4.tar.xz
20141d6254b23061c4b4067b0d2db150cbf ksshaskpass-6.1.4.tar.xz
202#7bf7fd0d3a4a381148885cd058872212 plasma-sdk-6.1.4.tar.xz
203ce1bbaf7df576f6ddccd1adda545657a sddm-kcm-6.1.4.tar.xz
204#5482b86089286d9b0153f09752d57574 discover-6.1.4.tar.xz
205#d33ef85fb879f3073f1f26f1695e72f3 breeze-grub-6.1.4.tar.xz
206#42bb6940246062b24ee80ac6e3b40e2d breeze-plymouth-6.1.4.tar.xz
207e458fddb447b0c76e8e49bb772b423a9 kactivitymanagerd-6.1.4.tar.xz
208e0b3c21962456a5f9f79a739c477c22c plasma-integration-6.1.4.tar.xz
209#bebea20d8972e4052690877455aea645 plymouth-kcm-6.1.4.tar.xz
2106bf11a27e32cc81e689867ddf59080c6 xdg-desktop-portal-kde-6.1.4.tar.xz
21196d1d51407b85d22f01e6438e8e492cb drkonqi-6.1.4.tar.xz
21234627cfef9b00bc58bc853790e978dfd plasma-vault-6.1.4.tar.xz
213#d7984e9a5d3c4ac7a6e36b656cc16f3a plasma-browser-integration-6.1.4.tar.xz
214626f7f2e373085f948d0809413b0d49f kde-cli-tools-6.1.4.tar.xz
2155ba8376be2db662750ef48f582f22352 systemsettings-6.1.4.tar.xz
216db8923a9b87e95dd5ec82a20da4ae95b plasma-thunderbolt-6.1.4.tar.xz
217#0106b72c6a46c966d31b7a4afdb456b3 plasma-mobile-6.1.4.tar.xz
218#8a7de2aa288ae50190fcd86a7d72cbcb plasma-nano-6.1.4.tar.xz
2193bc5c58b1d06e4f4f1667799219ae887 plasma-firewall-6.1.4.tar.xz
220bf76a58afb8def0a0d07ea65429154fc plasma-systemmonitor-6.1.4.tar.xz
221e6e3a3bc681b7044b5219ed6417f0310 qqc2-breeze-style-6.1.4.tar.xz
222d3096345a478a821fa16620dadf95fb4 ksystemstats-6.1.4.tar.xz
22303a717ac104f6f44ab9dffafdc37710b oxygen-sounds-6.1.4.tar.xz
224a2f8684825ee231fefad28589f321ce7 kdeplasma-addons-6.1.4.tar.xz
225#4691fcec4a83314e82c8d1b64bf23c8e flatpak-kcm-6.1.4.tar.xz
2268175024493047e4e98cd12f4d52bc24b plasma-welcome-6.1.4.tar.xz
2278431d1bf294e2ba3cacd9c455678d118 ocean-sound-theme-6.1.4.tar.xz
228ed8102ad60b2c8ae9ce12dcaf1ff3cd5 print-manager-6.1.4.tar.xz
229#523c82bcf113168b2113612d7b20e544 wacomtablet-6.1.4.tar.xz
230#ebb06249b835ea73743c9cf6e91df4df kwayland-integration-6.1.4.tar.xz
231#87332ae4b1c87a6921651ae9211a7e86 krdp-6.1.4.tar.xz
2327ca2419cbdb9e4e9b2822b930ac5ec18 oxygen-6.1.4.tar.xz</literal>
233EOF</userinput></screen>
234
235 <note>
236 <title>About Commented Out Packages</title>
237 <para>
238 In the above list, several files are commented out with a hash (#) character.
239
240 <itemizedlist spacing="compact">
241 <listitem>
242 <para>
243 The plasma-sdk package is optional and used for software development.
244 </para>
245 </listitem>
246 <listitem>
247 <para>
248 The discover package requires <xref linkend="appstream"/> to be built
249 with the -D qt=true switch.
250 </para>
251 </listitem>
252 <listitem>
253 <para>
254 The breeze-grub, breeze-plymouth, and plymouth-kcm packages above
255 are all for customized support of
256 <ulink url="https://www.freedesktop.org/wiki/Software/Plymouth/">
257 Plymouth</ulink> which is designed to be run within an initial
258 ram disk during boot (see <xref linkend="initramfs"/>).
259 </para>
260 </listitem>
261 <listitem>
262 <para>
263 The plasma-browser-integration and krdp-6.1.4.tar.xz packages are
264 only used by plasma-meta which is not installed by BLFS.
265 </para>
266 </listitem>
267 <listitem>
268 <para>
269 The plasma-nano package is used for embedded systems.
270 </para>
271 </listitem>
272 <listitem>
273 <para>:
274 The plasma-mobile package provides phone functionality for Plasma.
275 </para>
276 </listitem>
277 <listitem>
278 <para>
279 The flatpak-kcm package is for managing support of flatpak applications.
280 </para>
281 </listitem>
282 <listitem>
283 <para>
284 The wacomtablet and kwayland-integration applications require
285 plasma5 support.
286 </para>
287 </listitem>
288 </itemizedlist>
289 </para>
290 </note>
291
292 </sect2>
293
294 <sect2 role="installation">
295 <title>Installation of Plasma</title>
296
297 &as_root;
298
299 <para>
300 First, start a subshell that will exit on error:
301 </para>
302
303<screen><userinput>bash -e</userinput></screen>
304
305 <para>
306 Install all of the packages by running the following
307 commands:
308 </para>
309
310<screen><userinput>while read -r line; do
311
312 # Get the file name, ignoring comments and blank lines
313 if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
314 file=$(echo $line | cut -d" " -f2)
315
316 pkg=$(echo $file|sed 's|^.*/||') # Remove directory
317 packagedir=$(echo $pkg|sed 's|\.tar.*||') # Package directory
318
319 tar -xf $file
320 pushd $packagedir
321<!--
322 # Fix some build issues when generating some configuration files
323 case $name in
324 plasma-workspace)
325 sed -i '/set.HAVE_X11/a set(X11_FOUND 1)' CMakeLists.txt
326 ;;
327
328 khotkeys)
329 sed -i '/X11Extras/a set(X11_FOUND 1)' CMakeLists.txt
330 ;;
331
332 plasma-desktop)
333 sed -i '/X11.h)/i set(X11_FOUND 1)' CMakeLists.txt
334 ;;
335 esac
336-->
337 mkdir build
338 cd build
339
340 cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
341 -D CMAKE_INSTALL_LIBEXECDIR=libexec \
342 -D CMAKE_BUILD_TYPE=Release \
343 -D BUILD_QT5=OFF \
344 -D BUILD_TESTING=OFF \
345 -W no-dev .. &amp;&amp;
346
347 make
348 as_root make install
349 popd
350
351<!-- some packages end up with files owned by root in $packagedir,
352 so use as_root for removing -->
353 as_root rm -rf $packagedir
354 as_root /sbin/ldconfig
355
356done &lt; plasma-&plasma-version;.md5
357
358exit</userinput></screen>
359
360 <para>
361 If you did not set <envar>$KF6_PREFIX</envar> to
362 <filename>/usr</filename>, create symlinks to allow display managers to
363 find <application>Plasma</application>, and to allow the XDG Desktop
364 Portal to be detected. As the &root; user:
365 </para>
366
367<screen><userinput># Setup xsessions (X11 sessions)
368install -dvm 755 /usr/share/xsessions
369cd /usr/share/xsessions
370
371[ -e plasma.desktop ] ||
372ln -sfv $KF6_PREFIX/share/xsessions/plasmax11.desktop
373
374# Setup wayland-sessions
375install -dvm 755 /usr/share/wayland-sessions
376cd /usr/share/wayland-sessions
377
378[ -e plasmawayland.desktop ] ||
379ln -sfv $KF6_PREFIX/share/wayland-sessions/plasma.desktop
380<!-- work around a bug in xdg-desktop-portal-->
381# Setup xdg-desktop-portal
382install -dvm 755 /usr/share/xdg-desktop-portal
383cd /usr/share/xdg-desktop-portal
384
385[ -e kde-portals.conf ] ||
386ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/kde-portals.conf
387
388# Setup kde portal
389install -dvm 755 /usr/share/xdg-desktop-portal/portals
390cd /usr/share/xdg-desktop-portal/portals
391
392[ -e kde.portal ] ||
393ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/portals/kde.portal</userinput></screen>
394
395 <para revision="sysv">
396 Useless systemd units have been installed in
397 <filename class="directory">$KF6_PREFIX/lib</filename>. Remove
398 them now (as <systemitem class="username">root</systemitem>):
399 </para>
400
401<screen role="root"
402 revision="sysv"><userinput>rm -rf $KF6_PREFIX/lib/systemd</userinput></screen>
403
404 </sect2>
405<!--
406 <sect2 role="commands">
407 <title>Command Explanations</title>
408
409 <para>
410 <command>ln -sfv ../code/$(basename $j) $(dirname $j)/../ui/</command>:
411 Create symbolic links so qml files can find needed javascript modules.
412 </para>
413
414 </sect2>
415-->
416 <sect2 role="configuration">
417 <title>Configuring Plasma</title>
418
419 <sect3>
420 <title>Linux PAM Configuration</title>
421
422 <para>
423 If you built Plasma with the recommended <application>Linux
424 PAM</application> support, create necessary configuration files by
425 running the following commands as the <systemitem
426 class="username">root</systemitem> user:
427 </para>
428
429<screen role="root"><userinput>cat &gt; /etc/pam.d/kde &lt;&lt; "EOF"
430<literal># Begin /etc/pam.d/kde
431
432auth requisite pam_nologin.so
433auth required pam_env.so
434
435auth required pam_succeed_if.so uid &gt;= 1000 quiet
436auth include system-auth
437
438account include system-account
439password include system-password
440session include system-session
441
442# End /etc/pam.d/kde</literal>
443EOF
444
445cat &gt; /etc/pam.d/kde-np &lt;&lt; "EOF"
446<literal># Begin /etc/pam.d/kde-np
447
448auth requisite pam_nologin.so
449auth required pam_env.so
450
451auth required pam_succeed_if.so uid &gt;= 1000 quiet
452auth required pam_permit.so
453
454account include system-account
455password include system-password
456session include system-session
457
458# End /etc/pam.d/kde-np</literal>
459EOF
460
461cat &gt; /etc/pam.d/kscreensaver &lt;&lt; "EOF"
462<literal># Begin /etc/pam.d/kscreensaver
463
464auth include system-auth
465account include system-account
466
467# End /etc/pam.d/kscreensaver</literal>
468EOF</userinput></screen>
469 </sect3>
470 </sect2>
471
472 <sect2 role="starting">
473 <title>Starting Plasma</title>
474
475 <para revision="sysv">
476 You can start <application>Plasma</application> from runlevel 3, using
477 <xref linkend="xinit"/>, or from runlevel 5, using a Display Manager,
478 such as <xref linkend="lightdm"/>.
479 </para>
480
481 <para revision="systemd">
482 You can start <application>Plasma</application> from a TTY, using
483 <xref linkend="xinit"/><!--, or from a graphical display manager, such as
484 <xref linkend="sddm"/>-->.
485 </para>
486
487 <para>
488 To start <application>Plasma</application> using <xref linkend="xinit"/>,
489 run the following commands:
490 </para>
491
492<screen role="nodump"><userinput>cat &gt; ~/.xinitrc &lt;&lt; "EOF"
493<literal>dbus-launch --exit-with-x11 $KF6_PREFIX/bin/startplasma-x11</literal>
494EOF
495
496startx</userinput></screen>
497
498 <para>
499 The X session starts on the first unused virtual terminal, normally vt7.
500 You can switch to another vt<emphasis>n</emphasis> simultaneously
501 pressing the keys Ctrl-Alt-F<emphasis>n</emphasis>
502 (<emphasis>n</emphasis>=1, 2, ...). To switch back to the X session,
503 normally started at vt7, use Ctrl-Alt-F7. The vt where the command
504 <command>startx</command> was executed will display many messages,
505 including X starting messages, applications automatically started with
506 the session, and eventually, some warning and error messages. You may
507 prefer to redirect those messages to a log file, which not only will keep
508 the initial vt uncluttered, but can also be used for debugging purposes. This
509 can be done starting X with:
510 </para>
511
512 <screen role="nodump"><userinput>startx &amp;&gt; ~/x-session-errors</userinput></screen>
513
514 <para>
515 When shutting down or rebooting, the shutdown messages appear on the vt
516 where X was running. If you wish to see those messages, simultaneously
517 press keys Alt-F7 (assuming that X was running on vt7).
518 </para>
519<!-- Start plasma wayland with
520
521/opt/kf6/lib/libexec/plasma-dbus-run-session-if-needed /opt/kf6/bin/startplasma-wayland
522
523Investigate why it's in /opt/kf6/lib/libexec and not just in /opt/kf6/libexec
524
525
526Now the entry is "plasma (X11)" for Xorg, so I guess this is
527 not needed anymore:
528 <para>
529 If you intend to start <application>Plasma</application> using a
530 display manager such as <xref linkend="lightdm"/>, there will be two entries
531 for <application>Plasma</application>, one for use with
532 <application>Xorg</application>, and another for
533 <application>Wayland</application>. Modify the
534 <application>Xorg</application> entry with the following command, as the
535 <systemitem class="username">root</systemitem> user, so that you can
536 differentiate between the two:</para>
537
538<screen role="root"><userinput>sed '/^Name=/s/Plasma/Plasma on Xorg/' -i /usr/share/xsessions/plasma.desktop</userinput></screen>
539-->
540
541 </sect2>
542
543 <sect2 role="content">
544 <title>Contents</title>
545
546 <segmentedlist>
547 <segtitle>Installed Programs</segtitle>
548 <segtitle>Installed Libraries</segtitle>
549 <segtitle>Installed Directories</segtitle>
550
551 <seglistitem>
552 <seg>
553 There are too many plasma programs (over 50 in /opt/kf6/bin) to list
554 separately here.
555 </seg>
556 <seg>
557 There are too many plasma libraries (over 250 in /opt/kf6/lib) to list
558 separately here.
559 </seg>
560 <seg>
561 There are too many plasma directories (over 2700 in /opt/kf6) to
562 list separately here.
563 </seg>
564 </seglistitem>
565 </segmentedlist>
566
567 </sect2>
568
569</sect1>
Note: See TracBrowser for help on using the repository browser.