# Zekr RPM Spec file # # Made to follow Fedora packaging guideline as close as possible # Will try to be included in Fedora after blockers are resolved # # BLOCKER: # * jakarta-commons-configuration does not exist in Fedora repository # yet. Spacewalk people seems to be on this. # (status: https://fedorahosted.org/spacewalk/wiki/GettingPackagesIntoFedora) # * Quran data is NonFree - not possible to be in Fedora main repositories, # need a script to grab data from 3rd party source on-launch # (similar to how Quake3 and GnomeSword in Fedora grab their nonfree # data) # * Splash screen is nonfree, need to be replaced with a free image # Name: zekr Version: 0.7.1 Release: 3%{?dist} Summary: Open Source Quran study tool Group: User Interface/Desktops License: GPLv2+ and BSD URL: http://zekr.org # # Source tarball cleaned up to remove "Redistributable, # ,no-derivatives, with limitation", "Redistributable, non-commercial, # no-derivatives" and "Redistributable, non-commercial" # contents from upstream tarball. # # "Redistributable, no modification allowed" data and Free/OpenSource # licensed codes remains in the cleaned up package. # # Use %Source3 script to generate cleaned up tarball. # # cd ~/rpmbuild/SOURCES/ # wget http://downloads.sourceforge.net/zekr/zekr-%{version}-linux.tar.gz # zekr-clean.sh # # free contents stored in ~/rpmbuild/SOURCES/zekr-clean-%{version}.tar.bz2 # nonfree contents are stored in ~/rpmbuild/SOURCES/zekr-nonfree-%{version}.tar.bz2 # Source0: zekr-clean-%{version}.tar.bz2 Source1: zekr-launcher.in Source2: zekr.desktop Source3: zekr-clean.sh Source4: zekr-quran-data.autodlrc Patch0: zekr-quran-homedir.patch Patch1: zekr-buildxml.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch BuildRequires: jpackage-utils BuildRequires: ant java-devel >= 1:1.6.0 BuildRequires: velocity eclipse-swt log4j lucene lucene-contrib BuildRequires: jakarta-commons-logging jakarta-commons-lang jakarta-commons-io BuildRequires: jakarta-commons-collections jakarta-commons-codec BuildRequires: desktop-file-utils Requires: jpackage-utils Requires: java >= 1:1.6.0 Requires: velocity eclipse-swt log4j lucene lucene-contrib Requires: jakarta-commons-logging jakarta-commons-lang jakarta-commons-io Requires: jakarta-commons-collections jakarta-commons-codec Requires: xulrunner autodownloader Requires: kacst-fonts %description Zekr is an Open Source Quran study tool. This project is planned to be a universal, Open Source, and cross-platform application to perform most of the usual refers to the holy Quran. The main idea is to build an as generic as possible platform to accept different Quranic resources. %package javadoc Summary: Javadocs for %{name} Group: Development Documentation Requires: %{name} = %{version}-%{release} Requires: jpackage-utils %description javadoc This package contains the API documentation for %{name}. %prep %setup -q -n %{name} %patch1 -b .buildxml cp %PATCH0 . # set home folder related configs sed -i 's|text.quran.simple = $TEXT_DIR/quran/quran-simple.txt|text.quran.simple = {1}/text/quran/quran-simple.txt|' res/resource-path.properties sed -i 's|text.quran.uthmani = $TEXT_DIR/quran/quran-uthmani.txt|text.quran.simple = {1}/text/quran/quran-uthmani.txt|' res/resource-path.properties sed -i 's|text.quran.root = $META_DIR/quran-root.txt|text.quran.root = {1}/text/metadata/quran-root.txt|' res/resource-path.properties sed -i 's|audio.playlist.template = $AUDIO_DIR/playlist.vm|audio.playlist.template = {1}/audio/playlist.vm|' res/resource-path.properties sed -i 's|quran.props = $META_DIR/quran-properties.xml|quran.props = {1}/text/metadata/quran-properties.xml|' res/resource-path.properties sed -i 's|quran.props.l10n = $META_DIR/quran-properties-{1}.xml|quran.props.l10n = {1}/text/metadata/quran-properties-{2}.xml|' res/resource-path.properties sed -i 's|options.browser.useMozilla = false|options.browser.useMozilla = true|' res/config/config.properties # clean 3rd party jars # except jakarta-commons-configuration as it # does not exist in Fedora repositories yet #rm $(find lib/ -type f|grep -v commons-configuration) # delete compiled binary jar # rm dist/zekr.jar find -name '*.class' -exec rm -f '{}' \; %build ant -Dswt.jar=$(build-classpath swt.jar) \ -Dvelocity.jar=$(build-classpath velocity.jar) \ -Dlog4j.jar=$(build-classpath log4j.jar) \ -Dlucene-core.jar=$(build-classpath lucene.jar) \ -Dlucene-highlighter.jar=$(build-classpath lucene-contrib/lucene-highlighter.jar) \ -Dlucene-snowball.jar=$(build-classpath lucene-contrib/lucene-snowball.jar) \ -Dcommons-logging.jar=$(build-classpath commons-logging.jar) \ -Dcommons-lang.jar=$(build-classpath commons-lang.jar) \ -Dcommons-io.jar=$(build-classpath commons-io.jar) \ -Dcommons-collections.jar=$(build-classpath commons-collections.jar) \ -Dcommons-codec.jar=$(build-classpath commons-codec.jar) \ dist javadoc # disable audio on by default # user will need to download a flash player # first before using this feature sed -i 's|audio.enable = true|audio.enable = false|' res/config/config.properties sed -i 's|options.browser.useMozilla = false|options.browser.useMozilla = true|' res/config/config.properties # set font to KacstQurn sed -i 's|quran_fontName = Scheherazade, Roya, mry_KacstQurn, Nazli, Titr, me_quran|quran_fontName = KacstQurn, me_quran|' res/ui/theme/sky/theme.properties %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/%{_javadir}/%{name} install -m 644 dist/zekr.jar -T $RPM_BUILD_ROOT/%{_javadir}/%{name}/%{name}-%{version}.jar ln -s zekr-%{version}.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/%{name}.jar # install commons-configuration, this is temporary until Fedora provides # jakarta-commons-configuration package (against Fedora Packaging Policy) install -m 644 lib/commons-configuration-1.5.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/ ln -s commons-configuration-1.5.jar $RPM_BUILD_ROOT/%{_javadir}/%{name}/commons-configuration.jar # install launcher script mkdir -p $RPM_BUILD_ROOT/%{_bindir}/ cat %SOURCE1|sed 's|@DATADIR@|%{_datadir}|' > %{name} install -m 755 -T %{name} $RPM_BUILD_ROOT/%{_bindir}/%{name} # install resources mkdir -p $RPM_BUILD_ROOT/%{_datadir}/%{name}/ cp -rp res/ $RPM_BUILD_ROOT/%{_datadir}/%{name}/ # install javadoc mkdir -p $RPM_BUILD_ROOT/%{_javadocdir}/ cp -rp build/docs/javadocs/ $RPM_BUILD_ROOT/%{_javadocdir}/%{name}/ # install autodlrc file cp -p %SOURCE4 $RPM_BUILD_ROOT%{_datadir}/%{name}/ # install desktop file mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications desktop-file-install --vendor fedora \ --dir $RPM_BUILD_ROOT%{_datadir}/applications \ %SOURCE2 %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc doc/readme.txt doc/license/zekr-license.txt doc/changes.txt doc/license/nanohttpd-license.txt %{_bindir}/zekr %{_javadir}/%{name}/commons-configuration*.jar %{_javadir}/%{name}/%{name}*.jar %{_datadir}/%{name}/ %{_datadir}/applications/fedora-zekr.desktop %files javadoc %defattr(-,root,root,-) %{_javadocdir}/%{name} %changelog * Wed Dec 31 2008 Mohd Izhar Firdaus Ismail - 0.7.1-2 - Removed nonfree contents - Added autodownloader configuration * Tue Dec 30 2008 Mohd Izhar Firdaus Ismail - 0.7.1-1 - Initial package