Sophie

Sophie

distrib > Mageia > 3 > x86_64 > media > core-release-src > by-pkgid > 92b18710c46498ce2c389465b2c202fa > files > 3

fmj-20110107-4.mga3.src.rpm

Summary:	Free replacement for the JMF (Java Media Framework)
Name:		fmj
# Could need an epoch at some point... just updated from 2007* to 2011*
Version:	20110107
Release:	%mkrel 4
License:	LGPLv3
Group:		Development/Java
URL:		http://fmj-sf.net/
# cvs -d:pserver:anonymous@fmj.cvs.sourceforge.net:/cvsroot/fmj login
# cvs -z3 -d:pserver:anonymous@fmj.cvs.sourceforge.net:/cvsroot/fmj co -P fmj
# cp -far fmj fmj-20110107
# find fmj-20110107 -name CVS -type d -exec rm -fr {} \; 2> /dev/null
# tar Jcf fmj-20110107.tar.xz fmj-20110107
Source0:	%{name}-%{version}.tar.xz
Source1:	%{name}.png
Requires:	gstreamer0.10-ffmpeg
Requires:	gstreamer0.10-plugins-base
Requires:	gstreamer0.10-plugins-good
Requires:	gstreamer0.10-plugins-ugly
Requires:	ffmpeg-java
Requires:	java >= 1.5
Requires:	jlayer
Requires:	jorbis
Requires:	jpackage-utils >= 1.5
Requires:	jre >= 1.5
Requires:	jspeex
Requires:	liquidlnf
Requires:	mp3spi
Requires:	theora-java
Requires:	tritonus
Requires:	vorbisspi
BuildRequires:	ant
BuildRequires:	ffmpeg-java
BuildRequires:	gstreamer0.10-devel
BuildRequires:	java-rpmbuild >= 1.5
BuildRequires:	jlayer
BuildRequires:	jorbis
BuildRequires:	jspeex
BuildRequires:	junit
BuildRequires:	jpackage-utils >= 1.5
BuildRequires:	mp3spi
BuildRequires:	theora-java
BuildRequires:	tritonus-shared
BuildRequires:	update-alternatives
BuildRequires:	vorbisspi
BuildRequires:	xml-commons-apis
BuildRoot:	%{_tmppath}/%{name}-%{version}-buildroot

%description
FMJ is an open-source project with the goal of providing a
replacement or alternative to Java Media Framework (JMF).

It aims to produce a single API/Framework which can be used to
capture, playback, process and stream media across multiple
platforms.

%package javadoc
Summary:	Javadoc for fmj
Group:		Development/Java

%description javadoc
Javadoc for fmj.

%package demo
Summary:	Some examples for fmj
Group:		Development/Java
Requires:	java-devel >= 1.5
Requires:	%{name}

%description demo
Some examples (javacode) for fmj.

%prep
%setup -q
# the build.xml needs every time a rediff, so use sed instead of a patch ... :)
%__sed -i -e 's|<src path="src.ffmpeg-java"/>||g' \
	build.xml
%__sed -i -e 's|<fileset dir="src.ffmpeg-java"/>||g' \
	build.xml
%__sed -i -e 's|<src path="src.theora-java"/>||g' \
	build.xml
%__sed -i -e 's|<fileset dir="src.theora-java"/>||g' \
	build.xml

%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/ffmpeg-java.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/jl1.0.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/tritonus_share.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/mp3spi1.9.4.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/jorbis-0.0.15.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/jogg-0.0.7.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/vorbisspi1.0.2.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/jspeex.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/theora-java.jar" />||g' \
	build.xml
%__sed -i -e 's|<copy todir="${dist}/lib" file="lib/jheora-patch.jar" />||g' \
	build.xml

# prebuilt libraries w/o sources :\
%__sed -i -e 's|<copy todir="${dist}/native/.*" file="nativelib/.*"/>||g' \
	build.xml

# unneeded windows/mac files
%__sed -i -e 's|<copy tofile="${dist}/fmjstudio.bat" file="sh/win32/x86/fmjstudio.bat" />||g' \
	build.xml
%__sed -i -e 's|<copy tofile="${dist}/fmjregistry.bat" file="sh/win32/x86/fmjregistry.bat" />||g' \
	build.xml
%__sed -i -e 's|<copy tofile="${dist}/fmjplay.bat" file="sh/win32/x86/fmjplay.bat" />||g' \
	build.xml
%__sed -i -e 's|<copy tofile="${dist}/fmjtranscode.bat" file="sh/win32/x86/fmjtranscode.bat" />||g' \
	build.xml
