# Upstream name %global srcname fungw # Fedora name %global libname lib%{srcname} # Libraries, per language %global libfawk %{name}-fawk %global libcli %{name}-cli %global libbind %{name}-bind %global libmawk %{name}-mawk %global liblua %{name}-lua %global libtcl %{name}-tcl %global libpy3 %{name}-python3 %global libmujs %{name}-mujs %global libdukt %{name}-duktape %global libperl %{name}-perl # Major API revision %global major 1 Name: %{libname} Summary: C library for dynamic function calls in different languages Version: 1.2.0 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 %license COPYING %doc AUTHOR Changelog Release_notes %{_docdir}/%{srcname}/ %{_libdir}/%{name}.so{,.*} %{_libdir}/%{name}_c.* # Home grown plugins system %{_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}/%{libname}.so.%{major} %{_includedir}/%{libname}/ %description devel %_description This package constains all header files to allow applications to compile with %{srcname}. #--------------------------- %package -n %{libfawk} Summary: Scripting support for %{name}: fawk, fpas and fbas Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libfawk} %_description This package installs the interpreter and %{name} binding of fawk (function-awk), fbas (function-BASIC) and fpas (function-PASCAL). %files -n %{libfawk} %{_libdir}/%{name}_fawk.* %{_usr}/lib/puplug/%{srcname}_fawk.* #---------------------------- %package -n %{liblua} Summary: Scripting support for %{name}: lua Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{liblua} %_description This package installs the language binding for lua. %files -n %{liblua} %{_libdir}/%{name}_lua.* %{_usr}/lib/puplug/%{srcname}_lua.* #---------------------------- %package -n %{libmawk} Summary: Scripting support for %{name}: mawk Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libmawk} %_description This package installs the language binding for mawk. %files -n %{libmawk} %{_libdir}/%{name}_mawk.* %{_usr}/lib/puplug/%{srcname}_mawk.* #-------------------------- %package -n %{libtcl} Summary: Scripting support for %{name}: tcl Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libtcl} %_description This package installs the language binding for tcl. %files -n %{libtcl} %{_libdir}/%{name}_tcl.* %{_usr}/lib/puplug/%{srcname}_tcl.* #-------------------------- python3 %package -n %{libpy3} Summary: Scripting support for %{name}: python3 Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libpy3} %_description This package installs the language binding for python 3. %files -n %{libpy3} %{_libdir}/%{name}_python3.* %{_usr}/lib/puplug/%{srcname}_python3.* #-------------------------- %package -n %{libmujs} Summary: Scripting support for %{name}: MuJS Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libmujs} %_description This package installs the language binding for MuJS (JavaScript). %files -n %{libmujs} %{_libdir}/%{name}_mujs.* %{_usr}/lib/puplug/%{srcname}_mujs.* #--------------------------- %package -n %{libdukt} Summary: Scripting support for %{name}: javascript Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libdukt} %_description This package installs the language binding for Javascript (using duktape). %files -n %{libdukt} %{_libdir}/%{name}_duktape.* %{_usr}/lib/puplug/%{srcname}_duktape.* #--------------------------- %package -n %{libperl} Summary: Scripting support for %{name}: perl Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libperl} %_description This package installs the language binding for perl. %files -n %{libperl} %{_libdir}/%{name}_perl.* %{_usr}/lib/puplug/%{srcname}_perl.* #--------------------------- %package -n %{libcli} Summary: Scripting support for %{name}: external languages (bash) Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{libcli} %_description This package installs the binding to scripting languages ran as an external process. Currently supported language is bash. %files -n %{libcli} %{_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 * Fri Dec 17 2021 Alain Vigne 1.2.0-1 - Initial proposal