Bug 381667

Summary: Please allow kuiserver to be built separately without additional dependencies
Product: [Frameworks and Libraries] frameworks-kio Reporter: Miklos Karacsony <mkaracsony81>
Component: generalAssignee: David Faure <faure>
Status: REPORTED ---    
Severity: normal CC: a.samirh78, kdelibs-bugs, mkaracsony81, nate, nix.or.die, simonandric5
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Patch to allow building kuiserver as a standalone package

Description Miklos Karacsony 2017-06-26 08:54:53 UTC
I cannot build a standalone kuiserver from the main package without satisfying other dependencies first. The reason why I would like to build it a standalone is because I am using lxQt and Krusader together. Krusader uses kuiserver to display progress dialog boxes.
The main package (plasma-workspace) pulls in networkmanager as a dependency for example but I am using connman to manage my network connections so this is problem for me. Please think about providing a way to build kuiserver without pulling in other than its own dependencies (currently qt5: base, svg, x11extras, svg. kf5: xmlgui, dbusaddons, configwidgets, config, itemviews, i18n, coreaddons, textwidgets, windowsystem, attica, globalaccel, iconthemes, codec, auth, guiaddons, sonnet, service, completion, archive).
I've tried to build it using CMakeLists.txt from kuiserver directory, but without success.
Comment 1 Kai Uwe Broulik 2017-06-26 08:56:34 UTC
Shouldn't KJobWidgets when not having a kuiserver running just display a traditional dialog box? I don't see why you would need kuiserver
Comment 2 Miklos Karacsony 2017-06-26 08:59:33 UTC
Unfortunately it does not display anything.

Please see:
https://bugs.archlinux.org/task/48031
https://rohlix.wordpress.com/2016/08/19/krusader-copymove-dialog-not-visible/
Comment 3 Kai Uwe Broulik 2017-06-26 09:03:07 UTC
Can you try with Dolphin? It should use the same KIO infrastructure. If that's also broken the issue lies elsewhere.
Comment 4 Miklos Karacsony 2017-06-26 09:09:23 UTC
I'll try that, and I'll get back to you once I've built dolphin and it's dependencies.
Comment 5 Miklos Karacsony 2017-06-26 10:09:45 UTC
I've tried dolphin, but it didn't display anything (copied a large folder full of movies from one drive to another).
Meanwhile, I've done some digging, and according to arch devs dolphin needs kuiserver also:
https://www.archlinux.org/packages/extra/x86_64/dolphin/
I's not even optional it is a hard dependency, although I was able to build dolphin without it.
Comment 6 Kai Uwe Broulik 2017-06-26 10:13:26 UTC
Let's re-assign to KIO then which provides DynmicJobTracker. When I quit plasmashell I get a fallback dialog but it seems it still goes through kuiserver as it starts the service when not running.
Comment 7 Miklos Karacsony 2017-06-26 10:16:15 UTC
So, do you want me to open a bug against KIO?
Comment 8 Miklos Karacsony 2017-06-26 10:41:19 UTC
I've opened a bug against KIO: https://bugs.kde.org/show_bug.cgi?id=381672
Please keep this one open for a while, as I've posted a link which points to this bug report in my first comment. Many Thanks!
Comment 9 Gabriel C 2017-06-26 14:01:10 UTC
You could build standalone kuiserver with an small patch(es)

For that you need add a custom cmake file which sets things kuiserver needs..

eg a kuiserver/Custom.txt with something like :

set(QT_MIN_VERSION "5.7.0")
set(KF5_MIN_VERSION "5.34.0")
find_package(ECM 1.8.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})

include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(ECMPackageConfigHelpers)
include(ECMMarkNonGuiExecutable)
include(CMakePackageConfigHelpers)
include(WriteBasicConfigVersionFile)
include(CheckIncludeFiles)
include(FeatureSummary)
include(ECMOptionalAddSubdirectory)
include(ECMQtDeclareLoggingCategory)
include(KDEPackageAppTemplates)


find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
                    ItemViews Notifications KIO XmlGui DBusAddons I18n Init)


( please note this is just an example after an quick loook )

then change kuiserver/CMakeLists.txt and include(Custom.txt) as first line.


