diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2015-10-03 13:33:13 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2015-10-03 13:33:37 +0200 |
commit | 5227fb1dd53fcb5918b9342dff4868f4ad68427e (patch) | |
tree | d6cd521e3f67944031216a27f740f28f22b73b41 /pkgs/applications/networking/browsers | |
parent | d6dd3b8bd1eaeeb21dfdb5051cd4732c748ce5d7 (diff) | |
parent | 33373d939a19f465228ddede6d38ce9032b5916b (diff) | |
download | nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.gz nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.bz2 nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.lz nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.xz nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.zst nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.zip |
Merge commit staging+systemd into closure-size
Many non-conflict problems weren't (fully) resolved in this commit yet.
Diffstat (limited to 'pkgs/applications/networking/browsers')
46 files changed, 2231 insertions, 767 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index 41617d0182a8..5c8c25553ee1 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -5,18 +5,18 @@ with stdenv.lib; mkChromiumDerivation (base: rec { name = "chromium-browser"; packageName = "chromium"; - buildTargets = [ "mksnapshot" "chrome" ]; + buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ]; installPhase = '' mkdir -p "$libExecPath" cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/" cp -v "$buildPath/icudtl.dat" "$libExecPath/" cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" - cp -v "$buildPath/libffmpegsumo.so" "$libExecPath/" - ${optionalString (versionOlder base.version "42.0.0.0") '' - cp -v "$buildPath/libpdf.so" "$libExecPath/" + ${optionalString (versionOlder base.version "44.0.0.0") '' + cp -v "$buildPath/libffmpegsumo.so" "$libExecPath/" ''} cp -v "$buildPath/chrome" "$libExecPath/$packageName" + cp -v "$buildPath/chrome_sandbox" "$libExecPath/chrome-sandbox" mkdir -vp "$out/share/man/man1" cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1" diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index e46b44191975..070859b902d9 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, ninja, which # default dependencies -, bzip2, flac, speex, icu, libopus +, bzip2, flac, speex, libopus , libevent, expat, libjpeg, snappy , libpng, libxml2, libxslt, libcap , xdg_utils, yasm, minizip, libwebp @@ -21,12 +21,13 @@ # package customization , enableSELinux ? false, libselinux ? null , enableNaCl ? false +, enableHotwording ? false , useOpenSSL ? false, nss ? null, openssl ? null , gnomeSupport ? false, gnome ? null , gnomeKeyringSupport ? false, libgnome_keyring3 ? null , proprietaryCodecs ? true , cupsSupport ? true -, pulseSupport ? false, pulseaudio ? null +, pulseSupport ? false, libpulseaudio ? null , hiDPISupport ? false , source @@ -84,7 +85,7 @@ let }; defaultDependencies = [ - bzip2 flac speex icu opusWithCustomModes + bzip2 flac speex opusWithCustomModes libevent expat libjpeg snappy libpng libxml2 libxslt libcap xdg_utils yasm minizip libwebp @@ -118,28 +119,18 @@ let ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] ++ optional enableSELinux libselinux ++ optionals cupsSupport [ libgcrypt cups ] - ++ optional pulseSupport pulseaudio; + ++ optional pulseSupport libpulseaudio; # XXX: Wait for https://crbug.com/239107 and https://crbug.com/239181 to # be fixed, then try again to unbundle everything into separate # derivations. prePatch = '' - cp -dsr --no-preserve=mode "${source.main}"/* . - cp -dsr --no-preserve=mode "${source.sandbox}" sandbox + cp -dr --no-preserve=mode "${source.main}"/* . cp -dr "${source.bundled}" third_party chmod -R u+w third_party - - # Hardcode source tree root in all gyp files - find -iname '*.gyp*' \( -type f -o -type l \) \ - -exec sed -i -e 's|<(DEPTH)|'"$(pwd)"'|g' {} + \ - -exec chmod u+w {} + ''; - postPatch = optionalString (versionOlder version "42.0.0.0") '' - sed -i -e '/base::FilePath exe_dir/,/^ *} *$/c \ - sandbox_binary = base::FilePath(getenv("CHROMIUM_SANDBOX_BINARY_PATH")); - ' sandbox/linux/suid/client/setuid_sandbox_client.cc - '' + '' + postPatch = '' sed -i -e '/module_path *=.*libexif.so/ { s|= [^;]*|= base::FilePath().AppendASCII("${libexif}/lib/libexif.so")| }' chrome/utility/media_galleries/image_metadata_extractor.cc @@ -163,11 +154,10 @@ let use_pulseaudio = pulseSupport; linux_link_pulseaudio = pulseSupport; disable_nacl = !enableNaCl; + enable_hotwording = enableHotwording; use_openssl = useOpenSSL; selinux = enableSELinux; use_cups = cupsSupport; - } // optionalAttrs (versionOlder version "42.0.0.0") { - linux_sandbox_chrome_path="${libExecPath}/${packageName}"; } // { werror = ""; clang = false; @@ -200,7 +190,7 @@ let # This is to ensure expansion of $out. libExecPath="${libExecPath}" python build/linux/unbundle/replace_gyp_files.py ${gypFlags} - python build/gyp_chromium -f ninja --depth "$(pwd)" ${gypFlags} + python build/gyp_chromium -f ninja --depth . ${gypFlags} ''; buildPhase = let diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 85b2e9b8051e..9a7f4a2757ef 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -4,6 +4,7 @@ , channel ? "stable" , enableSELinux ? false , enableNaCl ? false +, enableHotwording ? false , useOpenSSL ? false , gnomeSupport ? false , gnomeKeyringSupport ? false @@ -26,13 +27,12 @@ let }; mkChromiumDerivation = callPackage ./common.nix { - inherit enableSELinux enableNaCl useOpenSSL gnomeSupport - gnomeKeyringSupport proprietaryCodecs cupsSupport - pulseSupport hiDPISupport; + inherit enableSELinux enableNaCl enableHotwording useOpenSSL gnomeSupport + gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport + hiDPISupport; }; browser = callPackage ./browser.nix { }; - sandbox = callPackage ./sandbox.nix { }; plugins = callPackage ./plugins.nix { inherit enablePepperFlash enableWideVine; @@ -41,8 +41,8 @@ let desktopItem = makeDesktopItem { name = "chromium"; - exec = "chromium"; - icon = "${chromium.browser}/share/icons/hicolor/48x48/apps/chromium.png"; + exec = "chromium %U"; + icon = "chromium"; comment = "An open source web browser from Google"; desktopName = "Chromium"; genericName = "Web browser"; @@ -70,18 +70,14 @@ in stdenv.mkDerivation { buildCommand = let browserBinary = "${chromium.browser}/libexec/chromium/chromium"; - sandboxBinary = "${chromium.sandbox}/bin/chromium-sandbox"; mkEnvVar = key: val: "--set '${key}' '${val}'"; envVars = chromium.plugins.settings.envVars or {}; - isVer42 = !stdenv.lib.versionOlder chromium.browser.version "42.0.0.0"; flags = chromium.plugins.settings.flags or []; - setBinPath = "--set CHROMIUM_SANDBOX_BINARY_PATH \"${sandboxBinary}\""; in with stdenv.lib; '' mkdir -p "$out/bin" "$out/share/applications" ln -s "${chromium.browser}/share" "$out/share" makeWrapper "${browserBinary}" "$out/bin/chromium" \ - ${optionalString (!isVer42) setBinPath} \ ${concatStrings (mapAttrsToList mkEnvVar envVars)} \ --add-flags "${concatStringsSep " " flags}" diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index b4766cee4347..0b0e5bd08382 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -21,10 +21,9 @@ let chan = if source.channel == "dev" then "chrome-unstable" else if source.channel == "stable" then "chrome" else "chrome-${source.channel}"; - cext = if versionOlder source.version "41.0.0.0" then "lzma" else "xz"; in '' mkdir -p plugins - ar p "$src" data.tar.${cext} | tar xJ -C plugins --strip-components=4 \ + ar p "$src" data.tar.xz | tar xJ -C plugins --strip-components=4 \ ./opt/google/${chan}/PepperFlash \ ./opt/google/${chan}/libwidevinecdm.so \ ./opt/google/${chan}/libwidevinecdmadapter.so @@ -54,7 +53,7 @@ let wvDescription = "Playback of encrypted HTML audio/video content"; wvMimeTypes = "application/x-ppapi-widevine-cdm"; wvModule = "$widevine/lib/libwidevinecdmadapter.so"; - wvInfo = "#${wvName}#${wvDescription}:${wvMimeTypes}"; + wvInfo = "#${wvName}#${wvDescription};${wvMimeTypes}"; in '' flashVersion="$( sed -n -r 's/.*"version": "([^"]+)",.*/\1/p' PepperFlash/manifest.json diff --git a/pkgs/applications/networking/browsers/chromium/sandbox.nix b/pkgs/applications/networking/browsers/chromium/sandbox.nix deleted file mode 100644 index b470ed633253..000000000000 --- a/pkgs/applications/networking/browsers/chromium/sandbox.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, source }: - -stdenv.mkDerivation { - name = "chromium-sandbox-${source.version}"; - src = source.sandbox; - - patchPhase = '' - sed -i -e '/#include.*base_export/c \ - #define BASE_EXPORT __attribute__((visibility("default"))) - /#include/s|sandbox/linux|'"$(pwd)"'/linux| - ' linux/suid/*.[hc] - ''; - - buildPhase = '' - gcc -Wall -std=gnu99 -o sandbox linux/suid/*.c - ''; - - installPhase = '' - install -svD sandbox "$out/bin/chromium-sandbox" - ''; -} diff --git a/pkgs/applications/networking/browsers/chromium/source/build_fixes_46.patch b/pkgs/applications/networking/browsers/chromium/source/build_fixes_46.patch new file mode 100644 index 000000000000..c0aeb5d3a56c --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/source/build_fixes_46.patch @@ -0,0 +1,14 @@ +diff --git a/chrome/test/data/webui_test_resources.grd b/chrome/test/data/webui_test_resources.grd +index 6f8530d..f92a76a 100644 +--- a/chrome/test/data/webui_test_resources.grd ++++ b/chrome/test/data/webui_test_resources.grd +@@ -6,9 +6,4 @@ + </output> + <output filename="webui_test_resources.pak" type="data_package" /> + </outputs> +- <release seq="1"> +- <includes> +- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" /> +- </includes> +- </release> + </grit> diff --git a/pkgs/applications/networking/browsers/chromium/source/default.nix b/pkgs/applications/networking/browsers/chromium/source/default.nix index 54430bb5be9f..965c7885416c 100644 --- a/pkgs/applications/networking/browsers/chromium/source/default.nix +++ b/pkgs/applications/networking/browsers/chromium/source/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python +{ stdenv, fetchurl, fetchpatch, patchutils, python , channel ? "stable" , useOpenSSL # XXX }: @@ -14,12 +14,9 @@ let "s,^[^/]+(.*)$,$main\\1," "s,$main/(build|tools)(/.*)?$,$out/\\1\\2," "s,$main/third_party(/.*)?$,$bundled\\1," - "s,$main/sandbox(/.*)?$,$sandbox\\1," "s,^/,," ]); - pre42 = versionOlder version "42.0.0.0"; - in stdenv.mkDerivation { name = "chromium-source-${version}"; @@ -28,7 +25,7 @@ in stdenv.mkDerivation { buildInputs = [ python ]; # cannot patch shebangs otherwise phases = [ "unpackPhase" "patchPhase" ]; - outputs = [ "out" "sandbox" "bundled" "main" ]; + outputs = [ "out" "bundled" "main" ]; unpackPhase = '' tar xf "$src" -C / \ @@ -47,11 +44,11 @@ in stdenv.mkDerivation { done ''; - patches = if pre42 then [ - ./sandbox_userns_36.patch ./nix_plugin_paths.patch - ] else [ - ./nix_plugin_paths_42.patch - ]; + patches = + if versionOlder version "45.0.0.0" + then singleton ./nix_plugin_paths_44.patch + else singleton ./nix_plugin_paths_46.patch ++ + optional (!versionOlder version "46.0.0.0") ./build_fixes_46.patch; patchPhase = let diffmod = sym: "/^${sym} /{s/^${sym} //;${transform ""};s/^/${sym} /}"; @@ -75,13 +72,8 @@ in stdenv.mkDerivation { "$out/build/common.gypi" "$main/chrome/chrome_tests.gypi" '' + optionalString useOpenSSL '' cat $opensslPatches | patch -p1 -d "$bundled/openssl/openssl" - '' + optionalString (!pre42) '' - sed -i -e '/LOG.*no_suid_error/d' \ - "$main/content/browser/browser_main_loop.cc" ''; - preferLocalBuild = true; - passthru = { inherit version channel; plugins = fetchurl binary; diff --git a/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_42.patch b/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_44.patch index fb09763c997a..326da7f420a5 100644 --- a/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_42.patch +++ b/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_44.patch @@ -55,15 +55,6 @@ index 8a205a6..d5c24e1 100644 return false; cur = cur.Append(kInternalFlashPluginFileName); break; -@@ -295,7 +288,7 @@ bool PathProvider(int key, base::FilePath* result) { - cur = cur.Append(chrome::kPepperFlashPluginFilename); - break; - case chrome::FILE_EFFECTS_PLUGIN: -- if (!GetInternalPluginsDirectory(&cur)) -+ if (!GetInternalPluginsDirectory(&cur, "FILE_EFFECTS")) - return false; - cur = cur.Append(kEffectsPluginFileName); - break; @@ -308,7 +301,7 @@ bool PathProvider(int key, base::FilePath* result) { // We currently need a path here to look up whether the plugin is disabled // and what its permissions are. diff --git a/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths.patch b/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_46.patch index 0220d0429413..7482be7062d0 100644 --- a/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths.patch +++ b/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_46.patch @@ -1,8 +1,8 @@ diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc -index 8a205a6..d5c24e1 100644 +index 74bf041..5f34198 100644 --- a/chrome/common/chrome_paths.cc +++ b/chrome/common/chrome_paths.cc -@@ -97,21 +97,14 @@ static base::LazyInstance<base::FilePath> +@@ -66,21 +66,14 @@ static base::LazyInstance<base::FilePath> g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER; // Gets the path for internal plugins. @@ -31,8 +31,8 @@ index 8a205a6..d5c24e1 100644 + *result = base::FilePath(value); } - } // namespace -@@ -248,11 +241,11 @@ bool PathProvider(int key, base::FilePath* result) { + #if defined(OS_WIN) +@@ -253,11 +246,11 @@ bool PathProvider(int key, base::FilePath* result) { create_dir = true; break; case chrome::DIR_INTERNAL_PLUGINS: @@ -46,31 +46,7 @@ index 8a205a6..d5c24e1 100644 return false; cur = cur.Append(kPepperFlashBaseDirectory); break; -@@ -285,7 +278,7 @@ bool PathProvider(int key, base::FilePath* result) { - cur = cur.Append(FILE_PATH_LITERAL("script.log")); - break; - case chrome::FILE_FLASH_PLUGIN: -- if (!GetInternalPluginsDirectory(&cur)) -+ if (!GetInternalPluginsDirectory(&cur, "FILEFLASH")) - return false; - cur = cur.Append(kInternalFlashPluginFileName); - break; -@@ -295,12 +288,12 @@ bool PathProvider(int key, base::FilePath* result) { - cur = cur.Append(chrome::kPepperFlashPluginFilename); - break; - case chrome::FILE_PDF_PLUGIN: -- if (!GetInternalPluginsDirectory(&cur)) -+ if (!GetInternalPluginsDirectory(&cur, "PDF")) - return false; - cur = cur.Append(kInternalPDFPluginFileName); - break; - case chrome::FILE_EFFECTS_PLUGIN: -- if (!GetInternalPluginsDirectory(&cur)) -+ if (!GetInternalPluginsDirectory(&cur, "FILE_EFFECTS")) - return false; - cur = cur.Append(kEffectsPluginFileName); - break; -@@ -308,7 +301,7 @@ bool PathProvider(int key, base::FilePath* result) { +@@ -314,7 +307,7 @@ bool PathProvider(int key, base::FilePath* result) { // We currently need a path here to look up whether the plugin is disabled // and what its permissions are. case chrome::FILE_NACL_PLUGIN: @@ -79,7 +55,7 @@ index 8a205a6..d5c24e1 100644 return false; cur = cur.Append(kInternalNaClPluginFileName); break; -@@ -343,7 +336,7 @@ bool PathProvider(int key, base::FilePath* result) { +@@ -349,7 +342,7 @@ bool PathProvider(int key, base::FilePath* result) { cur = cur.DirName(); } #else @@ -88,7 +64,7 @@ index 8a205a6..d5c24e1 100644 return false; #endif cur = cur.Append(FILE_PATH_LITERAL("pnacl")); -@@ -372,7 +365,7 @@ bool PathProvider(int key, base::FilePath* result) { +@@ -366,7 +359,7 @@ bool PathProvider(int key, base::FilePath* result) { // In the component case, this is the source adapter. Otherwise, it is the // actual Pepper module that gets loaded. case chrome::FILE_WIDEVINE_CDM_ADAPTER: diff --git a/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_36.patch b/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_36.patch deleted file mode 100644 index 6f5d52b72af1..000000000000 --- a/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_36.patch +++ /dev/null @@ -1,287 +0,0 @@ -commit 0fec7e4a742f001c9816a8b58a1120fb44230867 -Author: aszlig <aszlig@redmoonstudios.org> -Date: Thu May 16 14:17:56 2013 +0200 - - zygote: Add support for user namespaces on Linux. - - The implementation is done by patching the Zygote host to execute the sandbox - binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child - process is using uid 0 and gid 0 which map to the current user of the parent. - Afterwards, the sandbox will continue as if it was called as a setuid binary. - - In addition, this adds new_user_namespace as an option in process_util in order - to set the UID and GID mapping correctly. The reason for this is that just - passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because - without setting the mappings exec*() will clear the process's capability sets. - - If the kernel doesn't support unprivileged user namespaces and the sandbox - binary doesn't have the setuid flag, the Zygote main process will run without a - sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set. - - Signed-off-by: aszlig <aszlig@redmoonstudios.org> - -diff --git a/base/process/launch.cc b/base/process/launch.cc -index 81748f5..930f20f 100644 ---- a/base/process/launch.cc -+++ b/base/process/launch.cc -@@ -26,6 +26,7 @@ LaunchOptions::LaunchOptions() - #if defined(OS_LINUX) - , clone_flags(0) - , allow_new_privs(false) -+ , new_user_namespace(false) - #endif // OS_LINUX - #if defined(OS_CHROMEOS) - , ctrl_terminal_fd(-1) -diff --git a/base/process/launch.h b/base/process/launch.h -index 9e39fba..00e4c79 100644 ---- a/base/process/launch.h -+++ b/base/process/launch.h -@@ -115,6 +115,9 @@ struct BASE_EXPORT LaunchOptions { - // By default, child processes will have the PR_SET_NO_NEW_PRIVS bit set. If - // true, then this bit will not be set in the new child process. - bool allow_new_privs; -+ -+ // If true, start the process in a new user namespace. -+ bool new_user_namespace; - #endif // defined(OS_LINUX) - - #if defined(OS_CHROMEOS) -diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc -index 457234f..a99ce9b 100644 ---- a/base/process/launch_posix.cc -+++ b/base/process/launch_posix.cc -@@ -40,6 +40,10 @@ - - #if defined(OS_LINUX) - #include <sys/prctl.h> -+#include <sched.h> -+#if !defined(CLONE_NEWUSER) -+#define CLONE_NEWUSER 0x10000000 -+#endif - #endif - - #if defined(OS_CHROMEOS) -@@ -301,13 +305,23 @@ bool LaunchProcess(const std::vector<std::string>& argv, - - pid_t pid; - #if defined(OS_LINUX) -- if (options.clone_flags) { -+ int map_pipe_fd[2]; -+ int flags = options.clone_flags; -+ -+ if (options.new_user_namespace) { -+ flags |= CLONE_NEWUSER; -+ if (pipe(map_pipe_fd) < 0) { -+ DPLOG(ERROR) << "user namespace pipe"; -+ return false; -+ } -+ } -+ -+ if (options.clone_flags || options.new_user_namespace) { - // Signal handling in this function assumes the creation of a new - // process, so we check that a thread is not being created by mistake - // and that signal handling follows the process-creation rules. -- RAW_CHECK( -- !(options.clone_flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM))); -- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0); -+ RAW_CHECK(!(flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM))); -+ pid = syscall(__NR_clone, flags, 0, 0, 0); - } else - #endif - { -@@ -328,6 +342,21 @@ bool LaunchProcess(const std::vector<std::string>& argv, - // DANGER: no calls to malloc or locks are allowed from now on: - // http://crbug.com/36678 - -+#if defined(OS_LINUX) -+ if (options.new_user_namespace) { -+ // Close the write end of the pipe so we get an EOF when the parent closes -+ // the FD. This is to avoid race conditions when the UID/GID mappings are -+ // written _after_ execvp(). -+ close(map_pipe_fd[1]); -+ -+ char dummy; -+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) { -+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe."); -+ _exit(127); -+ } -+ } -+#endif -+ - // DANGER: fork() rule: in the child, if you don't end up doing exec*(), - // you call _exit() instead of exit(). This is because _exit() does not - // call any previously-registered (in the parent) exit handlers, which -@@ -452,6 +481,40 @@ bool LaunchProcess(const std::vector<std::string>& argv, - _exit(127); - } else { - // Parent process -+#if defined(OS_LINUX) -+ if (options.new_user_namespace) { -+ // We need to write UID/GID mapping here to map the current user outside -+ // the namespace to the root user inside the namespace in order to -+ // correctly "fool" the child process. -+ char buf[256]; -+ int map_fd, map_len; -+ -+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid); -+ map_fd = open(buf, O_RDWR); -+ DPCHECK(map_fd >= 0); -+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid()); -+ map_len = strlen(buf); -+ if (write(map_fd, buf, map_len) != map_len) { -+ RAW_LOG(WARNING, "Can't write to uid_map."); -+ } -+ close(map_fd); -+ -+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid); -+ map_fd = open(buf, O_RDWR); -+ DPCHECK(map_fd >= 0); -+ snprintf(buf, sizeof(buf), "0 %d 1", getegid()); -+ map_len = strlen(buf); -+ if (write(map_fd, buf, map_len) != map_len) { -+ RAW_LOG(WARNING, "Can't write to gid_map."); -+ } -+ close(map_fd); -+ -+ // Close the pipe on the parent, so the child can continue doing the -+ // execvp() call. -+ close(map_pipe_fd[1]); -+ } -+#endif -+ - if (options.wait) { - // While this isn't strictly disk IO, waiting for another process to - // finish is the sort of thing ThreadRestrictions is trying to prevent. -diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc -index 9d63ad9..0885705 100644 ---- a/content/browser/zygote_host/zygote_host_impl_linux.cc -+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc -@@ -144,6 +144,9 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) { - // A non empty sandbox_cmd means we want a SUID sandbox. - using_suid_sandbox_ = !sandbox_cmd.empty(); - -+ bool userns_sandbox = false; -+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv()); -+ - // Start up the sandbox host process and get the file descriptor for the - // renderers to talk to it. - const int sfd = RenderSandboxHostLinux::GetInstance()->GetRendererSocket(); -@@ -156,11 +159,24 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) { - sandbox_client->PrependWrapper(&cmd_line); - sandbox_client->SetupLaunchOptions(&options, &fds_to_map, &dummy_fd); - sandbox_client->SetupLaunchEnvironment(); -+ userns_sandbox = sandbox_client->IsNoSuid(); - } - - base::ProcessHandle process = -1; - options.fds_to_remap = &fds_to_map; -+ if (userns_sandbox) -+ options.new_user_namespace = true; - base::LaunchProcess(cmd_line.argv(), options, &process); -+ -+ if (process == -1 && userns_sandbox) { -+ LOG(ERROR) << "User namespace sandbox failed to start, running without " -+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS " -+ << "enabled in order to use the sandbox without setuid bit."; -+ using_suid_sandbox_ = false; -+ options.new_user_namespace = false; -+ base::LaunchProcess(cmd_line_unwrapped, options, &process); -+ } -+ - CHECK(process != -1) << "Failed to launch zygote process"; - dummy_fd.reset(); - -diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc -index 11f0602..b7b8214 100644 ---- a/content/zygote/zygote_main_linux.cc -+++ b/content/zygote/zygote_main_linux.cc -@@ -389,6 +389,13 @@ static bool EnterSuidSandbox(sandbox::SetuidSandboxClient* setuid_sandbox) { - CHECK(CreateInitProcessReaper()); - } - -+ // Don't set non-dumpable, as it causes trouble when the host tries to find -+ // the zygote process (XXX: Not quite sure why this happens with user -+ // namespaces). Fortunately, we also have the seccomp filter sandbox which -+ // should disallow the use of ptrace. -+ if (setuid_sandbox->IsNoSuid()) -+ return true; -+ - #if !defined(OS_OPENBSD) - // Previously, we required that the binary be non-readable. This causes the - // kernel to mark the process as non-dumpable at startup. The thinking was -diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc -index fc03cdd..a972faa 100644 ---- a/sandbox/linux/suid/client/setuid_sandbox_client.cc -+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc -@@ -229,6 +229,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const { - return env_->HasVar(kSandboxNETNSEnvironmentVarName); - } - -+bool SetuidSandboxClient::IsNoSuid() const { -+ return env_->HasVar(kSandboxNoSuidVarName); -+} -+ - bool SetuidSandboxClient::IsSandboxed() const { - return sandboxed_; - } -@@ -277,8 +281,7 @@ void SetuidSandboxClient::PrependWrapper(base::CommandLine* cmd_line) { - "LinuxSUIDSandboxDevelopment."; - } - -- if (access(sandbox_binary.c_str(), X_OK) != 0 || (st.st_uid != 0) || -- ((st.st_mode & S_ISUID) == 0) || ((st.st_mode & S_IXOTH)) == 0) { -+ if (access(sandbox_binary.c_str(), X_OK) != 0) { - LOG(FATAL) << "The SUID sandbox helper binary was found, but is not " - "configured correctly. Rather than run without sandboxing " - "I'm aborting now. You need to make sure that " -@@ -286,6 +289,12 @@ void SetuidSandboxClient::PrependWrapper(base::CommandLine* cmd_line) { - } - - cmd_line->PrependWrapper(sandbox_binary); -+ -+ if (!((st.st_uid == 0) && -+ (st.st_mode & S_ISUID) && -+ (st.st_mode & S_IXOTH))) { -+ env_->SetVar(kSandboxNoSuidVarName, "1"); -+ } - } - - void SetuidSandboxClient::SetupLaunchOptions( -diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h -index 2bbad7a..8605475 100644 ---- a/sandbox/linux/suid/client/setuid_sandbox_client.h -+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h -@@ -66,6 +66,8 @@ class SANDBOX_EXPORT SetuidSandboxClient { - bool IsInNewPIDNamespace() const; - // Did the setuid helper create a new network namespace ? - bool IsInNewNETNamespace() const; -+ // Is sandboxed without SUID binary ? -+ bool IsNoSuid() const; - // Are we done and fully sandboxed ? - bool IsSandboxed() const; - -diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h -index 9345287..2db659e 100644 ---- a/sandbox/linux/suid/common/sandbox.h -+++ b/sandbox/linux/suid/common/sandbox.h -@@ -15,6 +15,7 @@ static const char kAdjustOOMScoreSwitch[] = "--adjust-oom-score"; - - static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D"; - static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID"; -+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID"; - - static const long kSUIDSandboxApiNumber = 1; - static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ"; -diff --git a/sandbox/linux/suid/sandbox.c b/sandbox/linux/suid/sandbox.c -index 7410b71..a83593d 100644 ---- a/sandbox/linux/suid/sandbox.c -+++ b/sandbox/linux/suid/sandbox.c -@@ -330,7 +330,7 @@ static bool DropRoot() { - return false; - } - -- if (setresgid(rgid, rgid, rgid)) { -+ if (egid != rgid && setresgid(rgid, rgid, rgid)) { - perror("setresgid"); - return false; - } diff --git a/pkgs/applications/networking/browsers/chromium/source/sources.nix b/pkgs/applications/networking/browsers/chromium/source/sources.nix index e1144a44afb2..b80e3b534fbb 100644 --- a/pkgs/applications/networking/browsers/chromium/source/sources.nix +++ b/pkgs/applications/networking/browsers/chromium/source/sources.nix @@ -1,21 +1,21 @@ # This file is autogenerated from update.sh in the parent directory. { dev = { - version = "43.0.2327.5"; - sha256 = "0k9jpzm1n7d3zv6f77vz33jcvmnbxnl6plabvlrf8w83kbzhi76n"; - sha256bin32 = "1dm4xp0x02kqj82giw45qd2z12wf22h2bs0d3hnlz050innxgcb6"; - sha256bin64 = "1b13g44y704llsnw68840zmaahj1hwzram50v8fqmff44w1b0bxb"; + version = "47.0.2508.0"; + sha256 = "1jmcvbimj3x91czvclnqbp8w2nfqhk2bd7bw9yd37c576md1wnw2"; + sha256bin32 = "10spq63yfyzw419bz22r2g5rmnaxy5861715mkrcbpfm8cylzmzh"; + sha256bin64 = "1ycdp37ikdc9w4hp9qgpzjp47zh37g01ax8x4ack202vrv0dxhsh"; }; beta = { - version = "42.0.2311.39"; - sha256 = "0qiyg8bg9f1daf8v2jlrv54lis7156h44ak42jdx96xanvj2rvj0"; - sha256bin32 = "0v4dr2a3n51dais2mg0dml0rmqfmalfj0zgp20a4kkarbpih1x0v"; - sha256bin64 = "19638ik9qgfmxpzdry0qwkwpzvhlbs2h2nn1kwsjja5j49817ksx"; + version = "46.0.2490.42"; + sha256 = "0nw6sc6vc5vm5j133hrjq06bibaljq5calqlmzha8ckx21zrr5yy"; + sha256bin32 = "1a1xi4w7f16chb9w1c102ya7890lj31c0fyyrwgvmpymlw9msnh0"; + sha256bin64 = "11758h6674d7g6c5bb820x1pg5z9q78j582kd0sa0p73g5888wd0"; }; stable = { - version = "41.0.2272.89"; - sha256 = "1saxcyqp8pz496qwdgl4dqxll6l9icbljm56w1rrkxgwrrvl4iwk"; - sha256bin32 = "19srg0isp1k4fwixwjxm1j88bnqx9sb349n992i038c3h8raa1v4"; - sha256bin64 = "1fb8ffgbsjsij7bd1qawa03z9pybasfig1cmdzwybmlwg2fdlvfv"; + version = "45.0.2454.101"; + sha256 = "1yw5xlgy5hd3iwcyf0sillq5p367fcpvp4mizpmv52cwmv52ss0v"; + sha256bin32 = "1ll8lmkmx7v74naz1vcnrwk5ighh0skfcb66jkq4kgxrb5fjgwm5"; + sha256bin64 = "1cwbd3n77dnbfnrfr8g0qng9xkgvz6y7mx489gpx1wsamgi42bzj"; }; } diff --git a/pkgs/applications/networking/browsers/chromium/source/update.nix b/pkgs/applications/networking/browsers/chromium/source/update.nix index 27af85de5465..49864cf1c7b0 100644 --- a/pkgs/applications/networking/browsers/chromium/source/update.nix +++ b/pkgs/applications/networking/browsers/chromium/source/update.nix @@ -9,7 +9,7 @@ let then import ./sources.nix else null; - bucketURL = "http://commondatastorage.googleapis.com/" + bucketURL = "https://commondatastorage.googleapis.com/" + "chromium-browser-official"; debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g"; @@ -18,6 +18,7 @@ let debMirrors = [ "http://95.31.35.30/chrome/pool/main/g" "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g" + "http://repo.fdzh.org/chrome/deb/pool/main/g" ]; tryChannel = channel: let diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh index e82d22f34fd0..e079762420be 100755 --- a/pkgs/applications/networking/browsers/chromium/update.sh +++ b/pkgs/applications/networking/browsers/chromium/update.sh @@ -11,22 +11,6 @@ source "$(nix-build --no-out-link "$base_path/update.nix" -A updateHelpers)"; ver_sha_table=""; # list of version:sha256 -sha_lookup() -{ - version="$1"; - - for ver_sha in $ver_sha_table; - do - if [ "x${ver_sha%:*}" = "x$version" ]; - then - echo "${ver_sha##*:}"; - return 0; - fi; - done; - - return 1; -} - sha_insert() { version="$1"; @@ -72,22 +56,15 @@ get_channel_exprs() channel="${chline%%,*}"; version="${chline##*,}"; - echo -n "Checking if sha256 of version $version is cached..." >&2; - if sha256="$(sha_lookup "$version")"; + sha256="$(get_sha256 "$channel" "$version")"; + if [ $? -ne 0 ]; then - echo " yes: $sha256" >&2; - else - echo " no." >&2; - sha256="$(get_sha256 "$channel" "$version")"; - if [ $? -ne 0 ]; - then - echo "Whoops, failed to fetch $version, trying previous" \ - "versions:" >&2; - - sha_ver="$(get_prev_sha256 "$channel" "$version")"; - sha256="${sha_ver%:*}"; - version="${sha_ver#*:}"; - fi; + echo "Whoops, failed to fetch $version, trying previous" \ + "versions:" >&2; + + sha_ver="$(get_prev_sha256 "$channel" "$version")"; + sha256="${sha_ver%:*}"; + version="${sha_ver#*:}"; fi; sha_insert "$version" "$sha256"; diff --git a/pkgs/applications/networking/browsers/conkeror/default.nix b/pkgs/applications/networking/browsers/conkeror/default.nix index f6e3cd3cf8d1..007c49b2733b 100644 --- a/pkgs/applications/networking/browsers/conkeror/default.nix +++ b/pkgs/applications/networking/browsers/conkeror/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchgit, unzip, firefox, makeWrapper }: stdenv.mkDerivation { - name = "conkeror-1.0pre-20150319"; + name = "conkeror-1.0pre-20150730"; src = fetchgit { url = git://repo.or.cz/conkeror.git; - rev = "6450632b3f0c315f79e7a9856658083fe8fc9c29"; - sha256 = "18cqz1n2n6aimmgd69mdrgmkjf4207k7yz11wihka6b5z1hfiv64"; + rev = "a1f7e879b129df5cf14ea4ce80a9c1407380ed58"; + sha256 = "12d8949a81a670037664dd930f7efe3d54b321aad48deea68343eba9aaea8785"; }; buildInputs = [ unzip makeWrapper ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation { --add-flags "-app $out/libexec/conkeror/application.ini" ''; - meta = { + meta = with stdenv.lib; { description = "A keyboard-oriented, customizable, extensible web browser"; longDescription = '' Conkeror is a keyboard-oriented, highly-customizable, highly-extensible @@ -30,8 +30,8 @@ stdenv.mkDerivation { self-documenting, featuring a powerful interactive help system. ''; homepage = http://conkeror.org/; - license = [ "MPLv1.1" "GPLv2" "LGPLv2.1" ]; - maintainers = with stdenv.lib.maintainers; [ astsmtl chaoflow ]; - platforms = with stdenv.lib.platforms; linux; + license = with licenses; [ mpl11 gpl2 lgpl21 ]; + maintainers = with maintainers; [ astsmtl chaoflow ]; + platforms = with platforms; linux; }; } diff --git a/pkgs/applications/networking/browsers/dillo/default.nix b/pkgs/applications/networking/browsers/dillo/default.nix index c6c862638889..a54e5e0c3701 100644 --- a/pkgs/applications/networking/browsers/dillo/default.nix +++ b/pkgs/applications/networking/browsers/dillo/default.nix @@ -6,18 +6,16 @@ , libXcursor, libXi, libXinerama }: stdenv.mkDerivation rec { - version = "3.0.4"; + version = "3.0.5"; name = "dillo-${version}"; src = fetchurl { url = "http://www.dillo.org/download/${name}.tar.bz2"; - sha256 = "0ffz481vgl7f12f575pmbagm8swgxgv9s9c0p8c7plhd04jsnazf"; + sha256 = "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv"; }; buildInputs = with stdenv.lib; - [ fltk openssl libjpeg libpng libXcursor libXi libXinerama ]; - - nativeBuildInputs = [ perl ]; + [ perl fltk openssl libjpeg libpng libXcursor libXi libXinerama ]; configureFlags = "--enable-ssl"; diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix index f4b36d5e7567..d79a5215ce21 100644 --- a/pkgs/applications/networking/browsers/dwb/default.nix +++ b/pkgs/applications/networking/browsers/dwb/default.nix @@ -1,16 +1,17 @@ -{ stdenv, fetchgit, pkgconfig, makeWrapper, libsoup, webkitgtk2, gtk2, gnutls, json_c, - m4, glib_networking, gsettings_desktop_schemas, dconf }: +{ stdenv, fetchgit, pkgconfig, makeWrapper, libsoup, webkitgtk2, gtk2, gnutls +, json_c, m4, glib_networking, gsettings_desktop_schemas, dconf }: stdenv.mkDerivation { - name = "dwb-2014-12-15"; + name = "dwb-2015-07-07"; src = fetchgit { url = "https://bitbucket.org/0mark/dwb_collect"; - rev = "b94785470b11a0b6b52eecfc3bae276796b83a0d"; - sha256 = "09xbifj223mflj62rfhi6q7cvnkpkzkwyyqhkm8w067pdscdhyvs"; + rev = "9a50dcc7134015c6cb1d26afb77840cf69f7c782"; + sha256 = "03nyr3c0x5b1jqax0zh407vvi4j47zkj1i52lqs35j2d2sci3lkb"; }; - buildInputs = [ pkgconfig makeWrapper gsettings_desktop_schemas libsoup webkitgtk2 gtk2 gnutls json_c m4 ]; + buildInputs = [ pkgconfig makeWrapper gsettings_desktop_schemas libsoup + webkitgtk2 gtk2 gnutls json_c m4 ]; # There are Xlib and gtk warnings therefore I have set Wno-error makeFlags = ''PREFIX=$(out) GTK=2 CPPFLAGS="-Wno-error"''; @@ -27,7 +28,11 @@ stdenv.mkDerivation { homepage = http://portix.bitbucket.org/dwb/; description = "A lightweight web browser based on the webkit web browser engine and the gtk toolkit"; platforms = platforms.mesaPlatforms; - maintainers = with maintainers;[ pSub ]; + maintainers = with maintainers; [ pSub ]; license = licenses.gpl3; + + # dwb is no longer maintained by portix and efforts to keep it alive + # were not successful, see issue #7952 for discussion. + broken = true; }; } diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix index 0e4fd4db1ba8..1a698b0effda 100644 --- a/pkgs/applications/networking/browsers/elinks/default.nix +++ b/pkgs/applications/networking/browsers/elinks/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, perl, ncurses, x11, bzip2, zlib, openssl +{ stdenv, fetchurl, perl, ncurses, xlibsWrapper, bzip2, zlib, openssl , spidermonkey, gpm , enableGuile ? false, guile ? null # Incompatible licenses, LGPLv3 - GPLv2 , enablePython ? false, python ? null @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { patches = [ ./gc-init.patch ]; - buildInputs = [ perl ncurses x11 bzip2 zlib openssl spidermonkey gpm ] + buildInputs = [ perl ncurses xlibsWrapper bzip2 zlib openssl spidermonkey gpm ] ++ stdenv.lib.optional enableGuile guile ++ stdenv.lib.optional enablePython python; diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 23726f5c3d18..336c727ea151 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -30,8 +30,8 @@ , nspr , nss , pango -, heimdal -, pulseaudio +, libheimdal +, libpulseaudio , systemd }: @@ -102,8 +102,8 @@ stdenv.mkDerivation { nspr nss pango - heimdal - pulseaudio + libheimdal + libpulseaudio systemd ] + ":" + stdenv.lib.makeSearchPath "lib64" [ stdenv.cc.cc @@ -129,13 +129,9 @@ stdenv.mkDerivation { "$out/usr/lib/firefox-bin-${version}/$executable" done - for executable in \ - firefox firefox-bin plugin-container \ - updater crashreporter webapprt-stub libxul.so - do + find . -executable -type f -exec \ patchelf --set-rpath "$libPath" \ - "$out/usr/lib/firefox-bin-${version}/$executable" - done + "$out/usr/lib/firefox-bin-${version}/{}" \; # Create a desktop item. mkdir -p $out/share/applications @@ -143,7 +139,7 @@ stdenv.mkDerivation { [Desktop Entry] Type=Application Exec=$out/bin/firefox - Icon=$out/lib/firefox-bin-${version}/chrome/icons/default/default256.png + Icon=$out/usr/lib/firefox-bin-${version}/browser/icons/mozicon128.png Name=Firefox GenericName=Web Browser Categories=Application;Network; diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb index eabff067f750..b7627e52068d 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb +++ b/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb @@ -8,7 +8,7 @@ version = if ARGV.empty? ARGV[0] end -base_path = "http://download-installer.cdn.mozilla.net/pub/firefox/releases" +base_path = "http://archive.mozilla.org/pub/firefox/releases" Source = Struct.new(:hash, :arch, :locale, :filename) diff --git a/pkgs/applications/networking/browsers/firefox-bin/sources.nix b/pkgs/applications/networking/browsers/firefox-bin/sources.nix index 4d002119a898..f617cf5636b8 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/sources.nix @@ -4,185 +4,185 @@ # ruby generate_source.rb > source.nix { - version = "37.0.2"; + version = "41.0.1"; sources = [ - { locale = "ach"; arch = "linux-i686"; sha1 = "77e30ca3d592424f80cf7c6cf31e90edddbebb3d"; } - { locale = "ach"; arch = "linux-x86_64"; sha1 = "c101098915d8955da06751d5bdf2afe029054e3f"; } - { locale = "af"; arch = "linux-i686"; sha1 = "4287ba79e3aaaa601ae36643ad281c64554b847f"; } - { locale = "af"; arch = "linux-x86_64"; sha1 = "a787ec352ad94375600185902766ddfd91ac2d5d"; } - { locale = "an"; arch = "linux-i686"; sha1 = "4910dab93896ca7198b0154f0518ea5613b9a3b0"; } - { locale = "an"; arch = "linux-x86_64"; sha1 = "60d2c5122a67bae8d7c27fd01caa8d8eef0a143f"; } - { locale = "ar"; arch = "linux-i686"; sha1 = "f2b70fc8a72d3d43a28cc51776eaacff22f288ad"; } - { locale = "ar"; arch = "linux-x86_64"; sha1 = "409d2981a9aff39e23bd00231761899e65e80862"; } - { locale = "as"; arch = "linux-i686"; sha1 = "d27e921e475608cc52e6f07a22687497eb575b01"; } - { locale = "as"; arch = "linux-x86_64"; sha1 = "3bfa7ccaff6b04f9f1d0a479c10412a1308caf4f"; } - { locale = "ast"; arch = "linux-i686"; sha1 = "d1c94f4c5fe83d52fa8e0ee586f78747616e1aaf"; } - { locale = "ast"; arch = "linux-x86_64"; sha1 = "df3d38e59a5f233caa97134713e29cfa0dce6e27"; } - { locale = "az"; arch = "linux-i686"; sha1 = "5d01ef1267ddcc28e89009b86f2bb0a1e70fc386"; } - { locale = "az"; arch = "linux-x86_64"; sha1 = "440a5cd423147412335636326618e6b6b4c02416"; } - { locale = "be"; arch = "linux-i686"; sha1 = "1b9a9758c17ae74876ee6d09373dd99e89da05a3"; } - { locale = "be"; arch = "linux-x86_64"; sha1 = "940d2a07808aedc1f9c927b62f03b75270bbecd7"; } - { locale = "bg"; arch = "linux-i686"; sha1 = "ee3f4b60ebb6fd3639ba7e2a3acd81ffcd13ba3f"; } - { locale = "bg"; arch = "linux-x86_64"; sha1 = "f97ef4f7d3264b1aaf7699fe656f7dccf2cd4238"; } - { locale = "bn-BD"; arch = "linux-i686"; sha1 = "1a0e2da3014a811a766164953d003c136e28c174"; } - { locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "703116b7d2583d21fda09933e5d8b9244c15c6ee"; } - { locale = "bn-IN"; arch = "linux-i686"; sha1 = "f501f69cf65bf340d5d5ce6744394f1a83c2daf3"; } - { locale = "bn-IN"; arch = "linux-x86_64"; sha1 = "eb74b7a12a2fddf8c47e9c0b0ab9359b7da10703"; } - { locale = "br"; arch = "linux-i686"; sha1 = "9ecc2ca3344559a63fefee144fde9faa391f1c29"; } - { locale = "br"; arch = "linux-x86_64"; sha1 = "5121ac58aa90f6a2e3b3f87bcf7dbd8670b7c9bf"; } - { locale = "bs"; arch = "linux-i686"; sha1 = "42b9ace3d28e103fb195599c7c88ae78f16c3e4c"; } - { locale = "bs"; arch = "linux-x86_64"; sha1 = "06b81108ec1509e36de108837f3c7ed1d96ebc0e"; } - { locale = "ca"; arch = "linux-i686"; sha1 = "5fb5aee535cbede12169d1208d59fb1510207a66"; } - { locale = "ca"; arch = "linux-x86_64"; sha1 = "e8e6ebb6d70a809cfe8e9102ede99b7ce6239b8e"; } - { locale = "cs"; arch = "linux-i686"; sha1 = "13d157533dfca54b2a81625dbf3642b915f18e47"; } - { locale = "cs"; arch = "linux-x86_64"; sha1 = "f7fc30f448e981a47c63c21756dcd6feff08783c"; } - { locale = "cy"; arch = "linux-i686"; sha1 = "c9cdc5eefca689aabb7861e1ad9f44f42b36acb0"; } - { locale = "cy"; arch = "linux-x86_64"; sha1 = "a76182a74992ce7031fa2254f056694910c963d1"; } - { locale = "da"; arch = "linux-i686"; sha1 = "afb09acee0d8456e2bab32d7579da39244754038"; } - { locale = "da"; arch = "linux-x86_64"; sha1 = "26bca2ea48a814b7b3ffb91fc461867bf775c6dc"; } - { locale = "de"; arch = "linux-i686"; sha1 = "36a8bf02f324d929c52a6f4f38bb8cd413bbec3e"; } - { locale = "de"; arch = "linux-x86_64"; sha1 = "2d39187c71ad006e1fbd7ab488c7560d1c88f9cb"; } - { locale = "dsb"; arch = "linux-i686"; sha1 = "8c9843547aec04af07a09c2f9902583b2daab3f0"; } - { locale = "dsb"; arch = "linux-x86_64"; sha1 = "7778c1588580bf735e5dd4da89ab16528163a2c3"; } - { locale = "el"; arch = "linux-i686"; sha1 = "8aef1a9b8c6d1297d53002f1852bf52d6728c0fa"; } - { locale = "el"; arch = "linux-x86_64"; sha1 = "b7c2ad5da9c446939bf5e7071f84a6c3f8cd7b22"; } - { locale = "en-GB"; arch = "linux-i686"; sha1 = "f85f36fcd900f642f53a74d6b843e2c67b3ab950"; } - { locale = "en-GB"; arch = "linux-x86_64"; sha1 = "9dcc21ec189c588931e9bf38310522bb994d98c2"; } - { locale = "en-US"; arch = "linux-i686"; sha1 = "df80ad28979145a116d13db19c1c4e4b516c362d"; } - { locale = "en-US"; arch = "linux-x86_64"; sha1 = "b4e2da05fcd224ee01e2742d86d6b68bbdc108cd"; } - { locale = "en-ZA"; arch = "linux-i686"; sha1 = "73a83b23f2f1edcc4114df0b728e791c0626292a"; } - { locale = "en-ZA"; arch = "linux-x86_64"; sha1 = "fd451735b82a9b609b7f5f09aa0461191b490e5a"; } - { locale = "eo"; arch = "linux-i686"; sha1 = "471873938d52ccebe8958407be1989937181ca9a"; } - { locale = "eo"; arch = "linux-x86_64"; sha1 = "fc8c668d3d66a4e42be9aa0fd46ca84cf061dade"; } - { locale = "es-AR"; arch = "linux-i686"; sha1 = "599823d54919efb62ffd4f65fd8b873720d64b08"; } - { locale = "es-AR"; arch = "linux-x86_64"; sha1 = "cc2e509b55de680d4c9a95ac84765c5fb5fa8b44"; } - { locale = "es-CL"; arch = "linux-i686"; sha1 = "754b32bbc0108f0e9c3c2e78f4c3e023e0486bff"; } - { locale = "es-CL"; arch = "linux-x86_64"; sha1 = "7ab4206b66783a72fbe66c59fda120dc1afd0e3c"; } - { locale = "es-ES"; arch = "linux-i686"; sha1 = "b52814a56ee620693aa4d658ada67e816a3daf59"; } - { locale = "es-ES"; arch = "linux-x86_64"; sha1 = "b4cbbc984c7cc9f566ddce0e180410ccb79adc13"; } - { locale = "es-MX"; arch = "linux-i686"; sha1 = "874cb197fe4498a83822fa386ac0824bffc9646d"; } - { locale = "es-MX"; arch = "linux-x86_64"; sha1 = "056746dae1ba7e88a3f2403fb11b17ee831b199b"; } - { locale = "et"; arch = "linux-i686"; sha1 = "70bb834ac4d70fb1f20625027c73a6ece8f24cc8"; } - { locale = "et"; arch = "linux-x86_64"; sha1 = "57202dd5e34ed24e31f30bab79b0fcbb220e81b7"; } - { locale = "eu"; arch = "linux-i686"; sha1 = "1e7287dfcd55f79e2157f3e49875a85f8a500c75"; } - { locale = "eu"; arch = "linux-x86_64"; sha1 = "a6389d117c02ad2d9a997dcac64ba54c0310d715"; } - { locale = "fa"; arch = "linux-i686"; sha1 = "5f82328712e7a16ae6dab5928623b0c652b646bc"; } - { locale = "fa"; arch = "linux-x86_64"; sha1 = "5625f288967b3afc86a5d0136d64a1ba9581a6c1"; } - { locale = "ff"; arch = "linux-i686"; sha1 = "73afc152eca2aeb346b1ea46a35b24132061c6af"; } - { locale = "ff"; arch = "linux-x86_64"; sha1 = "ea1eab3e656f1bc68fc76425cd10be01945e7d66"; } - { locale = "fi"; arch = "linux-i686"; sha1 = "24d0bc254438b96307c650700ca58d4e1b2d5fe8"; } - { locale = "fi"; arch = "linux-x86_64"; sha1 = "d5b8f8f2052985c5f6dcbcdd5b122094347ed26b"; } - { locale = "fr"; arch = "linux-i686"; sha1 = "118d981ae14f0425e27726afb516519b8de11390"; } - { locale = "fr"; arch = "linux-x86_64"; sha1 = "af883c88b1a1e31a31a5a20d603b6109209c6f6b"; } - { locale = "fy-NL"; arch = "linux-i686"; sha1 = "44d6d4be0a1d1ddd75f476a94b3e2f6117ffca72"; } - { locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "1629ea289914570257e611323618b477b2cf6576"; } - { locale = "ga-IE"; arch = "linux-i686"; sha1 = "c3ac3c11a490f37a6c209d753d6db5cd0c696dff"; } - { locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "ea778a04a997632a38e70d3b96c5cc86545056d3"; } - { locale = "gd"; arch = "linux-i686"; sha1 = "2e71d653007e589cd93a90e3239beb0074d33e9d"; } - { locale = "gd"; arch = "linux-x86_64"; sha1 = "d878a2c149a96e2181d110e5ae265f35c0d44b62"; } - { locale = "gl"; arch = "linux-i686"; sha1 = "2669d169a07cfbba062e147d12cd2a708579c76e"; } - { locale = "gl"; arch = "linux-x86_64"; sha1 = "515622615f08c49a257ba6766ff0af1984c134a1"; } - { locale = "gu-IN"; arch = "linux-i686"; sha1 = "98bc0711616e665dc386e2c24b6a96ca5e3bfe25"; } - { locale = "gu-IN"; arch = "linux-x86_64"; sha1 = "a87c089251356074bc039c88e040138db3485539"; } - { locale = "he"; arch = "linux-i686"; sha1 = "b8fb6b91641f89159485ea65efb98c0f3aa23d84"; } - { locale = "he"; arch = "linux-x86_64"; sha1 = "2a2a6cc3dcf6b988138549649ede6b030c26818c"; } - { locale = "hi-IN"; arch = "linux-i686"; sha1 = "611ed2ff88f2872acfd1302f2ee3defe59142dbd"; } - { locale = "hi-IN"; arch = "linux-x86_64"; sha1 = "04922ffab952b7493059304d70064956cbaf5dce"; } - { locale = "hr"; arch = "linux-i686"; sha1 = "13a43d380043f008e26f6fb77b16e6087c622a64"; } - { locale = "hr"; arch = "linux-x86_64"; sha1 = "c7d45cdd831bafba438c81efa6cf5dd3f4a5657e"; } - { locale = "hsb"; arch = "linux-i686"; sha1 = "319a922186b3a8a9bea749014498e7f492043b4b"; } - { locale = "hsb"; arch = "linux-x86_64"; sha1 = "fdd0485af2b0684436bd6207701c287a2f3d05c6"; } - { locale = "hu"; arch = "linux-i686"; sha1 = "33e82dea7e4a6e421ee23a94ba3a5ca5171fef34"; } - { locale = "hu"; arch = "linux-x86_64"; sha1 = "fde72e1c7f93e4bcbebc9803e78d3e1cbce2d64b"; } - { locale = "hy-AM"; arch = "linux-i686"; sha1 = "ad702a8c047a5044ffb39039eaa74e7a86bd80ae"; } - { locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "b83ff7323e9e66907a02f798cbb13a114fdc652c"; } - { locale = "id"; arch = "linux-i686"; sha1 = "c435f7c84ee188d09b5352163334a6458ec125ba"; } - { locale = "id"; arch = "linux-x86_64"; sha1 = "dc8858ac8ae9ef92013fa73f986daf6eade1ae26"; } - { locale = "is"; arch = "linux-i686"; sha1 = "c1d853deba529e750b8b705581aedb218f0c57d9"; } - { locale = "is"; arch = "linux-x86_64"; sha1 = "ba819e0bd9e630a6299fd8ef1dd99d1203abbd2d"; } - { locale = "it"; arch = "linux-i686"; sha1 = "1ffccd73282e28a52d99b8e98e3bf8ccefcf405b"; } - { locale = "it"; arch = "linux-x86_64"; sha1 = "9d68d2cb24ecf349ff504638e04272d56a636f90"; } - { locale = "ja"; arch = "linux-i686"; sha1 = "e7cae2f72552fdcd1ccb57c760ddd4b694218513"; } - { locale = "ja"; arch = "linux-x86_64"; sha1 = "57befb5643689b0ab2b456651735c75fc47a312a"; } - { locale = "kk"; arch = "linux-i686"; sha1 = "345e0cf27301357d46ead1ef04fcc415c9db4f99"; } - { locale = "kk"; arch = "linux-x86_64"; sha1 = "ac55fbb3ca6e8ad69c7aceebad99d18ed1353cbc"; } - { locale = "km"; arch = "linux-i686"; sha1 = "9c8d7c1a6b79dc2ff7a28e309e24fdb2d07385ba"; } - { locale = "km"; arch = "linux-x86_64"; sha1 = "e122a13e5485d9a8bf12e91487cf0247fb652eea"; } - { locale = "kn"; arch = "linux-i686"; sha1 = "4da07bc2cdb714f8083032f99e702333ece64dfa"; } - { locale = "kn"; arch = "linux-x86_64"; sha1 = "48b5f227919b06ee995b68ee0b6117df8f428942"; } - { locale = "ko"; arch = "linux-i686"; sha1 = "ce22701571474e14ad690ccb5ee700c790667fe8"; } - { locale = "ko"; arch = "linux-x86_64"; sha1 = "d901ffdec4217b389b96268f9094fc1d01cd2263"; } - { locale = "lij"; arch = "linux-i686"; sha1 = "2191718817cbf9eefef3f7d994849a737e9adb88"; } - { locale = "lij"; arch = "linux-x86_64"; sha1 = "f21245f7b00187d8b6fb3d30f6ec83510acf7546"; } - { locale = "lt"; arch = "linux-i686"; sha1 = "47ebc8005959e431cca843a0514c2499449ed9b2"; } - { locale = "lt"; arch = "linux-x86_64"; sha1 = "18220fab22a9737d1577455ec218f5b2f9226e53"; } - { locale = "lv"; arch = "linux-i686"; sha1 = "e4e3d2de5a899c422b85ab1518c454d81ee54bd8"; } - { locale = "lv"; arch = "linux-x86_64"; sha1 = "45a2551248ee43e189492b1416ed096799857382"; } - { locale = "mai"; arch = "linux-i686"; sha1 = "aa1374d602fff2d393be86563d3cab72b35f7384"; } - { locale = "mai"; arch = "linux-x86_64"; sha1 = "acfb03ba9f3d232ff68af24d61f80c6c0a94aeca"; } - { locale = "mk"; arch = "linux-i686"; sha1 = "a9295e006982059b01f7bd7e2c6f8959de2a2e23"; } - { locale = "mk"; arch = "linux-x86_64"; sha1 = "e37dcfc6bd29e8a5034624df71726091c6c768f0"; } - { locale = "ml"; arch = "linux-i686"; sha1 = "b81b278d31aff4d4912da328f2c3ecdbb1ec830a"; } - { locale = "ml"; arch = "linux-x86_64"; sha1 = "b5c21e4d32f9f78043eee8605d131e63d9568ef1"; } - { locale = "mr"; arch = "linux-i686"; sha1 = "56d7cc6bf3a125c9e9f5b4799a2d34a5d941dc43"; } - { locale = "mr"; arch = "linux-x86_64"; sha1 = "528db467e4f64f9149f88ecd36c19c8a23835c17"; } - { locale = "ms"; arch = "linux-i686"; sha1 = "71482b740ea057ae9cdd15cfba89467639dbda63"; } - { locale = "ms"; arch = "linux-x86_64"; sha1 = "bdaff803efa7cb1e2bd31e7f7a29b4c174fb60e3"; } - { locale = "nb-NO"; arch = "linux-i686"; sha1 = "1f4642a4dd61ad57d833ae961ce0f0f1c6c7471a"; } - { locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "3e89f59c82ae0ee52af586364bad8b6e69fdec28"; } - { locale = "nl"; arch = "linux-i686"; sha1 = "3292597b5f499193c8a1bd1f71b9df81925e4c87"; } - { locale = "nl"; arch = "linux-x86_64"; sha1 = "ddb145bb406c096be680d246b9a727d6e926f9cb"; } - { locale = "nn-NO"; arch = "linux-i686"; sha1 = "9cedfe3a1f98db1a999f64bcfdc77e8df72cbbc5"; } - { locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "a58a8593b49cbf1d6f6b35feb61df95a51717127"; } - { locale = "or"; arch = "linux-i686"; sha1 = "b80d8770ce0358674d1b2f39c7bb5b8a042a5d32"; } - { locale = "or"; arch = "linux-x86_64"; sha1 = "66540a388aa07190fa98aff515f09a01d1c173ee"; } - { locale = "pa-IN"; arch = "linux-i686"; sha1 = "d9e85c6de7487b13e91f400ce8a06c0104b08ddc"; } - { locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "01da681d516c6b1febd0096c6dcd8ccbc9b6fdef"; } - { locale = "pl"; arch = "linux-i686"; sha1 = "faa22ad8c24d6465976412d1bd252c74936f937c"; } - { locale = "pl"; arch = "linux-x86_64"; sha1 = "5410dcf34d4207e005f207fc430892f23f160461"; } - { locale = "pt-BR"; arch = "linux-i686"; sha1 = "0735e4827702f896332e1461dcdb3e7088e60d90"; } - { locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "8b083ad5aad313afd9fa9c4e91ebbd03f205b67f"; } - { locale = "pt-PT"; arch = "linux-i686"; sha1 = "2fc593cebbfe2bdae3689255f46cd9c41314f00c"; } - { locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "5bfa929956b1ce9a0ef2afb08ae3510326e962c6"; } - { locale = "rm"; arch = "linux-i686"; sha1 = "81e5a280e47fbbac82d1c0e0604828ab9937e1e6"; } - { locale = "rm"; arch = "linux-x86_64"; sha1 = "fbc333306bb32eaf2b2d815efa32a5915cd15ede"; } - { locale = "ro"; arch = "linux-i686"; sha1 = "df75129e5c618cdfe180ddf71598704f8c652e5c"; } - { locale = "ro"; arch = "linux-x86_64"; sha1 = "6b0556075110eac4263e1b2ba9bef29a3504d302"; } - { locale = "ru"; arch = "linux-i686"; sha1 = "3309c2e1bcc6d623a28c01cf3e61ed9d9a2d676b"; } - { locale = "ru"; arch = "linux-x86_64"; sha1 = "f729504273d11b18f3b9c1f4918a18a2a63483da"; } - { locale = "si"; arch = "linux-i686"; sha1 = "9d54da726bd01800a7fa41de9bc0b9aaba9202b9"; } - { locale = "si"; arch = "linux-x86_64"; sha1 = "1550492673a913ecd0ff14ccdea0289bbfc680f6"; } - { locale = "sk"; arch = "linux-i686"; sha1 = "d8b97959e6d77ac9d1e0c512414824c9c037d2f0"; } - { locale = "sk"; arch = "linux-x86_64"; sha1 = "1056467b1726dc0469745d5eb80407e3715c6aee"; } - { locale = "sl"; arch = "linux-i686"; sha1 = "9c51bd6b10adfb2dc3cf07d38981636c3a13557a"; } - { locale = "sl"; arch = "linux-x86_64"; sha1 = "9f58166807385e0e95682b361e0654125311b4d6"; } - { locale = "son"; arch = "linux-i686"; sha1 = "cf5b8b7266e6c6c5054aeab213c37e61df68057f"; } - { locale = "son"; arch = "linux-x86_64"; sha1 = "36a609e8e1a2002653520b7a872562ecd34d6afc"; } - { locale = "sq"; arch = "linux-i686"; sha1 = "6c723410982cf03559199122ce358757670f0d61"; } - { locale = "sq"; arch = "linux-x86_64"; sha1 = "7e0dae98aa342781a5e89c7f531545704d48b9b6"; } - { locale = "sr"; arch = "linux-i686"; sha1 = "eb000da14a0e48ffac929e51db640c721e8c9e11"; } - { locale = "sr"; arch = "linux-x86_64"; sha1 = "5696ee19d90930527370021a9eb51f0579080293"; } - { locale = "sv-SE"; arch = "linux-i686"; sha1 = "ed9c5d17963779cebd526a65abd10d82b9b7aadc"; } - { locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "7086405ab9008c91c9acbe7685590ee4497b0576"; } - { locale = "ta"; arch = "linux-i686"; sha1 = "0f0aea80ca1dbf604a3c0ac28a255431c1952f88"; } - { locale = "ta"; arch = "linux-x86_64"; sha1 = "e794ceab525cbc0314d10398a807c436ef66d17d"; } - { locale = "te"; arch = "linux-i686"; sha1 = "09c3427c855d7c82e44997accc80a52317d0d22d"; } - { locale = "te"; arch = "linux-x86_64"; sha1 = "af19d02ed9dbb366d0c7b34b538ae83bf2f6212c"; } - { locale = "th"; arch = "linux-i686"; sha1 = "3064e5bcea910f32fbef60acd41a9917145c48a1"; } - { locale = "th"; arch = "linux-x86_64"; sha1 = "a7ad2f98a7a534667370ef3f22ae00f90002a1a7"; } - { locale = "tr"; arch = "linux-i686"; sha1 = "76726e6bbbd89eb6469df960ec889ce781cfc68b"; } - { locale = "tr"; arch = "linux-x86_64"; sha1 = "031b5eb83b6e96dcd9bdf2eabdfab7a370b0becb"; } - { locale = "uk"; arch = "linux-i686"; sha1 = "5d31c283914d67dcfc0af09525ab3814d0e05db4"; } - { locale = "uk"; arch = "linux-x86_64"; sha1 = "a9e577f4e9aba0af6b019b566f98121586112552"; } - { locale = "uz"; arch = "linux-i686"; sha1 = "f84745683934f221dc5de1b970dae5c919979a71"; } - { locale = "uz"; arch = "linux-x86_64"; sha1 = "95aef2a68a86030078ac64346445f5f92a85fb63"; } - { locale = "vi"; arch = "linux-i686"; sha1 = "53e9197a3de8d63950b5d324a4da0d3533dd492c"; } - { locale = "vi"; arch = "linux-x86_64"; sha1 = "be24b818a6ba1209d383c9c43af0bb0ddd82070b"; } - { locale = "xh"; arch = "linux-i686"; sha1 = "be808769e77a47ace01b1b2455607c56a402e795"; } - { locale = "xh"; arch = "linux-x86_64"; sha1 = "9feca0a4ba5ab71b05bad4ff0324c648ccae7f38"; } - { locale = "zh-CN"; arch = "linux-i686"; sha1 = "057c9ead60a3819eecae1f31ed512ea3e5e2aab4"; } - { locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "2503f8354c07929c1b943c64ea233bb6453c2740"; } - { locale = "zh-TW"; arch = "linux-i686"; sha1 = "75c439a7002183aa5ad8795c1986c109714c2f00"; } - { locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "add241bb07ff446df18f98f6eec18ebec3bb4e31"; } + { locale = "ach"; arch = "linux-i686"; sha1 = "cfb24e0fd6e10febf2381101d4a8f3de1516a732"; } + { locale = "ach"; arch = "linux-x86_64"; sha1 = "642d44d0fe13be4eaf4d1b495dfc7b285f7c2de7"; } + { locale = "af"; arch = "linux-i686"; sha1 = "b4e5ce516dbc5d4157bd1c85b23b5cc233bbf8d5"; } + { locale = "af"; arch = "linux-x86_64"; sha1 = "40f9b3a3ac3089f6bbf9c42a3259a484b49a659a"; } + { locale = "an"; arch = "linux-i686"; sha1 = "0bfa3cd6867316ca10ebe57ab2cebd03a59b096c"; } + { locale = "an"; arch = "linux-x86_64"; sha1 = "69369093f488223decdb77f2d12676be4aeb4d95"; } + { locale = "ar"; arch = "linux-i686"; sha1 = "3a091005a265c6b06a77416223caa45a51d36056"; } + { locale = "ar"; arch = "linux-x86_64"; sha1 = "0f9c79ae4aa4498bc9f8a3e372b26b0b000a0db9"; } + { locale = "as"; arch = "linux-i686"; sha1 = "cf996943809573aca05dc88ed4d843afda11710f"; } + { locale = "as"; arch = "linux-x86_64"; sha1 = "609860ebd75ea9731912b4fcbb343fa027ebbb77"; } + { locale = "ast"; arch = "linux-i686"; sha1 = "5adbd6c9194f8f214c94b587a41c5399116316d4"; } + { locale = "ast"; arch = "linux-x86_64"; sha1 = "feaeae77f9578a452cb98893701f14047d65a5d3"; } + { locale = "az"; arch = "linux-i686"; sha1 = "8718585cb6fb8b7823a572ddc21f910877287133"; } + { locale = "az"; arch = "linux-x86_64"; sha1 = "0834d8d8a29f805b435c2d6a29403c9180471837"; } + { locale = "be"; arch = "linux-i686"; sha1 = "abb5002f7275cb5b65942a735864783bf32c4d9e"; } + { locale = "be"; arch = "linux-x86_64"; sha1 = "bc0ef337ec080b46db30728a425695d78a908d46"; } + { locale = "bg"; arch = "linux-i686"; sha1 = "7bcee63546e75aa94ccd9fd65db18ebf8360e5ba"; } + { locale = "bg"; arch = "linux-x86_64"; sha1 = "8c9c23313710f7467bc34d2ea462dd8e9df6fcde"; } + { locale = "bn-BD"; arch = "linux-i686"; sha1 = "fa80f7049f926205878e1f9e99d2abba876ea9d9"; } + { locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "add645cc1b73affbc35c265ec2f82a9d97abddf6"; } + { locale = "bn-IN"; arch = "linux-i686"; sha1 = "a391b6305ecf256a5be3e7b29427ff1979b90a9e"; } + { locale = "bn-IN"; arch = "linux-x86_64"; sha1 = "77d637809f26bf3214fc93d39547863d56b9949d"; } + { locale = "br"; arch = "linux-i686"; sha1 = "a7e0fc1a0b340232585c2b4630834e67b2ee565a"; } + { locale = "br"; arch = "linux-x86_64"; sha1 = "80f61d890df9c5c126846ee293a0c1295f3b52bc"; } + { locale = "bs"; arch = "linux-i686"; sha1 = "f007e6bac7ae796822496b4b06fed7f9112032ad"; } + { locale = "bs"; arch = "linux-x86_64"; sha1 = "7abfb01029faa86d2245a273381ef8e5453dc89a"; } + { locale = "ca"; arch = "linux-i686"; sha1 = "3bbdf70ed21803dacb4cf000055f27d8f11bf6a2"; } + { locale = "ca"; arch = "linux-x86_64"; sha1 = "de2696a5c031b05479d12319d57dd44dd644f1ff"; } + { locale = "cs"; arch = "linux-i686"; sha1 = "0d678464f64f2ba1ff8e924336992faf9f50659c"; } + { locale = "cs"; arch = "linux-x86_64"; sha1 = "86d68fde6d6255407b8b0f46845416141745b805"; } + { locale = "cy"; arch = "linux-i686"; sha1 = "eb0270f0315d31a0c8f9d2919eb4408996b4cdeb"; } + { locale = "cy"; arch = "linux-x86_64"; sha1 = "004c5d1cfbcf7535765bc1cb3d8a8ea2d72386e5"; } + { locale = "da"; arch = "linux-i686"; sha1 = "e333b6e553bc208c50c71d89d41ce0075e72bed9"; } + { locale = "da"; arch = "linux-x86_64"; sha1 = "dacd29f1fb10cfab134d302ca50092d50ebf8936"; } + { locale = "de"; arch = "linux-i686"; sha1 = "349d731fae24d6717d35e5b945add7c992a587e2"; } + { locale = "de"; arch = "linux-x86_64"; sha1 = "635fc409b6433c6a8b4bb48799fe76c50153f944"; } + { locale = "dsb"; arch = "linux-i686"; sha1 = "ed8520837da7170a1e6ba63b1c97e34730ad2f1d"; } + { locale = "dsb"; arch = "linux-x86_64"; sha1 = "7ea5a1cfe9f25364e9d7902cf93459478fddac5e"; } + { locale = "el"; arch = "linux-i686"; sha1 = "831e7929fa7fff2e410359b6a599e293f7587f71"; } + { locale = "el"; arch = "linux-x86_64"; sha1 = "fb9829b8a41fc07f54ca21260b0e33f178a8c392"; } + { locale = "en-GB"; arch = "linux-i686"; sha1 = "f122389f405bb36231139a50198e969a11898273"; } + { locale = "en-GB"; arch = "linux-x86_64"; sha1 = "919e765df3434d4349c3d5a8dbd5a3030f749d09"; } + { locale = "en-US"; arch = "linux-i686"; sha1 = "a75b1c5106eaefec2c6c68538b870f6fa21667c1"; } + { locale = "en-US"; arch = "linux-x86_64"; sha1 = "5ed50e7ba72beec9b46155ffc2958b7ec3c287af"; } + { locale = "en-ZA"; arch = "linux-i686"; sha1 = "061a683c163d48c79246a28562b7047f492f87e3"; } + { locale = "en-ZA"; arch = "linux-x86_64"; sha1 = "d10d80b665c85b8e90be69b3192ec8d0ec623bf3"; } + { locale = "eo"; arch = "linux-i686"; sha1 = "65e68765f422a3c829faf7f25f6b832223c27711"; } + { locale = "eo"; arch = "linux-x86_64"; sha1 = "a036d85b96a319bd677b17f640329a247d7046ed"; } + { locale = "es-AR"; arch = "linux-i686"; sha1 = "9fdccf38442e4d46aca7ad7f0d2936cf2430840f"; } + { locale = "es-AR"; arch = "linux-x86_64"; sha1 = "c28754a1f2dd926202edaf13241d0b22de744cd1"; } + { locale = "es-CL"; arch = "linux-i686"; sha1 = "900b4573ee4611c537cd97ac353c9200d4a09387"; } + { locale = "es-CL"; arch = "linux-x86_64"; sha1 = "235dfe745c2e5de80deadc22e9e0fcfef0d48ee4"; } + { locale = "es-ES"; arch = "linux-i686"; sha1 = "1236b095b4a6aed92a574c96aa0d724abf6de934"; } + { locale = "es-ES"; arch = "linux-x86_64"; sha1 = "f4d83aa231a22f981c4177971414061b562620fb"; } + { locale = "es-MX"; arch = "linux-i686"; sha1 = "fd5e4b7f019b12a307909ab481579d4b717a0ae2"; } + { locale = "es-MX"; arch = "linux-x86_64"; sha1 = "4b4a33fd2a6aa8061008f7a22c5c970490f64127"; } + { locale = "et"; arch = "linux-i686"; sha1 = "db06c7ea90e42b7dd55e95c3c1c65c3464842056"; } + { locale = "et"; arch = "linux-x86_64"; sha1 = "2842e4cb8c1c07dc221acca4dc4965ed25a2c993"; } + { locale = "eu"; arch = "linux-i686"; sha1 = "bf5d17a4ba5f08574e7aaa9d34507cff22da87d6"; } + { locale = "eu"; arch = "linux-x86_64"; sha1 = "74fef0cd9fe3ec31e2d3127662d33d0b2f02cfe5"; } + { locale = "fa"; arch = "linux-i686"; sha1 = "05b07e6d1d274fafbc9a2ce201d36ea3cccbffd3"; } + { locale = "fa"; arch = "linux-x86_64"; sha1 = "8e9ad7e990c8091fccda1a6651a5711b61147cd9"; } + { locale = "ff"; arch = "linux-i686"; sha1 = "86cf25b38865428ea4c744a3fe438bf88d2994f3"; } + { locale = "ff"; arch = "linux-x86_64"; sha1 = "c90ad173f42267a0b8ef16ad4c0b4f29299e6eed"; } + { locale = "fi"; arch = "linux-i686"; sha1 = "e22411eeb539a1fde08f20b44cfb1b5ff017b582"; } + { locale = "fi"; arch = "linux-x86_64"; sha1 = "ed7b3383209ceb588126a0bcb4433e5bbda2b46f"; } + { locale = "fr"; arch = "linux-i686"; sha1 = "90c2a9fb92335d504a9dc9d8a6afedd494b69f8b"; } + { locale = "fr"; arch = "linux-x86_64"; sha1 = "80e4efdd06b1aa47f348e4056c134bf24a74f4cc"; } + { locale = "fy-NL"; arch = "linux-i686"; sha1 = "122998b498e79a8eb6daf0e877e38fafeeedd679"; } + { locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "99eb9694ecbd3aa892524467ced78bbc0a97d1fd"; } + { locale = "ga-IE"; arch = "linux-i686"; sha1 = "adb3d58c050adfb38576fcbbc62a28bfab5f196d"; } + { locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "9a5a8a4a78c9b2f114609552e952a5ad4f7c1603"; } + { locale = "gd"; arch = "linux-i686"; sha1 = "876bb49fa2399e53d68bf8bd9c403b008068c5c9"; } + { locale = "gd"; arch = "linux-x86_64"; sha1 = "06dd806eba47b93f85d49cfabaefbb1d4ed04f49"; } + { locale = "gl"; arch = "linux-i686"; sha1 = "3b5867e14e051c8405ebe79f1147c89340ccdfed"; } + { locale = "gl"; arch = "linux-x86_64"; sha1 = "25f5e9ca92c194cbca6d3b06089e884b8c0aed13"; } + { locale = "gu-IN"; arch = "linux-i686"; sha1 = "df3db443c51ea75a22a9ca0666c92c28b43db5e4"; } + { locale = "gu-IN"; arch = "linux-x86_64"; sha1 = "2af9d3810a60e0cb2674c74925f9076996abef3d"; } + { locale = "he"; arch = "linux-i686"; sha1 = "b8b89d4a3e7836c2bf26819e917b7a655aee44d5"; } + { locale = "he"; arch = "linux-x86_64"; sha1 = "9a56a307750c21cdfbefda1abaf1763c2aab1875"; } + { locale = "hi-IN"; arch = "linux-i686"; sha1 = "0b8ddcb306d23fdd67abcc098c11420133fea996"; } + { locale = "hi-IN"; arch = "linux-x86_64"; sha1 = "ae56f2f5caf403ab2f569f843e234cb983e6eb85"; } + { locale = "hr"; arch = "linux-i686"; sha1 = "3a829bf25984b0004edb130ef9df5d826ddac5a9"; } + { locale = "hr"; arch = "linux-x86_64"; sha1 = "ada293b8ab51d393eda5be8f078e69c584ef6dda"; } + { locale = "hsb"; arch = "linux-i686"; sha1 = "3ed330ee86404bdc6080feaeef0f6a095ca0fbee"; } + { locale = "hsb"; arch = "linux-x86_64"; sha1 = "ee20f0c59b0340f68f066a78f7455d9c0d95fd2f"; } + { locale = "hu"; arch = "linux-i686"; sha1 = "ff66764fe50e5115bf70acce753aa240feffea28"; } + { locale = "hu"; arch = "linux-x86_64"; sha1 = "5e7605de920f18b64b0b4974d46e5fc2f2f4e869"; } + { locale = "hy-AM"; arch = "linux-i686"; sha1 = "c074b5ce903cd4d8ab66ea79a15025b4eb492774"; } + { locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "7284c71aaa692a98a451ac862af9e0ed6519df55"; } + { locale = "id"; arch = "linux-i686"; sha1 = "80fa7c3cd2dea7ee4e4acccc74c8b6936cfe3fa7"; } + { locale = "id"; arch = "linux-x86_64"; sha1 = "7ddf8a8c2c3b590a76463e13f8f677c3cb985302"; } + { locale = "is"; arch = "linux-i686"; sha1 = "a52ad05729c59acfe826cb211f5da631036aa366"; } + { locale = "is"; arch = "linux-x86_64"; sha1 = "7e21475ef56523e7b7bd92cba2e2f4a46bb437e4"; } + { locale = "it"; arch = "linux-i686"; sha1 = "48191529939cf46cf0c0573a4fcd53a9703c8db8"; } + { locale = "it"; arch = "linux-x86_64"; sha1 = "6b1d93070e8c29573e32abd3ba7b7bf7f07ab269"; } + { locale = "ja"; arch = "linux-i686"; sha1 = "136b76925e0b7f766ccf9ca1ee1dcdb7a2046509"; } + { locale = "ja"; arch = "linux-x86_64"; sha1 = "0fe5a34c842963e83b14a79c2309b6a906eae5f8"; } + { locale = "kk"; arch = "linux-i686"; sha1 = "98c8801e99639de3609dcaba57eacfd2d3eaffc6"; } + { locale = "kk"; arch = "linux-x86_64"; sha1 = "ae3d6c13e877ae207c36c2c6e9e4eb5da3d76fff"; } + { locale = "km"; arch = "linux-i686"; sha1 = "4bfa2ddd28447fd34fd9e50b3f75033c8212d3c2"; } + { locale = "km"; arch = "linux-x86_64"; sha1 = "bbf1b20376f92c353859d671536436a22a87faa9"; } + { locale = "kn"; arch = "linux-i686"; sha1 = "edf31da5957d27e2b60a13d91b4520c7f67da77a"; } + { locale = "kn"; arch = "linux-x86_64"; sha1 = "275c253e1b913f8cc2a2437602c7edd66eaab011"; } + { locale = "ko"; arch = "linux-i686"; sha1 = "b213520660c5d6a1c85c3f6a11ff7c9d7f947274"; } + { locale = "ko"; arch = "linux-x86_64"; sha1 = "65a37cccaf55c9fa251157da1d93dcafc4ddc3b8"; } + { locale = "lij"; arch = "linux-i686"; sha1 = "368a3517809b7560908162efeee6d10842f537ea"; } + { locale = "lij"; arch = "linux-x86_64"; sha1 = "212b14ce7e8bbd96a60d23fcd8a8598f8f9ed900"; } + { locale = "lt"; arch = "linux-i686"; sha1 = "d27ccfe0459f6b3567818af9e5ccd5d84dd810ba"; } + { locale = "lt"; arch = "linux-x86_64"; sha1 = "f47264b2fa1e6f073d0300f0476fed32fb8bca48"; } + { locale = "lv"; arch = "linux-i686"; sha1 = "abf68081c4c011552974cf191463186fb350bf7e"; } + { locale = "lv"; arch = "linux-x86_64"; sha1 = "d3a3d999205418043bef4680c256f1555ab4e615"; } + { locale = "mai"; arch = "linux-i686"; sha1 = "2f88361cb70283bd29f641762b0ba9205a3db932"; } + { locale = "mai"; arch = "linux-x86_64"; sha1 = "4802f3a575d68d4e471eab9fbb638f8dcf6801f3"; } + { locale = "mk"; arch = "linux-i686"; sha1 = "1a82499a0b9eb4bcdc4ffcf305de7e250d4ddf91"; } + { locale = "mk"; arch = "linux-x86_64"; sha1 = "6d0eaf89b4f7d0821be181fbe877935db0cd6ea5"; } + { locale = "ml"; arch = "linux-i686"; sha1 = "16f7c329c62c7430b7e989e4d20b4fa406d34e57"; } + { locale = "ml"; arch = "linux-x86_64"; sha1 = "ea6b4c37abb4bde4c3c97a6de01414df336546b9"; } + { locale = "mr"; arch = "linux-i686"; sha1 = "e21203ab9285444b5dd19a7add22efd7750a75c4"; } + { locale = "mr"; arch = "linux-x86_64"; sha1 = "0992eabe63f8a9b759be99a410a600df53f70c80"; } + { locale = "ms"; arch = "linux-i686"; sha1 = "7c5314f43623fa25ca1813c58f8a0f3bfcb19624"; } + { locale = "ms"; arch = "linux-x86_64"; sha1 = "8be86e6ff4f8c0baa220143d2798c3f707db6752"; } + { locale = "nb-NO"; arch = "linux-i686"; sha1 = "fcc032e0ceddbe41527d8adad42c55a4a8626660"; } + { locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "8c4365d752844adb31df201901c951b720b7401a"; } + { locale = "nl"; arch = "linux-i686"; sha1 = "42adac56689caf8c2cb838bad8c14b6a81c61456"; } + { locale = "nl"; arch = "linux-x86_64"; sha1 = "3c835567fe91ae8c386199957b2d64d185020ca9"; } + { locale = "nn-NO"; arch = "linux-i686"; sha1 = "47c29bceee08af768f90f54883300704630ac478"; } + { locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "57ac712d8b93d19a155ebf08929ee395d5975b09"; } + { locale = "or"; arch = "linux-i686"; sha1 = "a96e39bb3eceb2e7252ad9e659981e14975c025b"; } + { locale = "or"; arch = "linux-x86_64"; sha1 = "004b52fb5ce3da6106c6875369299a85fd9f2091"; } + { locale = "pa-IN"; arch = "linux-i686"; sha1 = "4cf037c5878372a87f18122e8dc205ace8292f68"; } + { locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "30128d1d927194cc1eac4b8d297faa5ab5d74b1c"; } + { locale = "pl"; arch = "linux-i686"; sha1 = "93aae61fcb7f17f5e83ee1ac8af190ee9c28bf5b"; } + { locale = "pl"; arch = "linux-x86_64"; sha1 = "f7ae0d826144607bb814c7b1c8dde63ad679148c"; } + { locale = "pt-BR"; arch = "linux-i686"; sha1 = "48cedf32ea01a9548902c8ce0a998c01d2c3da12"; } + { locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "f31b4c25be102bc96f8795721a19c3c9fdd00043"; } + { locale = "pt-PT"; arch = "linux-i686"; sha1 = "e735996d21d15020bea72d9b01b0686d8fb1cd9e"; } + { locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "705dedac0d8b9df87301eb06251b81e8d5f34d47"; } + { locale = "rm"; arch = "linux-i686"; sha1 = "ad7ce0ef601763795f5998e56b89d77f466f50de"; } + { locale = "rm"; arch = "linux-x86_64"; sha1 = "50f08008a9a12172f379dafaea656cae3f7a2d5b"; } + { locale = "ro"; arch = "linux-i686"; sha1 = "6f925c413fe655a35ffad0b9d3b22bc6c9af15d1"; } + { locale = "ro"; arch = "linux-x86_64"; sha1 = "6592bf15bdf465100dbb00a00b5e77eb10f42cae"; } + { locale = "ru"; arch = "linux-i686"; sha1 = "2bf3af22a827f6ea9ba849bcbe2da6687fecaa2c"; } + { locale = "ru"; arch = "linux-x86_64"; sha1 = "35817ed10d23415bc8c8359fc0ac080c84a648fc"; } + { locale = "si"; arch = "linux-i686"; sha1 = "084109d7bb0b17da1d44d0cd954d55e1ce0b03ee"; } + { locale = "si"; arch = "linux-x86_64"; sha1 = "83c8e57b708a62cfa159f5a58b3d808fd3ca7e2d"; } + { locale = "sk"; arch = "linux-i686"; sha1 = "ea7637b7c8228ae9edab0d82bebc4bb7bda7c2a1"; } + { locale = "sk"; arch = "linux-x86_64"; sha1 = "6b6a13d882eb59d14d51a24be90153b6c928ce01"; } + { locale = "sl"; arch = "linux-i686"; sha1 = "dfbce85ca19bdb9aeecf23027a9f4e6e4eb4dba8"; } + { locale = "sl"; arch = "linux-x86_64"; sha1 = "09ba3868ae42a1e937f21c30d7b56d8c74668e5c"; } + { locale = "son"; arch = "linux-i686"; sha1 = "05c37865cea7ebc007099c14b2a38c315541477b"; } + { locale = "son"; arch = "linux-x86_64"; sha1 = "de6aafaaff37f9ffd5dc2a5dc793a8034340eb16"; } + { locale = "sq"; arch = "linux-i686"; sha1 = "0c2b5a383d33a347e2c136a76f99c6a72fdf14a1"; } + { locale = "sq"; arch = "linux-x86_64"; sha1 = "e6fb929c285406656ae25156eeb8e446f69cb5ec"; } + { locale = "sr"; arch = "linux-i686"; sha1 = "2699adadaf32b89077b2e11fff1966841e4df500"; } + { locale = "sr"; arch = "linux-x86_64"; sha1 = "53c0d1d7559b4a9f6310b2bbec039a9d02a42200"; } + { locale = "sv-SE"; arch = "linux-i686"; sha1 = "5e680c4a9f9c0be0b74fee65688a4e748b73a7ec"; } + { locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "feafa153bf9dc1827acb64a219e2eeecda99e49d"; } + { locale = "ta"; arch = "linux-i686"; sha1 = "d372de893c61af574ce5543dbea51b86e89ac24b"; } + { locale = "ta"; arch = "linux-x86_64"; sha1 = "774e8166ca5418be29bbf75665431301bab0c261"; } + { locale = "te"; arch = "linux-i686"; sha1 = "84619cf1f9fca5bc49312e6929e0e27fb38ea058"; } + { locale = "te"; arch = "linux-x86_64"; sha1 = "abc1565856241ebb91ceb41c6891c8db843946dd"; } + { locale = "th"; arch = "linux-i686"; sha1 = "337b5d30b5da8eef79992c33755956efd2c98297"; } + { locale = "th"; arch = "linux-x86_64"; sha1 = "02e7c2ab7ed3ff5da36cb3fca19e019961dd015c"; } + { locale = "tr"; arch = "linux-i686"; sha1 = "e3e0caef6f82a09edfbe9024701d829c0e5bc625"; } + { locale = "tr"; arch = "linux-x86_64"; sha1 = "184ffa3647d57adaf419f9209682aca913249b49"; } + { locale = "uk"; arch = "linux-i686"; sha1 = "0ae60e506d63373730895526bc7bcb9dc5c7b814"; } + { locale = "uk"; arch = "linux-x86_64"; sha1 = "f54d9fb8b704178bceed03646af17ab8e49a94d4"; } + { locale = "uz"; arch = "linux-i686"; sha1 = "77973a500608be31185ea172b4c4f21191838e9d"; } + { locale = "uz"; arch = "linux-x86_64"; sha1 = "5cb1cb1618cdc2b4515b3569c2ef8341b91d547b"; } + { locale = "vi"; arch = "linux-i686"; sha1 = "d957cedd5a36546f7d9cef3ddcdbdfb9dfb376a3"; } + { locale = "vi"; arch = "linux-x86_64"; sha1 = "992d5939c9db596dfc1e118c80a5fb2c08c96753"; } + { locale = "xh"; arch = "linux-i686"; sha1 = "1eab731be806a22e29940676d3766190becf9561"; } + { locale = "xh"; arch = "linux-x86_64"; sha1 = "fe4872dd673fdbf867921f7c1fbc36ae0be74c3e"; } + { locale = "zh-CN"; arch = "linux-i686"; sha1 = "8cc0e2ea6342577761a6ef9655c4f07f9dae1367"; } + { locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "5854d58a2ec318d5dc16f905853fa808774c956d"; } + { locale = "zh-TW"; arch = "linux-i686"; sha1 = "875013ebba184c5a656abb2ab4fee3948689beef"; } + { locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "7e416b11856aae2d52bc24b7629fc2d90719e9b1"; } ]; } diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix index bd8fb4d2cd7b..df176caaa2d6 100644 --- a/pkgs/applications/networking/browsers/firefox/default.nix +++ b/pkgs/applications/networking/browsers/firefox/default.nix @@ -1,9 +1,10 @@ -{ lib, stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL -, libjpeg, zlib, dbus, dbus_glib, bzip2, xlibs +{ lib, stdenv, fetchurl, pkgconfig, gtk, gtk3, pango, perl, python, zip, libIDL +, libjpeg, zlib, dbus, dbus_glib, bzip2, xorg , freetype, fontconfig, file, alsaLib, nspr, nss, libnotify , yasm, mesa, sqlite, unzip, makeWrapper, pysqlite , hunspell, libevent, libstartup_notification, libvpx -, cairo, gstreamer, gst_plugins_base, icu +, cairo, gstreamer, gst_plugins_base, icu, libpng, jemalloc, libpulseaudio +, enableGTK3 ? false , debugBuild ? false , # If you want the resulting program to call itself "Firefox" instead # of "Shiretoko" or whatever, enable this option. However, those @@ -15,26 +16,30 @@ assert stdenv.cc ? libc && stdenv.cc.libc != null; -let version = "37.0.2"; in +let -stdenv.mkDerivation rec { - name = "firefox-${version}"; +common = { pname, version, sha1 }: stdenv.mkDerivation rec { + name = "${pname}-${version}"; src = fetchurl { - url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2"; - sha1 = "6e306d56e4e00ffdc2ddbdfbbabe4cb9fc527071"; + url = + let ext = if lib.versionAtLeast version "41.0" then "xz" else "bz2"; + in "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.${ext}"; + inherit sha1; }; buildInputs = [ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2 - python dbus dbus_glib pango freetype fontconfig xlibs.libXi - xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file - alsaLib nspr nss libnotify xlibs.pixman yasm mesa - xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite - xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper - hunspell libevent libstartup_notification libvpx cairo - gstreamer gst_plugins_base icu - ]; + python dbus dbus_glib pango freetype fontconfig xorg.libXi + xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file + alsaLib nspr nss libnotify xorg.pixman yasm mesa + xorg.libXScrnSaver xorg.scrnsaverproto pysqlite + xorg.libXext xorg.xextproto sqlite unzip makeWrapper + hunspell libevent libstartup_notification libvpx /* cairo */ + gstreamer gst_plugins_base icu libpng jemalloc + libpulseaudio # only headers are needed + ] + ++ lib.optional enableGTK3 gtk3; configureFlags = [ "--enable-application=browser" @@ -46,25 +51,27 @@ stdenv.mkDerivation rec { "--with-system-nss" "--with-system-libevent" "--with-system-libvpx" - # "--with-system-png" # needs APNG support - # "--with-system-icu" # causes ‘ar: invalid option -- 'L'’ in Firefox 28.0 + "--with-system-png" # needs APNG support + "--with-system-icu" "--enable-system-ffi" "--enable-system-hunspell" "--enable-system-pixman" "--enable-system-sqlite" - "--enable-system-cairo" + #"--enable-system-cairo" "--enable-gstreamer" "--enable-startup-notification" - # "--enable-content-sandbox" # available since 26.0, but not much info available - # "--enable-content-sandbox-reporter" # keeping disabled for now + "--enable-content-sandbox" # available since 26.0, but not much info available + "--disable-content-sandbox-reporter" # keeping disabled for now "--disable-crashreporter" "--disable-tests" "--disable-necko-wifi" # maybe we want to enable this at some point "--disable-installer" "--disable-updater" - "--disable-pulseaudio" + "--enable-jemalloc" + "--disable-gconf" ] - ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] + ++ lib.optional enableGTK3 "--enable-default-toolkit=cairo-gtk3" + ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] else [ "--disable-debug" "--enable-release" "--enable-optimize${lib.optionalString (stdenv.system == "i686-linux") "=-O1"}" "--enable-strip" ]) @@ -76,7 +83,7 @@ stdenv.mkDerivation rec { '' mkdir ../objdir cd ../objdir - configureScript=../mozilla-release/configure + configureScript=../mozilla-*/configure ''; preInstall = @@ -92,10 +99,21 @@ stdenv.mkDerivation rec { # Remove SDK cruft. FIXME: move to a separate output? rm -rf $out/share/idl $out/include $out/lib/firefox-devel-* + '' + lib.optionalString enableGTK3 + # argv[0] must point to firefox itself + '' + wrapProgram "$out/bin/firefox" \ + --argv0 "$out/bin/.firefox-wrapped" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \ + --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" + '' + + # some basic testing + '' + "$out/bin/firefox" --version ''; meta = { - description = "Web browser"; + description = "A web browser" + lib.optionalString (pname == "firefox-esr") " (Extended Support Release)"; homepage = http://www.mozilla.com/en-US/firefox/; maintainers = with lib.maintainers; [ eelco ]; platforms = lib.platforms.linux; @@ -105,4 +123,20 @@ stdenv.mkDerivation rec { inherit gtk nspr version; isFirefox3Like = true; }; +}; + +in { + + firefox = common { + pname = "firefox"; + version = "41.0.1"; + sha1 = "4f6bf34b7b286e033f401d7d4112ec6310577aae"; + }; + + firefox-esr = common { + pname = "firefox-esr"; + version = "38.3.0esr"; + sha1 = "57d2c255348ac13b6ffbb952c5e0d57757aa0290"; + }; + } diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index 5ebd26078412..db51dc8b148b 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation { desktopItem = makeDesktopItem { name = browserName; exec = browserName + " %U"; - icon = browserName; + inherit icon; comment = ""; desktopName = desktopName; genericName = "Web Browser"; @@ -43,11 +43,10 @@ stdenv.mkDerivation { --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \ --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \ --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ - --set MOZ_OBJDIR "$(ls -d "${browser}/lib/${browserName}*")" + --set MOZ_OBJDIR "$(ls -d "${browser}/lib/${browserName}"*)" ${ lib.optionalString libtrick '' - sed -e "s@exec @exec -a '$out/bin/${browserName}${nameSuffix}' @" -i "$out/bin/${browserName}${nameSuffix}" libdirname="$(echo "${browser}/lib/${browserName}"*)" libdirbasename="$(basename "$libdirname")" mkdir -p "$out/lib/$libdirbasename" @@ -58,8 +57,14 @@ stdenv.mkDerivation { '' } - mkdir -p $out/share/icons - ln -s $out/lib/${browserName}${nameSuffix}/browser/icons/mozicon128.png $out/share/icons/${browserName}.png + if [ -e "${browser}/share/icons" ]; then + mkdir -p "$out/share" + ln -s "${browser}/share/icons" "$out/share/icons" + else + mkdir -p "$out/share/icons/hicolor/128x128/apps" + ln -s "$out/lib/$libdirbasename/browser/icons/mozicon128.png" \ + "$out/share/icons/hicolor/128x128/apps/${browserName}.png" + fi mkdir -p $out/share/applications cp $desktopItem/share/applications/* $out/share/applications diff --git a/pkgs/applications/networking/browsers/jumanji/default.nix b/pkgs/applications/networking/browsers/jumanji/default.nix index ff4fea90bff1..1969a1f502f2 100644 --- a/pkgs/applications/networking/browsers/jumanji/default.nix +++ b/pkgs/applications/networking/browsers/jumanji/default.nix @@ -1,22 +1,24 @@ -{ stdenv, fetchgit, pkgconfig, girara, gtk, webkitgtk, glib_networking, makeWrapper }: +{ stdenv, fetchgit, pkgconfig, girara, gtk, webkitgtk, glib_networking, makeWrapper +, gsettings_desktop_schemas }: stdenv.mkDerivation rec { name = "jumanji-${version}"; - version = "20140622"; + version = "20150107"; src = fetchgit { url = git://pwmt.org/jumanji.git; - rev = "8f40487304a6a931487c411b25001f2bb5cf8d4f"; - sha256 = "1hdk09rayyv2knxzn4n7d41dvh34gdk9ra75x7g9n985w13pkinv"; + rev = "f8e04e5b5a9fec47d49ca63a096e5d35be281151"; + sha256 = "1xq06iabr4y76faf4w1cx6fhwdksfsxggz1ndny7icniwjzk98h9"; }; - buildInputs = [ girara pkgconfig gtk webkitgtk makeWrapper ]; + buildInputs = [ girara pkgconfig gtk webkitgtk makeWrapper gsettings_desktop_schemas ]; makeFlags = [ "PREFIX=$(out)" ]; preFixup='' wrapProgram "$out/bin/jumanji" \ - --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" + --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/networking/browsers/kwebkitpart/default.nix b/pkgs/applications/networking/browsers/kwebkitpart/default.nix index cb3a0e9eac49..173ffcb93304 100644 --- a/pkgs/applications/networking/browsers/kwebkitpart/default.nix +++ b/pkgs/applications/networking/browsers/kwebkitpart/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, kdelibs }: +{ stdenv, fetchgit, automoc4, cmake, perl, pkgconfig, kdelibs }: stdenv.mkDerivation rec { name = "kwebkitpart-${version}"; @@ -14,6 +14,8 @@ stdenv.mkDerivation rec { buildInputs = [ kdelibs ]; + nativeBuildInputs = [ automoc4 cmake perl pkgconfig ]; + meta = with stdenv.lib; { platforms = platforms.linux; maintainers = [ maintainers.phreedom ]; diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix index 9b9d9ab6db17..518a4d667dda 100644 --- a/pkgs/applications/networking/browsers/links2/default.nix +++ b/pkgs/applications/networking/browsers/links2/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl -, gpm, openssl, pkgconfig # Misc. -, libpng, libjpeg, libtiff # graphic formats +, gpm, openssl, pkgconfig, libev # Misc. +, libpng, libjpeg, libtiff, librsvg # graphic formats , bzip2, zlib, xz # Transfer encodings , enableFB ? true , enableDirectFB ? false, directfb @@ -8,16 +8,16 @@ }: stdenv.mkDerivation rec { - version = "2.8"; + version = "2.11"; name = "links2-${version}"; src = fetchurl { url = "${meta.homepage}/download/links-${version}.tar.bz2"; - sha256 = "15h07498z52jfdahzgvkphg1f7qvxnpbyfn2xmsls0d2dwwdll3r"; + sha256 = "0gqjdz1brdcx02mcwchi6bxy1i1ljbw5zpc6b321skrrsqkzkxw7"; }; buildInputs = - [ libpng libjpeg libtiff gpm openssl xz bzip2 zlib ] + [ libev librsvg libpng libjpeg libtiff gpm openssl xz bzip2 zlib ] ++ stdenv.lib.optionals enableX11 [ libX11 libXau libXt ] ++ stdenv.lib.optional enableDirectFB [ directfb ]; diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix index d398cdd29421..5cdfcf5e975a 100644 --- a/pkgs/applications/networking/browsers/midori/default.nix +++ b/pkgs/applications/networking/browsers/midori/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, cmake, pkgconfig, intltool, vala, makeWrapper , gtk3, webkitgtk, librsvg, libnotify, sqlite -, glib_networking, gsettings_desktop_schemas +, glib_networking, gsettings_desktop_schemas, libsoup }: let @@ -31,6 +31,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake pkgconfig intltool vala makeWrapper webkitgtk librsvg libnotify sqlite + (libsoup.override {gnomeSupport = true;}) ]; cmakeFlags = '' diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix new file mode 100644 index 000000000000..4b05dcd2675d --- /dev/null +++ b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl, xorg, gtk, glib, gdk_pixbuf, dpkg, libXext, libXfixes +, libXrender, libuuid, libXrandr, libXcomposite, libpulseaudio +}: + +with stdenv.lib; + +let + + rpathInstaller = makeLibraryPath + [gtk glib stdenv.cc.cc]; + + rpathPlugin = makeLibraryPath + [ stdenv.cc.cc gtk glib xorg.libX11 gdk_pixbuf libXext libXfixes libXrender libXrandr libuuid libXcomposite libpulseaudio ]; + +in + +stdenv.mkDerivation rec { + name = "bluejeans-${version}"; + + version = "2.100.102.8"; + + src = fetchurl { + url = "https://swdl.bluejeans.com/skinny/bjnplugin_${version}-1_amd64.deb"; + sha256 = "18f8jmhxvqy1yiiwlsssj7rjlfcb41xn16hnl6wv8r8r2mmic4v8"; + }; + + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + + unpackPhase = "${dpkg}/bin/dpkg-deb -x $src ."; + + installPhase = + '' + mkdir -p $out + cp -R usr/lib $out/ + + plugins=$out/lib/mozilla/plugins + patchelf \ + --set-rpath "${rpathPlugin}" \ + $plugins/npbjnplugin_${version}.so + + patchelf \ + --set-rpath "${rpathInstaller}" \ + $plugins/npbjninstallplugin_${version}.so + ''; + + dontStrip = true; + dontPatchELF = true; + + passthru.mozillaPlugin = "/lib/mozilla/plugins"; + + meta = { + homepage = http://bluejeans.com; + license = stdenv.lib.licenses.unfree; + maintainers = with maintainers; [ ocharles kamilchm ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix index 35541b39ee87..01c643408757 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix @@ -36,7 +36,7 @@ let # -> http://get.adobe.com/flashplayer/ - version = "11.2.202.457"; + version = "11.2.202.508"; src = if stdenv.system == "x86_64-linux" then @@ -46,21 +46,21 @@ let throw "no x86_64 debugging version available" else rec { inherit version; - url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; - sha256 = "0nkr6p4h5l03ywsj1sbap359cl1x9rq3m12j9gvwvbvn935rmyr2"; + url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; + sha256 = "1i0301vnz94pxcwm9wk1jjyv7gwywy6p7z26ikd5cg259myxbg75"; } else if stdenv.system == "i686-linux" then if debug then throw "flash debugging version is outdated and probably broken" /* { # The debug version also contains a player version = "11.1"; - url = http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_plugin_debug.i386.tar.gz; + url = http://fpdownload.adobe.com/pub/flashplayer/updaters/11/flashplayer_11_plugin_debug.i386.tar.gz; sha256 = "0jn7klq2cyqasj6nxfka2l8nsf7sn7hi6443nv6dd2sb3g7m6x92"; }*/ else rec { inherit version; - url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; - sha256 = "0qil5rb61bkn80fij31nv29q2wa7bxiwwxgy5zlkm2hsyrz3y4kc"; + url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; + sha256 = "1483bi34ymchv1cqg57whxhlrhhvwhcw33zjgwzmy7bacxbkj9ia"; } else throw "Flash Player is not supported on this platform"; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix index 3b473019600f..b8aa17803e9f 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { passthru.mozillaPlugin = "/lib/mozilla/plugins"; - meta = { + meta = with stdenv.lib; { description = "A browser plugin to manage Swedish BankID:s"; longDescription = '' FriBID is an open source software for the Swedish e-id system @@ -30,8 +30,8 @@ stdenv.mkDerivation rec { support. ''; homepage = http://fribid.se; - license = [ "GPLv2" "MPLv1" ]; - maintainers = [ stdenv.lib.maintainers.edwtjo ]; - platforms = with stdenv.lib.platforms; linux; + license = with licenses; [ gpl2 mpl10 ]; + maintainers = [ maintainers.edwtjo ]; + platforms = with platforms; linux; }; } diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix index 05e3a8bf613a..ba40925e1d1e 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, browser, x11 +{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, browser, xlibsWrapper , GConf, gnome_mplayer, mplayer, gmtk }: @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { sha256 = "913fd39e70c564cb210c2544a88869f9d1a448184421f000b14b2bc5ba718b49"; }; - buildInputs = [ pkgconfig glib dbus dbus_glib browser x11 GConf browser gmtk ]; + buildInputs = [ pkgconfig glib dbus dbus_glib browser xlibsWrapper GConf browser gmtk ]; # !!! fix this preBuild = diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix index bdccb932e1c3..6fd953636a83 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, rpm, cpio, mesa, xorg, cairo , libpng, gtk, glib, gdk_pixbuf, fontconfig, freetype, curl -, dbus_glib, alsaLib, pulseaudio, udev, pango +, dbus_glib, alsaLib, libpulseaudio, udev, pango }: with stdenv.lib; @@ -34,7 +34,7 @@ let xorg.libXrandr stdenv.cc.cc alsaLib - pulseaudio + libpulseaudio dbus_glib udev curl diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix index 37d5cbe039f1..17012850a319 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix @@ -1,36 +1,30 @@ -a : -let - fetchurl = a.fetchurl; +{ stdenv, fetchurl, firefox, libX11, xproto }: + +stdenv.mkDerivation rec { + name = "mozplugger-${version}"; + version = "2.1.6"; - version = a.lib.attrByPath ["version"] "1.12.0" a; - buildInputs = with a; [ - firefox libX11 xproto - ]; -in -rec { src = fetchurl { url = "http://mozplugger.mozdev.org/files/mozplugger-${version}.tar.gz"; - sha256 = "1vpggfmbv4h3srk80rgidd020i03hrkpb7cfxkwagkcd0zcal4hk"; + sha256 = "1vszkq4kdbaxsrqr2xn9rq6ipza9fngdri79gvjqk3bvsdmg0k19"; }; - inherit buildInputs; - configureFlags = []; - makeFlags = ["linux" "prefix=" "root=$out"]; + buildInputs = [ firefox libX11 xproto ]; - preBuild = a.fullDepEntry('' - sed -e s@/usr/@"$out/"@g -i mozplugger.c - '') ["doUnpack" "minInit"]; + installPhase = '' + mkdir -p "$out/etc" "$out/bin" "$out/lib/mozilla/plugins" "$out/share/man/man7" + cp mozpluggerrc "$out/etc" + cp mozplugger-{helper,controller,linker,update} "$out/bin" + cp mozplugger.so "$out/lib/mozilla/plugins" + cp mozplugger.7 "$out/share/man/man7" - postInstall = a.fullDepEntry('' - mkdir -p $out/share/${name}/plugin - ln -s $out/lib/mozilla/plugins/mozplugger.so $out/share/${name}/plugin - '') ["doMakeInstall" "minInit" "defEnsureDir"]; + mkdir -p "$out/share/${name}/plugin" + ln -s "$out/lib/mozilla/plugins/mozplugger.so" "$out/share/${name}/plugin" + ''; - /* doConfigure should be removed if not needed */ - phaseNames = ["preBuild" "doMakeInstall" "postInstall"]; - - name = "mozplugger-" + version; meta = { description = "Mozilla plugin for launching external program for handling in-page objects"; + homepage = http://mozplugger.mozdev.org/; + license = stdenv.lib.licenses.gpl2Plus; }; } diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix index 105e5904715c..07e152e91dbc 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix @@ -28,9 +28,9 @@ stdenv.mkDerivation rec { mozillaPlugin = "/lib/mozilla/plugins"; }; - meta = { + meta = with stdenv.lib; { description = "A browser plugin that uses mplayer to play digital media from websites"; homepage = http://mplayerplug-in.sourceforge.net/; - license = [ "GPLv2+" "LGPLv2+" "MPLv1+" ]; + license = with licenses; [ gpl2Plus lgpl2Plus "MPLv1+" ]; }; } diff --git a/pkgs/applications/networking/browsers/netsurf/libCSS.nix b/pkgs/applications/networking/browsers/netsurf/libCSS.nix index ede053aeca3f..99192fda113a 100644 --- a/pkgs/applications/networking/browsers/netsurf/libCSS.nix +++ b/pkgs/applications/networking/browsers/netsurf/libCSS.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { buildInputs = [pkgconfig libParserUtils libwapcaplet]; meta = { - description = "libCSS is a CSS parser and selection engine, written in C"; # used by netsurf + description = "A CSS parser and selection engine, written in C"; # used by netsurf homepage = http://www.netsurf-browser.org/projects/libcss/; license = stdenv.lib.licenses.mit; maintainers = [args.lib.maintainers.marcweber]; diff --git a/pkgs/applications/networking/browsers/netsurf/libParserUtils.nix b/pkgs/applications/networking/browsers/netsurf/libParserUtils.nix index 32bede76e432..3c2b7693be7f 100644 --- a/pkgs/applications/networking/browsers/netsurf/libParserUtils.nix +++ b/pkgs/applications/networking/browsers/netsurf/libParserUtils.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { buildInputs = [pkgconfig]; meta = { - description = "LibParserUtils is a library for building efficient parsers, written in C"; + description = "A library for building efficient parsers, written in C"; homepage = http://www.netsurf-browser.org/projects/libparserutils/; license = stdenv.lib.licenses.mit; maintainers = [args.lib.maintainers.marcweber]; diff --git a/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix b/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix index d370002543ce..083850bb5450 100644 --- a/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix +++ b/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { buildInputs = []; meta = { - description = "Libnsbmp is a decoding library for BMP and ICO image file formats"; # used by netsurf + description = "A decoding library for BMP and ICO image file formats"; # used by netsurf homepage = http://www.netsurf-browser.org/projects/libnsbmp/; license = stdenv.lib.licenses.mit; maintainers = [args.lib.maintainers.marcweber]; diff --git a/pkgs/applications/networking/browsers/netsurf/libnsgif.nix b/pkgs/applications/networking/browsers/netsurf/libnsgif.nix index a4502d2354de..5e2acb4f313f 100644 --- a/pkgs/applications/networking/browsers/netsurf/libnsgif.nix +++ b/pkgs/applications/networking/browsers/netsurf/libnsgif.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { buildInputs = []; meta = { - description = "Libnsbmp is a decoding library for gif image file formats"; # used by netsurf + description = "A decoding library for gif image file formats"; # used by netsurf homepage = http://www.netsurf-browser.org/projects/libnsgif/; license = stdenv.lib.licenses.mit; maintainers = [args.lib.maintainers.marcweber]; diff --git a/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix b/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix index 5aa15d7b80d0..a4cd09d1d860 100644 --- a/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix +++ b/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { buildInputs = []; meta = { - description = "LibWapcaplet is a string internment library, written in C"; + description = "A string internment library, written in C"; homepage = http://www.netsurf-browser.org/projects/libwapcaplet/; license = stdenv.lib.licenses.mit; maintainers = [args.lib.maintainers.marcweber]; diff --git a/pkgs/applications/networking/browsers/netsurf/netsurf.nix b/pkgs/applications/networking/browsers/netsurf/netsurf.nix index 2d2253f43ef1..f7e90b61a941 100644 --- a/pkgs/applications/networking/browsers/netsurf/netsurf.nix +++ b/pkgs/applications/networking/browsers/netsurf/netsurf.nix @@ -23,12 +23,15 @@ stdenv.mkDerivation { buildPhase = "make PREFIX=$out"; installPhase = "make PREFIX=$out install"; - meta = { + meta = with args.lib; { description = "free, open source web browser"; homepage = http://www.netsurf-browser.org; - license = ["GPLv2" /* visual worrk : */ "MIT" ]; - maintainers = [args.lib.maintainers.marcweber]; - platforms = args.lib.platforms.linux; + license = with licenses; [ + gpl2 + mit /* visual work */ + ]; + maintainers = with maintainers; [ marcweber ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix index ced16da5f7ee..b29f2d1974c0 100644 --- a/pkgs/applications/networking/browsers/opera/default.nix +++ b/pkgs/applications/networking/browsers/opera/default.nix @@ -6,7 +6,7 @@ , kdeSupport ? false, qt4, kdelibs }: -assert stdenv.isLinux && stdenv.cc.cc.isGNU or false && stdenv.cc.libc != null; +assert stdenv.isLinux && stdenv.cc.isGNU && stdenv.cc.libc != null; let mirror = http://get.geo.opera.com/pub/opera; diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix new file mode 100644 index 000000000000..7f2190ab82c6 --- /dev/null +++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchgit, python, buildPythonPackage, qt5, pyqt5, jinja2, pygments, pyyaml, pypeg2, + gst_plugins_base, gst_plugins_good, gst_ffmpeg }: + +let version = "0.4.0"; in + +buildPythonPackage { + name = "qutebrowser-${version}"; + namePrefix = ""; + + src = fetchgit { + url = "https://github.com/The-Compiler/qutebrowser.git"; + rev = "e11fcda240eaad1b83b26c7d6424c427d2ad3b96"; + sha256 = "0hpd6fibzcl0s6jrsj60rs12dyliwr05r8h9wvngh19a3pmg8q74"; + }; + + # Needs tox + doCheck = false; + + propagatedBuildInputs = [ + python pyyaml pyqt5 jinja2 pygments pypeg2 + ]; + + makeWrapperArgs = '' + --prefix GST_PLUGIN_PATH : "${stdenv.lib.makeSearchPath "lib/gstreamer-0.10" + [ gst_plugins_base gst_plugins_good gst_ffmpeg ]}" + --prefix QT_PLUGIN_PATH : "${qt5.multimedia}/lib/qt5/plugins" + ''; + + meta = { + homepage = https://github.com/The-Compiler/qutebrowser; + description = "Keyboard-focused browser with a minimal GUI"; + license = stdenv.lib.licenses.gpl3Plus; + maintainers = [ stdenv.lib.maintainers.jagajaga ]; + }; +} diff --git a/pkgs/applications/networking/browsers/rekonq/default.nix b/pkgs/applications/networking/browsers/rekonq/default.nix index ce36e26d6fcc..df8ad1eb3508 100644 --- a/pkgs/applications/networking/browsers/rekonq/default.nix +++ b/pkgs/applications/networking/browsers/rekonq/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchurl, kde4, gettext, pkgconfig, shared_desktop_ontologies, qca2, qoauth }: +{ stdenv, fetchurl, automoc4, cmake, gettext, perl, pkgconfig +, kde4, shared_desktop_ontologies, qca2, qoauth }: assert builtins.compareVersions "4.8.3" kde4.release != 1; # https://bugs.kde.org/show_bug.cgi?id=306077 @@ -12,7 +13,9 @@ stdenv.mkDerivation rec { buildInputs = [ kde4.kdelibs qca2 qoauth ]; - nativeBuildInputs = [ gettext pkgconfig shared_desktop_ontologies ]; + nativeBuildInputs = [ + automoc4 cmake gettext perl pkgconfig shared_desktop_ontologies + ]; meta = with stdenv.lib; { platforms = platforms.linux; diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix index b30b2e260e32..84a2870b6d0a 100644 --- a/pkgs/applications/networking/browsers/vimb/default.nix +++ b/pkgs/applications/networking/browsers/vimb/default.nix @@ -11,11 +11,6 @@ stdenv.mkDerivation rec { sha256 = "0h9m5qfs09lb0dz8a79yccmm3a5rv6z8gi5pkyfh8fqkgkh2940p"; }; - # Nixos default ca bundle - patchPhase = '' - sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, src/config.def.h - ''; - buildInputs = [ makeWrapper gtk libsoup pkgconfig webkit gsettings_desktop_schemas ]; makeFlags = [ "PREFIX=$(out)" ]; diff --git a/pkgs/applications/networking/browsers/vimprobable2/default.nix b/pkgs/applications/networking/browsers/vimprobable2/default.nix index 8e1e00795d24..6f8eede9b3f8 100644 --- a/pkgs/applications/networking/browsers/vimprobable2/default.nix +++ b/pkgs/applications/networking/browsers/vimprobable2/default.nix @@ -9,11 +9,6 @@ stdenv.mkDerivation rec { sha256 = "13jdximksh9r3cgd2f8vms0pbsn3x0gxvyqdqiw16xp5fmdx5kzr"; }; - # Nixos default ca bundle - patchPhase = '' - sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, config.h - ''; - buildInputs = [ makeWrapper gtk libsoup libX11 perl pkgconfig webkit gsettings_desktop_schemas ]; installPhase = '' diff --git a/pkgs/applications/networking/browsers/w3m/cygwin.patch b/pkgs/applications/networking/browsers/w3m/cygwin.patch new file mode 100644 index 000000000000..767cc289b5f6 --- /dev/null +++ b/pkgs/applications/networking/browsers/w3m/cygwin.patch @@ -0,0 +1,1710 @@ +diff -ur w3m-0.5.3/config.guess new/w3m-0.5.3/config.guess +--- w3m-0.5.3/config.guess 2004-08-04 13:32:27.000000000 -0400 ++++ w3m-0.5.3/config.guess 2013-04-28 18:43:59.480227700 -0400 +@@ -1,13 +1,14 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++# 2011, 2012, 2013 Free Software Foundation, Inc. + +-timestamp='2004-03-12' ++timestamp='2012-12-29' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -16,24 +17,22 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# along with this program; if not, see <http://www.gnu.org/licenses/>. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. +- +-# Originally written by Per Bothner <per@bothner.com>. +-# Please send patches to <config-patches@gnu.org>. Submit a context +-# diff and a properly formatted ChangeLog entry. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). ++# ++# Originally written by Per Bothner. + # +-# This script attempts to guess a canonical system name similar to +-# config.sub. If it succeeds, it prints the system name on stdout, and +-# exits with 0. Otherwise, it exits with 1. ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + # +-# The plan is that this can be called by configure scripts if you +-# don't specify an explicit build system type. ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++ + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -53,8 +52,9 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +-Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, ++2012, 2013 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -66,11 +66,11 @@ + while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) +- echo "$timestamp" ; exit 0 ;; ++ echo "$timestamp" ; exit ;; + --version | -v ) +- echo "$version" ; exit 0 ;; ++ echo "$version" ; exit ;; + --help | --h* | -h ) +- echo "$usage"; exit 0 ;; ++ echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. +@@ -104,7 +104,7 @@ + trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; + trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; + : ${TMPDIR=/tmp} ; +- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +@@ -123,7 +123,7 @@ + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +-esac ;' ++esac ; set_cc_for_build= ;' + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. + # (ghazi@noc.rutgers.edu 1994-08-24) +@@ -141,7 +141,7 @@ + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -158,6 +158,7 @@ + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched +@@ -166,7 +167,7 @@ + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ +- | grep __ELF__ >/dev/null ++ | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? +@@ -176,7 +177,7 @@ + fi + ;; + *) +- os=netbsd ++ os=netbsd + ;; + esac + # The OS release +@@ -196,71 +197,34 @@ + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" +- exit 0 ;; +- amd64:OpenBSD:*:*) +- echo x86_64-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- amiga:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- arc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- cats:OpenBSD:*:*) +- echo arm-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- hp300:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mac68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- macppc:OpenBSD:*:*) +- echo powerpc-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme88k:OpenBSD:*:*) +- echo m88k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvmeppc:OpenBSD:*:*) +- echo powerpc-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- pegasos:OpenBSD:*:*) +- echo powerpc-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- pmax:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- sgi:OpenBSD:*:*) +- echo mipseb-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- sun3:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- wgrisc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; + macppc:MirBSD:*:*) +- echo powerppc-unknown-mirbsd${UNAME_RELEASE} +- exit 0 ;; ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -306,40 +270,46 @@ + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit 0 ;; +- Alpha*:OpenVMS:*:*) +- echo alpha-hp-vms +- exit 0 ;; ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix +- exit 0 ;; ++ exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 +- exit 0 ;; ++ exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 +- exit 0;; ++ exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos +- exit 0 ;; ++ exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos +- exit 0 ;; ++ exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition +- exit 0 ;; ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 +- exit 0 ;; ++ echo powerpc-ibm-os400 ++ exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} +- exit 0;; ++ exit ;; ++ arm*:riscos:*:*|arm*:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp +- exit 0;; ++ exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then +@@ -347,32 +317,51 @@ + else + echo pyramid-pyramid-bsd + fi +- exit 0 ;; ++ exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 +- exit 0 ;; ++ exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 +- exit 0 ;; +- DRS?6000:UNIX_SV:4.2*:7*) ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in +- sparc) echo sparc-icl-nx7 && exit 0 ;; ++ sparc) echo sparc-icl-nx7; exit ;; + esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; +- i86pc:SunOS:5.*:*) +- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) ++ eval $set_cc_for_build ++ SUN_ARCH="i386" ++ # If there is a compiler, see if it is configured for 64-bit objects. ++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. ++ # This test works for both compilers. ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ SUN_ARCH="x86_64" ++ fi ++ fi ++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) +@@ -381,10 +370,10 @@ + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` +- exit 0 ;; ++ exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 +@@ -396,10 +385,10 @@ + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac +- exit 0 ;; ++ exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor +@@ -409,41 +398,41 @@ + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 +- exit 0 ;; ++ exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +@@ -467,35 +456,36 @@ + exit (-1); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c \ +- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ +- && exit 0 ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax +- exit 0 ;; ++ exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax +- exit 0 ;; ++ exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax +- exit 0 ;; ++ exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix +- exit 0 ;; ++ exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 +- exit 0 ;; ++ exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 +- exit 0 ;; ++ exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ +@@ -508,29 +498,29 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 +- exit 0 ;; ++ exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 +- exit 0 ;; ++ exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd +- exit 0 ;; ++ exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` +- exit 0 ;; ++ exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. +- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id +- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix +- exit 0 ;; ++ exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` +@@ -538,7 +528,7 @@ + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} +- exit 0 ;; ++ exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build +@@ -553,15 +543,19 @@ + exit(0); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 +- echo rs6000-ibm-aix3.2.5 ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi +- exit 0 ;; +- *:AIX:*:[45]) ++ exit ;; ++ *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -574,28 +568,28 @@ + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} +- exit 0 ;; ++ exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix +- exit 0 ;; ++ exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 +- exit 0 ;; ++ exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to +- exit 0 ;; # report: romp-ibm BSD 4.3 ++ exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx +- exit 0 ;; ++ exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 +- exit 0 ;; ++ exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd +- exit 0 ;; ++ exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 +- exit 0 ;; ++ exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in +@@ -604,52 +598,52 @@ + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c + +- #define _HPUX_SOURCE +- #include <stdlib.h> +- #include <unistd.h> +- +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); +- +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ #define _HPUX_SOURCE ++ #include <stdlib.h> ++ #include <unistd.h> ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa +@@ -657,9 +651,19 @@ + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then +- # avoid double evaluation of $set_cc_for_build +- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build +- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else +@@ -667,11 +671,11 @@ + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} +- exit 0 ;; ++ exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} +- exit 0 ;; ++ exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +@@ -699,224 +703,269 @@ + exit (0); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 +- exit 0 ;; ++ exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd +- exit 0 ;; ++ exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd +- exit 0 ;; ++ exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix +- exit 0 ;; ++ exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf +- exit 0 ;; ++ exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf +- exit 0 ;; ++ exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi +- exit 0 ;; ++ exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites +- exit 0 ;; ++ exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit 0 ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit 0 ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit 0 ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit 0 ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit 0 ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + *:UNICOS/mp:*:*) +- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit 0 ;; ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit 0 ;; ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:FreeBSD:*:*) +- # Determine whether the default compiler uses glibc. +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include <features.h> +- #if __GLIBC__ >= 2 +- LIBC=gnu +- #else +- LIBC= +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` +- # GNU/KFreeBSD systems have a "k" prefix to indicate we are using +- # FreeBSD's kernel, but not the complete OS. +- case ${LIBC} in gnu) kernel_only='k' ;; esac +- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} +- exit 0 ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac ++ exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin +- exit 0 ;; +- i*:MINGW*:*) ++ exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; ++ *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 +- exit 0 ;; ++ exit ;; ++ i*:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 +- exit 0 ;; +- x86:Interix*:[34]*) +- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' +- exit 0 ;; ++ exit ;; ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ authenticamd | genuineintel | EM64T) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks +- exit 0 ;; ++ exit ;; ++ 8664:Windows_NT:*) ++ echo x86_64-pc-mks ++ exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix +- exit 0 ;; ++ exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin +- exit 0 ;; ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin +- exit 0 ;; ++ exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` +- exit 0 ;; ++ exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu +- exit 0 ;; ++ exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix +- exit 0 ;; ++ exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; + arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ else ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf ++ fi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu +- exit 0 ;; +- ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; +- m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-axis-linux-gnu ++ exit ;; ++ crisv32:Linux:*:*) ++ echo ${UNAME_MACHINE}-axis-linux-gnu ++ exit ;; ++ frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; +- m68*:Linux:*:*) ++ exit ;; ++ hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; +- mips:Linux:*:*) ++ exit ;; ++ i*86:Linux:*:*) ++ LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +- #undef CPU +- #undef mips +- #undef mipsel +- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mipsel +- #else +- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips +- #else +- CPU= +- #endif ++ #ifdef __dietlibc__ ++ LIBC=dietlibc + #endif + EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` +- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 +- ;; +- mips64:Linux:*:*) ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU +- #undef mips64 +- #undef mips64el ++ #undef ${UNAME_MACHINE} ++ #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mips64el ++ CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips64 ++ CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif + EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` +- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; +- ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu +- exit 0 ;; +- ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu +- exit 0 ;; +- alpha:Linux:*:*) +- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +- EV5) UNAME_MACHINE=alphaev5 ;; +- EV56) UNAME_MACHINE=alphaev56 ;; +- PCA56) UNAME_MACHINE=alphapca56 ;; +- PCA57) UNAME_MACHINE=alphapca56 ;; +- EV6) UNAME_MACHINE=alphaev6 ;; +- EV67) UNAME_MACHINE=alphaev67 ;; +- EV68*) UNAME_MACHINE=alphaev68 ;; +- esac +- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} +- exit 0 ;; ++ or32:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ padre:Linux:*:*) ++ echo sparc-unknown-linux-gnu ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +@@ -924,115 +973,71 @@ + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac +- exit 0 ;; +- parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu +- exit 0 ;; ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu ++ exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux +- exit 0 ;; ++ exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-gnu ++ exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu +- exit 0 ;; +- i*86:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. cd to the root directory to prevent +- # problems with other programs or directories called `ld' in the path. +- # Set LC_ALL=C to ensure ld outputs messages in English. +- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ +- | sed -ne '/supported targets:/!d +- s/[ ][ ]*/ /g +- s/.*supported targets: *// +- s/ .*// +- p'` +- case "$ld_supported_targets" in +- elf32-i386) +- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" +- ;; +- a.out-i386-linux) +- echo "${UNAME_MACHINE}-pc-linux-gnuaout" +- exit 0 ;; +- coff-i386) +- echo "${UNAME_MACHINE}-pc-linux-gnucoff" +- exit 0 ;; +- "") +- # Either a pre-BFD a.out linker (linux-gnuoldld) or +- # one that does not give us useful --help. +- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" +- exit 0 ;; +- esac +- # Determine whether the default compiler is a.out or elf +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include <features.h> +- #ifdef __ELF__ +- # ifdef __GLIBC__ +- # if __GLIBC__ >= 2 +- LIBC=gnu +- # else +- LIBC=gnulibc1 +- # endif +- # else +- LIBC=gnulibc1 +- # endif +- #else +- #ifdef __INTEL_COMPILER +- LIBC=gnu +- #else +- LIBC=gnuaout +- #endif +- #endif +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` +- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 +- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 +- ;; ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 +- exit 0 ;; ++ exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} +- exit 0 ;; ++ exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx +- exit 0 ;; ++ exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop +- exit 0 ;; ++ exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos +- exit 0 ;; +- i*86:syllable:*:*) ++ exit ;; ++ i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable +- exit 0 ;; +- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp +- exit 0 ;; ++ exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then +@@ -1040,15 +1045,16 @@ + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi +- exit 0 ;; +- i*86:*:5:[78]*) ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} +- exit 0 ;; ++ exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` +@@ -1066,73 +1072,86 @@ + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi +- exit 0 ;; ++ exit ;; + pc:*:*:*) + # Left here for compatibility: +- # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i386. +- echo i386-pc-msdosdjgpp +- exit 0 ;; ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. ++ # Note: whatever this is, it MUST be the same as what config.sub ++ # prints for the "djgpp" host, or else GDB configury will decide that ++ # this is a cross-build. ++ echo i586-pc-msdosdjgpp ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 +- exit 0 ;; ++ exit ;; + paragon:*:*:*) + echo i860-intel-osf1 +- exit 0 ;; ++ exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi +- exit 0 ;; ++ exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv +- exit 0 ;; ++ exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv +- exit 0 ;; ++ exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix +- exit 0 ;; +- M68*:*:R3V[567]*:*) +- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ +- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4 && exit 0 ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ NCR*:*:4.2:* | MPRAS*:*:4.2:*) ++ OS_REL='.3' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 +- exit 0 ;; ++ exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; +- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` +@@ -1140,68 +1159,97 @@ + else + echo ns32k-sni-sysv + fi +- exit 0 ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says <Richard.M.Bartel@ccMail.Census.GOV> +- echo i586-unisys-sysv4 +- exit 0 ;; ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 +- exit 0 ;; ++ exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 +- exit 0 ;; ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos +- exit 0 ;; ++ exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 +- exit 0 ;; ++ exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos +- exit 0 ;; ++ exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos +- exit 0 ;; ++ exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos +- exit 0 ;; ++ exit ;; ++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. ++ echo i586-pc-haiku ++ exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Darwin:*:*) +- case `uname -p` in +- *86) UNAME_PROCESSOR=i686 ;; +- powerpc) UNAME_PROCESSOR=powerpc ;; ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ case $UNAME_PROCESSOR in ++ i386) ++ eval $set_cc_for_build ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ UNAME_PROCESSOR="x86_64" ++ fi ++ fi ;; ++ unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then +@@ -1209,22 +1257,28 @@ + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:QNX:*:4*) + echo i386-pc-qnx +- exit 0 ;; ++ exit ;; ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux +- exit 0 ;; ++ exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv +- exit 0 ;; ++ exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 +@@ -1235,36 +1289,55 @@ + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 +- exit 0 ;; ++ exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 +- exit 0 ;; ++ exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex +- exit 0 ;; ++ exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 +- exit 0 ;; ++ exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 +- exit 0 ;; ++ exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 +- exit 0 ;; ++ exit ;; + *:ITS:*:*) + echo pdp10-unknown-its +- exit 0 ;; ++ exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} +- exit 0 ;; ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` +- exit 0 ;; ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; ++ i*86:AROS:*:*) ++ echo ${UNAME_MACHINE}-pc-aros ++ exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c <<EOF + #ifdef _SEQUENT_ +@@ -1282,16 +1355,16 @@ + #include <sys/param.h> + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 +- "4" ++ "4" + #else +- "" ++ "" + #endif +- ); exit (0); ++ ); exit (0); + #endif + #endif + + #if defined (__arm) && defined (__acorn) && defined (__unix) +- printf ("arm-acorn-riscix"); exit (0); ++ printf ("arm-acorn-riscix\n"); exit (0); + #endif + + #if defined (hp300) && !defined (hpux) +@@ -1380,11 +1453,12 @@ + } + EOF + +-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 ++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } + + # Apollos put the system type in the environment. + +-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } ++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + + # Convex versions that predate uname can use getsysinfo(1) + +@@ -1393,22 +1467,22 @@ + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd +- exit 0 ;; ++ exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit 0 ;; ++ exit ;; + c34*) + echo c34-convex-bsd +- exit 0 ;; ++ exit ;; + c38*) + echo c38-convex-bsd +- exit 0 ;; ++ exit ;; + c4*) + echo c4-convex-bsd +- exit 0 ;; ++ exit ;; + esac + fi + +@@ -1419,7 +1493,9 @@ + the operating system you are using. It is advised that you + download the most up to date version of the config scripts from + +- ftp://ftp.gnu.org/pub/gnu/config/ ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++and ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + + If the version you run ($0) is already up to date, please + send the following data and any information you think might be +diff -ur w3m-0.5.3/main.c new/w3m-0.5.3/main.c +--- w3m-0.5.3/main.c 2011-01-04 04:42:19.000000000 -0500 ++++ w3m-0.5.3/main.c 2013-04-28 18:42:08.408034100 -0400 +@@ -789,7 +789,8 @@ + } + + #ifdef USE_BINMODE_STREAM +- setmode(fileno(stdout), O_BINARY); ++ /* Seems to only be needed for old versions of Cygwin */ ++ /***setmode(fileno(stdout), O_BINARY);***/ + #endif + if (!w3m_dump && !w3m_backend) { + fmInit(); diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix index bf14e7e53414..d8c421af46a8 100644 --- a/pkgs/applications/networking/browsers/w3m/default.nix +++ b/pkgs/applications/networking/browsers/w3m/default.nix @@ -3,13 +3,13 @@ , graphicsSupport ? false , mouseSupport ? false , ncurses, openssl ? null, boehmgc, gettext, zlib -, imlib2 ? null, x11 ? null, fbcon ? null -, gpm ? null +, imlib2 ? null, xlibsWrapper ? null, fbcon ? null +, gpm-ncurses ? null }: assert sslSupport -> openssl != null; -assert graphicsSupport -> imlib2 != null && (x11 != null || fbcon != null); -assert mouseSupport -> gpm != null; +assert graphicsSupport -> imlib2 != null && (xlibsWrapper != null || fbcon != null); +assert mouseSupport -> gpm-ncurses != null; stdenv.mkDerivation rec { name = "w3m-0.5.3"; @@ -22,12 +22,13 @@ stdenv.mkDerivation rec { patches = [ ./glibc214.patch ] # Patch for the newer unstable boehm-gc 7.2alpha. Not all platforms use that # alpha. At the time of writing this, boehm-gc-7.1 is the last stable. - ++ stdenv.lib.optional (boehmgc.name != "boehm-gc-7.1") [ ./newgc.patch ]; + ++ stdenv.lib.optional (boehmgc.name != "boehm-gc-7.1") [ ./newgc.patch ] + ++ stdenv.lib.optional stdenv.isCygwin ./cygwin.patch; buildInputs = [ncurses boehmgc gettext zlib] ++ stdenv.lib.optional sslSupport openssl - ++ stdenv.lib.optional mouseSupport gpm - ++ stdenv.lib.optionals graphicsSupport [imlib2 x11 fbcon]; + ++ stdenv.lib.optional mouseSupport gpm-ncurses + ++ stdenv.lib.optionals graphicsSupport [imlib2 xlibsWrapper fbcon]; configureFlags = "--with-ssl=${openssl} --with-gc=${boehmgc}" + stdenv.lib.optionalString graphicsSupport " --enable-image=x11,fb"; |