pigoz / mplayerosx-builds

build scripts of mplayer2 for Mac OSX
35 stars 8 forks source link

rake pkg:mposxt fails, no such file to load -- plist #1

Open coax75ohm opened 13 years ago

coax75ohm commented 13 years ago

Running rake pkg:mposxt fails, I'm guessing because there is no plist.rb file and I don't see anywhere to download it from.

$ rake pkg:mposxt (in /Users/coax/build/mplayerosx-builds) rake aborted! no such file to load -- plist /Users/coax/build/mplayerosx-builds/Rakefile:49 (See full trace by running task with --trace)

pigoz commented 13 years ago

plist is a little ruby library, to install it in your system type: [sudo] gem install plist

I added a more meaningful error when plist is not installed.

coax75ohm commented 13 years ago

That got me a little further. I'm still pretty new to using ruby, but now it appears to be failing while trying to parse the output of otool -L, which works fine when run from the command line.

$ rake pkg:mposxt --trace
(in /Users/coax/build/mplayerosx-builds)
** Invoke pkg:mposxt (first_time)
** Execute pkg:mposxt
rake aborted!
no block given
/Users/coax/build/mplayerosx-builds/lib/extensions/pathname.rb:26:in `each_line'
/Users/coax/build/mplayerosx-builds/lib/extensions/pathname.rb:26:in `otool'
/Users/coax/build/mplayerosx-builds/lib/extensions/pathname.rb:20:in `usrlibs'
/Users/coax/build/mplayerosx-builds/lib/extensions/pathname.rb:16:in `liblist'
/Users/coax/build/mplayerosx-builds/lib/dylibpackager.rb:15:in `cp_libraries'
/Users/coax/build/mplayerosx-builds/lib/dylibpackager.rb:9:in `stage_to'
/Users/coax/build/mplayerosx-builds/lib/mposxbinpackager.rb:43:in `bundle_mplayer'
/Users/coax/build/mplayerosx-builds/Rakefile:57
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in `call'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in `execute'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in `execute'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:362:in `invoke'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:in `synchronize'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:in `invoke'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in `top_level'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in `top_level'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1761:in `standard_exception_handling'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1733:in `top_level'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1711:in `run'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1761:in `standard_exception_handling'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1708:in `run'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/bin/rake:7
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
pigoz commented 13 years ago

Sorry for making you test this, it has probably ran only on my Mac until now :)

1) Try deleting everything from the deploy/ directory. 2) Add puts self at the start of the otool method in lib/extensions/pathname.rb. Something like https://gist.github.com/79145

Get some of the paths printed and try otool -L on them. I suspect it is not outputting the expected stuff.

coax75ohm commented 13 years ago

I don't mind testing.

The output from puts self is: /Users/coax/build/mplayerosx-builds/deploy/mplayer-git-local.mpBinaries/Contents/MacOS/mplayer

$ otool -L /Users/coax/build/mplayerosx-builds/deploy/mplayer-git-local.mpBinaries/Contents/MacOS/mplayer 
/Users/coax/build/mplayerosx-builds/deploy/mplayer-git-local.mpBinaries/Contents/MacOS/mplayer:
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
    /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
    /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0)
    /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 1674.0.0)
    /usr/X11/lib/libfreetype.6.dylib (compatibility version 13.0.0, current version 13.0.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
    /usr/X11/lib/libfontconfig.1.dylib (compatibility version 6.0.0, current version 6.3.0)
    /usr/local/Cellar/libass/0.9.11/lib/libass.4.dylib (compatibility version 6.0.0, current version 6.0.0)
    /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
    /usr/local/Cellar/libbs2b/3.1.0/lib/libbs2b.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/local/Cellar/ffmpeg/HEAD/lib/libavutil.dylib (compatibility version 50.0.0, current version 50.36.0)
    /usr/local/Cellar/ffmpeg/HEAD/lib/libavcodec.dylib (compatibility version 52.0.0, current version 52.108.0)
    /usr/local/Cellar/ffmpeg/HEAD/lib/libavformat.dylib (compatibility version 52.0.0, current version 52.93.0)
    /usr/local/Cellar/ffmpeg/HEAD/lib/libswscale.dylib (compatibility version 0.0.0, current version 0.12.0)
    /usr/local/Cellar/ffmpeg/HEAD/lib/libpostproc.dylib (compatibility version 51.0.0, current version 51.2.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.5)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0)
    /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.5.8)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.54.0)
    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0)
    /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.6.1)
pigoz commented 13 years ago

I found out it is a problem in the Ruby version coming with Snow Leopard: the String#each_line method changed some of its behaviour in the most recent versions. I recommend using Ruby 1.9.2 with rvm to manage the different Ruby versions in an elegant way.

I will try to put out a patch in the next few days in order to support older versions of Ruby.

coax75ohm commented 13 years ago

Cool, though actually I'm still using Leopard on that machine, I'm afraid too many things will break if I try to upgrade. Still, I packaged this version of mplayer manually and it seems to work with MPE, though it sometimes hangs when switching between files using ordered chapters, but that's a separate issue.