Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build copr rpm #45

Merged
merged 2 commits into from
May 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .copr/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
srpm:
@echo ">Installing SRPM dependencies"
dnf install -y python3-setuptools rpmdevtools

@echo ">Setting up rpm build environment"
rpmdev-setuptree -d

@echo ">Building SRPM"
scripts/build_srpm.sh $(outdir)
4 changes: 4 additions & 0 deletions DEVELOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -280,3 +280,7 @@ When new major/minor OSIDB version is being released, we can do a pre-release of
* Tag and release needs be in format x.x.x to comply with [semantic versioning](#version-policy)
* Tag needs to point to the latest commit
* Release description should include the newest section of the [CHANGELOG.md](CHANGELOG.md)

### Fedora COPR RPM build

There is an RPM repository setup in [Fedora COPR](https://copr.fedorainfracloud.org/coprs/jazinner/osidb-bindings/). RPMs are build automatically based on git tag events. When a git tag is added to the repository Fedora COPR runs the .copr/Makefile which builds an RPM for the target distributions (currently Fedora 39 and 40).
6 changes: 6 additions & 0 deletions TUTORIAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ You can install the bindings via Python 3 pip:
```
pip install osidb-bindings
```
* RPM from [Fedora Copr](https://copr.fedorainfracloud.org/coprs/jazinner/osidb-bindings/)
```
dnf copr enable jazinner/osidb-bindings
dnf install osidb_bindings
```

* directly from the [GitHub](https://github.com/RedHatProductSecurity/osidb-bindings) repository (will install the version
from master branch)
```
Expand Down
58 changes: 58 additions & 0 deletions osidb_bindings.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
%define name osidb_bindings
%define version 3.7.0
%define release 0%{?dist}

Name: %{name}
Version: %{version}
Release: %{release}
Summary: OSIDB Python Bindings

URL: https://github.com/RedHatProductSecurity/osdib-bindings
Source0: %{name}-%{version}.tar.gz
License: MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot

BuildArch: noarch
AutoReqProv: no
BuildRequires: python3-devel
BuildRequires: python3-wheel
BuildRequires: tox
BuildRequires: python3-tox-current-env
Requires: python3-aiohttp
Requires: python3-attrs
Requires: python3-dateutil
Requires: python3-requests
Requires: python3-requests-gssapi


%description
Python Client bindings for OSIDB

%prep
%autosetup -n %{name}-%{version} -p1

%generate_buildrequires

%pyproject_buildrequires


%build
%pyproject_wheel

%install
%pyproject_install

%pyproject_save_files %{name}

%check
%tox

%files -n %{name} -f %{pyproject_files}
%ghost %{python3_sitelib}/tests/*

%changelog
* Wed May 22 2024 Jason <[email protected]> - 3.6.0
- RPM packing for osidb_bindings added



23 changes: 22 additions & 1 deletion osidb_bindings/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,33 @@
osidb-registry-bindings helpers
"""
import json
from distutils.util import strtobool
from os import getenv
from typing import Any, Union

from .exceptions import OSIDBBindingsException

_MAP = {
"y": True,
"yes": True,
"t": True,
"true": True,
"on": True,
"1": True,
"n": False,
"no": False,
"f": False,
"false": False,
"off": False,
"0": False,
}


def strtobool(value):
try:
return _MAP[str(value).lower()]
except KeyError:
raise ValueError('"{}" is not a valid bool value'.format(value))


def get_env(
key: str,
Expand Down
10 changes: 10 additions & 0 deletions scripts/build_srpm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh

set -e

mkdir dist
python3 setup.py clean sdist
cp dist/* ~/build/SOURCES/
rpmbuild --undefine dist -bs "osidb_bindings.spec" --clean
cp ~/build/SRPMS/* "$1"

3 changes: 3 additions & 0 deletions scripts/helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ update_version() {
echo "Updating the CHANGELOG.md to ${version}"
sed -i 's/^## Unreleased.*/## Unreleased\n\n## ['"${version}"'] - '$(date '+%Y-%m-%d')'/' CHANGELOG.md

echo "Updating the osidb_bindings.spec to ${version}"
sed -i 's/^%define version [0-9]*\.[0-9]*\.[0-9]*/%define version '${version}'/g' osidb_bindings.spec

echo
}

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
long_description = fh.read()

setup(
name="osidb-bindings",
name="osidb_bindings",
jasinner marked this conversation as resolved.
Show resolved Hide resolved
version="3.7.0",
author="Jakub Frejlach, Red Hat Product Security",
author_email="[email protected]",
Expand Down
Loading