sahib / rmlint

Extremely fast tool to remove duplicates and other lint from your filesystem
http://rmlint.rtfd.org
GNU General Public License v3.0
1.86k stars 128 forks source link

packaging.version.InvalidVersion: Invalid version: '2.10.1.Ludicrous.Lemur' #608

Closed RayOfLight1 closed 1 year ago

RayOfLight1 commented 1 year ago

I get an error such as:

Traceback (most recent call last):
  File "/var/tmp/portage/app-misc/rmlint-2.10.1/work/rmlint-2.10.1/gui/setup.py", line 63, in <module>
    setup(
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)                                                                                                                                                                                                                                                                                                                                                                  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.10/site-packages/setuptools/dist.py", line 1213, in run_command
    super().run_command(command)
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/var/tmp/portage/app-misc/rmlint-2.10.1/work/rmlint-2.10.1/gui/setup.py", line 60, in run
    install.run(self)
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/command/install.py", line 709, in run
    self.run_command(cmd_name)
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.10/site-packages/setuptools/dist.py", line 1213, in run_command
    super().run_command(command)
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
    cmd_obj.ensure_finalized()
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 111, in ensure_finalized
    self.finalize_options()
  File "/usr/lib/python3.10/site-packages/setuptools/command/install_egg_info.py", line 26, in finalize_options
    ei_cmd = self.get_finalized_command("egg_info")
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 305, in get_finalized_command
    cmd_obj.ensure_finalized()
  File "/usr/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 111, in ensure_finalized
    self.finalize_options()
  File "/usr/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 219, in finalize_options
    parsed_version = parse_version(self.egg_version)
  File "/usr/lib/python3.10/site-packages/packaging/version.py", line 266, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: '2.10.1.Ludicrous.Lemur'
scons: *** [gui/always.install] Error 1
In file included from /usr/include/string.h:535,
                 from /usr/include/glib-2.0/glib/galloca.h:35,
                 from /usr/include/glib-2.0/glib.h:32,
                 from lib/pathtricia.c:26:
In function 'strncpy',
    inlined from 'rm_path_iter_init' at lib/pathtricia.c:106:5:
/usr/include/bits/string_fortified.h:95:10: warning: '__builtin_strncpy' specified bound 4096 equals destination size [-Wstringop-truncation]
   95 |   return __builtin___strncpy_chk (__dest, __src, __len,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   96 |                                   __glibc_objsize (__dest));
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~
scons: building terminated because of errors.
 * ERROR: app-misc/rmlint-2.10.1::gentoo failed (install phase):
 *   escons failed.

my scons is 4.4.0, how can we further the troubleshooting for this issue? I'm running gentoo, not... Ludricrous Lemur.

cebtenzzre commented 1 year ago

It looks like a deprecation warning I've been seeing has finally turned into an error. The GUI should install correctly with this patch:

diff --git a/gui/setup.py b/gui/setup.py
index 39bc603f..cb433089 100644
--- a/gui/setup.py
+++ b/gui/setup.py
@@ -19,7 +19,7 @@ def read_version():
     with open('../.version', 'r') as handle:
         version_string = handle.read()

-    return version_string.strip()
+    return version_string.split()[0]

 class install_glib_resources(install):
     user_options = install.user_options + [