awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
jordansissel avatar

jordansissel/fpm

0
View on GitHub↗
11,479 stars·1,065 forks·Ruby·30 viewsfpm.readthedocs.io/en/latest↗

Fpm

fpm is a multiplatform package builder and converter used to create software packages for various Linux distribution formats from a single unified source. It functions as a Linux distribution packager and a cross-format converter, transforming local directories, existing packages, or language-specific modules into platform-native formats such as DEB and RPM.

The tool acts as a language-specific package wrapper, bundling modules from Node.js, Python, Ruby, and Perl into system packages. It can also generate packages that automatically configure system services for targets like systemd.

The project covers the full packaging lifecycle, including metadata definition for versioning and licensing, dependency specification, and file system permission management. It provides capabilities for modifying existing packages by updating metadata, altering contents, or removing maintainer scripts. Additionally, it manages the installation process through configurable maintainer scripts and pattern-based file exclusions.

Features

  • Cross-Format Package Converters - Transforms packages from one format to another while removing and cleaning platform-specific metadata.
  • Linux Package Generators - Creates software packages for different Linux distributions like DEB and RPM from a single unified source.
  • System Package Integration - Wraps external registries like NPM or CPAN by extracting metadata and bundling source code into system packages.
  • Language-to-System Package Converters - Converts Node.js, Python, Ruby, or Perl modules into native system packages with automated dependency management.
  • Directory Packaging - Bundles a local directory into a package while preserving path mappings, hardlinks, and file metadata.
  • Package Builders - Creates DEB, RPM, and other system software packages from a single unified source.
  • Software Distribution - Prepares distributable software archives with specific file permissions, ownership, and maintainer scripts for Linux users.
  • Package Format Converters - Transforms software directories or existing packages into different platform-specific Linux distribution formats.
  • Package Metadata - Sets attributes like name, version, license, and vendor for final package control or spec files.
  • Package Packaging Tools - Transforms directories, existing packages, or language-specific modules into platform-specific formats like RPM and DEB.
  • Distribution Package Generators - Generates distributable software packages for multiple target platforms from a single unified source.
  • Language Module Wrappers - Bundles Node.js, Python, Ruby, and Perl modules into native system packages.
  • Unified Package Interfaces - Provides a unified interface to create software packages for various target formats from a single source.
  • Unified Package Metadata Abstractions - Maps a single set of package attributes to various platform-specific control files and specification formats.
  • Installation Scripts - Defines maintainer scripts and templates to execute specific tasks before or after the installation process.
  • Package Dependency Managers - Specifies required or conflicting packages and handles version constraints across different target formats.
  • Maintainer Script Generation - Produces platform-specific maintainer scripts from a unified set of installation and configuration templates.
  • System Service Integration - Bundles software into a package that automatically configures and installs system services for targets like systemd.
  • Package Modification Tools - Adjusts the contents of an existing package by removing files, updating metadata, or altering dependencies.
  • Perl Module Packaging - Provides capabilities to bundle CPAN modules into native system packages by querying metadata and handling build structures.
  • Python Distribution Packaging - Builds packages from Python sources by identifying metadata and dependencies via pip or project configuration files.
  • Ruby Gem Packaging - Wraps Ruby gems into system packages and manages the associated dependency lists.
  • System Service Packaging - Generates packages that install system services with configurations for targets like systemd or upstart.
  • Package File Permission Management - Sets specific ownership, group settings, and file modes for all contents within the resulting package.
  • Packaging Tools - Versatile tool for creating packages in multiple formats.
  • Package Management - Versatile utility for creating packages in multiple formats.
  • Packaging - Versatile multi-format package creation tool.

Star history

Star history chart for jordansissel/fpmStar history chart for jordansissel/fpm

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does jordansissel/fpm do?

fpm is a multiplatform package builder and converter used to create software packages for various Linux distribution formats from a single unified source. It functions as a Linux distribution packager and a cross-format converter, transforming local directories, existing packages, or language-specific modules into platform-native formats such as DEB and RPM.

What are the main features of jordansissel/fpm?

The main features of jordansissel/fpm are: Cross-Format Package Converters, Linux Package Generators, System Package Integration, Language-to-System Package Converters, Directory Packaging, Package Builders, Software Distribution, Package Format Converters.

Which projects share features with jordansissel/fpm?

Projects with overlapping indexed features include: homebrew/legacy-homebrew — This project is a command line package manager and dependency management engine used for installing, updating, and… pypa/sampleproject — This project is a reference implementation and tutorial designed to demonstrate the end-to-end workflow of building,… probonopd/appimagekit — AppImageKit is a set of utility tools for the portable Linux application format, designed to bundle desktop… void-linux/void-packages — This project is a source-based package management framework designed to build, maintain, and distribute software for a… pdm-project/pdm — PDM is a Python package manager, dependency resolver, and build tool designed to create reproducible environments. It… sdispater/poetry — Poetry is a Python build tool, dependency manager, and project orchestrator. It provides a unified workflow for…

Projects sharing features with Fpm

These projects share indexed features with Fpm. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • homebrew/legacy-homebrewHomebrew avatar

    Homebrew/legacy-homebrew

    26,849View on GitHub↗

    This project is a command line package manager and dependency management engine used for installing, updating, and removing software packages across different operating systems. It functions as a package recipe system and software repository administrator, utilizing declarative scripts to define software sources, build arguments, and installation steps. The system operates as a binary distribution platform that compiles source code into pre-compiled binaries and distributes them through remote repositories. It includes an automated version tracker that monitors upstream software releases and

    View on GitHub↗26,849
  • pypa/sampleprojectpypa avatar

    pypa/sampleproject

    5,245View on GitHub↗

    This project is a reference implementation and tutorial designed to demonstrate the end-to-end workflow of building, versioning, and uploading Python distributions. It serves as a concrete project template and example for configuring metadata and build artifacts for package indices. The repository illustrates how to package software by defining project metadata and dependencies in static configuration files. It covers the process of transforming source trees into versioned archives and platform-specific binary distributions, specifically showing how to build binary wheels and source distribut

    Python
    View on GitHub↗5,245
  • probonopd/appimagekitprobonopd avatar

    probonopd/AppImageKit

    9,348View on GitHub↗

    AppImageKit is a set of utility tools for the portable Linux application format, designed to bundle desktop applications into single executable binaries that run across multiple Linux distributions without requiring a system-wide installation. The toolkit provides specialized utilities for packaging applications into standalone binaries, extracting embedded filesystem images for inspection or execution, and signing binaries with cryptographic signatures to verify authenticity and integrity. The project covers binary packaging and deployment, embedded filesystem management, and digital packag

    C
    View on GitHub↗9,348
  • void-linux/void-packagesvoid-linux avatar

    void-linux/void-packages

    3,276View on GitHub↗

    This project is a source-based package management framework designed to build, maintain, and distribute software for a Linux operating system. It provides a comprehensive infrastructure for transforming source code into reproducible binary packages, utilizing modular shell-script templates to manage the entire lifecycle of fetching, patching, configuring, and compiling software. The system distinguishes itself through its focus on isolated build environments and cross-compilation capabilities. By utilizing dedicated master directories and specialized toolchains, it ensures that builds remain

    Shellhacktoberfestvoidlinux
    View on GitHub↗3,276
Compare all 30 related projects→