# Upstream name %global srcname fungw # Fedora name %global libname lib%{srcname} # Libraries, per language %global libfawk %{name}-fawk %global libcli %{name}-cli # Major API revision %global major 1 Name: %{libname} Summary: C library for dynamic function calls in different languages Version: 1.2.1 Release: 1%{?dist} License: LGPLv2+ and BSD Url: http://www.repo.hu/projects/%{srcname} Source0: http://www.repo.hu/projects/%{srcname}/releases/%{srcname}-%{version}.tar.gz BuildRequires: gcc BuildRequires: make BuildRequires: pkgconfig(lua) BuildRequires: libmawk-devel BuildRequires: pkgconfig(tcl) BuildRequires: pkgconfig(python3) BuildRequires: mujs-devel BuildRequires: pkgconfig(duktape) BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) %global _description \ Fungw is a tiny, portable library written in C (C89) that manages \ dynamic function calls across different programming languages. #---------------------------- libfungw %description %_description This package installs %{srcname} core library that provides the API, but does not contain any scripting language binding. %files %dir %{_docdir}/%{srcname}/ %license COPYING %doc AUTHOR Changelog Release_notes %{_libdir}/%{name}.so.%{major}{,.*} %{_libdir}/%{name}_c.* # Home grown plugins system %dir %{_usr}/lib/puplug %{_usr}/lib/puplug/%{srcname}_c.* #---------------------------- fungw %package -n %{srcname} Summary: Core %{srcname} library and small scripting languages Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{libfawk}%{?_isa} = %{version}-%{release} Requires: %{libcli}%{?_isa} = %{version}-%{release} %description -n %{srcname} %_description This package installs %{srcname} core and support for a few very small scripting languages. %files -n %{srcname} # No files - meta package #---------------------------- libfungw-devel %package devel Summary: Core %{srcname} library with the API Requires: %{name}%{?_isa} = %{version}-%{release} %files devel %{_libdir}/%{name}.so %{_includedir}/%{libname}/ %description devel %_description This package constains all header files to allow applications to compile with %{srcname}. #---------------------------- libfungw-doc %package doc Summary: Documentation and examples for %{srcname} Requires: %{name}%{?_isa} = %{version}-%{release} BuildArch: noarch %description doc %_description This package constains documentation and example files to experience with %{srcname}. %files doc %{_docdir}/%{srcname}/ #--------------------------- %package fawk Summary: Scripting support for %{name}: fawk, fpas and fbas Requires: %{libname}%{?_isa} = %{version}-%{release} %description fawk %_description This package installs the interpreter and %{name} binding of fawk (function-awk), fbas (function-BASIC) and fpas (function-PASCAL). %files fawk %{_libdir}/%{name}_fawk.* %{_usr}/lib/puplug/%{srcname}_fawk.* #---------------------------- %package lua Summary: Scripting support for %{name}: lua Requires: %{libname}%{?_isa} = %{version}-%{release} %description lua %_description This package installs the language binding for lua. %files lua %{_libdir}/%{name}_lua.* %{_usr}/lib/puplug/%{srcname}_lua.* #---------------------------- %package mawk Summary: Scripting support for %{name}: mawk Requires: %{libname}%{?_isa} = %{version}-%{release} %description mawk %_description This package installs the language binding for mawk. %files mawk %{_libdir}/%{name}_mawk.* %{_usr}/lib/puplug/%{srcname}_mawk.* #-------------------------- %package tcl Summary: Scripting support for %{name}: tcl Requires: %{libname}%{?_isa} = %{version}-%{release} %description tcl %_description This package installs the language binding for tcl. %files tcl %{_libdir}/%{name}_tcl.* %{_usr}/lib/puplug/%{srcname}_tcl.* #-------------------------- python3 %package py3 Summary: Scripting support for %{name}: python3 Requires: %{libname}%{?_isa} = %{version}-%{release} %description py3 %_description This package installs the language binding for python 3. %files py3 %{_libdir}/%{name}_python3.* %{_usr}/lib/puplug/%{srcname}_python3.* #-------------------------- %package mujs Summary: Scripting support for %{name}: MuJS Requires: %{libname}%{?_isa} = %{version}-%{release} %description mujs %_description This package installs the language binding for MuJS (JavaScript). %files mujs %{_libdir}/%{name}_mujs.* %{_usr}/lib/puplug/%{srcname}_mujs.* #--------------------------- %package dukt Summary: Scripting support for %{name}: javascript Requires: %{libname}%{?_isa} = %{version}-%{release} %description dukt %_description This package installs the language binding for Javascript (using duktape). %files dukt %{_libdir}/%{name}_duktape.* %{_usr}/lib/puplug/%{srcname}_duktape.* #--------------------------- %package perl Summary: Scripting support for %{name}: perl Requires: %{libname}%{?_isa} = %{version}-%{release} %description perl %_description This package installs the language binding for perl. %files perl %{_libdir}/%{name}_perl.* %{_usr}/lib/puplug/%{srcname}_perl.* #--------------------------- %package cli Summary: Scripting support for %{name}: external languages (bash) Requires: %{libname}%{?_isa} = %{version}-%{release} %description cli %_description This package installs the binding to scripting languages ran as an external process. Currently supported language is bash. %files cli %{_libdir}/%{name}_cli.* %{_usr}/lib/puplug/%{srcname}_cli.* %prep %autosetup -n %{srcname}-%{version} -p1 %build # not an autoconf "configure", but a self-developed configuration system ./configure --CFLAGS="%{build_cflags}" --LDFLAGS="%{build_ldflags}" --prefix=%{_usr} --libdirname=%{_lib} # rpmlint Warning, because --libdir is named --libdirname in this home grown config system ! %make_build %install %make_install # Remove the installed static archive files. rm -f %{buildroot}/%{_usr}/lib/puplug/%{srcname}*.a rm -f %{buildroot}/%{_libdir}/%{name}*.a %Changelog * Wed May 04 2022 Alain Vigne - 1.2.1-1 - new upstream release - Split the documentation in -doc subpackage * Tue Feb 15 2022 Alain Vigne - 1.2.0-2 - Simplify naming scheme - Add dirs ownership * Fri Dec 17 2021 Alain Vigne - 1.2.0-1 - Initial proposal