helloSystem / ISO

helloSystem Live and installation ISO
https://github.com/helloSystem/
BSD 3-Clause "New" or "Revised" License
809 stars 58 forks source link

Find a way to reduce Skanlite kf5 dependencies #64

Open probonopd opened 3 years ago

probonopd commented 3 years ago
FreeBSD% pkg install skanlite
pkg: Insufficient privileges to install packages
FreeBSD% sudo pkg install skanlite
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 62 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        aspell: 0.60.8,1
        boost-libs: 1.72.0_3
        docbook: 1.5
        docbook-sgml: 4.5_1
        docbook-xml: 5.0_3
        docbook-xsl: 1.79.1_1,1
        gettext-tools: 0.21
        gnupg: 2.2.26
        gpgme: 1.14.0
        gpgme-cpp: 1.14.0
        gpgme-qt5: 1.14.0
        iso8879: 1986_3
        kf5-attica: 5.77.0
        kf5-breeze-icons: 5.77.0
        kf5-karchive: 5.77.0
        kf5-kauth: 5.77.0
        kf5-kbookmarks: 5.77.0
        kf5-kcodecs: 5.77.0
        kf5-kcompletion: 5.77.0
        kf5-kconfig: 5.77.0
        kf5-kconfigwidgets: 5.77.0
        kf5-kcoreaddons: 5.77.0
        kf5-kcrash: 5.77.0
        kf5-kded: 5.77.0
        kf5-kdoctools: 5.77.0
        kf5-kglobalaccel: 5.77.0
        kf5-kguiaddons: 5.77.0
        kf5-ki18n: 5.77.0
        kf5-kiconthemes: 5.77.0
        kf5-kio: 5.77.0
        kf5-kitemviews: 5.77.0
        kf5-kjobwidgets: 5.77.0
        kf5-knotifications: 5.77.0
        kf5-kservice: 5.77.0
        kf5-ktextwidgets: 5.77.0
        kf5-kwallet: 5.77.0
        kf5-kwidgetsaddons: 5.77.0
        kf5-kxmlgui: 5.77.0
        kf5-solid: 5.77.0
        kf5-sonnet: 5.77.0
        libassuan: 2.5.4
        libcanberra: 0.30_5
        libcanberra-gtk3: 0.30_5
        libksane: 20.12.0
        libksba: 1.5.0
        libtextstyle: 0.21
        npth: 1.6
        phonon-qt5: 4.11.1
        pinentry: 1.1.0_7
        pinentry-qt5: 1.1.0_1
        pinentry-tty: 1.1.0
        poppler-glib: 20.12.1
        qt5-script: 5.15.2_1
        qt5-speech: 5.15.2
        qt5-uiplugin: 5.15.2
        qt5-uitools: 5.15.2_1
        qt5-wayland: 5.15.2_1
        sane-backends: 1.0.31_2
        sdocbook-xml: 1.1_2,2
        skanlite: 2.2.0
        xmlcatmgr: 2.2_2
        xmlcharent: 0.3_2
probonopd commented 3 years ago

Maybe @koobs knows or can find out whether there is any way to get a special build variant with only the minimal dependencies into FreeBSD packages? In helloSystem we would like to use this package but without all the dependencies that are not absolutely necessary. And we really would like not to build FreeBSD binary packages just for helloSystem, but rather use what is in FreeBSD packages.

adriaandegroot commented 3 years ago

You will need to do the work of untangling the dependencies -- which come straight from skanlite itself, which come from its (transitive) dependencies. Then you can ask koobs -- or anyone else -- to sort that out for you. I'd recommend looking at skanlite's own cmake output to see what it is looking for.

Bear in mind that FreeBSD's ports tree is mostly "batteries included" -- unlike Linux distro's which split everything out.

Looking at this list specifically, the sgml and docbook things could possibly be build-time dependencies rather than runtime; I'm not sure just when, which bits of documentation are generated. Boost is a bit of a surprise to me: it looks like a build-dep again. The same may be true of qt5-uitools and qt5-uiplugin.

Many packages can be mapped directly to functionality, although I don't really know what spell-checking and autocompletion are there for.

Again: if you do the work to point out which dependencies are optional or build-time only, kde@ is generally happy to lighten ports (especially leaf ports for applications like this one).

koobs commented 3 years ago

Packages are generally batteries included yes, but to the extent that there are OPTIONS (either existing, or that can be created), one can either create a special flavour ("lite" or similar) that unsets a certain set), or one can create a sub port off the main one that does the same (and/or modified the build)

kettle-7 commented 3 years ago

65?

probonopd commented 3 years ago

For now, we are not installing Skanlite on the Live ISO. But maybe @crees could make a skanlite-lite option (no pun intended) one day.

adriaandegroot commented 3 years ago

Because this wobbled into my notifications again, let me repeat: if you look at the port, and find unnecessary dependencies (like, first thing you see is ecm and doctools, which I mentioned in january, and which I tidied up in KDE Frameworks and Plasma for you), then send a PR with a patch and kde@ will be happy to apply. It's not rocket science; it does need you to sit down with one single problem and hammer at it (ecm needs to be build-dep in libksane as well, for instance) until it's done.

koobs commented 3 years ago

Because this wobbled into my notifications again, let me repeat: if you look at the port, and find unnecessary dependencies (like, first thing you see is ecm and doctools, which I mentioned in january, and which I tidied up in KDE Frameworks and Plasma for you), then send a PR with a patch and kde@ will be happy to apply. It's not rocket science; it does need you to sit down with one single problem and hammer at it (ecm needs to be build-dep in libksane as well, for instance) until it's done.

Worth remembering that identifying and documenting/sharing what needs to be, or can be, or should be done is, almost always the necessary condition to progress that goes unsatisfied.

Expertise kept in the heads of the experts is the blocker, not always patches

koobs commented 3 years ago

With a view to progress in mind:

1) dependency list sorted by size (descending) 2) given (1), identify the sources of said deps, their "optionality" so we can 3) produce a lite sub package with appropriate options disable