diff --git a/.gitignore b/.gitignore index 8a17b3a..8bd6c86 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,93 @@ -/freetype-*.tar.xz -/freetype-doc-*.tar.xz -/ft2demos-*.tar.xz +ft2demos-2.3.12.tar.bz2 +freetype-doc-2.3.12.tar.bz2 +freetype-2.3.12.tar.bz2 +freetype-2.4.2.tar.bz2 +freetype-doc-2.4.2.tar.bz2 +ft2demos-2.4.2.tar.bz2 +/freetype-2.4.3.tar.bz2 +/freetype-doc-2.4.3.tar.bz2 +/ft2demos-2.4.3.tar.bz2 +/freetype-2.4.4.tar.bz2 +/freetype-doc-2.4.4.tar.bz2 +/ft2demos-2.4.4.tar.bz2 +/freetype-2.4.5.tar.bz2 +/freetype-doc-2.4.5.tar.bz2 +/ft2demos-2.4.5.tar.bz2 +/freetype-2.4.6.tar.bz2 +/freetype-doc-2.4.6.tar.bz2 +/ft2demos-2.4.6.tar.bz2 +/freetype-2.4.7.tar.bz2 +/freetype-doc-2.4.7.tar.bz2 +/ft2demos-2.4.7.tar.bz2 +/freetype-2.4.8.tar.bz2 +/freetype-doc-2.4.8.tar.bz2 +/ft2demos-2.4.8.tar.bz2 +/freetype-2.4.9.tar.bz2 +/freetype-doc-2.4.9.tar.bz2 +/ft2demos-2.4.9.tar.bz2 +/freetype-2.4.10.tar.bz2 +/freetype-doc-2.4.10.tar.bz2 +/ft2demos-2.4.10.tar.bz2 +/freetype-2.4.11.tar.bz2 +/freetype-doc-2.4.11.tar.bz2 +/ft2demos-2.4.11.tar.bz2 +/freetype-2.4.12.tar.bz2 +/freetype-doc-2.4.12.tar.bz2 +/ft2demos-2.4.12.tar.bz2 +/freetype-2.5.0.tar.bz2 +/freetype-doc-2.5.0.tar.bz2 +/ft2demos-2.5.0.tar.bz2 +/freetype-2.5.2.tar.bz2 +/freetype-doc-2.5.2.tar.bz2 +/ft2demos-2.5.2.tar.bz2 +/freetype-2.5.3.tar.bz2 +/freetype-doc-2.5.3.tar.bz2 +/ft2demos-2.5.3.tar.bz2 +/freetype-2.5.4.tar.bz2 +/freetype-doc-2.5.4.tar.bz2 +/ft2demos-2.5.4.tar.bz2 +/freetype-2.5.5.tar.bz2 +/freetype-doc-2.5.5.tar.bz2 +/ft2demos-2.5.5.tar.bz2 +/freetype-2.6.tar.bz2 +/freetype-doc-2.6.tar.bz2 +/ft2demos-2.6.tar.bz2 +/freetype-2.6.1.tar.bz2 +/freetype-doc-2.6.1.tar.bz2 +/ft2demos-2.6.1.tar.bz2 +/freetype-2.6.2.tar.bz2 +/freetype-doc-2.6.2.tar.bz2 +/ft2demos-2.6.2.tar.bz2 +/freetype-2.6.3.tar.bz2 +/freetype-doc-2.6.3.tar.bz2 +/ft2demos-2.6.3.tar.bz2 +/freetype-2.6.5.tar.bz2 +/freetype-doc-2.6.5.tar.bz2 +/ft2demos-2.6.5.tar.bz2 +/freetype-2.7.tar.bz2 +/freetype-doc-2.7.tar.bz2 +/ft2demos-2.7.tar.bz2 +/freetype-2.7.1.tar.bz2 +/freetype-doc-2.7.1.tar.bz2 +/ft2demos-2.7.1.tar.bz2 +/freetype-2.8.tar.bz2 +/freetype-doc-2.8.tar.bz2 +/ft2demos-2.8.tar.bz2 +/freetype-2.9.tar.bz2 +/freetype-doc-2.9.tar.bz2 +/ft2demos-2.9.tar.bz2 +/freetype-2.9.1.tar.bz2 +/freetype-doc-2.9.1.tar.bz2 +/ft2demos-2.9.1.tar.bz2 +/freetype-2.10.0.tar.bz2 +/freetype-doc-2.10.0.tar.bz2 +/ft2demos-2.10.0.tar.bz2 +/freetype-2.10.1.tar.xz +/freetype-doc-2.10.1.tar.xz +/ft2demos-2.10.1.tar.xz +/freetype-2.10.2.tar.xz +/freetype-doc-2.10.2.tar.xz +/ft2demos-2.10.2.tar.xz +/freetype-2.10.4.tar.xz +/freetype-doc-2.10.4.tar.xz +/ft2demos-2.10.4.tar.xz diff --git a/freetype-2.10.1-debughook.patch b/freetype-2.10.1-debughook.patch new file mode 100644 index 0000000..4421401 --- /dev/null +++ b/freetype-2.10.1-debughook.patch @@ -0,0 +1,13 @@ +diff --git a/include/freetype/ftmodapi.h b/include/freetype/ftmodapi.h +index 8d039c4f3..88488bfe8 100644 +--- a/include/freetype/ftmodapi.h ++++ b/include/freetype/ftmodapi.h +@@ -623,7 +623,7 @@ FT_BEGIN_HEADER + * it is bytecode interpreter's execution context, `TT_ExecContext`, + * which is declared in FreeType's internal header file `tttypes.h`. + */ +- typedef FT_Error ++ typedef void + (*FT_DebugHook_Func)( void* arg ); + + diff --git a/freetype-2.10.4-png-memory-leak.patch b/freetype-2.10.4-png-memory-leak.patch new file mode 100644 index 0000000..52df99a --- /dev/null +++ b/freetype-2.10.4-png-memory-leak.patch @@ -0,0 +1,43 @@ +From 007c109b4594c5e63948bd08b4d5011ad76ffb10 Mon Sep 17 00:00:00 2001 +From: Ben Wagner +Date: Fri, 23 Oct 2020 08:29:14 +0200 +Subject: [PATCH] * src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak + (#59322). + +The issue is that `rows` is allocated but will not be freed in the +event that the call to `png_read_image` fails and calls `longjmp`. +--- + ChangeLog | 7 +++++++ + src/sfnt/pngshim.c | 1 + + 2 files changed, 8 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 42f7c34ba..ff048b8ab 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,10 @@ ++2020-10-23 Ben Wagner ++ ++ * src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak (#59322). ++ ++ The issue is that `rows` is allocated but will not be freed in the ++ event that the call to `png_read_image` fails and calls `longjmp`. ++ + 2020-10-20 Werner Lemberg + + * Version 2.10.4 released. +diff --git a/src/sfnt/pngshim.c b/src/sfnt/pngshim.c +index f55016122..d4e43a9f4 100644 +--- a/src/sfnt/pngshim.c ++++ b/src/sfnt/pngshim.c +@@ -443,6 +443,7 @@ + png_read_end( png, info ); + + DestroyExit: ++ FT_FREE( rows ); + png_destroy_read_struct( &png, &info, NULL ); + FT_Stream_Close( &stream ); + +-- +2.26.2 + diff --git a/freetype-2.5.2-more-demos.patch b/freetype-2.5.2-more-demos.patch new file mode 100644 index 0000000..e737cb7 --- /dev/null +++ b/freetype-2.5.2-more-demos.patch @@ -0,0 +1,17 @@ +--- ft2demos-2.5.2/Makefile ++++ ft2demos-2.5.2/Makefile +@@ -296,10 +296,10 @@ else + # The following programs are not compiled automatically; either comment + # out the affected line or use the program name as a Makefile target. + # +- # EXES += ftchkwd +- # EXES += ftmemchk +- # EXES += ftpatchk +- # EXES += fttimer ++ EXES += ftchkwd ++ EXES += ftmemchk ++ EXES += ftpatchk ++ EXES += fttimer + # EXES += testname + + exes: $(EXES:%=$(BIN_DIR_2)/%$E) diff --git a/freetype.spec b/freetype.spec index 86ae4a7..1d1996d 100644 --- a/freetype.spec +++ b/freetype.spec @@ -1,11 +1,10 @@ %{!?with_xfree86:%define with_xfree86 1} -%bcond_with bootstrap -Name: freetype -Version: 2.14.3 -Release: 2%{?dist} Summary: A free and portable font rendering engine -License: (FTL OR GPL-2.0-or-later) AND BSD-3-Clause AND MIT AND MIT-Modern-Variant AND LicenseRef-Fedora-Public-Domain AND Zlib +Name: freetype +Version: 2.10.4 +Release: 1%{?dist} +License: (FTL or GPLv2+) and BSD and MIT and Public Domain and zlib with acknowledgement URL: http://www.freetype.org Source: http://download.savannah.gnu.org/releases/freetype/freetype-%{version}.tar.xz Source1: http://download.savannah.gnu.org/releases/freetype/freetype-doc-%{version}.tar.xz @@ -16,23 +15,24 @@ Source3: ftconfig.h Patch0: freetype-2.3.0-enable-spr.patch # Enable otvalid and gxvalid modules Patch1: freetype-2.2.1-enable-valid.patch +# Enable additional demos +Patch2: freetype-2.5.2-more-demos.patch Patch3: freetype-2.6.5-libtool.patch Patch4: freetype-2.8-multilib.patch Patch5: freetype-2.10.0-internal-outline.patch +# Revert ABI/API change +Patch6: freetype-2.10.1-debughook.patch -BuildRequires: gcc +Patch7: freetype-2.10.4-png-memory-leak.patch + +BuildRequires: gcc BuildRequires: libX11-devel BuildRequires: libpng-devel BuildRequires: zlib-devel BuildRequires: bzip2-devel -BuildRequires: brotli-devel -BuildRequires: make -%if %{without bootstrap} -BuildRequires: harfbuzz-devel -%endif Provides: %{name}-bytecode Provides: %{name}-subpixel @@ -74,12 +74,18 @@ FreeType. %prep %setup -q -b 1 -a 2 -%patch 0 -p1 -b .enable-spr -%patch 1 -p1 -b .enable-valid +%patch0 -p1 -b .enable-spr +%patch1 -p1 -b .enable-valid -%patch 3 -p1 -b .libtool -%patch 4 -p1 -b .multilib -%patch 5 -p1 -b .internal-outline +pushd ft2demos-%{version} +%patch2 -p1 -b .more-demos +popd + +%patch3 -p1 -b .libtool +%patch4 -p1 -b .multilib +%patch5 -p1 -b .internal-outline +%patch6 -p1 -b .debughook +%patch7 -p1 -b .png-memory-leak %build @@ -88,15 +94,10 @@ FreeType. --with-bzip2=yes \ --with-png=yes \ --enable-freetype-config \ -%if %{without bootstrap} - --with-harfbuzz=yes \ -%else - --with-harfbuzz=no \ -%endif - --with-brotli=yes + --with-harfbuzz=no sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' builds/unix/libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' builds/unix/libtool -%make_build +make %{?_smp_mflags} %if %{with_xfree86} # Build demos @@ -105,18 +106,30 @@ make TOP_DIR=".." popd %endif +# Convert FTL.txt and example3.cpp to UTF-8 +pushd docs +iconv -f latin1 -t utf-8 < FTL.TXT > FTL.TXT.tmp && \ +touch -r FTL.TXT FTL.TXT.tmp && \ +mv FTL.TXT.tmp FTL.TXT + +iconv -f iso-8859-1 -t utf-8 < "tutorial/example3.cpp" > "tutorial/example3.cpp.utf8" +touch -r tutorial/example3.cpp tutorial/example3.cpp.utf8 && \ +mv tutorial/example3.cpp.utf8 tutorial/example3.cpp +popd + + %install %make_install gnulocaledir=$RPM_BUILD_ROOT%{_datadir}/locale { - for ftdemo in ftbench ftdump ftlint ftvalid ttdebug ; do + for ftdemo in ftbench ftchkwd ftmemchk ftpatchk fttimer ftdump ftlint ftvalid ; do builds/unix/libtool --mode=install install -m 755 ft2demos-%{version}/bin/$ftdemo $RPM_BUILD_ROOT/%{_bindir} done } %if %{with_xfree86} { - for ftdemo in ftdiff ftgamma ftgrid ftmulti ftsdf ftstring ftview ; do + for ftdemo in ftdiff ftgamma ftgrid ftmulti ftstring fttimer ftview ; do builds/unix/libtool --mode=install install -m 755 ft2demos-%{version}/bin/$ftdemo $RPM_BUILD_ROOT/%{_bindir} done } @@ -124,13 +137,13 @@ popd # man pages for freetype-demos { - for ftdemo in ftbench ftdump ftlint ftvalid ttdebug ; do + for ftdemo in ftbench ftdump ftlint ftvalid ; do builds/unix/libtool --mode=install install -m 644 ft2demos-%{version}/man/${ftdemo}.1 $RPM_BUILD_ROOT/%{_mandir}/man1 done } %if %{with_xfree86} { - for ftdemo in ftdiff ftgamma ftgrid ftmulti ftsdf ftstring ftview ; do + for ftdemo in ftdiff ftgamma ftgrid ftmulti ftstring ftview ; do builds/unix/libtool --mode=install install -m 644 ft2demos-%{version}/man/${ftdemo}.1 $RPM_BUILD_ROOT/%{_mandir}/man1 done } @@ -161,34 +174,34 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la} %files %{!?_licensedir:%global license %%doc} -%license LICENSE.TXT docs/FTL.TXT docs/GPLv2.TXT +%license docs/LICENSE.TXT docs/FTL.TXT docs/GPLv2.TXT %{_libdir}/libfreetype.so.* %doc README %files demos %{_bindir}/ftbench +%{_bindir}/ftchkwd +%{_bindir}/ftmemchk +%{_bindir}/ftpatchk +%{_bindir}/fttimer %{_bindir}/ftdump %{_bindir}/ftlint %{_bindir}/ftvalid -%{_bindir}/ttdebug %{_mandir}/man1/ftbench.1.gz %{_mandir}/man1/ftdump.1.gz %{_mandir}/man1/ftlint.1.gz %{_mandir}/man1/ftvalid.1.gz -%{_mandir}/man1/ttdebug.1.gz %if %{with_xfree86} %{_bindir}/ftdiff %{_bindir}/ftgamma %{_bindir}/ftgrid %{_bindir}/ftmulti -%{_bindir}/ftsdf %{_bindir}/ftstring %{_bindir}/ftview %{_mandir}/man1/ftdiff.1.gz %{_mandir}/man1/ftgamma.1.gz %{_mandir}/man1/ftgrid.1.gz %{_mandir}/man1/ftmulti.1.gz -%{_mandir}/man1/ftsdf.1.gz %{_mandir}/man1/ftstring.1.gz %{_mandir}/man1/ftview.1.gz %endif @@ -209,123 +222,15 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la} %{_mandir}/man1/* %changelog -* Wed Jul 15 2026 Fedora Release Engineering - 2.14.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Mon Apr 13 2026 Marek Kasik - 2.14.3-1 -- Update to 2.14.3 -- Resolves: #2443653 - -* Thu Feb 19 2026 Alexei Podtelezhnikov - 2.14.1-3 -- Various spec fixes: -- * Remove redundant UTF-8 conversions -- * Do not build outdated demos -- * Build ftsdf and ttdebug demos -- Resolves: #2440529 - -* Fri Jan 16 2026 Fedora Release Engineering - 2.14.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Wed Oct 15 2025 Marek Kasik - 2.14.1-1 -- Update to 2.14.1 -- Resolves: #2393704 - -* Wed Jul 23 2025 Fedora Release Engineering - 2.13.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jan 16 2025 Fedora Release Engineering - 2.13.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Oct 08 2024 Peter Robinson - 2.13.3-1 -- Update to 2.13.3 - -* Wed Jul 17 2024 Fedora Release Engineering - 2.13.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Tue Feb 6 2024 Marek Kasik - 2.13.2-5 -- Migrated to SPDX license - -* Tue Jan 30 2024 Marek Kasik - 2.13.2-4 -- Remove a patch which causes FTBFS -- Resolves: #2261113 - -* Wed Jan 24 2024 Fedora Release Engineering - 2.13.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 2.13.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Tue Jan 16 2024 Marek Kasik - 2.13.2-1 -- Update to 2.13.2 -- Resolves: #2217137 - -* Wed Jul 19 2023 Fedora Release Engineering - 2.13.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue Jun 27 2023 Marek Kasik - 2.13.1-1 -- Update to 2.13.1 -- Resolves: #2217137 - -* Sat Feb 25 2023 Marek Kasik - 2.13.0-1 -- Update to 2.13.0 -- Resolves: #2168496 - -* Thu Jan 19 2023 Fedora Release Engineering - 2.12.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Jul 21 2022 Fedora Release Engineering - 2.12.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri Jul 8 2022 Marek Kasik - 2.12.1-2 -- Clear correct flags for doc ownership -- Resolves: #2104570 - -* Mon May 2 2022 Marek Kasik - 2.12.1-1 -- Update to 2.12.1 -- Resolves: #2080714 - -* Mon Apr 25 2022 Marek Kasik - 2.12.0-1 -- Update to 2.12.0 -- Resolves: #2070686 - -* Thu Jan 20 2022 Fedora Release Engineering - 2.11.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Dec 4 2021 Diego Herrera - 2.11.1-1 -- Update to 2.11.1 - -* Thu Jul 22 2021 Marek Kasik - 2.11.0-1 -- Update to 2.11.0 - -* Wed Jul 21 2021 Fedora Release Engineering - 2.10.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Feb 5 2021 Akira TAGOH - 2.10.4-3 -- Enable HarfBuzz support -- Add bootstrap without HarfBuzz -- Resolves: #1853937 -- Resolves: #1906714 - -* Tue Jan 26 2021 Fedora Release Engineering - 2.10.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Oct 23 2020 Marek Kasik - 2.10.4-1 +* Fri Oct 23 2020 Marek Kasik - 2.10.4-1 - Update to 2.10.4 - Test bitmap size earlier for PNGs - Fix memory leak in pngshim.c - Enable man pages for demos - Resolves: #1887084, #1890211 -* Mon Jul 27 2020 Fedora Release Engineering - 2.10.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jul 21 2020 Tom Stellard - 2.10.2-2 -- Use make macros -- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro - * Wed Jul 15 2020 Marek Kasik - 2.10.2-1 - Update to 2.10.2 -- Enable support for WOFF2 streams - Resolves: #1725983 * Tue Jan 28 2020 Fedora Release Engineering - 2.10.1-2 diff --git a/sources b/sources index 76fb292..a9ea804 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (freetype-2.14.3.tar.xz) = 43de86ea70b4b47f6efaae67f3440f65a24ffac29dc6d11203a9764e4f1a749ce1ba7645acd23525220b3ba12ddad8687b962b9f1254e2c0a86070854e85d5a0 -SHA512 (freetype-doc-2.14.3.tar.xz) = f5d9bdd5119d353533a17366bfbe6d847d079f908137b1353cb9b6ce2e9ae5998dcaf7c888eeceec22b162cdb14256c6e7fefd75057250321fbcd9fcafc068f4 -SHA512 (ft2demos-2.14.3.tar.xz) = e59c1266010330a8cbfd25dec096a72ce7539b64f9c057de062a281261b3ad658240f58e75b53d7a880d7ad5e020206316a6e9e82b03dec2e4d999f3f56cb39a +SHA512 (freetype-2.10.4.tar.xz) = 827cda734aa6b537a8bcb247549b72bc1e082a5b32ab8d3cccb7cc26d5f6ee087c19ce34544fa388a1eb4ecaf97600dbabc3e10e950f2ba692617fee7081518f +SHA512 (freetype-doc-2.10.4.tar.xz) = 171da6c6a172869e9bec0da67cb1abdb0fdb124870f13b751b4e9b1b5e342fb2af38cb606db1c3dcf18076a077e694b7b8dd055dd7f4ab49afe7e1d61b4f9ba8 +SHA512 (ft2demos-2.10.4.tar.xz) = d2afc19e5fabbee5205fcc992f6c19bab03485b7af4f55bb2d2dd0a4a9492a3f593540862ca116b54cf161b240d7966cb31a9793578d164fc418449e339e2fa8