From 67fc40aa12df86acf08f438a5e1cb7eba465ee7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 24 Jan 2022 18:56:13 +0100 Subject: [PATCH 01/34] gnutls: 3.7.2 -> 3.7.3 Includes a low-severity security fix. https://lists.gnupg.org/pipermail/gnutls-help/2022-January/004736.html --- pkgs/development/libraries/gnutls/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix index f56052953033..d8d8baf4e227 100644 --- a/pkgs/development/libraries/gnutls/default.nix +++ b/pkgs/development/libraries/gnutls/default.nix @@ -21,11 +21,11 @@ in stdenv.mkDerivation rec { pname = "gnutls"; - version = "3.7.2"; + version = "3.7.3"; src = fetchurl { url = "mirror://gnupg/gnutls/v${lib.versions.majorMinor version}/gnutls-${version}.tar.xz"; - sha256 = "646e6c5a9a185faa4cea796d378a1ba8e1148dbb197ca6605f95986a25af2752"; + sha256 = "16n4yvw3792gcdxkikjmhddr6cbs4wlk027zfxlhmchsqcxw8ngw"; }; outputs = [ "bin" "dev" "out" "man" "devdoc" ]; From a10d11b59f33f355cb3324994f49160e812d1b42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 24 Jan 2022 20:18:39 +0100 Subject: [PATCH 02/34] gnutls: fix IDN support - recent versions only accept libidn2 (not libidn) - it's for free, as it's a runtime dependency of glibc anyway --- pkgs/development/libraries/gnutls/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix index d8d8baf4e227..627e5f46f728 100644 --- a/pkgs/development/libraries/gnutls/default.nix +++ b/pkgs/development/libraries/gnutls/default.nix @@ -1,5 +1,5 @@ { config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkg-config, lzip -, perl, gmp, autoconf, automake, libidn, libiconv +, perl, gmp, autoconf, automake, libidn2, libiconv , unbound, dns-root-data, gettext, util-linux , cxxBindings ? !stdenv.hostPlatform.isStatic # tries to link libstdc++.so , guileBindings ? config.gnutls.guile or false, guile @@ -71,7 +71,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - buildInputs = [ lzo lzip libtasn1 libidn zlib gmp libunistring unbound gettext libiconv ] + buildInputs = [ lzo lzip libtasn1 libidn2 zlib gmp libunistring unbound gettext libiconv ] ++ lib.optional (withP11-kit) p11-kit ++ lib.optional (isDarwin && withSecurity) Security ++ lib.optional (tpmSupport && stdenv.isLinux) trousers From fd8f6de4b8415fe4dcea3a9cbb9ab9eebd37b53a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 27 Jan 2022 10:10:23 +0100 Subject: [PATCH 03/34] linux-pam: make it use SUID wrapped version of unix_ckpwd --- pkgs/os-specific/linux/pam/default.nix | 2 ++ pkgs/os-specific/linux/pam/suid-wrapper-path.patch | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 pkgs/os-specific/linux/pam/suid-wrapper-path.patch diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix index 33ab4f784fcb..65bf01aa4cfc 100644 --- a/pkgs/os-specific/linux/pam/default.nix +++ b/pkgs/os-specific/linux/pam/default.nix @@ -12,6 +12,8 @@ stdenv.mkDerivation rec { sha256 = "sha256-IB1AcwsRNbGzzeoJ8sKKxjTXMYHM0Bcs7d7jZJxXkvw="; }; + patches = [ ./suid-wrapper-path.patch ]; + outputs = [ "out" "doc" "man" /* "modules" */ ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; diff --git a/pkgs/os-specific/linux/pam/suid-wrapper-path.patch b/pkgs/os-specific/linux/pam/suid-wrapper-path.patch new file mode 100644 index 000000000000..71533c51a190 --- /dev/null +++ b/pkgs/os-specific/linux/pam/suid-wrapper-path.patch @@ -0,0 +1,6 @@ +It needs the SUID version during runtime, and that can't be in /nix/store/** +--- a/modules/pam_unix/Makefile.in ++++ b/modules/pam_unix/Makefile.in +@@ -651 +651 @@ +- -DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \ ++ -DCHKPWD_HELPER=\"/run/wrappers/bin/unix_chkpwd\" \ From d7a004f4b5a3882c97f3b1e2d2a9f8971d5f70b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 25 Jan 2022 10:28:06 +0100 Subject: [PATCH 04/34] Merge #156541: util-linux: 2.37.2 -> 2.37.3 (into staging) Two CVEs get fixed, no other changes: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.37/v2.37.3-ReleaseNotes (cherry picked from commit b04e17c5d647e5ce5e67fb3e2fe0ad7e9865f9b4) --- pkgs/os-specific/linux/util-linux/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index afdf335e1b40..8485565e0a88 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "util-linux"; - version = "2.37.2"; + version = "2.37.3"; src = fetchurl { url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-agdkwarn+2B++KbdLA9sR9Xl/SeqCIIKuq2ewU4o6dk="; + sha256 = "sha256-WQxZLljNa/OFGctGevBc5qGrGAQOPjQY8kvPsvVfl3Y="; }; patches = [ From 76b70d0c4676ed1ccccd173727ac7c8203141442 Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 13 Jan 2022 13:41:09 +0100 Subject: [PATCH 05/34] Merge #154825: python3Packages.{pillow,imageio}: security updates (cherry picked from commit d6374a376b78fc0fecdcacb5ee8616981d503a0c) --- .../development/python-modules/imageio/default.nix | 14 ++++++++++++-- pkgs/development/python-modules/pillow/default.nix | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix index 0a97a27d17f8..5727b52755a6 100644 --- a/pkgs/development/python-modules/imageio/default.nix +++ b/pkgs/development/python-modules/imageio/default.nix @@ -2,6 +2,7 @@ , buildPythonPackage , isPy27 , fetchPypi +, fetchpatch , imageio-ffmpeg , numpy , pillow @@ -12,14 +13,23 @@ buildPythonPackage rec { pname = "imageio"; - version = "2.13.2"; + version = "2.13.5"; disabled = isPy27; src = fetchPypi { - sha256 = "5b7a55d07de88a2fd70f18a1608ca05ba2b55596a942fb2c390240201009a6c3"; + sha256 = "0gc41aiz2i0napk1y00v9bgb4m7dd21sz3lghfm6w6s0ivjjpv67"; inherit pname version; }; + patches = [ + # already present in master, remove on next bump + (fetchpatch { + name = "pillow-9-gif-rgba.patch"; + url = "https://github.com/imageio/imageio/commit/836b7a9b077a96de8adab5b67ea53b1292048275.patch"; + sha256 = "0rlyppa4w16n6qn5hr4wrg8xiy7ifs8c5dhmq8a9yncypx87glpv"; + }) + ]; + propagatedBuildInputs = [ imageio-ffmpeg numpy diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix index e0f29d366e10..57b085a54051 100644 --- a/pkgs/development/python-modules/pillow/default.nix +++ b/pkgs/development/python-modules/pillow/default.nix @@ -5,13 +5,13 @@ import ./generic.nix (rec { pname = "Pillow"; - version = "8.4.0"; + version = "9.0.0"; disabled = !isPy3k; src = fetchPypi { inherit pname version; - sha256 = "b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"; + sha256 = "0gjry0yqryd2678sm47jhdnbghzxn5wk8pgyaqwr4qi7x5ijjvpf"; }; meta = with lib; { From 96b2dec03367f34e2041c0b4702364aaf486ee0d Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 20 Jan 2022 13:36:53 +0100 Subject: [PATCH 06/34] Merge #154984: glibc: 2.33-62 -> 2.33-71 (cherry picked from commit ae543ed85540627600ffecdeca215d4115193ce6) --- .../libraries/glibc/2.33-master.patch.gz | Bin 69704 -> 78002 bytes pkgs/development/libraries/glibc/common.nix | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glibc/2.33-master.patch.gz b/pkgs/development/libraries/glibc/2.33-master.patch.gz index aecf1550feffdb6cce55dad4088b4f6f0fe6dbae..fd78d3a5e8a86a00658b8049fb2ec5bf76a09e0f 100644 GIT binary patch delta 8877 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 delta 513 zcmdn=kmbYzmWC~iVSM$yv9a0B1|qfZ_MZsOTqt~*b?pZ8@EbSSTz603J0;?5*o$3@ zw449_y4x?Id+yryTSr#^JaA`rbrIjZMf>%)IdN$Q8an>G?(mi`@Zd_PXPgOJ4onZO z`g+Ou>pZunYh6DNz0t7X4#_UQu;#@qm;X%LA9}L)1ufVkbv^n<-s4#lpRcVyvX{NC zEp_1=hWT^OgzcSHWOn!1y`J{tQ>QObI)C!aUi+Gr3!ap0=~w>d*r8pvbL)Y9Oj=V6 z^&eX&{av_M^jq(1k1A8K1dFM)y4#Dqd&^F)ySjVF%8$VXXI$C}7MW~u77;BzG-J!9 zHCZvz*BbuyEc>iA)pvg&*QG+q8NxfZ=1#0{Ha$Jn^z95&-bb66-wEwm%sKzJ{gb?O zCbz;{#i#5q9_NpJbF{nSwyc)K)!m<_*ZnzuvRrrJ(r%8UE@xsgm!_(nwF%hyWhvj% zdG6h3W<ja~)!K!gzW37)zmD>^b^rL_LPPSq%AN8ei4r+mrHSp z!H^@h@=>M#5|kR7KXku7u%pLL@L{wbhq0FuL%*g)|Kv~A{EX)-c=joKGaSg;7j?Ap zR?afrM1~*Nd+nwyIQSz`(*9w{?Ir8Am$Znds?;#wKg~TsOGCD$lIi!_lRV{LojR&? d@0Iwfoi?2*yx7O%v5Vk8hQL~(Y>peu3;>ja1Zn^P diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 1bc5bf08ee46..7cf5f8c536bc 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -44,7 +44,7 @@ let version = "2.33"; - patchSuffix = "-62"; + patchSuffix = "-71"; sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8="; in @@ -63,7 +63,7 @@ stdenv.mkDerivation ({ [ /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. $ git fetch --all -p && git checkout origin/release/2.33/master && git describe - glibc-2.33-62-gc493f6a0e4 + glibc-2.33-71-gac148bdd88 $ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz To compare the archive contents zdiff can be used. From 7305e48b971d239a5ef0343b965c53a3daf1e1b6 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 25 Jan 2022 13:09:54 +0100 Subject: [PATCH 07/34] Merge #156684: glibc: 2.33-71 -> 2.33-78 (security) (cherry picked from commit ab6773a9b35898b5a001a97aebbd1008c418efe9) --- .../libraries/glibc/2.33-master.patch.gz | Bin 78002 -> 85746 bytes pkgs/development/libraries/glibc/common.nix | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/glibc/2.33-master.patch.gz b/pkgs/development/libraries/glibc/2.33-master.patch.gz index fd78d3a5e8a86a00658b8049fb2ec5bf76a09e0f..13ef601408c569d3a4c8d4148e0bfe5eada587cb 100644 GIT binary patch delta 8071 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 Date: Fri, 28 Jan 2022 22:33:54 +0100 Subject: [PATCH 08/34] Merge #157114: glibc: 2.33-78 -> 2.33-108 (cherry picked from commit 3ecbb12aa1e83061613a10593b3741bf6e4a29a9) --- .../libraries/glibc/2.33-master.patch.gz | Bin 85746 -> 147266 bytes pkgs/development/libraries/glibc/common.nix | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glibc/2.33-master.patch.gz b/pkgs/development/libraries/glibc/2.33-master.patch.gz index 13ef601408c569d3a4c8d4148e0bfe5eada587cb..49ffd4a7441cb59744eedbdda9cee072d931d868 100644 GIT binary patch delta 64776 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 delta 2772 zcmX@~kK@x^)`l&N_Ad2rW&h^i^7!`spJ<++??TlC>12~Ll2=~KF%vmG)gyz*CTo)o8er(K4i_EnKF^X;f;zxdLJ!|dC2oaH~|IDB}|mVf6`wimD3;d4dyh3otuO=J^#ue(gwILRlj)GVd* z_O+JeiPuXW7hK!&c14tJ&K1U`bCx`vwJ}3`g^pcruABJ@-93rQ%k9*pDi>K)p8obx z{u=YFY=QrR%a$=ttMR_%)cF3P>@3Z@cXA46Uu(E~FHXMxf`P%^JF}a8!gjhW2>Let zyiQnn%7coA@~W4!`#(AEx^~(wR%cP-N2hHw*kAI7CpnVL2<&0$UHP=4YPz7qs~5h{a{eYJ z{(L;=`*F+npLKLPyPuzO5J=FwQ{tX{=IASZ>5NAo4KDsq{x)Uz%=mll+?jPVTQ?sP z+1sZ6Zkm3kT{dEj`P-^T6tjQzJh$Jzn%S)$l+xmynf* z(!(c;aZW$ZU*5S-O1t|)<>a{9Ub7#JzdpSGHvjk?+5D|%R&LnycaA+neNf|6woP+C zpUgD)x%KYLl|SZP$lh6_DH2^J*FP^Lz25SG{DV3D{=57w0u6?aeDD=tf14-TH4KG(8a$&opR#ksaNwhP`EKA+kGN4cQ=#lKB ztG0^mS?W^EA<MUq&=>|A?vAdAO0|qV$=AA=(Dk`JL<^ z)|%aSIeoLTD@D9!hSs4h#-6Mt!jGfpO7;44zEX+OnUv9IRmnEV!`Sj<)8qYlv5ga@Q|9`Iu|_1Izg=_TSrMU-SPldsiA!c{63kVTMit z|0oH|*e{6=aaLz^I2+GTy57@NSZ*TohfTIu!$qU^<+p{WUuK-?YF|A0VuHc06$Xhu zCfY}IXSb*bG4kFl*?eE$s`6pAsGZ;1l{W>I7faq*tNf*QC+GD?9XTJ!E&=7EPB8#e?bxahuiO{s~m5PZDasq$H<;f~5<<{qV;>gw?Wz1y--7<7@Z0QLe(rIL_crY|Xqc#}3#(egBZ9&iB{yxtkrYA35#u&qi7m+(YIVCUU5?GbX=pvEf z>d^RC?|^>cS*P^hLOn8~^~}cC&-8Oybw7Gq|IKId?Wb$k$NgNpe%{Y(Y+i>ROo>r@ zuUNotIw5$%pN92^zd205V5z26uHq#l{?Pfax@Ub`mfZB9<-yxx1A4d(uc+oNjR|lq z$*A(a(0;Y&VSP^Kx#f2xmLB@E?MI-goW|x0PtFuijOE=Fd}2d^r(XV^mOFd;BUbV3 z5mhl38)ul~7x9|XpPmuv7qa>7|4Yr;+J2YuL$+%9yocvsTej<3 z``lS^v*&r@oGW`RGAn$oXPN&!QvS+!d!5s_3qL7q1S*B&m=fCbrxmPn&!%{Bp$0mM_0Kt5nX~$BZ3mDg5 z<5NuI`yybxGvQ_a&1F+tFK+GHn7&3m>Ac6UY}fX__eZw9{=LoIJMG+=%%A&i_egCH zD}Hxe_q##P)~K+TYp%bGVxQl_>&NSBpJkp{CEYBwca>z<=}8&>>%wQVUbyeNX9pw8 z|LP+D_&TO5Y()uaC2IG7Uz_+?R`H@yRB21PQN5*#P8gjHl=*di7ByMXCI%{y_ftbQ?$lOfA((GUx%07?h%Whlp^&ao&QeZ zy^ceXB@#^KJ?RUl-&l8dR%>GRJd?j}wt5o(_I}f~QZ_2}j9Y6aReImI=JxjT&0B9U z{m_qJe_hk3zF@9ks@m##drCL$Q*L}9eCZ62<6ZB_{(Ih$cidJU&6&cdt#?!7>0%a} zt^YS~d-J~~G^l;c*5B(5J!j|~H7K^8In!lTcFp#4X0DkpBn^0{}p3ZsPy| diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index d633a202025d..9a84a5f8167a 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -44,7 +44,7 @@ let version = "2.33"; - patchSuffix = "-78"; + patchSuffix = "-108"; sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8="; in @@ -63,7 +63,7 @@ stdenv.mkDerivation ({ [ /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. $ git fetch --all -p && git checkout origin/release/2.33/master && git describe - glibc-2.33-71-gac148bdd88 + glibc-2.33-108-g3e2a15c666 $ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz To compare the archive contents zdiff can be used. From 4d54ec489cc62bc6b6ae9c625afae4e1f294cc30 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 27 Jan 2022 23:28:01 +0100 Subject: [PATCH 09/34] mesa: 21.3.4 -> 21.3.5 --- pkgs/development/libraries/mesa/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 69f43d31da71..b91e140345de 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -33,7 +33,7 @@ with lib; let # Release calendar: https://www.mesa3d.org/release-calendar.html # Release frequency: https://www.mesa3d.org/releasing.html#schedule - version = "21.3.4"; + version = "21.3.5"; branch = versions.major version; self = stdenv.mkDerivation { @@ -47,7 +47,7 @@ self = stdenv.mkDerivation { "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz" ]; - sha256 = "0zd6skf9qcwlk1k1ljgwijwlyz5si3pgi0h97gd6kkivm7a4y43p"; + sha256 = "0k2ary16ixsrp65m2n5djpr51nbwdgzpv81pfrnqbvk44jfjlfyr"; }; # TODO: From 542e72a5bcc774a8ead9ba4f9d18a1437e57113a Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 02:49:05 +0100 Subject: [PATCH 10/34] python3.pkgs.cffsubr: init at 0.2.9.post1 --- .../python-modules/cffsubr/default.nix | 32 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/python-modules/cffsubr/default.nix diff --git a/pkgs/development/python-modules/cffsubr/default.nix b/pkgs/development/python-modules/cffsubr/default.nix new file mode 100644 index 000000000000..9f87ed0dce04 --- /dev/null +++ b/pkgs/development/python-modules/cffsubr/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildPythonPackage +, fetchPypi +, fonttools +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "cffsubr"; + version = "0.2.9.post1"; + + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + sha256 = "azFBLc9JyPqEZkvahn4u3cVbb+b6aW/yU8TxOp/y/Fw="; + }; + + propagatedBuildInputs = [ + fonttools + ]; + + checkInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Standalone CFF subroutinizer based on AFDKO tx"; + homepage = "https://github.com/adobe-type-tools/cffsubr"; + license = licenses.asl20; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ca29dee206fb..4a800e41219a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1517,6 +1517,8 @@ in { cffi = callPackage ../development/python-modules/cffi { }; + cffsubr = callPackage ../development/python-modules/cffsubr { }; + cfgv = callPackage ../development/python-modules/cfgv { }; cfn-flip = callPackage ../development/python-modules/cfn-flip { }; From db139f1cc90df166d1239e4abab6eece266a386d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 03:09:34 +0100 Subject: [PATCH 11/34] python3.pkgs.statmake: init at 0.4.1 --- .../python-modules/statmake/default.nix | 57 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 59 insertions(+) create mode 100644 pkgs/development/python-modules/statmake/default.nix diff --git a/pkgs/development/python-modules/statmake/default.nix b/pkgs/development/python-modules/statmake/default.nix new file mode 100644 index 000000000000..3cbedf8bf8c5 --- /dev/null +++ b/pkgs/development/python-modules/statmake/default.nix @@ -0,0 +1,57 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, attrs +, cattrs +, fonttools +, fs +, pytestCheckHook +, ufo2ft +, ufoLib2 +}: + +buildPythonPackage rec { + pname = "statmake"; + version = "0.4.1"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "daltonmaag"; + repo = "statmake"; + rev = "v${version}"; + sha256 = "OXhoQAD4LEh80iRUZE2z8sCtWJDv/bSo0bwHbOOPVE0="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + attrs + cattrs + fonttools + # required by fonttools[ufo] + fs + ]; + + checkInputs = [ + pytestCheckHook + ufo2ft + ufoLib2 + ]; + + postPatch = '' + # https://github.com/daltonmaag/statmake/pull/41 + substituteInPlace pyproject.toml \ + --replace 'requires = ["poetry>=1.0.0"]' 'requires = ["poetry-core"]' \ + --replace 'build-backend = "poetry.masonry.api"' 'build-backend = "poetry.core.masonry.api"' + ''; + + meta = with lib; { + description = "Applies STAT information from a Stylespace to a variable font"; + homepage = "https://github.com/daltonmaag/statmake"; + license = licenses.mit; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4a800e41219a..d074f4cb40a9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9408,6 +9408,8 @@ in { statistics = callPackage ../development/python-modules/statistics { }; + statmake = callPackage ../development/python-modules/statmake { }; + statsd = callPackage ../development/python-modules/statsd { }; statsmodels = callPackage ../development/python-modules/statsmodels { }; From cca027df7ec56308175abef1e179baa7e6580788 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 03:28:43 +0100 Subject: [PATCH 12/34] python3.pkgs.compreffor: init at 0.5.1.post1 --- .../python-modules/compreffor/default.nix | 44 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 46 insertions(+) create mode 100644 pkgs/development/python-modules/compreffor/default.nix diff --git a/pkgs/development/python-modules/compreffor/default.nix b/pkgs/development/python-modules/compreffor/default.nix new file mode 100644 index 000000000000..0d9bfe4fc59b --- /dev/null +++ b/pkgs/development/python-modules/compreffor/default.nix @@ -0,0 +1,44 @@ +{ lib +, buildPythonPackage +, fetchPypi +, setuptools-scm +, fonttools +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "compreffor"; + version = "0.5.1.post1"; + + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + sha256 = "Zqia+yP4Dp5VNGeMwv+j04aNm9oVmZ2juehbfEzDfOQ="; + }; + + nativeBuildInputs = [ + setuptools-scm + ]; + + propagatedBuildInputs = [ + fonttools + ]; + + checkInputs = [ + pytestCheckHook + ]; + + # Tests cannot seem to open the cpython module. + doCheck = false; + + pythonImportsCheck = [ + "compreffor" + ]; + + meta = with lib; { + description = "CFF table subroutinizer for FontTools"; + homepage = "https://github.com/googlefonts/compreffor"; + license = licenses.asl20; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d074f4cb40a9..ff1c96b16f40 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1773,6 +1773,8 @@ in { compiledb = callPackage ../development/python-modules/compiledb { }; + compreffor = callPackage ../development/python-modules/compreffor { }; + concurrent-log-handler = callPackage ../development/python-modules/concurrent-log-handler { }; conda = callPackage ../development/python-modules/conda { }; From 5a8870cd44d7a80d7894ba6222c754a455dd9c6d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 03:43:02 +0100 Subject: [PATCH 13/34] =?UTF-8?q?python3.pkgs.fonttools:=204.26.2=20?= =?UTF-8?q?=E2=86=92=204.29.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/fonttools/fonttools/blob/4.29.0/NEWS.rst --- pkgs/development/python-modules/fonttools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix index ec3acfc775d0..50f5e87a29f4 100644 --- a/pkgs/development/python-modules/fonttools/default.nix +++ b/pkgs/development/python-modules/fonttools/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "fonttools"; - version = "4.26.2"; + version = "4.29.0"; # Bump to 3.7 when https://github.com/fonttools/fonttools/pull/2417 is merged disabled = pythonOlder "3.6"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = pname; repo = pname; rev = version; - sha256 = "1zp9idjkn4bn1a4pn8x64vi8j1ijdsd4qvgf1f70dfwqvw6ak1i6"; + sha256 = "LnkpTEpZbbRAyqGPJXdfpHjh4t7n6LkjZGLhirVNl7E="; }; # all dependencies are optional, but From 14ca8af9823c4b665ff9d2fa386c039b885dadb0 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 04:03:04 +0100 Subject: [PATCH 14/34] python3.pkgs.ufo2ft: init at 2.25.2 --- .../python-modules/ufo2ft/default.nix | 65 +++++++++ .../ufo2ft/fonttools-cu2qu.patch | 126 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 193 insertions(+) create mode 100644 pkgs/development/python-modules/ufo2ft/default.nix create mode 100644 pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch diff --git a/pkgs/development/python-modules/ufo2ft/default.nix b/pkgs/development/python-modules/ufo2ft/default.nix new file mode 100644 index 000000000000..a73d3f47c595 --- /dev/null +++ b/pkgs/development/python-modules/ufo2ft/default.nix @@ -0,0 +1,65 @@ +{ lib +, buildPythonPackage +, fetchPypi +, setuptools-scm +, fonttools +, defcon +, compreffor +, booleanoperations +, cffsubr +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "ufo2ft"; + version = "2.25.2"; + + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + sha256 = "ooWIHvyMtrht4WcGPiacY8dfjPSb5uitHnTRTKvf2AA="; + }; + + patches = [ + # Use cu2qu from fonttools. + # https://github.com/googlefonts/ufo2ft/pull/461 + ./fonttools-cu2qu.patch + ]; + + nativeBuildInputs = [ + setuptools-scm + ]; + + propagatedBuildInputs = [ + fonttools + defcon + compreffor + booleanoperations + cffsubr + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pytestFlagsArray = [ + # Do not depend on skia. + "--deselect=tests/integration_test.py::IntegrationTest::test_removeOverlaps_CFF_pathops" + "--deselect=tests/integration_test.py::IntegrationTest::test_removeOverlaps_pathops" + "--deselect=tests/preProcessor_test.py::TTFPreProcessorTest::test_custom_filters_as_argument" + "--deselect=tests/preProcessor_test.py::TTFInterpolatablePreProcessorTest::test_custom_filters_as_argument" + ]; + + postPatch = '' + # Does not seem to find 0.2.9.post1 for some reason. + substituteInPlace setup.py \ + --replace '"cffsubr>=0.2.8"' '"cffsubr"' + ''; + + meta = with lib; { + description = "Bridge from UFOs to FontTools objects"; + homepage = "https://github.com/googlefonts/ufo2ft"; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch b/pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch new file mode 100644 index 000000000000..892cd4abeb30 --- /dev/null +++ b/pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch @@ -0,0 +1,126 @@ +From 0b3631e91c93d56460929f40850f7d8a39a71bde Mon Sep 17 00:00:00 2001 +From: Simon Cozens +Date: Thu, 11 Feb 2021 09:43:41 +0000 +Subject: [PATCH 1/2] Rename cu2qu to fontTools.cu2qu + +--- + Lib/ufo2ft/filters/cubicToQuadratic.py | 4 ++-- + Lib/ufo2ft/preProcessor.py | 4 ++-- + requirements.txt | 1 - + setup.py | 1 - + tests/outlineCompiler_test.py | 2 +- + tests/preProcessor_test.py | 2 +- + 6 files changed, 6 insertions(+), 8 deletions(-) + +diff --git a/Lib/ufo2ft/filters/cubicToQuadratic.py b/Lib/ufo2ft/filters/cubicToQuadratic.py +index 87d81b1f..4b77144f 100644 +--- a/Lib/ufo2ft/filters/cubicToQuadratic.py ++++ b/Lib/ufo2ft/filters/cubicToQuadratic.py +@@ -1,7 +1,7 @@ + import logging + +-from cu2qu.pens import Cu2QuPointPen +-from cu2qu.ufo import CURVE_TYPE_LIB_KEY, DEFAULT_MAX_ERR ++from fontTools.pens.cu2quPen import Cu2QuPointPen ++from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY, DEFAULT_MAX_ERR + + from ufo2ft.filters import BaseFilter + from ufo2ft.fontInfoData import getAttrWithFallback +diff --git a/Lib/ufo2ft/preProcessor.py b/Lib/ufo2ft/preProcessor.py +index 05ac47dc..c796df2e 100644 +--- a/Lib/ufo2ft/preProcessor.py ++++ b/Lib/ufo2ft/preProcessor.py +@@ -217,7 +217,7 @@ def __init__( + layerNames=None, + skipExportGlyphs=None, + ): +- from cu2qu.ufo import DEFAULT_MAX_ERR ++ from fontTools.cu2qu.ufo import DEFAULT_MAX_ERR + + self.ufos = ufos + self.inplace = inplace +@@ -249,7 +249,7 @@ def __init__( + self.postFilters.append(post) + + def process(self): +- from cu2qu.ufo import fonts_to_quadratic ++ from fontTools.cu2qu.ufo import fonts_to_quadratic + + # first apply all custom pre-filters + for funcs, ufo, glyphSet in zip(self.preFilters, self.ufos, self.glyphSets): +diff --git a/setup.py b/setup.py +index 175429af..eef39ee1 100644 +--- a/setup.py ++++ b/setup.py +@@ -30,7 +30,6 @@ + tests_require=["pytest>=2.8"], + install_requires=[ + "fonttools[ufo]>=4.28.5", +- "cu2qu>=1.6.7", + "cffsubr>=0.2.8", + "booleanOperations>=0.9.0", + ], +diff --git a/tests/outlineCompiler_test.py b/tests/outlineCompiler_test.py +index 74319184..e7b15a23 100644 +--- a/tests/outlineCompiler_test.py ++++ b/tests/outlineCompiler_test.py +@@ -2,7 +2,7 @@ + import os + + import pytest +-from cu2qu.ufo import font_to_quadratic ++from fontTools.cu2qu.ufo import font_to_quadratic + from fontTools.ttLib import TTFont + from fontTools.ttLib.tables._g_l_y_f import USE_MY_METRICS + +diff --git a/tests/preProcessor_test.py b/tests/preProcessor_test.py +index 64196f92..87b23946 100644 +--- a/tests/preProcessor_test.py ++++ b/tests/preProcessor_test.py +@@ -2,7 +2,7 @@ + import os + + import pytest +-from cu2qu.ufo import CURVE_TYPE_LIB_KEY ++from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY + from fontTools import designspaceLib + + import ufo2ft + +From 27c5af88ec2c3314618ecbf65104050a53508bb0 Mon Sep 17 00:00:00 2001 +From: Simon Cozens +Date: Thu, 11 Feb 2021 09:49:28 +0000 +Subject: [PATCH 2/2] Sort the imports + +--- + Lib/ufo2ft/filters/cubicToQuadratic.py | 2 +- + tests/preProcessor_test.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Lib/ufo2ft/filters/cubicToQuadratic.py b/Lib/ufo2ft/filters/cubicToQuadratic.py +index 4b77144f..5f28ea42 100644 +--- a/Lib/ufo2ft/filters/cubicToQuadratic.py ++++ b/Lib/ufo2ft/filters/cubicToQuadratic.py +@@ -1,7 +1,7 @@ + import logging + +-from fontTools.pens.cu2quPen import Cu2QuPointPen + from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY, DEFAULT_MAX_ERR ++from fontTools.pens.cu2quPen import Cu2QuPointPen + + from ufo2ft.filters import BaseFilter + from ufo2ft.fontInfoData import getAttrWithFallback +diff --git a/tests/preProcessor_test.py b/tests/preProcessor_test.py +index 87b23946..76ee495a 100644 +--- a/tests/preProcessor_test.py ++++ b/tests/preProcessor_test.py +@@ -2,8 +2,8 @@ + import os + + import pytest +-from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY + from fontTools import designspaceLib ++from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY + + import ufo2ft + from ufo2ft.constants import ( diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ff1c96b16f40..d642307dc1ce 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10063,6 +10063,8 @@ in { inherit (pkgs.xorg) libX11 libXext; }; + ufo2ft = callPackage ../development/python-modules/ufo2ft { }; + ufonormalizer = callPackage ../development/python-modules/ufonormalizer { }; ufoprocessor = callPackage ../development/python-modules/ufoprocessor { }; From b69ab6a916c17bf8d5fc3ee399e5682eb12c854d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 04:11:50 +0100 Subject: [PATCH 15/34] python3.pkgs.ufoLib2: init at 0.13.0 --- .../python-modules/ufoLib2/default.nix | 37 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/development/python-modules/ufoLib2/default.nix diff --git a/pkgs/development/python-modules/ufoLib2/default.nix b/pkgs/development/python-modules/ufoLib2/default.nix new file mode 100644 index 000000000000..0d21f2b56f79 --- /dev/null +++ b/pkgs/development/python-modules/ufoLib2/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchPypi +, attrs +, fonttools +, pytestCheckHook +, fs +}: + +buildPythonPackage rec { + pname = "ufoLib2"; + version = "0.13.0"; + + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + sha256 = "xJfvyNE+30BgNirX8u1xhKcD8pM3owRAVC4WX+qFqEM="; + }; + + propagatedBuildInputs = [ + attrs + fonttools + # required by fonttools[ufo] + fs + ]; + + checkInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Library to deal with UFO font sources"; + homepage = "https://github.com/fonttools/ufoLib2"; + license = licenses.mit; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d642307dc1ce..d9e08825d1bd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10065,6 +10065,8 @@ in { ufo2ft = callPackage ../development/python-modules/ufo2ft { }; + ufoLib2 = callPackage ../development/python-modules/ufoLib2 { }; + ufonormalizer = callPackage ../development/python-modules/ufonormalizer { }; ufoprocessor = callPackage ../development/python-modules/ufoprocessor { }; From bd0b5d68375d4ce8a8cbbaf32041647702b96055 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:21:50 +0000 Subject: [PATCH 16/34] =?UTF-8?q?cantarell-fonts:=200.301=20=E2=86=92=200.?= =?UTF-8?q?303.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fonts are now using variable sizing. https://gitlab.gnome.org/GNOME/cantarell-fonts/-/tags/v0.302 https://gitlab.gnome.org/GNOME/cantarell-fonts/-/tags/v0.303 --- pkgs/data/fonts/cantarell-fonts/default.nix | 31 +++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/pkgs/data/fonts/cantarell-fonts/default.nix b/pkgs/data/fonts/cantarell-fonts/default.nix index 011e88dc1d2e..49b4e6354ca4 100644 --- a/pkgs/data/fonts/cantarell-fonts/default.nix +++ b/pkgs/data/fonts/cantarell-fonts/default.nix @@ -1,15 +1,36 @@ -{ lib, stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome }: +{ stdenv +, lib +, fetchurl +, meson +, ninja +, python3 +, gettext +, appstream-glib +, gnome +}: stdenv.mkDerivation rec { pname = "cantarell-fonts"; - version = "0.301"; + version = "0.303.1"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "3d35db0ac03f9e6b0d5a53577591b714238985f4cfc31a0aa17f26cd74675e83"; + sha256 = "+UY6BlnGPlfjgf3XU88ZKSJTlcW0kTWYlCR2GDBTBBE="; }; - nativeBuildInputs = [ meson ninja gettext appstream-glib ]; + nativeBuildInputs = [ + meson + ninja + python3 + python3.pkgs.psautohint + python3.pkgs.cffsubr + python3.pkgs.statmake + python3.pkgs.ufo2ft + python3.pkgs.setuptools + python3.pkgs.ufoLib2 + gettext + appstream-glib + ]; # ad-hoc fix for https://github.com/NixOS/nixpkgs/issues/50855 # until we fix gettext's envHook @@ -19,7 +40,7 @@ stdenv.mkDerivation rec { outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "1sczskw2kv3qy39i9mzw2lkl94a90bjgv5ln9acy5kh4gb2zmy7z"; + outputHash = "XeqHVdTQ7PTzxkjwfzS/BTR7+k/M69sfUKdRXGOTmZE="; passthru = { updateScript = gnome.updateScript { From 816ff22e1b2bb7be63d93123df86d8ec545758e2 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:22:03 +0000 Subject: [PATCH 17/34] =?UTF-8?q?folks:=200.15.3=20=E2=86=92=200.15.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://ftp.gnome.org/pub/GNOME/sources/folks/0.15/folks-0.15.4.news --- pkgs/development/libraries/folks/default.nix | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/pkgs/development/libraries/folks/default.nix b/pkgs/development/libraries/folks/default.nix index 45d3f128c01c..965016e1c740 100644 --- a/pkgs/development/libraries/folks/default.nix +++ b/pkgs/development/libraries/folks/default.nix @@ -1,7 +1,6 @@ { stdenv , lib , fetchurl -, fetchpatch , pkg-config , meson , ninja @@ -36,24 +35,15 @@ stdenv.mkDerivation rec { pname = "folks"; - version = "0.15.3"; + version = "0.15.4"; outputs = [ "out" "dev" "devdoc" ]; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "Idc3+vCT9L4GVHPucMogiFuaLDaFlB26JMIjn9PFRKU="; + sha256 = "5xCZr8noj61OdXrhNLw/1j4SuQGtYrDtVTavt5Ekr18="; }; - patches = [ - # Fix build with evolution-data-server ≥ 3.41 - # https://gitlab.gnome.org/GNOME/folks/-/merge_requests/52 - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/folks/-/commit/62d588b0c609de17df5b4d1ebfbc67c456267efc.patch"; - sha256 = "TDL/5kvVwHnvDMuKDdPLQmpmE1FTZhY+7HG8NxKqt5w="; - }) - ]; - nativeBuildInputs = [ gettext gobject-introspection From c1556aac5188f77f8e19db1ad48b98c892ede938 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:22:23 +0000 Subject: [PATCH 18/34] =?UTF-8?q?gitg:=203.32.1=20=E2=86=92=2041?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://ftp.gnome.org/pub/GNOME/sources/gitg/41/gitg-41.news --- pkgs/desktops/gnome/misc/gitg/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/desktops/gnome/misc/gitg/default.nix b/pkgs/desktops/gnome/misc/gitg/default.nix index 8f73bdaeb7da..e29464556ec0 100644 --- a/pkgs/desktops/gnome/misc/gitg/default.nix +++ b/pkgs/desktops/gnome/misc/gitg/default.nix @@ -12,11 +12,11 @@ , bash , gobject-introspection , libsoup -, gtksourceview +, gtksourceview4 , gsettings-desktop-schemas , adwaita-icon-theme , gnome -, gtkspell3 +, gspell , shared-mime-info , libgee , libgit2-glib @@ -29,11 +29,11 @@ stdenv.mkDerivation rec { pname = "gitg"; - version = "3.32.1"; + version = "41"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"; + sha256 = "f7Ybn7EPuqVI0j1wZbq9cq1j5iHeVYQMBlzm45hsRik="; }; nativeBuildInputs = [ @@ -52,8 +52,8 @@ stdenv.mkDerivation rec { glib gsettings-desktop-schemas gtk3 - gtksourceview - gtkspell3 + gtksourceview4 + gspell json-glib libdazzle libgee From 1a11eb1eb336562e0f76a3705f2997264f3a7c27 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:22:34 +0000 Subject: [PATCH 19/34] =?UTF-8?q?gnome.gdm:=2041.0=20=E2=86=92=2041.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove nvidiaWayland NixOS option since it was severely out of date. https://ftp.gnome.org/pub/GNOME/sources/gdm/41/gdm-41.3.news --- .../services/x11/display-managers/gdm.nix | 26 ++----------------- pkgs/desktops/gnome/core/gdm/default.nix | 4 +-- 2 files changed, 4 insertions(+), 26 deletions(-) diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index 6f0d645725e9..f9d4d3d68364 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -53,6 +53,8 @@ in "autoLogin" "user" ]) + + (mkRemovedOptionModule [ "services" "xserver" "displayManager" "gdm" "nvidiaWayland" ] "We defer to GDM whether Wayland should be enabled.") ]; meta = { @@ -83,17 +85,6 @@ in default = true; description = '' Allow GDM to run on Wayland instead of Xserver. - Note to enable Wayland with Nvidia the - must not be disabled. - ''; - }; - - nvidiaWayland = mkOption { - type = types.bool; - default = true; - description = '' - Whether to allow wayland to be used with the proprietary - NVidia graphics driver. ''; }; @@ -230,19 +221,6 @@ in services.dbus.packages = [ gdm ]; - # We duplicate upstream's udev rules manually to make wayland with nvidia configurable - services.udev.extraRules = '' - # disable Wayland on Cirrus chipsets - ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false" - # disable Wayland on Hi1710 chipsets - ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false" - ${optionalString (!cfg.gdm.nvidiaWayland) '' - DRIVER=="nvidia", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false" - ''} - # disable Wayland when modesetting is disabled - IMPORT{cmdline}="nomodeset", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false" - ''; - systemd.user.services.dbus.wantedBy = [ "default.target" ]; programs.dconf.profiles.gdm = diff --git a/pkgs/desktops/gnome/core/gdm/default.nix b/pkgs/desktops/gnome/core/gdm/default.nix index 392ea61688a6..6b51d11adfed 100644 --- a/pkgs/desktops/gnome/core/gdm/default.nix +++ b/pkgs/desktops/gnome/core/gdm/default.nix @@ -43,13 +43,13 @@ in stdenv.mkDerivation rec { pname = "gdm"; - version = "41.0"; + version = "41.3"; outputs = [ "out" "dev" ]; src = fetchurl { url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "VzjEKTqfWoDUpungb00N8+nzE8p7Yb+02K+rqYPiANw="; + sha256 = "uwtlCnzqkPCaMyhPvQKXUxVAfvwY6BQAmFLRvK00N9Q="; }; mesonFlags = [ From 6396b5dbc2c6d9c9d0486221c87ab3d89fa62d48 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:22:53 +0000 Subject: [PATCH 20/34] =?UTF-8?q?gnome.gnome-desktop:=2041.2=20=E2=86=92?= =?UTF-8?q?=2041.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://ftp.gnome.org/pub/GNOME/sources/gnome-desktop/41/gnome-desktop-41.3.news --- pkgs/desktops/gnome/core/gnome-desktop/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-desktop/default.nix index 860af8bee13a..302d201f234f 100644 --- a/pkgs/desktops/gnome/core/gnome-desktop/default.nix +++ b/pkgs/desktops/gnome/core/gnome-desktop/default.nix @@ -26,13 +26,13 @@ stdenv.mkDerivation rec { pname = "gnome-desktop"; - version = "41.2"; + version = "41.3"; outputs = [ "out" "dev" "devdoc" ]; src = fetchurl { url = "mirror://gnome/sources/gnome-desktop/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-NDKe79rK0jMqatuuU4yNpuUiNcd3WpCLfDIECgdT7Go="; + sha256 = "sha256-jNHKq5MRgowEUkaMalBnqbxEY4NbI6FL5E6P2bAwAcY="; }; patches = [ From 161cd51dc434626cf8a0e24fb142275bf55323a8 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:23:14 +0000 Subject: [PATCH 21/34] =?UTF-8?q?gnome.gnome-session:=2040.1.1=20=E2=86=92?= =?UTF-8?q?=2041.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://ftp.gnome.org/pub/GNOME/sources/gnome-session/40/gnome-session-40.8.news https://ftp.gnome.org/pub/GNOME/sources/gnome-session/41/gnome-session-41.3.news - Patch no longer relies on grep (https://gitlab.gnome.org/GNOME/gnome-session/commit/db1a97c2ffa091a37087cad15c759554e6fbb4ad). - Also format the expression. --- .../desktops/gnome/core/gnome-session/ctl.nix | 4 +- .../gnome/core/gnome-session/default.nix | 98 ++++++++++++++----- .../gnome/core/gnome-session/fix-paths.patch | 15 +-- 3 files changed, 79 insertions(+), 38 deletions(-) diff --git a/pkgs/desktops/gnome/core/gnome-session/ctl.nix b/pkgs/desktops/gnome/core/gnome-session/ctl.nix index 6a274e35bf56..7ee9e156e5bb 100644 --- a/pkgs/desktops/gnome/core/gnome-session/ctl.nix +++ b/pkgs/desktops/gnome/core/gnome-session/ctl.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "gnome-session-ctl"; - version = "40.0"; + version = "41.3"; src = fetchFromGitHub { owner = "nix-community"; repo = pname; rev = version; - hash = "sha256-gvBmLx8Qoj1vPsOwaZsd9+pTDvU5D7uUts7ZT1pXwNo="; + hash = "sha256-aC0tkTf2lgCRlcbFj1FEOVBm3YUuP+8Yz98W3ZjUydg="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnome/core/gnome-session/default.nix b/pkgs/desktops/gnome/core/gnome-session/default.nix index 3ba6958fad0e..3c6903b2b01b 100644 --- a/pkgs/desktops/gnome/core/gnome-session/default.nix +++ b/pkgs/desktops/gnome/core/gnome-session/default.nix @@ -1,16 +1,42 @@ -{ fetchurl, lib, stdenv, substituteAll, meson, ninja, pkg-config, gnome, glib, gtk3, gsettings-desktop-schemas -, gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3 -, libxslt, gettext, makeWrapper, systemd, xorg, libepoxy, gnugrep, bash, gnome-session-ctl }: +{ fetchurl +, lib +, stdenv +, substituteAll +, meson +, ninja +, pkg-config +, gnome +, glib +, gtk3 +, gsettings-desktop-schemas +, gnome-desktop +, dbus +, json-glib +, libICE +, xmlto +, docbook_xsl +, docbook_xml_dtd_412 +, python3 +, libxslt +, gettext +, makeWrapper +, systemd +, xorg +, libepoxy +, bash +, gnome-session-ctl +}: stdenv.mkDerivation rec { pname = "gnome-session"; - version = "40.1.1"; + # Also bump ./ctl.nix when bumping major version. + version = "41.3"; - outputs = ["out" "sessions"]; + outputs = [ "out" "sessions" ]; src = fetchurl { url = "mirror://gnome/sources/gnome-session/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "10nzyhmgkrzk6i70kj7690na0hmsv6qy5bmr10akxq9jxqlphy4w"; + sha256 = "7koikFP1ImJAVIiWCTNbiFKHz2e73g3J/YgrAeybWzk="; }; patches = [ @@ -18,22 +44,41 @@ stdenv.mkDerivation rec { src = ./fix-paths.patch; gsettings = "${glib.bin}/bin/gsettings"; dbusLaunch = "${dbus.lib}/bin/dbus-launch"; - grep = "${gnugrep}/bin/grep"; bash = "${bash}/bin/bash"; }) ]; - mesonFlags = [ "-Dsystemd=true" "-Dsystemd_session=default" ]; - nativeBuildInputs = [ - meson ninja pkg-config gettext makeWrapper - xmlto libxslt docbook_xsl docbook_xml_dtd_412 python3 + meson + ninja + pkg-config + gettext + makeWrapper + xmlto + libxslt + docbook_xsl + docbook_xml_dtd_412 + python3 dbus # for DTD ]; buildInputs = [ - glib gtk3 libICE gnome-desktop json-glib xorg.xtrans gnome.adwaita-icon-theme - gnome.gnome-settings-daemon gsettings-desktop-schemas systemd libepoxy + glib + gtk3 + libICE + gnome-desktop + json-glib + xorg.xtrans + gnome.adwaita-icon-theme + gnome.gnome-settings-daemon + gsettings-desktop-schemas + systemd + libepoxy + ]; + + mesonFlags = [ + "-Dsystemd=true" + "-Dsystemd_session=default" ]; postPatch = '' @@ -49,17 +94,6 @@ stdenv.mkDerivation rec { {} + ''; - # `bin/gnome-session` will reset the environment when run in wayland, we - # therefor wrap `libexec/gnome-session-binary` instead which is the actual - # binary needing wrapping - preFixup = '' - wrapProgram "$out/libexec/gnome-session-binary" \ - --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ - --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \ - --suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share"\ - --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg" - ''; - # We move the GNOME sessions to another output since gnome-session is a dependency of # GDM itself. If we do not hide them, it will show broken GNOME sessions when GDM is # enabled without proper GNOME installation. @@ -72,12 +106,26 @@ stdenv.mkDerivation rec { rm -rf $out/libexec/gnome-session-ctl ''; + # `bin/gnome-session` will reset the environment when run in wayland, we + # therefor wrap `libexec/gnome-session-binary` instead which is the actual + # binary needing wrapping + preFixup = '' + wrapProgram "$out/libexec/gnome-session-binary" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \ + --suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share"\ + --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg" + ''; + passthru = { updateScript = gnome.updateScript { packageName = "gnome-session"; attrPath = "gnome.gnome-session"; }; - providedSessions = [ "gnome" "gnome-xorg" ]; + providedSessions = [ + "gnome" + "gnome-xorg" + ]; }; meta = with lib; { diff --git a/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch index 320b3024deee..38805c645b95 100644 --- a/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch +++ b/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch @@ -1,17 +1,10 @@ diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in -index ddd1a591..46a3488b 100755 +index b4b1f8fa..99d52cba 100755 --- a/gnome-session/gnome-session.in +++ b/gnome-session/gnome-session.in -@@ -3,17 +3,19 @@ - if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && +@@ -4,13 +4,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && - [ -n "$SHELL" ] && -- grep -q "$SHELL" /etc/shells && -- ! (echo "$SHELL" | grep -q "false") && -- ! (echo "$SHELL" | grep -q "nologin"); then -+ @grep@ -q "$SHELL" /etc/shells && -+ ! (echo "$SHELL" | @grep@ -q "false") && -+ ! (echo "$SHELL" | @grep@ -q "nologin"); then + [ -n "$SHELL" ]; then if [ "$1" != '-l' ]; then - exec bash -c "exec -l '$SHELL' -c '$0 -l $*'" + # Make sure the shell actually sets up the environment. @@ -28,7 +21,7 @@ index ddd1a591..46a3488b 100755 REGION=${REGION%\'} diff --git a/gnome-session/main.c b/gnome-session/main.c -index 84edfbe5..e5285489 100644 +index a460a849..9d07898f 100644 --- a/gnome-session/main.c +++ b/gnome-session/main.c @@ -215,7 +215,7 @@ require_dbus_session (int argc, From 75df38ecdafee94280ddd7e1a9099097402ebe6e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:23:37 +0000 Subject: [PATCH 22/34] =?UTF-8?q?gnome.mutter:=2041.2=20=E2=86=92=2041.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://ftp.gnome.org/pub/GNOME/sources/mutter/41/mutter-41.3.news --- pkgs/desktops/gnome/core/mutter/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix index 17145ccadfe4..d9dd6efa1487 100644 --- a/pkgs/desktops/gnome/core/mutter/default.nix +++ b/pkgs/desktops/gnome/core/mutter/default.nix @@ -46,13 +46,13 @@ let self = stdenv.mkDerivation rec { pname = "mutter"; - version = "41.2"; + version = "41.3"; outputs = [ "out" "dev" "man" ]; src = fetchurl { url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "AN+oEvHEhtdKK3P0IEWuEYL5JGx3lNZ9dLXlQ+pwBhc="; + sha256 = "cZxdEGDrYFwbpkO0hvtXsaPHGX59+DvWwzZvxLaEd+U="; }; patches = [ From 345a5e4bea9195234e676a00c0833c5f0285f6c1 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:23:16 +0000 Subject: [PATCH 23/34] =?UTF-8?q?gnome.gnome-shell:=2041.2=20=E2=86=92=204?= =?UTF-8?q?1.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://ftp.gnome.org/pub/GNOME/sources/gnome-shell/41/gnome-shell-41.3.news --- pkgs/desktops/gnome/core/gnome-shell/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix index 5de52723d007..dc3aaea930e0 100644 --- a/pkgs/desktops/gnome/core/gnome-shell/default.nix +++ b/pkgs/desktops/gnome/core/gnome-shell/default.nix @@ -66,13 +66,13 @@ let in stdenv.mkDerivation rec { pname = "gnome-shell"; - version = "41.2"; + version = "41.3"; outputs = [ "out" "devdoc" ]; src = fetchurl { url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "OEZR6wUTk9ur4AbRrQV78p1c1z67h7x3n/Xhwx6AqCc="; + sha256 = "Hj36KgvklFQYK0rOd/EdENP1uYjvD8tzK3MTVzlJ3tE="; }; patches = [ From 28080c85154edd0fd174b4df39d31c2d928128a4 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 01:24:28 +0000 Subject: [PATCH 24/34] =?UTF-8?q?gnumeric:=201.12.50=20=E2=86=92=201.12.51?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit http://www.gnumeric.org/announcements/1.12/gnumeric-1.12.51.html --- pkgs/applications/office/gnumeric/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix index 5ab9be9fa75a..13b0c84cfaa5 100644 --- a/pkgs/applications/office/gnumeric/default.nix +++ b/pkgs/applications/office/gnumeric/default.nix @@ -7,11 +7,11 @@ let inherit (python3Packages) python pygobject3; in stdenv.mkDerivation rec { pname = "gnumeric"; - version = "1.12.50"; + version = "1.12.51"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "dYgZuhvWmDgp+efG1xp/ogzXWjZSonHluwA9XYvMFLg="; + sha256 = "oA5sbk7N2tq9mwrhgBPXsFk3/cuPmq1ac7lZI8eusd0="; }; configureFlags = [ "--disable-component" ]; From 54d20aaa4502d5e44c7a4fdf8c971dd47eae86fe Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 02:36:36 +0100 Subject: [PATCH 25/34] tracker-miners: correct version policy --- pkgs/development/libraries/tracker-miners/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/libraries/tracker-miners/default.nix b/pkgs/development/libraries/tracker-miners/default.nix index e3c74bd2fe45..10307c35f0c5 100644 --- a/pkgs/development/libraries/tracker-miners/default.nix +++ b/pkgs/development/libraries/tracker-miners/default.nix @@ -127,7 +127,6 @@ stdenv.mkDerivation rec { passthru = { updateScript = gnome.updateScript { packageName = pname; - versionPolicy = "none"; }; }; From 3c3f6e51ca4947b69a4842c90b52a67c09b3a006 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 02:36:41 +0100 Subject: [PATCH 26/34] tracker: correct version policy --- pkgs/development/libraries/tracker/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix index 727634a9fd5d..d2a953839982 100644 --- a/pkgs/development/libraries/tracker/default.nix +++ b/pkgs/development/libraries/tracker/default.nix @@ -132,7 +132,6 @@ stdenv.mkDerivation rec { passthru = { updateScript = gnome.updateScript { packageName = pname; - versionPolicy = "none"; }; }; From a9d9ceb86c6e3f7ba6f6ead06d11718c22faf5a7 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 30 Jan 2022 14:28:15 +0100 Subject: [PATCH 27/34] python3.pkgs.afdko: Fix build with latest fonttools --- pkgs/development/python-modules/afdko/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix index abe6bad71d9a..66f12ffd54b0 100644 --- a/pkgs/development/python-modules/afdko/default.nix +++ b/pkgs/development/python-modules/afdko/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder +{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder , fonttools, defcon, lxml, fs, unicodedata2, zopfli, brotlipy, fontpens , brotli, fontmath, mutatormath, booleanoperations , ufoprocessor, ufonormalizer, psautohint, tqdm @@ -37,8 +37,15 @@ buildPythonPackage rec { patches = [ # Don't try to install cmake and ninja using pip ./no-pypi-build-tools.patch + # Use antlr4 runtime from nixpkgs and link it dynamically ./use-dynamic-system-antlr4-runtime.patch + + # Fix compatibility with latest fonttools. + (fetchpatch { + url = "https://github.com/adobe-type-tools/afdko/commit/120752c50a562e4f6c12ff4be1e3bd96ed664e82.patch"; + sha256 = "RDGIpNAuCmK+zqZOeOK7ddCjr9BuqPpcnbnxdtoE48M="; + }) ]; # setup.py will always (re-)execute cmake in buildPhase From 73fa816bc721d8ec9b1453b0442a13ff41179f10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 31 Jan 2022 14:45:26 +0100 Subject: [PATCH 28/34] python39Packages.cffsubr: fix version number --- pkgs/development/python-modules/cffsubr/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/python-modules/cffsubr/default.nix b/pkgs/development/python-modules/cffsubr/default.nix index 9f87ed0dce04..b833304a326c 100644 --- a/pkgs/development/python-modules/cffsubr/default.nix +++ b/pkgs/development/python-modules/cffsubr/default.nix @@ -3,6 +3,7 @@ , fetchPypi , fonttools , pytestCheckHook +, setuptools-scm }: buildPythonPackage rec { @@ -16,6 +17,10 @@ buildPythonPackage rec { sha256 = "azFBLc9JyPqEZkvahn4u3cVbb+b6aW/yU8TxOp/y/Fw="; }; + nativeBuildInputs = [ + setuptools-scm + ]; + propagatedBuildInputs = [ fonttools ]; From 764a467e55eedf16d88e009e2710bc9b53dae098 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 31 Jan 2022 13:29:08 +0100 Subject: [PATCH 29/34] python39Packages.cffsubr: add pythonImportsCheck, maintainer --- pkgs/development/python-modules/cffsubr/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/python-modules/cffsubr/default.nix b/pkgs/development/python-modules/cffsubr/default.nix index b833304a326c..0c7e6849b3f1 100644 --- a/pkgs/development/python-modules/cffsubr/default.nix +++ b/pkgs/development/python-modules/cffsubr/default.nix @@ -29,9 +29,12 @@ buildPythonPackage rec { pytestCheckHook ]; + pythonImportsCheck = [ "cffsubr" ]; + meta = with lib; { description = "Standalone CFF subroutinizer based on AFDKO tx"; homepage = "https://github.com/adobe-type-tools/cffsubr"; license = licenses.asl20; + maintainers = with maintainers; [ jtojnar ]; }; } From 9f2d73a5af9d696208a85b0f36ffaf3c7bec9408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 31 Jan 2022 13:29:21 +0100 Subject: [PATCH 30/34] python39Packages.compreffor: add maintainer --- pkgs/development/python-modules/compreffor/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/compreffor/default.nix b/pkgs/development/python-modules/compreffor/default.nix index 0d9bfe4fc59b..942773902583 100644 --- a/pkgs/development/python-modules/compreffor/default.nix +++ b/pkgs/development/python-modules/compreffor/default.nix @@ -40,5 +40,6 @@ buildPythonPackage rec { description = "CFF table subroutinizer for FontTools"; homepage = "https://github.com/googlefonts/compreffor"; license = licenses.asl20; + maintainers = with maintainers; [ jtojnar ]; }; } From d120f576060a48538375268cc21996d052109271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 31 Jan 2022 14:28:26 +0100 Subject: [PATCH 31/34] python39Packages.statmake: add maintainers --- pkgs/development/python-modules/statmake/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/statmake/default.nix b/pkgs/development/python-modules/statmake/default.nix index 3cbedf8bf8c5..7de42d5bc945 100644 --- a/pkgs/development/python-modules/statmake/default.nix +++ b/pkgs/development/python-modules/statmake/default.nix @@ -53,5 +53,6 @@ buildPythonPackage rec { description = "Applies STAT information from a Stylespace to a variable font"; homepage = "https://github.com/daltonmaag/statmake"; license = licenses.mit; + maintainers = with maintainers; [ jtojnar ]; }; } From d9c1a9710731efa0e510e9413aff803d9a711f3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 31 Jan 2022 14:29:40 +0100 Subject: [PATCH 32/34] python39Packages.ufo2ft: add pythonImportsCheck, maintainers, remove no longer required postPatch --- pkgs/development/python-modules/ufo2ft/default.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/ufo2ft/default.nix b/pkgs/development/python-modules/ufo2ft/default.nix index a73d3f47c595..a3458b2f332f 100644 --- a/pkgs/development/python-modules/ufo2ft/default.nix +++ b/pkgs/development/python-modules/ufo2ft/default.nix @@ -51,15 +51,12 @@ buildPythonPackage rec { "--deselect=tests/preProcessor_test.py::TTFInterpolatablePreProcessorTest::test_custom_filters_as_argument" ]; - postPatch = '' - # Does not seem to find 0.2.9.post1 for some reason. - substituteInPlace setup.py \ - --replace '"cffsubr>=0.2.8"' '"cffsubr"' - ''; + pythonImportsCheck = [ "ufo2ft" ]; meta = with lib; { description = "Bridge from UFOs to FontTools objects"; homepage = "https://github.com/googlefonts/ufo2ft"; license = licenses.mit; + maintainers = with maintainers; [ jtojnar ]; }; } From 667edc48e2dc2856e65e9b469562394140aa0c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 31 Jan 2022 13:29:57 +0100 Subject: [PATCH 33/34] python39Packages.ufoLib2: add pythonImportsCheck, add maintainer --- pkgs/development/python-modules/ufoLib2/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/python-modules/ufoLib2/default.nix b/pkgs/development/python-modules/ufoLib2/default.nix index 0d21f2b56f79..6697e0b705f1 100644 --- a/pkgs/development/python-modules/ufoLib2/default.nix +++ b/pkgs/development/python-modules/ufoLib2/default.nix @@ -29,9 +29,12 @@ buildPythonPackage rec { pytestCheckHook ]; +pythonImportsCheck = [ "ufoLib2" ]; + meta = with lib; { description = "Library to deal with UFO font sources"; homepage = "https://github.com/fonttools/ufoLib2"; license = licenses.mit; + maintainers = with maintainers; [ jtojnar ]; }; } From e00317be13ec9230444564ec2e7eb45a3f6d3005 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 1 Feb 2022 19:17:16 +0100 Subject: [PATCH 34/34] nixos/nvidia: remove obsolete GDM on Wayland assertion GDM enables Wayland on supported platforms automatically (see ${gnome.gdm}/lib/udev/rules.d/61-gdm.rules), so we removed the `gdm.nvidiaWayland` option. You will still need `hardware.nvidia.modesetting.enable = true;` with `nvidia` driver, though. --- nixos/modules/hardware/video/nvidia.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix index ff4225dc29ad..c0ba60e49a73 100644 --- a/nixos/modules/hardware/video/nvidia.nix +++ b/nixos/modules/hardware/video/nvidia.nix @@ -178,11 +178,6 @@ in igpuBusId = if pCfg.intelBusId != "" then pCfg.intelBusId else pCfg.amdgpuBusId; in mkIf enabled { assertions = [ - { - assertion = with config.services.xserver.displayManager; (gdm.enable && gdm.nvidiaWayland) -> cfg.modesetting.enable; - message = "You cannot use wayland with GDM without modesetting enabled for NVIDIA drivers, set `hardware.nvidia.modesetting.enable = true`"; - } - { assertion = primeEnabled -> pCfg.intelBusId == "" || pCfg.amdgpuBusId == ""; message = ''