# remirepo/fedora spec file for njs # # Copyright (c) 2023-2024 Remi Collet # License: CC-BY-SA-4.0 # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # # to disable upstream test suite %bcond_without tests # to disable QuickJS engine %bcond_without quickjs # to enable WASM, require ONLINE build for sources download %bcond_with wasm %global gh_owner nginx %global project njs %global gh_commit c5a29a7af8894ee1ec44ebda71ef0ea1f2a31af6 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global qjs_owner bellard %global qjs_project quickjs %global qjs_commit 6e2e68fd0896957f92eb6c242a2e048c1ef3cae0 %global qjs_short %(c=%{qjs_commit}; echo ${c:0:7}) Name: %{project} Summary: NGINX JavaScript Version: 0.8.6 Release: 2%{?dist} License: BSD-2-Clause URL: https://github.com/%{gh_owner}/%{project} # See https://github.com/nginx/njs/tags Source0: https://github.com/%{gh_owner}/%{project}/archive/%{gh_commit}/%{project}-%{version}-%{gh_short}.tar.gz # See https://github.com/bellard/quickjs/commits/master/ Source1: https://github.com/%{qjs_owner}/%{qjs_project}/archive/%{qjs_commit}/%{qjs_project}-%{qjs_short}.tar.gz BuildRequires: make BuildRequires: gcc BuildRequires: openssl-devel BuildRequires: pcre2-devel BuildRequires: libxml2-devel BuildRequires: zlib-devel # Only for command BuildRequires: libedit-devel # For tests BuildRequires: expect %if %{with quickjs} Provides: bundled(libquickjs) %endif %description NGINX JavaScript (njs). njs is a subset of the JavaScript language that allows extending nginx functionality. njs is created in compliance with ECMAScript 5.1 (strict mode) with some ECMAScript 6 and later extensions. The compliance is still evolving. %package -n libnjs-devel Summary: libnjs development files Requires: %{name}%{?_isa} = %{version}-%{release} Requires: openssl-devel Requires: pcre2-devel Requires: libxml2-devel Requires: zlib-devel %description -n libnjs-devel Library and include files required for libnjs. %prep %if %{with quickjs} : RPM build with QuickJS %setup -qn %{project}-%{gh_commit} -a1 mv %{qjs_project}-%{qjs_commit} quickjs %else : RPM build without QuickJS %setup -qn %{project}-%{gh_commit} %endif %build %if %{with quickjs} pushd quickjs CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" %make_build libquickjs.a popd ./configure \ --with-quickjs \ --cc-opt="$RPM_OPT_FLAGS -Iquickjs" \ --ld-opt="$RPM_LD_FLAGS -Lquickjs" %else ./configure \ --no-quickjs \ --cc-opt="$RPM_OPT_FLAGS" \ --ld-opt="$RPM_LD_FLAGS" %endif %make_build make pc # Fix pkgconfig sed -e '/^prefix/s|=.*$|=%{_prefix}|' \ -e '/^libdir/s|=.*$|=%{_libdir}|' \ -e '/^Cflags/s|:.*$|: -I%{_includedir}/njs|' \ build/njs.pc | tee build/njs.pcx %install : Library install -dm 0755 %{buildroot}%{_includedir}/njs/ install -pm 0644 */njs*.h %{buildroot}%{_includedir}/njs/ install -dm 0755 %{buildroot}%{_libdir}/pkgconfig install -pm 0755 build/libnjs.a %{buildroot}%{_libdir} install -pm 0755 build/njs.pcx %{buildroot}%{_libdir}/pkgconfig/njs.pc : Command install -dm 0755 %{buildroot}%{_bindir} install -pm 0755 build/njs %{buildroot}%{_bindir} %if %{with quickjs} : QuickJS install -pm 0755 quickjs/libquickjs.a %{buildroot}%{_libdir} install -pm 0755 build/libqjs.a %{buildroot}%{_libdir} %endif %if %{with tests} %check make test %{?_smp_mflags} %endif %files %license LICENSE %{_bindir}/njs %files -n libnjs-devel %license LICENSE %doc CHANGES %{_libdir}/libnjs.a %{_includedir}/njs %{_libdir}/pkgconfig/njs.pc %if %{with quickjs} %{_libdir}/libqjs.a %{_libdir}/libquickjs.a %endif %changelog * Wed Oct 2 2024 Remi Collet - 0.8.6-2 - update to 0.8.6 - enable QuickJS engine * Wed Jul 3 2024 Remi Collet - 0.8.5-1 - update to 0.8.5 * Tue Apr 16 2024 Remi Collet - 0.8.4-1 - update to 0.8.4 - report test failure with zlib-ng https://github.com/nginx/njs/issues/704 * Thu Feb 8 2024 Remi Collet - 0.8.3-1 - update to 0.8.3 * Tue Dec 19 2023 Remi Collet - 0.8.2-1 - initial package