You are not logged in.

#1 2007-09-04 09:34:46

tgc
Member
From: DK
Registered: 2004-03-09
Posts: 96

pacman and "provide"

I just upgraded to pacman-3.0.5-3 after a few weeks of offline time, and on the following system upgrade pacman told me that it wanted to remove my custom build "ffmpeg-svn" because it conflicts with "ffmpeg". In the "ffmpeg-svn" PKGBUILD there is this line: "provides=('ffmpeg')", which in my understanding should tell pacman that ffmpeg is installed or that it is being provided by ffmpeg-svn.
Have I completely misunderstood what "provides" means in this context? Or is it a pacman bug?

Offline

#2 2007-09-04 09:57:06

pressh
Developer/TU
From: Netherlands
Registered: 2005-08-14
Posts: 1,719

Re: pacman and "provide"

From the PKGBUILD man page:

       conflicts (array)
              An  array of packages that will conflict with this package (i.e.
              they cannot both be installed at the same time). This  directive
              follows  the  same  format as depends, except you cannot specify
              versions.

       provides (array)
              An array of "virtual provisions"  that  this  package  provides.
              This allows a package to provide dependencies other than its own
              package name. For example, the dcron package can provide 'cron',
              which  allows packages to depend on 'cron' rather than 'dcron OR
              fcron'.

       replaces (array)
              An array of packages that this package should replace,  and  can
              be used to handle renamed/combined packages. For example, if the
              'j2re' package is renamed to 'jre', this directive allows future
              upgrades  to  continue  as  expected even though the package has
              moved.

The above tells you that you should add a 'conflicts' array as I read it

Offline

#3 2007-09-04 10:08:17

shining
Pacman Developer
Registered: 2006-05-10
Posts: 2,043

Re: pacman and "provide"

tgc wrote:

I just upgraded to pacman-3.0.5-3 after a few weeks of offline time, and on the following system upgrade pacman told me that it wanted to remove my custom build "ffmpeg-svn" because it conflicts with "ffmpeg". In the "ffmpeg-svn" PKGBUILD there is this line: "provides=('ffmpeg')", which in my understanding should tell pacman that ffmpeg is installed or that it is being provided by ffmpeg-svn.
Have I completely misunderstood what "provides" means in this context? Or is it a pacman bug?

Its hard to tell without more informations. Maybe output of "pacman -Qi ffmpeg-svn" and "pacman -Su --debug" will do.


pacman roulette : pacman -S $(pacman -Slq | LANG=C sort -R | head -n $((RANDOM % 10)))

Offline

#4 2007-09-04 10:20:20

tgc
Member
From: DK
Registered: 2004-03-09
Posts: 96

Re: pacman and "provide"

shining wrote:

Its hard to tell without more informations. Maybe output of "pacman -Qi ffmpeg-svn" and "pacman -Su --debug" will do.

Doing "pacman -Su --debug | grep ffmpeg" showed the problem:

debug: 'ffmpeg-svn' not found in sync db -- skipping
debug: depcmp: ffmpeg-svn-10024-1 ~= ffmpeg => match
debug: depcmp: ffmpeg-svn-10024-1 >= ffmpeg-20070131 => no match
debug: depcmp: ffmpeg-svn-10024-1 >= ffmpeg-20070131 => no match
debug: missing dependency 'ffmpeg' for package 'vlc'
debug: pulling dependency ffmpeg (needed by vlc)
debug: package 'ffmpeg' not found in sync
debug: adding package ffmpeg-20070505-4 to the transaction targets
debug:    sorting ffmpeg
debug:    sorting ffmpeg
debug:    sorting ffmpeg
debug:    sorting ffmpeg
debug: cannot find package installed 'ffmpeg'
debug: depcmp: ffmpeg-svn-10024-1 ~= ffmpeg => match
debug: depcmp: ffmpeg-svn-10024-1 ~= ffmpeg => match
debug: checkconflicts: db vs target 'ffmpeg'
debug:    found conflict 'ffmpeg' : package 'ffmpeg'
debug:  CONFLICTS:: ffmpeg conflicts with ffmpeg-svn
debug: package 'ffmpeg' conflicts with 'ffmpeg-svn'
debug: found package 'ffmpeg-20070505-4' in sync
debug: resolving package 'ffmpeg' conflicterror: unresolvable package conflicts detected:: ffmpeg: conflicts with ffmpeg-svn

vlc requires a specific version of ffmpeg. Can the "provides" option provide versions as well?

Offline

#5 2007-09-04 10:32:00

shining
Pacman Developer
Registered: 2006-05-10
Posts: 2,043

Re: pacman and "provide"

tgc wrote:

debug: depcmp: ffmpeg-svn-10024-1 >= ffmpeg-20070131 => no match

vlc requires a specific version of ffmpeg. Can the "provides" option provide versions as well?

Well, thats quite what I expected... Unfortunately, no, versioned provisions are not supported yet.
Maybe they will in the future, there is even an entry on the bug tracker for it :
http://bugs.archlinux.org/task/6508

Maybe you could try cheating by using a number >= 20070131 for the version of the ffmpeg-svn package.


pacman roulette : pacman -S $(pacman -Slq | LANG=C sort -R | head -n $((RANDOM % 10)))

Offline

Board footer

Powered by FluxBB