diff --git a/README.md b/README.md index 43be218..765af51 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # t4kcommon +A library of code shared between tuxmath and tuxtype. + diff --git a/t4kcommon-0.1.1-debian_bugfix.patch b/t4kcommon-0.1.1-debian_bugfix.patch new file mode 100644 index 0000000..e8c8a49 --- /dev/null +++ b/t4kcommon-0.1.1-debian_bugfix.patch @@ -0,0 +1,32 @@ +Description: fix loading each frame from SVG sprites + rsvg_handle_get_desc returns null so next sscanf segfaults. Use instead iterating + up from zero for id frame%d +Author: cdonoghu@gmail.com +Origin: other +Forwarded: no +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/src/t4k_loaders.c ++++ b/src/t4k_loaders.c +@@ -213,14 +213,13 @@ + new_sprite = malloc(sizeof(sprite)); + new_sprite->default_img = render_svg_from_handle(file_handle, width, height, "#default"); + +- /* get number of frames from description */ +- sscanf(rsvg_handle_get_desc(file_handle), "%d", &new_sprite->num_frames); +- DEBUGMSG(debug_loaders, "load_svg_sprite(): loading %d frames\n", new_sprite->num_frames); +- +- for(i = 0; i < new_sprite->num_frames; i++) +- { +- sprintf(lay_name, "#frame%d", i); +- new_sprite->frame[i] = render_svg_from_handle(file_handle, width, height, lay_name); ++ /* get number of frames directly. End when #frame doesn't exist */ ++ new_sprite->num_frames = 0; ++ while(1) { ++ sprintf(lay_name, "#frame%d", new_sprite->num_frames); ++ if ( ! (rsvg_handle_has_sub(file_handle, lay_name)) ) break; ++ new_sprite->frame[new_sprite->num_frames] = render_svg_from_handle(file_handle, width, height, lay_name); ++ new_sprite->num_frames++; + } + + g_object_unref(file_handle); diff --git a/t4kcommon-0.1.1-libpng15.patch b/t4kcommon-0.1.1-libpng15.patch new file mode 100644 index 0000000..59936d6 --- /dev/null +++ b/t4kcommon-0.1.1-libpng15.patch @@ -0,0 +1,20 @@ +diff --git a/src/t4k_loaders.c b/src/t4k_loaders.c +index 7248e35..61fe63f 100644 +--- a/src/t4k_loaders.c ++++ b/src/t4k_loaders.c +@@ -1028,12 +1028,9 @@ static int do_png_save(FILE * fi, const char *const fname, SDL_Surface * surf) + { + png_init_io(png_ptr, fi); + +- info_ptr->width = surf->w; +- info_ptr->height = surf->h; +- info_ptr->bit_depth = 8; +- info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA; +- info_ptr->interlace_type = 1; +- info_ptr->valid = 0; /* will be updated by various png_set_FOO() functions */ ++ png_set_IHDR(png_ptr, info_ptr, surf->w, surf->h, 8, ++ PNG_COLOR_TYPE_RGB_ALPHA, 1, ++ PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); + + png_set_sRGB_gAMA_and_cHRM(png_ptr, info_ptr, + PNG_sRGB_INTENT_PERCEPTUAL); diff --git a/t4kcommon-0.1.1-menu_font_size.patch b/t4kcommon-0.1.1-menu_font_size.patch new file mode 100644 index 0000000..f46824b --- /dev/null +++ b/t4kcommon-0.1.1-menu_font_size.patch @@ -0,0 +1,13 @@ +diff --git a/src/t4k_menu.c b/src/t4k_menu.c +index b1ed842..96f4f35 100644 +--- a/src/t4k_menu.c ++++ b/src/t4k_menu.c +@@ -151,7 +151,7 @@ SDL_Surface** render_buttons(MenuNode* menu, bool selected); + char* find_title_length(MenuNode* menu, int* length); + char* find_longest_text(MenuNode* menu, int* length); + int find_longest_menu_page(MenuNode* menu); +-void set_font_size(); ++void set_font_size(bool uniform); + void prerender_menu(MenuNode* menu); + int min(int a, int b); + int max(int a, int b); diff --git a/t4kcommon-0.1.1-missing_texts.patch b/t4kcommon-0.1.1-missing_texts.patch new file mode 100644 index 0000000..798bc79 --- /dev/null +++ b/t4kcommon-0.1.1-missing_texts.patch @@ -0,0 +1,28 @@ +diff --git a/src/t4k_sdl.c b/src/t4k_sdl.c +index bba1a53..99653f9 100644 +--- a/src/t4k_sdl.c ++++ b/src/t4k_sdl.c +@@ -1441,17 +1441,18 @@ SDL_Surface* T4K_BlackOutline(const char* t, int size, SDL_Color* c) + + dstrect.x = 1; + dstrect.y = 1; +- SDL_BlitSurface(white_letters, NULL, bg, &dstrect); +- SDL_FreeSurface(white_letters); ++ /*SDL_BlitSurface(white_letters, NULL, bg, &dstrect); ++ SDL_FreeSurface(white_letters);*/ + + /* --- Convert to the screen format for quicker blits --- */ +- SDL_SetColorKey(bg, SDL_SRCCOLORKEY|SDL_RLEACCEL, color_key); +- out = SDL_DisplayFormatAlpha(bg); ++ /*SDL_SetColorKey(bg, SDL_SRCCOLORKEY|SDL_RLEACCEL, color_key); ++ out = SDL_DisplayFormatAlpha(bg);*/ + SDL_FreeSurface(bg); + + DEBUGMSG(debug_sdl, "\nLeaving T4K_BlackOutline(): \n"); + +- return out; ++ /*return out;*/ ++ return white_letters; + } + + diff --git a/t4kcommon-0.1.1-wrapped_lines.patch b/t4kcommon-0.1.1-wrapped_lines.patch new file mode 100644 index 0000000..be3937f --- /dev/null +++ b/t4kcommon-0.1.1-wrapped_lines.patch @@ -0,0 +1,13 @@ +diff --git a/src/t4k_common.h b/src/t4k_common.h +index d4676e7..27e635c 100644 +--- a/src/t4k_common.h ++++ b/src/t4k_common.h +@@ -239,7 +239,7 @@ MFStrategy; + #define MAX_LINES 128 //!< Maximum lines to wrap. + #define MAX_LINEWIDTH 256 //!< Maximum characters of each line. + +-char wrapped_lines[MAX_LINES][MAX_LINEWIDTH]; //!< Global buffer for wrapped lines. ++extern char wrapped_lines[MAX_LINES][MAX_LINEWIDTH]; //!< Global buffer for wrapped lines. + + //TODO separate headers for different areas a la SDL? + diff --git a/t4kcommon.spec b/t4kcommon.spec new file mode 100644 index 0000000..3dc566a --- /dev/null +++ b/t4kcommon.spec @@ -0,0 +1,110 @@ +Name: t4kcommon +Version: 0.1.1 +Release: 2mamba +Summary: A library of code shared between tuxmath and tuxtype +Group: System/Libraries +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: https://github.com/tux4kids/t4kcommon +Source: https://github.com/tux4kids/t4kcommon.git/upstream%2f%{version}/t4kcommon-%{version}.tar.bz2 +Patch0: t4kcommon-0.1.1-libpng15.patch +Patch1: t4kcommon-0.1.1-menu_font_size.patch +Patch2: t4kcommon-0.1.1-missing_texts.patch +Patch3: t4kcommon-0.1.1-wrapped_lines.patch +Patch4: t4kcommon-0.1.1-debian_bugfix.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libSDL-devel +BuildRequires: libSDL_Pango-devel +BuildRequires: libSDL_image-devel +BuildRequires: libSDL_mixer-devel +BuildRequires: libSDL_net-devel +BuildRequires: libcairo-devel +BuildRequires: libdirectfb-devel +BuildRequires: libgdk-pixbuf-devel +BuildRequires: libglib-devel +BuildRequires: libharfbuzz-devel +BuildRequires: libpango-devel +BuildRequires: libpng-devel +BuildRequires: librsvg-devel +BuildRequires: libts-devel +BuildRequires: libxml2-devel +BuildRequires: libz-devel +## AUTOBUILDREQ-END +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description +A library of code shared between tuxmath and tuxtype. + +%package -n lib%{name} +Group: System/Libraries +Summary: A library of code shared between tuxmath and tuxtype +Provides: libt4k_common +Obsoletes: libt4k_common < 0.1.1-2mamba +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description -n lib%{name} +A library of code shared between tuxmath and tuxtype. + +%package -n lib%{name}-devel +Group: Development/Libraries +Summary: Static libraries and headers for %{name} +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} +Provides: libt4k_common-devel +Obsoletes: libt4k_common-devel < 0.1.1-2mamba + +%description -n lib%{name}-devel +A library of code shared between tuxmath and tuxtype. +This package contains static libraries and header files needed for development. + +%debug_package + +%prep +%setup -q +%patch0 -p1 -b .libpng15 +%patch1 -p1 -b .menu_font_size +%patch2 -p1 -b .missing_texts +%patch3 -p1 -b .wrapped_lines +%patch4 -p1 -b .debian_bugfix + +%build +%configure + +%make + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post -n lib%{name} -p /sbin/ldconfig +%postun -n lib%{name} -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%dir %{_datadir}/t4k_common +%{_datadir}/t4k_common/images/menu/* + +%files -n lib%{name} +%defattr(-,root,root) +%{_libdir}/libt4k_common.so.* +%doc COPYING + +%files -n lib%{name}-devel +%defattr(-,root,root) +%{_includedir}/t4k_*.h +%{_libdir}/libt4k_common.a +%{_libdir}/libt4k_common.so +%{_libdir}/pkgconfig/t4k_common.pc +%doc README + +%changelog +* Sun Nov 27 2022 Silvan Calarco 0.1.1-2mamba +- renamed from libt4k_common and updated sources + +* Tue Jul 26 2011 Silvan Calarco 0.1.1-1mamba +- package created by autospec