%__sed -i -e 's|<copy tofile="${dist}/fmjstudio-macosx-universal.sh" file="sh/macosx/universal/fmjstudio.sh" />||g' \
	build.xml
%__sed -i -e 's|<copy tofile="${dist}/fmjregistry-macosx-universal.sh" file="sh/macosx/universal/fmjregistry.sh" />||g' \
	build.xml
%__sed -i -e 's|<copy tofile="${dist}/fmjplay-macosx-universal.sh" file="sh/macosx/universal/fmjplay.sh" />||g' \
	build.xml
%__sed -i -e 's|<copy tofile="${dist}/fmjtranscode-macosx-universal.sh" file="sh/macosx/universal/fmjtranscode.sh" />||g' \
	build.xml

# adjust classpath for existing  jar-files
%__sed -i -e 's|lib/ffmpeg-java.jar|%{_javadir}/fmj/ffmpeg-java.jar|g' \
	build.xml
%__sed -i -e 's|lib/jl1.0.jar|%{_javadir}/jl.jar|g' \
	build.xml
%__sed -i -e 's|lib/tritonus_share.jar|%{_javadir}/tritonus_share.jar|g' \
	build.xml
%__sed -i -e 's|lib/mp3spi1.9.4.jar|%{_javadir}/mp3spi.jar|g' \
	build.xml
%__sed -i -e 's|lib/jorbis-0.0.15.jar|%{_javadir}/jorbis.jar|g' \
	build.xml
%__sed -i -e 's|lib/jogg-0.0.7.jar|%{_javadir}/jogg.jar|g' \
	build.xml
%__sed -i -e 's|lib/vorbisspi1.0.2.jar|%{_javadir}/vorbisspi.jar|g' \
	build.xml
%__sed -i -e 's|lib/jspeex.jar|%{_javadir}/jspeex.jar|g' \
	build.xml
%__sed -i -e 's|lib/junit.jar|%{_javadir}/junit.jar|g' \
	build.xml
%__sed -i -e 's|lib/theora-java.jar|%{_javadir}/fmj/theora-java.jar|g' \
	build.xml
%__sed -i -e 's|lib/jheora-patch.jar|%{_javadir}/fmj/jheora-patch.jar|g' \
	build.xml
%__sed -i -e 's|build-ds,build-qt|build-ds|g' \
	build.xml

# remove packaged jar-files
for i in ffmpeg-java jl jogg jorbis jspeex jheora-patch junit mp3spi vorbisspi theora-java tritonus_share; do
	%__rm lib/$i*.jar
done

# remove windows and mac stuff
%__rm -r nativelib/win32-x86
%__rm -r sh/win32
%__rm -r sh/macosx

# adjust path for the samples
%__sed -i -e 's|samplemedia|%{_datadir}/%{name}|g' \
	src.fmjstudio/net/sf/fmj/ui/application/PlayerPanel.java

# adjust path for logging.properties
%__sed -i -e 's|logging.properties|%{_javadir}/%{name}/logging.properties|g' \
	src/net/sf/fmj/utility/FmjStartup.java

%build
export LANG=C
export CLASSPATH=$(build-classpath tritonus/tritonus-shared)
%ant -Dbuild.sysclasspath=first dist

