jordansissel/fpm · error

Replacing 'provides' underscores with dashes in '#{provides}

Error message

Replacing 'provides' underscores with dashes in '#{provides}' because debs don't like underscores

What it means

Error "Replacing 'provides' underscores with dashes in '#{provides}' because debs don't like underscores" thrown in jordansissel/fpm.

Source

Thrown at lib/fpm/package/deb.rb:1000

    m = RELATIONSHIP_FIELD_PATTERN.match(text)
    if m.nil?
      logger.error("Invalid relationship field for debian package: #{text}")
      return false
    end
    return true
  end

  def fix_provides(provides)
    name_re = /^[^ \(]+/
    name = provides[name_re]
    if name =~ /[A-Z]/
      logger.warn("Downcasing provides '#{name}' because deb packages " \
                   " don't work so good with uppercase names")
      provides = provides.gsub(name_re) { |n| n.downcase }
    end

    if provides.include?("_")
      logger.warn("Replacing 'provides' underscores with dashes in '#{provides}' because " \
                   "debs don't like underscores")
      provides = provides.gsub("_", "-")
    end

    if provides.include?("(") and !provides.include?("(=")
      logger.warn("Blanking 'provides' field '#{provides}' because it's invalid")
      provides = ""
    end

    if m = provides.match(/^([A-Za-z0-9_-]+)\s*=\s*(\d+.*$)/)
      logger.warn("Replacing 'provides' entry #{provides} with syntax 'name (= version)'")
      provides = "#{m[1]} (= #{m[2]})"
    end
    return provides.rstrip
  end

  def control_path(path=nil)
    @control_path ||= build_path("control")

View on GitHub (pinned to b6d77ba72a)

When it happens

Trigger: Thrown at lib/fpm/package/deb.rb:1000 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/9e8c2cc5b25348c2. Report an issue: GitHub.