emacsPackages.treemacs: replace python3 program (#364623)
[NixPkgs.git] / pkgs / by-name / av / avocode / package.nix
blobb10fe128b1ef76d7dc0078c4a096ef13a209724f
2   lib,
3   stdenv,
4   makeDesktopItem,
5   fetchurl,
6   unzip,
7   gdk-pixbuf,
8   glib,
9   gtk3,
10   atk,
11   at-spi2-atk,
12   pango,
13   cairo,
14   freetype,
15   fontconfig,
16   dbus,
17   nss,
18   nspr,
19   alsa-lib,
20   cups,
21   expat,
22   udev,
23   adwaita-icon-theme,
24   xorg,
25   mozjpeg,
26   makeWrapper,
27   wrapGAppsHook3,
28   libuuid,
29   at-spi2-core,
30   libdrm,
31   mesa,
32   libxkbcommon,
35 stdenv.mkDerivation rec {
36   pname = "avocode";
37   version = "4.15.6";
39   src = fetchurl {
40     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
41     sha256 = "sha256-vNQT4jyMIIAk1pV3Hrp40nawFutWCv7xtwg2gU6ejy0=";
42   };
44   libPath = lib.makeLibraryPath (
45     with xorg;
46     [
47       stdenv.cc.cc
48       at-spi2-core.out
49       gdk-pixbuf
50       glib
51       gtk3
52       atk
53       at-spi2-atk
54       pango
55       cairo
56       freetype
57       fontconfig
58       dbus
59       nss
60       nspr
61       alsa-lib
62       cups
63       expat
64       udev
65       libX11
66       libxcb
67       libxshmfence
68       libxkbcommon
69       libXi
70       libXcursor
71       libXdamage
72       libXrandr
73       libXcomposite
74       libXext
75       libXfixes
76       libXrender
77       libXtst
78       libXScrnSaver
79       libuuid
80       libdrm
81       mesa
82     ]
83   );
85   desktopItem = makeDesktopItem {
86     name = "Avocode";
87     exec = "avocode";
88     icon = "avocode";
89     desktopName = "Avocode";
90     genericName = "Design Inspector";
91     categories = [ "Development" ];
92     comment = "The bridge between designers and developers";
93   };
95   nativeBuildInputs = [
96     makeWrapper
97     wrapGAppsHook3
98     unzip
99   ];
100   buildInputs = [
101     gtk3
102     adwaita-icon-theme
103   ];
105   # src is producing multiple folder on unzip so we must
106   # override unpackCmd to extract it into newly created folder
107   unpackCmd = ''
108     mkdir out
109     unzip $curSrc -d out
110   '';
112   installPhase = ''
113     substituteInPlace avocode.desktop.in \
114       --replace /path/to/avocode-dir/Avocode $out/bin/avocode \
115       --replace /path/to/avocode-dir/avocode.png avocode
117     mkdir -p share/applications share/pixmaps
118     mv avocode.desktop.in share/applications/avocode.desktop
119     mv avocode.png share/pixmaps/
121     rm resources/cjpeg
122     cp -av . $out
124     mkdir $out/bin
125     ln -s $out/avocode $out/bin/avocode
126     ln -s ${mozjpeg}/bin/cjpeg $out/resources/cjpeg
127   '';
129   postFixup = ''
130     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/avocode
131     for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
132       patchelf --set-rpath ${libPath}:$out/ $file || true
133     done
134   '';
136   enableParallelBuilding = true;
138   meta = with lib; {
139     homepage = "https://avocode.com/";
140     description = "Bridge between designers and developers";
141     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
142     license = licenses.unfree;
143     platforms = platforms.linux;
144     maintainers = with maintainers; [ megheaiulian ];
145   };