Now cd kuiserver && mkdirp -p my_build && cd my_build && cmake ..

Ofc this is just an _workaround_ for you so you can test things..

Regards
Comment 10 Miklos Karacsony 2017-06-26 14:21:50 UTC
I was able to build it with my own workaround by using the following in the source directory:
sed -i -e '/ Baloo)/d;/SysGuard/d;/KF5XmlRpcClient/d;s/DocTools Runner JsEmbed/DocTools/' CMakeLists.txt
(this solution is backward compatible with the 4.8 branch where baloo was among the required packages)
Of course for this to work I still need kdelibs4support, so I'll definitely try your solution. Thanks for the idea!
Comment 11 Miklos Karacsony 2017-06-26 14:35:53 UTC
I've tried it, the result:

CMake Error at CMakeLists.txt:46 (install):
  install FILES given no DESTINATION!


CMake Error at CMakeLists.txt:54 (kf5_add_kdeinit_executable):
  Unknown CMake command "kf5_add_kdeinit_executable".


CMake Error in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.7)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".


-- Configuring incomplete, errors occurred!

I am (unfortunately) not familiar with cmake's syntax, so I don't know what to do next. Any ideas?
Comment 12 Miklos Karacsony 2017-06-26 14:44:36 UTC
(In reply to Miklos Karacsony from comment #11)
> I've tried it, the result:
> 
> CMake Error at CMakeLists.txt:46 (install):
>   install FILES given no DESTINATION!
> 
> 
> CMake Error at CMakeLists.txt:54 (kf5_add_kdeinit_executable):
>   Unknown CMake command "kf5_add_kdeinit_executable".
> 
> 
> CMake Error in CMakeLists.txt:
>   No cmake_minimum_required command is present.  A line of code such as
> 
>     cmake_minimum_required(VERSION 3.7)
> 
>   should be added at the top of the file.  The version specified may be lower
>   if you wish to support older CMake versions for this project.  For more
>   information run "cmake --help-policy CMP0000".
> 
> 
> -- Configuring incomplete, errors occurred!
> 
> I am (unfortunately) not familiar with cmake's syntax, so I don't know what
> to do next. Any ideas?

Sorry, I simply forgot to add the includes. Now it works fine, although I had to add cmake_minimum stuff to CMakeLists.txt instead of adding it to Custom.txt
Comment 13 Miklos Karacsony 2017-06-26 15:04:55 UTC
Created attachment 106310 [details]
Patch to allow building kuiserver as a standalone package

Attached patch just in case someone else faces the same problem. Tested, and it works. Thank you for your help!
Comment 14 Gabriel C 2017-06-26 15:14:09 UTC
(In reply to Miklos Karacsony from comment #11)
> I've tried it, the result:
> 
> CMake Error at CMakeLists.txt:46 (install):
>   install FILES given no DESTINATION!
> 
> 
> CMake Error at CMakeLists.txt:54 (kf5_add_kdeinit_executable):
>   Unknown CMake command "kf5_add_kdeinit_executable".
> 
> 
> CMake Error in CMakeLists.txt:
>   No cmake_minimum_required command is present.  A line of code such as
> 
>     cmake_minimum_required(VERSION 3.7)
> 
>   should be added at the top of the file.  The version specified may be lower
>   if you wish to support older CMake versions for this project.  For more
>   information run "cmake --help-policy CMP0000".
> 
> 
> -- Configuring incomplete, errors occurred!
> 
> I am (unfortunately) not familiar with cmake's syntax, so I don't know what
> to do next. Any ideas?


Well some things missing :)

This seems to work here :

http://ftp.frugalware.org/pub/other/people/crazy/this_works_for_me.patch
Comment 15 Nate Graham 2018-08-22 20:59:21 UTC
Would you be interested in submitting your patch using phabricator.kde.org? Don't worry, it's really easy, and we have great documentation: https://community.kde.org/Infrastructure/Phabricator
Comment 16 Ahmad Samir 2020-05-27 19:32:21 UTC
Is this still a valid issue?
Comment 17 Miklos Karacsony 2020-05-28 15:12:19 UTC
I cannot say, it's been a while since I built these. Close the bug for now, and if it's still an issue in the future I can open a new bug report then.