jedit: 5.2.0 -> 5.6.0-unstable-2023-11-19, adopt and rewrite
This commit is contained in:
parent
65d8de75bd
commit
142c5ec2dd
2 changed files with 101 additions and 303 deletions
|
@ -1,257 +0,0 @@
|
|||
--- a/build.xml 2015-02-04 08:47:37.000000000 +0100
|
||||
+++ b/build.xml 2015-02-17 14:06:42.455283148 +0100
|
||||
@@ -43,16 +43,6 @@
|
||||
<property name="textAreaPackage"
|
||||
location="../textarea"/>
|
||||
|
||||
- <!-- Ivy Properties -->
|
||||
- <property name="config.ivy.version"
|
||||
- value="2.2.0"/>
|
||||
- <property name="ivy.jar.dir"
|
||||
- location="${lib.dir}/ivy"/>
|
||||
- <property name="ivy.jar.filename"
|
||||
- value="ivy-${config.ivy.version}.jar"/>
|
||||
- <property name="ivy.jar.file"
|
||||
- location="${ivy.jar.dir}/${ivy.jar.filename}"/>
|
||||
-
|
||||
<!-- Miscellaneous -->
|
||||
<property name="jar.filename"
|
||||
value="${ant.project.name}.jar"/>
|
||||
@@ -90,51 +80,8 @@
|
||||
value="true"/>
|
||||
</target>
|
||||
|
||||
- <target name="check-ivy"
|
||||
- depends="init">
|
||||
- <available property="ivy.jar.present"
|
||||
- file="${ivy.jar.file}"
|
||||
- type="file"/>
|
||||
- </target>
|
||||
-
|
||||
- <target name="download-ivy"
|
||||
- depends="init,check-ivy"
|
||||
- unless="ivy.jar.present">
|
||||
- <mkdir dir="${ivy.jar.dir}"/>
|
||||
- <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${config.ivy.version}/ivy-${config.ivy.version}.jar"
|
||||
- dest="${ivy.jar.file}"
|
||||
- usetimestamp="true"/>
|
||||
- </target>
|
||||
-
|
||||
- <target name="init-ivy"
|
||||
- depends="init,download-ivy"
|
||||
- unless="ivy.done">
|
||||
- <property name="ivy.retrieve.pattern"
|
||||
- value="${lib.dir}/[conf]/[artifact](-[classifier]).[ext]"/>
|
||||
- <taskdef resource="org/apache/ivy/ant/antlib.xml"
|
||||
- classpath="${ivy.jar.file}"
|
||||
- loaderref="ivy.loader"
|
||||
- uri="antlib:org.apache.ivy.ant"/>
|
||||
- <ivy:settings file="ivysettings.xml"/>
|
||||
- </target>
|
||||
-
|
||||
- <target name="retrieve"
|
||||
- description="retrieve the dependencies"
|
||||
- depends="init,init-ivy"
|
||||
- unless="ivy.done">
|
||||
- <ivy:retrieve sync="true"/>
|
||||
- <ivy:retrieve pattern="${lib.dir}/ivy/[artifact]-[revision].[ext]"
|
||||
- organisation="org.apache.ivy"
|
||||
- module="ivy"
|
||||
- revision="${config.ivy.version}"
|
||||
- conf="default"
|
||||
- inline="true"/>
|
||||
- <property name="ivy.done"
|
||||
- value="true"/>
|
||||
- </target>
|
||||
-
|
||||
<target name="setup"
|
||||
- depends="init,retrieve">
|
||||
+ depends="init">
|
||||
<taskdef resource="net/sf/antcontrib/antlib.xml"
|
||||
uri="antlib:net.sf.antcontrib">
|
||||
<classpath>
|
||||
@@ -239,37 +186,6 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
- <target name="compile-test"
|
||||
- depends="init,retrieve,compile">
|
||||
- <mkdir dir="${classes.dir}/test"/>
|
||||
- <depend srcDir="${basedir}/test"
|
||||
- destDir="${classes.dir}/test"
|
||||
- cache="${classes.dir}"/>
|
||||
- <dependset>
|
||||
- <srcfilelist files="build.xml"/>
|
||||
- <srcfilelist files="ivy.xml"/>
|
||||
- <targetfileset dir="${classes.dir}/test"/>
|
||||
- </dependset>
|
||||
- <javac srcdir="test"
|
||||
- destdir="${classes.dir}/test"
|
||||
- debug="true"
|
||||
- debuglevel="${config.build.debuglevel}"
|
||||
- nowarn="${config.build.nowarn}"
|
||||
- deprecation="${config.build.deprecation}"
|
||||
- source="${target.java.version}"
|
||||
- target="${target.java.version}"
|
||||
- compiler="modern"
|
||||
- encoding="UTF-8"
|
||||
- includeAntRuntime="false">
|
||||
- <classpath id="classpath.test">
|
||||
- <fileset dir="${lib.dir}/test"
|
||||
- includes="*.jar"/>
|
||||
- <pathelement location="${classes.dir}/core"/>
|
||||
- </classpath>
|
||||
- <compilerarg line="${config.build.compilerarg}"/>
|
||||
- </javac>
|
||||
- </target>
|
||||
-
|
||||
<target name="prepare-textArea"
|
||||
depends="init">
|
||||
<delete includeemptydirs="true"
|
||||
@@ -423,33 +339,8 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
- <target name="test"
|
||||
- depends="init,retrieve,compile,compile-test"
|
||||
- description="run unit tests"
|
||||
- unless="skip.tests">
|
||||
- <delete dir="${build.dir}/test/raw-reports"/>
|
||||
- <mkdir dir="${build.dir}/test/raw-reports"/>
|
||||
- <junit printsummary="true"
|
||||
- failureproperty="tests.failed"
|
||||
- enabletestlistenerevents="true">
|
||||
- <classpath refid="classpath.test"/>
|
||||
- <classpath location="${classes.dir}/test"/>
|
||||
- <formatter type="xml"/>
|
||||
- <batchtest todir="${build.dir}/test/raw-reports">
|
||||
- <fileset dir="test"/>
|
||||
- </batchtest>
|
||||
- </junit>
|
||||
- <mkdir dir="${build.dir}/test/merged-reports"/>
|
||||
- <junitreport todir="${build.dir}/test/merged-reports">
|
||||
- <fileset dir="${build.dir}/test/raw-reports"/>
|
||||
- <report todir="${build.dir}/test/reports"/>
|
||||
- </junitreport>
|
||||
- <fail message="Unit test(s) failed! See reports at ${build.dir}/test/reports/index.html"
|
||||
- if="tests.failed"/>
|
||||
- </target>
|
||||
-
|
||||
<target name="build"
|
||||
- depends="init,retrieve,setup,compile"
|
||||
+ depends="init,setup,compile"
|
||||
description="build the jEdit JAR-file with full debug-information">
|
||||
<mkdir dir="${jar.location}"/>
|
||||
<jar destfile="${jar.location}/${jar.filename}"
|
||||
@@ -504,11 +395,10 @@
|
||||
</copy>
|
||||
</contrib:then>
|
||||
</contrib:if>
|
||||
- <antcall target="test" />
|
||||
</target>
|
||||
|
||||
<target name="build-exe-launcher"
|
||||
- depends="init,retrieve,setup,filter-package-files"
|
||||
+ depends="init,setup,filter-package-files"
|
||||
description="build the EXE launcher">
|
||||
<contrib:if>
|
||||
<os family="windows"/>
|
||||
@@ -622,7 +512,7 @@
|
||||
</target>
|
||||
|
||||
<target name="unpack-docbook-xsl"
|
||||
- depends="init,retrieve">
|
||||
+ depends="init">
|
||||
<unzip src="${lib.dir}/docbook/docbook-xsl-resources.zip"
|
||||
dest="${build.dir}/docbook-xsl/"/>
|
||||
</target>
|
||||
@@ -668,7 +558,7 @@
|
||||
</presetdef>
|
||||
|
||||
<target name="generate-doc-faq"
|
||||
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||
+ depends="init,setup,unpack-docbook-xsl">
|
||||
<dependset.html>
|
||||
<srcfileset dir="doc/FAQ"/>
|
||||
<targetfileset dir="${jar.location}/doc/FAQ"/>
|
||||
@@ -692,7 +582,7 @@
|
||||
</target>
|
||||
|
||||
<target name="generate-doc-news"
|
||||
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||
+ depends="init,setup,unpack-docbook-xsl">
|
||||
<dependset.html>
|
||||
<srcfileset dir="doc/whatsnew"/>
|
||||
<targetfileset dir="${jar.location}/doc/whatsnew"/>
|
||||
@@ -716,7 +606,7 @@
|
||||
</target>
|
||||
|
||||
<target name="generate-doc-users-guide"
|
||||
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||
+ depends="init,setup,unpack-docbook-xsl">
|
||||
<dependset.html>
|
||||
<srcfileset dir="doc/users-guide"/>
|
||||
<targetfileset dir="${jar.location}/doc/users-guide"/>
|
||||
@@ -851,7 +741,7 @@
|
||||
</target>
|
||||
|
||||
<target name="generate-pdf-users-guide"
|
||||
- depends="init,retrieve,setup,unpack-docbook-xsl">
|
||||
+ depends="init,setup,unpack-docbook-xsl">
|
||||
<fail message="Please set the property "paper.type""
|
||||
unless="paper.type"/>
|
||||
<contrib:switch value="${paper.type}">
|
||||
@@ -1154,7 +1044,7 @@
|
||||
</target>
|
||||
|
||||
<target name="compile-jarbundler"
|
||||
- depends="init,retrieve">
|
||||
+ depends="init">
|
||||
<mkdir dir="${classes.dir}/jarbundler"/>
|
||||
<depend srcDir="${basedir}"
|
||||
destDir="${classes.dir}/jarbundler"
|
||||
@@ -1180,7 +1070,7 @@
|
||||
</target>
|
||||
|
||||
<target name="dist-mac-finish"
|
||||
- depends="init,retrieve,setup"
|
||||
+ depends="init,setup"
|
||||
description="finish building the Mac OS X disk image (DMG-file) on Mac OS X">
|
||||
<fail message="The disk image (DMG-file) for easy distribution on Mac OS X can only be built on Mac OS X currently">
|
||||
<condition>
|
||||
@@ -1295,7 +1185,7 @@
|
||||
</target>
|
||||
|
||||
<target name="dist-mac"
|
||||
- depends="init,retrieve,setup,prepare-dist-files"
|
||||
+ depends="init,setup,prepare-dist-files"
|
||||
description="build the Mac OS X disk image (DMG-file)">
|
||||
<antcall target="compile-jarbundler">
|
||||
<param name="config.build.debuglevel"
|
||||
@@ -1411,7 +1301,7 @@
|
||||
</target>
|
||||
|
||||
<target name="prepare-dist-files"
|
||||
- depends="init,retrieve,setup">
|
||||
+ depends="init,setup">
|
||||
<antcall target="build">
|
||||
<param name="config.build.debuglevel"
|
||||
value="lines,source"/>
|
||||
@@ -1592,7 +1482,7 @@
|
||||
</target>
|
||||
|
||||
<target name="dist-deb"
|
||||
- depends="init,retrieve,setup,prepare-dist-files"
|
||||
+ depends="init,setup,prepare-dist-files"
|
||||
description="build the DEB Package">
|
||||
<antcall target="compile-ar">
|
||||
<param name="config.build.debuglevel"
|
||||
@@ -1838,7 +1728,7 @@
|
||||
</target>
|
||||
|
||||
<target name="dist-sign-deb-Release"
|
||||
- depends="init,retrieve,setup"
|
||||
+ depends="init,setup"
|
||||
description="sign the DEB Release file">
|
||||
<contrib:if>
|
||||
<not>
|
|
@ -1,63 +1,118 @@
|
|||
{ lib, stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging, bsh }:
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchsvn,
|
||||
ant,
|
||||
jdk,
|
||||
jre,
|
||||
xmlstarlet,
|
||||
makeWrapper,
|
||||
stripJavaArchivesHook,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "5.2.0";
|
||||
bcpg = fetchurl {
|
||||
url = "mirror://maven/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar";
|
||||
sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
|
||||
};
|
||||
jsr305 = fetchurl {
|
||||
url = "mirror://maven/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar";
|
||||
sha256 = "0s74pv8qjc42c7q8nbc0c3b1hgx0bmk3b8vbk1z80p4bbgx56zqy";
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "jedit";
|
||||
inherit version;
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/jedit/jedit${version}source.tar.bz2";
|
||||
sha256 = "03wmbh90rl5lsc35d7jwcp9j5qyyzq1nccxf4fal8bmnx8n4si0x";
|
||||
version = "5.6.0-unstable-2023-11-19";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "https://svn.code.sf.net/p/jedit/svn/jEdit/trunk";
|
||||
rev = "25703";
|
||||
hash = "sha256-z1KTZqKl6Dlqayw/3h/JvHQK3kSfio02R8V6aCb4g4Q=";
|
||||
};
|
||||
|
||||
buildInputs = [ ant jdk commonsBsf commonsLogging ];
|
||||
ivyDeps = stdenv.mkDerivation {
|
||||
name = "${finalAttrs.pname}-${finalAttrs.version}-ivy-deps";
|
||||
inherit (finalAttrs) src;
|
||||
|
||||
# This patch removes from the build process:
|
||||
# - the automatic download of dependencies (see configurePhase);
|
||||
# - the tests
|
||||
patches = [ ./build.xml.patch ];
|
||||
nativeBuildInputs = [
|
||||
ant
|
||||
jdk
|
||||
xmlstarlet
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir -p lib/ant-contrib/ lib/scripting lib/compile lib/default-plugins
|
||||
cp ${ant}/lib/ant/lib/ant-contrib-*.jar lib/ant-contrib/
|
||||
cp ${bsh} ${bcpg} lib/scripting/
|
||||
cp ${jsr305} lib/compile/
|
||||
# set defaultCacheDir to something that can exist
|
||||
# this directory won't get copied, but needs to be set properly
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
xmlstarlet ed --subnode /ivysettings -t elem -n caches ivysettings.xml \
|
||||
| xmlstarlet ed --insert /ivysettings/caches -t attr -n defaultCacheDir -v "$(pwd)/ivy-cache" \
|
||||
> ivysettings.xml.tmp
|
||||
mv ivysettings.xml.tmp ivysettings.xml
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
ant retrieve
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/lib
|
||||
cp -r lib/* $out/lib
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "sha256-J5i5IhXlXw84y/4K6Vt84au4eVXVLupmtfscO+y1Fi0=";
|
||||
};
|
||||
|
||||
# ignore a test failing because of the build environment
|
||||
postPatch = ''
|
||||
substituteInPlace test/org/gjt/sp/jedit/MiscUtilitiesTest.java \
|
||||
--replace-fail "public class MiscUtilitiesTest" "@org.junit.Ignore public class MiscUtilitiesTest"
|
||||
'';
|
||||
|
||||
buildPhase = "ant build";
|
||||
nativeBuildInputs = [
|
||||
ant
|
||||
jdk
|
||||
makeWrapper
|
||||
stripJavaArchivesHook
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
ln -s ${finalAttrs.ivyDeps}/lib ./lib
|
||||
ant build -Divy.done=true
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/jEdit
|
||||
cp -r build/jedit.jar doc icons keymaps macros modes startup $out/share/jEdit
|
||||
cp -r build/jedit.jar doc keymaps macros modes startup $out/share/jEdit
|
||||
|
||||
sed -i "s|Icon=.*|Icon=$out/share/jEdit/icons/jedit-icon48.png|g" package-files/linux/deb/jedit.desktop
|
||||
mkdir -p $out/share/applications
|
||||
mv package-files/linux/deb/jedit.desktop $out/share/applications/jedit.desktop
|
||||
install -Dm644 icons/jedit-icon48.png $out/share/icons/hicolor/48x48/apps/jedit.png
|
||||
install -Dm644 package-files/linux/deb/jedit.desktop -t $out/share/applications
|
||||
|
||||
# specify the correct JAVA_HOME
|
||||
sed -i '1a JAVA_HOME=${jdk}' package-files/linux/jedit
|
||||
sed -i "s|/usr/share/jEdit/@jar.filename@|$out/share/jEdit/jedit.jar|g" package-files/linux/jedit
|
||||
mkdir -p $out/bin
|
||||
cp package-files/linux/jedit $out/bin/jedit
|
||||
chmod +x $out/bin/jedit
|
||||
sed -i $out/share/applications/jedit.desktop \
|
||||
-e "s|Icon=.*|Icon=jedit|g" \
|
||||
-e "s|Exec=.*|Exec=jedit|g"
|
||||
|
||||
install -Dm755 package-files/linux/jedit -t $out/bin
|
||||
substituteInPlace $out/bin/jedit \
|
||||
--replace-fail "/usr/share/jEdit/@jar.filename@" "$out/share/jEdit/jedit.jar"
|
||||
|
||||
wrapProgram $out/bin/jedit --set JAVA_HOME ${jre}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Mature programmer's text editor (Java based)";
|
||||
meta = {
|
||||
description = "A programmer's text editor written in Java";
|
||||
homepage = "http://www.jedit.org";
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ ];
|
||||
license = lib.licenses.gpl2Only;
|
||||
mainProgram = "jedit";
|
||||
maintainers = with lib.maintainers; [ tomasajt ];
|
||||
platforms = lib.platforms.unix;
|
||||
sourceProvenance = with lib.sourceTypes; [
|
||||
fromSource
|
||||
binaryBytecode # ivyDeps contains .jar dependencies
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue