LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 02-09-2017, 11:25 AM   #1
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Rep: Reputation: Disabled
Kdenlive and libselinux


One of the things I have to do quite a lot is video editing. My favourite Linux app for this is Kdenlive. Unfortunately, this is only being developed for KDE5 these days, and the older KDE4 version has some irritating bugs.

So, after experimenting with AlienBob's Plasma5 implementation on an old machine, I've bitten the bullet and installed it on my main machine.

So far so good!

Now I don't know if anyone else out there has tried to build Kdenlive, but it is dependency hell! However, they do an AppImage version, claimed to run "as is". So to keep me going whilst I work my through weeks of compiling dependencies, I thought I'd give it a try.

Big problem!

It relies on libselinux for some reason. All the references I can find to this on Slackware seem to imply that its a pig to install, and really has no place on a sane system. Fair enough, but I NEED it, for the time being, at any rate!

Has anyone got any pointers as to how best to install it, the "gotchas" that seem to be associated with it, or any other advice?

Any comments gratefully received!

--
Pete

Last edited by pchristy; 02-09-2017 at 11:26 AM.
 
Old 02-09-2017, 12:42 PM   #2
55020
Senior Member
 
Registered: Sep 2009
Location: Yorks. W.R. 167397
Distribution: Slackware
Posts: 1,307
Blog Entries: 4

Rep: Reputation: Disabled
Quote:
Originally Posted by pchristy View Post
they do an AppImage version, claimed to run "as is"
Bollocks innit

Quote:
Originally Posted by pchristy View Post
All the references I can find to this on Slackware seem to imply that its a pig to install, and really has no place on a sane system. Fair enough, but I NEED it, for the time being, at any rate!
Whatever hassle you think it is to build kdenlive, selinux would be ten times worse. DON'T GO THERE.

Here's the dependency tree for kdenlive, it's not too bad at all, you might even have lots of the deps already:

Code:
multimedia/kdenlive
  multimedia/xvidcore
  multimedia/x264
  multimedia/schroedinger
  multimedia/mlt
    multimedia/ffmpeg
      multimedia/xvidcore
      multimedia/x265
      multimedia/x264
      multimedia/schroedinger
      multimedia/rtmpdump
      libraries/libmodplug
      libraries/libilbc
      libraries/libiec61883
      libraries/libdc1394
      libraries/libbluray
        graphics/graphviz
        development/jdk
        development/apache-ant
          development/jdk
      libraries/libavc1394
      libraries/libass
      libraries/lame
      libraries/gsm
      libraries/frei0r
      libraries/OpenAL
      development/decklink-sdk
      audio/twolame
      audio/speex
      audio/opus
      audio/opencore-amr
      audio/ladspa_sdk
      audio/celt
    libraries/swfdec
    libraries/libquicktime
    libraries/libdv
    libraries/frei0r
    audio/jack-rack
      audio/ladspa_sdk
      audio/jack-audio-connection-kit
  multimedia/dvgrab
    libraries/libiec61883
    libraries/libdv
    libraries/libavc1394
  multimedia/dvdauthor
  libraries/lame
  libraries/gsm
  audio/faad2
  audio/faac
    libraries/libmp4v2
  audio/amrnb
 
1 members found this post helpful.
Old 02-10-2017, 03:58 AM   #3
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
55020: Thanks for your comments!

Yes, I do already have many of the dependencies installed, and when I build a new version of ffmpeg, I always make sure it has the right configuration options for Kdenlive. However, whilst your list correctly includes MLT and Frei0r as dependencies, I don't think it includes some of *their* dependencies (OpenCV?) - hence my comments about dependency hell!

The last time I tried to build OpenCV it failed with an obscure error that I didn't managed to track down. Must give it another go.....

I know Pat is very conservative when it comes to introducing big revisions of major components, but I'm hoping we get an official Plasma 5 version of Slackware soon. Its not that I'm having any big issues with AlienBob's excellent version, but I do worry that when 5 is officially supported, I might have to go through this whole compilation process again! And Kdenlive isn't the only package that I use regularly that no longer supports KDE-4.......

--
Pete
 
Old 02-10-2017, 10:00 AM   #4
bateleur
Member
 
