From b5c59878da61b4a08b5a23d6109ed5da879f3d6f Mon Sep 17 00:00:00 2001 From: Kanglai Qian Date: Mon, 6 Jul 2020 16:55:06 +0800 Subject: [PATCH 01/65] support raw rgba8888 for dds --- .../DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.dds | Bin 0 -> 1172 bytes .../DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.png | Bin 0 -> 106 bytes Tests/images/argb-32bpp_MipMaps-1.dds | Bin 0 -> 262292 bytes Tests/images/argb-32bpp_MipMaps-1.png | Bin 0 -> 125195 bytes Tests/test_file_dds.py | 33 ++++++++++++++++++ src/PIL/DdsImagePlugin.py | 12 +++++++ 6 files changed, 45 insertions(+) create mode 100644 Tests/images/DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.dds create mode 100644 Tests/images/DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.png create mode 100644 Tests/images/argb-32bpp_MipMaps-1.dds create mode 100644 Tests/images/argb-32bpp_MipMaps-1.png diff --git a/Tests/images/DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.dds b/Tests/images/DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.dds new file mode 100644 index 0000000000000000000000000000000000000000..1da9293de9bb67406cc1ed7905af9678491c42cb GIT binary patch literal 1172 zcmZ>930A0KU|`@EU|;|uFm?daj8F`uhz1Hkl`KH)5@Be7RTIbpG$0G)GegBdc7nkF f|Nrq~kP>`&RR7QpKYVcuNghMnf1~LWfBXRe%~b(u literal 0 HcmV?d00001 diff --git a/Tests/images/DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.png b/Tests/images/DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..57177fe2bb83d99a200a0008a94b4545cc6eb99a GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*6y|NQ@N&un+##EFh@ zM&Y=-E)9XqY|V^4JUl!VkAMFE|G&qi^xz7{=7S6jY(X5-m*NjJ05vmsy85}Sb4q9e E01k&CqyPW_ literal 0 HcmV?d00001 diff --git a/Tests/images/argb-32bpp_MipMaps-1.dds b/Tests/images/argb-32bpp_MipMaps-1.dds new file mode 100644 index 0000000000000000000000000000000000000000..d1d1998b1b3f697f509ac8aa10459ffc781bcf79 GIT binary patch literal 262292 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

-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 VAnTjmb0st6ym5bp_I*$n_`hp0dK3Tv literal 0 HcmV?d00001 diff --git a/Tests/images/argb-32bpp_MipMaps-1.png b/Tests/images/argb-32bpp_MipMaps-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3570ccf355e8f16537310ebf995d9c1b95fb5105 GIT binary patch literal 125195 zcmV*(KsLXLP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00G`MNkl91|sdftcq#+dDD_uglpQ&qR>cBDy>ltj^{9a%Ia$Ce!nmhChS z5T`Q&I0*9JCAli?UaU?D)_1aM%(h|>XyX~h;DOR`8&6nXEh?(}=_)y`&&@#e#L z$DDJmvrpaXPSvSPufnXgo3mFl*L>doeI6qsoZQUs^7Y&dAiQliff9HZ_#yCP;0KfA zT>~p%2^2sTkSl;YJkRKPOv7VZe!`Jw1fJ7zhv%u@Zx9X!4#2?xa|1;N^8ywn%u85Q z@L(SA=aq0-!=nY}-KCNDmhjF3E(^E-LLffc9=HR4Beb{B-C)`~Bi#nv9^4MPEd&So z98)YHpCkDa$|V$fR2Pt~!LH-IuYn3|9-n3hY+876gcl7w-oecQcI|i^I@qV96^;&C z2ge?|VCVvcz`{d~VTEChVTEN)#wGc1yi38ml)OvDJ5;Q&EXi1rJD>r2pwnY7@fB`? zPxbg2@MLoT9N0{+!f*d}9~Qm>KIC`4wpW(FQK-Frw*>x&z&rZ&5A^;LSObd$e*Jm? z{}VbM)AE>>X9RBPxx;gZqe0j!=o9!&Ws$ zV4g=H&C6&668P&pe!Z^Y-6dSk;@1iM6?*OW@lg}_-5%2)PQmZ?3jPCxPT#6R%_e{^ z7?BQ?U3`b>_vxA}^9ZS|f-)mo1fmgpvV~oCY6z?v0T6OKdAw)@g8myXLNCcIIh?+Z zULXHRpe4`~SmF5~o&Z+li?h$ro*4r>F#xNxf4kAh;hVh1-r#e6{m+?y{g&-*wYXdZ z-&3$ZoJ0W${1*zl1peg?xW(~|o~N`t9l-DO=(!_sM_@AnKed9t&J_Gb1pG`RfVD;e z%L?9IM(_V<0hjgoD(LmNjS+8ufc6g4-;Ut#C->o?M&RsvH}kVo<4?b@E?&JPGL3y~ ze$OScJN-5@kXg*$Mk8=??j631k&zpof9ml&IxEWtaqKkoe@Vx4 zdY;j9V|wmz93`+r*sJGn^pMIzZld?B3RtN3pOvtzVP3(kiuYGbc(gWhQDPQWD-Que zKMDP}(BDD-48j)i>hb%78h|E(J{=siZr~%>tpnrL^Lq$Bo=@@M8xVoQL+&AS;96h? z*(|;uZy~RsFi=-eXTpY|@)Ri_nSS zF*u+_a7J)~T;dVn3J;WAkQczEi54i+&&o>tx?qf(CSePO#DDiV83FU1xX!;h$NC*f z0lw06%oO~O6#Vb$aiv~=J@NdNfu7O$5rU z&?ApPUsP~0k2(LUipRTa_}&t(O3YOOSEc%|Dfl-E{@a-2C(!o?1^#gi{rwSWs7y~Q zig!x{yqlhm5TOuytq&OR-J~vHPEXwxP#21^9+P`>;^wo-zt0Vl_hNE8{?HmY^avq7 zt=G>}BialBdU}M8K!?znVBVEV0D2<^iO*MKsj;)qxHyW*HNDh`AQ^)@4X55>C-%)p z)ZbtV@U7GfY6boy;QNy_Af*EHGw@eHzQeP{vBmM2jwiH3*ncCj=(i)VA+X0pua*wNxD*a>5zpCJR4p%iisL#OfCPnW9`0Xk9ljrYt@pt}k0{+Z63KK*8!3gO0 zxNuqnNLIm209^Hu^L6u{SS1U~O|{dT6y-(U(L-@r+J z1^f@y>wjPGQ|s^IKJa^}4hsB_Y59~^3xC~U0Pb+yD)@H$l&HQ+y#-Y47?fvanqC>q>tV| z?^D)9!U@(ggX5TYc|q#eYR?`7I_@{|u;J(sN@vUefa^9Z#f_mpF4Ea8S^1jgMEIK!fFI z1qzEPEK+CD^OqT>Dv)^*^Ziw=;eQS9U%-0`{)-%$r|YloRo=*56Hm^y&W!C3Xm0jYYS^icHR z(K3mLszj^>sljAma*$p0@}J&94kovTEQ7t)1@=~;k9C1V4;B+TM=!8(f)5}F0ig%H zSUipnp~JH`fmVVz&5f<8@VJqL2WkYC3jB<*fV4;;f2leDo%Hf@sP;Ra&NVu+qvrg#(A`4&e9ZR~`27LG9{diZ1L+3O zKQldxyk}K7To^BFCmlx*PPDDqhq0b6J@h`#2cSm6Oxk*(kHx{EunttUR!xfNSM6MD z1i;N6%$Y+r_SLRI^8F3$U7!zk=y}Bd7n7i+A5wsnz#KHnzanQ&mZ}$xey;iCxbK$Q z4mZGydm@Op(Br?k=lm88z#Fq_$@9OjpijWRQcti*#Xf!iivvMheG&YhN-LjC!v0$Y z|Aue^e#s4{%3}CG0Y7u?_b(OvixRG8@L&elGg#*FRb(kHSMbXwg1^6w;P2G?yJG~u zn}9#;F?8g(0sM=iXIVI0h@i`Dpy}f|9*lrtGy>8`yd?t=x(Kn*V?uAFx)2C@m85oj zj0C7O<<2C&|NJ5vf^2j8X;?J?c@}2}GCR4f9j3Q*Z2*1EX=JD+r$x9*H9Ui9B*>A# z_tY4*1eRpH6Z4W>!F=BGt0w8dOr66F_(UK02IRn>(%ZLa0Nx1rFDKytNAx}!f`^k< z(Y@f0Ek8#B|4SYAxk=#H2q1x9Y7?jZ(v+VX0lCnSe_6#)|D6@Qzg8nqMGsn@d;cAH zjR4xa2>yN_Q-J~ehXMTH$mm$wb^!k(?^zbH-Iv=y-U}v-=lSRv25{(syaYE1f;9q| zm}nzma<)z!D6lRdpIkzfoiyOGcx)AqW%innEPC^<7jR}s%$GQQ($kuNOz_=armdH6(5by0Lv;Cf>BasWGjchp_Ks#MFe{K%Et0DK3(ftn zmWGE5SQhZGjtNMaJbwrIKDPS&4%&@+{U(m|x_a z%QA3LL~mZ0fRR8(PVNNT2aGs6a+(n0nd=>5L+s7v9)e&naac!0hlac$EmR#;S0KSe zC#oH`c^2PLUP9g=qPq{z_Fyyc5^E1-K4t`&iAQb;M+c1u<7o(Z7eCWLoELNgJwl@e z!`5i45YM}m1mFP$!9an{OEDK(>Cg1~uzHpE8Y*EKwx$6o(~I#&MEt4QEys}=nXv@f;zr{le?R{9h8#i{vmWHi*a zQ;+Xh=8kpMaZ!3M%0OX-O&342;w%Nvb@{6a`tggL_)O`8Abl(aNdGDX@(!|xlOGf? zuQhG2$B=(0?)zvcH`*OA66XZcC~eHqsj!!m+}@nk z1&T>JFq?co*P6idd!mS6$PU1lNCDntB=DslyHYQojvuJ^|G}gsR8I^*2~-W98+vXu z)c=H*n@P^UNfE#V{Qa;cpuPS@IRIbQwXmw8%3`>?s^Fo5|EeC%kY2WNp=}Fp69M0E zW6RHJ=%2!Vmxg_gKzjoIMb@*-9m~Q+@E4v%5t!%Ul@B<j7J!Tg2xu!!!JWtQ3`#fQ65o%p>c%cUa#+?{}akIdy zDG*xS8;EIu=ot+lF=|*-u%@Ud7nZx{nm?P79_j?5hQRZu;PwR#z?&TW`BIOatA~G= zvCn_4Io~7wP^aF%2C7?nZs@tC=M(k*H44@a%NR z=U@zt33NcnG~BN&RJ!3;7sz@Ji_)+t52+tGq4uPEL54H zFcD_Y_Fxc zi}itO5_XA5^Uoyu0V3G!`Cm(ED z5Sed@GyKo#`H+^U>iu8hxS?mOmHrKZoq?T+t|OE>e5E3dnQ_6GVr((A&HJ4}up@!D&FmYHdo*`7u2ndhEG9*w}d^jwyKtIBav zM)0pS0w}DITcNaL1-`WIr1M<_0S8AM$c!N2v<%i81-l00=KM2FZNiQ;FeKR=7GSVQ zUY>r679({osU|R9iT2e9qw~k<6ReA4by@T1`OH^VN!428dx^Q!?6?F7)0 z(=oF>v&=EiJ(p$AMb&dr_FR_2T0{Q?{>w5@TA?r&V^2SaqnDwU2hgM)0T+`DLy1pi zc!zuXLNANdyTJ=vm{fX8~4S;BxAPu?cm{~_*!w>^KsZG*d&1%GX0Rlmxhv}0wv%3>X0S;ZFErH203vFK-325N&C z57KHFzl%U`w?e;-K<~HE9}K>OPAmVR!APg&td80^=9y!WITod7RrFj}(c`a5!@Bg$ zb77vx8owe)LIC!IC7hj8wUv128t}B=mpya44%f997FV~9*0QK2*3kA zE)R;%4tNKp7bDIfk!wJT0Je+NU{=6aadPkyOi>{-J%83fkr|Wkps%zVow+e||&H3+ee(S$$I2za{WO zqk?I*zqRq8wvo|irffbd9qvh-epmB2@bhp1?=0hz&qa=TU}0vE%&RFm0JjSM7cuwm z?qYk-9nPlw4j75lB1RhO1pKULRd%ck&$ zNR?wgz8$GBM8;KO0GUJ}c?Q-I8qdx})Cy{lbPhmHnuj0~m27N1!D454cpl2K% zUg_6o%MZi-v@URB1b#t_fZs$o^0}WQf&bwI{8MtzOUCuy1pfLd9WN!e{GRGsZ_4?1 z1O>kvz`qBM$^Pdi0>93q5m;2GoPJaAKU_rcUuE}zU+F^JE*b#eD)=XPzdyuIm9#*E zNEh>c+iAPcDfk`h((|zPT-2V+!o?au5hD0)V2-dbf~NXf1F%>djezM5)G?r;0jnW> zruU_e4i`SKcL7ZFv;!=rlwzTeb@k9AMIV7{)Ig+kVBiRhMqud4Yt*3cP5@carxyyy~nfHVV|EV_@B~h|3C0tNj=h# zPh$0nf1N4#H3GPpY2SYW{zUBYZ~>3%2>y%w4E)D34k)N}w%O_n>ipD@zdNw7E`8L2t!T&N2_jFt68xtq} zbk^S=wb~xndn?mZ8AokB^E@yw9kU{Sy{bG{wd0})tP5dT8W!sPXTVy7T7oveH0m`L zgTZD(fuS;<0>K)g%q+RF7%?#swnEtjN`y?}B9SE{3x=cjG$A0?#rc5LE)2mCJVt!v z5)gzu%?|V+y&>yjZ$As84#8Z>M@<36ES~#W4q0X>n>Z(s+34ZL#w7x4k<3VZEM*{W z#T@&%L*TVS=MhBz-ykMdRD=%UfS1Nprl;fq1x5%fvaF0$V>1)ULM-Dhfnns0NL_H)0IFWdrbY-`M3nIsf}w1Y9#RzoZ49SxewX!~CaoJf`C&arxo6 zBXB_2;<#0)wty=c3x4ww7TL(+n{xhD6{CTxIXqm!JG$*R^!gh{bq&q+`z`bv1%I0E z(`mnOj3gi-F8Nf(G0$|ww}`v_7p3E(h`?WKrT?N3uIs=m3#^G@|B^tCFheM&lzk## z0-1t5H$>vm;rE<$31aH)PUi$B3$`7B5EPSP{I`P+flO)yDP@?Q*969vVC>3IbO?-r zXJ?mX8odULF{dp=>xb8c)278|=n%LVTL=cz5R{9sFxM1PMrU81U4vgihd|z(Tl~c^ z0H68Bmd2QC5t)j3q%`26g1eoHk1wGj##0b5jp2GfzQkbu>QIxAzdzf8Hm2D)XM6R;7)xqhEg zc?mHcNJc85x`}wLp~Y-Ton=gt1M6l8NfeB!QYLw?W~G5fw+ES z#?A{&IGj`%hPD2o^uS5`?p z3#bdstVHG&)TKlY|2gK-+{jfK_xjgLi4}r|!EJN^ZX2uo{Ra9S#_hlzkkElYVB8); zhe!|Nuyo|6r?5`Pd>wV>ndO0H8CVu@Q3y*N@LASMYh#2(5SHR2!-)w52e#KYchrxp zj%TP=zQ4j)GK9?7SPLjEIYH^U1#2^M6WfEmUqa3&ZhK|YTTfiY46rHJ_s>kzzsd;nikyDxh7Esjqo;E%Nc&r1S# z;w3KloNMaW^;qItii z(GlOCmG1VhO3y{*xzySIRT)^7o-6hIYlO9lx&Mq<{F~V@GK(FF^J+)6OJ+Q?b){{; zfnCpHiIG5Vg~G-;fpX&WDtlV#FZ^kc+e?Vt0)q}g7)Ex7f>^kxWnNsIl+83e(0W12 z>h@9CbO^BRD;$H8XP-}pK%JOR5sUsPZ5JN#G*q|=|KMlo5QrFzkzx`le9bxpe>%GW zUs${E4ks_@c}B-aO68pjf44aH2nPwWBgC&c)9$M*Eb0^R5B>fm-uYVXKAliY+I{_P zJSI86q&a^T@Hhc~)89~?XmvvK zpBKb=H#GuTL@oO~dTKktQk4nWP#hdri~%xjCFVYWWi$e*P3W{HApNT~foYMjkh7VZ zsSd#cYJEMk96rsIHhlt;qPt&*pbyBQ$63RnmjUsqEf@$OCB4=_((Zty_Q~haArLVI zV-E5)>k!D>6ajoAR_RM=_ia_3H?{hb=fBlXz>SF9;MpU}<8My2`|2Wwn1gz6i6j-D zFQnaf8@+!wig?DHUq^li?Y;>9!gvbfnc1GpDuO>n01qm!#lOIH?YYQ=2WkXn5-a^P z6RZ9<$oNvG5x~o{>!^%p&}NXkxP^-WJN-O!hJm426UfeH?R)n9=@Q*hvcdZ|;VkEN zFp&190U`-erW|7Q@NB07EII5o&N$a0*!M6m2nUCQ!3a2*gex8W z*;1fO%SB(C4uP>CFTZ0c!0Ui6U%PSm>e_vsiQYdJ{a)ZW;Mq$Y^4Z}{toR!mGNh2` zB?=2=j#((^wE!ryIx^nYC0wt5zILD4LASy52PE#1xX*?bE> zkvq(KmU?C1mB7Q_$uqaU)T_QCGEZ! z^gN;ChE8R=Pqq6}#edN5tL)g))39F_%IlYudtRg6CkxS#wr9}p>+Ue^4Km&C`wZ>A z+V)gg&)l{w3OBU-F3XY8=duhusN$UeTC4r@kaB*Z))att^5(P*F=U>5#s&IG&TgDB zf=FWdF7qLI2W*@h$QgcS7;6HB1rbMKv!QEX&X(gcdJbM=asdfv+j_xII0tpfD6JHS z9tt-JS%@F`S})aiYn{}b=n$MaWMfi`P(6F5sYvG_ho;rWfe09*#m{k`p{J!W#ZU); zQHP+$ay?RweM33~-?k$4_WR3h#+_-_{77Fp_x|=Cs{6SMU!xe?5-) zDw*dA`0*3)N9{h--sr%Ol6iiHc3)*$D%(@rUcv7t?Y7qRER&V_jx^Zpa? zH=O8*roAI>i5$1{vl^Qk1cMp@B}ktdfm}brEQ={XFH2<%987`evGANXBXs>O> zWCS=T7}2?b6V5?KtYeiuC|M{2$ixU_)u|4F-Hdz!W!y3}MK%r#9o^*0j1flDk4B(V zZNd&iPtRq#epQE{o#+rei0i~C{rH#EA>gH^5`XIF0KTwxpM&anrrr09o;_Z5`~0BY zw>6^by>kGYD*O-uJg6f0Qv`5T`Uw6au$IyDr(*zrI|2Xg#Pi?kJW@L;QMJRo&KLxeejHqG-w@QGAAG<68C^lv+x)R zB$u9c57Y=$_gu1t76$h%$)Ff86d7`cPqDFOnT)_W$KX`0FwRn+>JS)ULG~4N2q@GD zY~E4>@MhZ&Uq!p`CenDzOKtZ(rss)i%^i+|1fBH{GzhIgi{Y5d*yk_vF#@QwSm>)~ zu?w&$1N1&vkGLBi+YtA1-|797*S%2mAo8`jH z3JVbyCK`YWo$>c(9Q3&Z*~`E+!WPU+oo2tAM7F)gR%v8GVy0?zm)Dp`7*ORBc?7Un z;_g5e1gpb()_~YVH0rfO5Zi}FOXs=GVv*4ahCuHFji?R*4y-qEeOJ$G;v^GI1%iwD zyts)DL7F?xqv0NO2r{J9@$Ec=7a7Kf`1P(;Ghk$30L%>L5S37*5RR=wdZSwdQJXMG zOnf{h?iQG!x&%>&0HZntd?g)%G(q(RbqKx@1MrP(F?}WNz9$pqo@ve>m3yLe*A8Ky z$SBixU-I}1ZSO5!qusYE&b0fw_*u#Bi);7cD9w@DI+j}LUzd){$|;qX*PLHN|2%M! z370moFwx`BHSEs=II)dUQ|Aj%Rf?o}9@6+ykP))S^)bq3deA;~q{HWd6lbL=5 zfAac;8^}Ck&hNP>CAR)DVVwsSl4krT;Gc{gu$h2g@6C-F!GGQcyl+Cin_PPRn88{` zBajp41Bwu5;4=Mwt3bC3`YH>9VStfeAaV62BVaHwY8q++ZV1^W^g7+!jl)ACleX*R z4J9#>a~*>GT*${1^>dtzJCJ0*_(07@1SA+Ci)O_W5yc5PLKZ8 zF2In|wvz~8(tbA!gUn?x0{L_lK6vtM(l@VtDg_Q!}}>Q~CGl5C}2Vd%n9rrp^rPCl6!G;UB=0IR4r`mlf=Wj5CJcfRz%#cz! z{L7d>npqWl{IddqvEV0rfjcm_Y9uz=^LJ*{ z21$!TX7cqrjADGLU2hCH$mWn`0kkSm048{_8K#Jxw%kCL3q_VuSwn6ERhFdx0)>e+ z0^3KX{>GP@_y$BA!jgf8xD62c$S*MH4k+hf@KAXq*9D?fSYwh%uQ@|b~rH{2?!OQ0!R2fIs}Q9 z{53iRe4{!9UxNXVdqV$LjKP=I?z_S93C*D27h8S(XKVMB8D^d#^@PWNt!uqg?Y;*S z?Y?FG8tp#K`(LNs=MIQJDvy7As@<1G<(_5XxTtzo3i^x6b6rJ#zjYy8=7Fm+up}}1 z=z1?94*I0&zTG7Be>tiA-)bhAB7!@Rqr?+3O#%8zaN13-fT`aJX8~&gbuHtZ08ogh z#E@G{UYr)eGaF7WtHSmtm$b!#Pt~sqkzHINme{AKA4hVHUQ5HM@5xo0bO?0Xa9|la zTjxI`6cWPe?!bACUgF5ObJMFjR!>_pr55by^gVWiMA_%oA+VDUSIxJoL-5AhfUki6 zOKbPNq~~TT;355IX!k{B+5!CaM7DdOv;9->Kl(h{eY?-p?u+0*419i5@Gn%iZ&^n0 zU+ALGT3357%Mj_j3SmhM{ZGNqIDFbLc=l<|FSim6z#W)76T!a~;ZDIGI32Y=cPU|# z4s;U(F{uf_Xao#)JWT|0YoYMNi~ty@-5^GC@bL-rE&wH#p2B(xAJ~RKpo$Pm9SWPI z$#j4xL>&SN$~hSNGaUjMFXefT$qX{(^hjNw=ld8LWFUod4i+}n1oA9yC#JSzr-eT^ z)g~Nw2wL)?FqjO$7tkRn&RXHZx28kz=H~#uvUcC6G<=F1$UI-K-DmKb!IqYgz`s=R zUnr0NLP;l*e&551cHeTG`#RO`yZvnKK6i+$K1%921^+zjS(d%-@yErUbs4y>{IK7@ z&f`)~%=_g8{H8S{@V65KFwOaIV+m;hfAah;otVj|ab6SX?)m;ai<>MG)wPf#Cs%MP z!sjMH4TUu)oP$|^I*F9yIr#ArwjseP%?gCmB4zHUZbk5JLTfyI!RkY*60@Edfiio= z!=G>tS~JlmBvO}6i+*le5)5Z^j~!5cQ5^!KIn0!J^jp#)cmoFD?E1MltN5qf|1-4v zggXL{>3N3ZV~qm#O5c61-PZ}K-3QEa!nEIC$KC$H^DnEI^FNqJ;m+&%sNHAu1GR0; z@56D_?sE;|RlCn0Cie|SjxjrwmJ$~^{j!+zFN-+Qw=O)hOyZVb;hATFnH5%<428bA z=KVE6(#(E&Q>T8( zn|OY-N0t?VSq{P2xGx~Y{QwN)LS~>aLS{Ur6*8N}aej#Ugqe`{U~Gutz7skTdJ#Ga zv4f(Wc!EbvWc-ihfB_>O!O1{MngJyM@2@?!N@NFJdf?)$L<|Hq8mefMhj-6)C2Gdez`+WK|KZX41o*t0{CCcYlMAe>Uk=T4yyKk1rJmZM(gDMPE zUc(`}6{l?Vrd9AyEBp85{HYyyAV~>MYyQ>AFx+(ew%5yW8Uaj?`*LI*bY0|uLNCW$ z$wvzUg*AFU)>VKa$RIvpJzY5<*&kJk|?j73IOq2QqQ_v;W8<;1X$+q|Z* zMxO13y9jzQXF3FF4k3*Ys}8|-s!cehM#r9nS%LHQV*6I>5PVGr;FY4^iFTiU{f>tH zpQ+vVl8#Slc!A@YhW;-V{I>))$SB-t6#P^DzWZ|im2&z$Tz-ajpQ3Cq0I}yU{dTh2 zt8(4`7&`&9i1Y*a=Xs~#j~aea$4}dR#mMQmE+Y6>Mp#K;fl!J>=d1JmW^c@}$@Ef> zn~4F?oL@FF>;c3!p-e}7TJ_zF;j443Obdd|J(t<}_mjb)G8e*xU?eAb)JR1Zrv}1_ z4nd{?b(#|>)IRK89L)_VNl+M=H{$EF>hVJ)7%`!b&)j~74nZ;kQyl^`ktNgbPjm>f zvy?&YL1;Yfgo50u5ophJ2%LgH8Gv3N_HET6$lpNVf1=%|x&M#U2+a98+I=_lJi+l( z-Smq~J_-CP-f4c0cHe4}^RJZC?|P}necFA=#cBj_c&VIzs@d1-eZPzMKK;=!V;Gc~54li%}YR=Cl{?6=mEqH|KUSFhA z>rmn;hAqMV^a39YfqBiKPw8s)z`vqH z(4FBs=n0Cyu8yd`u&ss({BH&kivu_fI%z zg0}l+S)BAMZ3O>HX}!|uZ{qR4n8OD;=6j~yXG{;$A<}~1V2(Fh-H*L~)9<5Thi~I- zzdK-b7~d$5e{CJJEXsAqVIR+;2$4{z49qiOp2a!;MJBQsLVhu|4dg*$?W+N^GiKQ8 z+i_CmA1eL3u_$O#hu|oYmM=m!jRB>Rp_IihjhAe=fCJE(kx;}%#8Ca4C1E*?3}GUs`$5tuS&-h^1Z5EDndr#b}2=tQB!nt*9zx4;@W z26OZ>=n!C{oLQ_41e`!HViLbVV*{3O}EIpy?o8x`(6)9$m5MG<-Y*M%QieOI*~J$};ev$4{@ zL|95N3xvW8HjD#@DG*`D=~(YePPhH;CUt@4B)sn@1H(6y&v>E#x*|{y3#r*_MugA5 z?_M+Mt$}M^3bPR6sPLdeU}8-mhg^3Dq5z3HY#WV5d=WjnJ}1izx9u=?Ko`z+2+rpO zlwvGQUUc2vGt#RqLCZ)%o^%Mx99~Qu>r{t8#0Zs)qr?GPKj;t$LT@lymc-N3M=NOJ zt82kvItkJdbe|BG*kVa`5)6olH^$VQFbWM-ooU7An~VTH*QoDT(C&*AUQd+A{|Oz> zmC|dY+I=r4@?8V?XIj}!`h986|6IFo0)Flh?iATZ51>5$k~aNx;Ai0U3p)LGuH9Fh zYWEFmy$bwG-R)ml8N&Wb#8ikvj zIO&@u;?QXX(4W-=gwxry{>;owI6L!FB0qqPxqYT7LDCFdcd&(TkH2;51z&72dCN+0zXE1+z_u1|kIXbk9OnEyN-0*l#qlbXS3T)Ir~T}Y9D z@d#Fo=6rPo956TJky5?n~fL_i49(y5uv}?z^7HS^u@UN4Qfr{F-MYkAJU2 zKWX5{9U$xm10bAh_c;~ra6<%eRfW@>U*)@2R#9nN+naYxEE3_V1kd(y}E)!K9-(~JaP<9Z!gal4txL?FwPrsL54*l z054v1(pkPE=*?DFyRWpKS>ag} zedO>j0+)4APCsFu$3dS(5k3E$7$VOMQF{-8){MhG-K5Bu_W5trFia-^H!@noqYlT6 zV?Rln=tlqb6Fq&s{_b5Fi%bG|BeEdrcLdFUm8ol}2?WL+H#2D^1~5+lefpbT$Vycn z60lgoSQCkU490+w$Q2OlZW)CQWY&?{fHeVYBWbBMfx-oLt`x-3ctLDXTEWOMD54E| z2@rftDFWc*u!A%q(v0a&Lo`@5-yYC^Nq22e4p6B$c*c&(fUJRUmr`mmq{Kh5lS1QzbuH9E?DsVZA zd;OnRyRW;2_72nEnZe_`eVqLBM-b)lmuArJn`J$#GP3%tiojLnqlic8S(n0P8Mv-q z)$W@k%m@@n1pZ-?^QSz2!?-2BnfyFO2Pt@QCrR!BI2vO%BJx}x;ir0}H~qTCp4C29 zL8F)C{49M=1SF|T(EXgtC50Ddv@@9m$uMLFV=xp&4F4-Twhf0Dqp3n}gxpBfEdY}l zAu~Y^!7H1Wjif6!2b0Ik%5^t39TEZ}ATYW+25fBK z{SN=_aCYwA``+h$o?l&@9n<$ASM5Kurc*8zD)|cA=Lrhwg=VnAIu6+GEa|oSALLkP+Jh<;(DlQmZvAN#*Lh=@-?RlbYEhf& z(yj~brgR}w3T4n$KM%T!^ILC@n5|%P=qA5AOFO<&?Bb6A#70Pf3ekMpSLL_f13iP0 z3r(L=p7c&EH%_rt?M0cs4-1@emEDj(1$ZoX4CKJ`W9+K!PWbF1z>AcDU8&y<D=1z|8@jMdVu z$Kw0b&HxvQiMqDqhdgs|mX39beudjU|&JZi(eGnEX5Z$YP zAA4N?eEpUbq5b1YnDh@7Y!Kbkz9QrE;LFpr18;G3P#oHt{yF5$5GI%H+l;>H?7g#L zTX)XeM+5zE>TU(bm+Q({=i{}uwil0rFlX4)D`WI`Biz$hdT$;xeL^&y@GZ9y3e?9AlA~8k2cB@XSHi* zH(To(#gVrz;r8_0tLSa4UKQnAY&|J51!k&3W1G!m>o~EEje^6IHotj1wYDmueAhQq zz7o@;4U$$bg{_Z-a!B9h69oh}?ta<$vca5D`?*K>So%26Zlzz-ro)-HOJ=JszE8G2 z!3J1eZ=xcBo^7iVWck?cm#Y5xENh}6!f{Gl@8{q*zK)fAa(^Uf3=~20WX>2Wxc*P2 zmOd1mepqKojCw^I0rpv&1-8TLDFbqywH)<}C*OOBoSj&H(0YGrbC# zLB{BXbid13SsbKdGT8Bgzsxg2G-LvTbtjwbXDNPz?tj;RC0n+o?GT_gQk#TY+YBf= zl-56yQIkXu4J%$FR|#vy^r*5eAU*`#)cq0SQqoRy9z&)e?SR2 zzXO2JI<@J}XMu?N!_ht9sW(!d%qhH2{sB)a;b2k@n1(;5>aO?Gl-f-8RMdnYkQO+M zqD)p)z#2GTD!#59PHt74G`oDO8`5?Y^ej+UzKzDUs{7Thke|{39h8oyPa^Aw^fwJO zcxFhtx1aF%_t>qxzvYWWDWx`gi|6v~)%_BGh_vtu8pBW1WqzK^w!{;JvL-c*z7*e% z4=|v<5aW_fk9xG9`>9Eg?0Gt55a<;W%=Y9p*ND6Cm_q|WbjhkHHfmE2Y6O4Kb_i4$ zQSJu;g>H?_B{44&l0_4)xSQPv5@h1)siPuAELzF|DkQbz#&})%uY z&mz{mR^GWSCs1on{b)W8o+zJQ0-oF$9WT5Eys-D&cYDuH`KS6ow8R;y>Ex}BybVCP z12aNz@!C{u7aiBu6LG8-Iq%G|K-8714ti95IeF?&QR_ue(idmCN^H!ZYeqY0venB~ zgkx_CzApmu32%{Qr26D$w%trjb=wjCK( zf3Tc{X|MnHZpgVkj|2&4?;f4f*8U##HQ71QYC67dwVN-Oz;bOxY#pJ6|CRkx`PdSQ4CNG@MbV%BsTwR@k>DK3^>lWTd{Y6=Y=x$ zgRY100a8k?F)kcfBTI{jo}A;H1IAy<{g4CJJ0^FV*?QducXk}Ba|GX-zfRZJ#$C03 zP!S6XJA+ajSRPD3mEwH{ChIh)xL55#roP3R2_1WvCu)P%Tk2<--U2Vk0o2}7nMw8% zyKng*Du*YJ(?}>-)PuZ7Huv={{5^GYdAx79)&Np#G{49oRS1`AxasF*N~F3M--|tIr?s+e z7IEUSNo-nQTPpE!u@|#P99cgfD^ewXjU3+Rw#iXL(^vkdZu2nweKJ!pcu8z(7=sd3 zzwCsB*H)u_o>#5tb$`Pd@8@(*MSVfS`ry>wB;PiSH|EME%-rH9!4>J12kZf!MxGt+ zzQwi*swR*xDzkG&- zP*y+gEIcPz*g~Vn?B3rvcx{9LyIT8#QsY7o@7pvf$TdGhhHX{@Uhek2$fkmO?V9}g zHWqBK%Oal48Ibvnz{^QUl(z4XeQ5dQ-Cq=W?ZUtFrD6~CHI{{G2L@0{FwaUOgntlnlSp1aC~w`C(o~~2amlA;!KKYZR=bO-Ix?SctH(?hoiJ{3>mwn_kE%IXVX@Hl zAmMFCr|FO}9cT<*j7rm3(_iJWBqJoZ8TZ4EXXTCKL z*`D);W=ARhSyJ6&;4lalye5OYdj0wGHi5q za4g;%oU23m|L91EKWvmX7U3|vzWL|aj@mHC zLJ=_BE@_8D7Q;YW(Rh6lmCqR)q4w`m8-IE!O_>UHuN5iN`o6qN?2rZ&fRF_g?#t12*zj|-wjp~ z==#8;!fF$j?~>R)I_@Ndo2`^I&i<9wgJ_HUO+|=Ts9aD4--wx=?!>h9@9Si%tttO} zc}qncbsKCOwmUdOmIkgV537+twjkMO%ay_OJwkcHd|{vd-`L5ic#ksSS2%k`Flbc& zPK1o8PvCs|`@vXmxzT31x^11|EPcPbmSC{ZgVXQQ;3}r1y2bLG2=Tbtrdh)D(JZND zgPg;-$}Ry(N0?#sfl02}=>7?RpILUm3p0lu5T))1r!u4|O|AAbKlW%;;$IqUv4N>~ zNoyY0(V^hpHhQz+-egw@`!@XzBiELYeBBx(i>~R(W!6=NL^v0fYP!O=h5h?3v@Vh* zWpLa1G3UQw1@J-MSMw5YWFi&f)txIM*E= zZA^1{iG_9x6ecW!0WQU6y6RAsh1~P?VJbg6W6~-|d<)nM{448z{_1I5#@I`~%sl|(IH=#|l z&XK2S1$m}yFUST+jE-VwUZFx=J{~9O! zU2D-3wk_D`GSoylP%G^6AOrqmq8H~C4k%)VjD;<_`& z;68o}Mn!&e_6jRig7{Z{(>wQ>Zvor>fHyxuk@Mb3?+{!dLYvLQTSUGl9pKqWE|KTD zadhOkc)rcH!xG4P^5(^BoWJFCl~DW{uDvq!a^YP#*IiU%o_}pDLteh1OVkJM3{9q(Q0q0IW2uI&`-lf;Hs4?;PIEx( zS?`*cOb({0P0?zKOss!@sed;V2Qo=^hoSw8_8f#QG5+|4hwO<);r@appJE}(qByWVTKvl*`stcbR!%$!RT?qo7GJ|%@38Z&dQp)f1BK~)$6b|=;! zFu%cjq%pXAV+L>u)4yh*!>wc0@=TO+U=`I<;L$bFF5&A5b{`%cZnQq z_~lyts7;`Mt9669u6S;0>yPPiBZVUXy@L}cBE4oTK(U{=vZH+F1cIPP{K7)`*Job` z57RNj5X*$&7N9Py5L$v~T-|R8J(F8Fd$aD!%(*^Zd|?H1-$bEvHEf%B5qjHHc^J?< z`Se?^?$RPMMO+L^K1417lNvHyl}yBn6|4BPnboP6oKW+4FM3Pp89KiwtDWo3rk-@P zP8JP_&iuu~f-d>Z4k5Z(c{B&^n6)W0trkzPJHBne!DcHPIyK?cdkOb*7U&bEF&9je z_&X^->L5({?%1@T=%6zbg>RQ((3xNxSlP_ zvG}>9=6Zw=Z3I1b&Do;9! zUoUP;F;~Pj*#!?;rhP9OX0Uf)F#) zS3zn=Qq0Y&i!2>q#uo5K?I*Df>=Pl|aP1p(GNw?{7od_o(b(^HrW=;p&r4B56H^LXh;MW^r=Zckgo9%h5;HJdUlivR@+rSzUIYnN`Gx z*bNr(OcOrN0J(k`=e?X$AUIBCyQa}#)^JToFNlF-BrSQv1{)`SuPxYLQK-m0vqJyL# zQWJyI6P`6imp6!*sx8cy7x0ut18Bw()&LyAx9AT%GBJW*xRnb6$WzJ8sGI|>Z9HdG zq6`l6!XML0bR(EGADj67?e)c;vm@y4sig7wuhu(K~-) zx=%J<9HN^nJ9%^D25S5Qt*>M0N;;GkLI*j)PRy{b=Rye|b8*~!y4!$xc&>1|m+5EN zoXYtkOC$A|* z@QwSSa(>q6g6$_0DSLbGy?U06DZ9dFGpBrBfmfJ)d!KlEvv(zU%+y!!joQ&GgJeLb z`#^ied!Wu_m_IyK2D0=j+Gg70n&lY*Zh9TeqH@pDs-1nyv>!!8c~%WWF}@(?EQd1T zE#0*1Lcz`VQlOqa(RI$hkTmoxvo-!$bid*VF^Aw8?X|c3TZd|8Thc|tQ;a%P*e^P0 zxW06HQD#K`p)h6QY)G@_!nX}d!^6exxws?g+s0Ys#?9AAP(nKs{$KS>ik3; zGQ-j6-J*itq`aC21>t497&6V*YM&2C=!Yj=nf3eB*foyO+2?B3w03cMDmLeqU(zS2 z42Z2mC`vON@c1+)uckjQSA-Udvj?Jx)ZZLmFby@mn7UuTiH;IJ?o8;KYB=Bl&^veW z7QsE)hsY=jpKTiQtBkKp6>*P`Au<||wC~v#uqPQ6xhb9Ss^Yn9Vjcs@leKR>Du#N@ zab0m^*nYSCtcxlcpzq$;Z(#J|7~smbF`=C>70R$}V%}oGKGXH!Eellr@TU{XX5*Ef z)RK|U4wuoLMzNev4uXAU*XKZz!_fFT%ylh{iQO8a&>8iEwa{p%^R}Vq)*@*%1sYS@ z_u~W!*)aJo4CLP{ZJhsK=h(C9m_p!_Lu+TCfvv{6>N_$YRLi;l<-UIL+t(I(_H zG8M-zK5QlF(pqDjmR0z9zwpJTXIQb$)ijOrz_@*d_DVW!s&&9?Mh!(Y!O#fxuQ=(=ea)mCG6(CDvENhwQD=KZ(3!%* z9!>u3H9VTsa`lWqGt2t(WF0dki-N;wD_4sWm74}T+xVPxuOU77H2 z_c&kQCERrYz9qM<}` zPfV{ws262$THS9VTOo`alaUq)&j2zEyD!`}nti)76+cQDc(B4VUsG)k9dw6_SK*h6 zN8BDKzyh%#`fN}`JHH|#mbPzyD74Tm|6Spii$@$5&~t+c;gzH*-2FVixIQ~CS7c8T z0OK8Z4_x@Xf^>ZzmaHx#-oclsdRP8BvOX@f=w+yzmR(=AnC!3L)jLoi3gt!j48n>@) zu~MrCi(lyAXm$n_`J0B}@h$u%-Rl$Ii6zd$x0m8mJZ*D}z3zPV?aLc=rIa}X=7}xR z&zrsJ!cK5ofrSAN|T8@ zM;FgVLKrY+k|kFl-t%N@(G?)sp5zD{C%8Fmh2qZwh&FgS0^cgZQ*U) zZ$p_4v!v_;pS7gHLeLx&{_aAjsBX(*(1If{sFjo|KtZ=U`N?1}*?BC&G#OgD$XJmG zHS5`z)fmbsa@z!x@|DOrJm%a|0^(tO*(-;p?NrmKX2EYMJX5zSrj!%ICa+~MP#>+% z7MwtI_lO@oNq4uN>Jk{gQRgCL+qPHMkpbeev4kG@ zBPRKbU86UD7a_6Rbygy;1Ks+p)W8vlA{$7Lz9*i)s;KSt_u2Mm{5<(BBr`VvMNK{f zk`kBMA#j8}N`+6XP@{M6-bU&h-FdSKKCb#etlC(aNbbvSD1?!`D$901 zI&)Fog|Z-z(EUJRJL@p&gZX`t5}s-ezU>{Wz?Xl_lbSleh~8L?Sz$%%8)|qVxn8I) z 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%0DV7w)U~&bwDDE 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 literal 0 HcmV?d00001 diff --git a/Tests/test_file_dds.py b/Tests/test_file_dds.py index 8960edea3..aafd1f3b2 100644 --- a/Tests/test_file_dds.py +++ b/Tests/test_file_dds.py @@ -11,6 +11,8 @@ TEST_FILE_DXT3 = "Tests/images/dxt3-argb-8bbp-explicitalpha_MipMaps-1.dds" TEST_FILE_DXT5 = "Tests/images/dxt5-argb-8bbp-interpolatedalpha_MipMaps-1.dds" TEST_FILE_DX10_BC7 = "Tests/images/bc7-argb-8bpp_MipMaps-1.dds" TEST_FILE_DX10_BC7_UNORM_SRGB = "Tests/images/DXGI_FORMAT_BC7_UNORM_SRGB.dds" +TEST_FILE_DX10_R8G8B8A8 = "Tests/images/argb-32bpp_MipMaps-1.dds" +TEST_FILE_DX10_R8G8B8A8_UNORM_SRGB = "Tests/images/DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.dds" TEST_FILE_UNCOMPRESSED_RGB = "Tests/images/uncompressed_rgb.dds" @@ -87,6 +89,37 @@ def test_dx10_bc7_unorm_srgb(): assert_image_equal(target, im) +def test_dx10_r8g8b8a8(): + """Check DX10 images can be opened""" + + with Image.open(TEST_FILE_DX10_R8G8B8A8) as im: + im.load() + + assert im.format == "DDS" + assert im.mode == "RGBA" + assert im.size == (256, 256) + + with Image.open(TEST_FILE_DX10_R8G8B8A8.replace(".dds", ".png")) as target: + assert_image_equal(target, im) + + +def test_dx10_r8g8b8a8_unorm_srgb(): + """Check DX10 unsigned normalized integer images can be opened""" + + with Image.open(TEST_FILE_DX10_R8G8B8A8_UNORM_SRGB) as im: + im.load() + + assert im.format == "DDS" + assert im.mode == "RGBA" + assert im.size == (16, 16) + assert im.info["gamma"] == 1 / 2.2 + + with Image.open( + TEST_FILE_DX10_R8G8B8A8_UNORM_SRGB.replace(".dds", ".png") + ) as target: + assert_image_equal(target, im) + + def test_unimplemented_dxgi_format(): with pytest.raises(NotImplementedError): Image.open("Tests/images/unimplemented_dxgi_format.dds") diff --git a/src/PIL/DdsImagePlugin.py b/src/PIL/DdsImagePlugin.py index 9ba6e0ff8..5e2d51673 100644 --- a/src/PIL/DdsImagePlugin.py +++ b/src/PIL/DdsImagePlugin.py @@ -94,6 +94,9 @@ DXT5_FOURCC = 0x35545844 # dxgiformat.h +DXGI_FORMAT_R8G8B8A8_TYPELESS = 27 +DXGI_FORMAT_R8G8B8A8_UNORM = 28 +DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29 DXGI_FORMAT_BC7_TYPELESS = 97 DXGI_FORMAT_BC7_UNORM = 98 DXGI_FORMAT_BC7_UNORM_SRGB = 99 @@ -157,6 +160,15 @@ class DdsImageFile(ImageFile.ImageFile): self.pixel_format = "BC7" self.info["gamma"] = 1 / 2.2 n = 7 + elif dxgi_format in ( + DXGI_FORMAT_R8G8B8A8_TYPELESS, + DXGI_FORMAT_R8G8B8A8_UNORM, + DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, + ): + self.tile = [("raw", (0, 0) + self.size, 0, ("RGBA", 0, 1))] + if dxgi_format == DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: + self.info["gamma"] = 1 / 2.2 + return else: raise NotImplementedError( "Unimplemented DXGI format %d" % (dxgi_format) From c2890d1f10ff3745449ab6d34fe7ee6ac68515fb Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 12 Oct 2020 18:38:36 +1100 Subject: [PATCH 02/65] Moved warning to end of execution --- setup.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index 2f7c85e9b..e02095bd2 100755 --- a/setup.py +++ b/setup.py @@ -38,12 +38,16 @@ ZLIB_ROOT = None if sys.platform == "win32" and sys.version_info >= (3, 10): - warnings.warn( - f"Pillow {PILLOW_VERSION} does not support Python " - f"{sys.version_info.major}.{sys.version_info.minor} and does not provide " - "prebuilt Windows binaries. We do not recommend building from source on " - "Windows.", - RuntimeWarning, + import atexit + + atexit.register( + lambda: warnings.warn( + f"Pillow {PILLOW_VERSION} does not support Python " + f"{sys.version_info.major}.{sys.version_info.minor} and does not provide " + "prebuilt Windows binaries. We do not recommend building from source on " + "Windows.", + RuntimeWarning, + ) ) From 1e4d81f160ce37de635bd45a5162cf5c080a55fa Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 14 Oct 2020 17:31:21 +0100 Subject: [PATCH 03/65] add Python 3.10-dev to GHA --- .github/workflows/test-windows.yml | 2 +- .github/workflows/test.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index d384a7d29..0ebeed7cd 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6", "3.7", "3.8", "3.9", "pypy3"] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10-dev", "pypy3"] architecture: ["x86", "x64"] include: - architecture: "x86" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6cb099640..72291876a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,6 +14,7 @@ jobs: ] python-version: [ "pypy3", + "3.10-dev", "3.9", "3.8", "3.7", From 26cfe04fea451f689e9a4d137fc8ff8dbf292993 Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 14 Oct 2020 20:52:16 +0100 Subject: [PATCH 04/65] fix PY_SSIZE_T_CLEAN in display.c --- src/display.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/display.c b/src/display.c index 2eb4a5855..c95844bbc 100644 --- a/src/display.c +++ b/src/display.c @@ -22,7 +22,7 @@ * See the README file for information on usage and redistribution. */ - +#define PY_SSIZE_T_CLEAN #include "Python.h" #include "libImaging/Imaging.h" @@ -196,7 +196,7 @@ static PyObject* _frombytes(ImagingDisplayObject* display, PyObject* args) { char* ptr; - int bytes; + Py_ssize_t bytes; if (!PyArg_ParseTuple(args, "y#:frombytes", &ptr, &bytes)) { return NULL; @@ -777,7 +777,7 @@ PyImaging_DrawWmf(PyObject* self, PyObject* args) char* ptr; char* data; - int datasize; + Py_ssize_t datasize; int width, height; int x0, y0, x1, y1; if (!PyArg_ParseTuple(args, "y#(ii)(iiii):_load", &data, &datasize, From bdcc48f0a2d5af58155c6e10a127536d4ac79374 Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 14 Oct 2020 20:59:19 +0100 Subject: [PATCH 05/65] skip wheels on 3.10-dev due to wheel#354 --- .github/workflows/test-windows.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 0ebeed7cd..7c28b5075 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -187,14 +187,16 @@ jobs: - name: Build wheel id: wheel - if: "github.event_name == 'push'" + # Skip wheels on 3.10 due to https://github.com/pypa/wheel/issues/354 + if: "github.event_name == 'push' && !contains(matrix.python-version, '3.10')" run: | for /f "tokens=3 delims=/" %%a in ("${{ github.ref }}") do echo ::set-output name=dist::dist-%%a winbuild\\build\\build_pillow.cmd --disable-imagequant bdist_wheel shell: cmd - uses: actions/upload-artifact@v2 - if: "github.event_name == 'push'" + # Skip wheels on 3.10 due to https://github.com/pypa/wheel/issues/354 + if: "github.event_name == 'push' && !contains(matrix.python-version, '3.10')" with: name: ${{ steps.wheel.outputs.dist }} path: dist\*.whl From b305f99416aafbdf6b799418bb2b9bf1af6be3f1 Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 14 Oct 2020 19:26:45 +0100 Subject: [PATCH 06/65] skip numpy on 3.10-dev due to wheel#354 --- .ci/install.sh | 3 ++- .github/workflows/macos-install.sh | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.ci/install.sh b/.ci/install.sh index afb88eb17..8e1e263e1 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -31,7 +31,8 @@ pip install -U pytest pip install -U pytest-cov pip install pyroma pip install test-image-results -pip install numpy +# TODO Remove condition when numpy supports 3.10 +if ! [ "$GHA_PYTHON_VERSION" == "3.10-dev" ]; then pip install numpy ; fi # TODO Remove when 3.8 / 3.9 / PyPy3 includes setuptools 49.3.2+: if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then pip install -U "setuptools>=49.3.2" ; fi diff --git a/.github/workflows/macos-install.sh b/.github/workflows/macos-install.sh index 16f532edf..4d5e54b27 100755 --- a/.github/workflows/macos-install.sh +++ b/.github/workflows/macos-install.sh @@ -13,7 +13,8 @@ pip install pyroma pip install test-image-results echo -e "[openblas]\nlibraries = openblas\nlibrary_dirs = /usr/local/opt/openblas/lib" >> ~/.numpy-site.cfg -pip install numpy +# TODO Remove condition when numpy supports 3.10 +if ! [ "$GHA_PYTHON_VERSION" == "3.10-dev" ]; then pip install numpy ; fi # TODO Remove when 3.8 / 3.9 includes setuptools 49.3.2+: if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then pip install -U "setuptools>=49.3.2" ; fi From 17ed3efda6440e8e442de42e47fd3960f06ddd5f Mon Sep 17 00:00:00 2001 From: nulano Date: Fri, 16 Oct 2020 03:38:58 +0100 Subject: [PATCH 07/65] GHA: remove obsolete code for old PyPy --- .github/workflows/test-windows.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index d384a7d29..b455ff71b 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -52,11 +52,6 @@ jobs: python-version: ${{ matrix.python-version }} architecture: ${{ matrix.architecture }} - - name: Set up TCL - if: "contains(matrix.python-version, 'pypy')" - run: echo "TCL_LIBRARY=$env:pythonLocation\tcl\tcl8.5" >> $env:GITHUB_ENV - shell: pwsh - - name: Print build system information run: python .github/workflows/system-info.py From 76f8698b2c26e22e906ac3034a9a0fdf6c2b41f5 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 16 Oct 2020 20:05:27 +1100 Subject: [PATCH 08/65] Update CHANGES.rst [ci skip] --- CHANGES.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 57b500aa3..6e1970cba 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,6 +2,12 @@ Changelog (Pillow) ================== +8.1.0 (unreleased) +------------------ + +- Support raw rgba8888 for DDS #4760 + [qiankanglai] + 8.0.0 (2020-10-15) ------------------ From 5505da4877521857b4c6102647ee778eea77f715 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Fri, 16 Oct 2020 17:44:09 +0300 Subject: [PATCH 09/65] Remove soon-EOL Fedora 31 --- .github/workflows/test-docker.yml | 1 - docs/installation.rst | 2 -- 2 files changed, 3 deletions(-) diff --git a/.github/workflows/test-docker.yml b/.github/workflows/test-docker.yml index 322244b12..2d6d12933 100644 --- a/.github/workflows/test-docker.yml +++ b/.github/workflows/test-docker.yml @@ -20,7 +20,6 @@ jobs: centos-8-amd64, amazon-1-amd64, amazon-2-amd64, - fedora-31-amd64, fedora-32-amd64, ] dockerTag: [master] diff --git a/docs/installation.rst b/docs/installation.rst index c76327740..cf9742d45 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -434,8 +434,6 @@ These platforms are built and tested for every change. +----------------------------------+--------------------------+-----------------------+ | Debian 10 Buster | 3.7 |x86 | +----------------------------------+--------------------------+-----------------------+ -| Fedora 31 | 3.7 |x86-64 | -+----------------------------------+--------------------------+-----------------------+ | Fedora 32 | 3.8 |x86-64 | +----------------------------------+--------------------------+-----------------------+ | macOS 10.15 Catalina | 3.6, 3.7, 3.8, 3.9, PyPy3|x86-64 | From f846025ff540e55d2f9cda3421f79654a45d780b Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 17 Oct 2020 23:34:08 +1100 Subject: [PATCH 10/65] Revert "chown pip wheels cache on ppc64le as well" This reverts commit 93a743d59387ca9167463538e85bbebb5e4c3575. --- .ci/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/install.sh b/.ci/install.sh index afb88eb17..6f83fef22 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -21,7 +21,7 @@ sudo apt-get -qq install libfreetype6-dev liblcms2-dev python3-tk\ ghostscript libffi-dev libjpeg-turbo-progs libopenjp2-7-dev\ cmake imagemagick libharfbuzz-dev libfribidi-dev -if [[ $TRAVIS_CPU_ARCH == "s390x" || $TRAVIS_CPU_ARCH == "ppc64le" ]]; then sudo chown $USER ~/.cache/pip/wheels ; fi +if [[ $TRAVIS_CPU_ARCH == "s390x" ]]; then sudo chown $USER ~/.cache/pip/wheels ; fi pip install --upgrade pip PYTHONOPTIMIZE=0 pip install cffi From eb460a2ac8e4ab58937e8d3cf034be077e8e24a6 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sat, 17 Oct 2020 11:23:58 -0700 Subject: [PATCH 11/65] Fix internal Sphinx link to installation doc Fixes linkcheck warnings: handbook/image-file-formats.rst:563: [broken] ../installation.html: releasenotes/4.2.0.rst:7: [broken] ../installation.html: --- docs/handbook/image-file-formats.rst | 4 ++-- docs/releasenotes/4.2.0.rst | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index 5ed72ac1a..680582f12 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -561,8 +561,8 @@ The :py:meth:`~PIL.Image.Image.save` method supports the following options: .. note:: To enable PNG support, you need to build and install the ZLIB compression - library before building the Python Imaging Library. See the `installation - documentation <../installation.html>`_ for details. + library before building the Python Imaging Library. See the + :doc:`installation documentation <../installation>` for details. .. _apng-sequences: diff --git a/docs/releasenotes/4.2.0.rst b/docs/releasenotes/4.2.0.rst index a3e29f271..1e9637f1e 100644 --- a/docs/releasenotes/4.2.0.rst +++ b/docs/releasenotes/4.2.0.rst @@ -6,10 +6,9 @@ Added Complex Text Rendering Pillow now supports complex text rendering for scripts requiring glyph composition and bidirectional flow. This optional feature adds three -dependencies: harfbuzz, fribidi, and raqm. See the `install -documentation <../installation.html>`_ for further details. This feature is -tested and works on Unix and Mac, but has not yet been built on Windows -platforms. +dependencies: harfbuzz, fribidi, and raqm. See the :doc:`install documentation +<../installation>` for further details. This feature is tested and works on +Unix and Mac, but has not yet been built on Windows platforms. New Optional Parameters ======================= From 0045cca027a3cf2e9cf1069b62edd571deef6a90 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 19 Oct 2020 07:22:24 +1100 Subject: [PATCH 12/65] Clean up dist in release-test --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 4fd031b69..99232cac9 100644 --- a/Makefile +++ b/Makefile @@ -91,6 +91,8 @@ release-test: python3 selftest.py python3 -m pytest Tests python3 setup.py install + -rm dist/*.egg + -rmdir dist python3 -m pytest -qq check-manifest pyroma . From f886bc973bb972a796756d9c0a728795d203dd97 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 19 Oct 2020 21:32:56 +1100 Subject: [PATCH 13/65] Moved string_dimension image to pillow-depends --- Tests/images/string_dimension.tiff | Bin 483 -> 0 bytes Tests/test_file_tiff.py | 4 ++++ 2 files changed, 4 insertions(+) delete mode 100644 Tests/images/string_dimension.tiff diff --git a/Tests/images/string_dimension.tiff b/Tests/images/string_dimension.tiff deleted file mode 100644 index d0b55830128495194a82252d3cf7c4d4cae0931c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmebD)M8k`z`)R8{~*9Zg|kh8VgI4#AJPZd7_|03?EgOd?~ecmmq+Ulb-K)F>OG$P z(L>+^vvSvg84E5@4K%E0*&6*!HDCo3r@s7ty^k6vW!LF2P2FPl+D_}z`*(wr2g%Hka!nV9LVHlWMpFS05a-;h6ysVfX(Cp z@`a#kKz4{CvBf~_|2P0pEdvXKI0Mw2H8U9GKtc>sjI3aT+kmD?L)m>mwhYYRgVX^a hyBvUK@&M^+K=TEFbeb%qUP)#eNQwdEY%l}J0staUza0Po diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index bcffecd35..f644ef887 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -598,6 +598,10 @@ class TestFileTiff: # Ignore this UserWarning which triggers for four tags: # "Possibly corrupt EXIF data. Expecting to read 50404352 bytes but..." @pytest.mark.filterwarnings("ignore:Possibly corrupt EXIF data") + @pytest.mark.skipif( + not os.path.exists("Tests/images/string_dimension.tiff"), + reason="Extra image files not installed", + ) def test_string_dimension(self): # Assert that an error is raised if one of the dimensions is a string with pytest.raises(ValueError): From bd65c8ebb56351f0ce3c6a623bbedf3b7c61eba9 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 19 Oct 2020 22:12:51 +1100 Subject: [PATCH 14/65] Updated libimagequant to 2.13.0 --- depends/install_imagequant.sh | 2 +- docs/installation.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/install_imagequant.sh b/depends/install_imagequant.sh index 1f2b677fd..ae70bde8f 100755 --- a/depends/install_imagequant.sh +++ b/depends/install_imagequant.sh @@ -1,7 +1,7 @@ #!/bin/bash # install libimagequant -archive=libimagequant-2.12.6 +archive=libimagequant-2.13.0 ./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/master/$archive.tar.gz diff --git a/docs/installation.rst b/docs/installation.rst index cf9742d45..c09b641ab 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -177,7 +177,7 @@ Many of Pillow's features require external libraries: * **libimagequant** provides improved color quantization - * Pillow has been tested with libimagequant **2.6-2.12.6** + * Pillow has been tested with libimagequant **2.6-2.13.0** * Libimagequant is licensed GPLv3, which is more restrictive than the Pillow license, therefore we will not be distributing binaries with libimagequant support enabled. From 919fdcc49c6f9f803d6c3086c7ec7cf9a75c15a3 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 20 Oct 2020 19:55:44 +1100 Subject: [PATCH 15/65] Updated freetype to 2.10.4 --- winbuild/build_prepare.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index 352c3f76b..6c431f4d6 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -184,9 +184,9 @@ deps = { "libs": [r"libpng16.lib"], }, "freetype": { - "url": "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.3.tar.gz", # noqa: E501 - "filename": "freetype-2.10.3.tar.gz", - "dir": "freetype-2.10.3", + "url": "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.4.tar.gz", # noqa: E501 + "filename": "freetype-2.10.4.tar.gz", + "dir": "freetype-2.10.4", "patch": { r"builds\windows\vc2010\freetype.vcxproj": { # freetype setting is /MD for .dll and /MT for .lib, we need /MD From 558b2e6cf6143acd6323f0887c112043f34b5fb4 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 22 Oct 2020 15:45:58 +0300 Subject: [PATCH 16/65] Add release notes for 8.0.1 --- CHANGES.rst | 6 ++++++ docs/releasenotes/8.0.1.rst | 23 +++++++++++++++++++++++ docs/releasenotes/index.rst | 1 + 3 files changed, 30 insertions(+) create mode 100644 docs/releasenotes/8.0.1.rst diff --git a/CHANGES.rst b/CHANGES.rst index 6e1970cba..95a7d1c46 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -8,6 +8,12 @@ Changelog (Pillow) - Support raw rgba8888 for DDS #4760 [qiankanglai] +8.0.1 (2020-10-22) +------------------ + +- Update FreeType used in binary wheels to 2.10.4 to fix CVE-2020-15999. + [radarhere] + 8.0.0 (2020-10-15) ------------------ diff --git a/docs/releasenotes/8.0.1.rst b/docs/releasenotes/8.0.1.rst new file mode 100644 index 000000000..be10d8e47 --- /dev/null +++ b/docs/releasenotes/8.0.1.rst @@ -0,0 +1,23 @@ +8.0.1 +----- + +Security +======== + +Update FreeType used in binary wheels to `2.10.4`_ to fix CVE-2020-15999_: + + - A heap buffer overflow has been found in the handling of embedded PNG bitmaps, + introduced in FreeType version 2.6. + + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15999 + + If you use option ``FT_CONFIG_OPTION_USE_PNG`` you should upgrade immediately. + +Before Pillow 8.0.0 bitmap fonts were disabled with ``FT_LOAD_NO_BITMAP``, but it is not +clear if this prevents the exploit and we recommend updating to Pillow 8.0.1. + +Pillow 8.0.0 and earlier are potentially vulnerable releases, including the last release +to support Python 2.7, namely Pillow 6.2.2. + +.. _2.10.4: https://sourceforge.net/projects/freetype/files/freetype2/2.10.4/ +.. _CVE-2020-15999: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15999 diff --git a/docs/releasenotes/index.rst b/docs/releasenotes/index.rst index ba81fbaf8..5c74bed9b 100644 --- a/docs/releasenotes/index.rst +++ b/docs/releasenotes/index.rst @@ -13,6 +13,7 @@ expected to be backported to earlier versions. .. toctree:: :maxdepth: 2 + 8.0.1 8.0.0 7.2.0 7.1.2 From ac348ea3b1807f805c165cd29a54734000f14c3a Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 22 Oct 2020 17:09:20 +0300 Subject: [PATCH 17/65] Clarify wording [CI skip] Co-authored-by: nulano --- docs/releasenotes/8.0.1.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/releasenotes/8.0.1.rst b/docs/releasenotes/8.0.1.rst index be10d8e47..e50596e5c 100644 --- a/docs/releasenotes/8.0.1.rst +++ b/docs/releasenotes/8.0.1.rst @@ -13,7 +13,9 @@ Update FreeType used in binary wheels to `2.10.4`_ to fix CVE-2020-15999_: If you use option ``FT_CONFIG_OPTION_USE_PNG`` you should upgrade immediately. -Before Pillow 8.0.0 bitmap fonts were disabled with ``FT_LOAD_NO_BITMAP``, but it is not +We strongly recommend updating to Pillow 8.0.1 if you are using Pillow 8.0.0, which improved support for bitmap fonts. + +In Pillow 7.2.0 and earlier bitmap fonts were disabled with ``FT_LOAD_NO_BITMAP``, but it is not clear if this prevents the exploit and we recommend updating to Pillow 8.0.1. Pillow 8.0.0 and earlier are potentially vulnerable releases, including the last release From ece120d63c1d645e4bf986757dd41986365eb0e5 Mon Sep 17 00:00:00 2001 From: nulano Date: Thu, 22 Oct 2020 15:53:16 +0100 Subject: [PATCH 18/65] replace test images when copying from pillow-depends --- .appveyor.yml | 2 +- .github/workflows/test-windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 8ef91212d..23ac977ae 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -22,7 +22,7 @@ install: - curl -fsSL -o pillow-depends.zip https://github.com/python-pillow/pillow-depends/archive/master.zip - 7z x pillow-depends.zip -oc:\ - mv c:\pillow-depends-master c:\pillow-depends -- xcopy /s c:\pillow-depends\test_images\* c:\pillow\tests\images +- xcopy /S /Y c:\pillow-depends\test_images\* c:\pillow\tests\images - 7z x ..\pillow-depends\nasm-2.14.02-win64.zip -oc:\ - ..\pillow-depends\gs9533w32.exe /S - path c:\nasm-2.14.02;C:\Program Files (x86)\gs\gs9.53.3\bin;%PATH% diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index d384a7d29..9864455de 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -76,7 +76,7 @@ jobs: winbuild\depends\gs9533w32.exe /S echo "C:\Program Files (x86)\gs\gs9.53.3\bin" >> $env:GITHUB_PATH - xcopy /s winbuild\depends\test_images\* Tests\images\ + xcopy /S /Y winbuild\depends\test_images\* Tests\images\ shell: pwsh - name: Cache build From 82c8b76a3683da75ec95b9c64094db9a2681614c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 23 Oct 2020 08:22:17 +1100 Subject: [PATCH 19/65] Update CHANGES.rst [ci skip] --- CHANGES.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 95a7d1c46..e7090219f 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -14,6 +14,9 @@ Changelog (Pillow) - Update FreeType used in binary wheels to 2.10.4 to fix CVE-2020-15999. [radarhere] +- Moved string_dimension image to pillow-depends #4993 + [radarhere] + 8.0.0 (2020-10-15) ------------------ From d1650cb2b3bae7f79b3b002f83eb81ba50bfa575 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 23 Oct 2020 21:08:06 +1100 Subject: [PATCH 20/65] Document FreeMono license [ci skip] --- Tests/fonts/LICENSE.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tests/fonts/LICENSE.txt b/Tests/fonts/LICENSE.txt index db3af7c34..06eaa9a4e 100644 --- a/Tests/fonts/LICENSE.txt +++ b/Tests/fonts/LICENSE.txt @@ -11,6 +11,8 @@ BungeeColor-Regular_colr_Windows.ttf, from https://github.com/djrrb/bungee All of the above fonts are published under the SIL Open Font License (OFL) v1.1 (http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL), which allows you to copy, modify, and redistribute them if you need to. +FreeMono.ttf is licensed under GPLv3, with the GPL font exception. + OpenSansCondensed-LightItalic.tt, from https://fonts.google.com/specimen/Open+Sans, under Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0) DejaVuSans-24-{1,2,4,8}-stripped.ttf are based on DejaVuSans.ttf converted using FontForge to add bitmap strikes and keep only the ASCII range. From 07cfe1d0d0799673ab922537cb7ba7958b8be496 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 24 Oct 2020 13:14:51 +1100 Subject: [PATCH 21/65] Updated macOS tested Pillow versions [ci skip] --- docs/installation.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/installation.rst b/docs/installation.rst index c09b641ab..4a70b7fbf 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -469,7 +469,9 @@ These platforms have been reported to work at the versions mentioned. +----------------------------------+------------------------------+--------------------------------+-----------------------+ |**Operating system** |**Tested Python versions** |**Latest tested Pillow version**|**Tested processors** | +----------------------------------+------------------------------+--------------------------------+-----------------------+ -| macOS 10.15 Catalina | 3.5, 3.6, 3.7, 3.8 | 7.2.0 |x86-64 | +| macOS 10.15 Catalina | 3.6, 3.7, 3.8, 3.9 | 8.0.1 |x86-64 | +| +------------------------------+--------------------------------+ + +| | 3.5 | 7.2.0 | | +----------------------------------+------------------------------+--------------------------------+-----------------------+ | macOS 10.14 Mojave | 3.5, 3.6, 3.7, 3.8 | 7.2.0 |x86-64 | | +------------------------------+--------------------------------+ + From 25be3364575c8f2c2051a86e0995a2415f93f8ed Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Sun, 25 Oct 2020 14:40:40 +0200 Subject: [PATCH 22/65] Add a 'git push' to point release, adjust MD formatting for issues [CI skip] --- RELEASING.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index c9a0439d8..ad166527c 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -6,10 +6,7 @@ Released quarterly on January 2nd, April 1st, July 1st and October 15th. * [ ] Open a release ticket e.g. https://github.com/python-pillow/Pillow/issues/3154 * [ ] Develop and prepare release in `master` branch. -* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), - [Travis CI](https://travis-ci.org/github/python-pillow/Pillow) and - [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm - passing tests in `master` branch. +* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), [Travis CI](https://travis-ci.org/github/python-pillow/Pillow) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in `master` branch. * [ ] Check that all of the wheel builds [Pillow Wheel Builder](https://github.com/python-pillow/pillow-wheels) pass the tests in Travis CI. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Update `CHANGES.rst`. @@ -40,14 +37,11 @@ Released as needed for security, installation or critical bug fixes. ```bash git checkout -t remotes/origin/5.2.x ``` -* [ ] Cherry pick individual commits from `master` branch to release branch e.g. `5.2.x`. +* [ ] Cherry pick individual commits from `master` branch to release branch e.g. `5.2.x`, then `git push`. -* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), - [Travis CI](https://travis-ci.org/github/python-pillow/Pillow) and - [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm - passing tests in release branch e.g. `5.2.x`. +* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), [Travis CI](https://travis-ci.org/github/python-pillow/Pillow) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in release branch e.g. `5.2.x`. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Run pre-release check via `make release-test`. * [ ] Create tag for release e.g.: From 3581600bf34d98f4f50684037459cd7c52e3054b Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 26 Oct 2020 06:58:20 +1100 Subject: [PATCH 23/65] Clarified that "text" must be a string [ci skip] --- docs/reference/ImageDraw.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference/ImageDraw.rst b/docs/reference/ImageDraw.rst index 6052d2833..57d1c2dda 100644 --- a/docs/reference/ImageDraw.rst +++ b/docs/reference/ImageDraw.rst @@ -296,7 +296,7 @@ Methods Draws the string at the given position. :param xy: The anchor coordinates of the text. - :param text: Text to be drawn. If it contains any newline characters, + :param text: String to be drawn. If it contains any newline characters, the text is passed on to :py:meth:`~PIL.ImageDraw.ImageDraw.multiline_text`. :param fill: Color to use for the text. @@ -362,7 +362,7 @@ Methods Draws the string at the given position. :param xy: The anchor coordinates of the text. - :param text: Text to be drawn. + :param text: String to be drawn. :param fill: Color to use for the text. :param font: An :py:class:`~PIL.ImageFont.ImageFont` instance. From 3fca42f27db2ea7cc83d16b2ccd4c2fc97a71251 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Mon, 26 Oct 2020 21:59:24 +0200 Subject: [PATCH 24/65] Test on Python 3.9 final --- .travis.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index b02f054d0..da8aedf8c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,8 +28,8 @@ matrix: - python: "pypy3.6-7.3.1" name: "PyPy3 Xenial" - - python: "3.9-dev" - name: "3.9-dev Xenial" + - python: "3.9" + name: "3.9 Xenial" services: xvfb - python: "3.8" name: "3.8 Xenial" @@ -43,9 +43,6 @@ matrix: env: PYTHONOPTIMIZE=1 services: xvfb - allow_failures: - - python: "3.9-dev" - install: - | if [ "$LINT" == "true" ]; then From 5eab56860bc79ff8a68dd519bfe8051393a93cb3 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 27 Oct 2020 21:12:51 +1100 Subject: [PATCH 25/65] Updated CI targets [ci skip] --- docs/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.rst b/docs/installation.rst index 4a70b7fbf..131a60692 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -438,7 +438,7 @@ These platforms are built and tested for every change. +----------------------------------+--------------------------+-----------------------+ | macOS 10.15 Catalina | 3.6, 3.7, 3.8, 3.9, PyPy3|x86-64 | +----------------------------------+--------------------------+-----------------------+ -| Ubuntu Linux 16.04 LTS (Xenial) | 3.6, 3.7, 3.8, PyPy3 |x86-64 | +| Ubuntu Linux 16.04 LTS (Xenial) | 3.6, 3.7, 3.8, 3.9, PyPy3|x86-64 | +----------------------------------+--------------------------+-----------------------+ | Ubuntu Linux 18.04 LTS (Bionic) | 3.6, 3.7, 3.8, 3.9, PyPy3|x86-64 | +----------------------------------+--------------------------+-----------------------+ From 91de1880b3bdd9b56a22f115ea83e5c92cc252a9 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 27 Oct 2020 21:47:06 +0200 Subject: [PATCH 26/65] Add Fedora 33 --- .github/workflows/test-docker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-docker.yml b/.github/workflows/test-docker.yml index 2d6d12933..ddec1bee4 100644 --- a/.github/workflows/test-docker.yml +++ b/.github/workflows/test-docker.yml @@ -21,6 +21,7 @@ jobs: amazon-1-amd64, amazon-2-amd64, fedora-32-amd64, + fedora-33-amd64, ] dockerTag: [master] From 1b3685aeddaea9fadeeed120d87e68a8d0b44e59 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 27 Oct 2020 21:54:04 +0200 Subject: [PATCH 27/65] Test on Python 3.9 final --- .appveyor.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 23ac977ae..092b73748 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,5 +1,4 @@ version: '{build}' -image: Visual Studio 2017 clone_folder: c:\pillow init: - ECHO %PYTHON% @@ -12,10 +11,12 @@ environment: TEST_OPTIONS: DEPLOY: YES matrix: - - PYTHON: C:/Python38 + - PYTHON: C:/Python39 ARCHITECTURE: x86 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - PYTHON: C:/Python36-x64 ARCHITECTURE: x64 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 install: @@ -32,6 +33,7 @@ install: c:\pillow\winbuild\build\build_dep_all.cmd $host.SetShouldExit(0) - path C:\pillow\winbuild\build\bin;%PATH% +- '%PYTHON%\%PIP_DIR%\pip.exe install -U "setuptools>=49.3.2"' build_script: - ps: | From d171afc19ee4401530ab9e0d7862f4206e7ce6e1 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 28 Oct 2020 22:03:27 +1100 Subject: [PATCH 28/65] Describe effect of WebP save_all [ci skip] --- docs/handbook/image-file-formats.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index 680582f12..2b6f9483b 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -947,9 +947,10 @@ Saving sequences library is v0.5.0 or later. You can check webp animation support at runtime by calling ``features.check("webp_anim")``. -When calling :py:meth:`~PIL.Image.Image.save` to write a WebP file, the -following options are available when the ``save_all`` argument is present and -true. +When calling :py:meth:`~PIL.Image.Image.save` to write a WebP file, by default +only the first frame of a multiframe image will be saved. If the ``save_all`` +argument is present and true, then all frames will be saved, and the following +options will also be available. **append_images** A list of images to append as additional frames. Each of the From b3f0f9ae8ca09d53ea6982254ec0984a0e6424af Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 29 Oct 2020 18:40:46 +1100 Subject: [PATCH 29/65] Updated CI targets [ci skip] --- docs/installation.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index 131a60692..0a8c41ba6 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -444,9 +444,7 @@ These platforms are built and tested for every change. +----------------------------------+--------------------------+-----------------------+ | Ubuntu Linux 20.04 LTS (Focal) | 3.8 |x86-64 | +----------------------------------+--------------------------+-----------------------+ -| Windows Server 2016 | 3.8 |x86 | -| +--------------------------+-----------------------+ -| | 3.6 |x86-64 | +| Windows Server 2016 | 3.6 |x86-64 | +----------------------------------+--------------------------+-----------------------+ | Windows Server 2019 | 3.6, 3.7, 3.8, 3.9 |x86, x86-64 | | +--------------------------+-----------------------+ From 6a50e1076afff4c8f04a11f55bd0e6512dbfd8d9 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 29 Oct 2020 22:41:29 +1100 Subject: [PATCH 30/65] Invoke pip using Python --- .appveyor.yml | 8 ++++---- .ci/install.sh | 28 ++++++++++++++-------------- .github/workflows/macos-install.sh | 20 ++++++++++---------- .github/workflows/test-windows.yml | 2 +- .github/workflows/test.yml | 4 ++-- .travis.yml | 2 +- depends/diffcover-install.sh | 2 +- docs/releasenotes/6.0.0.rst | 2 +- tox.ini | 4 ++-- winbuild/build.rst | 2 +- 10 files changed, 37 insertions(+), 37 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 092b73748..45b748140 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -33,7 +33,7 @@ install: c:\pillow\winbuild\build\build_dep_all.cmd $host.SetShouldExit(0) - path C:\pillow\winbuild\build\bin;%PATH% -- '%PYTHON%\%PIP_DIR%\pip.exe install -U "setuptools>=49.3.2"' +- '%PYTHON%\%EXECUTABLE% -m pip install -U "setuptools>=49.3.2"' build_script: - ps: | @@ -44,13 +44,13 @@ build_script: test_script: - cd c:\pillow -- '%PYTHON%\%PIP_DIR%\pip.exe install pytest pytest-cov' +- '%PYTHON%\%EXECUTABLE% -m pip install pytest pytest-cov' - c:\"Program Files (x86)"\"Windows Kits"\10\Debuggers\x86\gflags.exe /p /enable %PYTHON%\%EXECUTABLE% - '%PYTHON%\%EXECUTABLE% -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests' #- '%PYTHON%\%EXECUTABLE% test-installed.py -v -s %TEST_OPTIONS%' TODO TEST_OPTIONS with pytest? after_test: -- pip install codecov +- python -m pip install codecov - codecov --file coverage.xml --name %PYTHON% --flags AppVeyor matrix: @@ -67,7 +67,7 @@ artifacts: before_deploy: - cd c:\pillow - - '%PYTHON%\%PIP_DIR%\pip.exe install wheel' + - '%PYTHON%\%EXECUTABLE% -m pip install wheel' - cd c:\pillow\winbuild\ - c:\pillow\winbuild\build\build_pillow.cmd bdist_wheel - cd c:\pillow diff --git a/.ci/install.sh b/.ci/install.sh index 6f83fef22..6b9ade699 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -23,32 +23,32 @@ sudo apt-get -qq install libfreetype6-dev liblcms2-dev python3-tk\ if [[ $TRAVIS_CPU_ARCH == "s390x" ]]; then sudo chown $USER ~/.cache/pip/wheels ; fi -pip install --upgrade pip -PYTHONOPTIMIZE=0 pip install cffi -pip install coverage -pip install olefile -pip install -U pytest -pip install -U pytest-cov -pip install pyroma -pip install test-image-results -pip install numpy +python3 -m pip install --upgrade pip +PYTHONOPTIMIZE=0 python3 -m pip install cffi +python3 -m pip install coverage +python3 -m pip install olefile +python3 -m pip install -U pytest +python3 -m pip install -U pytest-cov +python3 -m pip install pyroma +python3 -m pip install test-image-results +python3 -m pip install numpy # TODO Remove when 3.8 / 3.9 / PyPy3 includes setuptools 49.3.2+: -if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then pip install -U "setuptools>=49.3.2" ; fi -if [ "$GHA_PYTHON_VERSION" == "3.9" ]; then pip install -U "setuptools>=49.3.2" ; fi -if [ "$TRAVIS_PYTHON_VERSION" == "pypy3.6-7.3.1" ]; then pip install -U "setuptools>=49.3.2" ; fi +if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then python3 -m pip install -U "setuptools>=49.3.2" ; fi +if [ "$GHA_PYTHON_VERSION" == "3.9" ]; then python3 -m pip install -U "setuptools>=49.3.2" ; fi +if [ "$TRAVIS_PYTHON_VERSION" == "pypy3.6-7.3.1" ]; then python3 -m pip install -U "setuptools>=49.3.2" ; fi if [[ $TRAVIS_PYTHON_VERSION == 3.* ]]; then # arm64, ppc64le, s390x CPUs: # "ERROR: Could not find a version that satisfies the requirement pyqt5" if [[ $TRAVIS_CPU_ARCH == "amd64" ]]; then sudo apt-get -qq install libxcb-xinerama0 pyqt5-dev-tools - pip install pyqt5 + python3 -m pip install pyqt5 fi fi # docs only on Python 3.8 -if [ "$TRAVIS_PYTHON_VERSION" == "3.8" ]; then pip install -r requirements.txt ; fi +if [ "$TRAVIS_PYTHON_VERSION" == "3.8" ]; then python3 -m pip install -r requirements.txt ; fi # webp pushd depends && ./install_webp.sh && popd diff --git a/.github/workflows/macos-install.sh b/.github/workflows/macos-install.sh index 16f532edf..473412d3b 100755 --- a/.github/workflows/macos-install.sh +++ b/.github/workflows/macos-install.sh @@ -4,20 +4,20 @@ set -e brew install libtiff libjpeg openjpeg libimagequant webp little-cms2 freetype openblas -PYTHONOPTIMIZE=0 pip install cffi -pip install coverage -pip install olefile -pip install -U pytest -pip install -U pytest-cov -pip install pyroma -pip install test-image-results +PYTHONOPTIMIZE=0 python3 -m pip install cffi +python3 -m pip install coverage +python3 -m pip install olefile +python3 -m pip install -U pytest +python3 -m pip install -U pytest-cov +python3 -m pip install pyroma +python3 -m pip install test-image-results echo -e "[openblas]\nlibraries = openblas\nlibrary_dirs = /usr/local/opt/openblas/lib" >> ~/.numpy-site.cfg -pip install numpy +python3 -m pip install numpy # TODO Remove when 3.8 / 3.9 includes setuptools 49.3.2+: -if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then pip install -U "setuptools>=49.3.2" ; fi -if [ "$GHA_PYTHON_VERSION" == "3.9" ]; then pip install -U "setuptools>=49.3.2" ; fi +if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then python3 -m pip install -U "setuptools>=49.3.2" ; fi +if [ "$GHA_PYTHON_VERSION" == "3.9" ]; then python3 -m pip install -U "setuptools>=49.3.2" ; fi # extra test images pushd depends && ./install_extra_test_images.sh && popd diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index a52f092c6..a7fb2bdbc 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -55,7 +55,7 @@ jobs: - name: Print build system information run: python .github/workflows/system-info.py - - name: pip install wheel pytest pytest-cov + - name: python -m pip install wheel pytest pytest-cov run: python -m pip install wheel pytest pytest-cov # TODO Remove when 3.8 / 3.9 includes setuptools 49.3.2+: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6cb099640..df5f6f07c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,7 @@ jobs: - name: Get pip cache dir id: pip-cache run: | - echo "::set-output name=dir::$(pip cache dir)" + echo "::set-output name=dir::$(python3 -m pip cache dir)" - name: pip cache uses: actions/cache@v2 @@ -96,7 +96,7 @@ jobs: - name: Docs if: startsWith(matrix.os, 'ubuntu') && matrix.python-version == 3.8 run: | - pip install sphinx-removed-in sphinx-rtd-theme + python3 -m pip install sphinx-removed-in sphinx-rtd-theme make doccheck - name: After success diff --git a/.travis.yml b/.travis.yml index da8aedf8c..2966cdf19 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,7 @@ matrix: install: - | if [ "$LINT" == "true" ]; then - pip install tox + python3 -m pip install tox else .ci/install.sh; fi diff --git a/depends/diffcover-install.sh b/depends/diffcover-install.sh index a0b462b56..18be4f9f9 100755 --- a/depends/diffcover-install.sh +++ b/depends/diffcover-install.sh @@ -5,4 +5,4 @@ git fetch origin master:refs/remotes/origin/master # CFLAGS=-O0 means build with no optimisation. # Makes build much quicker for lxml and other dependencies. -time CFLAGS=-O0 pip install diff_cover +time CFLAGS=-O0 python3 -m pip install diff_cover diff --git a/docs/releasenotes/6.0.0.rst b/docs/releasenotes/6.0.0.rst index 0145347f2..3e3b945a0 100644 --- a/docs/releasenotes/6.0.0.rst +++ b/docs/releasenotes/6.0.0.rst @@ -17,7 +17,7 @@ Removed deprecated PIL.OleFileIO PIL.OleFileIO was removed as a vendored file and in Pillow 4.0.0 (2017-01) in favour of the upstream olefile Python package, and replaced with an ``ImportError``. The deprecated file has now been removed from Pillow. If needed, install from PyPI (eg. -``pip install olefile``). +``python3 -m pip install olefile``). Removed deprecated ImageOps functions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tox.ini b/tox.ini index 81c6e19cf..2557d5067 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ # Tox (https://tox.readthedocs.io/en/latest/) is a tool for running tests # in multiple virtualenvs. This configuration file will run the -# test suite on all supported python versions. To use it, "pip install tox" -# and then run "tox" from this directory. +# test suite on all supported python versions. To use it, +# "python3 -m pip install tox" and then run "tox" from this directory. [tox] envlist = diff --git a/winbuild/build.rst b/winbuild/build.rst index ba568a030..cd4a45e87 100644 --- a/winbuild/build.rst +++ b/winbuild/build.rst @@ -82,7 +82,7 @@ Pillow for the selected version of Python. instead of installing Pillow. You can also use ``winbuild\build\build_pillow.cmd --inplace develop`` to build -and install Pillow in develop mode (instead of ``pip install --editable``). +and install Pillow in develop mode (instead of ``python3 -m pip install --editable``). Testing Pillow -------------- From 0823b37d41f0d36d38187e74d868015d6eb2c80e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 30 Oct 2020 19:25:50 +1100 Subject: [PATCH 31/65] Removed PIP_DIR variable --- .appveyor.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 45b748140..a77033ec1 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -7,7 +7,6 @@ init: environment: EXECUTABLE: python.exe - PIP_DIR: Scripts TEST_OPTIONS: DEPLOY: YES matrix: From 57ac10a3faf930c11078b7105a9f06d0ae151cf6 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 29 Oct 2020 21:26:44 +1100 Subject: [PATCH 32/65] Updated Python for diffcover to 3.9 --- .ci/after_success.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/after_success.sh b/.ci/after_success.sh index dcf276daa..762670f10 100755 --- a/.ci/after_success.sh +++ b/.ci/after_success.sh @@ -12,7 +12,7 @@ if [[ $TRAVIS ]]; then codecov --flags TravisCI fi -if [ "$TRAVIS_PYTHON_VERSION" == "3.8" ]; then +if [ "$TRAVIS_PYTHON_VERSION" == "3.9" ]; then # Coverage and quality reports on just the latest diff. depends/diffcover-install.sh depends/diffcover-run.sh From c309c64d0ab9603442c2a5564a4babb5d91b9e46 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 30 Oct 2020 23:51:41 +1100 Subject: [PATCH 33/65] Updated Python for doccheck to 3.9 --- .ci/install.sh | 4 ++-- .ci/test.sh | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.ci/install.sh b/.ci/install.sh index 6b9ade699..a8e82fa49 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -47,8 +47,8 @@ if [[ $TRAVIS_PYTHON_VERSION == 3.* ]]; then fi fi -# docs only on Python 3.8 -if [ "$TRAVIS_PYTHON_VERSION" == "3.8" ]; then python3 -m pip install -r requirements.txt ; fi +# docs only on Python 3.9 +if [ "$TRAVIS_PYTHON_VERSION" == "3.9" ]; then python3 -m pip install -r requirements.txt ; fi # webp pushd depends && ./install_webp.sh && popd diff --git a/.ci/test.sh b/.ci/test.sh index 579372a62..1396445e0 100755 --- a/.ci/test.sh +++ b/.ci/test.sh @@ -5,6 +5,6 @@ set -e python -bb -m pytest -v -x -W always --cov PIL --cov Tests --cov-report term Tests # Docs -if [ "$TRAVIS_PYTHON_VERSION" == "3.8" ] && [ "$TRAVIS_CPU_ARCH" == "amd64" ]; then +if [ "$TRAVIS_PYTHON_VERSION" == "3.9" ] && [ "$TRAVIS_CPU_ARCH" == "amd64" ]; then make doccheck fi diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index df5f6f07c..1fc8a09cb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -94,7 +94,7 @@ jobs: path: Tests/errors - name: Docs - if: startsWith(matrix.os, 'ubuntu') && matrix.python-version == 3.8 + if: startsWith(matrix.os, 'ubuntu') && matrix.python-version == 3.9 run: | python3 -m pip install sphinx-removed-in sphinx-rtd-theme make doccheck From c34cf8ccb9e694583cbcf87875b6fd624c71645d Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Fri, 30 Oct 2020 21:11:31 +0200 Subject: [PATCH 34/65] Update Travis CI links for .com --- .github/CONTRIBUTING.md | 4 ++-- README.md | 8 ++++---- RELEASING.md | 4 ++-- docs/about.rst | 2 +- docs/index.rst | 8 ++++---- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 3d27b5d88..a65487d5e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -9,7 +9,7 @@ Please send a pull request to the master branch. Please include [documentation]( - Fork the Pillow repository. - Create a branch from master. - Develop bug fixes, features, tests, etc. -- Run the test suite. You can enable [Travis CI](https://travis-ci.org/profile/) and [AppVeyor](https://ci.appveyor.com/projects/new) on your repo to catch test failures prior to the pull request, and [Codecov](https://codecov.io/gh) to see if the changed code is covered by tests. +- Run the test suite. You can enable [Travis CI](https://travis-ci.com/account/repositories) and [AppVeyor](https://ci.appveyor.com/projects/new) on your repo to catch test failures prior to the pull request, and [Codecov](https://codecov.io/gh) to see if the changed code is covered by tests. - Create a pull request to pull the changes from your branch to the Pillow master. ### Guidelines @@ -17,7 +17,7 @@ Please send a pull request to the master branch. Please include [documentation]( - Separate code commits from reformatting commits. - Provide tests for any newly added code. - Follow PEP 8. -- When committing only documentation changes please include [ci skip] in the commit message to avoid running tests on Travis-CI and AppVeyor. +- When committing only documentation changes please include `[ci skip]` in the commit message to avoid running tests on Travis CI and AppVeyor. ## Reporting Issues diff --git a/README.md b/README.md index 0e6fa1157..9ead486a0 100644 --- a/README.md +++ b/README.md @@ -24,12 +24,12 @@ As of 2019, Pillow development is tests - Travis CI build status (Linux) - + Travis CI build status (macOS) + src="https://img.shields.io/travis/com/python-pillow/pillow-wheels/master.svg?label=macOS%20build"> AppVeyor CI build status (Windows) diff --git a/RELEASING.md b/RELEASING.md index ad166527c..dac0ba731 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -6,7 +6,7 @@ Released quarterly on January 2nd, April 1st, July 1st and October 15th. * [ ] Open a release ticket e.g. https://github.com/python-pillow/Pillow/issues/3154 * [ ] Develop and prepare release in `master` branch. -* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), [Travis CI](https://travis-ci.org/github/python-pillow/Pillow) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in `master` branch. +* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), [Travis CI](https://travis-ci.com/github/python-pillow/Pillow) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in `master` branch. * [ ] Check that all of the wheel builds [Pillow Wheel Builder](https://github.com/python-pillow/pillow-wheels) pass the tests in Travis CI. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Update `CHANGES.rst`. @@ -41,7 +41,7 @@ Released as needed for security, installation or critical bug fixes. -* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), [Travis CI](https://travis-ci.org/github/python-pillow/Pillow) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in release branch e.g. `5.2.x`. +* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions), [Travis CI](https://travis-ci.com/github/python-pillow/Pillow) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in release branch e.g. `5.2.x`. * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), update version identifier in `src/PIL/_version.py` * [ ] Run pre-release check via `make release-test`. * [ ] Create tag for release e.g.: diff --git a/docs/about.rst b/docs/about.rst index 283135aca..e2bd75561 100644 --- a/docs/about.rst +++ b/docs/about.rst @@ -10,7 +10,7 @@ The fork author's goal is to foster and support active development of PIL throug - Publicized development activity on `GitHub`_ - Regular releases to the `Python Package Index`_ -.. _Travis CI: https://travis-ci.org/python-pillow/Pillow +.. _Travis CI: https://travis-ci.com/github/python-pillow/Pillow .. _AppVeyor: https://ci.appveyor.com/project/Python-pillow/pillow .. _GitHub Actions: https://github.com/python-pillow/Pillow/actions .. _GitHub: https://github.com/python-pillow/Pillow diff --git a/docs/index.rst b/docs/index.rst index fb59a6c00..eafcb1fec 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -9,12 +9,12 @@ Pillow for enterprise is available via the Tidelift Subscription. `Learn more Date: Fri, 30 Oct 2020 21:28:35 +0200 Subject: [PATCH 35/65] Update Travis CI status check for .com --- .github/mergify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/mergify.yml b/.github/mergify.yml index 3683bc483..fd4b5271f 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -7,8 +7,8 @@ pull_request_rules: - status-success=Test Successful - status-success=Docker Test Successful - status-success=Windows Test Successful + - status-success=Travis CI - Pull Request - status-success=continuous-integration/appveyor/pr - - status-success=continuous-integration/travis-ci/pr actions: merge: method: merge From 84052eb8c528df381642167b0cf51570295e98a6 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 31 Oct 2020 14:20:14 +1100 Subject: [PATCH 36/65] Added Fedora 33 to CI targets [ci skip] --- docs/installation.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installation.rst b/docs/installation.rst index 0a8c41ba6..bb8c06580 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -436,6 +436,8 @@ These platforms are built and tested for every change. +----------------------------------+--------------------------+-----------------------+ | Fedora 32 | 3.8 |x86-64 | +----------------------------------+--------------------------+-----------------------+ +| Fedora 33 | 3.9 |x86-64 | ++----------------------------------+--------------------------+-----------------------+ | macOS 10.15 Catalina | 3.6, 3.7, 3.8, 3.9, PyPy3|x86-64 | +----------------------------------+--------------------------+-----------------------+ | Ubuntu Linux 16.04 LTS (Xenial) | 3.6, 3.7, 3.8, 3.9, PyPy3|x86-64 | From 81078e8a0d26c9094446a64aadfa8047b8af3484 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 31 Oct 2020 14:51:41 +1100 Subject: [PATCH 37/65] Refer to "HPND License" instead of "PIL Software License" --- LICENSE | 2 +- docs/about.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 4aac532f4..eb9c41f56 100644 --- a/LICENSE +++ b/LICENSE @@ -7,7 +7,7 @@ Pillow is the friendly PIL fork. It is Copyright © 2010-2020 by Alex Clark and contributors -Like PIL, Pillow is licensed under the open source PIL Software License: +Like PIL, Pillow is licensed under the open source HPND License: By obtaining, using, and/or copying this software and/or its associated documentation, you agree that you have read, understood, and will comply diff --git a/docs/about.rst b/docs/about.rst index e2bd75561..acd361fa8 100644 --- a/docs/about.rst +++ b/docs/about.rst @@ -19,7 +19,7 @@ The fork author's goal is to foster and support active development of PIL throug License ------- -Like PIL, Pillow is `licensed under the open source PIL Software License `_ +Like PIL, Pillow is `licensed under the open source HPND License `_ Why a fork? ----------- From 8593e17b0500b847070014e219b5e2cbebd9f9c2 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 2 Nov 2020 20:58:51 +1100 Subject: [PATCH 38/65] Removed unused methods --- src/display.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/display.c b/src/display.c index 2eb4a5855..9960d829f 100644 --- a/src/display.c +++ b/src/display.c @@ -234,8 +234,6 @@ static struct PyMethodDef methods[] = { {"releasedc", (PyCFunction)_releasedc, 1}, {"frombytes", (PyCFunction)_frombytes, 1}, {"tobytes", (PyCFunction)_tobytes, 1}, - {"fromstring", (PyCFunction)_frombytes, 1}, - {"tostring", (PyCFunction)_tobytes, 1}, {NULL, NULL} /* sentinel */ }; From 1ff21dd5b0e0d4c898709e79c0d172fd2f2b743d Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 2 Nov 2020 21:47:57 +1100 Subject: [PATCH 39/65] Updated extra test images list --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index ef7520c0d..15add232b 100644 --- a/.gitignore +++ b/.gitignore @@ -81,6 +81,10 @@ docs/_build/ # Extra test images installed from pillow-depends/test_images Tests/images/README.md +Tests/images/crash_1.tif +Tests/images/crash_2.tif +Tests/images/string_dimension.tiff +Tests/images/jpeg2000 Tests/images/msp Tests/images/picins Tests/images/sunraster From ddd363f7df8374a06c00ebb44bcda746d2121264 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Mon, 2 Nov 2020 23:02:24 +0200 Subject: [PATCH 40/65] Remove excess Travis CI jobs --- .travis.yml | 46 ++++------------------------------------------ 1 file changed, 4 insertions(+), 42 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2966cdf19..e239ed496 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,24 +1,13 @@ dist: xenial language: python -cache: - pip: true - directories: - - $HOME/.cache/pre-commit +cache: pip notifications: irc: "chat.freenode.net#pil" -# Run fast lint first to get fast feedback. -# Run slower CPUs next, to give them a headstart and reduce waiting time. -# Then run the remainder. - matrix: fast_finish: true include: - - python: "3.6" - name: "Lint" - env: LINT="true" - - python: "3.6" arch: arm64 - python: "3.7" @@ -26,42 +15,15 @@ matrix: - python: "3.8" arch: s390x - - python: "pypy3.6-7.3.1" - name: "PyPy3 Xenial" - - python: "3.9" - name: "3.9 Xenial" - services: xvfb - - python: "3.8" - name: "3.8 Xenial" - services: xvfb - - python: '3.7' - name: "3.7 Xenial PYTHONOPTIMIZE=2" - env: PYTHONOPTIMIZE=2 - services: xvfb - - python: '3.6' - name: "3.6 Xenial PYTHONOPTIMIZE=1" - env: PYTHONOPTIMIZE=1 - services: xvfb - install: - | - if [ "$LINT" == "true" ]; then - python3 -m pip install tox - else - .ci/install.sh; - fi + .ci/install.sh; script: -- | - if [ "$LINT" == "true" ]; then - tox -e lint - else + - | .ci/build.sh .ci/test.sh - fi after_success: -- | - if [ "$LINT" == "" ]; then + - | .ci/after_success.sh - fi From b01567fb0b7ce9c5ffa6e2a50bbe993bac11109b Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 3 Nov 2020 17:31:59 +0200 Subject: [PATCH 41/65] Fix setting PYTHONOPTIMIZE env var --- .github/workflows/test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3da945f39..8403e2ee5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,9 +22,9 @@ jobs: ] include: - python-version: "3.6" - env: PYTHONOPTIMIZE=1 + PYTHONOPTIMIZE: 1 - python-version: "3.7" - env: PYTHONOPTIMIZE=2 + PYTHONOPTIMIZE: 2 # Include new variables for Codecov - os: ubuntu-latest codecov-flag: GHA_Ubuntu @@ -80,6 +80,8 @@ jobs: - name: Test run: | .ci/test.sh + env: + PYTHONOPTIMIZE: ${{ matrix.PYTHONOPTIMIZE }} - name: Prepare to upload errors if: failure() From 8ec8d23af47e4f718d1b3a0c1f3cbf645c1be649 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 3 Nov 2020 18:49:16 +0200 Subject: [PATCH 42/65] Install Qt on GHA --- .ci/install.sh | 6 +++--- .github/workflows/test.yml | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.ci/install.sh b/.ci/install.sh index 77dccaa4a..db259bdca 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -39,13 +39,13 @@ if [ "$GHA_PYTHON_VERSION" == "3.8" ]; then python3 -m pip install -U "setuptool if [ "$GHA_PYTHON_VERSION" == "3.9" ]; then python3 -m pip install -U "setuptools>=49.3.2" ; fi if [ "$TRAVIS_PYTHON_VERSION" == "pypy3.6-7.3.1" ]; then python3 -m pip install -U "setuptools>=49.3.2" ; fi -if [[ $TRAVIS_PYTHON_VERSION == 3.* ]]; then +# PyQt5 doesn't support PyPy3 +# Wheel doesn't yet support 3.10 +if [[ $GHA_PYTHON_VERSION == 3.* && $GHA_PYTHON_VERSION != "3.10-dev" ]]; then # arm64, ppc64le, s390x CPUs: # "ERROR: Could not find a version that satisfies the requirement pyqt5" - if [[ $TRAVIS_CPU_ARCH == "amd64" ]]; then sudo apt-get -qq install libxcb-xinerama0 pyqt5-dev-tools python3 -m pip install pyqt5 - fi fi # docs only on Python 3.9 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8403e2ee5..b33b2195a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -78,8 +78,9 @@ jobs: .ci/build.sh - name: Test - run: | - .ci/test.sh + uses: GabrielBB/xvfb-action@v1 + with: + run: .ci/test.sh env: PYTHONOPTIMIZE: ${{ matrix.PYTHONOPTIMIZE }} From 5b2da5f7b0c0186a43c810a3b44d3463487b7df1 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 4 Nov 2020 21:52:00 +1100 Subject: [PATCH 43/65] Link directly to pilfont script [ci skip] --- docs/reference/ImageFont.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/reference/ImageFont.rst b/docs/reference/ImageFont.rst index ff79bdcd8..dbab0f395 100644 --- a/docs/reference/ImageFont.rst +++ b/docs/reference/ImageFont.rst @@ -8,10 +8,10 @@ The :py:mod:`~PIL.ImageFont` module defines a class with the same name. Instance this class store bitmap fonts, and are used with the :py:meth:`PIL.ImageDraw.ImageDraw.text` method. -PIL uses its own font file format to store bitmap fonts. You can use the -:command:`pilfont` utility from -`pillow-scripts `_ -to convert BDF and PCF font descriptors (X window font formats) to this format. +PIL uses its own font file format to store bitmap fonts. You can use +`pilfont.py `_ +from `pillow-scripts `_ to convert BDF and +PCF font descriptors (X window font formats) to this format. Starting with version 1.1.4, PIL can be configured to support TrueType and OpenType fonts (as well as other font formats supported by the FreeType From 6806fa1a20e56ef8a7b2102b3f43cbc6cdf73985 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 4 Nov 2020 22:56:14 +1100 Subject: [PATCH 44/65] PNG supports append_images [ci skip] --- docs/handbook/image-file-formats.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index 2b6f9483b..e15a02aed 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -125,7 +125,7 @@ following options are available:: **append_images** A list of images to append as additional frames. Each of the images in the list can be single or multiframe images. - This is currently supported for GIF, PDF, TIFF, and WebP. + This is currently supported for GIF, PDF, PNG, TIFF, and WebP. It is also supported for ICNS. If images are passed in of relevant sizes, they will be used instead of scaling down the main image. From 85e991e5b6f99b97df612a1914ec5c42f6d16f5b Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Wed, 4 Nov 2020 15:36:02 +0200 Subject: [PATCH 45/65] Don't include test-skipping 'except' in coverage --- Tests/test_image_quantize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/test_image_quantize.py b/Tests/test_image_quantize.py index 192617a52..921c39e3f 100644 --- a/Tests/test_image_quantize.py +++ b/Tests/test_image_quantize.py @@ -21,7 +21,7 @@ def test_libimagequant_quantize(): image = hopper() try: converted = image.quantize(100, Image.LIBIMAGEQUANT) - except ValueError as ex: + except ValueError as ex: # pragma: no cover if "dependency" in str(ex).lower(): pytest.skip("libimagequant support not available") else: From d8d8a2c74d6f9611d2b92313db01e711e51b8319 Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 4 Nov 2020 13:58:33 +0000 Subject: [PATCH 46/65] set xvfb bit depth --- .github/workflows/test.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b33b2195a..51ce9d085 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -78,9 +78,12 @@ jobs: .ci/build.sh - name: Test - uses: GabrielBB/xvfb-action@v1 - with: - run: .ci/test.sh + run: | + if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then + xvfb-run -s '-screen 0 1024x768x24' .ci/test.sh + else + .ci/test.sh + fi env: PYTHONOPTIMIZE: ${{ matrix.PYTHONOPTIMIZE }} From 7e2015c75f35b07e8a050d9fbb4d8db0a472fedb Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 11 Nov 2020 21:05:57 +1100 Subject: [PATCH 47/65] init() if one of the formats is unrecognised --- src/PIL/Image.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index f9a5d82fd..8d3f6b0aa 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -2905,6 +2905,8 @@ def open(fp, mode="r", formats=None): def _open_core(fp, filename, prefix, formats): for i in formats: + if i not in OPEN: + init() try: factory, accept = OPEN[i] result = not accept or accept(prefix) From 4f0b9185a3b497a92ca9f251e8e7307bd6a37946 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 14 Nov 2020 08:41:44 +1100 Subject: [PATCH 48/65] Fixed link formatting --- src/PIL/ImageFont.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/PIL/ImageFont.py b/src/PIL/ImageFont.py index 89d180ce8..3a8a309c6 100644 --- a/src/PIL/ImageFont.py +++ b/src/PIL/ImageFont.py @@ -285,7 +285,7 @@ class FreeTypeFont: the font which language the text is in, and to apply the correct substitutions as appropriate, if available. It should be a `BCP 47 language code - ` + `_ Requires libraqm. :return: Width for horizontal, height for vertical text. @@ -338,7 +338,7 @@ class FreeTypeFont: the font which language the text is in, and to apply the correct substitutions as appropriate, if available. It should be a `BCP 47 language code - ` + `_ Requires libraqm. :param stroke_width: The width of the text stroke. @@ -398,7 +398,7 @@ class FreeTypeFont: the font which language the text is in, and to apply the correct substitutions as appropriate, if available. It should be a `BCP 47 language code - ` + `_ Requires libraqm. .. versionadded:: 6.0.0 @@ -455,7 +455,7 @@ class FreeTypeFont: the font which language the text is in, and to apply the correct substitutions as appropriate, if available. It should be a `BCP 47 language code - ` + `_ Requires libraqm. .. versionadded:: 6.0.0 @@ -539,7 +539,7 @@ class FreeTypeFont: the font which language the text is in, and to apply the correct substitutions as appropriate, if available. It should be a `BCP 47 language code - ` + `_ Requires libraqm. .. versionadded:: 6.0.0 @@ -625,7 +625,7 @@ class FreeTypeFont: the font which language the text is in, and to apply the correct substitutions as appropriate, if available. It should be a `BCP 47 language code - ` + `_ Requires libraqm. .. versionadded:: 6.0.0 From a8b6fc84a3b2155279af4da0da12625d9ebe0e4c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 17 Nov 2020 23:34:55 +1100 Subject: [PATCH 49/65] Updated libjpeg-turbo to 2.0.6 --- winbuild/build_prepare.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index 6c431f4d6..e6060b9cc 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -105,9 +105,9 @@ header = [ # dependencies, listed in order of compilation deps = { "libjpeg": { - "url": SF_MIRROR + "/project/libjpeg-turbo/2.0.5/libjpeg-turbo-2.0.5.tar.gz", - "filename": "libjpeg-turbo-2.0.5.tar.gz", - "dir": "libjpeg-turbo-2.0.5", + "url": SF_MIRROR + "/project/libjpeg-turbo/2.0.6/libjpeg-turbo-2.0.6.tar.gz", + "filename": "libjpeg-turbo-2.0.6.tar.gz", + "dir": "libjpeg-turbo-2.0.6", "build": [ cmd_cmake( [ From 7383e77bf6db75e1bbe46f2ca305837cf4b15dc9 Mon Sep 17 00:00:00 2001 From: Nulano Date: Sat, 21 Nov 2020 15:07:31 +0100 Subject: [PATCH 50/65] add line breaks in test-windows --- .github/workflows/test-windows.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 4d3619edb..9797b4895 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -91,25 +91,32 @@ jobs: - name: Build dependencies / libjpeg-turbo if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_libjpeg.cmd" + - name: Build dependencies / zlib if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_zlib.cmd" + - name: Build dependencies / LibTiff if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_libtiff.cmd" + - name: Build dependencies / WebP if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_libwebp.cmd" + # for FreeType CBDT font support - name: Build dependencies / libpng if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_libpng.cmd" + - name: Build dependencies / FreeType if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_freetype.cmd" + - name: Build dependencies / LCMS2 if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_lcms2.cmd" + - name: Build dependencies / OpenJPEG if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_openjpeg.cmd" @@ -123,9 +130,11 @@ jobs: - name: Build dependencies / HarfBuzz if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_harfbuzz.cmd" + - name: Build dependencies / FriBidi if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_fribidi.cmd" + - name: Build dependencies / Raqm if: steps.build-cache.outputs.cache-hit != 'true' run: "& winbuild\\build\\build_dep_libraqm.cmd" From 12918605c122281e8e14fd02b54f91ef2033155a Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Sun, 22 Nov 2020 12:41:17 +0200 Subject: [PATCH 51/65] Add logo to docs [CI skip] --- docs/conf.py | 2 +- docs/resources/pillow-logo.png | Bin 0 -> 15681 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/resources/pillow-logo.png diff --git a/docs/conf.py b/docs/conf.py index b5f8ad59d..a8f101141 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -143,7 +143,7 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # The name of an image file (relative to this directory) to place at the top # of the sidebar. -# html_logo = None +html_logo = "resources/pillow-logo.png" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 diff --git a/docs/resources/pillow-logo.png b/docs/resources/pillow-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc2006a6f78e04c9129bbc911ccbaabd5c1989b GIT binary patch literal 15681 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 Date: Mon, 23 Nov 2020 07:08:05 +1100 Subject: [PATCH 52/65] Updated libimagequant to 2.13.1 --- depends/install_imagequant.sh | 2 +- docs/installation.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/install_imagequant.sh b/depends/install_imagequant.sh index ae70bde8f..ed438f904 100755 --- a/depends/install_imagequant.sh +++ b/depends/install_imagequant.sh @@ -1,7 +1,7 @@ #!/bin/bash # install libimagequant -archive=libimagequant-2.13.0 +archive=libimagequant-2.13.1 ./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/master/$archive.tar.gz diff --git a/docs/installation.rst b/docs/installation.rst index bb8c06580..0d28b8347 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -177,7 +177,7 @@ Many of Pillow's features require external libraries: * **libimagequant** provides improved color quantization - * Pillow has been tested with libimagequant **2.6-2.13.0** + * Pillow has been tested with libimagequant **2.6-2.13.1** * Libimagequant is licensed GPLv3, which is more restrictive than the Pillow license, therefore we will not be distributing binaries with libimagequant support enabled. From a89705493098e009f311d212b94d7393a5a7e011 Mon Sep 17 00:00:00 2001 From: nulano Date: Tue, 24 Nov 2020 12:53:42 +0000 Subject: [PATCH 53/65] GHA: make windows cache depend on VS version --- .github/workflows/test-windows.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 9797b4895..91d41fdb0 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -64,6 +64,7 @@ jobs: run: python -m pip install -U "setuptools>=49.3.2" - name: Install dependencies + id: install run: | 7z x winbuild\depends\nasm-2.14.02-win64.zip "-o$env:RUNNER_WORKSPACE\" echo "$env:RUNNER_WORKSPACE\nasm-2.14.02" >> $env:GITHUB_PATH @@ -72,6 +73,9 @@ jobs: echo "C:\Program Files (x86)\gs\gs9.53.3\bin" >> $env:GITHUB_PATH xcopy /S /Y winbuild\depends\test_images\* Tests\images\ + + # make cache key depend on VS version + & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" | find """catalog_buildVersion""" | ForEach-Object { $a = $_.split(" ")[1]; echo "::set-output name=vs::$a" } shell: pwsh - name: Cache build @@ -80,7 +84,7 @@ jobs: with: path: winbuild\build key: - ${{ hashFiles('winbuild\build_prepare.py') }}-${{ hashFiles('.github\workflows\test-windows.yml') }}-${{ env.pythonLocation }} + ${{ hashFiles('winbuild\build_prepare.py') }}-${{ hashFiles('.github\workflows\test-windows.yml') }}-${{ env.pythonLocation }}-${{ steps.install.outputs.vs }} - name: Prepare build if: steps.build-cache.outputs.cache-hit != 'true' From e095391a3532e72d95f8df487369c99fd5ac237b Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Fri, 16 Oct 2020 17:17:51 +0300 Subject: [PATCH 54/65] Add release drafter to draft releases --- .github/release-drafter.yml | 14 ++++++++++++++ .github/workflows/release-drafter.yml | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/release-drafter.yml diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 000000000..0412bd9dd --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,14 @@ +name-template: "$NEXT_MINOR_VERSION" +tag-template: "$NEXT_MINOR_VERSION" +change-template: '- $TITLE #$NUMBER [@$AUTHOR]' + +exclude-labels: + - "changelog: skip" + +template: | + + https://pillow.readthedocs.io/en/stable/releasenotes/$NEXT_MINOR_VERSION.html + + ## Changes + + $CHANGES diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 000000000..52456597b --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,17 @@ +name: Release drafter + +on: + push: + # branches to consider in the event; optional, defaults to all + branches: + - master + +jobs: + update_release_draft: + if: github.repository == 'python-pillow/Pillow' + runs-on: ubuntu-latest + steps: + # Drafts your next release notes as pull requests are merged into "master" + - uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From e377d243b167dc1a053c01b3fd21765425f78411 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 24 Nov 2020 23:25:20 +0200 Subject: [PATCH 55/65] Remove soon-EOL Amazon Linux 1 and CentOS 6 --- .github/workflows/test-docker.yml | 2 -- docs/installation.rst | 4 ---- 2 files changed, 6 deletions(-) diff --git a/.github/workflows/test-docker.yml b/.github/workflows/test-docker.yml index ddec1bee4..6acb6cf70 100644 --- a/.github/workflows/test-docker.yml +++ b/.github/workflows/test-docker.yml @@ -15,10 +15,8 @@ jobs: ubuntu-18.04-bionic-amd64, ubuntu-20.04-focal-amd64, debian-10-buster-x86, - centos-6-amd64, centos-7-amd64, centos-8-amd64, - amazon-1-amd64, amazon-2-amd64, fedora-32-amd64, fedora-33-amd64, diff --git a/docs/installation.rst b/docs/installation.rst index bb8c06580..279d78704 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -422,12 +422,8 @@ These platforms are built and tested for every change. +----------------------------------+--------------------------+-----------------------+ | Arch | 3.8 |x86-64 | +----------------------------------+--------------------------+-----------------------+ -| Amazon Linux 1 | 3.6 |x86-64 | -+----------------------------------+--------------------------+-----------------------+ | Amazon Linux 2 | 3.7 |x86-64 | +----------------------------------+--------------------------+-----------------------+ -| CentOS 6 | 3.6 |x86-64 | -+----------------------------------+--------------------------+-----------------------+ | CentOS 7 | 3.6 |x86-64 | +----------------------------------+--------------------------+-----------------------+ | CentOS 8 | 3.6 |x86-64 | From 5abdbe12313162e40e6e9e65e7793d808fad8fb0 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Wed, 25 Nov 2020 00:02:34 +0200 Subject: [PATCH 56/65] Sort for easier reference --- .github/workflows/test-docker.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-docker.yml b/.github/workflows/test-docker.yml index 6acb6cf70..f6814f932 100644 --- a/.github/workflows/test-docker.yml +++ b/.github/workflows/test-docker.yml @@ -11,15 +11,15 @@ jobs: matrix: docker: [ alpine, + amazon-2-amd64, arch, - ubuntu-18.04-bionic-amd64, - ubuntu-20.04-focal-amd64, - debian-10-buster-x86, centos-7-amd64, centos-8-amd64, - amazon-2-amd64, + debian-10-buster-x86, fedora-32-amd64, fedora-33-amd64, + ubuntu-18.04-bionic-amd64, + ubuntu-20.04-focal-amd64, ] dockerTag: [master] From ece157b09cb5418e69de1153b892203ebd60feb3 Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 25 Nov 2020 06:58:13 +0000 Subject: [PATCH 57/65] install raqm on macos --- .github/workflows/macos-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos-install.sh b/.github/workflows/macos-install.sh index fb8869c7d..afcb9a5a7 100755 --- a/.github/workflows/macos-install.sh +++ b/.github/workflows/macos-install.sh @@ -2,7 +2,7 @@ set -e -brew install libtiff libjpeg openjpeg libimagequant webp little-cms2 freetype openblas +brew install libtiff libjpeg openjpeg libimagequant webp little-cms2 freetype openblas libraqm PYTHONOPTIMIZE=0 python3 -m pip install cffi python3 -m pip install coverage From 74048f9b4ffd0bfee645cd13f276a888434332d1 Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 25 Nov 2020 07:27:11 +0000 Subject: [PATCH 58/65] remove FT 2.3 from tests --- Tests/test_imagefont.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index 7824b7f53..f779463e6 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -35,14 +35,6 @@ class TestImageFont: # Freetype has different metrics depending on the version. # (and, other things, but first things first) METRICS = { - (">=2.3", "<2.4"): { - "multiline": 30, - "textsize": 12, - "getters": (13, 16), - "mask": (107, 13), - "multiline-anchor": 6, - "getlength": (36, 27, 27, 33), - }, (">=2.7",): { "multiline": 6.2, "textsize": 2.5, From 86993df834ace1e6bbe0a05ebd8d288a601eeb9d Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 25 Nov 2020 07:38:13 +0000 Subject: [PATCH 59/65] remove duplicate values --- Tests/test_imagefont.py | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index f779463e6..06ed42658 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -35,22 +35,8 @@ class TestImageFont: # Freetype has different metrics depending on the version. # (and, other things, but first things first) METRICS = { - (">=2.7",): { - "multiline": 6.2, - "textsize": 2.5, - "getters": (12, 16), - "mask": (108, 13), - "multiline-anchor": 4, - "getlength": (36, 21, 24, 33), - }, - "Default": { - "multiline": 0.5, - "textsize": 0.5, - "getters": (12, 16), - "mask": (108, 13), - "multiline-anchor": 4, - "getlength": (36, 24, 24, 33), - }, + (">=2.7",): {"multiline": 6.2, "textsize": 2.5, "getlength": (36, 21, 24, 33)}, + "Default": {"multiline": 0.5, "textsize": 0.5, "getlength": (36, 24, 24, 33)}, } @classmethod @@ -387,7 +373,7 @@ class TestImageFont: mask = transposed_font.getmask(text) # Assert - assert mask.size == self.metrics["mask"][::-1] + assert mask.size == (13, 108) def test_unrotated_transposed_font_get_mask(self): # Arrange @@ -400,7 +386,7 @@ class TestImageFont: mask = transposed_font.getmask(text) # Assert - assert mask.size == self.metrics["mask"] + assert mask.size == (108, 13) def test_free_type_font_get_name(self): # Arrange @@ -444,7 +430,7 @@ class TestImageFont: mask = font.getmask(text) # Assert - assert mask.size == self.metrics["mask"] + assert mask.size == (108, 13) def test_load_path_not_found(self): # Arrange @@ -625,7 +611,7 @@ class TestImageFont: assert t.font.glyphs == 4177 assert t.getsize("A") == (12, 16) assert t.getsize("AB") == (24, 16) - assert t.getsize("M") == self.metrics["getters"] + assert t.getsize("M") == (12, 16) assert t.getsize("y") == (12, 20) assert t.getsize("a") == (12, 16) assert t.getsize_multiline("A") == (12, 16) @@ -861,7 +847,7 @@ class TestImageFont: ) with Image.open(target) as expected: - assert_image_similar(im, expected, self.metrics["multiline-anchor"]) + assert_image_similar(im, expected, 4) def test_anchor_invalid(self): font = self.get_font() From fba3ece341566b625f0e8ce699cd35fb27479478 Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Thu, 26 Nov 2020 01:01:38 +1100 Subject: [PATCH 60/65] Updated libraqm to 0.7.1 --- winbuild/build_prepare.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index e6060b9cc..fd5ac40f0 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -300,9 +300,9 @@ deps = { "libs": [r"*.lib"], }, "libraqm": { - "url": "https://github.com/HOST-Oman/libraqm/archive/v0.7.0.zip", - "filename": "libraqm-0.7.0.zip", - "dir": "libraqm-0.7.0", + "url": "https://github.com/HOST-Oman/libraqm/archive/v0.7.1.zip", + "filename": "libraqm-0.7.1.zip", + "dir": "libraqm-0.7.1", "build": [ cmd_copy(r"{winbuild_dir}\raqm.cmake", r"CMakeLists.txt"), cmd_cmake(), From dd1a514346841ce3baddd78be5806806a4141fae Mon Sep 17 00:00:00 2001 From: nulano Date: Wed, 25 Nov 2020 21:40:16 +0000 Subject: [PATCH 61/65] update FriBiDi to 1.0.10 --- winbuild/build_prepare.py | 6 +++--- winbuild/fribidi.cmake | 2 +- winbuild/raqm.cmake | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index fd5ac40f0..178194ffe 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -287,9 +287,9 @@ deps = { "libs": [r"*.lib"], }, "fribidi": { - "url": "https://github.com/fribidi/fribidi/archive/v1.0.9.zip", - "filename": "fribidi-1.0.9.zip", - "dir": "fribidi-1.0.9", + "url": "https://github.com/fribidi/fribidi/archive/v1.0.10.zip", + "filename": "fribidi-1.0.10.zip", + "dir": "fribidi-1.0.10", "build": [ cmd_copy(r"{winbuild_dir}\fribidi.cmake", r"CMakeLists.txt"), cmd_cmake(), diff --git a/winbuild/fribidi.cmake b/winbuild/fribidi.cmake index 112174731..47ab2c329 100644 --- a/winbuild/fribidi.cmake +++ b/winbuild/fribidi.cmake @@ -99,4 +99,4 @@ add_library(fribidi STATIC ${FRIBIDI_SOURCES_GENERATED}) fribidi_definitions(fribidi) target_compile_definitions(fribidi - PUBLIC -DFRIBIDI_ENTRY=extern) + PUBLIC -DFRIBIDI_LIB_STATIC) diff --git a/winbuild/raqm.cmake b/winbuild/raqm.cmake index e8e71800e..82c9cdc70 100644 --- a/winbuild/raqm.cmake +++ b/winbuild/raqm.cmake @@ -7,7 +7,7 @@ find_library(fribidi NAMES fribidi) find_library(harfbuzz NAMES harfbuzz) find_library(freetype NAMES freetype) -add_definitions(-DFRIBIDI_ENTRY=extern) +add_definitions(-DFRIBIDI_LIB_STATIC) function(raqm_conf) From 6f64eef699b571874b34641c6561c8a948e81a12 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 27 Nov 2020 15:12:14 +1100 Subject: [PATCH 62/65] Updated instructions now that draft releases may exist [ci skip] --- RELEASING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index dac0ba731..5e00e5724 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -24,7 +24,7 @@ Released quarterly on January 2nd, April 1st, July 1st and October 15th. ``` * [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Upload all binaries and source distributions e.g. `twine upload dist/Pillow-5.2.0*` -* [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) +* [ ] Publish the [release on GitHub](https://github.com/python-pillow/Pillow/releases) * [ ] In compliance with [PEP 440](https://www.python.org/dev/peps/pep-0440/), increment and append `.dev0` to version identifier in `src/PIL/_version.py` ## Point Release @@ -56,7 +56,7 @@ Released as needed for security, installation or critical bug fixes. ``` * [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) * [ ] Upload all binaries and source distributions e.g. `twine upload dist/Pillow-5.2.1*` -* [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) +* [ ] Publish the [release on GitHub](https://github.com/python-pillow/Pillow/releases) ## Embargoed Release @@ -80,7 +80,7 @@ Released as needed privately to individual vendors for critical security-related make sdist ``` * [ ] Create [binary distributions](https://github.com/python-pillow/Pillow/blob/master/RELEASING.md#binary-distributions) -* [ ] Create a [new release on GitHub](https://github.com/python-pillow/Pillow/releases/new) +* [ ] Publish the [release on GitHub](https://github.com/python-pillow/Pillow/releases) ## Binary Distributions From 3d80b743427f3b93722f27b2c2fbdada7890d45f Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 27 Nov 2020 18:50:31 +1100 Subject: [PATCH 63/65] Updated macOS tested Pillow versions [ci skip] --- docs/installation.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installation.rst b/docs/installation.rst index bb8c06580..de97d7676 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -469,6 +469,8 @@ These platforms have been reported to work at the versions mentioned. +----------------------------------+------------------------------+--------------------------------+-----------------------+ |**Operating system** |**Tested Python versions** |**Latest tested Pillow version**|**Tested processors** | +----------------------------------+------------------------------+--------------------------------+-----------------------+ +| macOS 11.0 Big Sur | 3.6, 3.7, 3.8, 3.9 | 8.0.1 |x86-64 | ++----------------------------------+------------------------------+--------------------------------+-----------------------+ | macOS 10.15 Catalina | 3.6, 3.7, 3.8, 3.9 | 8.0.1 |x86-64 | | +------------------------------+--------------------------------+ + | | 3.5 | 7.2.0 | | From cf9158f635a892c551961bf3ed6f8855f22cc0ce Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 28 Nov 2020 12:10:20 +1100 Subject: [PATCH 64/65] Corrected syntax [ci skip] --- docs/handbook/writing-your-own-file-decoder.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/handbook/writing-your-own-file-decoder.rst b/docs/handbook/writing-your-own-file-decoder.rst index 97cb5abe1..03b4ca601 100644 --- a/docs/handbook/writing-your-own-file-decoder.rst +++ b/docs/handbook/writing-your-own-file-decoder.rst @@ -157,7 +157,7 @@ The raw decoder The ``raw`` decoder is used to read uncompressed data from an image file. It can be used with most uncompressed file formats, such as PPM, BMP, uncompressed TIFF, and many others. To use the raw decoder with the -:py:func:`PIL.Image.frombytes` function, use the following syntax:: +:py:func:`PIL.Image.frombytes` function, use the following syntax: .. code-block:: python From ce1e73e5a87b2acc4b1356fada4d042fdb1e99f1 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 30 Nov 2020 01:20:51 +1100 Subject: [PATCH 65/65] Updated libraqm to 0.7.1 --- depends/install_raqm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/install_raqm.sh b/depends/install_raqm.sh index 38a5bfd52..a7ce16792 100755 --- a/depends/install_raqm.sh +++ b/depends/install_raqm.sh @@ -2,7 +2,7 @@ # install raqm -archive=raqm-0.7.0 +archive=raqm-0.7.1 ./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/master/$archive.tar.gz