# ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # File: lexilla.spec # Copyright 🄯 2025, 2026 Van de Bugger. # SPDX-License-Identifier: FSFAP # ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― %vdb %global _vdb_debug_ 0 %global maj 5 %global min 4 %global pat 6 %global rel 0.vdb.1 # In Fedora, installed ldconfig is located in /usr/sbin/ directory. However, in glibc rpm package # it resides in /sbin/ directory. dnf fails to install a package which requires /usr/sbin/ldconfig. %global __ldconfig /sbin/ldconfig #global _default_patch_fuzz 2 Name: lexilla Version: %{maj}.%{min}.%{pat} Release: %{rel}%{?dist} Summary: A set of lexers and folders for Scintilla License: HPND URL: https://www.scintilla.org Source0: https://www.scintilla.org/%{name}%{maj}%{min}%{pat}.tgz BuildRequires: coreutils BuildRequires: make BuildRequires: gcc BuildRequires: gcc-c++ >= 9 %{rem: Scintilla requires C++17. GCC Documentation says: "Some C++17 features are available since GCC 5, but support was experimental and the ABI of C++17 features was not stable until GCC 9." Thus, let's require GCC 9.} BuildRequires: python3 BuildRequires: scintilla-gtk3-devel %{lua: -- Lexilla 5.0.0 requires Scintilla 5.0.0. spec( rpm.vercmp( get( 'version' ), '5.0.0' ) >= 0 and '>= 5.0.0' or '' ) } BuildRequires: %{__perl} %package devel Summary: Development files for Lexilla %description %{text -- \ Lexilla is a free library of language lexers that can be used with the Scintilla editing component. It comes with complete source code and a license that permits use in any free project or commercial product. } %description devel %{text -- \ This package includes Lexilla development files. } %prep %setup -q -n %{name} %{__perl} -p -i~ \ -e 's{^(\h*)\.\./\.\./scintilla/.*?(\\?\n)}{$1$2}' \ src/deps.mak %build sci_cflags=$( pkg-config --cflags scintilla-gtk3 ) sci_libs=$( pkg-config --libs scintilla-gtk3 ) %{make_build} \ -C src \ CFLAGS="%{optflags}" \ CXXFLAGS="$sci_cflags -std=c++17 -fPIC -fvisibility=hidden %{optflags}" \ LDFLAGS="-shared -Wl,-soname=lib%{name}.so.%{maj} $sci_libs" \ LEXILLA=../bin/lib%{name}.so.%{maj}.%{min}.%{pat} \ ../bin/lib%{name}.so.%{maj}.%{min}.%{pat} # Generate pc file: { echo "libdir=%{_libdir}" echo "includedir=%{_includedir}" echo "" echo "Name: lexilla" echo "Description: %{summary}" echo "URL: %{url}" echo "Version: %{version}" echo "Cflags: -I\${includedir}/%{name}" echo "Libs: -L\${libdir} -llexilla" echo "Requires: scintilla-gtk3" } > %{name}.pc.tmp %{__mv} %{name}.pc.tmp %{name}.pc %install # Scintilla's makefile does not have install target. %{__install} -D -p -m 644 -t "%{buildroot}%{_licensedir}/%{name}" License.txt %{__install} -D -p -m 755 -t "%{buildroot}%{_libdir}" bin/lib%{name}.so.%{maj}.%{min}.%{pat} %{__install} -D -p -m 644 -t "%{buildroot}%{_includedir}/%{name}" include/*.h %{__install} -D -p -m 644 -t "%{buildroot}%{_libdir}/pkgconfig" %{name}.pc %{__ln_s} lib%{name}.so.%{maj}.%{min}.%{pat} %{buildroot}%{_libdir}/lib%{name}.so.%{maj} %{__ln_s} lib%{name}.so.%{maj} %{buildroot}%{_libdir}/lib%{name}.so %check %files %defattr( 644, root, root, 755 ) %attr( 755, -, - ) %{_libdir}/lib%{name}.so.%{maj}.%{min}.%{pat} %{_libdir}/lib%{name}.so.%{maj} %dir %{_licensedir}/%{name} %{_licensedir}/%{name}/License.txt %files devel %defattr( 644, root, root, 755 ) %{_libdir}/lib%{name}.so %dir %{_includedir}/%{name} %{_includedir}/%{name}/* %{_libdir}/pkgconfig/%{name}.pc %post %{__ldconfig} %postun %{__ldconfig} %changelog * Thu Feb 12 2026 Van de Bugger - 5.4.6-0.vdb.1 - Lexilla 5.4.6. * Mon Mar 3 2025 Van de Bugger - 5.2.7-0.vdb.1 - Initial.