summary refs log tree commit diff
path: root/pkgs/applications/backup/areca/default.nix
blob: b4d644430dd1921ad12df75af7af4ddcacfd6b74 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{ stdenv, fetchurl, ant, jre, jdk, swt, acl, attr }:

stdenv.mkDerivation {
  name = "areca-7.5";

  src = fetchurl {
    url = "mirror://sourceforge/project/areca/areca-stable/areca-7.5/areca-7.5-src.tar.gz";
    sha256 = "1q4ha9s96c1syplxm04bh1v1gvjq16l4pa8w25w95d2ywwvyq1xb";
  };

  sourceRoot = ".";

  buildInputs = [ jdk ant acl attr ];

  patches = [ ./fix-javah-bug.diff ];

  postPatch = ''
    substituteInPlace build.xml --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"
    substituteInPlace build.xml --replace "gcc" "${stdenv.cc}/bin/gcc"
    substituteInPlace areca.sh --replace "bin/" ""
    substituteInPlace bin/areca_run.sh --replace "/usr/java" "${jre}/lib/openjdk"
    substituteInPlace bin/areca_run.sh --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"

    # Fix for NixOS/nixpkgs/issues/53716
    sed -i -e 's;^;#include <attr/attributes.h>;' jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c
    substituteInPlace jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c --replace attr/xattr.h sys/xattr.h

    sed -i "s#^PROGRAM_DIR.*#PROGRAM_DIR=$out#g" bin/areca_run.sh
    sed -i "s#^LIBRARY_PATH.*#LIBRARY_PATH=$out/lib:${stdenv.lib.makeLibraryPath [ swt acl ]}#g" bin/areca_run.sh

    # https://sourceforge.net/p/areca/bugs/563/
    substituteInPlace bin/areca_run.sh --replace '[ "$JAVA_IMPL" = "java" ]' \
      '[[ "$JAVA_IMPL" = "java" || "$JAVA_IMPL" = "openjdk" ]]'
  '';

  buildPhase = "ant";

  installPhase = ''
    mkdir -p $out/bin $out/lib $out/translations
    cp areca.sh $out/bin/areca
    cp -r bin $out
    cp -r lib $out
    cp -r translations $out
    cp COPYING $out
  '';

  meta = with stdenv.lib; {
    homepage = "http://www.areca-backup.org/";
    description = "An Open Source personal backup solution";
    license = licenses.gpl2;
    maintainers = with maintainers; [ pSub ];
    platforms = with platforms; linux;
  };
}