You are not logged in.

#1 2009-11-23 19:34:55

scooby
Member
Registered: 2009-03-19
Posts: 23

Trying to customise mplayer

I am trying to customise my mplayer installation on a NC10 netbook. I have no need for cdparanoia (no cd drive),
and have no need for smbclient. smbclient is a relatively large dependency (~20mb of a total of 40mb), I am trying to keep my install as slim as possible.

Anyway, I got ABS all set up and removed cdparanoia and smbclient from "depends" in the pkgbuild. Compiled away and successfully installed - cdparanoia and smbclient not pulled in as dependencies. Works great.

So now I have a couple of questions. Is it possible to use pacman to prevent dependencies getting installed using the standard binary packages? Or do you always have to make custom packages (and compile from source) if you want to prevent some dependencies getting pulled in? Secondly, I used gentoo for a few months (got bored of compiling on a netbook), and I seem to remember that mplayer had a lot more USE flags than what appears in the ./configure section of the pkgbuild. I think I could compile it without any support for e.g. cdparanoia, but I don't see how to do this with the pkgbuild. By removing cdparanoia from "depends", have I compiled it without cdparanoia support?

This is my first time using abs and pkgbuild, in case you hadn't guessed.

Offline

#2 2009-11-23 19:44:28

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: Trying to customise mplayer

'pacman -Syu' won't upgrade your ABS-built mplayer. If the standard package gets compiled w/ cdparanoia as a dep, pacman will attempt to get it. You can remove anything w 'pacman -Rd' but compiling a fresh mplayer from ABS is a saner approach. IgnorePkg in /etc/pacman.conf may or may not work - if you remove cdparanoia, there's nothing to hold ...

> mplayer had a lot more USE flags than what appears in the ./configure section of the pkgbuild
Oh yes, configuring & compiling mplayer is fun! ;-) There are many minimal mplayer "versions" around, you can check their PKGBUILDs to see what '--disable-xyz' they use.

Last edited by karol (2009-11-23 19:47:33)

Offline

#3 2009-11-23 22:55:27

scooby
Member
Registered: 2009-03-19
Posts: 23

Re: Trying to customise mplayer

I'll go and have a hunt for some mplayer pkgbuilds.

I'm curious as to why cdparanoia and smbclient would be hard dependencies, and not optional dependencies. In my mind, hard dependencies would be only those that are absolutely required for the program to run, everything else would be an optional dependency.

I will have a look through some more pkgbuilds of packages I have installed to see how dependencies are set up.

Offline

#4 2009-11-23 23:05:58

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: Trying to customise mplayer

I use this one http://aur.archlinux.org/packages.php?ID=26578
No lirc (so no python), no smbclient :-)

Offline

#5 2009-11-23 23:27:17

Stefan Husmann
Member
From: Germany
Registered: 2007-08-07
Posts: 1,391

Re: Trying to customise mplayer

There were some posts on the aur-general mailing list just today. You can find it on pipermail. The developer wanted to test if a san subset works when removing smbclient.

Offline

#6 2009-11-24 01:51:08

skottish
Forum Fellow
From: Here
Registered: 2006-06-16
Posts: 7,942

Re: Trying to customise mplayer

scooby wrote:

I'm curious as to why cdparanoia and smbclient would be hard dependencies, and not optional dependencies. In my mind, hard dependencies would be only those that are absolutely required for the program to run, everything else would be an optional dependency.

Mplayer loves to link against anything and everything that it can when compiling. It can be a real PITA. My advice would be to grab a mplayer-svn PKGBUILD, take some time to figure out everything that you want permanently disabled, and put in an absurd ./configure line in the PKGBUILD. My needs are a little strange, but this is an example of what I mean. I just realized a couple of days ago that I missed some things. I haven't gotten around to adding them yet:

   ./configure --prefix=/usr --confdir=/etc/mplayer \
      --disable-gui \
      --disable-faad \
      --disable-faad-internal \
      --disable-runtime-cpudetection \
      --disable-faac \
      --disable-faac-lavc \
      --disable-libdv \
      --disable-aa \
      --disable-mencoder \
      --disable-liblzo \
      --disable-speex \
      --disable-fribidi \
      --disable-smb \
      --disable-openal \
      --disable-x264 \
      --disable-esd \
      --disable-jack \
      --disable-gl \
      --disable-fbdev \
      --disable-mp3lib \
      --disable-dvb \
      --disable-dvbhead \
      --disable-theora \
      --disable-libvorbis \
      --disable-musepack \
      --disable-directfb \
      --disable-nas \
      --disable-liba52 \
      --disable-libavutil_a \
      --disable-libavcodec_a  \
      --disable-libavformat_a \
      --disable-libswscale_a \
      --disable-libpostproc_a \
      --disable-tv \
      --disable-tv-v4l1 \
      --disable-tv-v4l2 \
      --disable-v4l2 \
      --disable-dga2 \
      --disable-dga2 \
      --disable-vidix \
      --disable-gif

Offline

#7 2009-11-29 01:41:40

Knute
Member
From: Minot, ND
Registered: 2009-03-17
Posts: 604

Re: Trying to customise mplayer

One way that you can kind of "set and forget" is to use customizepkg.

I use yaourt and it's nice that I don't have to worry about settings getting changed.

The setup of the customizepkg file (u need one for each package) can be kind of confusing at first, and the docs aren't the greatest, but it's a good package.

Here's my /etc/customzepkg.d/mplayer-svn file:

 7:37PM % cat mplayer-svn      /etc/customizepkg.d (knute) pts/2
# This is an example of config file for customizepkg
#  Copy this file in /etc/customizepkg.d/mplayer to use it
#
# syntax works like this:
#ACTION CONTEXT PATTERN VALUE 
#
#Action can be: remove, add or replace
#Context can be: depends, conflicts, makedepends etc.. or global for matching regexp in the all PKGBUILD
#Pattern can be any rexgexp 
#Value (optionnal) can be any string 
#
remove#depends#smbclient
remove#depends#jack-audio-connection-kit
remove#depends#aalib
remove#makedepends#lirc-utils
remove#makedepends#libcaca
add#conflicts#mplayer
remove#global#--enable-tv-v4l[0-9]
remove#global#--enable-runtime-cpudetection
replace#global#--enable-smb#--disable-smb
replace#global#--enable-lirc#--disable-lirc
replace#global#--enable-aa#--disable-aa
replace#global#--language=all#--language=en
#add#global#--with-vidix-drivers=nvidia
add#depends#libxvmc
add#global#--enable-xvmc --enable-menu

Also,  in order for the file to be used, it has to have certain permissions.  Mine works with 755, but I'm not sure about the necessity of the world readable, but I haven't played with it too much to figure it out.

And the name of the file is the same name as the package.
HTH.  smile


Knute

Offline

Board footer

Powered by FluxBB