Registered: Feb 2016
Distribution: Slackware
Posts: 31

Rep: Reputation: Disabled
What do you mean by:

Quote:
Originally Posted by pchristy View Post
And Kdenlive isn't the only package that I use regularly that no longer supports KDE-4
I am using kdenlive in kde4 with Slackware 14.2. Since I didn't want to compile all stuff, I went for a "lazy" approach and installed kdenlive and its dependencies via the Slackonly repository [0]. You can even add it to slackpkg+ [1] (although you might get some "conflicts" with other repositories providing the same software (but in a different version), so it would be wise to set a PKGS_PRIORITY for some of the packages - if you actually are using other repositories with slackpkg+).

According to the kdenlive Slackbuild [2] you need the following dependencies:

Quote:
amrnb
faad2
gsm
lame
dvgrab
schroedinger
x264
xvidcore
faac
dvdauthor
mlt
recordmydesktop (*)
(*) can be installed from Slackware's extras repository or from the Slackonly repository (I have used Slackonly to have all kdenlive dependencies from the same repository)

From these dependencies, three packages (marked in bold) have aditional dependencies:
  1. dvgrab:
    Quote:
    libavc1394
    libdv
    libiec61883
  2. faac
    Quote:
    libmp4v2
  3. mlt (**)
    Quote:
    libdv
    libquicktime (***)
    ffmpeg (****)

(**) Has optional dependencies qt5, ladspa_sdk, frei0r, swfdec and jack-rack. If you have installed KDE Plasma from AlienBob you already have qt5 and I don't remember having installed any of the other optional dependencies. I did install frei0r for using it with Openshot, but removed it afterwards.
(***) Optional dependencies are faac, faad2, ffmpeg, lame, libdv, schroedinger and x264, but all are included in previous dependencies.
(****) Seems to have a lot of optional dependencies, which I did not install, but did not prevent me from having a functional kdenlive (for my needs, at least).

As you can see libdv is a repeated "sub-dependency". So, if you add slackonly repository to slackpkg+, just execute:

Code:
# slackpkg install libdv ffmpeg libmp4v2 libavc1394 libiec61883 amrnb faad2 gsm lame dvgrab schroedinger x264 xvidcore faac  libquicktime dvdauthor mlt recordmydesktop kdenlive
I insist "lazy" approach and maybe not the full functionality of kdenlive, but it works for me. Hope this helps.

[0] http://slackonly.com/pub/packages/
[1] http://slakfinder.org/slackpkg+/src/README
[2] https://slackbuilds.org/repository/1...edia/kdenlive/
 
Old 02-10-2017, 10:30 AM   #5
coralfang
Member
 
Registered: Nov 2010
Location: Bristol, UK
Distribution: Slackware, FreeBSD
Posts: 836
Blog Entries: 3

Rep: Reputation: 297Reputation: 297Reputation: 297
I've not been able to build kdenlive on slackware for at least several months now, as you state dependency hell. Sometimes it will build but then i have issues with ffmpeg not working along with it, resulting in no use at all.

I did in the end, go with pitivi. Which simply works. On slackbuilds it is merely a repackage (doesn't require compiling if i remember rightly). I've been using that for a while for some video editing, and it does most of the things i need.

Just thought that might be useful if you're looking for something else that isn't a headache and a half to get running.
 
Old 02-10-2017, 10:50 AM   #6
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
bateleur: Thanks for another interesting approach! I whish I'd known about it before I embarked on this!

I think I *may* have finally managed to build it all and get it working. It is at least working superficially, though I haven't had chance to give it a good wringing out yet.

A lot of the "dependencies" are only dependent if you need that functionality. For example, I don't need dvgrab, and none of my other utilities / libraries have been built with that requirement, so I can safely ignore it.

The items that caused me the most grief were opencv, mlt and ffmpeg (of all things!). I managed to get opencv-3.1.0 to build, but I simply could not get 3.2 to compile at all. Its meant to contain a lot of bug fixes, so I was quite keen to use it if possible, but whatever I tried, it would get to about 84%, and then just stop! No errors, 0% cpu usage, just nothing! Ctl-C got out of it, but absolutely no clue as to what was happening or why! It just stopped!

MLT kept complaining about Qt5 requiring a c++11 compatible compiler. Luckily I'd run into this one before with avidemux (you need to add -std=c++11 to the cxxflags), but it took a while to find the correct syntax to make it work with mlt!

FFmpeg refused to compile ffplay - again, without any warnings! Google indicated that it needs the sdl libraries to compile ffplay, which I had installed. What it meant was that it needed *SDL2* - but this isn't mentioned anywhere that I could find! And of course, kdenlive requires ffplay!

Anyway, I think I now have a working editor again. Over the next week or two I'll find out if I've left anything else out........!

--
Pete
 
Old 02-10-2017, 10:58 AM   #7
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
p.s. Coralfang: I worked as a professional editor in Bristol for a while, though I've now retired to south Devon. I can give you a more detailed description of how I got it all built if you want to try kdenlive again...

--
Pete
 
Old 02-10-2017, 12:27 PM   #8
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by pchristy View Post
The items that caused me the most grief were opencv, mlt and ffmpeg (of all things!).
opencv and ffmpeg are both pains since they both have optional dependencies against each other (ffmpeg can use opencv and opencv can use ffmpeg -- circular dependencies... yay). On my system, I ended up building ffmpeg without opencv but built opencv against ffmpeg. I'm not sure if one is better than the other or if they should both be rebuilt until they both rely on each other...

But I use slackrepo (created by 55020), which I've found is far easier to plan for these big dependency items, especially when they contain a bunch of optional dependencies. You just set up a hint file for each program that has optional dependencies, then let slackrepo figure out the build order on it's own. When updates to SBo are pushed, you can easily update all required packages.

For kdenlive, I had hintfiles set up for dvgrab, libquicktime, ffmpeg, libass, enca, and vid.stab, which added a number of additional optional dependencies (35, by my count).

Basically, when you go to build one of these programs, you check the READMEs on SBo and then create a hint file for any program that needs optional dependencies (and optional commands, like ffmpeg). You just work your way through the list, checking each optional dependency to see what you want to include. Many times, you'll find you have a hint file already created (like me, since I had already built ffmpeg and created a hint file for that). It does take some time, but you then know you have everything you want, and slackrepo will remember it any time you need to rebuild it (like if/when future updates to any of those dependencies change). Once you're done, you just issue: slackrepo build kdenlive and just wait. My package list for kdenlive is below (sorted alphabetically, so I could remove all the duplicate dependencies -- since multiple programs can rely on the same dependency):

Code:
audio/amrnb (ok)
audio/faac (ok)
audio/faad2 (ok)
audio/opencore-amr (ok)
audio/opus (ok)
audio/speex (ok)
audio/twolame (ok)
development/lua (ok)
development/snappy (ok)
libraries/enca (ok)
libraries/frei0r (ok)
libraries/gsm (ok)
libraries/lame (ok)
libraries/libass (ok)
libraries/libavc1394 (ok)
libraries/libdc1394 (ok)
libraries/libdv (ok)
libraries/libfdk-aac (ok)
libraries/libgme (ok)
libraries/libiec61883 (ok)
libraries/libilbc (ok)
libraries/libmp4v2 (ok)
libraries/libquicktime (ok)
libraries/libquvi (ok)
libraries/libquvi-scripts (ok)
libraries/libwebp (ok)
libraries/OpenAL (ok)
libraries/vid.stab (ok)
misc/recode (ok)
multimedia/dvdauthor (ok)
multimedia/dvgrab (ok)
multimedia/ffmpeg (ok)
multimedia/kdenlive (ok)
multimedia/mlt (ok)
multimedia/rtmpdump (ok)
multimedia/schroedinger (ok)
multimedia/x264 (ok)
multimedia/x265 (ok)
multimedia/xvidcore (ok)
perl/perl-Unicode-Map (ok)
perl/perl-Unicode-Map8 (ok)
perl/perl-Unicode-String (ok)
Slackrepo is very unique in that it will generate a clean chroot every time it goes to compile a program. This prevents your programs from relying on dependencies you haven't specifically specified (and ensures your packages will work on any system you install them on, provided you install all the dependencies). Even though I was using sbopkg with sqg for a few years and being plenty happy with it, I'm really glad I made the switch to slackrepo. It really is a better way of building packages. Due to all my options in the hint files, my dependency tree is quite a bit larger than the one 55020 posted:

Code:
multimedia/kdenlive (ok)
  multimedia/xvidcore (ok)
  multimedia/x264 (ok)
  multimedia/schroedinger (ok)
  multimedia/mlt (ok)
    multimedia/ffmpeg (ok)
      multimedia/xvidcore (ok)
      multimedia/x265 (ok)
      multimedia/x264 (ok)
      multimedia/schroedinger (ok)
      multimedia/rtmpdump (ok)
      libraries/vid.stab (ok)
      libraries/libwebp (ok)
      libraries/libquvi (ok)
        libraries/libquvi-scripts (ok)
          development/lua (ok)
      libraries/libilbc (ok)
      libraries/libiec61883 (ok)
      libraries/libgme (ok)
      libraries/libfdk-aac (ok)
      libraries/libdc1394 (ok)
      libraries/libavc1394 (ok)
      libraries/libass (ok)
        libraries/enca (ok)
          perl/perl-Unicode-Map8 (ok)
            perl/perl-Unicode-String (ok)
          perl/perl-Unicode-Map (ok)
          misc/recode (ok)
      libraries/lame (ok)
      libraries/frei0r (ok)
      libraries/OpenAL (ok)
      development/snappy (ok)
      audio/twolame (ok)
      audio/speex (ok)
      audio/opus (ok)
      audio/opencore-amr (ok)
      audio/faac (ok)
        libraries/libmp4v2 (ok)
    libraries/libquicktime (ok)
      multimedia/x264 (ok)
      multimedia/schroedinger (ok)
      multimedia/ffmpeg (ok)
        multimedia/xvidcore (ok)
        multimedia/x265 (ok)
        multimedia/x264 (ok)
        multimedia/schroedinger (ok)
        multimedia/rtmpdump (ok)
        libraries/vid.stab (ok)
        libraries/libwebp (ok)
        libraries/libquvi (ok)
          libraries/libquvi-scripts (ok)
            development/lua (ok)
        libraries/libilbc (ok)
        libraries/libiec61883 (ok)
        libraries/libgme (ok)
        libraries/libfdk-aac (ok)
        libraries/libdc1394 (ok)
        libraries/libavc1394 (ok)
        libraries/libass (ok)
          libraries/enca (ok)
            perl/perl-Unicode-Map8 (ok)
              perl/perl-Unicode-String (ok)
            perl/perl-Unicode-Map (ok)
            misc/recode (ok)
        libraries/lame (ok)
        libraries/frei0r (ok)
        libraries/OpenAL (ok)
        development/snappy (ok)
        audio/twolame (ok)
        audio/speex (ok)
        audio/opus (ok)
        audio/opencore-amr (ok)
        audio/faac (ok)
          libraries/libmp4v2 (ok)
      libraries/lame (ok)
      audio/faad2 (ok)
      audio/faac (ok)
        libraries/libmp4v2 (ok)
    libraries/libdv (ok)
  multimedia/dvgrab (ok)
    libraries/libquicktime (ok)
      multimedia/x264 (ok)
      multimedia/schroedinger (ok)
      multimedia/ffmpeg (ok)
        multimedia/xvidcore (ok)
        multimedia/x265 (ok)
        multimedia/x264 (ok)
        multimedia/schroedinger (ok)
        multimedia/rtmpdump (ok)
        libraries/vid.stab (ok)
        libraries/libwebp (ok)
        libraries/libquvi (ok)
          libraries/libquvi-scripts (ok)
            development/lua (ok)
        libraries/libilbc (ok)
        libraries/libiec61883 (ok)
        libraries/libgme (ok)
        libraries/libfdk-aac (ok)
        libraries/libdc1394 (ok)
        libraries/libavc1394 (ok)
        libraries/libass (ok)
          libraries/enca (ok)
            perl/perl-Unicode-Map8 (ok)
              perl/perl-Unicode-String (ok)
            perl/perl-Unicode-Map (ok)
            misc/recode (ok)
        libraries/lame (ok)
        libraries/frei0r (ok)
        libraries/OpenAL (ok)
        development/snappy (ok)
        audio/twolame (ok)
        audio/speex (ok)
        audio/opus (ok)
        audio/opencore-amr (ok)
        audio/faac (ok)
          libraries/libmp4v2 (ok)
      libraries/lame (ok)
      audio/faad2 (ok)
      audio/faac (ok)
        libraries/libmp4v2 (ok)
    libraries/libiec61883 (ok)
    libraries/libdv (ok)
    libraries/libavc1394 (ok)
  multimedia/dvdauthor (ok)
  libraries/lame (ok)
  libraries/gsm (ok)
  audio/faad2 (ok)
  audio/faac (ok)
    libraries/libmp4v2 (ok)
  audio/amrnb (ok)
And my various hint files contain the following (ffmpegs kinda crazy since dependencies require options to be passed... I really wish they'd just support autodetection):

Code:
Hints for multimedia/dvgrab:
ADDREQUIRES="libquicktime"

Hints for libraries/libquicktime:
ADDREQUIRES="faac faad2 ffmpeg lame schroedinger x264"

Hints for multimedia/ffmpeg:
OPTIONS="ASS=yes FAAC=yes FDK_AAC=yes FREI0R=yes GME=yes IEC61883=yes ILBC=yes LAME=yes OPENAL=yes OPENCORE=yes OPENSSL=yes OPUS=yes QUVI=yes RTMP=yes SCHROEDINGER=yes SNAPPY=yes SPEEX=yes TWOLAME=yes VIDSTAB=yes WEBP=yes X264=yes X265=yes XVID=yes DC1394=yes"
ADDREQUIRES="libass faac libfdk-aac frei0r libgme libiec61883 libavc1394 libilbc lame OpenAL opencore-amr opus libquvi rtmpdump schroedinger snappy speex twolame vid.stab libwebp x264 x265 xvidcore libdc1394"

Hints for libraries/libass:
ADDREQUIRES="enca"

Hints for libraries/enca:
ADDREQUIRES="recode perl-Unicode-Map perl-Unicode-Map8"

Hints for libraries/vid.stab:
OPTIONS="TRANSCODE=yes"
 
1 members found this post helpful.
Old 02-12-2017, 05:02 AM   #9
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
Bassmadrigal: Many thanks for that detailed and thoughtful post! That is certainly something I shall investigate for the future, and also something of which I was totally unaware until I started this thread! Hopefully it may help others as well.

One thing I have noticed is that the latest -current updates now include ffmpeg. Unfortunately, the version supplied seems to omit many of the requirements, not only for kdenlive, but also for any reasonably comprehensive video management tool. I've stuck with my own build, which I know has everything I need built in. However, it does make me wonder how many Slackware packages are likely to have an ffmpeg dependency, either now or in the future. For example, I now use MPV as my media player of choice (sometimes within smplayer) instead of MPlayer. I find it much slicker, more stable and easier to use than either VLC or MPlayer. However, it does need to be compiled against ffmpeg, and if you update ffmpeg, you usually have to recompile mpv as well. I can see this causing some awkwardness in future, with some Slackware packages being compiled against Slackware's ffmpeg rather than my own, more comprehensive version. I wonder which ones are likely to barf in future because they come across the "wrong" ffmpeg?

Oh, dear! Life isn't getting any simpler, is it?

--
Pete
 
Old 02-12-2017, 10:27 AM   #10
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Yes, the version in Slackware needs to be limited due to patent/copyright issues. Overall, it does certainly seem that Pat adding ffmpeg to Slackware will make things more interesting. Unfortunately, it's new enough that I don't know how we will be affected (especially since I don't normally run -current, so I won't be directly affected for a while).
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: libselinux is a liar!!! LXer Syndicated Linux News 0 09-17-2015 01:51 AM
libselinux dont work in fedora 3 master Fedora 1 02-07-2006 11:32 AM
rpm: relocation error: /lib/libselinux.so.1 vmattila Linux - Software 4 12-26-2004 09:02 AM
libselinux problems belkins Linux - Newbie 4 10-19-2004 11:51 AM
Accidently uninstalled libselinux on Fedora Core 2 ktulu1115 Linux - Software 1 05-03-2004 11:35 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 01:27 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration