unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Package for LXQt. Help wanted.
@ 2018-10-22  4:57 Meiyo Peng
  2018-10-22 14:31 ` 宋文武
  2018-10-26 14:24 ` 宋文武
  0 siblings, 2 replies; 10+ messages in thread
From: Meiyo Peng @ 2018-10-22  4:57 UTC (permalink / raw)
  To: guix-devel

Hello everyone,

I made a series of packages for LXQt. The code is at:
https://github.com/meiyopeng/guix/tree/lxqt

I did this beacuse I want to run i3 window manager within lxqt
session. Currently most things work great except lxqt-panel. I have two
problems.

1. The $QT_PLUGIN_PATH environment variable points to
/run/current-system/profile/lib/qt5/plugins. I don't know where it's
set. So qtsvg has to be installed into syetem profile, or all the lxqt
applications can not properly display icons. Should I add qtsvg to
lxqt applications' propagated-inputs? If so, should I add qtbase too,
since qtbase also provides lib/qt5/plugins, although lxqt works without
qtbase in system profile but I can never be sure.

2. lxqt-panel complains about "Warning: Could not find any platform
plugin". (lxqt-runner also prints this message but it works.) I found
out this message was printed by kwindowsystem.

The related code in kwindowsystem:
https://github.com/KDE/kwindowsystem/blob/9f88c9a5d25ff7909c25ce399572ca348b5706b1/src/pluginwrapper.cpp#L79

Qt's document (https://doc.qt.io/qt-5/qcoreapplication.html#libraryPaths)
says "entries of the QT_PLUGIN_PATH environment variable are always
added to libraryPaths". So I install kwindowsystem into system profile,
and add /run/current-system/profile/lib/plugins to QT_PLUGIN_PATH. Then
this error message disappear. But lxqt-panel still does not work.

I still have no idea how to fix lxqt-panel. This does not affect me
because I use i3, so lxqt-panel is useless to me. But there may be other
people interested in LXQt and I want to help them get this fixed. Can
anybody help me?

Will anybody help me review the code? I'd appreciate it.

--
Meiyo Peng

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
  2018-10-22  4:57 Meiyo Peng
@ 2018-10-22 14:31 ` 宋文武
  2018-10-26 14:24 ` 宋文武
  1 sibling, 0 replies; 10+ messages in thread
From: 宋文武 @ 2018-10-22 14:31 UTC (permalink / raw)
  To: Meiyo Peng; +Cc: guix-devel

Meiyo Peng <meiyo.peng@gmail.com> writes:

> Hello everyone,
>
> I made a series of packages for LXQt. The code is at:
> https://github.com/meiyopeng/guix/tree/lxqt

Hello, it looks great!

>
> I did this beacuse I want to run i3 window manager within lxqt
> session. Currently most things work great except lxqt-panel. I have two
> problems.
>
> 1. The $QT_PLUGIN_PATH environment variable points to
> /run/current-system/profile/lib/qt5/plugins. I don't know where it's
> set.

The QT_PLUGIN_PATH can be set by the 'native-search-paths' of qtbase, I
guess you have qtbase in your system profile.  If you install qtbase
into the user profile, the variable would contains
'~/.guix-profile/lib/qt5/plugins'.

> So qtsvg has to be installed into syetem profile, or all the lxqt
> applications can not properly display icons.

Yeah, instead the system profile you can also install qtsvg, etc. into
the user profile.

> Should I add qtsvg to lxqt applications' propagated-inputs? If so,
> should I add qtbase too, since qtbase also provides lib/qt5/plugins,
> although lxqt works without qtbase in system profile but I can never
> be sure.

Yes, we can make them 'propagated-inputs' so that the variables can be
set by the profile (via native-search-paths), or we can wrap the
binaries with all the environment variables (eg: krita).


>
> 2. lxqt-panel complains about "Warning: Could not find any platform
> plugin". (lxqt-runner also prints this message but it works.) I found
> out this message was printed by kwindowsystem.
>
> The related code in kwindowsystem:
> https://github.com/KDE/kwindowsystem/blob/9f88c9a5d25ff7909c25ce399572ca348b5706b1/src/pluginwrapper.cpp#L79
>
> Qt's document (https://doc.qt.io/qt-5/qcoreapplication.html#libraryPaths)
> says "entries of the QT_PLUGIN_PATH environment variable are always
> added to libraryPaths". So I install kwindowsystem into system profile,
> and add /run/current-system/profile/lib/plugins to QT_PLUGIN_PATH. Then
> this error message disappear. But lxqt-panel still does not work.

