Commit e0048dd6 authored by Federico Vaga's avatar Federico Vaga

[dist] create RPMS for drivers

Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 6b75286f
......@@ -30,3 +30,25 @@ build:
- yum install -y kernel-devel git
- export LINUX=/usr/src/kernels/*/
- make -C software
build_srpm:
stage: srpm
script:
- yum-builddep -y ${DIST_PATH}/*.spec
- export LINUX=/usr/src/kernels/*/
- make -C distribution srpm
artifacts:
paths:
- distribution/build/SRPMS/${CI_PROJECT_NAME}*src.rpm
expire_in: 1 day
.koji_deps_template: &koji_deps
before_script:
- yum install -y koji krb5-workstation rpm-build
- echo ${OHWR_PASSWORD} | kinit ${OHWR_USER}
kscratch:
<<: *koji_deps
stage: kscratch
script:
- koji --config=.koji build --wait --scratch ${KOJI_TARGET} distribution/build/SRPMS/${CI_PROJECT_NAME}*src.rpm
# SPDX-License-Identifier: CC0-1.0
#
# SPDX-FileCopyrightText: 2019 CERN
# Project
TOP_DIR ?= $(shell pwd)/../
GCORES ?= $(TOP_DIR)
include $(GCORES)/common.mk
# Local
NAME := general-cores
DIR_NAME := $(NAME)-$(VERSION)
BUILD ?= $(abspath build)
SOURCES ?= $(abspath sources)
RPM_SPEC := $(shell mktemp /tmp/$(DIR_NAME)-XXXXXX.spec)
# Tools
GIT ?= git
# Targets
sources-tar:
@mkdir -p $(SOURCES)
cd $(GCORES) && $(GIT) archive --format=tar \
--prefix=$(DIR_NAME)/ \
-o $(SOURCES)/$(DIR_NAME).tar \
HEAD:software
@tar -rf $(SOURCES)/$(DIR_NAME).tar \
--transform "s,^,"$(DIR_NAME)"/," \
$(GCORES)/LICENSES $(GCORES)/common.mk $(GCORES)/CHANGELOG.rst
sources-tar-gz: sources-tar
@gzip $(SOURCES)/$(DIR_NAME).tar
sources: sources-tar-gz
@tar -C $(SOURCES) -xf $(SOURCES)/$(DIR_NAME).tar.gz $(DIR_NAME)/CHANGELOG.rst
@mv $(SOURCES)/$(DIR_NAME)/CHANGELOG.rst $(SOURCES)/CHANGELOG
@rmdir $(SOURCES)/$(DIR_NAME)
srpm-changelog: sources
$(eval $@_pattern := ^\[([0-9]+\.[0-9]+\.[0-9]+)\]\s-\s([0-9]{4}-[0-9]{2}-[0-9]{2})$)
$(eval $@_replace := echo -e "\n"\\* `date --date="\2" "+%a %b %d %Y"` "\1")
@sed -r -i -e "/^[.]{2}/d" -e "/^\s{2}.*$$/d" $(SOURCES)/CHANGELOG
@sed -r -i -e "/Change Log/d" -e "/^(=|-|\s)*$$/d" $(SOURCES)/CHANGELOG
@sed -r -i -e 's,$($@_pattern),$($@_replace),e' $(SOURCES)/CHANGELOG
rpm-spec: general-cores.spec
# The fmc.spec file is good when we can define variables. With tools like
# koji it is not possible, so we need to create a .spec file without using
# package-specific variables.
@cp $< $(RPM_SPEC)
@sed -i -e "s/%{?_build_version}/$(VERSION)/" $(RPM_SPEC)
srpm: sources rpm-spec srpm-changelog
@mkdir -p $(BUILD)
@rpmbuild -bs --define "_topdir $(BUILD)" \
--define '_sourcedir $(SOURCES)' \
--define "_build_version $(VERSION)" \
$(RPM_SPEC)
ifeq ($(KEEP_TEMP), n)
@rm -f $(RPM_SPEC)
endif
clean:
@rm -rf $(BUILD) $(SOURCES) *.tar.gz $(RPM_SPEC)
.PHONY: sources-tar sources-tar-gz sources srpm-changelog rpm-spec srpm-changelog srpm
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2019 CERN
%define project_name general-cores
Summary: General Cores Drivers
Name: dkms-%{project_name}
Version: %{?_build_version}
License: GPL-2.0
Release: 1%{?dist}
URL: https://www.ohwr.org/projects/general-cores/
BuildRequires: make, gcc, git
Requires: dkms
Source0: %{project_name}-%{version}.tar.gz
Source1: CHANGELOG
%description
This package installs all general-cores drivers
%prep
%autosetup -n %{project_name}-%{version}
%build
%install
make TOP_DIR=`pwd` PREFIX=%{buildroot}/ RPMBUILD="1" dkms_install
%post
dkms add -m %{project_name}-vic -v %{version} --rpm_safe_upgrade
dkms build -m %{project_name}-vic -v %{version} --rpm_safe_upgrade
dkms install -m %{project_name}-vic -v %{version} --rpm_safe_upgrade
%preun
dkms remove -m %{project_name}-vic -v %{version} --rpm_safe_upgrade --all ||:
%files
%license LICENSES/CC0-1.0.txt
%license LICENSES/GPL-2.0-or-later.txt
/usr/src/%{project_name}-%{version}/*
%changelog
%include %{SOURCE1}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment