From 85df216d16bd21895173cac87cea46422a734f88 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Mon, 2 Jun 2025 13:31:38 +0200 Subject: [PATCH] Add packit CI --- .distro/airrac.spec | 102 ++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 4 ++ .packit.yaml | 51 ++++++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 .distro/airrac.spec create mode 100644 .packit.yaml diff --git a/.distro/airrac.spec b/.distro/airrac.spec new file mode 100644 index 0000000..8db3a12 --- /dev/null +++ b/.distro/airrac.spec @@ -0,0 +1,102 @@ +Name: airrac +Version: 0.0.0 +Release: %autorelease + +Summary: C++ Simulated Revenue Accounting (RAC) System Library + +License: LGPL-2.1-or-later +URL: https://github.com/airsim/%{name} +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: boost-devel +BuildRequires: soci-devel +BuildRequires: soci-mysql-devel +BuildRequires: soci-sqlite3-devel +BuildRequires: pkgconfig(readline) +BuildRequires: pkgconfig(stdair) + +%description +%{name} is a C++ library of airline revenue accounting classes and +functions, mainly targeting simulation purposes. + +%{name} makes an extensive use of existing open-source libraries for +increased functionality, speed and accuracy. In particular the +Boost (C++ Standard Extensions: https://www.boost.org) library is used. + +Install the %{name} package if you need a library of basic C++ objects +for Airline Revenue Accounting, mainly for simulation purpose. + +%package devel +Summary: Header files, libraries and development helper tools for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: pkgconfig + +%description devel +This package contains the header files, shared libraries and +development helper tools for %{name}. If you would like to develop +programs using %{name}, you will need to install %{name}-devel. + +%package doc +Summary: HTML documentation for the %{name} library +BuildArch: noarch +BuildRequires: tex(latex) +BuildRequires: texlive-epstopdf +BuildRequires: doxygen +BuildRequires: ghostscript + +%description doc +This package contains HTML pages, as well as a PDF reference manual, +for %{name}. All that documentation is generated thanks to Doxygen +(https://doxygen.org). The content is the same as what can be browsed +online (https://%{name}.org). + + +%prep +%autosetup + + +%build +%cmake +%cmake_build + +%install +%cmake_install + +# Remove the Doxygen installer +rm -f %{buildroot}%{_docdir}/%{name}/html/installdox + +# Remove additional documentation files (those files are already available +# in the project top directory) +rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}/{NEWS,README.md,AUTHORS} + +%check +%ctest + + +%files +%doc AUTHORS ChangeLog NEWS README.md +%license COPYING +%{_bindir}/%{name} +%{_libdir}/lib%{name}.so.* +%{_mandir}/man1/%{name}.1.* + +%files devel +%license COPYING +%{_includedir}/%{name}/ +%{_bindir}/%{name}-config +%{_libdir}/lib%{name}.so +%{_libdir}/cmake/%{name}/ +%{_libdir}/pkgconfig/%{name}.pc +%{_datadir}/aclocal/%{name}.m4 +%{_mandir}/man1/%{name}-config.1.* +%{_mandir}/man3/%{name}-library.3.* + +%files doc +%doc %{_docdir}/%{name}/ +%license COPYING + + +%changelog +%autochangelog diff --git a/.gitignore b/.gitignore index 9859b26..f8591d0 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,7 @@ configure airrac/config.h.in* test/airrac/*_results.xml +# Packit setup +*.tar.gz +*.rpm +*.log diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..b5e87ea --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,51 @@ +files_to_sync: + - src: .distro/ + dest: ./ + delete: true + filters: + - "protect .git*" + - "protect sources" + - "protect changelog" + - "protect gating.yaml" + # Temporary workaround until + # https://github.com/packit/packit/pull/2573 + - "- airrac.spec" + - .packit.yaml + +specfile_path: .distro/airrac.spec +upstream_package_name: airrac +downstream_package_name: airrac +upstream_tag_template: v{version} + +targets: + - fedora-all-x86_64 + - fedora-all-aarch64 + +_: + # Job templates + - &build-in-packit + job: copr_build + - &build-in-airsim + <<: *build-in-packit + owner: "@airsim" + +jobs: + # Upstream jobs + - <<: *build-in-airsim + trigger: release + project: release + - <<: *build-in-airsim + trigger: commit + branch: main + project: nightly + - <<: *build-in-packit + trigger: pull_request + # Downstream jobs + - job: propose_downstream + trigger: release + dist_git_branches: + - fedora-rawhide + - job: koji_build + trigger: commit + dist_git_branches: + - fedora-rawhide