Okay, we can look into it later...

>
> I still have no idea how to fix lxqt-panel. This does not affect me
> because I use i3, so lxqt-panel is useless to me. But there may be other
> people interested in LXQt and I want to help them get this fixed. Can
> anybody help me?
>
> Will anybody help me review the code? I'd appreciate it.

Generally it look good to me, and I had cherry-pick 2 commits, and push
them (hope it doesn't break existing other lxqt things...), and will
look into others in next days.

Some notes to you:
- Wrap lines under 80 characters if possible.
- Keep comments for '#:tests #f', etc.

Thank you!

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
@ 2018-10-23  0:33 Meiyo Peng
  0 siblings, 0 replies; 10+ messages in thread
From: Meiyo Peng @ 2018-10-23  0:33 UTC (permalink / raw)
  To: guix-devel

Hello,

I checked kwindowsystem's package in debian. It seems the plugins
directory in kwindowsystem should be installed to
/run/current-system/profile/lib/qt5/plugins rather than
/run/current-system/profile/lib/plugins. Maybe this is a bug in the
kwindowsystem package.

File list of package libkf5windowsystem5 in stretch of architecture
amd64:

(link: https://packages.debian.org/stretch/amd64/libkf5windowsystem5/filelist)
#+BEGIN_EXAMPLE
  /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5
  /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5.28.0
  /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/org.kde.kwindowsystem.platforms/KF5WindowSystemWaylandPlugin.so
  /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/org.kde.kwindowsystem.platforms/KF5WindowSystemX11Plugin.so
  /usr/share/doc/libkf5windowsystem5/changelog.Debian.gz
  /usr/share/doc/libkf5windowsystem5/copyright
#+END_EXAMPLE

File list of kwindowsystem in guix:

#+BEGIN_EXAMPLE
  /gnu/store/snf6dh8fprihac2y0mwspgc5lchv12b6-kwindowsystem-5.49.0/lib
  ├── cmake
  │   └── KF5WindowSystem
  │       ├── KF5WindowSystemConfig.cmake
  │       ├── KF5WindowSystemConfigVersion.cmake
  │       ├── KF5WindowSystemTargets.cmake
  │       └── KF5WindowSystemTargets-relwithdebinfo.cmake
  ├── libKF5WindowSystem.so -> libKF5WindowSystem.so.5
  ├── libKF5WindowSystem.so.5 -> libKF5WindowSystem.so.5.49.0
  ├── libKF5WindowSystem.so.5.49.0
  ├── plugins
  │   └── kf5
  │       └── org.kde.kwindowsystem.platforms
  │           ├── KF5WindowSystemWaylandPlugin.so
  │           └── KF5WindowSystemX11Plugin.so
  └── qt5
      └── mkspecs
          └── modules
              └── qt_KWindowSystem.pri
#+END_EXAMPLE

--
Meiyo Peng

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
@ 2018-10-23  3:41 Meiyo Peng
  2018-10-23 13:27 ` 宋文武
  0 siblings, 1 reply; 10+ messages in thread
From: Meiyo Peng @ 2018-10-23  3:41 UTC (permalink / raw)
  To: iyzsong; +Cc: guix-devel

Hello, Mr. Song.

Thank you for your reply.

> Some notes to you:
> - Wrap lines under 80 characters if possible.

My emacs automatically wrap lines at exactly 80 characters. Should I set
it to less than 80?

#+BEGIN_SRC emacs-lisp
  (setq-default fill-column 80)  ;; Change this to 70?
#+END_SRC

"宋文武" is a Chinese name. Are you a Chinese? I am a Chinese. My name
is 彭美玉 (Peng Mei Yu in Pinyin).

--
Meiyo Peng

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
  2018-10-23  3:41 Meiyo Peng
@ 2018-10-23 13:27 ` 宋文武
  0 siblings, 0 replies; 10+ messages in thread
From: 宋文武 @ 2018-10-23 13:27 UTC (permalink / raw)
  To: Meiyo Peng; +Cc: guix-devel

Meiyo Peng <meiyo.peng@gmail.com> writes:

> Hello, Mr. Song.
>
> Thank you for your reply.
>
>> Some notes to you:
>> - Wrap lines under 80 characters if possible.
>
> My emacs automatically wrap lines at exactly 80 characters. Should I set
> it to less than 80?

Not needed (there is 'guix lint', which warn lines longer than 90
characters), no problem.

>
> #+BEGIN_SRC emacs-lisp
>   (setq-default fill-column 80)  ;; Change this to 70?
> #+END_SRC
>
> "宋文武" is a Chinese name. Are you a Chinese? I am a Chinese. My name
> is 彭美玉 (Peng Mei Yu in Pinyin).

是的,你好,很高兴认识你~

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
  2018-10-22  4:57 Meiyo Peng
  2018-10-22 14:31 ` 宋文武
@ 2018-10-26 14:24 ` 宋文武
  2018-10-27  8:19   ` Meiyo Peng
  1 sibling, 1 reply; 10+ messages in thread
From: 宋文武 @ 2018-10-26 14:24 UTC (permalink / raw)
  To: Meiyo Peng; +Cc: guix-devel

Meiyo Peng <meiyo.peng@gmail.com> writes:

> Hello everyone,
>
> I made a series of packages for LXQt. The code is at:
> https://github.com/meiyopeng/guix/tree/lxqt

Hello, thank you again, I have push them!

With some minor edits:

- Add comments about the missing translations (disable the
  PULL_TANSLATIONS), which are in the lxqt-l10n git repository.  I think
  we can prefetch it as a 'origin', add it to the input of the
  application, or add a 'lxqt-l10n' package.

- Correct some licenses, eg: obconf-qt, qps are under GPL2+.


And a "lxqt-build-tools: Dedifen LXQT_*_DIR variables" patch is
unapplied:

     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f))                    ; no tests
+     `(#:tests? #f  ;; no tests
+       #:configure-flags
+       `("-DLXQT_DATA_DIR=/run/current-system/profile/share"
+         "-DLXQT_ETC_XDG_DIR=/run/current-system/profile/etc/xdg")))

What are thoses variables used for?  If I install the 'lxqt' package
into my user profile, should I set them to the directories under my
profile ($HOME/.guix-profile/share and $HOME/.guix-profile/etc/xdg)?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
@ 2018-10-26 15:11 Meiyo Peng
  2018-10-27 11:51 ` 宋文武
  0 siblings, 1 reply; 10+ messages in thread
From: Meiyo Peng @ 2018-10-26 15:11 UTC (permalink / raw)
  To: iyzsong; +Cc: guix-devel

Hello Song,

> Hello, thank you again, I have push them!

Thank you.

> - Add comments about the missing translations (disable the
>   PULL_TANSLATIONS), which are in the lxqt-l10n git repository.  I think
>   we can prefetch it as a 'origin', add it to the input of the
>   application, or add a 'lxqt-l10n' package.

I didn't add lxqt-l10n because it is stated as deprecated on it's home
page.

> - Correct some licenses, eg: obconf-qt, qps are under GPL2+.

Sorry about this. I should have been more careful.

> And a "lxqt-build-tools: Dedifen LXQT_*_DIR variables" patch is
> unapplied:
>
>      (build-system cmake-build-system)
>      (arguments
> -     `(#:tests? #f))                    ; no tests
> +     `(#:tests? #f  ;; no tests
> +       #:configure-flags
> +       `("-DLXQT_DATA_DIR=/run/current-system/profile/share"
> +         "-DLXQT_ETC_XDG_DIR=/run/current-system/profile/etc/xdg")))
>
> What are thoses variables used for?  If I install the 'lxqt' package
> into my user profile, should I set them to the directories under my
> profile ($HOME/.guix-profile/share and $HOME/.guix-profile/etc/xdg)?

These variables are used by all LXQt packages during build time. But
there is no big issue if they are not defined here, I guess it is
because XDG_*_DIRS environment variables are set correctly during
runtime. They default to directories within
/gnu/store/*-lxqt-build-tools-*/ like this:
"/gnu/store/86wy8q4yplhalf3yvmzv673naarxn3na-lxqt-build-tools-0.5.0/share"

I defined these variables here to serve an aesthetic purpose, so that
the "Technical Info" tab within lxqt-about can show the values defined
above rather than directories like this:
"/gnu/store/86wy8q4yplhalf3yvmzv673naarxn3na-lxqt-build-tools-0.5.0/share".

--
Meiyo Peng

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
  2018-10-26 14:24 ` 宋文武
@ 2018-10-27  8:19   ` Meiyo Peng
  2018-10-27 10:24     ` 宋文武
  0 siblings, 1 reply; 10+ messages in thread
From: Meiyo Peng @ 2018-10-27  8:19 UTC (permalink / raw)
  To: iyzsong; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 456 bytes --]

Hello Song,

On Fri, Oct 26, 2018 at 2:26 PM 宋文武 <iyzsong@member.fsf.org> wrote:

>   - Correct some licenses, eg: obconf-qt, qps are under GPL2+.

I made a terrible mistake. I assumed that all LXQt apps are licensed
under LGPL2.1+. But in fact only core LXQt apps are licensed under
LGPL2.1+. Several apps are licensed under GPL2+.

GPL2+ apps: pcmanfm-qt, lximage-qt, obconf-qt, pavucontrol-qt, qps,
qtermwidget, qterminal, screengrab.

[-- Attachment #1.2: Type: text/html, Size: 562 bytes --]

[-- Attachment #2: 0001-gnu-lxqt-Correct-licenses-for-several-packages.patch --]
[-- Type: text/x-patch, Size: 2519 bytes --]

From 45804407d2c886005f1a9e01eae952ae6aa4a1ac Mon Sep 17 00:00:00 2001
From: Meiyo Peng <meiyo.peng@gmail.com>
Date: Sat, 27 Oct 2018 15:56:47 +0800
Subject: [PATCH] gnu: lxqt: Correct licenses for several packages.

* gnu/packages/lxqt.scm (lxqt): Correct licenses for several packages.
---
 gnu/packages/lxqt.scm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index 878998d8f..aeee87b16 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -903,7 +903,7 @@ components to build desktop file managers which belongs to LXDE.")
     (synopsis "File manager and desktop icon manager")
     (description "PCManFM-Qt is the Qt port of PCManFM, the file manager of
 LXDE.")
-    (license license:lgpl2.1+)))
+    (license license:gpl2+)))
 
 
 ;; Extra
@@ -977,7 +977,7 @@ manager Compton.")
     (synopsis "The image viewer and screenshot tool for lxqt")
     (description "LXImage-Qt is the Qt port of LXImage, a simple and fast
 image viewer.")
-    (license license:lgpl2.1+)))
+    (license license:gpl2+)))
 
 (define-public obconf-qt
   (package
@@ -1048,7 +1048,7 @@ window manager OpenBox.")
     (synopsis "Pulseaudio mixer in Qt")
     (description "@code{pavucontrol-qt} is the Qt port of volume control
 @code{pavucontrol} of sound server @code{PulseAudio}.")
-    (license license:lgpl2.1+)))
+    (license license:gpl2+)))
 
 (define-public qps
   (package
@@ -1101,7 +1101,7 @@ processes currently in existence, much like code{top} or code{ps}.")
     (home-page "https://lxqt.org/")
     (synopsis "The terminal widget for QTerminal")
     (description "QTermWidget is a terminal emulator widget for Qt 5.")
-    (license license:lgpl2.1+)))
+    (license license:gpl2+)))
 
 (define-public qterminal
   (package
@@ -1131,7 +1131,7 @@ processes currently in existence, much like code{top} or code{ps}.")
     (synopsis "Lightweight Qt-based terminal emulator")
     (description "QTerminal is a lightweight Qt terminal emulator based on
 QTermWidget.")
-    (license license:lgpl2.1+)))
+    (license license:gpl2+)))
 
 (define-public screengrab
   (package
@@ -1160,7 +1160,7 @@ QTermWidget.")
     (synopsis "Crossplatform tool for fast making screenshots")
     (description "ScreenGrab is a program for fast creating screenshots, and
 easily publishing them on internet image hosting services.")
-    (license license:lgpl2.1+)))
+    (license license:gpl2+)))
 
 
 ;; The LXQt Desktop Environment
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
  2018-10-27  8:19   ` Meiyo Peng
@ 2018-10-27 10:24     ` 宋文武
  0 siblings, 0 replies; 10+ messages in thread
