diff --git a/0001-TagsCheck-handle-license-exception-in-grouping.patch b/0001-TagsCheck-handle-license-exception-in-grouping.patch new file mode 100644 index 0000000..022c079 --- /dev/null +++ b/0001-TagsCheck-handle-license-exception-in-grouping.patch @@ -0,0 +1,101 @@ +From 7d707f7f370c31f3d9841415c1458a2d21640a15 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Fri, 3 Mar 2023 12:56:37 -0500 +Subject: [PATCH] TagsCheck: handle license exception in grouping + +A valid license exception which is in a grouping is reported as invalid. +This is due to the trailing ')' being included in the regex. The +following license: + + (GPL-2.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0) AND MIT + +returns: + + W: invalid-license-exception Qt-GPL-exception-1.0) + +Adjust the license_exception_regex to exclude trailing parenthesis. + +Fixes: https://bugzilla.redhat.com/2175241 +--- + rpmlint/checks/TagsCheck.py | 2 +- + .../valid-exception-in-grouping-1.0-1.src.rpm | Bin 0 -> 6615 bytes + test/test_tags.py | 12 ++++++++++++ + 3 files changed, 13 insertions(+), 1 deletion(-) + create mode 100644 test/source/valid-exception-in-grouping-1.0-1.src.rpm + +diff --git a/rpmlint/checks/TagsCheck.py b/rpmlint/checks/TagsCheck.py +index ad9a35f2..923538ba 100644 +--- a/rpmlint/checks/TagsCheck.py ++++ b/rpmlint/checks/TagsCheck.py +@@ -21,7 +21,7 @@ lib_package_regex = re.compile(r'(?:^(?:compat-)?lib.*?(\.so.*)?|libs?[\d-]*)$', + leading_space_regex = re.compile(r'^\s+') + pkg_config_regex = re.compile(r'^/usr/(?:lib\d*|share)/pkgconfig/') + license_regex = re.compile(r'\(([^)]+)\)|\s(?:and|or|AND|OR)\s') +-license_exception_regex = re.compile(r'(\S+)\s(?:WITH|with)\s(\S+)') ++license_exception_regex = re.compile(r'(\S+)\s(?:WITH|with)\s([^)]+)') + invalid_version_regex = re.compile(r'([0-9](?:rc|alpha|beta|pre).*)', re.IGNORECASE) + # () are here for grouping purpose in the regexp + tag_regex = re.compile(r'^((?:Auto(?:Req|Prov|ReqProv)|Build(?:Arch(?:itectures)?|Root)|(?:Build)?Conflicts|(?:Build)?(?:Pre)?Requires|Copyright|(?:CVS|SVN)Id|Dist(?:ribution|Tag|URL)|DocDir|(?:Build)?Enhances|Epoch|Exclu(?:de|sive)(?:Arch|OS)|Group|Icon|License|Name|No(?:Patch|Source)|Obsoletes|Packager|Patch\d*|Prefix(?:es)?|Provides|(?:Build)?Recommends|Release|RHNPlatform|Serial|Source\d*|(?:Build)?Suggests|Summary|(?:Build)?Supplements|(?:Bug)?URL|Vendor|Version)(?:\([^)]+\))?:)\s*\S', re.IGNORECASE) +diff --git a/test/source/valid-exception-in-grouping-1.0-1.src.rpm b/test/source/valid-exception-in-grouping-1.0-1.src.rpm +new file mode 100644 +index 0000000000000000000000000000000000000000..c74b2f048a8d45b224df143f7a77f75d21eba87c +GIT binary patch +literal 6615 +zcmeI0d2AF_9LL`tYB?^B-%10R)j40whud2@sEvN(e{fwp7bu1rdSz`?U{56EX2$capc?{mk$8uHT!T +zO}@?RE*$j{;vt@?RwPUVtj1x9R5%_Bgkyoqs(5uG9IFh3f?^;<{`K;Z`~IHu)`mt8 +zzxMzknOop{E;RgJ2bu{}cLBX08eWj==?02Cw4Hs8pnhl(&Od=df0BR({e2ffG5#7f +z=0>O><#FLNZ2X)5L=W4w;@L>^zu8P5Up_i?76xW4_I8Ru^}yPUCJu)l}i1I6(VbN-UYv3?jo +z1B&CH;(Qhq@_kvH&$q{YLy+^yJ^W4rekTc$3YJU>ZoEn;4LdBBWJ1cS6sCn!lLRX! +z+%Zapa7?g-+g9m+>IA<4>Qy#H<5h`C;TQ|1SUhIMEXPVkf-#nY_2QB@RQ!2cC{58I +z8B#Q+G$4UD8;?b%3uR-4zwr2yiejNW6~LQ!R*P2dP+`>Q0^x~q1pzsbAF-;Fj8w!a +z6`rk*M8NH3RYFcGIwLO;x8pTICmziuMOKt0$)r>&k<1=3g4I~jM1*08K!@rYQe$W@ +zXv*z%*4DM{XLX2$43(KwQcT-6Ma6Yw$5v%ma&%GBsVkX^tDDS}R9m*0?nunF3`eDs +zEXk@ZiS6SN0Tx5B!TYiGUZ(~RK}T#=iD)Ej56O>56ICpkWVA3GVWV*iLkW-Joq}*B +z95CFIgJMtte_IJ^Z9caW4Cz6zyQ$}7-ne*_31u-RMRUAq)I* +znOeO18DdDcWs@nkLJbQ}&$1O6z|=z;(;QWnMb)xI$xAG +z)&9rT+IjyI~m +zI<4P=#ixevY{(e&(PCwPgVICVT>WM(yE1)N;PA<}A34)oUcI;DHb*|?ESzvLYgN;! +zf!&V`-b8BmvSiuRHN6+qe3dbHLSe6U^ZM3D2cK9| +zxwGlSxr-h0mkOP;b}j!pFzE8;ik7~OlRs$~pnN}9oV9oH&nFfY6%RjPpKWdFfA#Fm +f-9H}c^;`3rX{W~zTe@S*l@7<2XFs - 2.4.0-5 +- handle license exception in grouping (rhbz#2175241) + * Fri Jan 20 2023 Fedora Release Engineering - 2.4.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild