Hello, Please note that this comment was generated automatically. If you feel that this output has mistakes, please contact me via email (mhroncok). Your package (python-healpy) Fails To Install in Fedora 35: can't install python3-healpy: - nothing provides python3.9dist(matplotlib) needed by python3-healpy-1.14.0-4.fc34.x86_64 - nothing provides python3.9dist(scipy) needed by python3-healpy-1.14.0-4.fc34.x86_64 - nothing provides python3.9dist(six) needed by python3-healpy-1.14.0-4.fc34.x86_64 - nothing provides python(abi) = 3.9 needed by python3-healpy-1.14.0-4.fc34.x86_64 - nothing provides python3.9dist(numpy) >= 1.13 needed by python3-healpy-1.14.0-4.fc34.x86_64 If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem. If you don't react accordingly to the policy for FTBFS/FTI bugs (https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/), your package may be orphaned in 8+ weeks. P.S. The data was generated solely from koji buildroot, so it might be newer than the latest compose or the content on mirrors. P.P.S. If this bug has been reported in the middle of upgrading multiple dependent packages, please consider using side tags: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updating-inter-dependent-packages Thanks!
This bugzilla is likely a fallout from the Python 3.10 rebuild. If your package (or some of the dependencies it has) failed to rebuild during the Python 3.10 rebuild, they now fail to install. To fix this, packages need to be rebuilt in Rawhide. We will slowly triage the bugzillas, but we'd appreciate your help. If you know this is blocked by an existing reported build failure or another package not yet rebuilt with Python 3.10, please mark it as such by using the "Depends On"/"Blocks" bugzilla fields. That will help us determine what failures to prioritize. Thank you and sorry for the inconvenience. Let me know if you need any help.
Hello, This is the first reminder (step 3 from https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs). If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.
+ /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/python3.10/site-packages/healpy/_healpy_pixel_lib.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] ERROR 0002: file '/usr/lib64/python3.10/site-packages/healpy/_healpy_sph_transform_lib.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] ERROR 0002: file '/usr/lib64/python3.10/site-packages/healpy/_query_disc.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] ERROR 0002: file '/usr/lib64/python3.10/site-packages/healpy/_sphtools.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] ERROR 0002: file '/usr/lib64/python3.10/site-packages/healpy/_pixelfunc.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] ERROR 0002: file '/usr/lib64/python3.10/site-packages/healpy/_masktools.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] ERROR 0002: file '/usr/lib64/python3.10/site-packages/healpy/_hotspots.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] ERROR 0002: file '/usr/lib64/python3.10/site-packages/healpy/_line_integral_convolution.cpython-310-x86_64-linux-gnu.so' contains an invalid runpath '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' in [/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib] error: Bad exit status from /var/tmp/rpm-tmp.tYjDsc (%install) Bad exit status from /var/tmp/rpm-tmp.tYjDsc (%install)
Currently the FailsToInstall issue of this package causes some looong dependency chain breakage, and it results in Astronomy Live spin creation failure: https://koji.fedoraproject.org/koji/taskinfo?taskID=70671815 While I am not the maintainer of this package, as I want to keep Astronomy Live spin healthy, I want to make this package fixed ASAP. Currently I have not figured out how to remove invalid rpath "in reasonable way" - if I cannot find out in a few days, I am going to resort to using "chrpath -r" method and push the tentative fix and build this package.
> Currently I have not figured out how to remove invalid rpath "in reasonable way" Me neither. I've tried sedding LD_RUN_PATH to DIE_RPATH_DIE in confugre scripts, I've tried adding --disable-rpath to setup.py's configure invocation. No dice.
I tried to do a scratch build of healpy 1.15.0, but it fails with the same error. I think the problem is due to the bundled libsharp library: checking if library 'sharp' is installed Package libsharp was not found in the pkg-config search path. Perhaps you should add the directory containing `libsharp.pc' to the PKG_CONFIG_PATH environment variable Package 'libsharp', required by 'virtual:world', not found building library 'sharp' from source creating /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10 creating /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/sharp /bin/sh /builddir/build/BUILD/healpy-1.14.0/healpixsubmodule/src/common_libraries/libsharp/configure --prefix=/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10 --disable-shared --with-pic --disable-maintainer-mode and then: make[1]: Entering directory '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/sharp' /usr/bin/mkdir -p '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' /bin/sh ./libtool --mode=install /usr/bin/install -c libsharp.la '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib' libtool: install: /usr/bin/install -c .libs/libsharp.lai /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib/libsharp.la libtool: install: /usr/bin/install -c .libs/libsharp.a /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib/libsharp.a libtool: install: chmod 644 /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib/libsharp.a libtool: install: ranlib /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib/libsharp.a libtool: finish: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/sbin" ldconfig -n /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib ---------------------------------------------------------------------- Libraries have been installed in: /builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- /usr/bin/mkdir -p '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/include' /usr/bin/mkdir -p '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/include/libsharp' /usr/bin/install -c -m 644 /builddir/build/BUILD/healpy-1.14.0/healpixsubmodule/src/common_libraries/libsharp/libsharp/sharp.h /builddir/build/BUILD/healpy-1.14.0/healpixsubmodule/src/common_libraries/libsharp/libsharp/sharp_geomhelpers.h /builddir/build/BUILD/healpy-1.14.0/healpixsubmodule/src/common_libraries/libsharp/libsharp/sharp_almhelpers.h /builddir/build/BUILD/healpy-1.14.0/healpixsubmodule/src/common_libraries/libsharp/libsharp/sharp_cxx.h '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/include/libsharp' /usr/bin/mkdir -p '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib/pkgconfig' /usr/bin/install -c -m 644 libsharp.pc '/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib/pkgconfig' I think the problem can be solved by unbundling libsharp, but I don't have enough skills for a quick fix while we package that library in Fedora.
oh, also libhealpix_cxx seems to be linked in the same way
Unfortunately, repoquery shows that "pkgconfig(libsharp)" is not provided by any package...
Modified: https://src.fedoraproject.org/rpms/python-healpy/c/7c2b9915d36706ed029a8bec9b144d6fe57bd07d?branch=rawhide https://koji.fedoraproject.org/koji/buildinfo?buildID=1777784 So the broken build sets invalid rpath by: ======================================================= g++ -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection build/temp.linux-x86_64-3.10/healpy/src/_healpy_pixel_lib.o -L/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib -L/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib -L/usr/lib64 -Lbuild/temp.linux-x86_64-3.10 -Wl,--enable-new-dtags,-R/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib -Wl,--enable-new-dtags,-R/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib -lcfitsio -lsharp -lm -lhealpix_cxx -lcfitsio -lsharp -lhealpix_cxx -o build/lib.linux-x86_64-3.10/healpy/_healpy_pixel_lib.cpython-310-x86_64-linux-gnu.so -D_REENTRANT -fopenmp -D_REENTRANT ======================================================= Note that "-Wl,--enable-new-dtags,-R/builddir/build/BUILD/healpy-1.14.0/build/temp.linux-x86_64-3.10/lib". "grep"ing "--enable-new-dtags" in buildroot hits: $ grep -rnI enable-new-dtags ./usr/lib ./usr/lib/python3.10/site-packages/setuptools/_distutils/unixccompiler.py:253: return "-Wl,--enable-new-dtags,-R" + dir Then looking at unixccompiler.py: --------------------------------------------------- 220 def runtime_library_dir_option(self, dir): 235 if sys.platform[:6] == "darwin": 244 else: 245 if self._is_gcc(compiler): 250 if sysconfig.get_config_var("GNULD") == "yes": 251 # GNU ld needs an extra option to get a RUNPATH 252 # instead of just an RPATH. 253 return "-Wl,--enable-new-dtags,-R" + dir 254 else: 255 return "-Wl,-R" + dir --------------------------------------------------- and _distutils/ccompiler.py : --------------------------------------------------- 1087 def gen_lib_options (compiler, library_dirs, runtime_library_dirs, libraries): 1094 lib_opts = [] 1095 1096 for dir in library_dirs: 1097 lib_opts.append(compiler.library_dir_option(dir)) 1098 1099 for dir in runtime_library_dirs: 1100 opt = compiler.runtime_library_dir_option(dir) 1101 if isinstance(opt, list): 1102 lib_opts = lib_opts + opt 1103 else: 1104 lib_opts.append(opt) --------------------------------------------------- So it seems that python3-setuptools adds "-Wl,--enable-new-dtags,-R" option using "runtime_library_dirs" environ.
Note that setuptools/_distutils is likely never actually used. However standard library distutils probably does the same.
Hello, Please note that this comment was generated automatically. If you feel that this output has mistakes, please contact me via email (mhroncok). All subpackages of a package against which this bug was filled are now installable or removed from Fedora 35. Thanks for taking care of it!
I've seen this in packages that use numpy.distutils, which monkeypatches distutils/setuptools and uses some rather convoluted logic around libraries. Specifically, see https://github.com/numpy/numpy/blob/c07080f12652b2cced2f6ca2cb3e72e085565047/numpy/distutils/system_info.py#L741 -- I haven't figured out why library_dirs is copied to runtime_library_dirs, but it seems this is part of the path that adds rpath.
thinko: numpy.distutils doesn't monkeypatch distutils but *extends* it.