diff options
author | Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com> | 2015-07-25 04:29:27 +0200 |
---|---|---|
committer | Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com> | 2015-07-25 04:39:02 +0200 |
commit | 078ee4ac557d101af656eae2ef3a681f406b89b0 (patch) | |
tree | 9db595cf61c3cb0250e185d89fc66fa100e4a346 | |
parent | 161c0e7876aea932b5344a578b65e412490c3822 (diff) | |
download | nixlib-078ee4ac557d101af656eae2ef3a681f406b89b0.tar nixlib-078ee4ac557d101af656eae2ef3a681f406b89b0.tar.gz nixlib-078ee4ac557d101af656eae2ef3a681f406b89b0.tar.bz2 nixlib-078ee4ac557d101af656eae2ef3a681f406b89b0.tar.lz nixlib-078ee4ac557d101af656eae2ef3a681f406b89b0.tar.xz nixlib-078ee4ac557d101af656eae2ef3a681f406b89b0.tar.zst nixlib-078ee4ac557d101af656eae2ef3a681f406b89b0.zip |
copy-com: 1.47.0410 -> 3.2.01.0481 + several fixes
The graphical UI (the largest part of this package) never worked; fixed. Added myself as a maintainer.
-rw-r--r-- | nixos/modules/services/networking/copy-com.nix | 106 | ||||
-rw-r--r-- | pkgs/applications/networking/copy-com/default.nix | 44 |
2 files changed, 80 insertions, 70 deletions
diff --git a/nixos/modules/services/networking/copy-com.nix b/nixos/modules/services/networking/copy-com.nix index 36bd29109b8a..69a41ab97963 100644 --- a/nixos/modules/services/networking/copy-com.nix +++ b/nixos/modules/services/networking/copy-com.nix @@ -1,53 +1,53 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.services.copy-com; - -in - -{ - options = { - - services.copy-com = { - - enable = mkOption { - default = false; - description = " - Enable the copy.com client. - - The first time copy.com is run, it needs to be configured. Before enabling run - copy_console manually. - "; - }; - - user = mkOption { - description = "The user for which copy should run."; - }; - - debug = mkOption { - default = false; - description = "Output more."; - }; - }; - }; - - config = mkIf cfg.enable { - environment.systemPackages = [ pkgs.postfix ]; - - systemd.services."copy-com-${cfg.user}" = { - description = "Copy.com Client"; - after = [ "network.target" "local-fs.target" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = "${pkgs.copy-com}/bin/copy_console ${if cfg.debug then "-consoleOutput -debugToConsole=dirwatch,path-watch,csm_path,csm -debug -console" else ""}"; - User = "${cfg.user}"; - }; - - }; - }; - -} - +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.copy-com; + +in + +{ + options = { + + services.copy-com = { + + enable = mkOption { + default = false; + description = " + Enable the Copy.com client. + NOTE: before enabling the client for the first time, it must be + configured by first running CopyConsole (command line) or CopyAgent + (graphical) as the appropriate user. + "; + }; + + user = mkOption { + description = "The user for which the Copy.com client should be run."; + }; + + debug = mkOption { + default = false; + description = "Output more (debugging) messages to the console."; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.postfix ]; + + systemd.services."copy-com-${cfg.user}" = { + description = "Copy.com client"; + after = [ "network.target" "local-fs.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pkgs.copy-com}/bin/CopyConsole ${if cfg.debug then "-consoleOutput -debugToConsole=dirwatch,path-watch,csm_path,csm -debug -console" else ""}"; + User = "${cfg.user}"; + }; + + }; + }; + +} + diff --git a/pkgs/applications/networking/copy-com/default.nix b/pkgs/applications/networking/copy-com/default.nix index 9ef8caafa98d..3a3cf4df2840 100644 --- a/pkgs/applications/networking/copy-com/default.nix +++ b/pkgs/applications/networking/copy-com/default.nix @@ -1,4 +1,5 @@ -{ stdenv, coreutils, fetchurl, patchelf, gcc }: +{ stdenv, fetchurl, patchelf, fontconfig, freetype +, gcc, glib, libICE, libSM, libX11, libXext, libXrender }: let arch = if stdenv.system == "x86_64-linux" then "x86_64" @@ -13,45 +14,54 @@ let appdir = "opt/copy"; + libPackages = [ fontconfig freetype gcc.cc glib libICE libSM libX11 libXext + libXrender ]; + libPaths = stdenv.lib.concatStringsSep ":" + (map (path: "${path}/lib") libPackages); + in stdenv.mkDerivation { - name = "copy-com-1.47.0410"; + name = "copy-com-3.2.01.0481"; src = fetchurl { # Note: copy.com doesn't version this file. Annoying. url = "https://copy.com/install/linux/Copy.tgz"; - sha256 = "a48c69f6798f888617cfeef5359829e619057ae0e6edf3940b4ea6c81131012a"; + sha256 = "0bpphm71mqpaiygs57kwa23nli0qm64fvgl1qh7fkxyqqabh4g7k"; }; - buildInputs = [ coreutils patchelf ]; + nativeBuildInputs = [ patchelf ]; phases = "unpackPhase installPhase"; installPhase = '' mkdir -p $out/opt cp -r ${arch} "$out/${appdir}" - ensureDir "$out/bin" - ln -s "$out/${appdir}/CopyConsole" "$out/bin/copy_console" - ln -s "$out/${appdir}/CopyAgent" "$out/bin/copy_agent" - ln -s "$out/${appdir}/CopyCmd" "$out/bin/copy_cmd" - patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \ - "$out/${appdir}/CopyConsole" - - RPATH=${gcc.cc}/lib:$out/${appdir} - echo "updating rpaths to: $RPATH" - find "$out/${appdir}" -type f -a -perm +0100 \ - -print -exec patchelf --force-rpath --set-rpath "$RPATH" {} \; + mkdir -p "$out/bin" + for binary in Copy{Agent,Console,Cmd}; do + binary="$out/${appdir}/$binary" + ln -sv "$binary" "$out/bin" + patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} "$binary" + done + # Older versions of this package happily installed broken copies of + # anything other than CopyConsole - which was then also mangled to + # copy_console for some reason. Keep backwards compatibility (only + # for CopyConsole) for now; the NixOS service is already fixed. + ln -sv "$out/bin"/{CopyConsole,copy_console} + RPATH=${libPaths}:$out/${appdir} + echo "Updating rpaths to $RPATH in:" + find "$out/${appdir}" -type f -a -perm +0100 \ + -print -exec patchelf --force-rpath --set-rpath "$RPATH" {} \; ''; meta = { homepage = http://copy.com; - description = "Copy.com Client"; + description = "Copy.com graphical & command-line clients"; # Closed Source unfortunately. license = stdenv.lib.licenses.unfree; - maintainers = with stdenv.lib.maintainers; [ nathan-gs ]; + maintainers = with stdenv.lib.maintainers; [ nathan-gs nckx ]; # NOTE: Copy.com itself only works on linux, so this is ok. platforms = stdenv.lib.platforms.linux; }; |