- Add patch from upstream to fix UsrMove handling (bug #917407)

- Drop %config from rpm macros
- Define FCFLAGS in cmake macro
This commit is contained in:
Orion Poplawski 2013-03-13 14:20:58 -06:00
parent 52ebbb1916
commit 5deb9f6656
2 changed files with 67 additions and 1 deletions

60
cmake-usrmove.patch Normal file
View File

@ -0,0 +1,60 @@
diff -up cmake-2.8.10.2/Source/cmExportInstallFileGenerator.cxx.usrmove cmake-2.8.10.2/Source/cmExportInstallFileGenerator.cxx
--- cmake-2.8.10.2/Source/cmExportInstallFileGenerator.cxx.usrmove 2012-11-27 06:26:33.000000000 -0700
+++ cmake-2.8.10.2/Source/cmExportInstallFileGenerator.cxx 2013-03-13 14:13:56.554281710 -0600
@@ -149,17 +149,35 @@ cmExportInstallFileGenerator
const char* installDest = this->IEGen->GetDestination();
if(!cmSystemTools::FileIsFullPath(installDest))
{
- std::string dest = installDest;
- os << "# Compute the installation prefix relative to this file.\n"
- << "GET_FILENAME_COMPONENT(_IMPORT_PREFIX "
- << "\"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n";
- while(!dest.empty())
+ std::string installPrefix =
+ this->IEGen->GetMakefile()->GetSafeDefinition("CMAKE_INSTALL_PREFIX");
+ std::string absDest = installPrefix + "/" + installDest + "/";
+ if(strncmp(absDest.c_str(), "/lib/", 5) == 0 ||
+ strncmp(absDest.c_str(), "/lib64/", 7) == 0 ||
+ strncmp(absDest.c_str(), "/usr/lib/", 9) == 0 ||
+ strncmp(absDest.c_str(), "/usr/lib64/", 11) == 0)
{
- os <<
- "GET_FILENAME_COMPONENT(_IMPORT_PREFIX \"${_IMPORT_PREFIX}\" PATH)\n";
- dest = cmSystemTools::GetFilenamePath(dest);
+ // Assume this is a build for system package installation rather than a
+ // relocatable distribution. Use an absolute prefix because some Linux
+ // distros symlink /lib to /usr/lib which confuses the relative path
+ // computation below if we generate for /lib under one prefix and but the
+ // file is loaded from another.
+ os << "set(_IMPORT_PREFIX \"" << installPrefix << "\")\n";
+ }
+ else
+ {
+ std::string dest = installDest;
+ os << "# Compute the installation prefix relative to this file.\n"
+ << "get_filename_component(_IMPORT_PREFIX "
+ << "\"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n";
+ while(!dest.empty())
+ {
+ os <<
+ "get_filename_component(_IMPORT_PREFIX \"${_IMPORT_PREFIX}\" PATH)\n";
+ dest = cmSystemTools::GetFilenamePath(dest);
+ }
+ os << "\n";
}
- os << "\n";
// Import location properties may reference this variable.
this->ImportPrefix = "${_IMPORT_PREFIX}/";
diff -up cmake-2.8.10.2/Source/cmInstallExportGenerator.h.usrmove cmake-2.8.10.2/Source/cmInstallExportGenerator.h
--- cmake-2.8.10.2/Source/cmInstallExportGenerator.h.usrmove 2012-11-27 06:26:33.000000000 -0700
+++ cmake-2.8.10.2/Source/cmInstallExportGenerator.h 2013-03-13 14:11:17.972077264 -0600
@@ -36,6 +36,8 @@ public:
cmExportSet* GetExportSet() {return this->ExportSet;}
+ cmMakefile* GetMakefile() const { return this->Makefile; }
+
const std::string& GetNamespace() const { return this->Namespace; }
protected:

View File

@ -8,7 +8,7 @@
Name: cmake
Version: 2.8.10.2
Release: 4%{?dist}
Release: 5%{?dist}
Summary: Cross-platform make system
Group: Development/Tools
@ -37,6 +37,9 @@ Patch3: cmake-FindPostgreSQL.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=869769
# http://public.kitware.com/Bug/view.php?id=13604
Patch4: cmake-ccmake-del-in-first-column.patch
# Upstream patch to use absolute paths to fix UsrMove handling
# https://bugzilla.redhat.com/show_bug.cgi?id=917407
Patch5: cmake-usrmove.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gcc-gfortran
@ -90,6 +93,7 @@ The %{name}-gui package contains the Qt based GUI for CMake.
%patch2 -p1 -b .findruby
%patch3 -p1 -b .findpostgresql
%patch4 -p1 -b .ccmake-del
%patch5 -p1 -b .usrmove
%build
@ -186,6 +190,8 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%changelog
* Wed Mar 13 2013 Orion Poplawski <orion@cora.nwra.com> - 2.8.10.2-5
- Add patch from upstream to fix UsrMove handling (bug #917407)
- Drop %%config from rpm macros
- Define FCFLAGS in cmake macro