diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d04e53e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vdr-text2skin-1.1cvs-20051217.tgz diff --git a/Makefile b/Makefile deleted file mode 100644 index 241edc1..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: vdr-text2skin -# $Id$ -NAME := vdr-text2skin -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/sources b/sources index e69de29..d543fcb 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +f59bba08b3ded6c6a044e715e1669e0d vdr-text2skin-1.1cvs-20051217.tgz diff --git a/vdr-text2skin-1.1cvs-cvsfixes.patch b/vdr-text2skin-1.1cvs-cvsfixes.patch new file mode 100644 index 0000000..d5c087c --- /dev/null +++ b/vdr-text2skin-1.1cvs-cvsfixes.patch @@ -0,0 +1,57 @@ +--- status.c 3 Jun 2005 08:53:13 -0000 1.10 ++++ status.c 17 Mar 2006 18:25:57 -0000 1.11 +@@ -29,14 +29,16 @@ + mNextRecording = 0; + } + +-void cText2SkinStatus::Replaying(const cControl* /*Control*/, const char *Name) { ++void cText2SkinStatus::Replaying(const cControl* /*Control*/, const char *Name, ++ const char *FileName, bool On) ++{ + Dprintf("cText2SkinStatus::Replaying(%s)\n", Name); + eReplayMode oldMode = mReplayMode; + + if (mRender != NULL) + mRender->UpdateLock(); + +- if (Name != NULL) { ++ if (On) { + mReplayMode = replayMPlayer; + if (strlen(Name) > 6 && Name[0]=='[' && Name[3]==']' && Name[5]=='(') { + int i; +@@ -83,7 +85,8 @@ + } + } + +-void cText2SkinStatus::Recording(const cDevice *Device, const char *Name) ++void cText2SkinStatus::Recording(const cDevice *Device, const char *Name, ++ const char *FileName, bool On) + { + if (mRender != NULL) + mRender->UpdateLock(); +--- status.h 3 Jun 2005 08:53:13 -0000 1.7 ++++ status.h 17 Mar 2006 18:25:57 -0000 1.8 +@@ -39,8 +39,10 @@ + int mLastLanguage; + + protected: +- virtual void Replaying(const cControl *Control, const char *Name); +- virtual void Recording(const cDevice *Device, const char *Name); ++ virtual void Replaying(const cControl *Control, const char *Name, ++ const char *FileName, bool On); ++ virtual void Recording(const cDevice *Device, const char *Name, ++ const char *FileName, bool On); + virtual void OsdClear(void); + + public: +--- xml/xml.c 19 Dec 2004 22:03:49 -0000 1.1.1.1 ++++ xml/xml.c 4 Sep 2006 20:51:06 -0000 1.3 +@@ -38,7 +38,7 @@ + buffer = new char [size]; + f.read(buffer, size); + f.close(); +- data = buffer; ++ data.assign(buffer, size); + delete[] buffer; + nodestartcb = NULL; + nodeendcb = NULL; diff --git a/vdr-text2skin-1.1cvs-freetype22.patch b/vdr-text2skin-1.1cvs-freetype22.patch new file mode 100644 index 0000000..04547c8 --- /dev/null +++ b/vdr-text2skin-1.1cvs-freetype22.patch @@ -0,0 +1,35 @@ +Index: graphtft/font.c +=================================================================== +RCS file: /var/cvsroot/text2skin/graphtft/font.c,v +retrieving revision 1.4 +diff -u -r1.4 font.c +--- graphtft/font.c 30 Jan 2005 18:09:42 -0000 1.4 ++++ graphtft/font.c 19 Nov 2006 15:04:06 -0000 +@@ -139,20 +139,21 @@ + error = FT_Load_Glyph( _face, glyph_index, FT_LOAD_DEFAULT ); + if ( error ) continue; /* ignore errors */ + +- // convert to a mono bitmap +- error = FT_Render_Glyph( _face->glyph, ft_render_mode_mono ); +- if ( error ) continue; +- + // now, convert to vdr font data + int width = (_slot->metrics.horiAdvance / 64) + 1; + int bearingX = (_slot->metrics.horiBearingX / 64) +1; + width = (width > (int)sizeof(cFont::tPixelData) * 8) ? (((int)sizeof(cFont::tPixelData) * 8)-2) :width ; +- int top = _slot->bitmap_top; +- int y_off = Size - top; + + font_data[(num_char_array*num_rows)+0]=width; + font_data[(num_char_array*num_rows)+1]=num_rows_global; + ++ // convert to a mono bitmap ++ error = FT_Render_Glyph( _face->glyph, ft_render_mode_mono ); ++ if ( error ) continue; ++ ++ int top = _slot->bitmap_top; ++ int y_off = Size - top; ++ + unsigned char *bmp = _slot->bitmap.buffer; + + for (int y = 0; y < _slot->bitmap.rows; ++y , y_off++) { diff --git a/vdr-text2skin-1.1cvs-skindir.patch b/vdr-text2skin-1.1cvs-skindir.patch new file mode 100644 index 0000000..28cbc35 --- /dev/null +++ b/vdr-text2skin-1.1cvs-skindir.patch @@ -0,0 +1,45 @@ +--- text2skin-1.1-cvs/README.de~ 2004-12-20 00:03:08.000000000 +0200 ++++ text2skin-1.1-cvs/README.de 2006-11-19 18:42:54.000000000 +0200 +@@ -77,6 +77,9 @@ + Wo die Skins hingehören: + ------------------------ + ++*** rpm package note: this text2skin package has been patched to load skins ++*** from /usr/share/vdr/text2skin instead of the path documented below. ++ + Wie Sie vielleicht wissen, hat VDR einen Unterordner "plugins" innerhalb seines + Konfigurationsordners, in dem alle Dateien, die zu Plugins gehören, enthalten + sein sollten. Wenn Sie nicht wissen, wo das sein könnte, schauen Sie in dem +--- text2skin-1.1-cvs/README~ 2005-01-31 16:39:45.000000000 +0200 ++++ text2skin-1.1-cvs/README 2006-11-19 18:42:36.000000000 +0200 +@@ -82,6 +82,9 @@ + Where to put the skins: + ----------------------- + ++*** rpm package note: this text2skin package has been patched to load skins ++*** from /usr/share/vdr/text2skin instead of the path documented below. ++ + As you might know, VDR has a subfolder "plugins" inside it's configuration + folder, where all plugin-related files should reside. If you don't know, where + this could be, look into the folder you gave to VDR with the -v parameter +@@ -109,6 +112,9 @@ + Where to put the fonts: + ----------------------- + ++*** rpm package note: this text2skin package has been patched to load fonts ++*** from /usr/share/vdr/text2skin instead of the path documented below. ++ + Font files (.ttf) can be placed either in the directory of the skin itself or + in a subfolder fonts inside the text2skin directory. + +--- text2skin-1.1-cvs/common.c~ 2005-01-07 23:46:51.000000000 +0200 ++++ text2skin-1.1-cvs/common.c 2006-11-19 18:38:31.000000000 +0200 +@@ -8,7 +8,7 @@ + const std::string &SkinPath(void) + { + // should never change +- static std::string path = cPlugin::ConfigDirectory(PLUGIN_NAME_I18N); ++ static std::string path = "/usr/share/vdr/text2skin"; + return path; + } + diff --git a/vdr-text2skin.conf b/vdr-text2skin.conf new file mode 100644 index 0000000..dd76ad0 --- /dev/null +++ b/vdr-text2skin.conf @@ -0,0 +1,5 @@ +# Configuration snippet for vdr-text2skin -*- sh -*- +# +# Add command line options to pass to the text2skin plugin to PLUGIN_OPTIONS. + +PLUGIN_OPTIONS="" diff --git a/vdr-text2skin.spec b/vdr-text2skin.spec new file mode 100644 index 0000000..3e074ee --- /dev/null +++ b/vdr-text2skin.spec @@ -0,0 +1,130 @@ +%define pname text2skin +%define plugindir %(vdr-config --plugindir 2>/dev/null || echo ERROR) +%define configdir %(vdr-config --configdir 2>/dev/null || echo ERROR) +%define datadir %(vdr-config --datadir 2>/dev/null || echo ERROR) +%define apiver %(vdr-config --apiversion 2>/dev/null || echo ERROR) + +%define cvs 20051217 + +Name: vdr-%{pname} +Version: 1.1 +Release: 18.%{cvs}cvs%{?dist} +Summary: OSD skin plugin for VDR + +Group: Applications/Multimedia +License: GPL +URL: http://linux.kompiliert.net/index.php?view=text2skin +#Source0: http://linux.kompiliert.net/files/%{name}-%{version}.tgz +Source0: http://linux.kompiliert.net/contrib/%{name}-%{version}cvs-%{cvs}.tgz +Source1: %{name}.conf +Patch0: %{name}-1.1cvs-cvsfixes.patch +Patch1: %{name}-1.1cvs-freetype22.patch +Patch2: %{name}-1.1cvs-skindir.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%if 0%{?_with_imagemagick:1} +BuildRequires: ImageMagick-c++-devel +%else +BuildRequires: imlib2-devel +%endif +BuildRequires: freetype-devel +BuildRequires: vdr-devel >= 1.3.47 +BuildRequires: sed >= 3.95 +BuildRequires: which +Requires: vdr(abi) = %{apiver} + +%description +This plugin is designed to load and interpret a set of files +describing the layout of VDR's on screen display and to make this +"skin" available to VDR via Setup -> OSD in the main menu. Of course +it is possible to load more than one text-based skin this way and to +choose between them while running VDR. All skins may be themeable +(you can create your own color-theme) and translateable as the author +of the skin wishes. + + +%prep +%setup -q -c +cd text2skin +%patch0 -p0 +%patch1 -p0 +sed -e 's|/usr/share/vdr/|%{datadir}/|' %{PATCH2} | patch -p1 +find . -depth -type d -name CVS | xargs rm -r +for f in HISTORY README.de Docs/*.txt ; do + iconv -f iso-8859-1 -t utf-8 $f > $f.utf8 ; mv $f.utf8 $f +done +chmod -x contrib/*.pl +sed -i -e /strip/d -e /O2/d Makefile +sed -i -e '/^DVBDIR/d' -e 's|-I$(DVBDIR)\(/linux\)\?/include||g' Makefile +sed -i -e s/VDRVERSION/APIVERSION/g Makefile +cd .. + + +%build +opts= +%if 0%{!?_with_imagemagick:1} +opts="HAVE_IMLIB2=1 HAVE_IMAGEMAGICK=" +%endif +make -C text2skin %{?_smp_mflags} $opts LIBDIR=. VDRDIR=%{_libdir}/vdr all + + +%install +rm -rf $RPM_BUILD_ROOT +cd text2skin +install -dm 755 $RPM_BUILD_ROOT%{plugindir} +install -pm 755 libvdr-%{pname}.so.%{apiver} $RPM_BUILD_ROOT%{plugindir} +install -Dpm 644 %{SOURCE1} \ + $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr-plugins.d/%{pname}.conf +cd .. +install -dm 755 $RPM_BUILD_ROOT%{datadir}/text2skin/fonts + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%pre +if [ $1 -gt 1 -a -d %{configdir}/plugins/text2skin ] ; then + # Migrate skins (can't overwrite a dir with a symlink) + mkdir -p %{datadir}/text2skin && \ + cp -a %{configdir}/plugins/text2skin/* %{datadir}/text2skin || : + rm -rf %{configdir}/plugins/text2skin +fi + + +%files +%defattr(-,root,root,-) +%doc text2skin/CONTRIBUTORS text2skin/COPYING text2skin/HISTORY +%doc text2skin/README text2skin/Docs/*.txt text2skin/contrib/skin_to_10.pl +%lang(de) %doc text2skin/README.de +%config(noreplace) %{_sysconfdir}/sysconfig/vdr-plugins.d/%{pname}.conf +%{plugindir}/libvdr-%{pname}.so.%{apiver} +%{datadir}/text2skin/ + + +%changelog +* Sun Apr 8 2007 Ville Skyttä - 1.1-18.20051217cvs +- Grab potential XML parse buffer overflow fix from upstream CVS. + +* Sun Nov 19 2006 Ville Skyttä - 1.1-16.20051217cvs +- Migrate real skins directory to /usr/share/vdr/text2skin. +- Patch for freetype 2.2 compatibility. + +* Sat Nov 4 2006 Ville Skyttä - 1.1-15.20051217 +- Build with imlib2 instead of imagemagick by default due to #212478. +- Build for VDR 1.4.4. + +* Fri Oct 06 2006 Thorsten Leemhuis 1.1-14 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Sat Sep 23 2006 Ville Skyttä - 1.1-13.20051217 +- Rebuild for VDR 1.4.3. + +* Sun Aug 6 2006 Ville Skyttä - 1.1-12.20051217 +- Rebuild for VDR 1.4.1-3. + +* Sun Jun 11 2006 Ville Skyttä - 1.1-11.20051217 +- Rebuild for VDR 1.4.1. + +* Sun Apr 30 2006 Ville Skyttä - 1.1-10.20051217 +- Rebuild for VDR 1.4.0.