Blame README.rst

Packit Service 8b25b4
.. image:: https://translate.fedoraproject.org/widgets/dnf/-/dnf-master/svg-badge.svg
Packit Service 8b25b4
    :alt: Translation status
Packit Service 8b25b4
    :target: https://translate.fedoraproject.org/engage/dnf/?utm_source=widget
Packit 6f3914
###############
Packit 6f3914
 Dandified YUM
Packit 6f3914
###############
Packit 6f3914
Packit 6f3914
.. image:: https://raw.githubusercontent.com/rpm-software-management/dnf/gh-pages/logos/DNF_logo.png
Packit 6f3914
 
Packit 6f3914
Dandified YUM (DNF) is the next upcoming major version of `YUM <http://yum.baseurl.org/>`_. It does package management using `RPM <http://rpm.org/>`_, `libsolv <https://github.com/openSUSE/libsolv>`_ and `hawkey <https://github.com/rpm-software-management/hawkey>`_ libraries. For metadata handling and package downloads it utilizes `librepo <https://github.com/tojaj/librepo>`_. To process and effectively handle the comps data it uses `libcomps <https://github.com/midnightercz/libcomps>`_.
Packit 6f3914
Packit 6f3914
============
Packit 6f3914
 Installing
Packit 6f3914
============
Packit 6f3914
Packit 6f3914
DNF and all its dependencies are available in Fedora 18 and later, including the
Packit 6f3914
rawhide Fedora.
Packit 6f3914
Packit 6f3914
Optionally you can use repositories with DNF nightly builds for last 2 stable Fedora versions available at copr://rpmsoftwaremanagement/dnf-nightly. You can enable the repository e.g. using:: 
Packit 6f3914
Packit 6f3914
    dnf copr enable rpmsoftwaremanagement/dnf-nightly
Packit 6f3914
Packit 6f3914
Then install DNF typing::
Packit 6f3914
Packit 6f3914
    sudo yum install dnf
Packit 6f3914
Packit 6f3914
In other RPM-based distributions you need to build all the components from their
Packit 6f3914
sources.
Packit 6f3914
Packit 6f3914
======================
Packit 6f3914
 Building from source
Packit 6f3914
======================
Packit 6f3914
Packit 6f3914
All commands should be run from the DNF git checkout directory.
Packit 6f3914
Packit 6f3914
To install the build dependencies::
Packit 6f3914
Packit 6f3914
    sudo dnf builddep dnf.spec
Packit 6f3914
Packit 6f3914
To build DNF::
Packit 6f3914
Packit 6f3914
    mkdir build;
Packit 6f3914
    pushd build;
Packit 6f3914
    cmake ..; # add '-DPYTHON_DESIRED="3"' option for Python 3 build
Packit 6f3914
    make;
Packit 6f3914
    popd;
Packit 6f3914
Packit 6f3914
To run DNF when compiled for Python2::
Packit 6f3914
Packit 6f3914
    PYTHONPATH=`readlink -f .` bin/dnf-2 <arguments>
Packit 6f3914
Packit 6f3914
To run DNF when compiled for Python3::
Packit 6f3914
Packit 6f3914
    PYTHONPATH=`readlink -f .` bin/dnf-3 <arguments>
Packit 6f3914
Packit 6f3914
If you want to build the manpages, use the option ``-DWITH_MAN=0`` with cmake.
Packit 6f3914
Packit 6f3914
Man pages will be located in ``build/doc`` and can be read with ``man -l``, e.g::
Packit 6f3914
Packit 6f3914
    man -l build/doc/dnf.8
Packit 6f3914
Packit 6f3914
=============================
Packit 6f3914
 Building and installing rpm
Packit 6f3914
=============================
Packit 6f3914
Packit 6f3914
From the DNF git checkout directory::
Packit 6f3914
Packit 6f3914
    $ tito build --test --rpm
Packit 6f3914
    # dnf install /tmp/tito/noarch/*
Packit 6f3914
Packit 6f3914
===============
Packit 6f3914
 Running tests
Packit 6f3914
===============
Packit 6f3914
Packit 6f3914
From the DNF git checkout directory::
Packit 6f3914
Packit 6f3914
    mkdir build;
Packit 6f3914
    pushd build;
Packit 6f3914
    cmake .. && make ARGS="-V" test;
Packit 6f3914
    popd;
Packit 6f3914
Packit 6f3914
==============
Packit 6f3914
 Contribution
Packit 6f3914
==============
Packit 6f3914
Packit 6f3914
Here's the most direct way to get your work merged into the project.
Packit 6f3914
Packit 6f3914
1. Fork the project
Packit 6f3914
#. Clone down your fork
Packit 6f3914
#. Implement your feature or bug fix and commit changes
Packit 6f3914
#. If you reported a bug or you know it fixes existing bug at `Red Hat bugzilla <https://bugzilla.redhat.com/>`_, append ``(RhBug:<bug_id>)`` to your commit message
Packit 6f3914
#. In special commit add your name and email under ``DNF CONTRIBUTORS`` section in `authors file <https://github.com/rpm-software-management/dnf/blob/master/AUTHORS>`_ as a reward for your generosity
Packit 6f3914
#. Push the branch up to your fork
Packit 6f3914
#. Send a pull request for your branch
Packit 6f3914
Packit 6f3914
Please, do not create the pull requests with translation (.po) files improvements. Fix the translation on `Zanata <https://fedora.zanata.org/iteration/view/dnf/master>`_ instead.
Packit 6f3914
Packit 6f3914
===============
Packit 6f3914
 Documentation
Packit 6f3914
===============
Packit 6f3914
Packit 6f3914
The DNF package distribution contains man pages, dnf(8) and dnf.conf(8). It is also possible to `read the DNF documentation <http://dnf.readthedocs.org>`_ online, the page includes API documentation. There's also a `wiki <https://github.com/rpm-software-management/dnf/wiki>`_ meant for contributors to DNF and related projects.
Packit 6f3914
Packit 6f3914
====================
Packit 6f3914
 Bug reporting etc.
Packit 6f3914
====================
Packit 6f3914
Packit 6f3914
Please report discovered bugs to the `Red Hat bugzilla <https://bugzilla.redhat.com/>`_ following this `guide <https://github.com/rpm-software-management/dnf/wiki/Bug-Reporting>`_. If you planned to propose the patch in the report, consider `Contribution`_ instead.
Packit 6f3914
Packit 6f3914
Freenode's irc channel ``#yum`` is meant for discussions related to both YUM and DNF. Questions should be asked there, issues discussed. Remember: ``#yum`` is not a support channel and prior research is expected from the questioner.