about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/backup/crashplan
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/applications/backup/crashplan
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/applications/backup/crashplan')
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch12
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch37
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix103
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/default.nix81
4 files changed, 233 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch
new file mode 100644
index 000000000000..7fa68ba4a388
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch
@@ -0,0 +1,12 @@
+--- ./scripts/CrashPlanDesktop	2016-03-02 21:01:58.000000000 -0500
++++ ./scripts/CrashPlanDesktop-1	2016-03-18 20:52:10.117686266 -0400
+@@ -11,7 +11,7 @@
+ cd ${TARGETDIR}
+ 
+ if [ "_${VERSION_5_UI}" == "_true" ]; then
+-	${TARGETDIR}/electron/crashplan > ${TARGETDIR}/log/ui_output.log 2> ${TARGETDIR}/log/ui_error.log &
++	${TARGETDIR}/electron/crashplan &
+ else
+-	${JAVACOMMON} ${GUI_JAVA_OPTS} -classpath "./lib/com.backup42.desktop.jar:./lang:./skin" com.backup42.desktop.CPDesktop > ${TARGETDIR}/log/ui_output.log 2> ${TARGETDIR}/log/ui_error.log &
++	${JAVACOMMON} ${GUI_JAVA_OPTS} -classpath "./lib/com.backup42.desktop.jar:./lang:./skin" com.backup42.desktop.CPDesktop &
+ fi
diff --git a/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch
new file mode 100644
index 000000000000..de2afe2da684
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch
@@ -0,0 +1,37 @@
+--- ./scripts/CrashPlanEngine	2014-02-19 23:17:19.000000000 +0000
++++ ./scripts/CrashPlanEngine.1	2014-07-24 17:36:37.330333581 +0100
+@@ -11,7 +11,7 @@
+ 	
+ 	cd $TARGETDIR
+ 		
+-	nice -n 19 $JAVACOMMON $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $TARGETDIR/log/engine_output.log 2> $TARGETDIR/log/engine_error.log & 
++	nice -n 19 $JAVACOMMON $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $VARDIR/log/engine_output.log 2> $VARDIR/log/engine_error.log & 
+ 	
+ 	if [[ $! -gt 0 ]]; then
+ 		echo $! > $PIDFILE
+@@ -26,7 +26,7 @@
+ 
+ 	echo "Using Ubuntu 9.04 startup"
+ 	
+-	start-stop-daemon -v --pidfile $PIDFILE --make-pidfile --background --chdir $TARGETDIR --start --nicelevel 19 --exec $JAVACOMMON -- $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $TARGETDIR/log/engine_output.log 2> $TARGETDIR/log/engine_error.log
++	start-stop-daemon -v --pidfile $PIDFILE --make-pidfile --background --chdir $TARGETDIR --start --nicelevel 19 --exec $JAVACOMMON -- $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $VARDIR/log/engine_output.log 2> $VARDIR/log/engine_error.log
+ 	
+ 	# This test isn't as useful as one might like; start-stop-daemon can't accurately report the state of child processes when --background is used.
+ 	# We use this mainly to report the specific error value returned by start-stop-daemon if something goes wrong, but be aware that a return value
+@@ -91,7 +91,6 @@
+ DESC="CrashPlan Engine"
+ NAME=CrashPlanEngine
+ DAEMON=$TARGETDIR/lib/com.backup42.desktop.jar
+-PIDFILE="$TARGETDIR/${NAME}.pid"
+ 
+ if [[ -f $TARGETDIR/install.vars ]]; then
+ 	. $TARGETDIR/install.vars
+@@ -100,6 +99,8 @@
+ 	exit 1
+ fi
+ 
++PIDFILE="$VARDIR/${NAME}.pid"
++
+ if [[ ! -f $DAEMON ]]; then
+ 	echo "Could not find JAR file $DAEMON"
+ 	exit 0
diff --git a/nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix b/nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix
new file mode 100644
index 000000000000..2016d21c5926
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix
@@ -0,0 +1,103 @@
+{ stdenv, fetchurl, makeWrapper, getopt, jre, cpio, gawk, gnugrep, gnused,
+  procps, which, gtk2, atk, glib, pango, gdk_pixbuf, cairo, freetype,
+  fontconfig, dbus, gconf, nss, nspr, alsaLib, cups, expat, udev,
+  libX11, libxcb, libXi, libXcursor, libXdamage, libXrandr, libXcomposite,
+  libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nodePackages,
+  maxRam ? "1024m" }:
+
+stdenv.mkDerivation rec {
+  version = "6.7.0";
+  rev = "1512021600670_4503";
+  pname = "CrashPlanSmb";
+  name = "${pname}_${version}_${rev}";
+
+  src = fetchurl {
+    url = "https://web-eam-msp.crashplanpro.com/client/installers/${name}_Linux.tgz";
+    sha256 = "0f7ykfxaqjlvv4hv12yc5z8y1vjsysdblv53byml7i1fy1r0q26q";
+  };
+
+  nativeBuildInputs = [ makeWrapper cpio nodePackages.asar ];
+  buildInputs = [ getopt which ];
+
+  vardir = "/var/lib/crashplan";
+  manifestdir = "${vardir}/manifest";
+
+  postPatch = ''
+    # patch scripts/CrashPlanEngine
+    substituteInPlace scripts/CrashPlanEngine \
+      --replace /bin/ps ${procps}/bin/ps \
+      --replace awk ${gawk}/bin/awk \
+      --replace '`sed' '`${gnused}/bin/sed' \
+      --replace grep ${gnugrep}/bin/grep \
+      --replace TARGETDIR/log VARDIR/log \
+      --replace TARGETDIR/\''${NAME} VARDIR/\''${NAME} \
+      --replace \$TARGETDIR/bin/run.conf $out/bin/run.conf \
+      --replace \$VARDIR ${vardir}
+
+    # patch scripts/CrashPlanDesktop
+    substituteInPlace scripts/CrashPlanDesktop \
+      --replace awk ${gawk}/bin/awk \
+      --replace "\"\$SCRIPTDIR/..\"" "$out" \
+      --replace "\$(dirname \$SCRIPT)" "$out" \
+      --replace "\''${TARGETDIR}/log" ${vardir}/log \
+      --replace "\''${TARGETDIR}" "$out"
+  '';
+
+  installPhase = ''
+    mkdir $out
+    zcat -v ${pname}_${version}.cpi | (cd $out; cpio -i -d -v --no-preserve-owner)
+
+    install -D -m 755 scripts/CrashPlanDesktop $out/bin/CrashPlanDesktop
+    install -D -m 755 scripts/CrashPlanEngine $out/bin/CrashPlanEngine
+    install -D -m 644 scripts/run.conf $out/bin/run.conf
+    install -D -m 644 scripts/CrashPlan.desktop $out/share/applications/CrashPlan.desktop
+
+    # unpack, patch and repack app.asar to stop electron from creating /usr/local/crashplan/log to store the ui logs.
+    asar e $out/app.asar $out/app.asar-unpacked
+    rm -v $out/app.asar
+    substituteInPlace $out/app.asar-unpacked/shared_modules/shell/platform_paths.js \
+      --replace "getLogFileParentPath();" "\"$vardir/log\";"
+    asar p $out/app.asar-unpacked $out/app.asar
+
+    mv -v $out/*.asar $out/electron/resources
+    chmod 755 "$out/electron/crashplan"
+
+    rm -r $out/log
+    mv -v $out/conf $out/conf.template
+    ln -s $vardir/log $out/log
+    ln -s $vardir/cache $out/cache
+    ln -s $vardir/conf $out/conf
+
+    substituteInPlace $out/bin/run.conf \
+      --replace "-Xmx1024m" "-Xmx${maxRam}"
+
+    echo "JAVACOMMON=${jre}/bin/java" > $out/install.vars
+    echo "APP_BASENAME=CrashPlan" >> $out/install.vars
+    echo "TARGETDIR=$out" >> $out/install.vars
+    echo "BINSDIR=$out/bin" >> $out/install.vars
+    echo "MANIFESTDIR=${manifestdir}" >> $out/install.vars
+    echo "VARDIR=${vardir}" >> $out/install.vars
+    echo "INITDIR=" >> $out/install.vars
+    echo "RUNLVLDIR=" >> $out/install.vars
+    echo "INSTALLDATE=" >> $out/install.vars
+
+  '';
+
+  postFixup = ''
+    patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/electron/crashplan
+    wrapProgram $out/bin/CrashPlanDesktop --prefix LD_LIBRARY_PATH ":" "${stdenv.lib.makeLibraryPath [
+      stdenv.cc.cc.lib gtk2 atk glib pango gdk_pixbuf cairo freetype
+      fontconfig dbus gconf nss nspr alsaLib cups expat udev
+      libX11 libxcb libXi libXcursor libXdamage libXrandr libXcomposite
+      libXext libXfixes libXrender libXtst libXScrnSaver]}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An online backup solution";
+    homepage = http://www.crashplan.com/business/;
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ xvapx ];
+    broken = true; # 2018-12-06
+  };
+}
diff --git a/nixpkgs/pkgs/applications/backup/crashplan/default.nix b/nixpkgs/pkgs/applications/backup/crashplan/default.nix
new file mode 100644
index 000000000000..2c76891b3f9e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, makeWrapper, jre, cpio, gawk, gnugrep, gnused, procps, gtk2, glib, libXtst }:
+
+stdenv.mkDerivation rec {
+  version = "4.8.3";
+  rev = "1"; #tracks unversioned changes that occur on download.code42.com from time to time
+  name = "crashplan-${version}-r${rev}";
+
+  src = fetchurl {
+    url = "https://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_${version}_Linux.tgz";
+    sha256 = "c25d87ec1d442a396b668547e39b70d66dcfe02250cc57a25916ebb42a407113";
+  };
+
+  meta = with stdenv.lib; {
+    description = "An online/offline backup solution";
+    homepage = http://www.crashplan.org;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ sztupi domenkozar jerith666 ];
+  };
+
+  buildInputs = [ makeWrapper cpio ];
+
+  vardir = "/var/lib/crashplan";
+
+  manifestdir = "${vardir}/manifest";
+
+  patches = [ ./CrashPlanEngine.patch ./CrashPlanDesktop.patch ];
+
+  installPhase = ''
+    mkdir $out
+    zcat -v CrashPlan_${version}.cpi | (cd $out; cpio -i -d -v --no-preserve-owner)
+
+    # sed -i "s|<manifestPath>manifest</manifestPath>|<manifestPath>${manifestdir}</manifestPath>|g" $out/conf/default.service.xml
+
+    # Fix for encoding troubles (CrashPlan ticket 178827)
+    # Make sure the daemon is running using the same localization as
+    # the (installing) user
+    echo "" >> run.conf
+    echo "LC_ALL=en_US.UTF-8" >> run.conf
+
+    install -d -m 755 unpacked $out
+
+    install -D -m 644 run.conf $out/bin/run.conf
+    install -D -m 755 scripts/CrashPlanDesktop $out/bin/CrashPlanDesktop
+    install -D -m 755 scripts/CrashPlanEngine $out/bin/CrashPlanEngine
+    install -D -m 644 scripts/CrashPlan.desktop $out/share/applications/CrashPlan.desktop
+
+    rm -r $out/log
+    mv -v $out/conf $out/conf.template
+    ln -s $vardir/log $out/log
+    ln -s $vardir/cache $out/cache
+    ln -s $vardir/backupArchives $out/backupArchives
+    ln -s $vardir/conf $out/conf
+
+    echo "JAVACOMMON=${jre}/bin/java" > $out/install.vars
+    echo "APP_BASENAME=CrashPlan" >> $out/install.vars
+    echo "TARGETDIR=${vardir}" >> $out/install.vars
+    echo "BINSDIR=$out/bin" >> $out/install.vars
+    echo "MANIFESTDIR=${manifestdir}" >> $out/install.vars
+    echo "VARDIR=${vardir}" >> $out/install.vars
+    echo "INITDIR=" >> $out/install.vars
+    echo "RUNLVLDIR=" >> $out/install.vars
+    echo "INSTALLDATE=" >> $out/install.vars
+  '';
+
+  postFixup = ''
+    for f in $out/bin/CrashPlanDesktop $out/bin/CrashPlanEngine; do
+      echo "substitutions in $f"
+      substituteInPlace $f --replace /bin/ps  ${procps}/bin/ps
+      substituteInPlace $f --replace awk      ${gawk}/bin/awk
+      substituteInPlace $f --replace sed      ${gnused}/bin/sed
+      substituteInPlace $f --replace grep     ${gnugrep}/bin/grep
+    done
+    
+    substituteInPlace $out/share/applications/CrashPlan.desktop \
+      --replace /usr/local  $out \
+      --replace crashplan/skin skin \
+      --replace bin/CrashPlanDesktop CrashPlanDesktop
+
+    wrapProgram $out/bin/CrashPlanDesktop --prefix LD_LIBRARY_PATH ":" "${stdenv.lib.makeLibraryPath [ gtk2 glib libXtst ]}"
+  '';
+}