Loading pkgs/by-name/mo/mongodb-compass/darwin.nix 0 → 100644 +63 −0 Original line number Diff line number Diff line { stdenvNoCC, fetchurl, unzip, runtimeShell, pname, version, meta, }: let appName = "MongoDB Compass.app"; dist = { aarch64-darwin = { arch = "arm64"; sha256 = "sha256-naSOCYxdDLt/zDtR4MhTE96gJypfbk98CWKx2i8kiTk="; }; x86_64-darwin = { arch = "x64"; sha256 = "sha256-TnoXaiSNYiblgJS5nygTHOe9HBgVCTfffX37wrwtxZ8="; }; } .${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"); in stdenvNoCC.mkDerivation { inherit pname version meta; src = fetchurl { url = "https://downloads.mongodb.com/compass/mongodb-compass-${version}-darwin-${dist.arch}.zip"; inherit (dist) sha256; name = "${pname}-${version}.zip"; }; nativeBuildInputs = [ unzip ]; # The archive will be automatically unzipped; tell Nix where the source root is. dontFixup = true; sourceRoot = appName; installPhase = '' runHook preInstall # Create directories for the application bundle and the launcher script. mkdir -p "$out/Applications/${appName}" "$out/bin" # Copy the unzipped app bundle into the Applications folder. cp -R . "$out/Applications/${appName}" # Create a launcher script that opens the app. cat > "$out/bin/${pname}" << EOF #!${runtimeShell} open -na "$out/Applications/${appName}" --args "\$@" EOF chmod +x "$out/bin/${pname}" runHook postInstall ''; } pkgs/by-name/mo/mongodb-compass/linux.nix 0 → 100644 +132 −0 Original line number Diff line number Diff line { alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, dpkg, expat, fetchurl, fontconfig, freetype, gdk-pixbuf, glib, gtk3, lib, libdrm, libGL, libnotify, libsecret, libuuid, libxcb, libxkbcommon, libgbm, nspr, nss, pango, stdenv, systemd, wrapGAppsHook3, xorg, pname, version, meta, }: let rpath = lib.makeLibraryPath [ alsa-lib at-spi2-atk at-spi2-core atk cairo cups curl dbus expat fontconfig freetype gdk-pixbuf glib gtk3 libdrm libGL libnotify libsecret libuuid libxcb libxkbcommon libgbm nspr nss pango stdenv.cc.cc systemd xorg.libX11 xorg.libXScrnSaver xorg.libXcomposite xorg.libXcursor xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXtst xorg.libxkbfile xorg.libxshmfence (lib.getLib stdenv.cc.cc) ]; in stdenv.mkDerivation { inherit pname version meta; src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb"; hash = "sha256-cwhYiV5G8GRBT7MST20MPUxEMQM1mzxlLUfzGO6jv10="; } else throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}"; buildInputs = [ dpkg wrapGAppsHook3 gtk3 ]; dontUnpack = true; buildCommand = '' IFS=$'\n' # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here dpkg --fsys-tarfile $src | tar --extract mkdir -p $out mv usr/* $out # cp -av $out/usr/* $out rm -rf $out/share/lintian # The node_modules are bringing in non-linux files/dependencies find $out -name "*.app" -exec rm -rf {} \; || true find $out -name "*.dll" -delete find $out -name "*.exe" -delete # Otherwise it looks "suspicious" chmod -R g-w $out for file in `find $out -type f -perm /0111 -o -name \*.so\*`; do echo "Manipulating file: $file" patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true patchelf --set-rpath ${rpath}:$out/lib/mongodb-compass "$file" || true done wrapGAppsHook $out/bin/mongodb-compass ''; } pkgs/by-name/mo/mongodb-compass/package.nix +15 −132 Original line number Diff line number Diff line { alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, dpkg, expat, fetchurl, fontconfig, freetype, gdk-pixbuf, glib, gtk3, lib, libdrm, libGL, libnotify, libsecret, libuuid, libxcb, libxkbcommon, libgbm, nspr, nss, pango, stdenv, systemd, wrapGAppsHook3, xorg, callPackage, lib, ... }: let version = "1.46.0"; rpath = lib.makeLibraryPath [ alsa-lib at-spi2-atk at-spi2-core atk cairo cups curl dbus expat fontconfig freetype gdk-pixbuf glib gtk3 libdrm libGL libnotify libsecret libuuid libxcb libxkbcommon libgbm nspr nss pango stdenv.cc.cc systemd xorg.libX11 xorg.libXScrnSaver xorg.libXcomposite xorg.libXcursor xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXtst xorg.libxkbfile xorg.libxshmfence (lib.getLib stdenv.cc.cc) ]; src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb"; hash = "sha256-cwhYiV5G8GRBT7MST20MPUxEMQM1mzxlLUfzGO6jv10="; } else throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}"; # NOTE While MongoDB Compass is available to darwin, I do not have resources to test it # Feel free to make a PR adding support if desired in stdenv.mkDerivation { pname = "mongodb-compass"; inherit version; inherit src; buildInputs = [ dpkg wrapGAppsHook3 gtk3 ]; dontUnpack = true; buildCommand = '' IFS=$'\n' # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here dpkg --fsys-tarfile $src | tar --extract mkdir -p $out mv usr/* $out # cp -av $out/usr/* $out rm -rf $out/share/lintian # The node_modules are bringing in non-linux files/dependencies find $out -name "*.app" -exec rm -rf {} \; || true find $out -name "*.dll" -delete find $out -name "*.exe" -delete # Otherwise it looks "suspicious" chmod -R g-w $out for file in `find $out -type f -perm /0111 -o -name \*.so\*`; do echo "Manipulating file: $file" patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true patchelf --set-rpath ${rpath}:$out/lib/mongodb-compass "$file" || true done wrapGAppsHook $out/bin/mongodb-compass ''; version = "1.46.0"; meta = { description = "GUI for MongoDB"; maintainers = with lib.maintainers; [ bryanasdev000 friedow iamanaws ]; homepage = "https://github.com/mongodb-js/compass"; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = lib.licenses.sspl; platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; mainProgram = "mongodb-compass"; }; } in if stdenv.hostPlatform.isDarwin then callPackage ./darwin.nix { inherit pname version meta; } else callPackage ./linux.nix { inherit pname version meta; } Loading
pkgs/by-name/mo/mongodb-compass/darwin.nix 0 → 100644 +63 −0 Original line number Diff line number Diff line { stdenvNoCC, fetchurl, unzip, runtimeShell, pname, version, meta, }: let appName = "MongoDB Compass.app"; dist = { aarch64-darwin = { arch = "arm64"; sha256 = "sha256-naSOCYxdDLt/zDtR4MhTE96gJypfbk98CWKx2i8kiTk="; }; x86_64-darwin = { arch = "x64"; sha256 = "sha256-TnoXaiSNYiblgJS5nygTHOe9HBgVCTfffX37wrwtxZ8="; }; } .${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"); in stdenvNoCC.mkDerivation { inherit pname version meta; src = fetchurl { url = "https://downloads.mongodb.com/compass/mongodb-compass-${version}-darwin-${dist.arch}.zip"; inherit (dist) sha256; name = "${pname}-${version}.zip"; }; nativeBuildInputs = [ unzip ]; # The archive will be automatically unzipped; tell Nix where the source root is. dontFixup = true; sourceRoot = appName; installPhase = '' runHook preInstall # Create directories for the application bundle and the launcher script. mkdir -p "$out/Applications/${appName}" "$out/bin" # Copy the unzipped app bundle into the Applications folder. cp -R . "$out/Applications/${appName}" # Create a launcher script that opens the app. cat > "$out/bin/${pname}" << EOF #!${runtimeShell} open -na "$out/Applications/${appName}" --args "\$@" EOF chmod +x "$out/bin/${pname}" runHook postInstall ''; }
pkgs/by-name/mo/mongodb-compass/linux.nix 0 → 100644 +132 −0 Original line number Diff line number Diff line { alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, dpkg, expat, fetchurl, fontconfig, freetype, gdk-pixbuf, glib, gtk3, lib, libdrm, libGL, libnotify, libsecret, libuuid, libxcb, libxkbcommon, libgbm, nspr, nss, pango, stdenv, systemd, wrapGAppsHook3, xorg, pname, version, meta, }: let rpath = lib.makeLibraryPath [ alsa-lib at-spi2-atk at-spi2-core atk cairo cups curl dbus expat fontconfig freetype gdk-pixbuf glib gtk3 libdrm libGL libnotify libsecret libuuid libxcb libxkbcommon libgbm nspr nss pango stdenv.cc.cc systemd xorg.libX11 xorg.libXScrnSaver xorg.libXcomposite xorg.libXcursor xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXtst xorg.libxkbfile xorg.libxshmfence (lib.getLib stdenv.cc.cc) ]; in stdenv.mkDerivation { inherit pname version meta; src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb"; hash = "sha256-cwhYiV5G8GRBT7MST20MPUxEMQM1mzxlLUfzGO6jv10="; } else throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}"; buildInputs = [ dpkg wrapGAppsHook3 gtk3 ]; dontUnpack = true; buildCommand = '' IFS=$'\n' # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here dpkg --fsys-tarfile $src | tar --extract mkdir -p $out mv usr/* $out # cp -av $out/usr/* $out rm -rf $out/share/lintian # The node_modules are bringing in non-linux files/dependencies find $out -name "*.app" -exec rm -rf {} \; || true find $out -name "*.dll" -delete find $out -name "*.exe" -delete # Otherwise it looks "suspicious" chmod -R g-w $out for file in `find $out -type f -perm /0111 -o -name \*.so\*`; do echo "Manipulating file: $file" patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true patchelf --set-rpath ${rpath}:$out/lib/mongodb-compass "$file" || true done wrapGAppsHook $out/bin/mongodb-compass ''; }
pkgs/by-name/mo/mongodb-compass/package.nix +15 −132 Original line number Diff line number Diff line { alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, dpkg, expat, fetchurl, fontconfig, freetype, gdk-pixbuf, glib, gtk3, lib, libdrm, libGL, libnotify, libsecret, libuuid, libxcb, libxkbcommon, libgbm, nspr, nss, pango, stdenv, systemd, wrapGAppsHook3, xorg, callPackage, lib, ... }: let version = "1.46.0"; rpath = lib.makeLibraryPath [ alsa-lib at-spi2-atk at-spi2-core atk cairo cups curl dbus expat fontconfig freetype gdk-pixbuf glib gtk3 libdrm libGL libnotify libsecret libuuid libxcb libxkbcommon libgbm nspr nss pango stdenv.cc.cc systemd xorg.libX11 xorg.libXScrnSaver xorg.libXcomposite xorg.libXcursor xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXtst xorg.libxkbfile xorg.libxshmfence (lib.getLib stdenv.cc.cc) ]; src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb"; hash = "sha256-cwhYiV5G8GRBT7MST20MPUxEMQM1mzxlLUfzGO6jv10="; } else throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}"; # NOTE While MongoDB Compass is available to darwin, I do not have resources to test it # Feel free to make a PR adding support if desired in stdenv.mkDerivation { pname = "mongodb-compass"; inherit version; inherit src; buildInputs = [ dpkg wrapGAppsHook3 gtk3 ]; dontUnpack = true; buildCommand = '' IFS=$'\n' # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here dpkg --fsys-tarfile $src | tar --extract mkdir -p $out mv usr/* $out # cp -av $out/usr/* $out rm -rf $out/share/lintian # The node_modules are bringing in non-linux files/dependencies find $out -name "*.app" -exec rm -rf {} \; || true find $out -name "*.dll" -delete find $out -name "*.exe" -delete # Otherwise it looks "suspicious" chmod -R g-w $out for file in `find $out -type f -perm /0111 -o -name \*.so\*`; do echo "Manipulating file: $file" patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true patchelf --set-rpath ${rpath}:$out/lib/mongodb-compass "$file" || true done wrapGAppsHook $out/bin/mongodb-compass ''; version = "1.46.0"; meta = { description = "GUI for MongoDB"; maintainers = with lib.maintainers; [ bryanasdev000 friedow iamanaws ]; homepage = "https://github.com/mongodb-js/compass"; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = lib.licenses.sspl; platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; mainProgram = "mongodb-compass"; }; } in if stdenv.hostPlatform.isDarwin then callPackage ./darwin.nix { inherit pname version meta; } else callPackage ./linux.nix { inherit pname version meta; }