8f33b8cc93
Fixes #9044, close #9667. Thanks to @taku0 for suggesting this solution. Now we have no modes starting with `/` or `+`. Rewrite the `-perm` parameters of find: - completely safe: rewrite `/0100` and `+100` to `-0100`, - slightly semantics-changing: rewrite `+111` to `-0100`. I cross-verified the `find` manual pages for Linux, Darwin, FreeBSD.
69 lines
2.3 KiB
Nix
69 lines
2.3 KiB
Nix
{ stdenv, fetchurl, patchelf, fontconfig, freetype
|
|
, gcc, glib, libICE, libSM, libX11, libXext, libXrender }:
|
|
|
|
let
|
|
arch = if stdenv.system == "x86_64-linux" then "x86_64"
|
|
else if stdenv.system == "i686-linux" then "x86"
|
|
else if stdenv.system == "armv6-linux" then "armv6h"
|
|
else throw "Copy.com client for: ${stdenv.system} not supported!";
|
|
|
|
interpreter = if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
|
|
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
|
|
else if stdenv.system == "armv6-linux" then "ld-linux.so.2"
|
|
else throw "Copy.com client for: ${stdenv.system} not supported!";
|
|
|
|
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-3.2.01.0481";
|
|
|
|
src = fetchurl {
|
|
# Note: copy.com doesn't version this file. Annoying.
|
|
url = "https://copy.com/install/linux/Copy.tgz";
|
|
sha256 = "0bpphm71mqpaiygs57kwa23nli0qm64fvgl1qh7fkxyqqabh4g7k";
|
|
};
|
|
|
|
nativeBuildInputs = [ patchelf ];
|
|
|
|
phases = "unpackPhase installPhase";
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/opt
|
|
cp -r ${arch} "$out/${appdir}"
|
|
|
|
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 graphical & command-line clients";
|
|
# Closed Source unfortunately.
|
|
license = stdenv.lib.licenses.unfree;
|
|
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;
|
|
};
|
|
}
|