Git commit 75bfc43675938761ee0f23efa36ebbfd70ea0322 by Andrew Shark.
Committed on 18/02/2024 at 11:02.
Pushed by ashark into branch 'master'.

Use distro-dependencies defined in repo-metadata

Distro dependencies (data/pkg) moved here: 
https://invent.kde.org/sysadmin/repo-metadata/-/tree/master/distro-dependencies

D  +0    -104  data/pkg/alpine.ini
D  +0    -126  data/pkg/arch.ini
D  +0    -175  data/pkg/debian.ini
D  +0    -166  data/pkg/fedora.ini
D  +0    -39   data/pkg/freebsd.ini
D  +0    -32   data/pkg/gentoo.ini
D  +0    -36   data/pkg/mageia.ini
D  +0    -158  data/pkg/opensuse.ini
M  +1    -0    doc/man-kdesrc-build.1.docbook
M  +1    -0    doc/supported-cmdline-params.docbook
M  +5    -0    kdesrc-build
M  +29   -38   modules/ksb/FirstRun.pm

https://invent.kde.org/sdk/kdesrc-build/-/commit/75bfc43675938761ee0f23efa36ebbfd70ea0322

diff --git a/data/pkg/alpine.ini b/data/pkg/alpine.ini
deleted file mode 100644
index 3eef1ea4..00000000
--- a/data/pkg/alpine.ini
+++ /dev/null
@@ -1,104 +0,0 @@
-[pkg/alpine/unknown]
-alpine-sdk
-attr-dev
-autoconf
-automake
-bison
-boost-dev
-clang-extra-tools
-cmake
-corrosion
-curl-dev
-cyrus-sasl-dev
-doxygen
-eudev-dev
-exiv2-dev
-ffmpeg-dev
-flex
-giflib-dev
-gperf
-gpgme-dev
-grantlee-dev
-graphviz
-gst-plugins-base-dev
-gstreamer-dev
-kdsoap-dev
-lcms2-dev
-libaccounts-qt-dev
-libcanberra-dev
-libdbusmenu-qt-dev
-libdisplay-info-dev
-libdmtx-dev
-libepoxy-dev
-libgcrypt-dev
-libgit2-dev
-libical-dev
-libinput-dev
-libnl3-dev
-libqalculate-dev
-libqrencode-dev
-libsecret-dev
-libva-dev
-libxcvt-dev
-libxkbfile-dev
-libxmlb-dev
-libxrender-dev
-libxslt-dev
-libxtst-dev
-linux-pam-dev
-lm-sensors-dev
-lmdb-dev
-meson
-modemmanager-dev
-mpv-dev
-musl-fts-dev
-networkmanager-dev
-ninja
-olm-dev
-openjpeg-dev
-openldap-dev
-pcre-dev
-pipewire-dev
-polkit-elogind-dev
-pulseaudio-dev
-py3-sphinx
-py3-setuptools
-qca-dev
-qcoro-dev
-qt5-qtbase-dev
-qt5-qtdeclarative-dev
-qt5-qtmultimedia-dev
-qt5-qtnetworkauth-dev
-qt5-qtquickcontrols2-dev
-qt5-qtscript-dev
-qt5-qtsensors-dev
-qt5-qtsvg-dev
-qt5-qttools-dev
-qt5-qtwayland-dev
-qt5-qtx11extras-dev
-qt5-qtxmlpatterns-dev
-qt6-qt5compat-dev
-qt6-qtbase-dev
-qt6-qtmultimedia-dev
-qt6-qtpositioning-dev
-qt6-qtsensors-dev
-qt6-qtspeech-dev
-qt6-qtsvg-dev
-qt6-qttools-dev
-qt6-qtwayland-dev
-qt6-qtwebengine-dev
-qt6-qtwebview-dev
-qtkeychain-dev
-signond-dev
-stb
-texinfo
-utfcpp
-wayland-protocols
-xapian-core-dev
-xcb-util-cursor-dev
-xcb-util-image-dev
-xcb-util-keysyms-dev
-xcb-util-wm-dev
-xkeyboard-config-dev
-xmlto
-yaml-dev
diff --git a/data/pkg/arch.ini b/data/pkg/arch.ini
deleted file mode 100644
index 4a9077af..00000000
--- a/data/pkg/arch.ini
+++ /dev/null
@@ -1,126 +0,0 @@
-[pkg/arch/unknown]
-# Basic build tools
-
-# .. gnu
-autoconf
-automake
-bison
-flex
-gcc
-gperf
-make
-
-# .. llvm
-clang
-cmake
-
-# .. build systems
-ninja
-meson
-
-# .. rust
-corrosion
-
-# .. others
-boost
-docbook-xsl
-doxygen
-intltool
-pkg-config
-git
-gi-docgen
-
-# Qt-related
-qt6
-poppler-qt6
-qca-qt6
-qtkeychain-qt6
-qcoro-qt6
-qt5-base
-qt5-script
-qt5-websockets
-qt5-svg
-qt5-tools
-qt5-x11extras
-qca-qt5
-libaccounts-qt
-libdbusmenu-qt5
-poppler-qt5
-qtkeychain-qt5
-phonon-qt5
-packagekit
-
-# Others/Unsorted
-wayland-protocols
-qrencode
-signond
-xapian-core
-qgpgme
-kdsoap
-xsd
-xerces-c
-vlc
-ruby-sass
-eigen
-mlt
-freecell-solver
-sane
-vala
-check
-libolm
-xmlto
-itstool
-libdisplay-info
-python-sphinx
-python-setuptools
-enchant
-jasper
-openexr
-libutempter
-docbook-xsl
-shared-mime-info
-giflib
-libxss
-upower
-udisks2
-xorg-server-devel
-libpwquality
-libfakekey
-eigen
-xapian-core
-libdmtx
-ruby-test-unit
-plymouth
-libical
-openal
-libxmlb
-exiv2
-lmdb
-libqalculate
-libraw
-mpv
-sccache
-python-cairo
-python-pip
-flatpak
-xf86-input-wacom
-black-hole-solver
-fluidsynth
-libgit2
-microsoft-gsl
-power-profiles-daemon
-
-#plasma-desktop
-xdotool
-
-# appstream
-gobject-introspection
-xf86-input-evdev
-python-chai
-
-#okular
-libspectre
-libzip
-discount
-djvulibre
-ebook-tools
diff --git a/data/pkg/debian.ini b/data/pkg/debian.ini
deleted file mode 100644
index fbce96cd..00000000
--- a/data/pkg/debian.ini
+++ /dev/null
@@ -1,175 +0,0 @@
-[pkg/debian/unknown]
-# Basic build tools
-bison
-build-essential
-cmake
-flex
-gettext
-git
-gperf
-libssl-dev
-intltool
-meson
-ninja-build
-shared-mime-info
-clang-format
-apt-file
-# Qt-related
-qtwayland5-private-dev
-libdbusmenu-qt5-dev
-libqt5svg5-dev
-libqt5waylandclient5-dev
-libqt5x11extras5-dev
-qtbase5-private-dev
-qtdeclarative5-dev
-qtmultimedia5-dev
-qtquickcontrols2-5-dev
-qtscript5-dev
-qttools5-dev
-qtwayland5-dev-tools
-qtxmlpatterns5-dev-tools
-qt6-tools-dev
-qt6-declarative-dev
-qt6-wayland
-qt6-wayland-dev
-qt6-wayland-dev-tools
-qt6-base-private-dev
-qt6-speech-dev
-qt6-multimedia-dev
-libqt6svg6-dev
-libqt6core5compat6-dev
-libqt6opengl6-dev
-libqt6shadertools6-dev
-packagekit
-# Frameworks dependencies
-# .. polkit-qt-1
-libpolkit-gobject-1-dev
-libpolkit-agent-1-dev
-# .. kdoctools
-libxml2-dev
-libxml2-utils
-libxslt-dev
-docbook
-docbook-xsl
-docbook-xml
-# .. libksysguard
-libnl-3-dev
-libnl-route-3-dev
-libsensors-dev
-# .. kwindowsystem
-libwayland-dev
-libxcb-icccm4-dev
-libxcb-keysyms1-dev
-libxcb-res0-dev
-libxcb-xfixes0-dev
-libxcb-xkb-dev
-libxcb-xtest0-dev
-libxfixes-dev
-libxrender-dev
-wayland-protocols
-# .. kwallet
-libgcrypt-dev
-libgpgme11-dev
-libgpgmepp-dev
-# .. kactivities
-libboost-dev
-# .. kfilemetadata
-libattr1-dev
-# .. kidletime
-libxcb-sync-dev
-libx11-xcb-dev
-# .. kcalendarcore
-libical-dev
-# .. khtml
-libjpeg-dev
-libgif-dev
-# .. kjs
-libpcre3-dev
-# .. kglobalaccel
-libxcb-record0-dev
-# .. knotifications
-libcanberra-dev
-# .. karchive
-liblzma-dev
-libbz2-dev
-# .. plasma-workspace
-libqalculate-dev
-libxft-dev
-libxtst-dev
-libappstreamqt-dev
-libpackagekitqt5-dev
-libxcursor-dev
-# And others
-qt5keychain-dev
-libopenal-dev
-libopenjp2-7-dev
-qtlocation5-dev
-libraw-dev
-libsane-dev
-libsndfile1-dev
-libxcb-glx0-dev
-liblmdb-dev
-libsm-dev
-libqrencode-dev
-python3-setuptools
-# .. optional discover backends
-libjcat-dev
-libfwupd-dev
-libsnapd-qt-dev
-libflatpak-dev
-# kwin
-libgbm-dev
-libdrm-dev
-libxcvt-dev
-libxcb-randr0-dev
-libepoxy-dev
-libxcb-composite0-dev
-libxcb-shm0-dev
-libxcb-cursor-dev
-libxcb-damage0-dev
-libxcb-image0-dev
-libxcb-util-dev
-libxcb-present-dev
-libxcb-xinerama0-dev
-libxkbcommon-x11-dev
-# plasma
-libqalculate-dev
-libxcb-randr0-dev
-libxft-dev
-libxtst-dev
-# powerdevil
-libxcb-dpms0-dev
-# plasma-nm
-libnm-dev
-modemmanager-dev
-# plasma-pa
-libpulse-dev
-# plymouth-kcm
-libplymouth-dev
-# kscreenlocker
-libpam0g-dev
-# kpipewire
-libpipewire-0.3-dev
-libavcodec-dev
-libavformat-dev
-libswscale-dev
-# libkexiv2
-libexiv2-dev
-# kcalc
-graphviz
-doxygen
-xsltproc
-xmlto
-# poppler
-libnss3-dev
-libtiff-dev
-# gpgme
-texinfo
-# appstream
-libyaml-dev
-libsystemd-dev
-libgirepository1.0-dev
-libstemmer-dev
-itstool
-gi-docgen
-libzstd-dev
diff --git a/data/pkg/fedora.ini b/data/pkg/fedora.ini
deleted file mode 100644
index 23784adc..00000000
--- a/data/pkg/fedora.ini
+++ /dev/null
@@ -1,166 +0,0 @@
-[pkg/fedora/unknown]
-appstream-qt-devel
-aha
-bison
-boost-devel
-bzip2
-cfitsio-devel
-chmlib-devel
-cmake
-cyrus-sasl-devel
-dbusmenu-qt5-devel
-djvulibre-devel
-docbook-style-xsl
-docbook-utils
-doxygen
-ebook-tools-devel
-eigen3-devel
-erfa-devel
-exiv2-devel
-flatpak-devel
-flex
-fuse3-devel
-fuse-devel
-gcc
-gcc-c++
-gettext
-gettext-devel
-giflib-devel
-git
-glew-devel
-gobject-introspection-devel
-gperf
-gpgmepp-devel
-gsl-devel
-gstreamer1-plugins-base-devel
-ibus-devel
-intltool
-itstool
-json-c-devel
-kcolorpicker-devel
-kdsoap-devel
-kf5-kdnssd-devel
-kf5-kplotting-devel
-kf5-libkdcraw-devel
-kimageannotator-devel
-libaccounts-qt5-devel
-libavcodec-free-devel
-libavfilter-free-devel
-libavformat-free-devel
-libavutil-free-devel
-libblack-hole-solver-devel
-libcap-devel
-libcanberra-devel
-libdisplay-info-devel
-libepoxy-devel
-libfakekey-devel
-libfreecell-solver-devel
-libgcrypt-devel
-libgit2-devel
-libical-devel
-libindi-devel
-libjpeg-turbo-devel
-libpcap-devel
-libqalculate-devel
-libmtp-devel
-libnl3-devel
-libnova-devel
-LibRaw-devel
-libsass-devel
-libsmbclient-devel
-libsndfile-devel
-libsodium-devel
-libspectre-devel
-libswscale-free-devel
-libssh-devel
-libtirpc-devel
-libuuid-devel
-libva-devel
-libwacom-devel
-libXcursor-devel
-libXft-devel
-libxcvt-devel
-libXext-devel
-libXtst-devel
-libXxf86vm-devel
-libxkbcommon-devel
-libxkbcommon-x11-devel
-libxkbfile-devel
-libxml2
-libzip-devel
-lm_sensors-devel
-make
-meson
-mpv-libs-devel
-openal-soft-devel
-openexr-devel
-openjpeg2-devel
-pam-devel
-pcre-devel
-phonon-qt5-devel
-pipewire-devel
-pipewire-utils
-pkgconfig(dbus-1)
-pkgconfig(gbm)
-pkgconfig(gl)
-pkgconfig(gstreamer-1.0)
-pkgconfig(libassuan)
-pkgconfig(libattr)
-pkgconfig(libnm)
-pkgconfig(libpng)
-pkgconfig(libqrencode)
-pkgconfig(libxml-2.0)
-pkgconfig(libxslt)
-pkgconfig(lmdb)
-pkgconfig(ModemManager)
-pkgconfig(openssl)
-pkgconfig(polkit-gobject-1)
-pkgconfig(sm)
-pkgconfig(wayland-client)
-pkgconfig(wayland-protocols)
-pkgconfig(xapian-core)
-pkgconfig(xcb-cursor)
-pkgconfig(xcb-ewmh)
-pkgconfig(xcb-keysyms)
-pkgconfig(xcb-util)
-pkgconfig(xfixes)
-pkgconfig(xrender)
-python
-python3-chai
-python3-psutil
-python3-sphinx
-python3-setuptools
-qaccessibilityclient-devel
-qcoro-qt5-devel
-qgpgme-devel
-plymouth-devel
-qt5-*-devel
-qt5-qtbase-static
-qt5-qttools-static
-qt6-*-devel
-qtkeychain-qt5-devel
-PackageKit
-SDL2-devel
-sassc
-shared-mime-info
-signon-devel
-stellarsolver-devel
-systemd-devel
-texinfo
-wcslib-devel
-xdotool
-xmlto
-xorg-x11-drv-evdev-devel
-xorg-x11-drv-libinput-devel
-xorg-x11-drv-wacom-devel
-xkeyboard-config-devel
-# wayland
-expat-devel
-# poppler
-nss-devel
-libcurl-devel
-# appstream
-libyaml-devel
-libstemmer-devel
-gi-docgen
-guidelines-support-library-devel
diff --git a/data/pkg/freebsd.ini b/data/pkg/freebsd.ini
deleted file mode 100644
index 0e636add..00000000
--- a/data/pkg/freebsd.ini
+++ /dev/null
@@ -1,39 +0,0 @@
-[pkg/freebsd/unknown]
-automake
-bison
-boost-all
-cmake
-docbook-xsl
-doxygen
-eigen
-gettext
-gettext-tools
-glib
-gmake
-gobject-introspection
-gperf
-gpgme
-gtk-doc
-intltool
-itstool
-libqrencode
-libxmlb
-libyaml
-lmdb
-meson
-mlt7
-ninja
-pkgconf
-py39-gi-docgen
-python3
-# Qt
-qt6
-qt5
-qt5-wayland
-snowballstemmer
-texinfo
-vala
-wayland-protocols
-xorg
-# wayland
-xmlto
diff --git a/data/pkg/gentoo.ini b/data/pkg/gentoo.ini
deleted file mode 100644
index ca4ac056..00000000
--- a/data/pkg/gentoo.ini
+++ /dev/null
@@ -1,32 +0,0 @@
-[pkg/gentoo/unknown]
-dev-libs/icu
-dev-libs/libdbusmenu-qt
-dev-qt/designer:5
-dev-qt/linguist-tools:5
-dev-qt/linguist
-dev-qt/pixeltool
-dev-qt/qdoc:5
-dev-qt/qtconcurrent:5
-dev-qt/qtcore:5
-dev-qt/qtdbus:5
-dev-qt/qtdeclarative:5
-dev-qt/qtdiag:5
-dev-qt/qtgui:5
-dev-qt/qthelp:5
-dev-qt/qtmultimedia:5
-dev-qt/qtnetwork:5
-dev-qt/qtpaths:5
-dev-qt/qtprintsupport:5
-dev-qt/qtquickcontrols:5
-dev-qt/qtsql:5
-dev-qt/qttest:5
-dev-qt/qtwidgets:5
-dev-qt/qtx11extras:5
-dev-qt/qtxml:5
-dev-util/cmake
-dev-util/gperf
-dev-util/meson
-dev-util/ninja
-dev-vcs/git
-sys-devel/clang
-virtual/libintl
diff --git a/data/pkg/mageia.ini b/data/pkg/mageia.ini
deleted file mode 100644
index 2b881cbc..00000000
--- a/data/pkg/mageia.ini
+++ /dev/null
@@ -1,36 +0,0 @@
-[pkg/mageia/unknown]
-bison
-boost
-cmake
-docbook-style-xsl
-docbook-utils
-flex
-gcc
-gcc-c++
-gettext
-gettext-devel
-giflib
-git
-gperf
-intltool
-lib64lmdb-devel
-libdbusmenu-qt5-devel
-make
-pkgconfig(dbus-1)
-pkgconfig(gl)
-pkgconfig(gstreamer-1.0)
-pkgconfig(libattr)
-pkgconfig(libnm)
-pkgconfig(libpng)
-pkgconfig(libqrencode)
-pkgconfig(libxml-2.0)
-pkgconfig(libxslt)
-pkgconfig(ModemManager)
-pkgconfig(openssl)
-pkgconfig(polkit-gobject-1)
-pkgconfig(sm)
-pkgconfig(wayland-client)
-pkgconfig(xcb-keysyms)
-pkgconfig(xrender)
-python
-shared-mime-info
diff --git a/data/pkg/opensuse.ini b/data/pkg/opensuse.ini
deleted file mode 100644
index 5daa8537..00000000
--- a/data/pkg/opensuse.ini
+++ /dev/null
@@ -1,158 +0,0 @@
-[pkg/opensuse/unknown]
-bison
-clang
-cmake
-cmake(packagekitqt5)
-cmake(packagekitqt6)
-cmake(QCoro6)
-cmake(Qt5Core)
-cmake(Qt5Multimedia)
-cmake(Qt5Qml)
-cmake(Qt5QuickControls2)
-cmake(Qt5QuickTemplates2)
-cmake(Qt5Script)
-cmake(Qt5Sensors)
-cmake(Qt5Svg)
-cmake(Qt5UiTools)
-cmake(Qt5WaylandClient)
-cmake(Qt5WebEngine)
-cmake(Qt5WebView)
-cmake(Qt5X11Extras)
-cmake(Qt5XmlPatterns)
-cmake(Qt6Concurrent)
-cmake(Qt6Core)
-cmake(Qt6Core5Compat)
-cmake(Qt6DBus)
-cmake(Qt6Gui)
-cmake(Qt6LinguistTools)
-cmake(Qt6Multimedia)
-cmake(Qt6Network)
-cmake(Qt6PrintSupport)
-cmake(Qt6Qml)
-cmake(Qt6Quick)
-cmake(Qt6QuickControls2)
-cmake(Qt6QuickTemplates2)
-cmake(Qt6QuickTest)
-cmake(Qt6QuickWidgets)
-cmake(Qt6Sensors)
-cmake(Qt6ShaderTools)
-cmake(Qt6Sql)
-cmake(Qt6Svg)
-cmake(Qt6Test)
-cmake(Qt6TextToSpeech)
-cmake(Qt6ToolsTools)
-cmake(Qt6UiTools)
-cmake(Qt6WaylandClient)
-cmake(Qt6WaylandCompositor)
-cmake(Qt6WebSockets)
-cmake(Qt6Widgets)
-docbook-xsl-stylesheets
-docbook_4
-doxygen
-flex
-libsndfile-devel
-gettext-runtime
-gettext-tools
-giflib-devel
-git
-gperf
-graphviz
-gtk-doc
-gtk3-devel
-intltool
-itstool
-libAppStreamQt-devel
-libboost_headers-devel
-libdbusmenu-qt5-devel
-libdisplay-info-devel
-libepub-devel
-libqt5-qtbase-common-devel
-libqt5-qtbase-private-headers-devel
-libqt5-qtimageformats-devel
-libqt5-qtwayland-private-headers-devel
-libQt5Core-private-headers-devel
-libQt5DesignerComponents5
-libsensors4-devel
-libxml2-tools
-lmdb-devel
-make
-meson
-ninja
-olm-devel
-openjpeg2-devel
-pkgconfig(accounts-qt5)
-pkgconfig(epoxy)
-pkgconfig(exiv2)
-pkgconfig(gbm)
-pkgconfig(gobject-introspection-1.0)
-pkgconfig(libattr)
-pkgconfig(libavcodec)
-pkgconfig(libavfilter)
-pkgconfig(libavformat)
-pkgconfig(libcanberra)
-pkgconfig(libcec)
-pkgconfig(libevdev)
-pkgconfig(libfakekey)
-pkgconfig(libical)
-pkgconfig(libnl-3.0)
-pkgconfig(libnm)
-pkgconfig(libopenssl)
-pkgconfig(libpcre)
-pkgconfig(libpipewire-0.3)
-pkgconfig(libpng)
-pkgconfig(libqalculate)
-pkgconfig(libqrencode)
-pkgconfig(libsignon-qt5)
-pkgconfig(libswscale)
-pkgconfig(libudev)
-pkgconfig(libva)
-pkgconfig(libxcvt)
-pkgconfig(libxml-2.0)
-pkgconfig(libxslt)
-pkgconfig(ModemManager)
-pkgconfig(nss)
-pkgconfig(pam)
-pkgconfig(sm)
-pkgconfig(wayland-protocols)
-pkgconfig(wayland-server)
-pkgconfig(xcb-cursor)
-pkgconfig(xcb-ewmh)
-pkgconfig(xcb-keysyms)
-pkgconfig(xcb-util)
-pkgconfig(xcursor)
-pkgconfig(xfixes)
-pkgconfig(xft)
-pkgconfig(xkbfile)
-pkgconfig(xorg-evdev)
-pkgconfig(xorg-libinput)
-pkgconfig(xorg-server)
-pkgconfig(xorg-synaptics)
-pkgconfig(xrender)
-pkgconfig(xtst)
-pkgconfig(xxf86vm)
-pkgconfig(yaml-0.1)
-plymouth-devel
-polkit-devel
-python3-setuptools
-qcoro-qt5-devel
-qt6-core-private-devel
-qt6-gui-private-devel
-qt6-printsupport-private-devel
-qt6-quick-private-devel
-qt6-waylandclient-private-devel
-shared-mime-info
-snowball-devel
-vlc-devel
-qt6-multimediawidgets-devel
-openal-soft-devel
-libxapian-devel
-cyrus-sasl-devel
-qt6-webenginewidgets-devel
-qt6-networkauth-devel
-zxing-cpp-devel
-libpoppler-qt6-devel
-liblcms2-devel
-qt6-statemachine-devel
-AppStream-devel
-xdotool
-openldap2-devel
diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook
index 5483e425..514db8ae 100644
--- a/doc/man-kdesrc-build.1.docbook
+++ b/doc/man-kdesrc-build.1.docbook
@@ -131,6 +131,7 @@ combining short options into one at this point. (E.g. 
running
     software installed by &kdesrc-build; accessible.
 
     This is exactly equivalent to using "--install-distro-packages 
--generate-config" at the same time.
+    In kdesrc-build (perl implementation) it additionally uses 
"--install-distro-packages-perl".
 </para>
 </listitem>
 </varlistentry>
diff --git a/doc/supported-cmdline-params.docbook 
b/doc/supported-cmdline-params.docbook
index 2a8014b6..25ccfc7c 100644
--- a/doc/supported-cmdline-params.docbook
+++ b/doc/supported-cmdline-params.docbook
@@ -558,6 +558,7 @@ software to run.
     <option><link 
linkend="cmdline-install-distro-packages">--install-distro-packages</link></option>
     <option><link 
linkend="cmdline-generate-config">--generate-config</link></option>
     at the same time.
+    In kdesrc-build (perl implementation) it additionally uses 
"--install-distro-packages-perl".
 </para>
 </listitem>
 </varlistentry>
diff --git a/kdesrc-build b/kdesrc-build
index 1db44550..01e9a08b 100755
--- a/kdesrc-build
+++ b/kdesrc-build
@@ -89,9 +89,13 @@ eval {
     my @setup_steps;
 
     if (grep { $_ eq "--initial-setup" } @ARGV) {
+        push @setup_steps, "install-distro-packages-perl";  # pl2py: 
kdesrc-specific, not going to kde-builder
         push @setup_steps, "install-distro-packages";
         push @setup_steps, "generate-config";
     } else {
+        if (grep {$_ eq "--install-distro-packages-perl"} @ARGV) {  # pl2py: 
kdesrc-specific, not going to kde-builder
+            push @setup_steps, "install-distro-packages-perl";
+        }
         if (grep {$_ eq "--install-distro-packages"} @ARGV) {
             push @setup_steps, "install-distro-packages";
         }
@@ -112,6 +116,7 @@ if ($@) {
     say STDERR <<DONE;
 * kdesrc-build was unable to load initial setup support for some reason.
 * Did you remember to install the base dependencies for kdesrc-build?
+* Ensure you have run --install-distro-packages-perl (included in 
--initial-setup) before you run further steps.
 * 
https://community.kde.org/Get_Involved/development/Set_up_a_development_environment#Install_basic_tools
 
 $@
diff --git a/modules/ksb/FirstRun.pm b/modules/ksb/FirstRun.pm
index 2c61a111..790f6fd2 100644
--- a/modules/ksb/FirstRun.pm
+++ b/modules/ksb/FirstRun.pm
@@ -47,9 +47,29 @@ sub setupUserSystem
     my $os = ksb::OSSupport->new;
 
     eval {
+        if (grep { $_ eq "install-distro-packages-perl" } @setup_steps) {
+            say colorize("=== install-distro-packages-perl ===");
+            my $perl_distro_deps_path = "$baseDir/data/perl-dependencies";
+            _installSystemPackages($os, $perl_distro_deps_path);
+        }
         if (grep { $_ eq "install-distro-packages" } @setup_steps) {
             say colorize("=== install-distro-packages ===");
-            _installSystemPackages($os);
+
+            # The distro dependencies are listed in sysadmin/repo-metadata 
repository
+            # First, we need to download metadata with Application.
+
+            eval {
+                require ksb::Application;  # Do not import in the beginning, 
because perl packages may not yet be installed.
+            };
+            if ($@){
+                # We get here when even no perl-json-xs is installed. If it 
is, the other message will be shown.
+                say colorize (" r[b[*] r[Could not load Application. Ensure 
you have run b[--install-distro-packages-perl]r[ first.");
+            }
+
+            ksb::Application->new();  # invokes _downloadKDEProjectMetadata 
internally
+
+            my $metadata_distro_deps_path = ($ENV{XDG_STATE_HOME} // 
"$ENV{HOME}/.local/state") . "/sysadmin-repo-metadata/distro-dependencies";
+            _installSystemPackages($os, $metadata_distro_deps_path);
         }
         if (grep { $_ eq "generate-config" } @setup_steps) {
             say colorize("=== generate-config ===");
@@ -82,9 +102,10 @@ sub _readPackages
 {
     my $vendor = shift;
     my $version = shift;
+    my $deps_data_path = shift;
 
     my %packages;
-    open(my $file, '<', "$baseDir/data/pkg/$vendor.ini") or _throw("Cannot 
open file \"$baseDir/data/pkg/$vendor.ini\"");
+    open(my $file, '<', "$deps_data_path/$vendor.ini") or _throw("Cannot open 
file \"$baseDir/data/pkg/$vendor.ini\"");
     my $cur_file;
     my $cur_value;
     my $commit = sub {
@@ -110,38 +131,6 @@ sub _readPackages
 
     $commit->();
 
-    # <editor-fold desc="Perl specific dependencies additions">
-    # pl2py: This is perl specific, not going to kde-builder
-    my %packages2;
-    open(my $file2, '<', "$baseDir/data/perl-dependencies/$vendor.ini") or 
_throw("Cannot open file \"$baseDir/data/pkg/$vendor.ini\"");
-    my $cur_file2;
-    my $cur_value2;
-    my $commit2 = sub {
-        return unless $cur_file2;
-        $packages2{$cur_file2} = ($cur_value2 =~ s/ *$//r);
-        $cur_value2 = '';
-    };
-
-    while(my $line = <$file2>) {
-        next if $line =~ /^\s*#/;
-        chomp $line;
-
-        my ($fname) = ($line =~ /^\[ *([^ ]+) *\]$/);
-        if ($fname) {
-            $commit2->();
-            $cur_file2 = $fname;
-        }
-        else {
-            $cur_value2 .= "$line\n";
-        }
-    }
-    close($file2);
-    $commit2->();
-
-    # Merging
-    $packages{$cur_file} = $packages{$cur_file} . $packages2{$cur_file2};
-    # </editor-fold>
-
     return \%packages;
 }
 
@@ -154,6 +143,7 @@ sub _throw
 sub _installSystemPackages
 {
     my $os = shift;
+    my $deps_data_path = shift;
     my $vendor = $os->vendorID;
     my $osVersion = $os->vendorVersion;
 
@@ -161,7 +151,7 @@ sub _installSystemPackages
  b[-] Installing b[system packages] for b[$vendor]...
 DONE
 
-    my @packages = _findBestVendorPackageList($os);
+    my @packages = _findBestVendorPackageList($os, $deps_data_path);
     if (!@packages) {
         say colorize (" r[b[*] Packages could not be installed, because 
kdesrc-build does not know your distribution (" . $vendor .")");
         return;
@@ -399,6 +389,7 @@ sub _findBestInstallCmd
 sub _findBestVendorPackageList
 {
     my $os = shift;
+    my $deps_data_path = shift;
 
     # Debian handles Ubuntu also
     my @supportedDistros = qw/alpine arch debian fedora freebsd gentoo mageia 
opensuse/;
@@ -406,13 +397,13 @@ sub _findBestVendorPackageList
     my $bestVendor = $os->bestDistroMatch(@supportedDistros);
     my $version = $os->vendorVersion();
     say colorize ("    Installing packages for b[$bestVendor]/b[$version]");
-    return _packagesForVendor($bestVendor, $version);
+    return _packagesForVendor($bestVendor, $version, $deps_data_path);
 }
 
 sub _packagesForVendor
 {
-    my ($vendor, $version) = @_;
-    my $packagesRef = _readPackages($vendor, $version);
+    my ($vendor, $version, $deps_data_path) = @_;
+    my $packagesRef = _readPackages($vendor, $version, $deps_data_path);
 
     foreach my $opt ("pkg/$vendor/$version", "pkg/$vendor/unknown") {
         next unless exists $packagesRef->{$opt};

Reply via email to