%install
pushd build/dist/%{name}
	# jar
	%__install -dm 755 %{buildroot}%{_javadir}/%{name}
	for i in %{name} %{name}-applet %{name}-nojmf; do
		%__install -pm 644 $i.jar \
			%{buildroot}%{_javadir}/%{name}/$i-%{version}.jar
	done
	pushd %{buildroot}%{_javadir}/%{name}
		for jar in *-%{version}*; do
			ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`
		done
	popd
	
	# other jars
	%__install -dm 755 %{buildroot}%{_javadir}/%{name}/lib
	%__install -pm 644 lib/*.jar \
		%{buildroot}%{_javadir}/%{name}/lib
	
	# logging.properties
	%__install -pm 644 *.properties \
		%{buildroot}%{_javadir}/%{name}
	
	# native libs
	#%__install -dm 755 %{buildroot}%{_libdir}/%{name}
	#%ifnarch x86_64
    #		%__install -pm 644 native/linux-x86/*.so \
	#		%{buildroot}%{_libdir}/%{name}
	# %else
	#	%__install -pm 644 native/linux-amd64/*.so \
	#		%{buildroot}%{_libdir}/%{name}
	# %endif
	# fmj tries to load libgstreamer-0.10.so, so to avoid devel-package ...
	#pushd %{buildroot}%{_libdir}/%{name}
	#ln -s %{_libdir}/libgstreamer-0.10.so.0 libgstreamer-0.10.so
	#popd
	
	# sample-data
	%__install -dm 755 %{buildroot}%{_datadir}/%{name}
	%__install -pm 644 samplemedia/* \
		%{buildroot}%{_datadir}/%{name}
popd

pushd build
	# javadoc
	%__install -dm 755 %{buildroot}%{_javadocdir}/%{name}-%{version}
	mkdir -p doc; touch doc/empty
	%__cp -pr doc/* \
		%{buildroot}%{_javadocdir}/%{name}-%{version}
	ln -s %{name}-%{version} %{buildroot}%{_javadocdir}/%{name} 
popd

# examples/demos
%__cp -R src.examples.* \
	%{buildroot}%{_datadir}/%{name}
%__install -m 644 applet.example/* \
	%{buildroot}%{_datadir}/%{name}

# startscripts for fmj-*
for i in play registry studio transcode; do
	%__cat > %{name}-$i.sh << EOF
#!/bin/sh

VERBOSE=1
. %{_javadir}-utils/java-functions

set_javacmd
check_java_env
set_jvm_dirs
set_options -Djava.library.path="@LIBRARY_PATH@" -Djava.util.logging.config.file="%{_javadir}/%{name}/logging.properties"

CLASSPATH=\`build-classpath %{name} jl jorbis jspeex liquidlnf mp3spi tritonus vorbisspi\`
MAIN_CLASS="net.sf.fmj.@BASE_CLASS@.@MAIN_CLASS@"
export LD_LIBRARY_PATH=@LIBRARY_PATH@:\$LD_LIBRARY_PATH
run "\$1"
EOF
done

%__install -dm 755 %{buildroot}%{_bindir}
%__install -m 755 %{name}-*.sh \
	%{buildroot}%{_bindir}

# set main-class
%__sed -i -e 's|@MAIN_CLASS@|FmjPlay|g' \
	%{buildroot}%{_bindir}/%{name}-play.sh
%__sed -i -e 's|@MAIN_CLASS@|FmjRegistry|g' \
	%{buildroot}%{_bindir}/%{name}-registry.sh
%__sed -i -e 's|@MAIN_CLASS@|FmjStudio|g' \
	%{buildroot}%{_bindir}/%{name}-studio.sh
%__sed -i -e 's|@MAIN_CLASS@|FmjTranscode|g' \
	%{buildroot}%{_bindir}/%{name}-transcode.sh

# set base-class
%__sed -i -e 's|@BASE_CLASS@|apps.play|g' \
	%{buildroot}%{_bindir}/%{name}-play.sh
%__sed -i -e 's|@BASE_CLASS@|apps.transcode|g' \
	%{buildroot}%{_bindir}/%{name}-transcode.sh
%__sed -i -e 's|@BASE_CLASS@|ui|g' \
	%{buildroot}%{_bindir}/%{name}-registry.sh
%__sed -i -e 's|@BASE_CLASS@|ui|g' \
	%{buildroot}%{_bindir}/%{name}-studio.sh

# set library-paths
for i in registry studio transcode play; do
%__sed -i -e 's|@LIBRARY_PATH@|%{_libdir}/%{name}:%{_libdir}|g' \
	%{buildroot}%{_bindir}/%{name}-$i.sh
done

# icons
%__install -dm 755 %{buildroot}%{_datadir}/pixmaps
%__install -m 644 %{SOURCE1} \
	%{buildroot}%{_datadir}/pixmaps

%clean
[ -d %{buildroot} -a "%{buildroot}" != "" ] && %__rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc *.txt LICENSE README
%{_bindir}/%{name}-*.sh
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/*.jar
%{_javadir}/%{name}/*.properties
%dir %{_javadir}/%{name}/lib
%{_javadir}/%{name}/lib/*.jar
#%dir %{_libdir}/%{name}
#%{_libdir}/%{name}/*.so
%exclude %{_datadir}/%{name}/src.examples.*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/*
%{_datadir}/pixmaps/*.png

%files javadoc
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}-%{version}
%doc %{_javadocdir}/%{name}

%files demo
%defattr(-,root,root)
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/src.examples.*/*




%changelog

* Fri Jan 11 2013 umeabot <umeabot> 20110107-4.mga3
+ Revision: 350605
- Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild

* Sun Mar 13 2011 nanardon <nanardon> 20110107-3.mga1
+ Revision: 70659
- don't provide pre-built librairies (linked over old libraries)

* Sat Mar 05 2011 grenoya <grenoya> 20110107-2.mga1
+ Revision: 64921
- imported package fmj