nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix
2021-01-15 14:24:03 +07:00

116 lines
2.7 KiB
Nix

{ stdenv
, lib
, fetchurl
, makeWrapper
, libuuid
, libunwind
, icu
, openssl
, zlib
, curl
, at-spi2-core
, at-spi2-atk
, gnutar
, atomEnv
, kerberos
}:
# from justinwoo/azuredatastudio-nix
# https://github.com/justinwoo/azuredatastudio-nix/blob/537c48aa3981cd1a82d5d6e508ab7e7393b3d7c8/default.nix
stdenv.mkDerivation rec {
pname = "azuredatastudio";
version = "1.17.1";
src = fetchurl {
url = "https://azuredatastudiobuilds.blob.core.windows.net/releases/${version}/azuredatastudio-linux-${version}.tar.gz";
sha256 = "0px9n9vyjvyddca4x7d0zindd0dim7350vkjg5dd0506fm8dc38k";
};
nativeBuildInputs = [
makeWrapper
];
buildInputs = [
libuuid
at-spi2-core
at-spi2-atk
];
phases = "unpackPhase fixupPhase";
# change this to azuredatastudio-insiders for insiders releases
edition = "azuredatastudio";
targetPath = "$out/${edition}";
unpackPhase = ''
mkdir -p ${targetPath}
${gnutar}/bin/tar xf $src --strip 1 -C ${targetPath}
'';
sqltoolsserviceRpath = lib.makeLibraryPath [
stdenv.cc.cc
libunwind
libuuid
icu
openssl
zlib
curl
];
# this will most likely need to be updated when azuredatastudio's version changes
sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/2.0.0-release.56";
rpath = lib.concatStringsSep ":" [
atomEnv.libPath
(
lib.makeLibraryPath [
libuuid
at-spi2-core
at-spi2-atk
stdenv.cc.cc.lib
kerberos
]
)
targetPath
sqltoolsserviceRpath
];
fixupPhase = ''
fix_sqltoolsservice()
{
mv ${sqltoolsservicePath}/$1 ${sqltoolsservicePath}/$1_old
patchelf \
--set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
${sqltoolsservicePath}/$1_old
makeWrapper \
${sqltoolsservicePath}/$1_old \
${sqltoolsservicePath}/$1 \
--set LD_LIBRARY_PATH ${sqltoolsserviceRpath}
}
fix_sqltoolsservice MicrosoftSqlToolsServiceLayer
fix_sqltoolsservice MicrosoftSqlToolsCredentials
fix_sqltoolsservice SqlToolsResourceProviderService
patchelf \
--set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
${targetPath}/${edition}
mkdir -p $out/bin
makeWrapper \
${targetPath}/bin/${edition} \
$out/bin/azuredatastudio \
--set LD_LIBRARY_PATH ${rpath}
'';
meta = {
maintainers = with lib.maintainers; [ xavierzwirtz ];
description = "A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW";
homepage = "https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio";
license = lib.licenses.unfreeRedistributable;
};
}