Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • catfish catfish
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 36
    • Issues 36
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 4
    • Merge requests 4
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Apps
  • catfishcatfish
  • Issues
  • #58
Closed
Open
Created Jul 20, 2021 by Joel Barrios@darkshram

4.16.1 install broken while building rpm packages.

Version 4.16.1 installs two files with DESTDIR (%buildroot) path while building rpm packages. The python install script adds the value of %buildroot at some point to catfishconfig.py and org.xfce.Catfish.desktop.

+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-buildroot
/tmp/jbarrios_rpm_buildroot/catfish-4.16.1-1.x86_64/usr/lib/python3.6/site-packages/catfish_lib/catfishconfig.py:__catfish_data_directory__ = '/tmp/jbarrios_rpm_buildroot/catfish-4.16.1-1.x86_64/usr/share/catfish'
/tmp/jbarrios_rpm_buildroot/catfish-4.16.1-1.x86_64/usr/share/applications/org.xfce.Catfish.desktop:Exec=/tmp/jbarrios_rpm_buildroot/catfish-4.16.1-1.x86_64/usr/bin/catfish %f
Found '/tmp/jbarrios_rpm_buildroot/catfish-4.16.1-1.x86_64' in installed files; aborting
error: Bad exit status from /tmp/jbarrios_rpm_tmppath/rpm-tmp.Esnz3Z (%install)

The output states rpmbuild found the value of %buildroot inside catfishconfig.py and org.xfce.Catfish.desktop and therefore exits with error. This does not happen with catfish 4.16.0.

Reverting the changes made for pip support to setup.py fixes the issue.

diff -Naur catfish-4.16.1.orig/setup.py catfish-4.16.1/setup.py
--- catfish-4.16.1.orig/setup.py	2021-07-20 05:04:29.457409600 -0500
+++ catfish-4.16.1/setup.py	2021-07-20 18:35:22.324434725 -0500
@@ -21,7 +21,6 @@
 import shutil
 import sys
 import subprocess
-import site
 
 __version__ = '4.16.1'
 __url__ = 'https://docs.xfce.org/apps/catfish/start'
@@ -187,8 +186,6 @@
                (self.distribution.get_name(),
                 self.distribution.get_version())))
 
-        using_pip = os.path.basename(os.path.dirname(__file__)).startswith('pip-')
-
         if not self.prefix:
             self.prefix = ''  # pylint: disable=W0201
 
@@ -199,19 +196,6 @@
 
             data_dir = os.path.join(self.prefix, 'share', 'catfish', '')
             script_path = os.path.join(self.prefix, 'bin')
-
-        if using_pip:
-            target_data = os.path.relpath(self.install_data) + os.sep
-            target_pkgdata = os.path.join(site.getuserbase(), 'share', 'catfish')
-            target_scripts = os.path.join(site.getuserbase(), 'bin')
-
-            # Use absolute paths
-            target_data = os.path.realpath(target_data)
-            target_pkgdata = os.path.realpath(target_pkgdata)
-            target_scripts = os.path.realpath(target_scripts)
-
-            data_dir = target_pkgdata
-            script_path = target_scripts
         else:
             # --user install
             self.root = ''  # pylint: disable=W0201

To be honest, I think most of the users will install catfish from distribution packages instead of pip.

Another workaroud is to leave setup.py as is and manually remove the %buildroot path (in my case '/tmp/jbarrios_rpm_buildroot/catfish-4.16.1-1.al.x86_64') from /usr/lib/python3.6/site-packages/catfish_lib/catfishconfig.py and /usr/share/applications/org.xfce.Catfish.desktop.

Assignee
Assign to
Time tracking