[mythtv-commits] Re: Ticket #970: MythPlugins configure script on
OSX fails with fink and --enable-new-exif option.
MythTV
mythtv at cvs.mythtv.org
Mon Jan 9 12:22:14 UTC 2006
#970: MythPlugins configure script on OSX fails with fink and --enable-new-exif
option.
--------------------------------------+-------------------------------------
Reporter: dsnider at thesniderpad.com | Owner: nigel
Type: patch | Status: assigned
Priority: major | Milestone:
Component: mythgallery | Version: head
Severity: high | Resolution:
--------------------------------------+-------------------------------------
Old description:
> The OSX packager script broke after I installed fink on my mac mini.
> Basically, it fails when compiling mythgallery with the new exif flag.
> I finally tracked the problem down to the mythplugins configure script,
> in this section of code:
>
> if test x`which pkg-config 2>/dev/null` != x"" ; then
> if `pkg-config --atleast-version 0.6.9 libexif` ; then
> echo "#define NEW_LIB_EXIF 1" >> \
> ./mythgallery/mythgallery/config.h
> fi
> else
> if test x"$newexif" = x"yes" ; then
> echo "#define NEW_LIB_EXIF 1" >> \
> ./mythgallery/mythgallery/config.h
> else
> echo
> echo "Could not determine libexif version, if it is
> greater"
> echo "than or equal to 0.6.9 you need to add"
> echo "--enable-new-exif to the configure flags"
> echo
> fi
> fi
>
> Before I installed fink, I did not have pkg-config, so it would go to the
> else statement and and put the proper line in my config.h. If I now
> manually run the 'pkg-config --atleast-version 0.6.9 libexif', I get a 1
> for the return code, so the NEW_LIB_EXIF doesn't get set. Fink installed
> pkg-config, however fink has an older version of libexif. Since the osx-
> packager script downloads the correct version, I do have the "New"
> libraries available for install.
>
> The configure script should be rewritten as:
>
> if test x"$newexif" = x"yes" ; then
> echo "#define NEW_LIB_EXIF 1" >> \
> ./mythgallery/mythgallery/config.h
> else
> if test x`which pkg-config 2>/dev/null` != x"" ; then
> if `pkg-config --atleast-version 0.6.9 libexif` ; then
> echo "#define NEW_LIB_EXIF 1" >> \
> ./mythgallery/mythgallery/config.h
> fi
> else
> echo
> echo "Could not determine libexif version, if it is
> greater"
> echo "than or equal to 0.6.9 you need to add"
> echo "--enable-new-exif to the configure flags"
> echo
> fi
> fi
>
> This way, I can force the NEW_LIB_EXIF with the --enable-new-exif flag.
> If I don't set that flag, the script will still correctly find it with
> the pkg-config line. The reason I think this is a bug is that with the
> current logic in the configure script, even if you add the flag --enable-
> new-exif, the configure script will disable that flag with the pkg-config
> if statement. If I manually specify --enable-new-exif, I would expect
> the configure script to honor that setting, if it fails because I don't
> really have it, that's my own fault. But it shouldn't unset the flag
> because one utility can't find the proper library.
>
> Just as an FYI, here is the error I was getting:
>
> distcc g++ -c -pipe -faltivec -Wall -W -O3 -Wall -Wno-switch
> -I/nobackup/myth/.osx-packager/build/include -no-cpp-precomp -pipe
> -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare -fno-inline-
> functions -DPIC -fPIC -D_GNU_SOURCE -DPREFIX=\"/nobackup/myth/.osx-
> packager/build\" -DUSING_DBOX2 -DHAVE_DVDNAV -D_FILE_OFFSET_BITS=64
> -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_PLUGIN -DQT_SHARED
> -DQT_ACCESSIBILITY_SUPPORT -I/nobackup/myth/.osx-packager/src/qt-mac-
> free-3.3.4/mkspecs/default -I. -I../../../../../build/include
> -I../../../../../build/include -I/usr/kde/3.3/include
> -I../../../../../build/include -I/nobackup/myth/.osx-packager/src/qt-mac-
> free-3.3.4/include
> -I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers
> -I/System/Library/Frameworks/AGL.framework/Versions/A/Headers -o
> galleryutil.o galleryutil.cpp
> /nobackup/myth/.osx-packager/build/include/libexif/exif-entry.h: In
> static
> member function `static long int GalleryUtil::getNaturalRotation(const
> char*)':
> /nobackup/myth/.osx-packager/build/include/libexif/exif-entry.h:61:
> error: too
> few arguments to function `const char*
> exif_entry_get_value(ExifEntry*,
> char*, unsigned int)'
> galleryutil.cpp:67: error: at this point in file
> make[2]: *** [galleryutil.o] Error 1
> make[1]: *** [sub-mythgallery] Error 2
> make: *** [sub-mythgallery] Error 2
> [osx-pkg] Failed system call: " /usr/bin/make " with error code 2
> Died at /usr/local/bin/osx-packager.pl line 722.
New description:
The OSX packager script broke after I installed fink on my mac mini.
Basically, it fails when compiling mythgallery with the new exif flag. I
finally tracked the problem down to the mythplugins configure script, in
this section of code:
{{{
if test x`which pkg-config 2>/dev/null` != x"" ; then
if `pkg-config --atleast-version 0.6.9 libexif` ; then
echo "#define NEW_LIB_EXIF 1" >> \
./mythgallery/mythgallery/config.h
fi
else
if test x"$newexif" = x"yes" ; then
echo "#define NEW_LIB_EXIF 1" >> \
./mythgallery/mythgallery/config.h
else
echo
echo "Could not determine libexif version, if it is
greater"
echo "than or equal to 0.6.9 you need to add"
echo "--enable-new-exif to the configure flags"
echo
fi
fi
}}}
Before I installed fink, I did not have pkg-config, so it would go to the
else statement and and put the proper line in my config.h. If I now
manually run the 'pkg-config --atleast-version 0.6.9 libexif', I get a 1
for the return code, so the NEW_LIB_EXIF doesn't get set. Fink installed
pkg-config, however fink has an older version of libexif. Since the osx-
packager script downloads the correct version, I do have the "New"
libraries available for install.
The configure script should be rewritten as:
{{{
if test x"$newexif" = x"yes" ; then
echo "#define NEW_LIB_EXIF 1" >> \
./mythgallery/mythgallery/config.h
else
if test x`which pkg-config 2>/dev/null` != x"" ; then
if `pkg-config --atleast-version 0.6.9 libexif` ; then
echo "#define NEW_LIB_EXIF 1" >> \
./mythgallery/mythgallery/config.h
fi
else
echo
echo "Could not determine libexif version, if it is
greater"
echo "than or equal to 0.6.9 you need to add"
echo "--enable-new-exif to the configure flags"
echo
fi
fi
}}}
This way, I can force the NEW_LIB_EXIF with the --enable-new-exif flag.
If I don't set that flag, the script will still correctly find it with the
pkg-config line. The reason I think this is a bug is that with the
current logic in the configure script, even if you add the flag --enable-
new-exif, the configure script will disable that flag with the pkg-config
if statement. If I manually specify --enable-new-exif, I would expect
the configure script to honor that setting, if it fails because I don't
really have it, that's my own fault. But it shouldn't unset the flag
because one utility can't find the proper library.
Just as an FYI, here is the error I was getting:
distcc g++ -c -pipe -faltivec -Wall -W -O3 -Wall -Wno-switch
-I/nobackup/myth/.osx-packager/build/include -no-cpp-precomp -pipe -fomit-
frame-pointer -force_cpusubtype_ALL -Wno-sign-compare -fno-inline-
functions -DPIC -fPIC -D_GNU_SOURCE -DPREFIX=\"/nobackup/myth/.osx-
packager/build\" -DUSING_DBOX2 -DHAVE_DVDNAV -D_FILE_OFFSET_BITS=64
-DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_PLUGIN -DQT_SHARED
-DQT_ACCESSIBILITY_SUPPORT -I/nobackup/myth/.osx-packager/src/qt-mac-
free-3.3.4/mkspecs/default -I. -I../../../../../build/include
-I../../../../../build/include -I/usr/kde/3.3/include
-I../../../../../build/include -I/nobackup/myth/.osx-packager/src/qt-mac-
free-3.3.4/include
-I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers
-I/System/Library/Frameworks/AGL.framework/Versions/A/Headers -o
galleryutil.o galleryutil.cpp
/nobackup/myth/.osx-packager/build/include/libexif/exif-entry.h: In static
member function `static long int GalleryUtil::getNaturalRotation(const
char*)':
/nobackup/myth/.osx-packager/build/include/libexif/exif-entry.h:61: error:
too few arguments to function `const char*
exif_entry_get_value(ExifEntry*, char*, unsigned int)'
galleryutil.cpp:67: error: at this point in file
make[2]: *** [galleryutil.o] Error 1
make[1]: *** [sub-mythgallery] Error 2
make: *** [sub-mythgallery] Error 2
[osx-pkg] Failed system call: " /usr/bin/make " with error code 2
Died at /usr/local/bin/osx-packager.pl line 722.
Comment (by nigel):
Not as simple as I thought:
[[BR]]1) I think the real problem here is that fink's pkg-config is lying.
[[BR]]2) Making the suggested change, which basically inverts the default
vs autodetect logic, would basically make the default of newexif="yes"
always manifest in the config file. Not what we want
[[BR]][[BR]]
I will try and install Fink on a spare Mac tomorrow and investigate
further
--
Ticket URL: <http://cvs.mythtv.org/trac/ticket/970>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list