diff options
author | aszlig <aszlig@redmoonstudios.org> | 2016-01-28 17:37:24 +0100 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2016-01-28 17:37:24 +0100 |
commit | 8a4bdf1ddefd1374bdb425003754619244c49074 (patch) | |
tree | 120e9adc24556ae325561cba39c900b3a6708566 /pkgs/axbo/default.nix | |
parent | 3ffead673bc0a64e7691c86634be0738236a4af3 (diff) |
pkgs/axbo: Re-package with open source code
So far I've used the proprietary download and patched it up to work on NixOS. This now goes through the hurdles of trying to package it by building it from source, although there are still some precompiled dependencies used: commons-beanutils-1.8.3 commons-digester3-3.2 jcommon-1.0.20 jfreechart-1.0.16 swingx-all-1.6.4 In order to push this into upstream <nixpkgs> we first need to package these. Another issue which I didn't dig into is that the interface now looks quite ugly. I'm not sure whether it is because of some packaging choices or because we're now at version 3.x and it's supposed to look like this. Nevertheless, the application works and it makes more sense to improve the source package than the patched up binary package. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/axbo/default.nix')
-rw-r--r-- | pkgs/axbo/default.nix | 98 |
1 files changed, 35 insertions, 63 deletions
diff --git a/pkgs/axbo/default.nix b/pkgs/axbo/default.nix index d83e891d..93f8ffad 100644 --- a/pkgs/axbo/default.nix +++ b/pkgs/axbo/default.nix @@ -1,77 +1,49 @@ -{ stdenv, fetchurl, oraclejre, librxtx_java, makeFontsConf, dejavu_fonts }: +{ stdenv, fetchurl, fetchFromGitHub, jdk, jre, ant, makeWrapper +, commonsLogging, librxtx_java +}: stdenv.mkDerivation rec { name = "axbo-research-${version}"; - version = "2.0.18"; + version = "3.0.12"; - src = fetchurl { - url = let - urlversion = stdenv.lib.replaceChars ["."] ["_"] version; - in "https://www.dropbox.com/s/shy0yqcyivonobi/aXbo_unix_${urlversion}.sh"; - sha256 = "1zc3bpqfa5pdpl7masigvv98mi5phl04p80fyd2ink33xbmik70z"; + src = fetchFromGitHub { + owner = "jansolo"; + repo = "aXbo-research"; + rev = "aXbo-research_${version}"; + sha256 = "0p2my5bczmwnrs3c0l9wyq3gsc5vydw0nh9n8jkdp9vm77z0kgvd"; }; - buildInputs = [ oraclejre librxtx_java ]; + sourceRoot = "${src.name}/aXbo-research"; - unpackCmd = let - fontconfigFile = makeFontsConf { - fontDirectories = stdenv.lib.singleton dejavu_fonts; - }; - in '' - datalen="$(sed -n 's/^.*totalDataLength=\([0-9]\+\).*$/\1/p' "$src")" - installer_offset="$(sed -n 's/^ *tail *-c *\([0-9]\+\).*$/\1/p' "$src")" - - installer_dir="$(mktemp -d)" - mkdir -p "$installer_dir" - tail -c "$installer_offset" "$src" | tar xz -C "$installer_dir" + buildInputs = [ jdk ant makeWrapper ]; - cat > "$installer_dir/responses" <<EOF - executeLauncherAction$Boolean=false - sys.programGroup.linkDir=/dev/null - sys.component.73$Boolean=true - sys.languageId=en - sys.installationDir=$(pwd)/${name} - sys.programGroup.enabled$Boolean=false - sys.programGroup.allUsers$Boolean=true - sys.programGroup.name=aXbo - EOF - - cd "$installer_dir" - export FONTCONFIG_FILE="${fontconfigFile}" - java -client -Dinstall4j.jvmDir="${oraclejre}" \ - -Dexe4j.moduleName="$src" \ - -Dexe4j.totalDataLength="$datalen" \ - -Dinstall4j.cwd="$installer_dir" \ - -Djava.ext.dirs="${oraclejre}/lib/ext" \ - -Dsun.java2d.noddraw=true \ - -classpath i4jruntime.jar:user.jar \ - com.install4j.runtime.Launcher launch \ - com.install4j.runtime.installer.Installer \ - false false "" "" false true false "" true true \ - 0 0 "" 20 20 Arial 0,0,0 8 500 'version 2.0.18' \ - 20 40 Arial 0,0,0 8 500 \ - -1 -q -varfile "$installer_dir/responses" - cd - - rm -rf "$installer_dir" + buildPhase = '' + ant -Dplatforms.JDK_1.7.home="$JAVA_HOME" jar ''; - installPhase = '' - mkdir -p "$out/libexec/lib" "$out/bin" - for jarfile in lib/*; do - case "''${jarfile##*/}" in - axbo.jar) cp -vt "$out/libexec" "$jarfile";; - RXTXcomm.jar) ln -s "${librxtx_java}/lib/java/RXTXcomm.jar" \ - "$out/libexec/lib";; - *.jar) cp -vt "$out/libexec/lib" "$jarfile";; - esac + extraJars = [ + "commons-beanutils-1.8.3" + "commons-digester3-3.2" + "jcommon-1.0.20" + "jfreechart-1.0.16" + "swingx-all-1.6.4" + ]; + + installPhase = with stdenv.lib; let + classpath = makeSearchPath "share/java/\\*" [ + "$out" + commonsLogging + librxtx_java + ]; + in '' + for dep in $extraJars; do + install -vD -m 644 "lib/$dep.jar" "$out/share/java/$dep.jar" done + install -vD -m 644 dist/axbo.jar "$out/share/java/axbo.jar" - cat > "$out/bin/axbo-research" <<WRAPPER - #!${stdenv.shell} - ${oraclejre}/bin/java -Djava.library.path="${librxtx_java}/lib" \ - -classpath "${librxtx_java}/lib/java/RXTXcomm.jar" \ - -jar "$out/libexec/axbo.jar" - WRAPPER - chmod +x "$out/bin/axbo-research" + mkdir -p "$out/bin" + makeWrapper "${jre}/bin/java" "$out/bin/axbo-research" \ + --add-flags "-Djava.library.path='${librxtx_java}/lib'" \ + --add-flags "-cp ${classpath} com.dreikraft.axbo.Axbo" ''; } |