Opened 11 years ago

Closed 10 years ago

#37733 closed defect (wontfix)

ffmpeg fails to build against libsdl-devel

Reported by: lllactive@… Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: dbevans (David B. Evans), ryandesign (Ryan Carsten Schmidt)
Port: ffmpeg

Description (last modified by mf2k (Frank Schima))

After successful port 'selfupdate', then 'upgrade outdated':

Error: org.macports.build for port ffmpeg returned: command execution failed
Error: Failed to install ffmpeg

....

Error: The following dependencies were not installed: ffmpeg
Error: Unable to upgrade port: 1
Error rebuilding strigi
    while executing
"error "Error rebuilding $portname""
    (procedure "revupgrade_scanandrebuild" line 370)
    invoked from within

Logfiles attached: ffmpeg.tar.gz

ffmpeg_main-1.log Logfile after "sudo port selfupdate" and "sudo port upgrade outdated"

ffmpeg_main-2.log Logfile after "sudo port clean ffmpeg", then "sudo port -s install ffmpeg"

ffmpeg_main-3.log Logfile after "sudo port -nR upgrade --force ffmpeg"

Attachments (1)

ffmpeg.tar.gz (48.3 KB) - added by lllactive@… 11 years ago.

Download all attachments as: .zip

Change History (20)

Changed 11 years ago by lllactive@…

Attachment: ffmpeg.tar.gz added

comment:1 Changed 11 years ago by mf2k (Frank Schima)

Cc: devans@… ryandesign@… added
Description: modified (diff)
Keywords: ffmpeg "command execution failed" removed
Owner: changed from macports-tickets@… to jeremyhu@…
Port: ffmpeg added

In the future, please WikiFormatting, fill in the Port field, Cc the port maintainer(s) and only attach a single main.log file - the one after cleaning the port and trying again.

It builds fine for me. What version of Mac OS X are you running? What version of Xcode?

comment:2 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

ffmpeg_main-2.log in the attached archive says:

