# 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: 2%{?dist} License: LGPL-2.0-or-later and BSD-1-Clause 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 library and small scripting languages Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{libfawk}%{?_isa} = %{version}-%{release} Requires: %{libcli}%{?_isa} = %{version}-%{release} BuildArch: noarch %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 contains 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 contains 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.* %exclude %{_libdir}/%{name}_python.* %exclude %{_usr}/lib/puplug/%{srcname}_python.* #--------------------------- %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 # rm scconfig/src/scripts/find_perl.c # sed -i 's| $(BIN)/scripts/find_perl.o \\|\\|' scconfig/src/scripts/Makefile.plugin # sed -i 's|$(BIN)/scripts/find_perl.o: $(SRC)/scripts/find_perl.c $(SRC)/scripts/scripts.h\n\t$(CC) $(CFLAGS) -c $(SRC)/scripts/find_perl.c -o $(BIN)/scripts/find_perl.o||' scconfig/src/scripts/Makefile.plugin # sed -i 's|dep_add("libs/script/perl/\*", find_script_perl);||' scconfig/src/scripts/scripts.c # sed -i 's|require("libs/script/perl/\*", 0, 0);||' libfungwbind/scconfig_hooks.h %build # not an autoconf "configure", but a self-developed configuration system ./configure --CFLAGS="%{build_cflags} -fno-lto" --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 %check %Changelog * Sun Jan 19 2025 Pappy Packager - 1.2.1-2 - Fedora 41 * 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