lol

Merge pull request #176253 from trofi/fetchzip-forced-UTF-8

fetchzip: force UTF-8 compatible locale to unpack non-ASCII symbols

authored by

Sergei Trofimovich and committed by
GitHub
206b2cfd 6cba7d42

+30 -14
+9 -9
pkgs/applications/science/logic/coq/default.nix
··· 41 41 "8.12.0".sha256 = "18dc7k0piv6v064zgdadpw6mkkxk7j663hb3svgj5236fihjr0cz"; 42 42 "8.12.1".sha256 = "1rkcyjjrzcqw9xk93hsq0vvji4f8r5iq0f739mghk60bghkpnb7q"; 43 43 "8.12.2".sha256 = "18gscfm039pqhq4msq01nraig5dm9ab98bjca94zldf8jvdv0x2n"; 44 - "8.13.0".sha256 = "0sjbqmz6qcvnz0hv87xha80qbhvmmyd675wyc5z4rgr34j2l1ymd"; 45 - "8.13.1".sha256 = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n"; 46 - "8.13.2".sha256 = "1884vbmwmqwn9ngibax6dhnqh4cc02l0s2ajc6jb1xgr0i60whjk"; 47 - "8.14.0".sha256 = "04y2z0qyvag66zanfyc3f9agvmzbn4lsr0p1l7ck6yjhqx7vbm17"; 48 - "8.14.1".sha256 = "0sx78pgx0qw8v7v2r32zzy3l161zipzq95iacda628girim7psnl"; 49 - "8.15.0".sha256 = "sha256:1ma76wfrpfsl72yh10w1ys2a0vi0mdc2jc79kdc8nrmxkhpw1nxx"; 50 - "8.15.1".sha256 = "sha256:1dsa04jzkx5pw69pmxn0l55q4w88lg6fvz7clbga0bazzsfnsgd6"; 51 - "8.15.2".sha256 = "sha256:0gn8dz69scxnxaq6ycb3x34bjfk9wlp1y2xn8w69kg9fm4b6gkc7"; 52 - "8.16+rc1".sha256 = "sha256-dU+E0Mz7MVntbQIeG9I59ANBaHaXXSrjCRdoqZ5TO60="; 44 + "8.13.0".sha256 = "1l2c63vskp8kiyxiyi5rpgbmnv67ysn3y4lybd6nj0li5llibifi"; 45 + "8.13.1".sha256 = "15drjcqhsgwqnv02bbidyhk316ypyhz1pxfz2gwsalci9svhkz0v"; 46 + "8.13.2".sha256 = "14d4alp35hngvga9m7cfp5d1nl62xdj0nm4811f2jjblk86gxxk4"; 47 + "8.14.0".sha256 = "0yxjx9kq9bfpk31dc1c6a0pz0827fz7jmrcwwd4n7dc07yi0arq8"; 48 + "8.14.1".sha256 = "0xdqiabgm4lrm6d7lw544zd8xwb1cdcavsxvwwlqq6yid2rl2yli"; 49 + "8.15.0".sha256 = "sha256:0q7jl3bn0d1v9cwdkxykw4frccww6wbh1p8hdrfqw489mkxmh5jh"; 50 + "8.15.1".sha256 = "sha256:1janvmnk3czimp0j5qmnfwx6509vhpjc2q7lcza1bc6dm6kn8n42"; 51 + "8.15.2".sha256 = "sha256:0qibbvzrhsvs6w3zpkhyclndp29jnr6bs9i5skjlpp431jdjjfqd"; 52 + "8.16+rc1".sha256 = "sha256-hmZQ6rFIOZJwnAh23nKScJ3Nn+xqDRn5q2Tn82igpYE="; 53 53 }; 54 54 releaseRev = v: "V${v}"; 55 55 fetched = import ../../../../build-support/coq/meta-fetch/default.nix
+5 -2
pkgs/build-support/fetchzip/default.nix
··· 5 5 # (e.g. due to minor changes in the compression algorithm, or changes 6 6 # in timestamps). 7 7 8 - { lib, fetchurl, unzip }: 8 + { lib, fetchurl, unzip, glibcLocalesUtf8 }: 9 9 10 10 { # Optionally move the contents of the unpacked tree up one level. 11 11 stripRoot ? true ··· 35 35 36 36 downloadToTemp = true; 37 37 38 - nativeBuildInputs = [ unzip ] ++ nativeBuildInputs; 38 + # Have to pull in glibcLocalesUtf8 for unzip in setup-hook.sh to handle 39 + # UTF-8 aware locale: 40 + # https://github.com/NixOS/nixpkgs/issues/176225#issuecomment-1146617263 41 + nativeBuildInputs = [ unzip glibcLocalesUtf8 ] ++ nativeBuildInputs; 39 42 40 43 postFetch = 41 44 ''
+1 -1
pkgs/data/fonts/eduli/default.nix
··· 8 8 name = "${pname}-${version}"; 9 9 url = 10 10 "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/MoeLI-3.0.zip"; 11 - sha256 = "0vpmm2qb429npng0aqkafwgs7cjibq8a3f7bbn9hysbm2lndwxwd"; 11 + sha256 = "0b4kjdk0h0hx446swi0wzawia0mf16qh9b6v4h4nqg8qx0p2sd3c"; 12 12 }; 13 13 14 14 installPhase = ''
+7 -1
pkgs/tools/archivers/unzip/setup-hook.sh
··· 1 1 unpackCmdHooks+=(_tryUnzip) 2 2 _tryUnzip() { 3 3 if ! [[ "$curSrc" =~ \.zip$ ]]; then return 1; fi 4 - unzip -qq "$curSrc" 4 + 5 + # UTF-8 locale is needed for unzip on glibc to handle UTF-8 symbols: 6 + # https://github.com/NixOS/nixpkgs/issues/176225#issuecomment-1146617263 7 + # Otherwise unzip unpacks escaped file names as if '-U' options was in effect. 8 + # 9 + # Pick en_US.UTF-8 as most possible to be present on glibc, musl and darwin. 10 + LANG=en_US.UTF-8 unzip -qq "$curSrc" 5 11 }
+8 -1
pkgs/top-level/all-packages.nix
··· 17599 17599 relibc = callPackage ../development/libraries/relibc { }; 17600 17600 17601 17601 # Only supported on Linux 17602 - glibcLocales = if stdenv.hostPlatform.isLinux then callPackage ../development/libraries/glibc/locales.nix { } else null; 17602 + glibcLocales = 17603 + if stdenv.hostPlatform.isLinux 17604 + then callPackage ../development/libraries/glibc/locales.nix { } 17605 + else null; 17606 + glibcLocalesUtf8 = 17607 + if stdenv.hostPlatform.isLinux 17608 + then callPackage ../development/libraries/glibc/locales.nix { allLocales = false; } 17609 + else null; 17603 17610 17604 17611 glibcInfo = callPackage ../development/libraries/glibc/info.nix { }; 17605 17612