[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