Bug 1221251

Summary: devel:languages:nodejs/nodejs-electron: bogus 0x1f character in licence field
Product: [openSUSE] openSUSE.org Reporter: sergio Basto <sergio>
Component: 3rd party softwareAssignee: Bruno Pitrus <brunopitrus>
Status: RESOLVED FIXED QA Contact: E-mail List <screening-team-bugs>
Severity: Normal    
Priority: P5 - None CC: brunopitrus
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description sergio Basto 2024-03-11 23:18:19 UTC
I hope this is the quick way to report 

in nodejs-electorn.js [1] instead use %define AndZlib %{quote: AND Zlib} use  
%{!?with_system_minizip: AND Zlib } [2] to avoid  a forbidden character in License 

I got this error with createrepo_c 
https://github.com/fedora-copr/copr/issues/3163

https://github.com/rpm-software-management/createrepo_c/pull/165
https://github.com/rpm-software-management/createrepo_c/pull/425
or 
https://github.com/rpm-software-management/createrepo_c/issues/327


[1]
%if 0%{?suse_version} || 0%{?fedora} < 40
%bcond_without system_minizip
%define AndZlib %{nil}
%else
%bcond_with system_minizip
%define AndZlib %{quote: AND Zlib}
%endif

[2]
License:        AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11 %{!?with_system_minizip: AND Zlib}
Comment 1 Bruno Pitrus 2024-03-12 13:58:25 UTC
Cannot reproduce this, the package builds correctly:

λ osc getbinaries devel:languages:nodejs nodejs-electron Fedora_Rawhide x86_64
λ rpm -qvpi binaries/nodejs-electron-28.2.6-2.4.x86_64.rpm | grep License
License     : AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11 AND Zlib
Comment 2 sergio Basto 2024-03-12 14:46:02 UTC
the problem is with createrepo_c and dnf XML metadata 

download one F40+ rpm and run createrepo_c . 

createrepo_c .

C_CREATEREPOLIB: Critical: Cannot dump XML for nodejs-electron-doc (6551f31fd59ced0f6832fefce64a94deb9230dae3b74a871311e1b1d71a4a635): Forbidden control chars found (ASCII values <32 except 9, 10 and 13).

with my https://github.com/rpm-software-management/createrepo_c/pull/425

Package RPM license AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11 AND Zlib contains forbidden control chars (ASCII values <32 except 9, 10 and 13).
Comment 3 Bruno Pitrus 2024-03-12 19:47:03 UTC
Thanks for giving that detail. I ran the rpm output through hexdump and indeed there is a 0x1F character there. Not sure where it's getting from.
Comment 4 sergio Basto 2024-03-12 21:58:59 UTC
just replace [1] with [2] :)

[1]
%if 0%{?suse_version} || 0%{?fedora} < 40
%bcond_without system_minizip
%define AndZlib %{nil}
%else
%bcond_with system_minizip
%define AndZlib %{quote: AND Zlib}
%endif

[2]
License:        AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11 %{!?with_system_minizip: AND Zlib}
Comment 5 sergio Basto 2024-03-12 22:04:36 UTC
by another words 
just replace : %define AndZlib %{nil} and %define AndZlib %{quote: AND Zlib} 

with : %{!?with_system_minizip: AND Zlib} 

note that %{without_system_minizip: AND Zlib} doesn't work [1]

[1]
https://github.com/rpm-software-management/rpm/issues/1929
Comment 6 Bruno Pitrus 2024-03-13 07:02:32 UTC
done