The small linux problem thread

lots of packages/repos arent proactive in making sure they have a new version available for the new release.

The best way, IMO, to upgrade (version to version) is to wait out the hiccups.

2 Likes

Well, yeah, I would expect that of third-party software and packages, but one that is part of the Distribution? Only thing I can think of is that KDE dropped the project (last release was 5 years ago was well), but I donā€™t see anything about that.

32 was released in the last couple days, yeah?

I always gave it at least 14 days before doing a fedora release upgrade.

Seems like thereā€™s a lot of small packages there. They may have consolidated them in to one, and just not set up proper replacement paths in the repo tree.

Just switched to pop os 20.04 from Kubuntu 20.04ā€¦wow I really, really donā€™t like it. Any other distros to try before I go back to Kubuntu?

why distrohop?

1 Like

Iā€™m not NEW new to Linux, but I think itā€™s time I learnt the ways of open source computing. My uni semester is ending soon so I wanted to try something new for the Summer semester. I liked Kubuntu very much and wanted to see what the others had to offer. Think Iā€™ll settle for KDE Neon to replace Kubuntu as my daily driver on the laptop.

I dont see the point

Tldr
Previous installation was ā€œdirtyā€, wanted to start afresh

sounds like some windows level excuses

1 Like

If you want to stick to KDE you can also try out Fedora KDE.

Begin small linux problem (Kubuntu 20.04):


I like the Cantata music player, and I want to use it to listen to my library. Cantata uses mpd (media player daemon) to actually run the audio stream, Cantataā€™s actually just a frontend for picking media files.

By default, mpd runs as its own user (mpd) and reads a system-wide config file at /etc/mpd.conf. This is a single-user machine, so thatā€™s fine with me, except that it canā€™t send audio to PulseAudio this way, since itā€™s not running under my user account. The user configuration key has no effect here.

Next, I set up a per-user config at ~/.config/mpd/mpd.conf. This fixes the audio, and I can start the daemon by typing mpd in a terminal once Iā€™m logged in. Great so far, now I just need it to auto-start on login.

This is the problem. mpd comes with systemd targets, and if I run them as root, they only read the system-wide config (as expected), producing no audio output (as expected). However, when I throw in the --user flag, mpd doesnā€™t start at login and I get new errors. Edited for brevity:

systemctl --user status mpd.service:

     Active: failed (Result: exit-code) since Sat 2020-05-02 21:53:55 EDT; 9min ago
TriggeredBy: ā— mpd.socket
[...]
May 02 21:53:55 Black-Cherry mpd[1405]: May 02 21:53 : exception: Failed to bind to '127.0.0.1:6600'
May 02 21:53:55 Black-Cherry mpd[1405]: May 02 21:53 : exception: nested: Failed to bind socket: Address already in use
[...]

systemctl --user status mpd.socket:

     Active: failed (Result: resources)
   Triggers: ā— mpd.service
[...]
May 02 21:53:55 Black-Cherry systemd[1398]: mpd.socket: Failed to create listening socket ([::]:6600): Address already in use
May 02 21:53:55 Black-Cherry systemd[1398]: mpd.socket: Failed to listen on sockets: Address already in use
May 02 21:53:55 Black-Cherry systemd[1398]: mpd.socket: Failed with result 'resources'.
May 02 21:53:55 Black-Cherry systemd[1398]: Failed to listen on mpd.socket.

The problem seems to be related to binding the socket. Iā€™m not doing anything network-related with mpd, but thereā€™s no clear way to configure it to just not bind anything. Masking mpd.socket has no effect on the errors returned by mpd.service, and I canā€™t disable either user service for some reason.

Hereā€™s the weird part: after logging in, running systemctl --user start mpd.service works perfectly, as does simply running mpd. Both of these methods do indeed bind 127.0.0.1:6600 according to lsof; the failed systemd targets donā€™t. Port 6600 is not used except by mpd.

So, why is binding a port on localhost such a pain point for non-root, but only in the midst of login? Do I need to add an additional After target in the target configuration?

Also yes I realize I could just make a one-liner script file to run mpd and exit, and use my DEā€™s autostart thing to run it at login, but I would prefer to be able to sleep at night with my chosen solution.

Trying to compile OBS.Live from source (because thereā€™s no official Linux release) on Fedora, and getting stuck compiling CEF first ('m trying to adapt the Mac compile process since Linux support is rather new in OBS-browser). I can build the CMake files, and make gets halfway through after installing libX11-devel, but Iā€™m getting this error:

[ 54%] Linking CXX static library libcef_dll_wrapper.a
[ 54%] Built target libcef_dll_wrapper
Scanning dependencies of target cefsimple
[ 55%] Building CXX object tests/cefsimple/CMakeFiles/cefsimple.dir/simple_app.cc.o
[ 55%] Building CXX object tests/cefsimple/CMakeFiles/cefsimple.dir/simple_handler.cc.o
[ 55%] Building CXX object tests/cefsimple/CMakeFiles/cefsimple.dir/cefsimple_linux.cc.o
[ 55%] Building CXX object tests/cefsimple/CMakeFiles/cefsimple.dir/simple_handler_linux.cc.o
[ 56%] Linking CXX executable Release/cefsimple
/usr/bin/ld: ../../../Release/libcef.so: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make[2]: *** [tests/cefsimple/CMakeFiles/cefsimple.dir/build.make:151: tests/cefsimple/Release/cefsimple] Error 1
make[1]: *** [CMakeFiles/Makefile2:225: tests/cefsimple/CMakeFiles/cefsimple.dir/all] Error 2
make: *** [Makefile:104: all] Error 2

Not sure what Iā€™m supposed to do with that information. Not sure what ā€œfile in wrong formatā€ is even supposed to tell meā€¦ format in what way? architecture? line endings? Either way how would I fix that?

edit: nevermindā€¦ fixed it. The Spotify download page is really weird. When selecting Linux 64 the first file is still for 32 :roll_eyes:

edit2:
Now running into this thoughā€¦

[ 77%] Building CXX object tests/ceftests/CMakeFiles/ceftests.dir/__/shared/browser/main_message_loop_external_pump_linux.cc.o                                                                                                                  
/home/tarulia/Documents/dev/OBS.Live/build/cef_binary_81.3.1+gb2b49f1+chromium-81.0.4044.113_linux64/tests/shared/browser/main_message_loop_external_pump_linux.cc:11:10: fatal error: glib.h: No such file or directory
   11 | #include <glib.h>
      |          ^~~~~~~~
compilation terminated.
make[2]: *** [tests/ceftests/CMakeFiles/ceftests.dir/build.make:980: tests/ceftests/CMakeFiles/ceftests.dir/__/shared/browser/main_message_loop_external_pump_linux.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:280: tests/ceftests/CMakeFiles/ceftests.dir/all] Error 2
make: *** [Makefile:104: all] Error 2

tried installing glib-devel, glib2-devel with no success, glibc-devel is already installedā€¦ hints? :frowning:

Could you not just make a target named mpd@<your_user>.service? Then you would include the normal requirements in your service file but make sure it has permissions to the right group to run unattended.

1 Like

whats the diff b/t obs studio and obs live?

Thank you so much! You put me on the right track to solve my problem.

For some reason, Systemd put my --user symlinks in /etc/systemd/user, which made them read-only for my user account (root/root, 755). Thatā€™s why I couldnā€™t disable the services. Deleted them as root, and the targets are disabled, finally. Manually re-enable them, and the symlink appears in ~/.config/systemd/user. One problem solved!

As I was getting that sorted, I made an instantiated service file as suggested. Of course, running the service without --user never worked to begin with, so that didnā€™t change. But after I fixed the symlink issue, I copied the user version of the unit file and enabled that service with --user. It worked, which was weird, because I hadnā€™t changed the unit file at all. I disabled the unit file and gave the normal unit file a shot, and now it just worksā„¢. So it must have been those bum symlinks from Canonical all along.

Thanks again!

1 Like

OBS.Live is a plugin for OBS to integrate StreamElements, itā€™s not a fork or anything. Wellā€¦ itā€™s a fork of obs-browser, but not OBS itself (unlike StreamLabs OBS)

1 Like

So I asked on the OBS Discord, and they suggested using an older Chromium Version.
Iā€™m using CEF 76.1.13+gf19c584+chromium-76.0.3809.132 and it gets through that part, but is stuck now at some GTK dependency:

[ 82%] Building CXX object tests/cefclient/CMakeFiles/cefclient.dir/browser/browser_window.cc.o
In file included from /home/tarulia/Documents/dev/OBS.Live/build/cef_binary_76.1.13+gf19c584+chromium-76.0.3809.132_linux64/tests/cefclient/browser/client_handler.h:16,
                 from /home/tarulia/Documents/dev/OBS.Live/build/cef_binary_76.1.13+gf19c584+chromium-76.0.3809.132_linux64/tests/cefclient/browser/browser_window.h:11,
                 from /home/tarulia/Documents/dev/OBS.Live/build/cef_binary_76.1.13+gf19c584+chromium-76.0.3809.132_linux64/tests/cefclient/browser/browser_window.cc:5:
/home/tarulia/Documents/dev/OBS.Live/build/cef_binary_76.1.13+gf19c584+chromium-76.0.3809.132_linux64/tests/cefclient/browser/client_types.h:12:10: fatal error: gtk/gtk.h: No such file or directory
   12 | #include <gtk/gtk.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [tests/cefclient/CMakeFiles/cefclient.dir/build.make:96: tests/cefclient/CMakeFiles/cefclient.dir/browser/browser_window.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:307: tests/cefclient/CMakeFiles/cefclient.dir/all] Error 2
make: *** [Makefile:104: all] Error 2

There is Fedora documentation regarding GTK development:

https://developer.fedoraproject.org/tech/languages/c/gtk.html

After installing the packages listed there I am still getting the same error though.
Iā€™ve also tried installing gtk2-devel and gtk+-devel, with no luck either.

edit:
So, after a bit of talk they also suggested only building the wrapper since apparently the gtk stuff is only needed for the tests. If we assume that the compile runs clear, they arenā€™t needed so can be ignored. just running make libcef_dll_wrapper finishes without issues.

Iā€™m also able to compile OBS including the browser source (which is missing in the Fedora Repo for some reason).
I can not get OBS.Live (i.e. the StreamElements version of obs-browser) to compile however, due to unsatisfied dependencies. They include angelscript (which is available in Fedora, Iā€™d just need to tell it the path) and BugSplat, which is commercial and most likely requires their commercial license.

So itā€™s been almost 2 weeks now and that package is still not available. Iā€™m going to take a wild guess and say that package was abandoned by KDE (last release seems to have been over 5 years ago according to Wikipedia).
Itā€™s just odd that they wouldnā€™t mark it for removal upon upgrade. Itā€™s not the first package that was seemingly abandoned and removed during a release upgrade.
The KDE Multimedia manager (it was just called Multimedia, I donā€™t know what the actual package name is) where you could give certain audio categories specific priorities and such disappeared from 29 to 30 if I recall correctly (even though it seems to still be in use because on some audio players I still get its notifications, but the configuration panel is gone).

The one small issue I have with Fedora is that I just donā€™t know where I would even start reporting those things. The Redhat Bugtracker seems an obvious choice but I donā€™t know if itā€™s correct.

Anyway, since Iā€™m not using Telepathy anyway (as far as I can tell?), Iā€™m just going to remove it and do the upgrade anyway. I think Telepathy is this in the System Settings:

Whichā€¦ seems promising :slight_smile:

edit: Was actually the last outstanding package:

Transaction Summary
========================================================================================================================
Install      59 Packages
Upgrade    2603 Packages
Remove       35 Packages
Downgrade     2 Packages

Total download size: 3.0 G

Off we go I guess.

edit 2:
OK, that went smooth, except that now I donā€™t have any audio anymore on my headphone/speaker

Topic regarding that moved out of here.

Would anybody mind walking me through how to get radeon-profile working? Linux noob here. - https://github.com/marazmista/radeon-profile

When i do qmake
Terminal spits back Project MESSAGE: Building for release Project ERROR: Unknown module(s) in QT: charts

Did you install qt-charts?