|
| 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 |
0 commit comments