:info:build ffplay.c:1431:110: error: too few arguments to function call, expected 5, have 4
:info:build         if (is->videoq.abort_request && SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_EVENTMASK(FF_ALLOC_EVENT)) != 1) {
:info:build                                         ~~~~~~~~~~~~~~                                                       ^

Do you have an older version of libsdl than 1.2.15_2 installed with MacPorts? If so upgrade it to 1.2.15_2.

Do you have an older version of ffmpeg than 1.0.1_1 installed with MacPorts? If so deactivate it and clean ffmpeg before trying again.

Do you have any version of ffmpeg-devel installed with MacPorts? If so uninstall it and clean ffmpeg before trying again.

Do you have any version of libsdl or ffmpeg or libav installed outside of MacPorts? If so remove them and clean ffmpeg before trying again.

Let us know which if any of these steps helped.

comment:3 Changed 11 years ago by neverpanic (Clemens Lang)

He does have libsdl-devel installed. However, I couldn't reproduce the problem, because libsdl-devel doesn't even build for me.

comment:4 Changed 11 years ago by jmroot (Joshua Root)

Summary: ffmpeg failure of "port upgrade outdated" after selfupdateffmpeg fails to build against libsdl-devel

comment:5 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

In that case, also try deactivating libsdl-devel, then install libsdl instead and clean ffmpeg and try again.

comment:6 in reply to:  1 Changed 11 years ago by lllactive@…

Replying to macsforever2000@…:

In the future, please WikiFormatting, fill in the Port field, Cc the port maintainer(s) and only attach a single main.log file - the one after cleaning the port and trying again.

It builds fine for me. What version of Mac OS X are you running? What version of Xcode?

I only exectued the command "sudo port install freeocr" (I found out afterwards that there is no freeocr port) since the last successful selfupdate and upgrade outdated in December. I have not installed anything after that, only a selfupdate and upgrade outdated. Don't know why there are problems with ffmpeg and other related.

I have OSX 10.7.5 and the latest Xcode from AppStore, 4.5.2.

comment:7 in reply to:  2 ; Changed 11 years ago by lllactive@…

Replying to ryandesign@…:

ffmpeg_main-2.log in the attached archive says:

:info:build ffplay.c:1431:110: error: too few arguments to function call, expected 5, have 4
:info:build         if (is->videoq.abort_request && SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_EVENTMASK(FF_ALLOC_EVENT)) != 1) {
:info:build                                         ~~~~~~~~~~~~~~                                                       ^

Do you have an older version of libsdl than 1.2.15_2 installed with MacPorts? If so upgrade it to 1.2.15_2.

Do you have an older version of ffmpeg than 1.0.1_1 installed with MacPorts? If so deactivate it and clean ffmpeg before trying again.

Do you have any version of ffmpeg-devel installed with MacPorts? If so uninstall it and clean ffmpeg before trying again.

Do you have any version of libsdl or ffmpeg or libav installed outside of MacPorts? If so remove them and clean ffmpeg before trying again.

Let us know which if any of these steps helped.

Unfortunately I cannot tell, because I have very limited experience with MacPorts. I did not attempt any installations to change any of them. It all came with the last update and upgrade outdated in December (see comment above).

comment:8 in reply to:  7 ; Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to lllactive@…:

Replying to ryandesign@…:

Do you have an older version of libsdl than 1.2.15_2 installed with MacPorts? If so upgrade it to 1.2.15_2.

Do you have an older version of ffmpeg than 1.0.1_1 installed with MacPorts? If so deactivate it and clean ffmpeg before trying again.

Do you have any version of ffmpeg-devel installed with MacPorts? If so uninstall it and clean ffmpeg before trying again.

Do you have any version of libsdl or ffmpeg or libav installed outside of MacPorts? If so remove them and clean ffmpeg before trying again.

Let us know which if any of these steps helped.

Unfortunately I cannot tell, [snip]

Running port installed will answer the first three questions. Looking in /usr/local and /sw, or thinking back on what other software you've installed without using MacPorts, should answer the fourth.

comment:9 in reply to:  8 Changed 11 years ago by lllactive@…

Replying to ryandesign@…:

Replying to lllactive@…:

Replying to ryandesign@…:

Do you have an older version of libsdl than 1.2.15_2 installed with MacPorts? If so upgrade it to 1.2.15_2.

Do you have an older version of ffmpeg than 1.0.1_1 installed with MacPorts? If so deactivate it and clean ffmpeg before trying again.

Do you have any version of ffmpeg-devel installed with MacPorts? If so uninstall it and clean ffmpeg before trying again.

Do you have any version of libsdl or ffmpeg or libav installed outside of MacPorts? If so remove them and clean ffmpeg before trying again.

Let us know which if any of these steps helped.

Unfortunately I cannot tell, [snip]

Running port installed will answer the first three questions. Looking in /usr/local and /sw, or thinking back on what other software you've installed without using MacPorts, should answer the fourth.

I ran 'ports installed'

From the logfile I copied it to MacPorts_installed-20130122_2142.log

#  cat MacPorts_installed-20130122_2142.log | grep libsdl
  libsdl-devel @1.3.0-5179_0
  libsdl-devel @1.3.0-5552_0
  libsdl-devel @1.3.0-6248_0 (active)
#  cat MacPorts_installed-20130122_2142.log | grep ffmpeg  
  ffmpeg @0.5_5+darwin_10
  ffmpeg @0.5.1_0+darwin_10
  ffmpeg @0.5.1_1+darwin_10
  ffmpeg @0.7.11_1+mmx
  ffmpeg @0.7.13_2+gpl2+mmx

(older than ffmpeg 1.0._1 ?? - how can it be deactivated and reactivated or upgraded. How will it affect OSX if I update it with ports?)

#  cat MacPorts_installed-20130122_2142.log | grep ffmpeg-devel

nothing - not installed?

I see nothing other than mc that I installed with ports in the last year. I updated OSX programmes from AppStore like Xcode as they become available. I installed arRsync (Version 0.4.1 (0.4 Bugfix 1)), a GUI for rsync; MacTracker; ReadIRIS 12.0.5, all from *.dmg files.

I cant think of programmes that I installed that are video related and may use libsdl, ffmpeg or libav outside of MacPorts.

Last edited 11 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:10 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Ok, the old ffmpegs are not active so they shouldn't be a problem. So the only likely issue I see is that you have libsdl-devel instead of libsdl. Any idea why? You could use

port installed dependentof:libsdl-devel

to see if you have anything installed that requires libsdl-devel. Try deactivating libsdl-devel, installing libsdl, cleaning ffmpeg and trying again.

sudo port -f deactivate libsdl-devel
sudo port install libsdl
sudo port clean ffmpeg
sudo port upgrade ffmpeg

comment:11 in reply to:  10 ; Changed 11 years ago by lllactive@…

Replying to ryandesign@…:

Ok, the old ffmpegs are not active so they shouldn't be a problem. So the only likely issue I see is that you have libsdl-devel instead of libsdl. Any idea why? You could use

port installed dependentof:libsdl-devel

to see if you have anything installed that requires libsdl-devel. Try deactivating libsdl-devel, installing libsdl, cleaning ffmpeg and trying again.

sudo port -f deactivate libsdl-devel
sudo port install libsdl
sudo port clean ffmpeg
sudo port upgrade ffmpeg

With sudo port installed dependentof:libsdl-devel I get:

The following ports are currently installed:
  ffmpeg @0.5_5+darwin_10
  ffmpeg @0.5.1_0+darwin_10
  ffmpeg @0.5.1_1+darwin_10
  ffmpeg @0.7.11_1+mmx
  ffmpeg @0.7.13_2+gpl2+mmx
  gegl @0.1.0_2+darwin_10
  gegl @0.1.0_4+darwin_10
  gegl @0.2.0_0+python27
  gegl @0.2.0_2+python27
  gegl @0.2.0_4+python27 (active)

Is that expected?

Should I now do:

sudo port -f deactivate libsdl-devel
sudo port install libsdl
sudo port clean ffmpeg
sudo port upgrade ffmpeg
Last edited 11 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:12 in reply to:  11 ; Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to lllactive@…:

With sudo port installed dependentof:libsdl-devel I get:

The following ports are currently installed:
  ffmpeg @0.5_5+darwin_10
  ffmpeg @0.5.1_0+darwin_10
  ffmpeg @0.5.1_1+darwin_10
  ffmpeg @0.7.11_1+mmx
  ffmpeg @0.7.13_2+gpl2+mmx
  gegl @0.1.0_2+darwin_10
  gegl @0.1.0_4+darwin_10
  gegl @0.2.0_0+python27
  gegl @0.2.0_2+python27
  gegl @0.2.0_4+python27 (active)

Is that expected?

It is, if those ports were installed while libsdl-devel was active. It's possible that at one time one of those ports did actually require libsdl-devel. But they don't now:

$ port -v deps ffmpeg gegl
Full Name: ffmpeg @1.0.1_1+gpl2
Build Dependencies:   port:pkgconfig, port:gmake, port:texi2html, port:yasm
Library Dependencies: port:lame, port:libvorbis, port:libopus, port:libogg,
                      port:libtheora, port:libmodplug, port:jack, port:dirac,
                      port:schroedinger, port:openjpeg, port:freetype,
                      path:lib/libspeex.dylib:speex, port:libvpx,
                      path:lib/pkgconfig/sdl.pc:libsdl, port:bzip2, port:zlib,
                      port:XviD, port:x264
--
Full Name: gegl @0.2.0_4+python27
Build Dependencies:   port:pkgconfig, port:intltool, port:w3m, port:python27
Library Dependencies: port:babl, port:gtk2, port:lua, port:openexr, port:exiv2,
                      port:libopenraw, port:librsvg, path:lib/pkgconfig/sdl.pc:libsdl,
                      path:lib/libavcodec.dylib:ffmpeg, port:libspiro, port:lensfun

And while they both declare a path dependency on libsdl (which means they're supposed to accept either libsdl or libsdl-devel), libsdl-devel is a rather different version of the software so I wouldn't be surprised if it doesn't actually work anymore in this case.

Should I now do:

sudo port -f deactivate libsdl-devel
sudo port install libsdl
sudo port clean ffmpeg
sudo port upgrade ffmpeg

Yes.

Assuming that works, I would also rebuild gegl, since your gegl was built against libsdl-devel, and it would be a good idea to rebuild it against libsdl.

sudo port clean gegl
sudo port -ns upgrade --force gegl

comment:13 in reply to:  12 Changed 11 years ago by lllactive@…

Replying to ryandesign@…:

Replying to lllactive@…:

With sudo port installed dependentof:libsdl-devel I get:

The following ports are currently installed:
  ffmpeg @0.5_5+darwin_10
  ffmpeg @0.5.1_0+darwin_10
  ffmpeg @0.5.1_1+darwin_10
  ffmpeg @0.7.11_1+mmx
  ffmpeg @0.7.13_2+gpl2+mmx
  gegl @0.1.0_2+darwin_10
  gegl @0.1.0_4+darwin_10
  gegl @0.2.0_0+python27
  gegl @0.2.0_2+python27
  gegl @0.2.0_4+python27 (active)

Is that expected?

It is, if those ports were installed while libsdl-devel was active. It's possible that at one time one of those ports did actually require libsdl-devel. But they don't now:

$ port -v deps ffmpeg gegl
Full Name: ffmpeg @1.0.1_1+gpl2
Build Dependencies:   port:pkgconfig, port:gmake, port:texi2html, port:yasm
Library Dependencies: port:lame, port:libvorbis, port:libopus, port:libogg,
                      port:libtheora, port:libmodplug, port:jack, port:dirac,
                      port:schroedinger, port:openjpeg, port:freetype,
                      path:lib/libspeex.dylib:speex, port:libvpx,
                      path:lib/pkgconfig/sdl.pc:libsdl, port:bzip2, port:zlib,
                      port:XviD, port:x264
--
Full Name: gegl @0.2.0_4+python27
Build Dependencies:   port:pkgconfig, port:intltool, port:w3m, port:python27
Library Dependencies: port:babl, port:gtk2, port:lua, port:openexr, port:exiv2,
                      port:libopenraw, port:librsvg, path:lib/pkgconfig/sdl.pc:libsdl,
                      path:lib/libavcodec.dylib:ffmpeg, port:libspiro, port:lensfun

And while they both declare a path dependency on libsdl (which means they're supposed to accept either libsdl or libsdl-devel), libsdl-devel is a rather different version of the software so I wouldn't be surprised if it doesn't actually work anymore in this case.

Should I now do:

sudo port -f deactivate libsdl-devel
sudo port install libsdl
sudo port clean ffmpeg
sudo port upgrade ffmpeg

Yes.

Assuming that works, I would also rebuild gegl, since your gegl was built against libsdl-devel, and it would be a good idea to rebuild it against libsdl.

sudo port clean gegl
sudo port -ns upgrade --force gegl

Tanks for the quick reply. Will respond tomorrow.

Last edited 11 years ago by lllactive@… (previous) (diff)

comment:14 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

MacPorts recognized that ffmpeg and gegl and opencv and strigi were broken and tried to rebuild them for you, but it failed to rebuild ffmpeg because it had not been cleaned beforehand.

Clean all these ports, then try again to upgrade ffmpeg:

sudo port clean ffmpeg gegl opencv strigi
sudo port upgrade ffmpeg

After that MacPorts will probably try again to rebuild gegl and opencv and strigi, and hopefully succeed.

comment:15 Changed 11 years ago by lllactive@…

That worked. No errors. I did a 'selfupdate' and an 'upgrade outdated' afterwards. All OK

Thanks to all!

:-) Dreiel

comment:16 Changed 11 years ago by lllactive@…

I installed digikam without a hitch, my original aim before this glitch came up. All OK now.

What caused this error with ffmpeg, gegl, opencv and strigi? I have never had such a problem before. Can it be that digikam was involved, because it was installed about a year ago with ports, but it somehow broke. After that I had a few clean update/upgrades, and only now noticed that digikam was broken, because I did not use it for quite some time. That was why I wanted to reinstall/update/upgrade to get it again. The digikam database was still there and it reused it without a problem.

Thanks again to all for the help.

:-) Dreiel

comment:17 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: worksforme
Status: newclosed

comment:18 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: worksforme
Status: closedreopened

The user worked around the problem by using libsdl instead of libsdl-devel. But presumably the problem of building ffmpeg against libsdl-devel remains.

comment:19 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: wontfix
Status: reopenedclosed

libsdl-devel was deleted in r112504.

Note: See TracTickets for help on using tickets.