%define name freevo %define version 1.4.1 %define release 13mdk %define _cachedir /var/cache %define py_ver %(python -c 'import sys; print sys.version[:3]') # Set default freevo parameters %define display x11 Summary: Freevo is an open-source digital video jukebox Name: %{name} Version: %{version} Release: %{release} URL: http://freevo.sourceforge.net/ Source0: %{name}-%{version}.tar.gz Source1: redhat-boot_config Source2: local_conf.py Source3: freevo-crystal-theme-0.5.tar.gz Source4: firebird.py Source5: usbstorage.py Source6: pinnacle_PCTV Source7: freevo_tvgrab Source8: mute Source9: unmute Patch1: %{name}-resolution.patch.bz2 Patch2: %{name}-detachbar.patch.bz2 Patch3: %{name}-supermount.patch.bz2 Patch4: %{name}-usbstorage.patch.bz2 Patch5: %{name}-webserver.patch.bz2 Patch6: %{name}-boot.patch.bz2 Patch7: %{name}-volume.patch.bz2 Patch8: %{name}-deinterlace.patch.bz2 Patch9: %{name}-imdb_lookup_fix.patch.bz2 Patch10: %{name}-manualrecord.patch.bz2 License: GPL Group: Video Packager: Erwan Velu <erwan@mandrakesoft.com> PreReq: rpm-helper BuildRoot: %{_tmppath}/%{name}-buildroot BuildRequires: docbook-utils, wget,python >= 2.2, pygame >= 1.5, python-twisted >= 1.1.0, python-imaging >= 1.1.4, python-mm >= 0.3 Requires: python >= 2.2, pygame >= 1.5, python-twisted >= 1.1.0, python-imaging >= 1.1.4, python-mm >= 0.3, python-lirc >= 0.0.4, mplayer, tvtime, xine-ui, xmltv, PyXML, libjpeg-progs, mencoder, cdparanoia, vorbis-tools, util-linux %description Freevo is a Linux application that turns a PC with a TV capture card and/or TV-out into a standalone multimedia jukebox/VCR. It builds on other applications such as xine, mplayer, tvtime and mencoder to play and record video and audio. Available rpmbuild rebuild options : --without: use_sysapps %prep rm -rf $RPM_BUILD_ROOT %setup -q %patch1 -p0 #%patch2 -p1 %patch3 -p0 %patch4 -p0 %patch5 -p0 %patch6 -p0 #%patch7 -p0 %patch8 -p0 %patch9 -p0 %patch10 -p0 %build find . -name CVS | xargs rm -rf find . -name ".cvsignore" |xargs rm -f find . -name "*.pyc" |xargs rm -f find . -name "*.pyo" |xargs rm -f find . -name "*.py" |xargs chmod 644 #./autogen.sh env CFLAGS="$RPM_OPT_FLAGS" python setup.py build mkdir -p %{buildroot}%{_sysconfdir}/freevo # The following is needed to let RPM know that the files should be backed up touch %{buildroot}%{_sysconfdir}/freevo/freevo.conf # boot scripts mkdir -p %{buildroot}%{_initrddir} mkdir -p %{buildroot}%{_bindir} install -m 644 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/freevo/boot_config mkdir -p %{buildroot}%{_cachedir}/freevo mkdir -p %{buildroot}%{_cachedir}/freevo/{thumbnails,audio} mkdir -p %{buildroot}%{_cachedir}/xmltv/logos chmod 777 %{buildroot}%{_cachedir}/{freevo,freevo/thumbnails,freevo/audio,xmltv,xmltv/logos} %install rm -rf $RPM_BUILD_ROOT/%{name}-%{version} mkdir -p %{buildroot}%{_initrddir} mkdir -p %{buildroot}/etc/freevo mkdir -p %{buildroot}%{_datadir}/%{name}/contrib mkdir -p %{buildroot}%{_docdir}/%{name}-%{version} mkdir -p %{buildroot}/tmp/%{name}/Videos mkdir -p %{buildroot}/etc/cron.weekly install %SOURCE5 $RPM_BUILD_DIR/%{name}-%{version}/src/image/plugins install %SOURCE5 $RPM_BUILD_DIR/%{name}-%{version}/src/audio/plugins install %SOURCE5 $RPM_BUILD_DIR/%{name}-%{version}/src/video/plugins install %SOURCE6 $RPM_BUILD_DIR/%{name}-%{version}/contrib/lirc python setup.py install %{?_without_compile_obj:--no-compile} --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES # Olivier Thauvin: I am not sure it's the good place for locales ! # cp -av i18n src %{buildroot}%{_datadir}/%{name} #cp -av contrib/examples contrib/fbcon contrib/xmltv %{buildroot}%{_prefix}/contrib cp -av contrib/lirc/ %{buildroot}/%{_datadir}/%{name}/contrib/ install -m 755 freevo %{buildroot}%{_datadir}/%{name} install -m 755 freevo_config.py %{buildroot}%{_datadir}/%{name} #find %{buildroot} -name "*.pyo" |xargs rm -f install %SOURCE2 $RPM_BUILD_ROOT/%{_sysconfdir}/freevo/local_conf.py install %SOURCE7 $RPM_BUILD_ROOT/etc/cron.weekly install %SOURCE8 $RPM_BUILD_ROOT%{_datadir}/%{name} install %SOURCE9 $RPM_BUILD_ROOT%{_datadir}/%{name} ####################### #Installing Initscripts ####################### #install -m 755 boot/freevo %{buildroot}%{_sysconfdir}/rc.d/init.d #install -m 755 boot/freevo_dep %{buildroot}%{_sysconfdir}/rc.d/init.d install -m 755 boot/recordserver %{buildroot}%{_initrddir}/freevo_recordserver install -m 755 boot/webserver %{buildroot}%{_initrddir}/freevo_webserver #install -m 755 boot/recordserver_init %{buildroot}%{_bindir}/freevo_recordserver_init #install -m 755 boot/webserver_init %{buildroot}%{_bindir}/freevo_webserver_init #################### # Installing Plugins #################### install %SOURCE4 $RPM_BUILD_ROOT/%{_libdir}/python%{py_ver}/site-packages/freevo/plugins ############### # Copying icons ############### install -D -m 644 $RPM_BUILD_DIR/%{name}-%{version}/share/icons/misc/freevo_app.png $RPM_BUILD_ROOT%{_liconsdir}/%{name}.png install -D -m 644 $RPM_BUILD_DIR/%{name}-%{version}/share/icons/misc/freevo_app.png $RPM_BUILD_ROOT%{_iconsdir}/%{name}.png install -D -m 644 $RPM_BUILD_DIR/%{name}-%{version}/share/icons/misc/freevo_app.png $RPM_BUILD_ROOT%{_miconsdir}/%{name}.png ##################### # Adding a menu entry #################### install -d -m 755 $RPM_BUILD_ROOT%{_menudir} cat >$RPM_BUILD_ROOT%{_menudir}/%{name} <<EOF ?package(%{name}):\ command="%{_bindir}/%{name}"\ needs="X11"\ icon="%{name}.png"\ section="Multimedia/Video"\ title="Freevo"\ longtitle="%{summary}" EOF #################### # About locales... # #################### find %buildroot/%_datadir/locale -name "*.po" -exec rm -f {} \; %find_lang %name #Installing additional Themes (cd $RPM_BUILD_ROOT/%{_datadir}/%{name} tar -xvzf %SOURCE3) %pre %_pre_useradd %{name} %{_datadir}/%{name} /bin/bash %post rm -rf /var/log/freevo 2>/dev/null %{update_menus} #Determining TV_NORM & CHANNEL_LIST from local clock ZONE=`grep "ZONE" /etc/sysconfig/clock | sed -e "s/^ZONE\=\(.*\)\/\(.*\)/\1/g"` CITY=`grep "ZONE" /etc/sysconfig/clock | sed -e "s/^ZONE\=\(.*\)\/\(.*\)/\2/g"` TV_NORM="ntsc" CHANNEL_LIST="us-cable" if [ "${CITY}" = "Paris" ]; then TV_NORM="secam" CHANNEL_LIST="france" else if [ "${ZONE}" = "Europe" ]; then TV_NORM="pal" CHANNEL_LIST="europe-west" fi fi #Determining current X configuration RESOLUTION=`xdpyinfo 2>/dev/null | grep dimensions | awk '{ print $2 }'` if [ "${RESOLUTION}" = "" ]; then RESOLUTION = "800x600" fi # Copy old local_conf.py to replace dummy file cd %{_datadir}/%{name} ./freevo setup --geometry=$RESOLUTION --display=%{display} \ --tv=${TV_NORM} --chanlist=${CHANNEL_LIST} \ %{!?_without_use_sysapps:--sysfirst} if [ ! -f /etc/freevo/lircrc ]; then ln -sf %{_datadir}/%{name}/contrib/lirc/pinnacle_PCTV /etc/freevo/lircrc fi; %_post_service freevo_webserver %_post_service freevo_recordserver %preun %_preun_service freevo_recordserver %_preun_service freevo_webserver %clean rm -rf $RPM_BUILD_ROOT %postun %{clean_menus} %_postun_userdel %{name} %files -f %name.lang %defattr(-,root,root) %doc BUGS COPYING ChangeLog FAQ INSTALL README TODO Docs local_conf.py.example %{_datadir}/%{name} %{_bindir}/freevo %{_iconsdir}/freevo.png %{_liconsdir}/freevo.png %{_miconsdir}/freevo.png %{_menudir}/freevo %config(noreplace) /etc/cron.weekly/* # Hu, even those files are need, tmpwatch will delete it !! #%attr(777,root,root) %dir /tmp/%{name}/Videos #%attr(777,root,root) %dir /tmp/%{name}/ %attr(777,root,root) %dir %{_cachedir}/freevo %attr(777,root,root) %dir %{_cachedir}/freevo/audio %attr(777,root,root) %dir %{_cachedir}/freevo/thumbnails %attr(777,root,root) %dir %{_cachedir}/xmltv %attr(777,root,root) %dir %{_cachedir}/xmltv/logos %dir %{_sysconfdir}/freevo %attr(644,root,root) %config(noreplace) %{_sysconfdir}/freevo/* %config(noreplace) %attr(755,root,root) %{_sysconfdir}/rc.d/init.d/* %{_libdir}/python%{py_ver}/site-packages/freevo %changelog * Thu Feb 26 2004 Olivier Thauvin <thauvin@aerov.jussieu.fr> 1.4.1-13mdk - Fix files list - %%find_lang * Sat Jan 31 2004 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-12mdk - Fixing manualrecord.py (31th doesn't exist) * Tue Jan 27 2004 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-11mdk - Imdb fix from Karee Brown * Wed Jan 07 2004 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-10mdk - Cleaning specs * Mon Dec 22 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-9mdk - Reverting patch7 - Adding mute & unmute scripts - Changing mencoder's call to use mute & unmute - Selecting 640x480 as default record geometry - /etc/freevo/local_conf.py must be in %config * Sun Dec 20 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-8mdk - Adding LAME configuration - Changing DIR_RECORD to /tmp/freevo/Videos - Desactivating freevo webserver in config file (service exists) - Imported VCR/TV section from cvs (mplayer/mencoder syntaxe will now match) - Activating slideshows - Activating LIRC - Adding PCTV mapping - Patch6: Changing initscript level (234) -> (2345) - Cleaning Buildroot on install - Adding weekly crontab for tv_grab - Adding nointerlacing by default - Patch7: Avoiding to reset LineIn, Mic, Igain (mencoder will record with nosound !) - Patch8: Video is desinterlaced on playback by default (smoother) * Thu Dec 18 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-7mdk - Removing fr sample configuration file - Adding cdbackup plugin by default - Adding autostarted plugins - Adding recording options - Adding initscripts for webserver & recorder - fixing initscripts to run webserver as user freevo * Wed Dec 17 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-6mdk - Adding usb-storage detection * Wed Dec 17 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-5mdk - Checking if /proc/ide/ entries exists :o) (guibo's bug) * Tue Dec 16 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-4mdk - A better detection of TimeZone (Non french users could'nt install freevo :( ) - Define a default resolution if X is not available - A clever way to determine the python version - A new sample configuration file - Supermount patch : cdrom mounted with /dev/hdx wasn't detected :( - Adding a default configuration file in /etc/freevo - Mon Dec 15 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-3mdk - More RSS feeds in local_py.conf.fr :) * Mon Dec 15 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-2mdk - Fixing buildrequires - More resolutions * Sun Dec 14 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.1-1mdk - New version from Dirk Meyer - Remove patch0 & patch1 not necessary anymore - Remove patch2 merged upstream - Remove patch3 merged upstream - Remove patch5 merged upstream - Readding src files - Adding a patch for a better detection of SCSI & IDE-SCSI drives (merged upstream) - Adding freevo menu entry - Adding crystal theme - Adding firebird module * Sun Dec 13 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.0-4mdk - Removing unecessary files - Fixing supermount regexp (thx pterjan, warly) * Sat Dec 12 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.0-3mdk - Removing Crappy patch - Deleting Remaining pyo files - French configuration if you are in Paris TimeZone - Adding new resolutions in setup (1024*768 & 1280*960) - Adding autodectection of current resolution - Adding French Radios :) - Adding sample local_conf.py for France * Thu Dec 11 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.0-2mdk - Strong cleanage in dependencies & spec file - Adding deps - Fixing "util" call * Thu Dec 11 2003 Erwan Velu <erwan@mandrakesoft.com> 1.4.0-1mdk - First Package - New version * Wed Oct 15 2003 TC Wan <tcwan@cs.usm.my> - Revised for binary package * Wed Oct 8 2003 TC Wan <tcwan@cs.usm.my> - Fixed boot scripts for RH 9, disabled freevo_dep since it's obsolete (?) * Fri Sep 26 2003 TC Wan <tcwan@cs.usm.my> - Removed testfiles from build since it's no longer part of the package Cleaned up conditional flags * Thu Sep 18 2003 TC Wan <tcwan@cs.usm.my> - Added supporting directories and files to package * Fri Sep 5 2003 TC Wan <tcwan@cs.usm.my> - Initial SPEC file for python site-packages installation