aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/skinlf/Manifest1
-rw-r--r--dev-java/skinlf/files/skinlf-6.7.10-build.xml276
-rw-r--r--dev-java/skinlf/files/skinlf-6.7.10-common.xml171
-rw-r--r--dev-java/skinlf/files/skinlf-6.7.10-image-utils-without-jimi.patch77
-rw-r--r--dev-java/skinlf/metadata.xml8
-rw-r--r--dev-java/skinlf/skinlf-6.7.10.ebuild56
6 files changed, 589 insertions, 0 deletions
diff --git a/dev-java/skinlf/Manifest b/dev-java/skinlf/Manifest
new file mode 100644
index 000000000..725284f44
--- /dev/null
+++ b/dev-java/skinlf/Manifest
@@ -0,0 +1 @@
+DIST skinlf-6.7.10.tar.gz 185870 BLAKE2B 4534f4d463ad3c9604d21a7113c12b5bbe1aecd7cdd80610644ce668821cd2bd1e47d0b926550014301f84e20d52f63f16bee817c339fbdc1631f57f2d74a082 SHA512 24cb44f709c5202fff1a9ca58e8cdda4de0d5e9bad8c2a7579694eabcd590993ebd5d60e200a3ff67078627502c592da2e8a021faff8f95de4ab4f8bf4945899
diff --git a/dev-java/skinlf/files/skinlf-6.7.10-build.xml b/dev-java/skinlf/files/skinlf-6.7.10-build.xml
new file mode 100644
index 000000000..42b4c1145
--- /dev/null
+++ b/dev-java/skinlf/files/skinlf-6.7.10-build.xml
@@ -0,0 +1,276 @@
+<!DOCTYPE project [
+ <!ENTITY build-COMMON SYSTEM "common.xml">
+]>
+
+<!--
+ Skin Look And Feel Build
+-->
+<project name="skinlf" default="compile.java" basedir=".">
+
+ <!-- Allow user to override settings -->
+ <property file="${user.home}/skinlf-ant.properties" />
+ <property file="build.properties" />
+
+ <!-- Project Identification -->
+ <property name="project" value="skinlf"/>
+ <property name="version" value="6.7"/>
+ <property name="year" value="2000-2006"/>
+ <property name="project.fullname" value="Skin Look And Feel"/>
+ <property name="project.nativeskin" value="nativeskin"/>
+
+ <property name="javadoc.packagenames" value="com.l2fprod.gui,com.l2fprod.gui.plaf.skin,com.l2fprod.gui.region,com.l2fprod.gui.nativeskin"/>
+
+
+
+ <path id="classpath">
+ <fileset dir="lib" includes="**/*.jar"/>
+ </path>
+
+ <property name="classpath.asprop" refid="classpath"/>
+
+ &build-COMMON;
+
+ <target name="compile.javacc" depends="init">
+ <javacc target="src/com/l2fprod/gui/plaf/skin/impl/gtk/parser/GtkParser.jj"
+ outputdirectory="src/com/l2fprod/gui/plaf/skin/impl/gtk/parser"
+ javacchome="lib"
+ static="false"
+ javaunicodeescape="true" />
+ </target>
+
+ <target name="compile" depends="init">
+ </target>
+
+ <!--
+ Utility targets to use the style converters
+ -->
+ <target name="convert.msstyles">
+ <fail unless="msstyle" message="Specify path to msstyle xml -Dmsstyle=pathtoxml"/>
+ <fail unless="skin" message="Specify themepack folder -Dskin=pathtothemepackdir"/>
+ <java classname="com.l2fprod.tools.msstyles.MsStylesToSkinLF"
+ classpath="${classpath.asprop}:${java.src.dir}:${build.classes}"
+ fork="yes">
+ <arg value="${msstyle}" />
+ <arg value="${msstyle}.xml" />
+ <arg value="${skin}" />
+ </java>
+ <copy todir="${skin}">
+ <fileset dir="src/themepacks/skeletonthemepack" includes="**"/>
+ </copy>
+ </target>
+
+ <!--
+ Start Demos
+ -->
+ <target name="demo">
+ <java classname="examples.demo"
+ classpath="${classpath.asprop}:${java.src.dir}:${build.classes}"
+ fork="yes">
+ <arg value="${skin}" />
+ </java>
+ </target>
+
+ <!-- Dist targets -->
+ <target name="jar" depends="compile.java">
+ <jar destfile="${build.dir}/${project}.jar">
+ <fileset dir="${build.classes}" includes="*.class,com/**/*.class" excludes="**/region/**,**/nativeskin/**"/>
+ <fileset dir="${java.src.dir}" includes="com/**/*.properties"/>
+ <fileset dir="${java.src.dir}" includes="com/**/*.template"/>
+ <fileset dir="${java.src.dir}" includes="com/**/*.gif"/>
+ <manifest>
+ <attribute name="Built-by" value="${user.name}"/>
+ <attribute name="Main-Class" value="com.l2fprod.gui.plaf.skin.Skinit"/>
+ <attribute name="Class-Path" value="laf-plugin.jar"/>
+ <section name="com/l2fprod/gui/plaf/skin">
+ <attribute name="Specification-Title" value="${project.fullname}"/>
+ <attribute name="Specification-Version" value="${version}"/>
+ <attribute name="Specification-Vendor" value="L2FProd.com"/>
+ <attribute name="Implementation-Title" value="${project.fullname}"/>
+ <attribute name="Implementation-Version" value="${version}"/>
+ <attribute name="Implementation-Vendor" value="L2FProd.com"/>
+ </section>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="obfuscate" depends="jar">
+ <taskdef name="proguard"
+ classname="proguard.ant.ProGuardTask"
+ classpath="lib/proguard.jar"/>
+ <move file="${build.dir}/${project}.jar"
+ tofile="${build.dir}/${project}-toobfuscate.jar"/>
+ <proguard
+ outjar="${build.dir}/${project}.jar"
+ obfuscate="yes"
+ usemixedclassnames="no"
+ overloadaggressively="yes"
+ printmapping="obfuscatemapping.txt"
+ printusage="obfuscateusage.txt">
+ <libraryjar name="${java.home}/lib/rt.jar"/>
+ <injar name="${build.dir}/${project}-toobfuscate.jar"/>
+ <keep access="public" type="class" name="Skinit">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.SkinApplet">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.SkinChooser">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.WindowSnapping">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.nativeskin.**">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.CompoundSkin">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.IncorrectVersionException">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.LinuxLookAndFeel">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.Skin">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinButton">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinFrame">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.Skinit">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinLookAndFeel">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinPersonality">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinPreviewWindow">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinProgress">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinScrollbar">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinSeparator">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinSlider">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinSplitPane">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.SkinTab">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.impl.*">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.impl.gtk.GtkSkin">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.plaf.skin.impl.kde.KdeSkin">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.gui.region.*">
+ <method name="*"/>
+ </keep>
+ <keep access="public" type="class" name="com.l2fprod.tools.**">
+ <method name="*"/>
+ </keep>
+ <keep type="class" name="com.l2fprod.util.**">
+ <method name="*"/>
+ </keep>
+ </proguard>
+ </target>
+
+ <target name="dist.pre" depends="jar">
+ <!-- examples.jar -->
+ <jar destfile="${build.dist.lib}/examples.jar">
+ <fileset dir="${build.classes}" includes="examples/**.class"/>
+ <fileset dir="${java.src.dir}" includes="examples/**.properties,examples/**.gif,examples/**.jpg"/>
+ </jar>
+ <!-- nativeskin.jar -->
+ <jar jarfile="${build.dist.lib}/nativeskin.jar">
+ <fileset dir="${build.classes}"
+ includes="com/l2fprod/gui/region/**,com/l2fprod/gui/nativeskin/**,com/l2fprod/util/OS**,,com/l2fprod/util/Access**"
+ excludes="**/*.html"/>
+ </jar>
+ <!-- batch files -->
+ <copy todir="${build.dist.bin}"
+ flatten="yes"
+ preservelastmodified="yes">
+ <fileset dir="src" includes="**/*.bat"/>
+ </copy>
+ <!-- dlls -->
+ <copy todir="${build.dist.lib}">
+ <fileset dir="src/native/win32" includes="*.dll"/>
+ </copy>
+ <!-- default theme -->
+ <zip destfile="${build.dist.lib}/themepack.zip">
+ <zipfileset dir="src/themepacks/whistlerthemepack"/>
+ </zip>
+ </target>
+
+ <!--
+ Publish the new version of SKinLF
+ -->
+ <target name="publish" depends="init">
+ <!-- copy zip to dist folder -->
+ <copy todir="${publish.download.dir}"
+ file="${project}-${version}-${build.version}.zip"/>
+
+ <filter token="WEB" value="${publish.web.url}"/>
+ <!-- update the jnlp website with the new release -->
+ <!-- put skinlf.jar in jnlp folder -->
+ <copy todir="${publish.skinlf.home}/jnlp/" filtering="on" overwrite="yes">
+ <fileset dir="src/jnlp" includes="*.jnlp"/>
+ </copy>
+ <copy file="${build.dist.lib}/${project}.jar" todir="${publish.skinlf.home}/jnlp/"/>
+ <copy file="${build.dist.lib}/examples.jar" todir="${publish.skinlf.home}/jnlp/"/>
+ <copy file="${build.dist.lib}/themepack.zip" todir="${publish.skinlf.home}/jnlp/"/>
+ <copy file="${build.dist.lib}/nativeskin.jar" todir="${publish.skinlf.home}/jnlp"/>
+ <jar destfile="${publish.skinlf.home}/jnlp/nativeskinlibs.jar"
+ basedir="${build.dist.lib}" includes="*.dll"/>
+
+ <!-- copy the documentation
+ <copy todir="${web.skinlf.home}/documentation">
+ <fileset dir="${javadoc.destdir}"/>
+ </copy>
+ -->
+ <!-- Sign all Jars -->
+ <signjar keystore="../common/keystore" alias="L2FProd.com" storepass="L2FProd.com">
+ <fileset dir="${publish.skinlf.home}/jnlp" includes="*.jar"/>
+ </signjar>
+
+ </target>
+
+ <target name="themes">
+ <zip destfile="${build.www.themedir}/cellshadedthemepack.zip"
+ basedir="src/themepacks/cellshadedthemepack"/>
+ <zip destfile="${build.www.themedir}/whistlerthemepack.zip"
+ basedir="src/themepacks/whistlerthemepack"/>
+ <zip destfile="${build.www.themedir}/xplunathemepack.zip"
+ basedir="src/themepacks/xplunathemepack"/>
+ <zip destfile="${build.www.themedir}/toxicthemepack.zip"
+ basedir="src/themepacks/toxicthemepack"/>
+ <zip destfile="${build.www.themedir}/beigeazulthemepack.zip"
+ basedir="src/themepacks/beigeazulthemepack"/>
+
+
+ <!-- png for these themepacks are not in cvs -->
+ <zip destfile="${build.www.themedir}/aquathemepack.zip"
+ basedir="src/themepacks/aquathemepack"/>
+ <zip destfile="${build.www.themedir}/alloythemepack.zip"
+ basedir="src/themepacks/alloythemepack"/>
+ </target>
+
+</project>
diff --git a/dev-java/skinlf/files/skinlf-6.7.10-common.xml b/dev-java/skinlf/files/skinlf-6.7.10-common.xml
new file mode 100644
index 000000000..c2803acc5
--- /dev/null
+++ b/dev-java/skinlf/files/skinlf-6.7.10-common.xml
@@ -0,0 +1,171 @@
+<!--
+ Common Target which could be reused by other projects later.
+-->
+
+<!-- COMMON PROPERTIES -->
+
+ <property name="debug" value="true"/>
+ <property name="optimize" value="false"/>
+
+ <!-- Java Related -->
+ <property name="java.src.dir" value="src"/>
+ <property name="javac.compiler" value="modern"/>
+
+ <!-- Destination Directory for the build -->
+ <property name="build.dir" value="build"/>
+ <property name="build.classes" value="${build.dir}/classes"/>
+ <property name="build.src" value="${build.dir}/src"/>
+ <property name="build.dist.dir" value="${project}-${version}"/>
+ <property name="build.dist.src" value="${build.dist.dir}/src"/>
+ <property name="build.dist.lib" value="${build.dist.dir}/lib"/>
+ <property name="build.dist.bin" value="${build.dist.dir}/bin"/>
+ <property name="build.www.dir" value="${build.dir}/www"/>
+
+<!-- COMMON TARGETS -->
+
+ <target name="init.properties">
+ <tstamp>
+ <format property="build.time" pattern="MM/dd/yyyy hh:mm aa" locale="en"/>
+ <format property="build.version" pattern="yyyyMMdd" locale="en"/>
+ </tstamp>
+ <filter token="VERSION" value="${version}"/>
+ <filter token="PROJECT.FULLNAME" value="${project.fullname}"/>
+ <filter token="DATE" value="${build.time}"/>
+ <filter token="YEAR" value="${year}"/>
+ </target>
+
+ <target name="init.directories">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.dist.dir}"/>
+ <mkdir dir="${build.dist.src}"/>
+ <mkdir dir="${build.dist.lib}"/>
+ <mkdir dir="${build.dist.bin}"/>
+ </target>
+
+ <target name="init" depends="init.properties,init.directories">
+ </target>
+
+ <target name="clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${build.dist.dir}"/>
+ </target>
+
+ <target name="fixcrlf">
+ <fixcrlf srcdir="${basedir}" eol="cr">
+ <include name="AUTHORS,LICENSE*,README,THANKS" />
+ <include name="**/*.java" />
+ </fixcrlf>
+ </target>
+
+<!-- Java Related Targets -->
+
+ <target name="compile.java" depends="init">
+ <depend srcdir="${java.src.dir}"
+ destdir="${build.classes}"
+ cache="${build.dir}/dependcache"
+ closure="yes"/>
+
+ <copy todir="${build.src}" filtering="yes">
+ <fileset dir="${java.src.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ </copy>
+ <javac srcdir="${build.src}"
+ destdir="${build.classes}"
+ classpathref="classpath"
+ compiler="${javac.compiler}"
+ includeAntRuntime="false"
+ includeJavaRuntime="false"
+ debug="${debug}"
+ optimize="${optimize}"
+ target="1.3" source="1.3">
+ </javac>
+ </target>
+
+<!-- Distribution Target -->
+
+ <target name="dist" depends="jar,dist.pre">
+ <!-- project.jar -->
+ <copy todir="${build.dist.lib}"
+ file="${build.dir}/${project}.jar"
+ preservelastmodified="yes"/>
+ <!-- source code -->
+ <copy todir="${build.dist.src}"
+ preservelastmodified="yes">
+ <fileset dir="${build.src}" includes="**/*.java"/>
+ <fileset dir="${java.src.dir}" includes="**/*.properties"/>
+ </copy>
+ <!-- regular files -->
+ <copy todir="${build.dist.dir}"
+ filtering="yes"
+ preservelastmodified="yes">
+ <fileset dir="${basedir}">
+ <include name="AUTHORS"/>
+ <include name="INSTALL"/>
+ <include name="README"/>
+ <include name="THANKS"/>
+ <include name="LICENSE"/>
+ <include name="LICENSE_*"/>
+ </fileset>
+ </copy>
+ <xslt in="xdocs/CHANGES.xml"
+ out="${build.dist.dir}/CHANGES"
+ style="xdocs/xsl/text.xsl"/>
+ <!-- zip file -->
+ <zip destfile="${project}-${version}-${build.version}.zip">
+ <zipfileset dir="${build.dist.dir}"
+ prefix="${project}-${version}" />
+ </zip>
+ </target>
+
+<!-- Source code formatting -->
+
+ <target name="jalopy" depends="init">
+ </target>
+
+<!-- Project Web Documentation -->
+
+ <target name="www" depends="init">
+ <mkdir dir="${build.www.dir}"/>
+ <xslt in="xdocs/www.xml"
+ out="${build.www.dir}/empty.html"
+ style="xdocs/xsl/tohtml.xsl">
+ <param name="output.dir" expression="${build.www.dir}"/>
+ <param name="timestamp" expression="${build.time}"/>
+ </xslt>
+ <copy todir="${build.www.dir}">
+ <fileset dir="xdocs">
+ <include name="images/**"/>
+ <include name="**.java"/>
+ </fileset>
+ </copy>
+ <mkdir dir="${build.www.dir}/javadoc"/>
+ <javadoc sourcepath="${java.src.dir}"
+ classpath="${classpath}"
+ destdir="${build.www.dir}/javadoc"
+ packagenames="${javadoc.packagenames}"
+ private="false" protected="true"
+ windowtitle="${project.fullname} ${version} API"
+ doctitle="${project.fullname} ${version}"
+ version="false" author="false" use="false"
+ stylesheetfile="xdocs/javadoc.css"
+ splitindex="true"
+ bottom="Copyright &#169; ${year} L2FProd.com. All Rights Reserved."/>
+ <delete file="${build.www.dir}/empty.html"/>
+ </target>
+
+ <target name="www.sync" depends="init">
+ <ftp server="${build.www.server}"
+ userid="${build.www.userid}"
+ password="${build.www.password}"
+ remotedir="${build.www.remotedir}"
+ action="put"
+ verbose="yes"
+ depends="yes">
+ <fileset dir="${build.www.dir}">
+ <include name="**/**"/>
+ </fileset>
+ </ftp>
+ </target>
+
diff --git a/dev-java/skinlf/files/skinlf-6.7.10-image-utils-without-jimi.patch b/dev-java/skinlf/files/skinlf-6.7.10-image-utils-without-jimi.patch
new file mode 100644
index 000000000..123335241
--- /dev/null
+++ b/dev-java/skinlf/files/skinlf-6.7.10-image-utils-without-jimi.patch
@@ -0,0 +1,77 @@
+diff -ru skinlf-1.2.12-orig/src/com/l2fprod/tools/ImageUtils.java skinlf-1.2.12/src/com/l2fprod/tools/ImageUtils.java
+--- a/src/com/l2fprod/tools/ImageUtils.java 2006-01-24 20:09:36.000000000 +0100
++++ b/src/com/l2fprod/tools/ImageUtils.java 2006-01-24 20:19:19.000000000 +0100
+@@ -6,15 +6,12 @@
+
+ import javax.swing.ImageIcon;
+
+-import com.ibm.imageconversion.*;
+-import com.sun.jimi.core.*;
++import javax.imageio.*;
+
+ public class ImageUtils {
+
+ public static Component bitmapCreator = new javax.swing.JLabel();
+
+- static BMPDecoder decoder = new BMPDecoder();
+- static BMPEncoder encoder = new BMPEncoder();
+
+ public static Image loadPng(String pathToImage) throws Exception {
+ ImageIcon icon = new ImageIcon(new File(pathToImage).toURL());
+@@ -22,29 +19,33 @@
+ }
+
+ public static void savePng(Image image, String pathToImage) throws Exception {
+- Jimi.putImage(image, pathToImage);
++ ImageIO.write((RenderedImage)image, "png", new File(pathToImage));
+ }
+
++ private static String getFileFmt(String pathToImage) throws Exception {
++ String fmt;
++ if (pathToImage.toLowerCase().endsWith(".png")) {
++ return "png";
++ }
++ if (pathToImage.toLowerCase().endsWith(".gif")) {
++ return "gif";
++ }
++ if (pathToImage.toLowerCase().endsWith(".bmp")) {
++ return "bmp";
++ }
++ return "";
++ }
++
+ public static void createPicture(String pathToImage, int index, int maxParts,
+ String filename, boolean horizontal) {
+ try {
+ System.out.println("working with " + pathToImage);
+ Image image = null;
+-
+- if (pathToImage.toLowerCase().endsWith(".png") ||
+- pathToImage.toLowerCase().endsWith(".gif")) {
+- image = loadPng(pathToImage);
+- } else if (pathToImage.toLowerCase().endsWith(".bmp")) {
+- decoder.setInputFilename(pathToImage);
+- decoder.triggerAction();
+- image = decoder.getResult();
+- } else {
+- throw new Error("do not know how to load " + pathToImage);
+- }
++ image = Toolkit.getDefaultToolkit().getImage(pathToImage);
+
+ // if only one image, dump it as it
+- if (index == 0 && maxParts == 1) {
+- Jimi.putImage(image, filename);
++ if (index == 0 && maxParts == 1) {
++ ImageIO.write((RenderedImage)image, getFileFmt(pathToImage), new File(pathToImage));
+ } else {
+ if (horizontal) {
+ int partHeight = image.getHeight(bitmapCreator) / maxParts;
+@@ -55,7 +56,7 @@
+ image = grab(image, partWidth * index, 0,
+ partWidth, image.getHeight(bitmapCreator));
+ }
+- Jimi.putImage(image, filename);
++ ImageIO.write((RenderedImage)image, getFileFmt(pathToImage), new File(pathToImage));
+ }
+ } catch (Exception e) {
+ System.out.println("error while working with " + pathToImage);
diff --git a/dev-java/skinlf/metadata.xml b/dev-java/skinlf/metadata.xml
new file mode 100644
index 000000000..ae9640ffb
--- /dev/null
+++ b/dev-java/skinlf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-java/skinlf/skinlf-6.7.10.ebuild b/dev-java/skinlf/skinlf-6.7.10.ebuild
new file mode 100644
index 000000000..a63320a6d
--- /dev/null
+++ b/dev-java/skinlf/skinlf-6.7.10.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+JAVA_PKG_IUSE="examples source"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="Skin Look and Feel - Skinning Engine for the Swing toolkit"
+HOMEPAGE="http://skinlf.l2fprod.com/"
+# Upstream is gone, use this url from ubuntu/debian instead
+SRC_URI="https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/libskinlf-java/$(ver_rs 2 -)/libskinlf-java_$(ver_cut 1-2).orig.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+CDEPEND="dev-java/laf-plugin:0
+ dev-java/xalan:0"
+
+RDEPEND=">=virtual/jre-1.4
+ ${CDEPEND}"
+
+DEPEND=">=virtual/jdk-1.4
+ ${CDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-image-utils-without-jimi.patch"
+)
+
+S="${WORKDIR}/${PN}-$(ver_cut 1-2)"
+
+src_prepare() {
+ default
+
+ cp "${FILESDIR}/${P}-build.xml" build.xml || die
+ cp "${FILESDIR}/${P}-common.xml" common.xml || die
+
+ cd lib || die
+
+ java-pkg_jar-from xalan,laf-plugin
+}
+
+src_install() {
+ java-pkg_dojar build/${PN}.jar
+
+ # laf-plugin.jar is referenced in manifest's Class-Path
+ # doesn't work without it due to class loader trickery
+ # upstream solved this by absorbing laf-plugin in own jar...
+ java-pkg_dojar lib/laf-plugin.jar
+
+ use examples && java-pkg_doexamples src/examples
+ use source && java-pkg_dosrc src/com src/*.java
+
+ dodoc CHANGES README
+}