%global with_mingw 0 %if 0%{?fedora} %global with_mingw 1 %endif # asan-dist: If you set this macro, we build the openssl-asan-dist package and # none others. So, we want this macro set :) %bcond_without asan_dist %if %{with asan_dist} # Where the shared objects are going to go %{!?asan_dist_prefix: %global asan_dist_prefix /opt/asan-dist} # We still run the full `make install` step, so we need to ignore all the unpackaged files %define _unpackaged_files_terminate_build 0 # Disable RPATH checks; we set RPATH to /opt/asan-dist/lib to prefer loading other ASANified # dependencies %global __brp_check_rpaths %{nil} # Disable debugsym stripping so that the symbols get packed into the rr traces %define debug_package %{nil} %define __strip /bin/true %endif %if %{with asan_dist} Name: libyaml-asan-dist Version: 0.2.5 Release: 14.2%{?dist} Requires: libyaml-devel %global toolchain clang BuildRequires: clang compiler-rt %global with_mingw 0 %else Name: libyaml Version: 0.2.5 Release: 14%{?dist} %endif Summary: YAML 1.1 parser and emitter written in C License: MIT URL: https://github.com/yaml/libyaml Source0: https://github.com/yaml/libyaml/releases/download/%{version}/yaml-%{version}.tar.gz BuildRequires: autoconf BuildRequires: automake BuildRequires: doxygen BuildRequires: gcc BuildRequires: libtool BuildRequires: make %if %{with_mingw} BuildRequires: mingw32-filesystem >= 95 BuildRequires: mingw32-gcc-c++ BuildRequires: mingw64-filesystem >= 95 BuildRequires: mingw64-gcc-c++ %endif %description YAML is a data serialization format designed for human readability and interaction with scripting languages. LibYAML is a YAML parser and emitter written in C. %package devel Summary: Development files for LibYAML applications Requires: libyaml%{?_isa} = %{version}-%{release}, pkgconfig # docs contain files generated by doxygen which are licensed as follows: # dynsections.js and menu.js are GPL-2.0-or-later # jquery.js is MIT License: GPL-2.0-or-later AND MIT %description devel The %{name}-devel package contains libraries and header files for developing applications that use LibYAML. %if %{with_mingw} %package -n mingw32-libyaml Summary: MinGW YAML 1.1 parser and emitter written in C BuildArch: noarch %description -n mingw32-libyaml YAML is a data serialization format designed for human readability and interaction with scripting languages. LibYAML is a YAML parser and emitter written in C. %package -n mingw64-libyaml Summary: MinGW YAML 1.1 parser and emitter written in C BuildArch: noarch %description -n mingw64-libyaml YAML is a data serialization format designed for human readability and interaction with scripting languages. LibYAML is a YAML parser and emitter written in C. %endif %prep %setup -q -n yaml-%{version} %build %define _configure ../configure mkdir build pushd build %configure CFLAGS="$CFLAGS -fsanitize=address" LDFLAGS="$LDFLAGS -fsanitize=address -Wl,-rpath=%{asan_dist_prefix}/lib" %make_build all html popd %if %{with_mingw} %mingw_configure %mingw_make_build %endif %install pushd build %make_install popd %if %{with_mingw} %mingw_make_install %endif rm -f %{buildroot}%{_libdir}/*.{la,a} soname=$(readelf -d %{buildroot}%{_libdir}/libyaml.so | awk '$2 == "(SONAME)" {print $NF}' | tr -d '[]') rm -f %{buildroot}%{_libdir}/libyaml.so echo "INPUT($soname)" > %{buildroot}%{_libdir}/libyaml.so %if %{with asan_dist} mkdir -p %{buildroot}/%{asan_dist_prefix}/lib/ cp -av %{buildroot}%{_libdir}/*.so.* %{buildroot}/%{asan_dist_prefix}/lib/ ln -svf $soname %{buildroot}/%{asan_dist_prefix}/lib/libyaml.so %endif %check pushd build %if %{with asan_dist} export ASAN_OPTIONS=detect_leaks=0 %endif make check popd %ldconfig_scriptlets %if %{without asan_dist} %files %license License %doc ReadMe.md %{_libdir}/%{name}*.so.* %files devel %doc doc/html %{_libdir}/%{name}*.so %{_libdir}/pkgconfig/yaml-0.1.pc %{_includedir}/yaml.h %if %{with_mingw} %files -n mingw32-libyaml %license License %{mingw32_bindir}/libyaml-0-2.dll %{mingw32_includedir}/yaml.h %{mingw32_libdir}/libyaml.a %{mingw32_libdir}/libyaml.dll.a %{mingw32_libdir}/pkgconfig/yaml-0.1.pc %files -n mingw64-libyaml %license License %{mingw64_bindir}/libyaml-0-2.dll %{mingw64_includedir}/yaml.h %{mingw64_libdir}/libyaml.a %{mingw64_libdir}/libyaml.dll.a %{mingw64_libdir}/pkgconfig/yaml-0.1.pc %endif %endif %if %{with asan_dist} %files %{asan_dist_prefix}/lib/libyaml*.so.* %{asan_dist_prefix}/lib/libyaml*.so %endif %changelog * Fri Jul 12 2024 KJ Tsanaktsidis - 0.2.5-14.2 - Don't strip debugsyms * Wed Jun 26 2024 KJ Tsanaktsidis - 0.2.5-14.1 - ASAN distribution * Thu Jan 25 2024 Fedora Release Engineering - 0.2.5-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sun Jan 21 2024 Fedora Release Engineering - 0.2.5-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Wed Jul 26 2023 Marc-André Lureau - 0.2.5-12 - Add MinGW packages. * Thu Jul 20 2023 Fedora Release Engineering - 0.2.5-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Wed May 17 2023 Karolina Surma - 0.2.5-10 - Review the license tag according to the SPDX standard, declare the docs license * Thu Jan 19 2023 Fedora Release Engineering - 0.2.5-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Thu Jul 21 2022 Fedora Release Engineering - 0.2.5-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Thu Jan 20 2022 Fedora Release Engineering - 0.2.5-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Thu Jul 22 2021 Fedora Release Engineering - 0.2.5-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Tue Jan 26 2021 Fedora Release Engineering - 0.2.5-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Tue Dec 1 2020 John Eckersberg - 0.2.5-4 - Add BuildRequires for make (re: https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot) * Tue Jul 28 2020 Fedora Release Engineering - 0.2.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Mon Jul 13 2020 Tom Stellard - 0.2.5-2 - Use make macros - https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro * Tue Jun 2 2020 John Eckersberg - 0.2.5-1 - New upstream release (rhbz#1842769) * Sun Apr 19 2020 John Eckersberg - 0.2.4-1 - New upstream release (rhbz#1825622) - Fixes document end before directive (rhbz#1824226) * Mon Apr 13 2020 John Eckersberg - 0.2.3-1 - New upstream release (rhbz#1823108) * Wed Jan 29 2020 Fedora Release Engineering - 0.2.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Thu Jul 25 2019 Fedora Release Engineering - 0.2.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Tue Mar 26 2019 John Eckersberg - 0.2.2-1 - New upstream release (rhbz#1692750) * Tue Feb 5 2019 John Eckersberg - 0.2.1-5 - Add patch: Revert removing of open_ended after top level plain scalar (rhbz#1672670) * Tue Feb 5 2019 John Eckersberg - 0.2.1-4 - Add patch: Don't emit document-end marker at the end of stream (rhbz#1672670) * Fri Feb 01 2019 Fedora Release Engineering - 0.2.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Tue Aug 7 2018 Jens Petersen - 0.2.1-2 - rebuild against fixed binutils to fix missing symbols (#1613350) * Mon Jul 16 2018 John Eckersberg - 0.2.1-1 - New upstream release 0.2.1 (rhbz#1598611) * Mon Jul 16 2018 John Eckersberg - 0.1.7-8 - Add BuildRequires for gcc See: https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot * Fri Jul 13 2018 Fedora Release Engineering - 0.1.7-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Feb 07 2018 Fedora Release Engineering - 0.1.7-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Sat Feb 03 2018 Igor Gnatenko - 0.1.7-5 - Switch to %%ldconfig_scriptlets * Thu Aug 03 2017 Fedora Release Engineering - 0.1.7-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 0.1.7-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Feb 10 2017 Fedora Release Engineering - 0.1.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Mon Aug 29 2016 John Eckersberg - 0.1.7-1 - New upstream release 0.1.7 (RHBZ#1371154) * Thu Feb 04 2016 Fedora Release Engineering - 0.1.6-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Wed Jun 17 2015 Fedora Release Engineering - 0.1.6-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Mon Dec 1 2014 John Eckersberg - 0.1.6-6 - Add patch for CVE-2014-9130 (RHBZ#1169371) * Sun Aug 17 2014 Fedora Release Engineering - 0.1.6-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Fri Jul 18 2014 Tom Callaway - 0.1.6-4 - fix license handling * Sat Jun 07 2014 Fedora Release Engineering - 0.1.6-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Mon Mar 31 2014 John Eckersberg - 0.1.6-2 - Work around ldconfig bug with libyaml.so (bz1082822) * Wed Mar 26 2014 John Eckersberg - 0.1.6-1 - New upstream release 0.1.6 (bz1081492) - Fixes CVE-2014-2525 (bz1078083) * Tue Feb 4 2014 John Eckersberg - 0.1.5-1 - New upstream release 0.1.5 (bz1061087) - Removed patches for CVE-2013-6393; they are included in 0.1.5 upstream * Wed Jan 29 2014 John Eckersberg - 0.1.4-6 - Add patches for CVE-2013-6393 (bz1033990) * Sat Aug 03 2013 Fedora Release Engineering - 0.1.4-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Thu Feb 14 2013 Fedora Release Engineering - 0.1.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Thu Jul 19 2012 Fedora Release Engineering - 0.1.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Fri Jan 13 2012 Fedora Release Engineering - 0.1.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Thu Jun 23 2011 John Eckersberg - 0.1.4-1 - New upstream release 0.1.4 * Tue Feb 08 2011 Fedora Release Engineering - 0.1.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Fri Oct 02 2009 John Eckersberg - 0.1.3-1 - New upstream release 0.1.3 * Sat Jul 25 2009 Fedora Release Engineering - 0.1.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Wed Jul 22 2009 John Eckersberg - 0.1.2-4 - Minor tweaks to spec file - Enable %%check section - Thanks Gareth Armstrong * Tue Mar 3 2009 John Eckersberg - 0.1.2-3 - Remove static libraries * Thu Feb 26 2009 John Eckersberg - 0.1.2-2 - Remove README and LICENSE from docs on -devel package - Remove -static package and merge contents into the -devel package * Wed Feb 25 2009 John Eckersberg - 0.1.2-1 - Initial packaging for Fedora