Skip to content

Instantly share code, notes, and snippets.

@computercolin
Created October 10, 2010 03:16
Show Gist options
  • Save computercolin/618892 to your computer and use it in GitHub Desktop.
Save computercolin/618892 to your computer and use it in GitHub Desktop.
# tarfile created using hg
# hg clone https://etherpad.googlecode.com/hg/ etherpad
# cd etherpad
# hg archive --type=tbz2 --prefix=%{name}-%{version} %{name}-%{version}-%{hgdate}.tar.bz2
%global hgdate 20100429
%global tarfile %{name}-%{version}-%{hgdate}.tar.bz2
Name: etherpad
Version: 0
Release: 0.8.%{hgdate}%{?dist}
Summary: A web-based realtime collaborative document editor
Group: Applications/Productivity
License: ASL 2.0
URL: http://code.google.com/p/etherpad/
Source0: %{tarfile}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Patch0: etherpad-fix-paths.patch
BuildRequires: java-1.6.0-openjdk-devel >= 1:1.6.0
BuildRequires: jpackage-utils
BuildRequires: dnsjava
BuildRequires: jBCrypt
BuildRequires: jcommon
BuildRequires: jfreechart
BuildRequires: jakarta-commons-lang
BuildRequires: javamail
BuildRequires: jetty
BuildRequires: tagsoup
BuildRequires: tomcat6-servlet-2.5-api
BuildRequires: scala >= 2.7
BuildRequires: mysql-server
BuildRequires: mysql-connector-java >= 5.1.0
BuildArch: noarch
Requires: java >= 1:1.6.0
Requires: jpackage-utils
Requires: mysql-server
%description
Open source release of EtherPad, a web-based realtime
collaborative document editor.
%prep
%setup -q
cd trunk
%patch0 -p1
# remove backup and git files
find -name '.gitignore' -exec rm -f '{}' \;
find -name '*.orig' -exec rm -f '{}' \;
# remove bundled libs and use our own ones
rm -f etherpad/lib/*
cp /usr/share/java/{dnsjava,jBCrypt,jcommon,jfreechart/jfreechart}.jar etherpad/lib/
# remove as many libs as we can right now
rm -f infrastructure/lib/{activation,commons-lang-2.4,dnsjava-2.0.6,jetty-6.1.20,jetty-util-6.1.21,mail,servlet-api-2.5-20081211,tagsoup-1.2,yuicompressor-2.4-appjet}.jar
cp /usr/share/java/{activation,commons-lang,dnsjava,jetty/jetty,jetty/jetty-util,javamail/mail,tomcat6-servlet-2.5-api,tagsoup}.jar infrastructure/lib/
# find a way to not hardcode the jetty version number here
cp /usr/share/jetty/lib/ext/jetty-sslengine-6.1.21.jar infrastructure/lib/
# rebuild modified yuicompressor instance
cd infrastructure/yuicompressor && ./make.sh && cd ../../
# adjust file permissions for rpmlint
chmod a+x infrastructure/bin/compilecache.sh
chmod a-x etherpad/src/static/js/jquery-1.2.6.js
# don't attempt to use growlnotify
sed -i -e 's/growlnotify/echo/g' etherpad/bin/rebuildjar.sh
# make sure to use appropriate arguments
sed -i -e 's/${mysql}/mysql/g' etherpad/bin/setup-mysql-db.sh
%build
export MYSQL_CONNECTOR_JAR="/usr/share/java/mysql-connector-java.jar"
export JAVA_HOME="/usr/java/jdk1.7.0"
export SCALA_HOME="/usr/share/scala"
cd trunk/etherpad
bin/rebuildjar.sh
%install
rm -rf $RPM_BUILD_ROOT
cd trunk
mkdir -p $RPM_BUILD_ROOT%{_javadir}
cp -p etherpad/appjet-eth-dev.jar $RPM_BUILD_ROOT%{_javadir}/etherpad.jar
mkdir -p $RPM_BUILD_ROOT%{_bindir}
cp -p etherpad/bin/rebuildjar.sh $RPM_BUILD_ROOT%{_bindir}/etherpad-rebuildjar.sh
cp -p etherpad/bin/run-local.sh $RPM_BUILD_ROOT%{_bindir}/etherpad-run-local.sh
cp -p etherpad/bin/setup-mysql-db.sh $RPM_BUILD_ROOT%{_bindir}/etherpad-setup-mysql-db.sh
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
cp -p etherpad/etc/etherpad.localdev-default.properties $RPM_BUILD_ROOT%{_sysconfdir}/etherpad.localdev-default.properties
# remove bundled jar files and buildcache
rm -rf infrastructure/lib infrastructure/build infrastructure/buildcache
# create directories for run-local script
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/etherpad
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/etherpad
mkdir -p $RPM_BUILD_ROOT%{_datadir}/etherpad
cp -pr etherpad/src infrastructure/* $RPM_BUILD_ROOT%{_datadir}/etherpad
# remove zero lengths files
for file in $(find $RPM_BUILD_ROOT -size 0) ; do
rm -f "$file"
done
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc trunk/COPYING trunk/README
%dir %{_localstatedir}/log/etherpad
%dir %{_localstatedir}/run/etherpad
%config(noreplace) %{_sysconfdir}/etherpad.localdev-default.properties
%{_bindir}/etherpad-*.sh
%{_datadir}/etherpad
%{_javadir}/etherpad.jar
%changelog
* Fri Jul 30 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.8.20100429
- adjust for F13 changes
* Sun Jul 04 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.7.20100429
- add previously missing build requirements
- adjust location for jfreechart jar file
* Sun Jun 27 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.6.20100429
- use newly packaged jbcrypt package
* Wed May 12 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.5.20100429
- remove complicated sed commands and patch changes instead
- use more system libraries already
* Thu May 11 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.4.20100429
- first attempt to use system libraries
* Sat May 08 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.3.20100429
- remove bundled jar files past compilation
- remove build and buildcache directories
* Thu Apr 29 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.2.20100429
- attempt to use appropriate directories
* Wed Apr 28 2010 Sebastian Dziallas <sebastian@when.com> - 0-0.1.20100428
- initial packaging
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment