Skip to content

Commit

Permalink
Build copr rpm (#45)
Browse files Browse the repository at this point in the history
* remove deprecated dependency on distutils

* build srpm
  • Loading branch information
jasinner authored May 29, 2024
1 parent 2ba5738 commit 69b3a47
Show file tree
Hide file tree
Showing 8 changed files with 113 additions and 2 deletions.
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",
version="3.7.0",
author="Jakub Frejlach, Red Hat Product Security",
author_email="[email protected]",
Expand Down

0 comments on commit 69b3a47

Please sign in to comment.