Bug 7779 - User-local .rpmmacros can interfere with repo/rebuild
Summary: User-local .rpmmacros can interfere with repo/rebuild
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Build system (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: LowPrio
Assignee: Bugzilla mail exporter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-20 14:40 CEST by William Sjöblom
Modified: 2021-10-26 12:38 CEST (History)
0 users

See Also:
Acceptance Criteria:


Attachments

Description William Sjöblom cendio 2021-10-20 14:40:32 CEST
The presence of ~/.rpmmacros or /root/.rpmmacros may interfere with repo/rebuild. This file can be automatically created by running `rpmdev-setuptree' after which many of our packages refuses to be rebuilt with the following error:

> + '[' '%{buildarch}' = noarch ']'
> + QA_CHECK_RPATHS=1
> + case "${QA_CHECK_RPATHS:-}" in
> + /usr/lib/rpm/check-rpaths
> *******************************************************************************
> *
> * WARNING: 'check-rpaths' detected a broken RPATH 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   0020: file '/opt/cendio-build/arch/x86_64/usr/lib64/libgio-2.0.so.0.3400.3' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]
> ERROR   0020: file '/opt/cendio-build/arch/x86_64/usr/lib64/libgobject-2.0.so.0.3400.3' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]
> ERROR   0020: file '/opt/cendio-build/arch/x86_64/usr/bin/gdbus' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]
> ERROR   0020: file '/opt/cendio-build/arch/x86_64/usr/bin/gsettings' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]
> ERROR   0020: file '/opt/cendio-build/arch/x86_64/usr/bin/glib-compile-resources' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]
> ERROR   0020: file '/opt/cendio-build/arch/x86_64/usr/bin/gobject-query' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]
> ERROR   0020: file '/opt/cendio-build/arch/x86_64/usr/bin/gresource' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]
> ERROR   0020: file '/opt/cendio-build/arch/x86_64/usr/bin/gio-querymodules' contains an rpath referencing '..' of an absolute path [/usr/lib64/../lib64]

This was first observed after installing `lpf-spotify-client' and letting lpf build the Spotify client during which `rpmdev-setuptree' is run as root.

A potential solution to this would be to make repo/rebuild ignore user-local .rpmmacros files.

Note You need to log in before you can comment on or make changes to this bug.