From: 宋文武 @ 2018-10-27 10:24 UTC (permalink / raw)
  To: Meiyo Peng; +Cc: guix-devel

Meiyo Peng <meiyo.peng@gmail.com> writes:

> Hello Song,
>
> On Fri, Oct 26, 2018 at 2:26 PM 宋文武 <iyzsong@member.fsf.org> wrote:
>
>>   - Correct some licenses, eg: obconf-qt, qps are under GPL2+.
>
> I made a terrible mistake. I assumed that all LXQt apps are licensed
> under LGPL2.1+. But in fact only core LXQt apps are licensed under
> LGPL2.1+. Several apps are licensed under GPL2+.

Indeed.

>
> GPL2+ apps: pcmanfm-qt, lximage-qt, obconf-qt, pavucontrol-qt, qps,
> qtermwidget, qterminal, screengrab.

> [4. text/x-patch;
> 0001-gnu-lxqt-Correct-licenses-for-several-packages.patch]...

Good catch, applied, thanks!  (I thought I had checked all the licenses,
but forget...)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Package for LXQt. Help wanted.
  2018-10-26 15:11 Package for LXQt. Help wanted Meiyo Peng
@ 2018-10-27 11:51 ` 宋文武
  0 siblings, 0 replies; 10+ messages in thread
From: 宋文武 @ 2018-10-27 11:51 UTC (permalink / raw)
  To: Meiyo Peng; +Cc: guix-devel

Meiyo Peng <meiyo.peng@gmail.com> writes:

> Hello Song,
>
>> Hello, thank you again, I have push them!
>
> Thank you.
>
>> - Add comments about the missing translations (disable the
>>   PULL_TANSLATIONS), which are in the lxqt-l10n git repository.  I think
>>   we can prefetch it as a 'origin', add it to the input of the
>>   application, or add a 'lxqt-l10n' package.
>
> I didn't add lxqt-l10n because it is stated as deprecated on it's home
> page.

Okay, I see now the repositories (lxqt-about, etc) have their
translations checked in, so the next release will have translations
files in the tarballs.  In the meantime, we could add 'lxqt-l10n' as a
package to get translations for those LXQt applications.  I tried to
build lxqt-l10n, but its CMakeLists.txt can't be used as-is, I'd leave
it now...

>
>> - Correct some licenses, eg: obconf-qt, qps are under GPL2+.
>
> Sorry about this. I should have been more careful.
>
>> And a "lxqt-build-tools: Dedifen LXQT_*_DIR variables" patch is
>> unapplied:
>>
>>      (build-system cmake-build-system)
>>      (arguments
>> -     `(#:tests? #f))                    ; no tests
>> +     `(#:tests? #f  ;; no tests
>> +       #:configure-flags
>> +       `("-DLXQT_DATA_DIR=/run/current-system/profile/share"
>> +         "-DLXQT_ETC_XDG_DIR=/run/current-system/profile/etc/xdg")))
>>
>> What are thoses variables used for?  If I install the 'lxqt' package
>> into my user profile, should I set them to the directories under my
>> profile ($HOME/.guix-profile/share and $HOME/.guix-profile/etc/xdg)?
>
> These variables are used by all LXQt packages during build time. But
> there is no big issue if they are not defined here, I guess it is
> because XDG_*_DIRS environment variables are set correctly during
> runtime. They default to directories within
> /gnu/store/*-lxqt-build-tools-*/ like this:
> "/gnu/store/86wy8q4yplhalf3yvmzv673naarxn3na-lxqt-build-tools-0.5.0/share"
>
> I defined these variables here to serve an aesthetic purpose, so that
> the "Technical Info" tab within lxqt-about can show the values defined
> above rather than directories like this:
> "/gnu/store/86wy8q4yplhalf3yvmzv673naarxn3na-lxqt-build-tools-0.5.0/share".
>

Yeah, thanks for the explanation.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-10-27 11:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-26 15:11 Package for LXQt. Help wanted Meiyo Peng
2018-10-27 11:51 ` 宋文武
  -- strict thread matches above, loose matches on Subject: below --
2018-10-23  3:41 Meiyo Peng
2018-10-23 13:27 ` 宋文武
2018-10-23  0:33 Meiyo Peng
2018-10-22  4:57 Meiyo Peng
2018-10-22 14:31 ` 宋文武
2018-10-26 14:24 ` 宋文武
2018-10-27  8:19   ` Meiyo Peng
2018-10-27 10:24     ` 宋文武

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).