backintime: Definition improvement

wip/yesman
Damien Cassou 10 years ago
parent 7327e3f808
commit 242ae9c38c
  1. 46
      pkgs/applications/networking/sync/backintime/common.nix
  2. 78
      pkgs/applications/networking/sync/backintime/default.nix
  3. 37
      pkgs/applications/networking/sync/backintime/gnome.nix
  4. 6
      pkgs/top-level/all-packages.nix

@ -0,0 +1,46 @@
{stdenv, fetchurl, makeWrapper, gettext, python2, python2Packages }:
stdenv.mkDerivation rec {
version = "1.0.36";
name = "backintime-common-${version}";
src = fetchurl {
url = "https://launchpad.net/backintime/1.0/${version}/+download/backintime-${version}.tar.gz";
md5 = "28630bc7bd5f663ba8fcfb9ca6a742d8";
};
# because upstream tarball has no top-level directory.
# https://bugs.launchpad.net/backintime/+bug/1359076
sourceRoot = ".";
buildInputs = [ makeWrapper gettext python2 python2Packages.dbus ];
installFlags = [ "DEST=$(out)" ];
preConfigure = "cd common";
dontAddPrefix = true;
preFixup =
''
substituteInPlace "$out/bin/backintime" \
--replace "=\"/usr/share" "=\"$prefix/share"
wrapProgram "$out/bin/backintime" \
--prefix PYTHONPATH : "$PYTHONPATH" \
--prefix PATH : "$prefix/bin:$PATH"
'';
meta = {
homepage = https://launchpad.net/backintime;
description = "Simple backup tool for Linux";
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.DamienCassou ];
platforms = stdenv.lib.platforms.all;
longDescription = ''
Back In Time is a simple backup tool (on top of rsync) for Linux
inspired from flyback project and TimeVault. The backup is
done by taking snapshots of a specified set of directories.
'';
};
}

@ -1,78 +0,0 @@
{stdenv, fetchurl, makeWrapper, gettext, python2, python2Packages, gnome2, pkgconfig, pygobject, glib, libtool }:
let
version = "1.0.36";
src = fetchurl {
url = "https://launchpad.net/backintime/1.0/${version}/+download/backintime-${version}.tar.gz";
md5 = "28630bc7bd5f663ba8fcfb9ca6a742d8";
};
# because upstream tarball has no top-level directory.
# https://bugs.launchpad.net/backintime/+bug/1359076
sourceRoot = ".";
genericBuildInputs = [ makeWrapper gettext python2 python2Packages.dbus ];
installFlagsArray = [ "DEST=$(out)" ];
meta = {
homepage = https://launchpad.net/backintime;
description = "Simple backup tool for Linux";
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.DamienCassou ];
platforms = stdenv.lib.platforms.linux;
longDescription = ''
Back In Time is a simple backup tool (on top of rsync) for Linux
inspired from flyback project and TimeVault. The backup is
done by taking snapshots of a specified set of directories.
'';
};
common = stdenv.mkDerivation rec {
inherit version src sourceRoot installFlagsArray meta;
name = "backintime-common-${version}";
buildInputs = genericBuildInputs;
preConfigure = "cd common";
dontAddPrefix = true;
preFixup =
''
substituteInPlace "$out/bin/backintime" \
--replace "=\"/usr/share" "=\"$prefix/share"
wrapProgram "$out/bin/backintime" \
--prefix PYTHONPATH : "$PYTHONPATH"
'';
};
in
stdenv.mkDerivation rec {
inherit version src sourceRoot installFlagsArray meta;
name = "backintime-gnome-${version}";
buildInputs = genericBuildInputs ++ [ common python2Packages.pygtk python2Packages.notify gnome2.gnome_python ];
preConfigure = "cd gnome";
configureFlagsArray = [ "--no-check" ];
preFixup =
''
substituteInPlace "$out/share/backintime/gnome/app.py" \
--replace "glade_file = os.path.join(self.config.get_app_path()," \
"glade_file = os.path.join('$prefix/share/backintime',"
substituteInPlace "$out/share/backintime/gnome/settingsdialog.py" \
--replace "glade_file = os.path.join(self.config.get_app_path()," \
"glade_file = os.path.join('$prefix/share/backintime',"
substituteInPlace "$out/bin/backintime-gnome" \
--replace "=\"/usr/share" "=\"$prefix/share"
wrapProgram "$out/bin/backintime-gnome" \
--prefix PYTHONPATH : "${gnome2.gnome_python}/lib/python2.7/site-packages/gtk-2.0:${common}/share/backintime/common:$PYTHONPATH" \
--prefix PATH : "$PATH"
'';
}

@ -0,0 +1,37 @@
{stdenv, fetchurl, makeWrapper, gettext, python2, python2Packages, gnome2, pkgconfig, pygobject, glib, libtool, backintime-common }:
stdenv.mkDerivation rec {
inherit (backintime-common) version src sourceRoot installFlags meta;
name = "backintime-gnome-${version}";
buildInputs = [ makeWrapper gettext python2 python2Packages.dbus backintime-common python2Packages.pygtk python2Packages.notify gnome2.gnome_python ];
preConfigure = "cd gnome";
configureFlags = [ "--no-check" ];
preFixup =
''
# Make sure all Python files refer to $prefix/share/backintime
# instead of config.get_app_path() which returns the path of the
# 'common' module, not the path of the 'gnome' module.
filelist=$(mktemp)
find "$out/share/backintime/gnome" -name "*.py" -print0 > $filelist
while IFS="" read -r -d "" file <&9; do
substituteInPlace "$file" \
--replace "glade_file = os.path.join(config.get_app_path()," \
"glade_file = os.path.join('$prefix/share/backintime'," \
--replace "glade_file = os.path.join(self.config.get_app_path()," \
"glade_file = os.path.join('$prefix/share/backintime',"
done 9< "$filelist"
rm "$filelist"
substituteInPlace "$out/bin/backintime-gnome" \
--replace "=\"/usr/share" "=\"$prefix/share"
wrapProgram "$out/bin/backintime-gnome" \
--prefix PYTHONPATH : "${gnome2.gnome_python}/lib/python2.7/site-packages/gtk-2.0:${backintime-common}/share/backintime/common:$PYTHONPATH" \
--prefix PATH : "${backintime-common}/bin:$PATH"
'';
}

@ -8264,7 +8264,11 @@ let
inherit (gnome3) baobab;
backintime = callPackage ../applications/networking/sync/backintime { };
backintime-common = callPackage ../applications/networking/sync/backintime/common.nix { };
backintime-gnome = callPackage ../applications/networking/sync/backintime/gnome.nix { };
backintime = backintime-gnome;
bar = callPackage ../applications/window-managers/bar { };

Loading…
Cancel
Save