Metadata-Version: 2.1
Name: f2r
Version: 2.5.1
Summary: Produces RPMs for FLP packages out of aliBuild ouput
Home-page: https://gitlab.cern.ch/AliceO2Group/flp-to-rpm
Author: Adam Wegrzynek
Author-email: adam.wegrzynek@cern.ch
License: GPLv3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Utilities
Classifier: Environment :: Console
Classifier: Operating System :: Unix
Classifier: Development Status :: 4 - Beta
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: COPYING

# f2r

Command line tool to create RPMs out of aliBuild output

## Prerequisites
 - [aliBuild](https://alisw.github.io/alibuild/)
 - [environment Modules](https://modules.readthedocs.io/en/latest/) 4.3 or higher, RPM is available from [this S3 location](http://s3.cern.ch/swift/v1/system-configuration/RPMS/environment-modules-4.6.1-1.el7.cern.x86_64.rpm)
 - Optional: To enable S3 support you need to create a config file under `~/.s3cfg`, see [CERN IT instructions](https://clouddocs.web.cern.ch/object_store/s3cmd.html)

## Installation

`python3 -m pip install f2r`

OR

You can use following Ansible role from [system-configration](https://gitlab.cern.ch/AliceO2Group/system-configuration/-/tree/dev/ansible/roles/f2r) that handles also "Prerequisites".


## Quickstart
Build packages using `aliBuild`, eg:
```bash
aliBuild build O2Suite --defaults o2-dataflow --always-prefer-system
```
Then, run `alienv` as indicated by `aliBuild` in order to create modulefiles:
```bash
alienv enter O2Suite/latest-o2-dataflow
```
And create RPMs providing same package and version as to `alienv`:
```bash
f2r generate --package O2Suite --version latest-o2-dataflow
```
Validate created RPMs (this required `sudo`):
```
f2r validate
```
Create YUM repo:
```bash
f2r repo
```

and sync it to S3:
```bash
f2r sync
```

## CLI options
Global options:
```
  -h, --help            show this help message and exit
  --dry-run             do a dry run, skipping fpm execution
  --target-rpm-dir TARGET_RPM_DIR
                        path to store RPMs in (=/tmp/o2_rpms by default)
  --release-tag RELEASE_TAG
                        Release tag, this is mostly to provide correct dir
                        structure
  --architecture ARCHITECTURE
                        OS architecture
  --log-level LOG_LEVEL
                        Set log level (DEBUG, INFO, WARN, ERROR)
```

Generate options:
```
--package PACKAGE     package name (as recipe name in aldiist)
--version VERSION     package version (as in modulefile: X.Y.Z-A)
--ali-prefix ALI_PREFIX
                      path to alibuild dir
--skip-deps           Generate single RPM without dependencies
```

Sync options:
```
--pull      Pulls instead of pushing
```
