Go to file
bors[bot] e85d3e0c61
Merge #1686
1686: Package: add a get_header() method r=j-mracek a=lukash

Adds get_header() method to the Package class, which returns the rpm
header of an installed package.

= changelog =
msg: Add get_header() method to the Package class
type: enhancement
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1876606

Co-authored-by: Lukáš Hrázký <lhrazky@redhat.com>
2021-01-20 16:15:51 +00:00
.tito Initialized to use tito. 2020-01-10 09:37:18 +01:00
bin Ensure that correct python version is used for build - PYTHON_EXECUTABLE (RhBug:1598988) (#1129) 2018-07-12 11:49:08 +02:00
dnf Package: add a get_header() method (RhBug:1876606) 2021-01-20 13:34:27 +01:00
doc Fix documentation of globs not supporting curly brackets 2021-01-11 17:23:36 +01:00
etc Make rotated log file (mode, owner, group) match previous log settings (RhBug:1894344) 2020-11-26 09:51:22 +01:00
po Translations update 2020-10-06 10:41:07 +02:00
scripts Spelling fixes 2017-06-25 08:07:04 +00:00
tests Package: add a get_header() method (RhBug:1876606) 2021-01-20 13:34:27 +01:00
.git-commit-template Introduce changelog metadata in commit messages 2020-07-27 12:54:04 +02:00
.gitignore [swdb]: integration squashed 2017-10-19 13:52:32 +02:00
.packit.yaml [.packit.yaml] use fedora-all and remove specfile_path & upstream_project_name 2020-03-16 12:43:31 +01:00
AUTHORS Add myself to list of contributors 2020-04-02 18:58:34 +02:00
CMakeLists.txt Enforce synchronization of DNF_VERSION with VERSION.cmake 2020-01-09 14:39:22 -05:00
COPYING packaging: update COPYING. 2012-06-19 17:25:42 +02:00
PACKAGE-LICENSING docs: Replace Yum with YUM. 2018-04-27 08:58:50 +00:00
README.rst README: Reference Fedora Weblate instead of Zanata 2020-07-30 13:01:25 +02:00
VERSION.cmake Release 4.5.2 2020-12-03 16:25:03 +01:00
bors.toml Add bors bot configuration for CI 2021-01-19 09:52:59 +01:00
dnf.spec Apply modular obsoletes if option enabled 2021-01-18 09:02:11 +01:00
setup.cfg Increase PEP8 line length to 120 chars 2020-06-30 11:32:48 +02:00
sideci.yml setup SideCI to ignore some PEP8 violations 2016-11-21 10:34:27 +00:00

README.rst

.. image:: https://translate.fedoraproject.org/widgets/dnf/-/dnf-master/svg-badge.svg
    :alt: Translation status
    :target: https://translate.fedoraproject.org/engage/dnf/?utm_source=widget
###############
 Dandified YUM
###############

.. image:: https://raw.githubusercontent.com/rpm-software-management/dnf/gh-pages/logos/DNF_logo.png
 
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>`_.

============
 Installing
============

DNF and all its dependencies are available in Fedora 18 and later, including the
rawhide Fedora.

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:: 

    dnf copr enable rpmsoftwaremanagement/dnf-nightly

Then install DNF typing::

    sudo yum install dnf

In other RPM-based distributions you need to build all the components from their
sources.

======================
 Building from source
======================

All commands should be run from the DNF git checkout directory.

To install the build dependencies::

    sudo dnf builddep dnf.spec

To build DNF::

    mkdir build;
    pushd build;
    cmake ..; # add '-DPYTHON_DESIRED="3"' option for Python 3 build
    make;
    popd;

To run DNF when compiled for Python2::

    PYTHONPATH=`readlink -f .` bin/dnf-2 <arguments>

To run DNF when compiled for Python3::

    PYTHONPATH=`readlink -f .` bin/dnf-3 <arguments>

If you want to build the manpages, use the option ``-DWITH_MAN=0`` with cmake.

Man pages will be located in ``build/doc`` and can be read with ``man -l``, e.g::

    man -l build/doc/dnf.8

=============================
 Building and installing rpm
=============================

From the DNF git checkout directory::

    $ tito build --test --rpm
    # dnf install /tmp/tito/noarch/*

===============
 Running tests
===============

From the DNF git checkout directory::

    mkdir build;
    pushd build;
    cmake .. && make ARGS="-V" test;
    popd;

==============
 Contribution
==============

Here's the most direct way to get your work merged into the project.

1. Fork the project
#. Clone down your fork
#. Implement your feature or bug fix and commit changes
#. If the change fixes a bug at `Red Hat bugzilla <https://bugzilla.redhat.com/>`_, or if it is important to the end user, add the following block to the commit message::

    = changelog =
    msg:           message to be included in the changelog
    type:          one of: bugfix/enhancement/security (this field is required when message is present)
    resolves:      URLs to bugs or issues resolved by this commit (can be specified multiple times)
    related:       URLs to any related bugs or issues (can be specified multiple times)

   * For example::

       = changelog =
       msg: Verify GPG signatures when running dnf-automatic
       type: bugfix
       resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1793298

   * For your convenience, you can also use git commit template by running the following command in the top-level directory of this project::

       git config commit.template ./.git-commit-template

#. 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
#. Push the branch up to your fork
#. Send a pull request for your branch

Please, do not create the pull requests with translation (.po) files improvements. Fix the translation on `Fedora Weblate <https://translate.fedoraproject.org/projects/dnf/>`_ instead.

===============
 Documentation
===============

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.

====================
 Bug reporting etc.
====================

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.

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.