Skip to content

Commit f063fa1

Browse files
committed
Added llhttp package to SPECS-EXTENDED
1 parent 005bbd8 commit f063fa1

File tree

5 files changed

+268
-1
lines changed

5 files changed

+268
-1
lines changed

LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LICENSES-AND-NOTICES/SPECS/data/licenses.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -847,6 +847,7 @@
847847
"linuxptp",
848848
"lksctp-tools",
849849
"lldpd",
850+
"llhttp",
850851
"lockdev",
851852
"logwatch",
852853
"lpsolve",
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"Signatures": {
3+
"llhttp-9.3.0.tar.gz": "d6612eefc06a32c778b1d3044cb07aac49eed8f14db689ded91c609b94d51502",
4+
"llhttp-release-v9.3.0.tar.gz": "1a2b45cb8dda7082b307d336607023aa65549d6f060da1d246b1313da22b685a"
5+
}
6+
}

SPECS-EXTENDED/llhttp/llhttp.spec

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
# This package is rather exotic. The compiled library is a typical shared
2+
# library with a C API. However, it has only a tiny bit of C source code. Most
3+
# of the library is written in TypeScript, which is transpiled to C, via LLVM
4+
# IR, using llparse (https://github.com/nodejs/llparse)—all of which happens
5+
# within the NodeJS ecosystem.
6+
#
7+
# Historically, this package “built like” a NodeJS package, with a
8+
# dev-dependency bundle from NPM that we used to transpile the original
9+
# TypeScript sources to C downstream. Since 9.3.0, it is no longer practical to
10+
# re-generate the C sources from Typescript without using pre-compiled esbuild
11+
# executables from NPM, so we use the upstream “release” tarball with
12+
# pre-generated C source and header files included.
13+
#
14+
# That allows this package to be built without running the NodeJS/Typescript
15+
# machinery in the build (via a large “dev” dependency bundle. However, this
16+
# release archive lacks the original TypeScript source code for the generated C
17+
# code, so we need to include this in an additional source. For details, see:
18+
# https://docs.fedoraproject.org/en-US/packaging-guidelines/what-can-be-packaged/#pregenerated-code
19+
20+
# This package is a dependency of libgit2 which in turn is one of rpmautospec.
21+
# When upgrading to a version with a new soname, this package needs to provide
22+
# both in order to bootstrap itself and libgit2. Set %%bootstrap and
23+
# %%previous_so_version for this (and unset and rebuild later).
24+
#
25+
%bcond bootstrap 0
26+
%global so_version 9.3
27+
%global previous_so_version 9.2
28+
29+
Name: llhttp
30+
Version: 9.3.0
31+
Release: 6
32+
Summary: Port of http_parser to llparse
33+
Vendor: Microsoft Corporation
34+
Distribution: Azure Linux
35+
36+
# SPDX
37+
License: MIT
38+
URL: https://github.com/nodejs/llhttp
39+
Source0: %{url}/archive/refs/tags/release/v%{version}/llhttp-release-v%{version}.tar.gz
40+
# Contains the original TypeScript sources, which we must include in the source
41+
# RPM per packaging guidelines.
42+
Source1: %{url}/archive/v%{version}/llhttp-%{version}.tar.gz
43+
44+
# For compiling the C library
45+
BuildRequires: cmake
46+
BuildRequires: gcc
47+
# There is no C++ involved, but CMake searches for a C++ compiler.
48+
BuildRequires: gcc-c++
49+
50+
%if %{with bootstrap}
51+
%if "%{_lib}" == "lib64"
52+
BuildRequires: libllhttp.so.%{previous_so_version}()(64bit)
53+
%else
54+
BuildRequires: libllhttp.so.%{previous_so_version}
55+
%endif
56+
%endif
57+
58+
%description
59+
This project is a port of http_parser to TypeScript. llparse is used to
60+
generate the output C source file, which could be compiled and linked with the
61+
embedder's program (like Node.js).
62+
63+
%package devel
64+
Summary: Development files for llhttp
65+
Requires: llhttp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
66+
67+
%description devel
68+
The llhttp-devel package contains libraries and header files for
69+
developing applications that use llhttp.
70+
71+
%prep
72+
%autosetup -n llhttp-release-v%{version}
73+
74+
%conf
75+
%cmake
76+
77+
%build
78+
%cmake_build
79+
80+
%install
81+
%cmake_install
82+
83+
%if %{with bootstrap}
84+
cp -vp %{_libdir}/libllhttp.so.%{previous_so_version}{,.*} \
85+
%{buildroot}%{_libdir}
86+
%endif
87+
88+
# The same obstacles that prevent us from re-generating the C sources from
89+
# TypeScript also prevent us from running the tests, which rely on NodeJS.
90+
91+
%files
92+
# Files LICENSE and LICENSE-MIT are duplicates.
93+
%license LICENSE
94+
%doc README.md
95+
%{_libdir}/libllhttp.so.%{so_version}{,.*}
96+
%if %{with bootstrap}
97+
%{_libdir}/libllhttp.so.%{previous_so_version}{,.*}
98+
%endif
99+
100+
%files devel
101+
%{_includedir}/llhttp.h
102+
%{_libdir}/libllhttp.so
103+
%{_libdir}/pkgconfig/libllhttp.pc
104+
%{_libdir}/cmake/llhttp/
105+
106+
%changelog
107+
* Tue Dec 23 2025 Aditya Singh <v-aditysing@microsoft.com> - 9.3.0-6
108+
- Initial Azure Linux import from Fedora 44 (license: MIT).
109+
- License verified.
110+
111+
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 9.3.0-5
112+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
113+
114+
* Mon May 19 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 9.3.0-4
115+
- Non-bootstrap build
116+
117+
* Mon May 19 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 9.3.0-3
118+
- Minor style tweaks to bootstrapping machinery
119+
120+
* Mon May 19 2025 Nils Philippsen <nils@redhat.com> - 9.3.0-2
121+
- Make package bootstrappable for rpmautospec
122+
123+
* Sun May 04 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 9.3.0-1
124+
- Update to 9.3.0 (close RHBZ#2363919)
125+
126+
* Tue Apr 29 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 9.2.1-6
127+
- Correct a term in the SourceLicense
128+
129+
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 9.2.1-5
130+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
131+
132+
* Mon Dec 16 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.2.1-4
133+
- Omit build-time license auditing on i686
134+
- This keeps llhttp from blocking licensecheck’s dependencies or askalono-
135+
cli from dropping i686 support.
136+
137+
* Fri Dec 13 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.2.1-3
138+
- Add a SourceLicense field
139+
- Re-generate the dev-dependencies bundle
140+
141+
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.2.1-2
142+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
143+
144+
* Thu Apr 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.2.1-1
145+
- Update to 9.2.1 (close RHBZ#2273352, fix CVE-2024-27982)
146+
- Switch from xz to zstd compression for the “dev” bundle archive
147+
148+
* Thu Mar 21 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.2.0-4
149+
- Format check-null-licenses with “ruff format”
150+
151+
* Wed Feb 14 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.2.0-1
152+
- Update to 9.2.0 (close RHBZ#2263250)
153+
154+
* Wed Feb 14 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1.3-6
155+
- Compress the dev dependency bundle with xz instead of gzip
156+
157+
* Sun Feb 11 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 9.1.3-5
158+
- Avoid licensecheck dependency in RHEL builds
159+
160+
* Thu Feb 08 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1.3-4
161+
- Better audit (and document auditing of) dev dependency licenses
162+
163+
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.1.3-3
164+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
165+
166+
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.1.3-2
167+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
168+
169+
* Thu Oct 05 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1.3-1
170+
- Update to 9.1.3 (close RHBZ#2242220)
171+
172+
* Tue Oct 03 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1.2-1
173+
- Update to 9.1.2
174+
175+
* Thu Sep 14 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1.1-1
176+
- Update to 9.1.1
177+
178+
* Thu Sep 14 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 9.1.0-1
179+
- Update to 9.1.0
180+
181+
* Mon Aug 21 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 9.0.1-1
182+
- Update to 9.0.1 (close RHBZ#2228290)
183+
184+
* Tue Aug 01 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 9.0.0-1
185+
- Update to 9.0.0
186+
187+
* Sat Jul 29 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 8.1.1-1
188+
- Update to 8.1.1 (close RHBZ#2216591)
189+
190+
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.1.0-6
191+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
192+
193+
* Sat Jun 03 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 8.1.0-5
194+
- Remove explicit %%set_build_flags, not needed since F36
195+
196+
* Wed Feb 15 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 8.1.0-4
197+
- Fix test compiling/execution
198+
199+
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.1.0-3
200+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
201+
202+
* Tue Dec 20 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 8.1.0-2
203+
- Indicate dirs. in files list with trailing slashes
204+
205+
* Sat Oct 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 8.1.0-1
206+
- Update to 8.1.0 (close RHBZ#2131175)
207+
208+
* Sat Oct 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 8.0.0-1
209+
- Update to 8.0.0 (close RHBZ#2131175)
210+
211+
* Sat Oct 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.10-2
212+
- Drop workarounds for Python 3.10 and older
213+
214+
* Thu Sep 29 2022 Stephen Gallagher <sgallagh@redhat.com> - 6.0.10-1
215+
- Update to v6.0.10
216+
217+
* Thu Aug 25 2022 Miro Hrončok <miro@hroncok.cz> - 6.0.9-2
218+
- Use tomllib/python-tomli instead of dead upstream python-toml
219+
220+
* Thu Aug 11 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.9-1
221+
- Update to 6.0.9 (close RHBZ#2116231)
222+
- Bumped .so version from downstream 0.1 to upstream 6.0
223+
- Better upstream support for building and installing a shared library
224+
- The -devel package now contains a .pc file
225+
- Tests are now built with gcc and fully respect distro flags
226+
227+
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.6-8
228+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
229+
230+
* Wed Apr 20 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.6-7
231+
- Drop “forge” macros, which aren’t really doing much here
232+
233+
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.6-6
234+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
235+
236+
* Fri Dec 24 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.6-5
237+
- Add a note about LLHTTP_STRICT_MODE to the package description
238+
239+
* Fri Dec 24 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.6-4
240+
- Revert "Build with LLHTTP_STRICT_MODE enabled"
241+
242+
* Wed Dec 22 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.6-3
243+
- Build with LLHTTP_STRICT_MODE enabled
244+
245+
* Tue Dec 14 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.6-2
246+
- Dep. on cmake-filesystem is now auto-generated
247+
248+
* Mon Dec 06 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 6.0.6-1
249+
- Initial package (close RHBZ#2029461)
250+
## END: Generated by rpmautospec

cgmanifest.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12336,6 +12336,16 @@
1233612336
}
1233712337
}
1233812338
},
12339+
{
12340+
"component": {
12341+
"type": "other",
12342+
"other": {
12343+
"name": "llhttp",
12344+
"version": "9.3.0",
12345+
"downloadUrl": "https://github.com/nodejs/llhttp/archive/refs/tags/release/v9.3.0/llhttp-release-v9.3.0.tar.gz"
12346+
}
12347+
}
12348+
},
1233912349
{
1234012350
"component": {
1234112351
"type": "other",

0 commit comments

Comments
 (0)