Loading pkgs/by-name/sw/swt/package.nix +95 −94 Original line number Diff line number Diff line { lib , stdenv , stripJavaArchivesHook , fetchzip , pkg-config , atk , glib , gtk2 , jdk , libGL , libGLU , libXt , libXtst { atk, fetchzip, glib, gtk2, jdk, lib, libGL, libGLU, libXt, libXtst, pkg-config, stdenv, stripJavaArchivesHook, }: let platformMap = { x86_64-linux = { platform = "gtk-linux-x86_64"; sha256 = "17frac2nsx22hfa72264as31rn35hfh9gfgy0n6wvc3knl5d2716"; }; i686-linux = { platform = "gtk-linux-x86"; sha256 = "13ca17rga9yvdshqvh0sfzarmdcl4wv4pid0ls7v35v4844zbc8b"; }; x86_64-darwin = { platform = "cocoa-macosx-x86_64"; sha256 = "0wjyxlw7i9zd2m8syd6k1q85fj8pzhxlfsrl8fpgsj37p698bd0a"; }; }; metadata = assert platformMap ? ${stdenv.hostPlatform.system}; platformMap.${stdenv.hostPlatform.system}; in stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "swt"; version = "4.5"; fullVersion = "${version}-201506032000"; fullVersion = "${finalAttrs.version}-201506032000"; hardeningDisable = [ "format" ]; passthru.srcMetadataByPlatform = { x86_64-linux.platform = "gtk-linux-x86_64"; x86_64-linux.sha256 = "17frac2nsx22hfa72264as31rn35hfh9gfgy0n6wvc3knl5d2716"; i686-linux.platform = "gtk-linux-x86"; i686-linux.sha256 = "13ca17rga9yvdshqvh0sfzarmdcl4wv4pid0ls7v35v4844zbc8b"; x86_64-darwin.platform = "cocoa-macosx-x86_64"; x86_64-darwin.sha256 = "0wjyxlw7i9zd2m8syd6k1q85fj8pzhxlfsrl8fpgsj37p698bd0a"; }; passthru.srcMetadata = finalAttrs.passthru.srcMetadataByPlatform.${stdenv.hostPlatform.system} or null; # Alas, the Eclipse Project apparently doesn't produce source-only # releases of SWT. So we just grab a binary release and extract # "src.zip" from that. src = fetchzip { url = "https://archive.eclipse.org/eclipse/downloads/drops4/" + "R-${fullVersion}/${pname}-${version}-${metadata.platform}.zip"; inherit (metadata) sha256; src = let inherit (finalAttrs.passthru) srcMetadata; in assert srcMetadata != null; fetchzip { url = "https://archive.eclipse.org/eclipse/downloads/drops4/R-${finalAttrs.fullVersion}/swt-${finalAttrs.version}-${srcMetadata.platform}.zip"; inherit (srcMetadata) sha256; stripRoot = false; postFetch = '' mkdir "$unpackDir" cd "$unpackDir" renamed="$TMPDIR/src.zip" mv "$out/src.zip" "$renamed" mv -- "$out/src.zip" "$renamed" unpackFile "$renamed" rm -r "$out" rm -r -- "$out" mv "$unpackDir" "$out" mv -- "$unpackDir" "$out" ''; }; Loading @@ -67,18 +67,21 @@ in stdenv.mkDerivation rec { libGL libGLU libXtst ] ++ lib.optionals (lib.hasPrefix "8u" jdk.version) [ libXt ]; ] ++ lib.optionals (lib.hasPrefix "8u" jdk.version) [ libXt ]; patches = [ ./awt-libs.patch ./gtk-libs.patch ]; patches = [ ./awt-libs.patch ./gtk-libs.patch ]; prePatch = '' # clear whitespace from makefiles (since we match on EOL later) sed -i 's/ \+$//' ./*.mak ''; postPatch = let makefile-sed = builtins.toFile "swt-makefile.sed" ('' postPatch = let makefile-sed = builtins.toFile "swt-makefile.sed" '' # fix pkg-config invocations in CFLAGS/LIBS pairs. # # change: Loading @@ -91,18 +94,17 @@ in stdenv.mkDerivation rec { # the latter works more consistently. /^[A-Z0-9_]\+CFLAGS = `pkg-config --cflags [^`]\+`$/ { N s'' + "/" + '' s/${'' ^\([A-Z0-9_]\+\)CFLAGS = `pkg-config --cflags \(.\+\)`\ \1LIBS = `pkg-config --libs-only-L .\+$'' + "/" + '' \1LIBS = `pkg-config --libs-only-L .\+$''}/${'' \1CFLAGS = `pkg-config --cflags \2`\ \1LIBS = `pkg-config --libs \2`'' + "/\n" + '' \1LIBS = `pkg-config --libs \2`''}/ } # fix WebKit libs not being there s/\$(WEBKIT_LIB) \$(WEBKIT_OBJECTS)$/\0 `pkg-config --libs glib-2.0`/g ''); in '' ''; in '' declare -a makefiles=(./*.mak) sed -i -f ${makefile-sed} "''${makefiles[@]}" # assign Makefile variables eagerly & change backticks to `$(shell …)` Loading @@ -127,28 +129,27 @@ in stdenv.mkDerivation rec { installPhase = '' runHook preInstall if [ -n "$prefix" ]; then mkdir -p "$prefix" if [[ -n "$prefix" ]]; then install -d -- "$prefix" fi mkdir -p "$out/lib" cp -t "$out/lib" ./*.so install -Dm 644 -t "$out/lib" -- *.so mkdir -p "$out/jars" cp -t out/ version.txt install -d -- "$out/jars" install -m 644 -t out -- version.txt (cd out && jar -c *) > "$out/jars/swt.jar" runHook postInstall ''; meta = with lib; { meta = { homepage = "https://www.eclipse.org/swt/"; description = '' A widget toolkit for Java to access the user-interface facilities of the operating systems on which it is implemented. ''; license = licenses.epl10; maintainers = with maintainers; [ bb010g ]; platforms = platforms.linux; license = lib.licenses.epl10; maintainers = [ lib.maintainers.bb010g ]; platforms = lib.platforms.linux; }; } }) Loading
pkgs/by-name/sw/swt/package.nix +95 −94 Original line number Diff line number Diff line { lib , stdenv , stripJavaArchivesHook , fetchzip , pkg-config , atk , glib , gtk2 , jdk , libGL , libGLU , libXt , libXtst { atk, fetchzip, glib, gtk2, jdk, lib, libGL, libGLU, libXt, libXtst, pkg-config, stdenv, stripJavaArchivesHook, }: let platformMap = { x86_64-linux = { platform = "gtk-linux-x86_64"; sha256 = "17frac2nsx22hfa72264as31rn35hfh9gfgy0n6wvc3knl5d2716"; }; i686-linux = { platform = "gtk-linux-x86"; sha256 = "13ca17rga9yvdshqvh0sfzarmdcl4wv4pid0ls7v35v4844zbc8b"; }; x86_64-darwin = { platform = "cocoa-macosx-x86_64"; sha256 = "0wjyxlw7i9zd2m8syd6k1q85fj8pzhxlfsrl8fpgsj37p698bd0a"; }; }; metadata = assert platformMap ? ${stdenv.hostPlatform.system}; platformMap.${stdenv.hostPlatform.system}; in stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "swt"; version = "4.5"; fullVersion = "${version}-201506032000"; fullVersion = "${finalAttrs.version}-201506032000"; hardeningDisable = [ "format" ]; passthru.srcMetadataByPlatform = { x86_64-linux.platform = "gtk-linux-x86_64"; x86_64-linux.sha256 = "17frac2nsx22hfa72264as31rn35hfh9gfgy0n6wvc3knl5d2716"; i686-linux.platform = "gtk-linux-x86"; i686-linux.sha256 = "13ca17rga9yvdshqvh0sfzarmdcl4wv4pid0ls7v35v4844zbc8b"; x86_64-darwin.platform = "cocoa-macosx-x86_64"; x86_64-darwin.sha256 = "0wjyxlw7i9zd2m8syd6k1q85fj8pzhxlfsrl8fpgsj37p698bd0a"; }; passthru.srcMetadata = finalAttrs.passthru.srcMetadataByPlatform.${stdenv.hostPlatform.system} or null; # Alas, the Eclipse Project apparently doesn't produce source-only # releases of SWT. So we just grab a binary release and extract # "src.zip" from that. src = fetchzip { url = "https://archive.eclipse.org/eclipse/downloads/drops4/" + "R-${fullVersion}/${pname}-${version}-${metadata.platform}.zip"; inherit (metadata) sha256; src = let inherit (finalAttrs.passthru) srcMetadata; in assert srcMetadata != null; fetchzip { url = "https://archive.eclipse.org/eclipse/downloads/drops4/R-${finalAttrs.fullVersion}/swt-${finalAttrs.version}-${srcMetadata.platform}.zip"; inherit (srcMetadata) sha256; stripRoot = false; postFetch = '' mkdir "$unpackDir" cd "$unpackDir" renamed="$TMPDIR/src.zip" mv "$out/src.zip" "$renamed" mv -- "$out/src.zip" "$renamed" unpackFile "$renamed" rm -r "$out" rm -r -- "$out" mv "$unpackDir" "$out" mv -- "$unpackDir" "$out" ''; }; Loading @@ -67,18 +67,21 @@ in stdenv.mkDerivation rec { libGL libGLU libXtst ] ++ lib.optionals (lib.hasPrefix "8u" jdk.version) [ libXt ]; ] ++ lib.optionals (lib.hasPrefix "8u" jdk.version) [ libXt ]; patches = [ ./awt-libs.patch ./gtk-libs.patch ]; patches = [ ./awt-libs.patch ./gtk-libs.patch ]; prePatch = '' # clear whitespace from makefiles (since we match on EOL later) sed -i 's/ \+$//' ./*.mak ''; postPatch = let makefile-sed = builtins.toFile "swt-makefile.sed" ('' postPatch = let makefile-sed = builtins.toFile "swt-makefile.sed" '' # fix pkg-config invocations in CFLAGS/LIBS pairs. # # change: Loading @@ -91,18 +94,17 @@ in stdenv.mkDerivation rec { # the latter works more consistently. /^[A-Z0-9_]\+CFLAGS = `pkg-config --cflags [^`]\+`$/ { N s'' + "/" + '' s/${'' ^\([A-Z0-9_]\+\)CFLAGS = `pkg-config --cflags \(.\+\)`\ \1LIBS = `pkg-config --libs-only-L .\+$'' + "/" + '' \1LIBS = `pkg-config --libs-only-L .\+$''}/${'' \1CFLAGS = `pkg-config --cflags \2`\ \1LIBS = `pkg-config --libs \2`'' + "/\n" + '' \1LIBS = `pkg-config --libs \2`''}/ } # fix WebKit libs not being there s/\$(WEBKIT_LIB) \$(WEBKIT_OBJECTS)$/\0 `pkg-config --libs glib-2.0`/g ''); in '' ''; in '' declare -a makefiles=(./*.mak) sed -i -f ${makefile-sed} "''${makefiles[@]}" # assign Makefile variables eagerly & change backticks to `$(shell …)` Loading @@ -127,28 +129,27 @@ in stdenv.mkDerivation rec { installPhase = '' runHook preInstall if [ -n "$prefix" ]; then mkdir -p "$prefix" if [[ -n "$prefix" ]]; then install -d -- "$prefix" fi mkdir -p "$out/lib" cp -t "$out/lib" ./*.so install -Dm 644 -t "$out/lib" -- *.so mkdir -p "$out/jars" cp -t out/ version.txt install -d -- "$out/jars" install -m 644 -t out -- version.txt (cd out && jar -c *) > "$out/jars/swt.jar" runHook postInstall ''; meta = with lib; { meta = { homepage = "https://www.eclipse.org/swt/"; description = '' A widget toolkit for Java to access the user-interface facilities of the operating systems on which it is implemented. ''; license = licenses.epl10; maintainers = with maintainers; [ bb010g ]; platforms = platforms.linux; license = lib.licenses.epl10; maintainers = [ lib.maintainers.bb010g ]; platforms = lib.platforms.linux; }; } })