README.rst

Fedora modularization command line tool

This is repository for Fedora modularization command line tool ("fm").

It is standalone "fm" command which is used query fm-metadata-service API server to get metadata about available Fedora Modules.

In the future, this tool should be able to enable/disable modules and probably also install them. The long term goals now are not set to stone yet.

Repository structure

  • bin - Directory with then main "fm" script installed to /usr/bin.
  • docs - Documentation using the sphinx generator.
  • fm - Module with the core "fm" functionality.
  • plugins - DNF plugin implementing "dnf module" subcommand.
  • tests - Unit-tests based on nosetests framework.

Documentation

http://fm-dnf-plugin.readthedocs.org/

Fedora modularization command line tool and DNF plugin. It is used to query fm-metadata-service and displays information about available modules.

It can be used as a standalone "fm" tool or as a DNF plugin adding "module" subcommand to DNF.

Installation from source code

You can install fm tool from source code using following commands:

$ git clone https://pagure.io/fm-dnf-plugin.git
$ cd fm-dnf-plugin
$ cmake .
$ sudo make install

Installation from RPM package

We also provide RPM package with the latest version of fm tool. Since we are in early stage in development, there is no stable fm release, so the packages are rebuilt from time to time when we will it's worth doing so.

To install the package, you can use following commands:

$ sudo dnf copr enable @modularity/fm

If you want to try also the DNF plugin, install also:

$ sudo dnf install fm python3-fm-dnf-plugin

Configuration files

There is main configuration file installed by default in /etc/fm/fm.cfg. For now this configuration file contains just single configuration directive:

  • modules_dir - Path to directory with configuration files defining the Modules repositories to be used by fm tool. By default, modules_dir is set to /etc/fm.modules.d.

Each file in modules_dir has similar format to the yum/dnf .repo files. For example:

[fedora]
name = Fedora modules
url = http://fed-mod.org/fedora-modules
enabled = 1

This configuration file stored as /etc/fm.modules.d/fedora.cfg defines the modules repository stored on http://fed-mod.org/fedora-modules.

Usage

List all modules:

fm list
dnf module list

Show info about single module:

fm info <module>
dnf module info <module>