Description of problem: The headers are stored in %{_libdir}/%{name}-%{version}/include/ This is wrong. They should be included in %{_includedir}. Version-Release number of selected component (if applicable): [root@ankur ~]# repoquery libffi-devel libffi-devel-0:3.0.9-2.fc15.i686 libffi-devel-0:3.0.9-2.fc15.x86_64 I'm guessing this is the same in other fedora versions as well. [root@ankur ~]# repoquery -l libffi-devel /usr/lib/libffi-3.0.9 /usr/lib/libffi-3.0.9/include /usr/lib/libffi-3.0.9/include/ffi.h /usr/lib/libffi-3.0.9/include/ffitarget.h /usr/lib/libffi.so /usr/lib/pkgconfig/libffi.pc /usr/share/info/libffi.info.gz /usr/share/man/man3/ffi.3.gz /usr/share/man/man3/ffi_call.3.gz /usr/share/man/man3/ffi_prep_cif.3.gz /usr/lib64/libffi-3.0.9 /usr/lib64/libffi-3.0.9/include /usr/lib64/libffi-3.0.9/include/ffi.h /usr/lib64/libffi-3.0.9/include/ffitarget.h /usr/lib64/libffi.so /usr/lib64/pkgconfig/libffi.pc /usr/share/info/libffi.info.gz /usr/share/man/man3/ffi.3.gz /usr/share/man/man3/ffi_call.3.gz /usr/share/man/man3/ffi_prep_cif.3.gz
This isn't a bug. Use pkg-config --cflags libffi.
Hi Anthony, According the the FHS, all headers *must* go in /usr/include. %{_libdir} is not the correct location for them. Using pkg-config is a work around, but the location of files is still wrong, isn't it? Please reconsider looking into this. I'm building a package that uses cmake, and I have no clue how one makes use of pkg-config here. Thanks, Ankur http://www.pathname.com/fhs/pub/fhs-2.3.html#USRINCLUDEDIRECTORYFORSTANDARDINCLU http://www.pathname.com/fhs/pub/fhs-2.3.html#LIBESSENTIALSHAREDLIBRARIESANDKERN
*** Bug 727299 has been marked as a duplicate of this bug. ***
Reopening.
This message is a notice that Fedora 15 is now at end of life. Fedora has stopped maintaining and issuing updates for Fedora 15. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At this time, all open bugs with a Fedora 'version' of '15' have been closed as WONTFIX. (Please note: Our normal process is to give advanced warning of this occurring, but we forgot to do that. A thousand apologies.) Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, feel free to reopen this bug and simply change the 'version' to a later Fedora version. Bug Reporter: Thank you for reporting this issue and we are sorry that we were unable to fix it before Fedora 15 reached end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged to click on "Clone This Bug" (top right of this page) and open it against that version of Fedora. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
This is definitely a bug, headers should be moved and "pkg-config --cflags libffi" should return the new path under %{_includedir}.
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle. Changing version to '19'. (As we did not run this process for some time, it could affect also pre-Fedora 19 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19
Still persists in 3.0.13 [ankur@ankur-pc ~]$ rpm -q libffi libffi-3.0.13-1.fc19.x86_64 libffi-3.0.13-1.fc19.i686 [ankur@ankur-pc ~]$ [ankur@ankur-pc ~]$ sudo repoquery -l libffi-devel [sudo] password for ankur: /usr/lib/libffi-3.0.13 /usr/lib/libffi-3.0.13/include /usr/lib/libffi-3.0.13/include/ffi.h /usr/lib/libffi-3.0.13/include/ffitarget.h /usr/lib/libffi.so /usr/lib/pkgconfig/libffi.pc /usr/share/info/libffi.info.gz /usr/share/man/man3/ffi.3.gz /usr/share/man/man3/ffi_call.3.gz /usr/share/man/man3/ffi_prep_cif.3.gz /usr/share/man/man3/ffi_prep_cif_var.3.gz /usr/lib64/libffi-3.0.13 /usr/lib64/libffi-3.0.13/include /usr/lib64/libffi-3.0.13/include/ffi.h /usr/lib64/libffi-3.0.13/include/ffitarget.h /usr/lib64/libffi.so /usr/lib64/pkgconfig/libffi.pc /usr/share/info/libffi.info.gz /usr/share/man/man3/ffi.3.gz /usr/share/man/man3/ffi_call.3.gz /usr/share/man/man3/ffi_prep_cif.3.gz /usr/share/man/man3/ffi_prep_cif_var.3.gz
libffi-3.0.13-2.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/libffi-3.0.13-2.fc19
Package libffi-3.0.13-2.fc19: * should fix your issue, * was pushed to the Fedora 19 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing libffi-3.0.13-2.fc19' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-9286/libffi-3.0.13-2.fc19 then log in and leave karma (feedback).
I think that this was fixed the wrong way. The libffi headers are currently generated at build time for the target system. It was way more common to do this many years ago (eg. /usr/lib/gtk-2.0/include). But even today we see platform specific headers under /usr/lib (see /usr/lib/grub/i386-pc/config.h for instance). A real problem with this fix, for instance, is that 32 and 64-bit x86 headers are different. You can't simply copy them from /usr/lib[64] to /usr/include because they aren't the same. I agree that long term these headers should move to /usr/include. This can be done by carefully recoding them to use compiler built-in #defines, but I've tried it once and it's quite complicated (on the PPC side in particular). I'm hoping to finally get this done for libffi-3.0.14, but I don't know when that will be. AG
If these two headers are arch specific, rather than recoding them to use #defines, you can simply have an arch specific conditionalized header file, e.g.: /* This file is here to prevent a file conflict on multiarch systems. */ #ifdef ffi_wrapper_h #error "Do not define ffi_wrapper_h!" #endif #define ffi_wrapper_h #elif defined(__i386__) #include "ffi-i386.h" #elif defined(__powerpc64__) #include "ffi-ppc64.h" #elif defined(__powerpc__) #include "ffi-ppc.h" #elif defined(__s390x__) #include "ffi-s390x.h" #elif defined(__s390__) #include "ffi-s390.h" #elif defined(__x86_64__) #include "ffi-x86_64.h" #else #error "The libffi-devel package is not usable with the architecture." #endif #undef ffi_wrapper_h This is how libunwind, openssl work, for example. I've done this fix for 3.0.13-3.
Package libffi-3.0.13-3.fc19: * should fix your issue, * was pushed to the Fedora 19 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing libffi-3.0.13-3.fc19' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-9286/libffi-3.0.13-3.fc19 then log in and leave karma (feedback).
This seems broken [osbuild gobject-introspection]$ cpp /usr/include/ffi.h # 1 "/usr/include/ffi.h" # 1 "<command-line>" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 1 "<command-line>" 2 # 1 "/usr/include/ffi.h" /usr/include/ffi.h:7:2: error: #elif without #if #elif defined(__i386__) ^ /usr/include/ffi.h:8:22: fatal error: ffi-i386.h: No such file or directory #include "ffi-i386.h" ^ compilation terminated. I suspect you meant #if defined(__i386__), if I change that both in ffi.h and in ffitarget.h then it works.
(That was on x86 64)
Looks like this has been already fixed in libffi-devel-3.0.13-4, sorry for the noise.
Package libffi-3.0.13-4.fc19: * should fix your issue, * was pushed to the Fedora 19 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing libffi-3.0.13-4.fc19' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-9286/libffi-3.0.13-4.fc19 then log in and leave karma (feedback).
libffi-3.0.13-4.fc19 has been pushed to the Fedora 19 stable repository. If problems still persist, please make note of it in this bug report.