Hey, That is probably a good idea :) -Michael > On 3 May 2023, at 17:09, Adolf Belka wrote: > > Hi Michael, > > On 03/05/2023 17:57, Adolf Belka wrote: >> Hi Michael, >> >> On 03/05/2023 17:39, Michael Tremer wrote: >>> Hello Adolf, >>> >>>> On 3 May 2023, at 14:23, Adolf Belka wrote: >>>> >>>> Hi Michael, >>>> >>>> On 03/05/2023 14:58, Adolf Belka wrote: >>>>> >>>>> On 03/05/2023 14:35, Adolf Belka wrote: >>>>>> Hi Michael, >>>>>> >>>>>> On 03/05/2023 14:07, Michael Tremer wrote: >>>>>>> Hello Adolf, >>>>>>> >>>>>>> Normally you should not need to add anything extra for this to work. The compiler should know where to search for libraries. >>>>>>> >>>>>>> If pkg-config is being used, this might be a little bit different. >>>>>> Just before the various packages are checked to exist the configure also checks that pkg-config is existing. >>>>>>> >>>>>>>> On 3 May 2023, at 13:02, Adolf Belka wrote: >>>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> >>>>>>>> There is a new version for rng-tools so I thought I would do an update but it kept stopping saying that it required libcap and could not find it. >>>>>>>> >>>>>>>> I noted that the libcap libs are in /lib and not in /usr/lib as the other packages that rng-tools looks for have their libs. (openssl, libxml2, curl, jansson) >>>>>>>> >>>>>>>> The new version has a flag for the ./configure called libcap_LIBS which can be used to override pkg-config. >>>>>>>> >>>>>>>> I tried that in various ways such as libcap_LIBS="/lib" or libcap_LIBS="/lib/libcap.so.2.67" and others, but none of them worked. The ./configure still ended up with the message >>>>>>>> >>>>>>>> checking for libcap... no >>>>>>>> configure: error: libcap is required >>>>>>>> >>>>>>>> I then noticed that libcap.pc is in /lib/pkgconfig/ while all the other packages being searched for are in /usr/lib/pkgconfig/ >>>>>>> >>>>>>> This should indeed be installed to /usr/lib/pkgconfig. >>>>>>> >>>>>>> I don’t have a problem with simply changing —-prefix=/ to —-prefix=/usr for libcap, because we don’t support a split /usr directory anyways. That should make it easier. >>>>> Looking through the libcap README and Makefile then the .pc files should be getting placed in /usr/lib/pkgconfig but they aren't. Also as $(prefix) is not defined then the prefix should be /usr but again it is not. >>>> >>>> I think I must have misread what the Makefile etc were intending to do. >>>> >>>> I just tried a quick build of libcap with adding prefix=/usr to the make and make install lines and the lib files and the .pc files are now in /usr/lib/ and /usr/lib/pkgconfig/ >>>> >>>> The only remaining question I have is if anything else in IPFire would be expecting to see the lib files for libcap in /lib/ instead of /usr/lib/ because then the symlinking of the lib from /lib/ to /usr/lib/ won't be needed any more. >>> >>> No, pkg-config should never search in /lib. >> Okay, that is good to know. >>> >>>> What is libcap used for so I can test out the built iso on a vm machine? >>> >>> It is quite widely used to manage capabilities of a running program. I can give some privileges away and limit itself so that any remote code executing could not cause too much damage for example. >>> >>> /usr/bin/ping is for example linked against libcap. If you can execute it, everything is fine. >> That is a nice easy test then. >> >> The build of libcap with prefix=/usr successfully built but it also placed the capsh, getcap, getpcaps and setcap binaries from /sbin to /usr/sbin so the change was not as easy as I thought. Maybe I should only have the prefix=/usr in the make line and not in the make install line. >> >> Will have another look in the makefile and see how the location for capsh etc are defined. >> > Discovered that I also had to define exec_prefix as blank, then those executable files were placed in /sbin again. > > > Regards, > > Adolf. > >> Regards, >> Adolf. >>> >>>> Regards, >>>> >>>> Adolf. >>>> >>>>>> libcap currently keeps the library files in /lib/ but makes a symlink to one of them in /usr/lib/. Libcap doesn't have a configure line. There is a sed command on the Makefile to stop it building static libs and then it goes straight to make and then make install >>>>>>> >>>>>>>> I then manually did a copy of libcap.pc to /usr/lib/pkgconfig/ and then re ran just the rng-tools build and it then successfully found libcap and completed the build. So the problem is definitely to do withy the unusual location for the library files of libcap. >>>>>>> >>>>>>> Do we have any other packages that install .pc files into funny places? >>>>>> The other .pc files that are in /lib/pkgconfig/ are libkeyutils, libproc-2, libpsx and libsysfs >>>>>>> >>>>> The libpsx.pc file is also from libcap. >>>>>>>> So the question I have is what is the best way to deal with this. >>>>>>>> >>>>>>>> Should I add into the libcap lfs a line that copies the libcap.pc to /usr/lib/pkgconfig/ or >>>>>>>> >>>>>>>> is can someone tell me what I am doing wrong with the libcap_LIBS flag for ./configure >>>>>>>> >>>>> I think that rather than trying to adjust libcap to work the way it says it should be anyway, I will add a copy line into the lfs to move the libcap.pc file to /usr/lib/pkgconfig/ >>>>> >>>>> >>>>> Regards, >>>>> >>>>> Adolf. >>>>> >>>>>>>> >>>>>>>> Regards, >>>>>>>> >>>>>>>> Adolf. >>>>>>>> >>>>>>> >>>>>>> -Michael