diff --git a/alfont-2.0.9-build-fixes.patch b/alfont-2.0.9-build-fixes.patch new file mode 100644 index 0000000..57fbf20 --- /dev/null +++ b/alfont-2.0.9-build-fixes.patch @@ -0,0 +1,309 @@ +diff -up alfont-2.0.9/src/alfont.c~ alfont-2.0.9/src/alfont.c +--- alfont-2.0.9/src/alfont.c~ 2024-06-15 13:56:38.455325588 +0200 ++++ alfont-2.0.9/src/alfont.c 2024-06-15 13:56:43.799293099 +0200 +@@ -515,7 +515,7 @@ ALFONT_FONT *alfont_load_font_from_mem(c + memcpy((void *)font->data, (void *)data, data_len); + + /* load the font */ +- error = FT_New_Memory_Face(ft_library, font->data, font->data_size, 0, &font->face); ++ error = FT_New_Memory_Face(ft_library, (const FT_Byte *)font->data, font->data_size, 0, &font->face); + + if (error) { + free(font->data); +@@ -609,7 +609,7 @@ void alfont_textout_aa_ex(BITMAP *bmp, A + char *lpszW; + char *lpszW_tmp; + int x_tmp; +- int max_advancex; ++ int max_advancex=0; + char *lpszW_pointer=NULL; //used for freeing string + char *s_pointer=NULL; //used for original string fixed by autofix + char *s_pointer_temp=NULL; //temporary used for autofix string +@@ -618,11 +618,10 @@ void alfont_textout_aa_ex(BITMAP *bmp, A + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. + int character; + int alpha_table[256]; +- int last_glyph_index; + int first_x=0, final_x=0, final_y=0; +- int curr_uformat; ++ int curr_uformat=0; + int first_flag=TRUE; //First Char flag +- BITMAP *masked_bmp; //the masked bmp used by Font hollow ++ BITMAP *masked_bmp=NULL; //the masked bmp used by Font hollow + + #ifdef ALFONT_DOS + iconv_t c_pt; +@@ -889,7 +888,6 @@ void alfont_textout_aa_ex(BITMAP *bmp, A + + /* draw char by char (using allegro unicode funcs) */ + acquire_bitmap(bmp); +- last_glyph_index = 0; + + if (f->fixed_width == TRUE) + { +@@ -978,7 +976,6 @@ void alfont_textout_aa_ex(BITMAP *bmp, A + real_x += v.x >> 6; + real_y += v.y >> 6; + }*/ +- last_glyph_index = glyph_index; + + /* draw only if exists */ + if ((cglyph.aa_available) && (cglyph.aabmp)) { +@@ -1774,18 +1771,18 @@ void alfont_textout_ex(BITMAP *bmp, ALFO + char *lpszW; + char *lpszW_tmp; + int x_tmp; +- int max_advancex; ++ int max_advancex=0; + char *lpszW_pointer=NULL; //used for freeing string + char *s_pointer=NULL; //used for original string fixed by autofix + char *s_pointer_temp=NULL; //temporary used for autofix string + char *precedingchar_pointer=NULL; //used for precedingchar character + int nLen; + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. +- int character, last_glyph_index; ++ int character; + int first_x=0, final_x=0, final_y=0; +- int curr_uformat; ++ int curr_uformat=0; + int first_flag=TRUE; //First Char flag +- BITMAP *masked_bmp; //the masked bmp used by Font hollow ++ BITMAP *masked_bmp=NULL; //the masked bmp used by Font hollow + #ifdef ALFONT_DOS + iconv_t c_pt; + size_t fromlen, tolen; +@@ -2026,8 +2023,6 @@ void alfont_textout_ex(BITMAP *bmp, ALFO + + /* draw char by char (using allegro unicode funcs) */ + acquire_bitmap(bmp); +- last_glyph_index = 0; +- + + if (f->fixed_width == TRUE) + { +@@ -2115,7 +2110,6 @@ void alfont_textout_ex(BITMAP *bmp, ALFO + real_x += v.x >> 6; + real_y += v.y >> 6; + }*/ +- last_glyph_index = glyph_index; + + /* draw only if exists */ + if ((cglyph.mono_available) && (cglyph.bmp)) { +@@ -2628,14 +2622,14 @@ int alfont_text_height(ALFONT_FONT *f) { + int alfont_text_length(ALFONT_FONT *f, const char *str) { + char *lpszW; + char *lpszW_tmp; +- int max_advancex; ++ int max_advancex=0; + char *lpszW_pointer=NULL; //used for freeing string + char *str_pointer=NULL; //used for original string fixed by autofix + char *str_pointer_temp=NULL; //temporary used for autofix string + char *precedingchar_pointer=NULL; //used for precedingchar character + int nLen; + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. +- int curr_uformat; ++ int curr_uformat=0; + int total_length = 0, character, last_glyph_index; + int glyph_index; + int glyph_index_tmp; +@@ -2953,7 +2947,7 @@ int alfont_text_length(ALFONT_FONT *f, c + } + + int alfont_char_length(ALFONT_FONT *f, int character) { +- int curr_uformat; ++ int curr_uformat=0; + int total_length = 0, last_glyph_index; + int glyph_index; + +@@ -3034,7 +3028,7 @@ int alfont_text_count(ALFONT_FONT *f, co + char *precedingchar_pointer=NULL; //used for precedingchar character + int nLen; + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. +- int curr_uformat; ++ int curr_uformat=0; + int string_count=0; + #ifdef ALFONT_DOS + iconv_t c_pt; +@@ -3282,14 +3276,13 @@ int alfont_text_count(ALFONT_FONT *f, co + + int alfont_ugetc(ALFONT_FONT *f, const char *s) { + char *lpszW; +- char *lpszW_pointer=NULL; //used for freeing string + char *s_pointer=NULL; //used for original string fixed by autofix + char *s_pointer_temp=NULL; //temporary used for autofix string + char *precedingchar_pointer=NULL; //used for precedingchar character + int nLen; + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. + int character; +- int curr_uformat; ++ int curr_uformat=0; + #ifdef ALFONT_DOS + iconv_t c_pt; + size_t fromlen, tolen; +@@ -3526,20 +3519,16 @@ int alfont_ugetc(ALFONT_FONT *f, const c + + int alfont_ugetx(ALFONT_FONT *f, char **s) { + char *lpszW; +- char *lpszW_pointer=NULL; //used for freeing string + char *s_pointer=NULL; //used for original string fixed by autofix + char *s_pointer_temp=NULL; //temporary used for autofix string + char *precedingchar_pointer=NULL; //used for precedingchar character + int nLen; + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. + int character; +- int curr_uformat; ++ int curr_uformat=0; + +- char *lpszWS; ++ const char *lpszWS; + char *lpszWA; +- int sLen; //length before advances the *s pointer to the next character +- int aLen; //length after advances the *s pointer to the next character +- int lIndex; + + #ifdef ALFONT_DOS + iconv_t c_pt; +@@ -3551,8 +3540,6 @@ int alfont_ugetx(ALFONT_FONT *f, char ** + return 0; + } + +- sLen = strlen(*s); +- + nLen = strlen(*s) + 1; + s_pointer = (char *)malloc(nLen*sizeof(char)); + memset(s_pointer, 0, nLen); +@@ -3761,9 +3748,9 @@ int alfont_ugetx(ALFONT_FONT *f, char ** + //advances the *s pointer to the next character + + if (f->type==1) { +- ugetxc((char**)s); ++ ugetxc((const char**)s); + #ifdef ALFONT_LINUX +- ugetxc((char**)s); ++ ugetxc((const char**)s); + #endif + } + else if(f->type==2) { +@@ -3772,10 +3759,7 @@ int alfont_ugetx(ALFONT_FONT *f, char ** + ugetxc(&lpszWS); + #endif + #ifdef ALFONT_DOS +- if ((c_pt = iconv_open(f->language, "UTF-16LE")) == (iconv_t)-1) { +- aLen = strlen(lpszWS); +- } +- else { ++ if ((c_pt = iconv_open(f->language, "UTF-16LE")) != (iconv_t)-1) { + iconv(c_pt, NULL, NULL, NULL, NULL); + fromlen = strlen(lpszWS) + 1; + tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); +@@ -3790,7 +3774,6 @@ int alfont_ugetx(ALFONT_FONT *f, char ** + free(lpszWA); + lpszWA = lpszWS + } +- aLen = strlen(lpszWA); + } + #else + setlocale(LC_CTYPE,f->language); +@@ -3798,14 +3781,8 @@ int alfont_ugetx(ALFONT_FONT *f, char ** + lpszWA = (char *)malloc(nLen*sizeof(char)); + memset(lpszWA, 0, nLen); + wcstombs(lpszWA, (const wchar_t *)lpszWS, nLen); +- aLen = strlen(lpszWA); + #endif + +- for (lIndex = 0; lIndex < sLen - aLen; lIndex++) +- { +- (*(*s)++); +- } +- + if (lpszWA) { + free(lpszWA); + } +@@ -3814,9 +3791,9 @@ int alfont_ugetx(ALFONT_FONT *f, char ** + #ifdef ALFONT_LINUX + set_uformat(U_UTF8); + #endif +- ugetxc((char**)s); ++ ugetxc((const char**)s); + #ifdef ALFONT_LINUX +- ugetxc((char**)s); ++ ugetxc((const char**)s); + #endif + } + +@@ -3842,20 +3819,16 @@ int alfont_ugetx(ALFONT_FONT *f, char ** + + int alfont_ugetxc(ALFONT_FONT *f, const char **s) { + char *lpszW; +- char *lpszW_pointer=NULL; //used for freeing string + char *s_pointer=NULL; //used for original string fixed by autofix + char *s_pointer_temp=NULL; //temporary used for autofix string + char *precedingchar_pointer=NULL; //used for precedingchar character + int nLen; + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. + int character; +- int curr_uformat; ++ int curr_uformat=0; + +- char *lpszWS; ++ const char *lpszWS; + char *lpszWA; +- int sLen; //length before advances the *s pointer to the next character +- int aLen; //length after advances the *s pointer to the next character +- int lIndex; + + #ifdef ALFONT_DOS + iconv_t c_pt; +@@ -3867,8 +3840,6 @@ int alfont_ugetxc(ALFONT_FONT *f, const + return 0; + } + +- sLen = strlen(*s); +- + nLen = strlen(*s) + 1; + s_pointer = (char *)malloc(nLen*sizeof(char)); + memset(s_pointer, 0, nLen); +@@ -4088,10 +4059,7 @@ int alfont_ugetxc(ALFONT_FONT *f, const + ugetxc(&lpszWS); + #endif + #ifdef ALFONT_DOS +- if ((c_pt = iconv_open(f->language, "UTF-16LE")) == (iconv_t)-1) { +- aLen = strlen(lpszWS); +- } +- else { ++ if ((c_pt = iconv_open(f->language, "UTF-16LE")) != (iconv_t)-1) { + iconv(c_pt, NULL, NULL, NULL, NULL); + fromlen = strlen(lpszWS) + 1; + tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); +@@ -4106,7 +4074,6 @@ int alfont_ugetxc(ALFONT_FONT *f, const + free(lpszWA); + lpszWA = lpszWS + } +- aLen = strlen(lpszWA); + } + #else + setlocale(LC_CTYPE,f->language); +@@ -4114,14 +4081,8 @@ int alfont_ugetxc(ALFONT_FONT *f, const + lpszWA = (char *)malloc(nLen*sizeof(char)); + memset(lpszWA, 0, nLen); + wcstombs(lpszWA, (const wchar_t *)lpszWS, nLen); +- aLen = strlen(lpszWA); + #endif + +- for (lIndex = 0; lIndex < sLen - aLen; lIndex++) +- { +- (*(*s)++); +- } +- + if (lpszWA) { + free(lpszWA); + } +@@ -4164,7 +4125,7 @@ int alfont_need_uconvert(ALFONT_FONT *f, + int need_unicode_convert=TRUE; + int nLen; + int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. +- int curr_uformat; ++ int curr_uformat=0; + #ifdef ALFONT_DOS + iconv_t c_pt; + size_t fromlen, tolen; diff --git a/alfont.rpmlintrc b/alfont.rpmlintrc new file mode 100644 index 0000000..fc50c84 --- /dev/null +++ b/alfont.rpmlintrc @@ -0,0 +1,4 @@ +# -devel has no docs +addFilter("no-documentation") +# Source0 is not an URL +addFilter("invalid-url") diff --git a/alfont.spec b/alfont.spec index 7a7e0c7..6256dca 100644 --- a/alfont.spec +++ b/alfont.spec @@ -1,14 +1,15 @@ Name: alfont Version: 2.0.9 -Release: 8%{?dist} +Release: 32%{?dist} Summary: Font rendering library for the Allegro game library -Group: System Environment/Libraries License: FTL URL: http://chernsha.sitesled.com/ # this is http://chernsha.sitesled.com/AlFont209.rar repackaged in .tgz format Source0: %{name}-%{version}.tar.gz Patch0: alfont-2.0.9-linux.patch Patch1: alfont-2.0.9-remove-alfont_get_string.patch +Patch2: alfont-2.0.9-build-fixes.patch +BuildRequires: gcc BuildRequires: allegro-devel freetype-devel %description @@ -19,7 +20,6 @@ text using freetype fonts on Allegro bitmaps. %package devel Summary: Development files for %{name} -Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: allegro-devel @@ -29,11 +29,11 @@ developing applications that use %{name}. %prep -%setup -q -%patch0 -p1 -z .linux -%patch1 -p1 +%autosetup -p1 for i in include/alfont*.h freetype/docs/FTL.TXT; do sed -i.orig s'/\r//g' $i + iconv -f ISO-8859-1 -t UTF-8 $i > $i.utf8 + mv $i.utf8 $i touch -r $i.orig $i done @@ -45,6 +45,7 @@ done gcc -fPIC -DPIC $RPM_OPT_FLAGS -Iinclude `freetype-config --cflags` \ -o src/alfont.o -c src/alfont.c gcc -shared -Wl,-soname,lib%{name}.so.2 -o lib%{name}.so.%{version} \ + $RPM_OPT_FLAGS $RPM_LD_FLAGS \ src/alfont.o $(freetype-config --libs) $(allegro-config --libs) @@ -57,12 +58,12 @@ ln -s lib%{name}.so.%{version} $RPM_BUILD_ROOT%{_libdir}/lib%{name}.so install -m 644 include/%{name}*.h $RPM_BUILD_ROOT%{_includedir} -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%ldconfig_scriptlets %files -%doc CHANGES.txt README.txt freetype/docs/FTL.TXT +%doc CHANGES.txt README.txt +%license freetype/docs/FTL.TXT %{_libdir}/lib%{name}.so.* %files devel @@ -71,6 +72,80 @@ install -m 644 include/%{name}*.h $RPM_BUILD_ROOT%{_includedir} %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 2.0.9-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jul 23 2025 Fedora Release Engineering - 2.0.9-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 2.0.9-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 2.0.9-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jun 15 2024 Hans de Goede - 2.0.9-28 +- Fix FTBFS (rhbz#2260975) +- Use distro LD_FLAGS when linking + +* Mon Jan 22 2024 Fedora Release Engineering - 2.0.9-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2.0.9-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 2.0.9-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jan 18 2023 Fedora Release Engineering - 2.0.9-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 2.0.9-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 2.0.9-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 2.0.9-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jan 25 2021 Fedora Release Engineering - 2.0.9-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jul 31 2020 Fedora Release Engineering - 2.0.9-19 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.0.9-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 2.0.9-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 2.0.9-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 2.0.9-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 2.0.9-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 2.0.9-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 2.0.9-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2.0.9-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 2.0.9-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 2.0.9-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Tue Jun 16 2015 Fedora Release Engineering - 2.0.9-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild