On 05/18/2015 06:41 PM, Alan W. Irwin wrote: > On 2015-05-18 16:53-0600 Orion Poplawski wrote: > >> On 05/18/2015 01:35 AM, Alan W. Irwin wrote: > [...] >>> On 2015-04-25 12:42-0600 Orion Poplawski wrote: >>> >>>> On 04/25/2015 11:05 AM, Alan W. Irwin wrote: >>>>> While we are at it, are there any other general issues like this one >>>>> (i.e., issues likely to affect all distros) addressed by the Fedora >>>>> downstream patches which we should be aware of upstream? >>>> >>>> There are two other issues currently addressed downstream, which I'm >>>> pretty >>>> sure I've raised here before. The ocaml one relatively recently, >>>> not sure >>>> about the multiarch one. >>>> >>>> Patch2: plplot-multiarch.patch >>>> >>>> This allows for the "core" plplot package to be "multiarch" - >>>> exactly the >>>> same content for 32-bit and 64-bit builds. Otherwise the >>>> PKG_CONFIG_ENV and >>>> RPATH variables have /usr/lib or /usr/lib64 in them. I know this patch >>>> isn't acceptable upstream as it is, but if you found a way to >>>> address it, >>>> that would be great. >>> >>> Patch2a: PKG_CONFIG_ENV >>> >>> I have now (commit id 2b4e397) implemented a user-configurable >>> location called >>> CMAKE_INSTALL_PKG_CONFIG_DIR where the PLplot *.pc files are >>> installed. The default value for this cached variable is >>> >>> $prefix/share/pkgconfig >>> >>> which is apparently what Debian wheezy uses for multiarch *.pc files. >>> >>> @Andrew: can you confirm that location for modern Debian? >>> >>> @Orion: If that default location is not right for the Fedora multiarch >>> needs, try setting CMAKE_INSTALL_PKG_CONFIG_DIR on the cmake command >>> line. >> >> *If* the pkgconfig files were "multiarch"/noarch, that would be the >> place to >> install them. However, they are not noarch - they contain /usr/lib or >> /usr/lib64 depending on the architecture: >> > [...] >> plplot.pc:libdir=/usr/lib64 >> plplot.pc:drvdir=/usr/lib64/plplot5.11.0/drivers >> plplot.pc:Libs.private: -L"${libdir}" -L"/usr/lib64" -lltdl >> -L"/usr/lib64" -lm >> -L"/usr/lib64" -lshp -L"/usr/lib64" -lfreetype -lcsirocsa -lcsironn >> -lqhull >> -lqsastime > [...] > > OK. Thanks for reminding me that these *.pc files are arch-dependent. > I don't know what I was thinking. > > But it also appears that Fedora and Debian disagree here concerning > library install locations; Fedora uses > /usr/lib or /usr/lib64 while Debian uses > /usr/lib/i386-linux-gnu or /usr/lib/x86_64-linux-gnu. > > Currently, our CMake build system model sets the default library > location with (in cmake/modules/instdirs/cmake) > > set( > CMAKE_INSTALL_LIBDIR > ${CMAKE_INSTALL_EXEC_PREFIX}/lib > CACHE PATH "install location for object code libraries" > ) > > Since that default satisfies neither Andrew's or your needs I assume you > both > have to override CMAKE_INSTALL_LIBDIR. In fact, Andrew (from > debian/rules) overrides it with > -DCMAKE_INSTALL_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) > and I assume you have to do something similar in your spec file.
Yup: -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ > Therefore, to make life more convenient for you both I have used > > set( > CMAKE_INSTALL_PKG_CONFIG_DIR > ${CMAKE_INSTALL_LIBDIR}/pkgconfig > CACHE PATH "install location for pkg-config *.pc files" > ) > > for the pkg-config default install directory > in my latest commit (3062c3b). Which implies if you override > CMAKE_INSTALL_LIBDIR, then CMAKE_INSTALL_PKG_CONFIG_DIR automatically > gets overridden as well so you don't have to override it separately. So > please try again with that commit to see if it satisfies your > needs. Interestingly (perhaps), the pkgconfig files were always installed properly before without configuring - perhaps because it used pkg-config to determine the location? I assume that's what should be done. > >> In the Makefiles I get: >> > > [...] >> ocaml/Makefile:RPATHCMD = -ccopt '' >> >> Is that right? > > Well, I double checked and that is indeed the expected result if > -DUSE_RPATH=OFF. However, I don't comprehensively build- or run-test > -DUSE_RPATH=OFF here (I have enough such testing on my plate already > with default -DUSE_RPATH=ON), and instead leave such testing to > distribution packagers who really do need -DUSE_RPATH=OFF. So really > the definitive test of that result is do the ocaml examples build and > run fine for you with that null string -ccopt option for the > traditional build of installed examples or does the OCaml compiler > choke on that null string? Run "make noninteractive >& > noninteractive.out" in $prefix/share/plplot5.11.0/examples to find > out. > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ -- Orion Poplawski Technical Manager 303-415-9701 x222 NWRA/CoRA Division FAX: 303-415-9702 3380 Mitchell Lane or...@cora.nwra.com Boulder, CO 80301 http://www.cora.nwra.com ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel