tristelune1 writes
Hello,
I have installed upplay 1.2.1 and I don’t see the icons in the GUI. For example there is a button to stop the music. If I click where the button should be, the music stops and I see an effect in the GUI which shows there is a button. But without clicking I see nothing.
I’m on gentoo and I have created the package to install the 1.2.1 version exactly as for the 1.1.0 version. Perhaps you did some changes in between. There was no problem with 1.1.0.
When I start upplay, the following information are displayed in the terminal:
% upplay
libupnpp/upnpplib.cxx:146::LibUPnP: Using IP 192.168.1.37 port 49152
QSystemTrayIcon::setVisible: No Icon set
No systemtrayicon available
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.37:8200/rootDesc.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.37:8200/rootDesc.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49153/description.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49153/description.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.33:55178/Ds/device.xml
Application::setupRenderer: OHTm ok, no need for avt
libupnpp/control/mediarenderer.cxx:133::MediaRenderer: RenderingControl service not found
libupnpp/control/service.cxx:110::Service::~Service: urn:av-openhome-org:service:Volume:1 SID
Application::setupRenderer: using OHVolume
OHPL::onIdArrayChanged: emit trackArrayChanged(). idsv size 10 pool size 10
PlaylistOHPL::onRemoteMetaArray: 10 entries
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.33:55178/MediaRenderer/device.xml
PlaylistOHPL::onRemoteCurrentTrackid: -1
PlaylistOHPL::onRemoteCurrentTrackid: 210
GUI_Player::update_track()
OHProductQo: Changed: SourceIndex (int): 0
OHProductQo: Changed: Standby (int): 0
Application::onSourceTypeChanged: 1
Application::onSourceTypeChanged: same type
OHPL::onIdArrayChanged: emit trackArrayChanged(). idsv size 10 pool size 10
PlaylistOHPL::onRemoteMetaArray: 10 entries
PlaylistOHPL::onRemoteCurrentTrackid: 210
GUI_Player::update_track()
PlaylistOHPL::onRemoteCurrentTrackid: 210
GUI_Player::update_track()
CDBrowser::initialPage: waiting 3
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49153/description.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49154/gatedesc.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49153/description.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49154/gatedesc.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49154/gatedesc.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49154/gatedesc.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.33:55178/Ds/device.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.33:55178/MediaRenderer/device.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49153/description.xml
libupnpp/control/discovery.cxx:147::discoExplorer: downloading http://192.168.1.1:49153/description.xml
libupnpp/control/discovery.cxx:142::discovery:cllb: already downloading http://192.168.1.1:49153/description.xml
libupnpp/control/discovery.cxx:142::discovery:cllb: already downloading http://192.168.1.1:49153/description.xml
medoc92 writes
tristelune1 writes:
> Hello,
>
> I have installed upplay 121 and I don't see the icons in the GUI For example
> there is a button to stop the music If I click where the button should be, the
> music stops and I see an effect in the GUI which shows there is a button But
> without clicking I see nothing
>
> I'm on gentoo and I have created the package to install the 121 version exactly
> as for the 110 version Perhaps you did some changes in between There was no
> problem with 110
>
> When I start upplay, the following information are displayed in the terminal:
There has been a change about icons in the last version: they are kept in the file system instead of being compiled in the program. This is to make it easier if someone would like to improve them.
make install should copy them to /usr/share/icons:
$ ls /usr/share/upplay/icons/
addtab.png edit.png rec.png
append.png fwd_orange.png reload.png
append_small.png fwd.png rep_1.png
arrow_down_orange.png id3.png rep1.png
arrow_down.png import.png repAll.png
arrow_left_orange.png info.png save_as.png
arrow_left.png info_small.png save.png
arrow_right_orange.png logo.png scroll_hor_bg.png
arrow_right.png logo_small.png scroll_ver_bg.png
arrow_up_orange.png lyrics.png shuffle.png
arrow_up.png numbers.png slider_hor_bg.png
broom.png pause.png slider_ver_bg.png
bwd_orange.png playlist.png stop.png
bwd.png play.png upplay.png
cb_checked_disabled.png play_small.png vol_1.png
cb_checked.png power_off.png vol_2.png
close.png power_on.png vol_3.png
cross.png radio.png vol_mute.png
dark rb_checked_disabled.png volume-slider-inside.png
delete.png rb_checked.png volume-slider-outside.png
dynamic.png rec_off.png
Maybe the gentoo package needs to take this into account. Does this occur too with "make install" or just with the package ?
Cheers,
jf
tristelune1 writes
I’m the maintainer of the package, so I have to adapt it. I have the same issue on Archlinux. You can have a look at the package here:
The command "make install" is run. I have some icons in /usr/share/upplay. For example (I didn’t list all of them):
% ls -l /usr/share/upplay/icons
total 452
-rw-r--r-- 1 root root 499 Nov 7 2014 addtab.png
-rw-r--r-- 1 root root 750 Jun 15 2013 append.png
-rw-r--r-- 1 root root 672 Oct 15 2012 append_small.png
-rw-r--r-- 1 root root 460 Mar 16 2013 arrow_down_orange.png
-rw-r--r-- 1 root root 233 Mar 16 2013 arrow_down.png
-rw-r--r-- 1 root root 450 Mar 16 2013 arrow_left_orange.png
-rw-r--r-- 1 root root 244 Mar 16 2013 arrow_left.png
-rw-r--r-- 1 root root 460 Mar 16 2013 arrow_right_orange.png
-rw-r--r-- 1 root root 238 Mar 16 2013 arrow_right.png
-rw-r--r-- 1 root root 449 Mar 16 2013 arrow_up_orange.png
-rw-r--r-- 1 root root 242 Mar 16 2013 arrow_up.png
-rw-r--r-- 1 root root 784 Oct 15 2012 broom.png
Perhaps a permission problem ? Or do I have to refresh something such that my system know there are new icons ? I can also think to a missing dependency. At the moment I have only "qtwebkit" and "libupnpp".
medoc92 writes
There are many icons missing in the above directory listing. I just checked again, the required icon files are in the tar file, and they are installed by "make install" so I don’t know why they are not in your target directory.
Could you please point me to a build log ? We’ll probably see if the icons are copied or not
tristelune1 writes
First, the content of my package for Gentoo is here:
The build log:
Perhaps lines like the following are a problem, because of "…image//usr/share/…."
install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/GUI/icons/vol_1.png /var/tmp/portage/media-sound/upplay-1.2.1/image//usr/share/upplay/icons/dark/
medoc92 writes
The pastebin traces look good to me. The lines you are mentionning are probably because of DESTDIR (a replacement for root while pseudo-installing the package) /var/tmp/portage/media-sound/upplay-1.2.1/image/ is $DESTDIR
I don’t know what’s going on. I think that the next step is to use strace to see where it tries to access the icon (you can grep for an icon name to extract the good parts). Example:
strace upplay 2 >&1 | grep broom
stat("/usr/share/upplay/icons/broom.png", {st_mode=S_IFREG|0644, st_size=784, ...}) = 0
open("/usr/share/upplay/icons/broom.png", O_RDONLY|O_CLOEXEC) = 25
stat("/usr/share/upplay/icons/broom.png", {st_mode=S_IFREG|0644, st_size=784, ...}) = 0
tristelune1 writes
I tried strace and for an unknown reason I was able to start upplay with the icons. I normally starts upplay with dmenu. With dmenu I had no icons and when upplay was started in a terminal everything were fine. But it works 2-3 times and now it doesn’t work anymore. My strace:
% strace upplay 2 >&1 | grep pause
stat("/home/user/icons/pause.png", 0x7ffcda403b40) = -1 ENOENT (No such file or directory)
stat("/home/user/icons/pause.png", 0x7ffcda400270) = -1 ENOENT (No such file or directory)
stat("/home/user/icons/pause.png", 0x7ffcda400730) = -1 ENOENT (No such file or directory)
Now I understand why the icons are not found. Do I have to set a variable somewhere ?
medoc92 writes
The code works as follows: - if /usr/share/upplay exists, then the icons directory is /usr/share/upplay/icons - Else the icons directory is searched in the current directory (this is a leftover from sayonara, I guess that it was used for testing without installing (running in the source directory).
So it would appear that /usr/share/upplay does not exist ? Or that the --prefix used at build time is not consistent with where the upplay directory is actually installed ?
tristelune1 writes
Ok, now I remember what I did to create the package. /usr/share/upplay exists, you can have a look at the first pastebin. When I create the package, the following command is run:
eqmake4 PREFIX=/var/tmp/portage/media-sound/upplay-1.2.1/image/usr
eqmake is for qmake4 in a gentoo package. The package can be installed and I can start the application, but the directory of PREFIX is not found. So I have no icons. I can change it, but in this case can’t create the package.
If I run:
eqmake4 PREFIX=/usr
When all files are compiled, with "make install" all files are copied to the filesystem, like /usr/share/upplay. When the package is created, it’s not possible. The "make install" step must install all packages in a temporary directory. After that the package manager will copy all files to the root filesystem. If I want that all files in the "make install" step are copied to a particular directory (in my case /var/tmp/portage/media-sound/upplay-1.2.1/image/usr) which variable can I use ? I have also tried DESTDIR, but it doesn’t work. And when do I have to set it ? For example, I have tried:
eqmake4 PREFIX=/usr DESTDIR=/var/tmp/portage/media-sound/upplay-1.2.1/image/usr
or
make DESTDIR=/var/tmp/portage/media-sound/upplay-1.2.1/image/usr install
without success.
medoc92 writes
DESTDIR is a pseudo-root used to create the package. PREFIX tells the package where it will be finally installed. So I think that:
eqmake4 PREFIX=/usr DESTDIR=/var/tmp/portage/media-sound/upplay-1.2.1/image/
should work (I removed usr from DESTDIR)
tristelune1 writes
Hi,
after a break I tried your suggestion. Unfortunately, it doesn’t work. You can have a look at the log file here:
I used the following command (line 14):
eqmake4 PREFIX=/usr DESTDIR=/var/tmp/portage/media-sound/upplay-1.2.1/image/
Some Error I get (line 190 and the following):
install -m 755 -p "../../image/upplay" "/usr/bin/upplay"
install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/dirbrowser/cdbrowser.css /usr/share/upplay/cdbrowser/
install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/GUI/standard.css /usr/share/upplay/
install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/upplay.desktop /usr/share/applications/
* ACCESS DENIED: unlink: /usr/share/upplay/standard.css
/usr/bin/install: cannot remove ‘/usr/share/upplay/standard.css’: Permission denied
Makefile:1401: recipe for target 'install_gdata' failed
make: [install_gdata] Error 1 (ignored)
install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/GUI/dark.css /usr/share/upplay/
* ACCESS DENIED: unlink: /usr/share/applications/upplay.desktop
/usr/bin/install: cannot remove ‘/usr/share/applications/upplay.desktop’: Permission denied
Makefile:1391: recipe for target 'install_desktop' failed
make: [install_desktop] Error 1 (ignored)
It seems that DESTDIR is not used.
medoc92 writes
tristelune1 writes:
> Hi,
>
> after a break I tried your suggestion. Unfortunately, it doesn't work. You can
> have a look at the log file here:
After having a look at the Makefile generated by qmake, it seems that they actually use INSTALL_ROOT, not DESTDIR for this. Could you please try the same with:
PREFIX=/usr INSTALL_ROOT=/var/tmp/portage/media-sound/upplay-1.2.1/image/
I sure wish the different build system could agree on some basic stuff like this !
> http://pastebin.fr/44858
>
> I used the following command (line 14):
>
> eqmake4
>
> Some Error I get (line 190 and the following):
>
> install -m 755 -p "../../image/upplay" "/usr/bin/upplay"
> install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/dirbrowser/cdbrowser.css /usr/share/upplay/cdbrowser/
> install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/GUI/standard.css /usr/share/upplay/
> install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/upplay.desktop /usr/share/applications/
> - ACCESS DENIED: unlink: /usr/share/upplay/standard.css
> /usr/bin/install: cannot remove ‘/usr/share/upplay/standard.css’: Permission denied
> Makefile:1401: recipe for target 'install_gdata' failed
> make: [install_gdata] Error 1 (ignored)
> install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.1/work/upplay-1.2.1/GUI/dark.css /usr/share/upplay/
> - ACCESS DENIED: unlink: /usr/share/applications/upplay.desktop
> /usr/bin/install: cannot remove ‘/usr/share/applications/upplay.desktop’: Permission denied
> Makefile:1391: recipe for target 'install_desktop' failed
> make: [install_desktop] Error 1 (ignored)
>
> It seems that DESTDIR is not used.
>
> —
> Reply to this email directly or view it on GitHub.*
medoc92 writes
After having a look at the Makefile generated by qmake, it seems that they actually use INSTALL_ROOT, not DESTDIR for this. Could you please try the same with:
PREFIX=/usr INSTALL_ROOT=/var/tmp/portage/media-sound/upplay-1.2.1/image/
I sure wished the different build system could agree on some basic stuff like this !
tristelune1 writes
I had in mind I already tried it, and it didn’t work. After testing it, unfortunately it doesn’t work. You can have a look at the log here:
The command on line 14:
eqmake4 PREFIX=/usr INSTALL_ROOT=/var/tmp/portage/media-sound/upplay-1.2.1/image/
And after I get the same "access denied" as before. When I try to install it without creating the package, I see the variable INSTALL_ROOT in the Makefile. I also see the variable DESTDIR. I don’t understand the following: - There is a line:
DESTDIR =
The variable is empty, because I didn’t set it. The problem as we have seen: after that the variable is not used. - The variable INSTALL_ROOT is used. But there is no line:
INSTALL_ROOT = /my/path
So I think even if I set that variable as a parameter to make, make won’t assign the value of the parameter to INSTALL_ROOT. I don’t know qmake, but after searching I assume the makefile is created with the file upplay.pro. Is it possible there is a change to make there ? In the following thread somebody had the same problem for another software and the solution was to modify the .pro file:
Perhaps DESTDIR can be also used, but the .pro file has to be modified. I agree with your last comment ;-).
medoc92 writes
I just checked and using INSTALL_ROOT does work when doing a raw "make install":
INSTALL_ROOT=/tmp make install
install -m 755 -p "upplay" "/tmp/usr/bin/upplay"
strip "/tmp/usr/bin/upplay"
...
Or:
make INSTALL_ROOT=/tmp install
install -m 755 -p "upplay" "/tmp/usr/bin/upplay"
strip "/tmp/usr/bin/upplay"
...
I don’t know why there is an empty, and unused, declaration for DESTDIR in the Makefile generated by qmake (looks like qmake bitrot), but INSTALL_ROOT is properly used.
The fact that there is no line to set INSTALL_ROOT in the Makefile is not an issue, make will use an environment variable or a command line assignment.
I think that the problem is that you try to set the variable at "qmake" time, but this must be set at "make" time.
I don’t know much about arch packaging, but if the standard variable used by the system is DESTDIR, I think that modifying the "make install" line to read something like the following should solve the issue:
INSTALL_ROOT=$DESTDIR make install
tristelune1 writes
You’re right, I was wrong. I was setting the variable INSTALL_ROOT at the compile step, not install step. Sometimes I should read twice what I have written…….
There is still a small problem, but I think it’s rather related to gentoo than a problem with upplay. On gentoo, when the files are installed I have for example:
install -m 644 -p /var/tmp/portage/media-sound/upplay-1.2.2/work/upplay-1.2.2/GUI/icons/slider_hor_bg.png /var/tmp/portage/media-sound/upplay-1.2.2/image//usr/share/upplay/icons/
Have a look at the second path: ….image//usr/share….
There is no problem on Archlinux. So I think you can close this issue.
Even if there is this small problem for Gentoo, the users can install the package. So upplay is now updated for Archlinux and Gentoo.
Thank you for your help!
medoc92 writes
Thanks for doing this packaging work !