Em 29-07-2013 13:38, Ken Moffat escreveu:
> On Sun, Jul 28, 2013 at 11:21:32PM -0300, Fernando de Oliveira wrote:
>> Sorry, sent to the wrong list.
>>
>> $ paco VLC MPlayer FFmpeg Audacity
>> audacity-2.0.3  ffmpeg-0.8.7  ffmpeg-1.2.1  mplayer-1.1.1  vlc-2.0.7
>>

...


>> Audacity needs ffmpeg version < 0.9, as I learned after trying many
>> times to build it.
>>
>> So, I installed ffmpeg-0.8.7 at /usr/local/
>>
> 
>  I had a similar problem with transcode last year.
> 
>> ./configure --prefix=/usr/local

...

>>
>> Only way I found was to move away /usr/local, install VLC an MP, then
>> move /usr/local back.
>>

...

>>
>> Q1: What is, if possible, a more elegant, less dangerous way of doing
>> such kind of things, directing VLC and MP builds to search the right prefix?
>>
> 
>  In general. /usr/local is for self-installed system-wide progs and
> libs, which you want to take precedence over whatever version the
> distro installed.  For us, needing an old version of a specific app,
> that doesn't match the problem - occasionally it will work (like in
> my initial tests where I built old ffmpeg in /usr/local after
> everything else had been installed), but it breaks when something
> gets updated.

Thanks, ĸen, just learning that. It is different from what I thought.

>  What sort-of-worked for me was to build the old version in /opt.

Leaving this to consider later, if everything fails. Have followed other
suggestion from you.

>  Arch build audacity against ffmpeg-compat - they have many versions
> of that, but I guess they all work similarly.  They specify incdir,
> libdir, shlibdir in configure.  Obviously, they do a DESTDIR install
> (and drop the programs and everything from /usr/share).  I guess that
> installing into /usr/include/ffmpeg-compat and /usr/lib/ffmpeg-compat
> must work.  If doing a direct install it would overwrite the
> programs with the old versions.  Installing directly into
> /opt/somewhere keeps the programs, but they will be out of the way
> for normal use.  Either way, it looks as if the old ffmpeg headers
> will be found from PKG_CONFIG_PATH (that is the only non-standard
> thing in their audacity PKGBUILD).

I tried it before, and again today. Does not work so simply. First,
tried with Arch's tar ball for ffmpeg-compat. Then, just used
ffmpeg-0.8.7, but with their instructions to make it -compat. Build
succeeded, audacity works, but with a dirty trick. For ffmeg-compat-0.8.7:

./configure \
               --prefix=/usr \
               --incdir=/usr/include/ffmpeg-compat \
               --libdir=/usr/lib/ffmpeg-compat \
               --shlibdir=/usr/lib/ffmpeg-compat \
...

Then, DESTDIR install, remove $DESTDIR/usr/{bin,share}, copy to /usr.
And it works fine, just used it with previous audacity that was removed
(now) from /usr/local and new one at /usr.

Audacity build with instructions a la Arch fails at make, complaining
that cannot find gtk/gtk.h:

CaptureEvents.cpp:34:21: fatal error: gtk/gtk.h: Arquivo ou diretório
não encontrado
compilation terminated.
make[1]: ** [CaptureEvents.o] Erro 1
...

But it is in the system:

$ find /usr -name gtk.h 2>/dev/null
/usr/include/gtk-3.0/gtk/gtk.h
/usr/include/gtk-2.0/gtk/gtk.h <----------- must be this one
/usr/src/linux-3.10.1-NG-pae/tools/perf/ui/gtk/gtk.h
/usr/src/linux-3.10.2-NG-pae/tools/perf/ui/gtk/gtk.h

I really do not understand how to tell make where they are, using
CPPFLAGS and/or LDFLAGS, tried many wrong combinations. Also tried to
instruct with PKG_CONFIG_PATH as done for configure.

PKG_CONFIG_PATH+="/usr/lib/ffmpeg-compat/pkgconfig" make

Finally, the dirty trick, please find attached the complete g++
instruction, as it would be broken by the mail client:

PKG_CONFIG_PATH+="/usr/lib/ffmpeg-compat/pkgconfig" \
./configure --prefix=/usr
make
cd src &&
g++ -c -s `pkg-config gtk+-2.0 --cflags` `pkg-config gtk+-2.0 --libs` \
-I../lib-src/portmixer/include ........... \
CaptureEvents.cpp -o CaptureEvents.o &&
cd .. &&
make
make install
...

With "-s `pkg-config gtk+-2.0 --cflags` `pkg-config gtk+-2.0 --libs`"
included, it succeeds compiling CaptureEvents.

I do not think anyone would consider this an acceptable solution, but I
do not know how to tell make to do it properly.

If possible to be done properly by modifying some flags for make, please
educate me.

Thanks in advance.

-- 
[]s,
Fernando
g++ -c -s `pkg-config gtk+-2.0 --cflags` `pkg-config gtk+-2.0 --libs` 
-I../lib-src/portmixer/include   -Wall 
-I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 
-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread 
-I../lib-src/FileDialog 
-I/home/fernando/tmp/paco-build-2013.07.29-15h49m09s/audacity-src-2.0.3/lib-src/lib-widget-extra
          -I../lib-src/libsoxr/src -I../lib-src/sbsms/include 
-I../lib-src/libnyquist -I../lib-src/libvamp    -I/usr/include/ffmpeg-compat   
-I/usr/include/ffmpeg-compat   -I/usr/include/ffmpeg-compat   
-I../lib-src/portsmf -I../lib-src/portaudio-v19/include  -fno-strict-aliasing 
-I./include -I. -DLIBDIR=\"/usr/lib\" -D__STDC_CONSTANT_MACROS   -Wall    
CaptureEvents.cpp -o CaptureEvents.o
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to