dtrx-py / dtrx

Do The Right Extraction
GNU General Public License v3.0
224 stars 10 forks source link

platform==unsupported line preventing install #45

Closed pmbarrett314 closed 1 year ago

pmbarrett314 commented 1 year ago

The line in setup.cfg that prevents install on windows seems to be causing errors when trying to install on other platforms, I've tried pipx on mac and the standard AUR install on Arch. Others seem to be having the same issue. The root of the error seems to be the following. Just patching out the line lets me install just fine.

packaging.requirements.InvalidRequirement: Expected end or semicolon (after name and no valid version specifier)
    platform==unsupported;platform_system=="Windows"
dontdieych commented 1 year ago

Still got error on aarch64 archlinux.

AUR Explicit (1): dtrx-8.5.0-1
:: PKGBUILD up to date, skipping download: dtrx
  1 dtrx                                     (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> None
  1 dtrx                                     (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> None
==> Making package: dtrx 8.5.0-1 (Sun 23 Apr 2023 03:45:51 AM UTC)
==> Retrieving sources...
  -> Found dtrx-8.5.0.tar.gz
==> Validating source files with sha256sums...
    dtrx-8.5.0.tar.gz ... Passed
:: (1/1) Parsing SRCINFO: dtrx
==> Making package: dtrx 8.5.0-1 (Sun 23 Apr 2023 03:45:52 AM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found dtrx-8.5.0.tar.gz
==> Validating source files with sha256sums...
    dtrx-8.5.0.tar.gz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting dtrx-8.5.0.tar.gz with bsdtar
==> Sources are ready.
==> Making package: dtrx 8.5.0-1 (Sun 23 Apr 2023 03:45:54 AM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Removing existing $pkgdir/ directory...
==> Entering fakeroot environment...
==> Starting package()...
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/packaging/requirements.py", line 35, in __init__
    parsed = parse_requirement(requirement_string)
  File "/usr/lib/python3.10/site-packages/packaging/_parser.py", line 64, in parse_requirement
    return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
  File "/usr/lib/python3.10/site-packages/packaging/_parser.py", line 82, in _parse_requirement
    url, specifier, marker = _parse_requirement_details(tokenizer)
  File "/usr/lib/python3.10/site-packages/packaging/_parser.py", line 126, in _parse_requirement_details
    marker = _parse_requirement_marker(
  File "/usr/lib/python3.10/site-packages/packaging/_parser.py", line 147, in _parse_requirement_marker
    tokenizer.raise_syntax_error(
  File "/usr/lib/python3.10/site-packages/packaging/_tokenizer.py", line 163, in raise_syntax_error
    raise ParserSyntaxError(
packaging._tokenizer.ParserSyntaxError: Expected end or semicolon (after name and no valid version specifier)
    platform==unsupported;platform_system=="Windows"
            ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/alarm/.cache/yay/dtrx/src/dtrx-8.5.0/setup.py", line 7, in <module>
    setuptools.setup()
  File "/usr/lib/python3.10/site-packages/setuptools/__init__.py", line 107, in setup
    _install_setup_requires(attrs)
  File "/usr/lib/python3.10/site-packages/setuptools/__init__.py", line 78, in _install_setup_requires
    dist.parse_config_files(ignore_option_errors=True)
  File "/usr/lib/python3.10/site-packages/setuptools/dist.py", line 887, in parse_config_files
    self._finalize_requires()
  File "/usr/lib/python3.10/site-packages/setuptools/dist.py", line 594, in _finalize_requires
    self._move_install_requirements_markers()
  File "/usr/lib/python3.10/site-packages/setuptools/dist.py", line 634, in _move_install_requirements_markers
    inst_reqs = list(_reqs.parse(spec_inst_reqs))
  File "/usr/lib/python3.10/site-packages/packaging/requirements.py", line 37, in __init__
    raise InvalidRequirement(str(e)) from e
packaging.requirements.InvalidRequirement: Expected end or semicolon (after name and no valid version specifier)
    platform==unsupported;platform_system=="Windows"
            ^
==> ERROR: A failure occurred in package().
    Aborting...
 -> error making: dtrx-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
dtrx - exit status 4
noahp commented 1 year ago

Thanks for reporting, this looks like a setuptools update is tripping over that. I'll push a fix up asap!

pmbarrett314 commented 1 year ago

Awesome, thanks!

noahp commented 1 year ago

Published the fix in 8.5.1, also available in PyPI: https://github.com/dtrx-py/dtrx/releases/tag/8.5.1

Thanks again for reporting, very appreciated!