diff --git a/.cvsignore b/.cvsignore
index e69de29..46fab14 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -0,0 +1 @@
+jakarta-log4j-1.2.8.tar.gz
diff --git a/log4j-chainsaw.desktop b/log4j-chainsaw.desktop
new file mode 100644
index 0000000..d1315f8
--- /dev/null
+++ b/log4j-chainsaw.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Chainsaw
+Comment=Log4j log viewer
+Exec=chainsaw
+Icon=chainsaw.png
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Categories=Application;Development;Monitor;X-JPackage;
diff --git a/log4j-chainsaw.png b/log4j-chainsaw.png
new file mode 100644
index 0000000..23380bc
Binary files /dev/null and b/log4j-chainsaw.png differ
diff --git a/log4j-chainsaw.sh b/log4j-chainsaw.sh
new file mode 100644
index 0000000..7408fbd
--- /dev/null
+++ b/log4j-chainsaw.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# Chainsaw (log4j) startup script
+#
+# JPackage Project
+# $Id$
+
+# Source functions library
+if [ -f /usr/share/java-utils/java-functions ] ; then
+ . /usr/share/java-utils/java-functions
+else
+ echo "Can't find functions library, aborting"
+ exit 1
+fi
+
+# Source system prefs
+if [ -r /etc/chainsaw.conf ]; then
+ . /etc/chainsaw.conf
+fi
+
+# Source user prefs
+if [ -r "$HOME/.chainsawrc" ]; then
+ . "$HOME/.chainsawrc"
+fi
+
+# Configuration
+MAIN_CLASS=org.apache.log4j.chainsaw.Main
+BASE_JARS="log4j xml-commons-apis jaxp_parser_impl"
+
+# Set parameters
+set_jvm
+set_classpath $BASE_JARS
+set_flags $BASE_FLAGS
+set_options $BASE_OPTIONS
+
+# Let's start
+run "$@"
diff --git a/log4j-javadoc-xlink.patch b/log4j-javadoc-xlink.patch
new file mode 100644
index 0000000..df2621f
--- /dev/null
+++ b/log4j-javadoc-xlink.patch
@@ -0,0 +1,14 @@
+--- build.xml~ 2003-02-20 03:07:31.000000000 +0200
++++ build.xml 2003-08-31 03:41:21.000000000 +0300
+@@ -383,8 +383,11 @@
+ header="<b>Log4j ${version}</b>"
+ bottom="Copyright 2000-2002 Apache Software Foundation.">
+
++
++
+
+
+
diff --git a/log4j-logfactor5-userdir.patch b/log4j-logfactor5-userdir.patch
new file mode 100644
index 0000000..d98aaa6
--- /dev/null
+++ b/log4j-logfactor5-userdir.patch
@@ -0,0 +1,53 @@
+diff -Naru jakarta-log4j-1.2.8.orig/docs/lf5/configuration.html jakarta-log4j-1.2.8/docs/lf5/configuration.html
+--- jakarta-log4j-1.2.8.orig/docs/lf5/configuration.html 2003-02-20 03:07:31.000000000 +0200
++++ jakarta-log4j-1.2.8/docs/lf5/configuration.html 2003-08-31 03:22:21.000000000 +0300
+@@ -120,7 +120,7 @@
+ Configure->Save menu option saves your current GUI
+ configuration to a file called
+ lf5_configuration.xml. This configuration file is a
+- saved to the location <USER_HOME>/lf5 on your local
++ saved to the location <USER_HOME>/.logfactor5 on your local
+ drive.
+
+ The information saved in the configuration file is as
+diff -Naru jakarta-log4j-1.2.8.orig/src/java/org/apache/log4j/lf5/viewer/configure/ConfigurationManager.java jakarta-log4j-1.2.8/src/java/org/apache/log4j/lf5/viewer/configure/ConfigurationManager.java
+--- jakarta-log4j-1.2.8.orig/src/java/org/apache/log4j/lf5/viewer/configure/ConfigurationManager.java 2003-02-20 03:07:41.000000000 +0200
++++ jakarta-log4j-1.2.8/src/java/org/apache/log4j/lf5/viewer/configure/ConfigurationManager.java 2003-08-31 03:21:27.000000000 +0300
+@@ -332,7 +332,7 @@
+ String home = System.getProperty("user.home");
+ String sep = System.getProperty("file.separator");
+
+- return home + sep + "lf5" + sep + CONFIG_FILE_NAME;
++ return home + sep + ".logfactor5" + sep + CONFIG_FILE_NAME;
+ }
+
+ //--------------------------------------------------------------------------
+diff -Naru jakarta-log4j-1.2.8.orig/src/java/org/apache/log4j/lf5/viewer/configure/MRUFileManager.java jakarta-log4j-1.2.8/src/java/org/apache/log4j/lf5/viewer/configure/MRUFileManager.java
+--- jakarta-log4j-1.2.8.orig/src/java/org/apache/log4j/lf5/viewer/configure/MRUFileManager.java 2003-02-20 03:07:38.000000000 +0200
++++ jakarta-log4j-1.2.8/src/java/org/apache/log4j/lf5/viewer/configure/MRUFileManager.java 2003-08-31 03:22:23.000000000 +0300
+@@ -158,14 +158,14 @@
+
+ /**
+ * Creates the directory where the MRU file list will be written.
+- * The "lf5" directory is created in the Documents and Settings
++ * The ".logfactor5" directory is created in the Documents and Settings
+ * directory on Windows 2000 machines and where ever the user.home
+ * variable points on all other platforms.
+ */
+ public static void createConfigurationDirectory() {
+ String home = System.getProperty("user.home");
+ String sep = System.getProperty("file.separator");
+- File f = new File(home + sep + "lf5");
++ File f = new File(home + sep + ".logfactor5");
+ if (!f.exists()) {
+ try {
+ f.mkdir();
+@@ -251,7 +251,7 @@
+ String home = System.getProperty("user.home");
+ String sep = System.getProperty("file.separator");
+
+- return home + sep + "lf5" + sep + CONFIG_FILE_NAME;
++ return home + sep + ".logfactor5" + sep + CONFIG_FILE_NAME;
+ }
+
+ /**
diff --git a/log4j-logfactor5.desktop b/log4j-logfactor5.desktop
new file mode 100644
index 0000000..594d4c3
--- /dev/null
+++ b/log4j-logfactor5.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=LogFactor5
+Comment=Graphical user interface for managing log4j log messages
+Exec=logfactor5
+Icon=logfactor5.png
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Categories=Application;Development;Monitor;X-JPackage;
diff --git a/log4j-logfactor5.png b/log4j-logfactor5.png
new file mode 100644
index 0000000..39aee44
Binary files /dev/null and b/log4j-logfactor5.png differ
diff --git a/log4j-logfactor5.sh b/log4j-logfactor5.sh
new file mode 100644
index 0000000..6b71976
--- /dev/null
+++ b/log4j-logfactor5.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# LogFactor5 (log4j) startup script
+#
+# JPackage Project
+# $Id$
+
+# Source functions library
+if [ -f /usr/share/java-utils/java-functions ] ; then
+ . /usr/share/java-utils/java-functions
+else
+ echo "Can't find functions library, aborting"
+ exit 1
+fi
+
+# Configuration
+MAIN_CLASS=org.apache.log4j.lf5.StartLogFactor5
+BASE_JARS="log4j xml-commons-apis jaxp_parser_impl"
+
+# Set parameters
+set_jvm
+set_classpath $BASE_JARS
+set_flags $BASE_FLAGS
+set_options $BASE_OPTIONS
+
+# Let's start
+run "$@"
diff --git a/log4j.catalog b/log4j.catalog
new file mode 100644
index 0000000..ae2faa3
--- /dev/null
+++ b/log4j.catalog
@@ -0,0 +1,4 @@
+-- log4j DTD catalog --
+-- JPackage Project --
+
+DOCTYPE log4j:configuration log4j.dtd
diff --git a/log4j.spec b/log4j.spec
new file mode 100644
index 0000000..e2c8dd3
--- /dev/null
+++ b/log4j.spec
@@ -0,0 +1,256 @@
+%define section free
+
+Name: log4j
+Version: 1.2.8
+Release: 7jpp
+Epoch: 0
+Summary: Java logging package
+License: Apache Software License
+URL: http://jakarta.apache.org/log4j/
+Source0: http://jakarta.apache.org/log4j/jakarta-log4j-1.2.8.tar.gz
+# Converted from src/java/org/apache/log4j/lf5/viewer/images/lf5_small_icon.gif
+Source1: %{name}-logfactor5.png
+Source2: %{name}-logfactor5.sh
+Source3: %{name}-logfactor5.desktop
+# Converted from docs/images/logo.jpg
+Source4: %{name}-chainsaw.png
+Source5: %{name}-chainsaw.sh
+Source6: %{name}-chainsaw.desktop
+Source7: %{name}.catalog
+Patch0: %{name}-logfactor5-userdir.patch
+Patch1: %{name}-javadoc-xlink.patch
+BuildRequires: ant, jaf >= 0:1.0.1-5jpp, javamail >= 0:1.2-5jpp, jms, jmx
+BuildRequires: jndi, jpackage-utils >= 0:1.5, xml-commons-apis-javadoc
+Requires: jpackage-utils >= 0:1.5, xml-commons-apis, jaxp_parser_impl
+Group: System/Logging
+BuildArch: noarch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+Vendor: JPackage Project
+Distribution: JPackage
+
+%description
+Log4j is a tool to help the programmer output log statements to a
+variety of output targets.
+
+%package manual
+Summary: Manual for %{name}
+Group: System/Logging
+
+%description manual
+Documentation for %{name}.
+
+%package javadoc
+Summary: Javadoc for %{name}
+Group: System/Logging
+
+%description javadoc
+Javadoc for %{name}.
+
+
+%prep
+%setup -q -n jakarta-%{name}-%{version}
+%patch0 -p1
+%patch1 -p0
+# remove all binary libs
+find . -name "*.jar" -exec rm -f {} \;
+
+
+%build
+export CLASSPATH=%(build-classpath jaf javamail/mailapi jms jmxri jmxtools)
+ant jar javadoc
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+# jars
+install -d -m 755 $RPM_BUILD_ROOT%{_javadir}
+install -p -m 644 dist/lib/%{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}
+(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
+
+# javadoc
+install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
+cp -pr docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
+rm -rf docs/api
+
+# scripts
+install -d -m 755 $RPM_BUILD_ROOT%{_bindir}
+install -p -m 755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/logfactor5
+install -p -m 755 %{SOURCE5} $RPM_BUILD_ROOT%{_bindir}/chainsaw
+
+# freedesktop.org menu entries and icons
+install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
+install -p -m 644 %{SOURCE1} \
+ $RPM_BUILD_ROOT%{_datadir}/pixmaps/logfactor5.png
+install -p -m 644 %{SOURCE3} \
+ $RPM_BUILD_ROOT%{_datadir}/applications/jpackage-logfactor5.desktop
+install -p -m 644 %{SOURCE4} \
+ $RPM_BUILD_ROOT%{_datadir}/pixmaps/chainsaw.png
+install -p -m 644 %{SOURCE6} \
+ $RPM_BUILD_ROOT%{_datadir}/applications/jpackage-chainsaw.desktop
+
+# DTD and the SGML catalog (XML catalog handled in scriptlets)
+install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/sgml/%{name}
+install -p -m 644 src/java/org/apache/log4j/xml/log4j.dtd \
+ $RPM_BUILD_ROOT%{_datadir}/sgml/%{name}
+install -p -m 644 %{SOURCE7} \
+ $RPM_BUILD_ROOT%{_datadir}/sgml/%{name}/catalog
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%post
+# Note that we're using versioned catalog, so this is always ok.
+if [ -x %{_bindir}/install-catalog -a -d %{_sysconfdir}/sgml ]; then
+ %{_bindir}/install-catalog --add \
+ %{_sysconfdir}/sgml/%{name}-%{version}-%{release}.cat \
+ %{_datadir}/sgml/%{name}/catalog > /dev/null || :
+fi
+if [ -x %{_bindir}/xmlcatalog -a -w %{_sysconfdir}/xml/catalog ]; then
+ %{_bindir}/xmlcatalog --noout --add system log4j.dtd \
+ file://%{_datadir}/sgml/%{name}/log4j.dtd %{_sysconfdir}/xml/catalog \
+ > /dev/null || :
+fi
+
+%preun
+if [ $1 -eq 0 ]; then
+ if [ -x %{_bindir}/xmlcatalog -a -w %{_sysconfdir}/xml/catalog ]; then
+ %{_bindir}/xmlcatalog --noout --del log4j.dtd \
+ %{_sysconfdir}/xml/catalog > /dev/null || :
+ fi
+fi
+
+%postun
+# Note that we're using versioned catalog, so this is always ok.
+if [ -x %{_bindir}/install-catalog -a -d %{_sysconfdir}/sgml ]; then
+ %{_bindir}/install-catalog --remove \
+ %{_sysconfdir}/sgml/%{name}-%{version}-%{release}.cat \
+ %{_datadir}/sgml/%{name}/catalog > /dev/null || :
+fi
+
+%post javadoc
+rm -f %{_javadocdir}/%{name}
+ln -s %{name}-%{version} %{_javadocdir}/%{name}
+
+%postun javadoc
+if [ $1 -eq 0 ]; then
+ rm -f %{_javadocdir}/%{name}
+fi
+
+
+%files
+%defattr(-,root,root,-)
+%doc INSTALL LICENSE.txt
+%{_bindir}/*
+%{_javadir}/*
+%{_datadir}/applications/*
+%{_datadir}/pixmaps/*
+%{_datadir}/sgml/%{name}
+
+%files manual
+%defattr(0644,root,root,0755)
+%doc docs/* contribs
+
+%files javadoc
+%defattr(0644,root,root,0755)
+%{_javadocdir}/%{name}-%{version}
+
+
+%changelog
+* Sun Aug 31 2003 Ville Skyttä - 0:1.2.8-7jpp
+- Add scripts and freedesktop.org menu entries for LogFactor5 and Chainsaw.
+- Include log4j.dtd and install SGML/XML catalogs.
+- Require jpackage-utils, jaxp_parser_impl.
+- Crosslink with local xml-commons-apis javadocs.
+- Don't BuildRequire JUnit, the test suite is not included :(
+- Fix Group.
+
+* Sun May 11 2003 David Walluck 0:1.2.8-6jpp
+- add jpackage-utils requirement
+- add epochs to all versioned requirements
+- use jmx explicitly for now until mx4j works
+
+* Thu Mar 21 2003 Nicolas Mailhot 1.2.8-3jpp
+- For jpackage-utils 1.5
+
+* Thu Feb 27 2003 Henri Gomez 1.2.8-2jpp
+- fix ASF license and add packager tag
+
+* Thu Feb 20 2003 Henri Gomez 1.2.8-1jpp
+- log4j 1.2.8
+
+* Thu Oct 10 2002 Henri Gomez 1.2.7-1jpp
+- log4j 1.2.7
+
+* Fri Aug 23 2002 Henri Gomez 1.2.6-1jpp
+- log4j 1.2.6
+
+* Wed Jul 10 2002 Henri Gomez 1.2.5-1jpp
+- log4j 1.2.5
+
+* Tue Jul 02 2002 Guillaume Rousse 1.2.4-2jpp
+- section macro
+
+* Thu Jun 20 2002 Henri Gomez 1.2.4-1jpp
+- log4j 1.2.4
+
+* Thu Jan 17 2002 Guillaume Rousse 1.1.3-8jpp
+- versioned dir for javadoc
+- drop j2ee package
+- no dependencies for manual and javadoc packages
+- adaptation for new jaf and javamail packages
+
+* Sat Dec 8 2001 Guillaume Rousse 1.1.3-7jpp
+- drop j2ee patch
+
+* Wed Dec 5 2001 Guillaume Rousse 1.1.3-6jpp
+- javadoc into javadoc package
+- drop %{name}-core.jar
+
+* Wed Nov 21 2001 Christian Zoffoli 1.1.3-5jpp
+- new jpp extension
+- fixed compilation (added activation in the classpath)
+- BuildRequires: jaf
+
+* Tue Nov 20 2001 Guillaume Rousse 1.1.3-4jpp
+- non-free extension classes back in original archive
+- removed packager tag
+
+* Tue Oct 9 2001 Guillaume Rousse 1.1.3-3jpp
+- first unified release
+- non-free extension as additional package
+- s/jPackage/JPackage
+
+* Tue Sep 04 2001 Guillaume Rousse 1.1.3-2mdk
+- rebuild with javamail to provide SMTP appender
+- add CVS references
+
+* Sun Aug 26 2001 Guillaume Rousse 1.1.3-1mdk
+- 1.1.3
+- used new source packaging policy
+- vendor tag
+- packager tag
+- s/Copyright/License/
+- truncated description to 72 columns in spec
+- spec cleanup
+- used versioned jar
+
+* Sat Feb 17 2001 Guillaume Rousse 1.0.4-3mdk
+- spec cleanup
+- changelog correction
+- build with junit
+
+* Sun Feb 04 2001 Guillaume Rousse 1.0.4-2mdk
+- merged with Henri Gomez specs:
+- changed name to log4j
+- changed javadir to /usr/share/java
+- dropped jdk & jre requirement
+- added jikes support
+- changed description
+- added xerces requirement
+- more macros
+
+* Sun Jan 14 2001 Guillaume Rousse 1.0.4-1mdk
+- first Mandrake release
diff --git a/sources b/sources
index e69de29..d10edc3 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+dfc8cd57a4f2b42177b14f147c9dab3d jakarta-log4j-1.2.8.tar.gz