Skip to content

cmake install preserves rpath on plugins and some utilities #3302

@opoplawski

Description

@opoplawski

Working on shifting the Fedora build of netcdf to use cmake and running into the issue that the hdf5 plugins and some utilities are installed with the rpaths preserved:

+ /usr/lib/rpm/check-rpaths
*******************************************************************************
*
* WARNING: 'check-rpaths' detected a broken RPATH OR RUNPATH and will cause
*          'rpmbuild' to fail. To ignore these errors, you can set the
*          '$QA_RPATHS' environment variable which is a bitmask allowing the
*          values below. The current value of QA_RPATHS is 0x0000.
*
*    0x0001 ... standard RPATHs (e.g. /usr/lib); such RPATHs are a minor
*               issue but are introducing redundant searchpaths without
*               providing a benefit. They can also cause errors in multilib
*               environments.
*    0x0002 ... invalid RPATHs; these are RPATHs which are neither absolute
*               nor relative filenames and can therefore be a SECURITY risk
*    0x0004 ... insecure RPATHs; these are relative RPATHs which are a
*               SECURITY risk
*    0x0008 ... the special '$ORIGIN' RPATHs are appearing after other
*               RPATHs; this is just a minor issue but usually unwanted
*    0x0010 ... the RPATH is empty; there is no reason for such RPATHs
*               and they cause unneeded work while loading libraries
*    0x0020 ... an RPATH references '..' of an absolute path; this will break
*               the functionality when the path before '..' is a symlink
*          
*
* Examples:
* - to ignore standard and empty RPATHs, execute 'rpmbuild' like
*   $ QA_RPATHS=$(( 0x0001|0x0010 )) rpmbuild my-package.src.rpm
* - to check existing files, set $RPM_BUILD_ROOT and execute check-rpaths like
*   $ RPM_BUILD_ROOT=<top-dir> /usr/lib/rpm/check-rpaths
*  
*******************************************************************************
ERROR   0002: file '/usr/lib64/openmpi/hdf5/plugin/lib__nczstdfilters.so' contains an invalid runpath '/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-openmpi' in [/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-openmpi:/usr/lib64/openmpi/lib]
*******************************************************************************
*
* WARNING: 'check-rpaths' detected a broken RPATH OR RUNPATH and will cause
*          'rpmbuild' to fail. To ignore these errors, you can set the
*          '$QA_RPATHS' environment variable which is a bitmask allowing the
*          values below. The current value of QA_RPATHS is 0x0000.
*
*    0x0001 ... standard RPATHs (e.g. /usr/lib); such RPATHs are a minor
*               issue but are introducing redundant searchpaths without
*               providing a benefit. They can also cause errors in multilib
*               environments.
*    0x0002 ... invalid RPATHs; these are RPATHs which are neither absolute
*               nor relative filenames and can therefore be a SECURITY risk
*    0x0004 ... insecure RPATHs; these are relative RPATHs which are a
*               SECURITY risk
*    0x0008 ... the special '$ORIGIN' RPATHs are appearing after other
*               RPATHs; this is just a minor issue but usually unwanted
*    0x0010 ... the RPATH is empty; there is no reason for such RPATHs
*               and they cause unneeded work while loading libraries
*    0x0020 ... an RPATH references '..' of an absolute path; this will break
*               the functionality when the path before '..' is a symlink
*          
*
* Examples:
* - to ignore standard and empty RPATHs, execute 'rpmbuild' like
*   $ QA_RPATHS=$(( 0x0001|0x0010 )) rpmbuild my-package.src.rpm
* - to check existing files, set $RPM_BUILD_ROOT and execute check-rpaths like
*   $ RPM_BUILD_ROOT=<top-dir> /usr/lib/rpm/check-rpaths
*  
*******************************************************************************
ERROR   0002: file '/usr/lib64/mpich/hdf5/plugin/lib__nczhdf5filters.so' contains an invalid runpath '/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-mpich' in [/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-mpich:/usr/lib64/mpich/lib]
ERROR   0010: file '/usr/lib64/openmpi/bin/nccopy' contains an empty runpath in [:/usr/lib64/openmpi/lib]
ERROR   0010: file '/usr/lib64/openmpi/bin/ncdump' contains an empty runpath in [:/usr/lib64/openmpi/lib]
ERROR   0010: file '/usr/lib64/openmpi/bin/ncgen3' contains an empty runpath in [:/usr/lib64/openmpi/lib]
ERROR   0010: file '/usr/lib64/openmpi/bin/ncgen' contains an empty runpath in [:/usr/lib64/openmpi/lib]
ERROR   0002: file '/usr/lib64/mpich/hdf5/plugin/lib__nczstdfilters.so' contains an invalid runpath '/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-mpich' in [/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-mpich:/usr/lib64/mpich/lib]
*******************************************************************************
*
* WARNING: 'check-rpaths' detected a broken RPATH OR RUNPATH and will cause
*          'rpmbuild' to fail. To ignore these errors, you can set the
*          '$QA_RPATHS' environment variable which is a bitmask allowing the
*          values below. The current value of QA_RPATHS is 0x0000.
*
*    0x0001 ... standard RPATHs (e.g. /usr/lib); such RPATHs are a minor
*               issue but are introducing redundant searchpaths without
*               providing a benefit. They can also cause errors in multilib
*               environments.
*    0x0002 ... invalid RPATHs; these are RPATHs which are neither absolute
*               nor relative filenames and can therefore be a SECURITY risk
*    0x0004 ... insecure RPATHs; these are relative RPATHs which are a
*               SECURITY risk
*    0x0008 ... the special '$ORIGIN' RPATHs are appearing after other
*               RPATHs; this is just a minor issue but usually unwanted
*    0x0010 ... the RPATH is empty; there is no reason for such RPATHs
*               and they cause unneeded work while loading libraries
*    0x0020 ... an RPATH references '..' of an absolute path; this will break
*               the functionality when the path before '..' is a symlink
*          
*
* Examples:
* - to ignore standard and empty RPATHs, execute 'rpmbuild' like
*   $ QA_RPATHS=$(( 0x0001|0x0010 )) rpmbuild my-package.src.rpm
* - to check existing files, set $RPM_BUILD_ROOT and execute check-rpaths like
*   $ RPM_BUILD_ROOT=<top-dir> /usr/lib/rpm/check-rpaths
*  
*******************************************************************************
ERROR   0002: file '/usr/lib64/openmpi/hdf5/plugin/lib__nczhdf5filters.so' contains an invalid runpath '/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-openmpi' in [/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-openmpi:/usr/lib64/openmpi/lib]
ERROR   0002: file '/usr/lib64/hdf5/plugin/lib__nczhdf5filters.so' contains an invalid runpath '/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-serial' in [/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-serial]
ERROR   0002: file '/usr/lib64/hdf5/plugin/lib__nczstdfilters.so' contains an invalid runpath '/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-serial' in [/home/orion/fedora/netcdf/netcdf-4.9.3-build/netcdf-c-main/redhat-linux-build-serial]
ERROR   0010: file '/usr/lib64/mpich/bin/nccopy' contains an empty runpath in [:/usr/lib64/mpich/lib]
ERROR   0010: file '/usr/lib64/mpich/bin/ncdump' contains an empty runpath in [:/usr/lib64/mpich/lib]
ERROR   0010: file '/usr/lib64/mpich/bin/ncgen3' contains an empty runpath in [:/usr/lib64/mpich/lib]
ERROR   0010: file '/usr/lib64/mpich/bin/ncgen' contains an empty runpath in [:/usr/lib64/mpich/lib]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions