jordansissel/fpm · error · FPM::InvalidPackageConfiguration

Invalid dependency '#{dep}'

Error message

Invalid dependency '#{dep}'

What it means

Error "Invalid dependency '#{dep}'" thrown in jordansissel/fpm.

Source

Thrown at lib/fpm/package/python.rb:552

      end

      # Evaluate python package requirements and only show ones matching the current environment
      # (Environment markers, etc)
      # Additionally, 'extra' features such as a requirement named `django[bcrypt]` isn't quite supported yet,
      # since the marker.evaluate() needs to be passed some environment like { "extra": "bcrypt" }
      execmd([attributes[:python_bin], File.expand_path(File.join("pyfpm", "parse_requires.py"), File.dirname(__FILE__))]) do |stdin, stdout, stderr|
        requires.each { |r| stdin.puts(r) }
        stdin.close
        data = stdout.read
        logger.pipe(stderr => :warn)
        reqs += JSON.parse(data)
      end

      reqs.each do |dep|
        match = dep_re.match(dep)
        if match.nil?
          logger.error("Unable to parse dependency", :dependency => dep)
          raise FPM::InvalidPackageConfiguration, "Invalid dependency '#{dep}'"
        end

        name, cmp, version = match.captures

        next if attributes[:python_disable_dependency].include?(name)

        # convert == to =
        if cmp == "==" or cmp == "~="
          logger.info("Converting == dependency requirement to =", :dependency => dep )
          cmp = "="
        end

        # dependency name prefixing is optional, if enabled, a name 'foo' will
        # become 'python-foo' (depending on what the python_package_name_prefix
        # is)
        name = fix_name(name) if attributes[:python_fix_dependencies?]

        # convert dependencies from python-Foo to python-foo

View on GitHub (pinned to b6d77ba72a)

When it happens

Trigger: Thrown at lib/fpm/package/python.rb:552 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jordansissel/fpm@b6d77ba72a (2026-08-21). Data as JSON: /api/errors/43c1280c7ac7d0ea. Report an issue: GitHub.