Compare commits

...
Sign in to create a new pull request.

91 commits

Author SHA1 Message Date
Ingvar Hagelund
11c7b16970 just a missing detail in the changelog 2026-07-30 11:22:52 +02:00
Fedora Release Engineering
952d560679 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:22:22 +00:00
Yaakov Selkowitz
9b2c40db7b Rebuilt for openssl 4.0 2026-06-12 20:01:38 -04:00
Ingvar Hagelund
6453d1aed3 New upstream release: A security relase
Includes fix for VSV00019
2026-05-21 14:09:22 +02:00
Ingvar Hagelund
30831d4081 New upstream release: A bugfix release 2026-05-21 13:11:43 +02:00
Yaakov Selkowitz
c37e749527 Apply openssl 4.0 fix on RHEL 11+ (ELN) 2026-04-30 15:06:46 -04:00
Ingvar Hagelund
6242c790a2 tiny buildfix for s390x 2026-04-29 12:32:49 +02:00
Ingvar Hagelund
d6a82dc37d Add patch for openssl-4.0.0 in rawhide 2026-04-15 00:59:07 +02:00
Ingvar Hagelund
5e78b1c603 all tests run fine in lab. Push it 2026-04-13 21:58:33 +02:00
Ingvar Hagelund
d6984113cc update abi and vrt to match source 2026-04-13 13:16:13 +02:00
Ingvar Hagelund
34abd9d517 New upstream release
Includes fix for VEV00002
2026-04-13 13:14:00 +02:00
Ingvar Hagelund
de698b6049 all tests run as they should offline. Build without check on the fedora buildesr. 2026-04-07 21:47:05 +02:00
Ingvar Hagelund
1e548bdc94 added pkg-varnish-cache checkout to sources 2026-04-07 17:09:11 +02:00
Ingvar Hagelund
512d8988cb added varnish-9.0.0.tar.gz 2026-04-07 17:03:39 +02:00
Ingvar Hagelund
af5a41d60b New upstream release 9.0.0, includes fix for VSV00018 2026-04-07 17:01:03 +02:00
Ingvar Hagelund
1aa8e9e4d1 ix86 build fix 2026-03-27 20:27:05 +01:00
Ingvar Hagelund
59f403810b New upstream releasem. Includes fix for VSV00018 2026-03-27 17:38:57 +01:00
Yaakov Selkowitz
e4ffe6519b Build with -Wno-error=discarded-qualifiers for ELN
ELN (the future RHEL 11) tracks rawhide and has the same GCC version.
2026-02-02 10:18:50 -05:00
Fedora Release Engineering
1a0b5aa709 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 19:47:34 +00:00
Ingvar Hagelund
0745cba0ed Added cflag -Wno-error=discarded-qualifiers to build on fedora while waiting for upstream 2026-01-05 17:41:17 +01:00
Ingvar Hagelund
74187d71a3 jemalloc should follow, as varnish may be built with jemalloc included 2025-12-11 14:41:55 +01:00
Ingvar Hagelund
a9160acc32 new sources for varnish-8.0.0 2025-12-11 13:54:02 +01:00
Ingvar Hagelund
19427117f7 new pkg-varnish-cache checkout 2025-12-11 13:19:43 +01:00
Ingvar Hagelund
a4fc3ba230 pulled inn tmpfiles.d rules from rawhide 2025-12-11 13:06:20 +01:00
Luboš Uhliarik
7c465a314d Add tmpfiles.d rules for /var directories (bootc compatibility) 2025-10-29 13:29:01 +01:00
Ingvar Hagelund
c45198f59e new upstream release varnish-8.0.0 2025-10-15 10:59:05 +02:00
Ingvar Hagelund
ed43670161 New upstream release: A security release
Includes fix for VSV00017 aka CVE-2025-8671, rhbz#2388222
2025-09-15 17:16:04 +02:00
Luboš Uhliarik
06394ea2b3 Simplify allocator logic with %bcond expressions
Use %bcond to replace conditional blocks for selecting the memory allocator based on RHEL version. Behavior remains unchanged.
2025-07-31 11:31:11 +02:00
Luboš Uhliarik
0965b70410 bundle jemalloc in RHEL 2025-07-31 11:31:08 +02:00
Fedora Release Engineering
9398cca4da Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:58:18 +00:00
Ingvar Hagelund
87f3ca1040 fix for h2 testing with nghttp still necessary 2025-05-23 09:03:47 +02:00
Ingvar Hagelund
ac0c5d1cf9 Use systemd setup for users 2025-05-22 23:42:01 +02:00
Ingvar Hagelund
c6b4b42928 Removed patches merged upstream 2025-05-22 18:02:32 +02:00
Ingvar Hagelund
1273e5f11c Pulled el7 support 2025-05-22 17:58:51 +02:00
Ingvar Hagelund
284249c6bc Correct ABI and VRT versions 2025-05-22 17:44:23 +02:00
Luboš Uhliarik
1379a67050 new version 7.7.1 2025-05-20 19:16:29 +02:00
Ingvar Hagelund
66c48ec041 Fix for eln build (merged from yselkowitz)
Fix for failing h2 switch check. Enabling full test suite again
2025-03-27 16:42:26 +01:00
Yaakov Selkowitz
5f1482d7ee Fix ELN build
Like rawhide/f43, ELN has GCC 15, nghttp2 1.65, and the bin-sbin merge.
2025-03-25 14:28:58 -04:00
Ingvar Hagelund
d992545e86 just a typofix 2025-03-24 20:29:33 +01:00
Ingvar Hagelund
bb16906572 updated source for varnish-7.7.0 2025-03-24 17:34:10 +01:00
Ingvar Hagelund
1c17e001bf New upstream release
fedora now has completed the bin/sbin merge
2025-03-24 17:32:31 +01:00
Fedora Release Engineering
1e86e5e01d Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 14:07:18 +00:00
Ingvar Hagelund
8d03bd0cc8 updated api and vrt 2024-12-04 14:37:12 +01:00
Ingvar Hagelund
7cdef236e8 New upstream release 2024-12-02 15:13:51 +01:00
Ingvar Hagelund
d76a2b7a5f New upstream release
Updated checkout of pkg-varnish
2024-09-16 16:16:17 +02:00
Fedora Release Engineering
e1cb198d44 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 08:34:53 +00:00
Ingvar Hagelund
968ac5eb9f muted tests/t02014.vtc on aarch64 and s390x 2024-03-21 00:16:49 +01:00
Ingvar Hagelund
f2ca219077 Just a hack to avoid too high load on secondary arch builders 2024-03-20 23:00:39 +01:00
Ingvar Hagelund
ffe03f22b7 uploaded varnish-7.5.0.tgz 2024-03-20 19:31:17 +01:00
Ingvar Hagelund
8b11f4ac19 New upstream release
Moved somethings around to make the diff from the upstream spec less
Upped some memory requirements in some of the tests. Necessary on aarch64 and ppc64le (and ppc32)
Reduced number of parallel jobs on s390x builders as builds tend to fail when stressed
Retired armv7hl
2024-03-20 19:27:32 +01:00
Fedora Release Engineering
2179badd5d Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 07:30:52 +00:00
Ingvar Hagelund
448cc6b4c0 Upload varnish-7.4.2.tgz 2023-11-14 11:55:40 +01:00
Ingvar Hagelund
33b27efa96 New upstream release. A security release
Includes fix for CVE-2023-44487 aka VSV00013, rhbz#2243328, HTTP/2 Rapid Reset Attack
2023-11-14 10:58:49 +01:00
Ingvar Hagelund
a64307a0e8 New upstream release. A bugfix release 2023-10-12 11:46:21 +02:00
Ingvar Hagelund
fef34e776d New upstream release 2023-10-12 11:29:41 +02:00
Luboš Uhliarik
2e0cc0619c SPDX migration 2023-09-14 13:34:40 +02:00
Fedora Release Engineering
003072fcc1 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 17:25:49 +00:00
Yaakov Selkowitz
894bb4b1de Enable system_allocator in RHEL/ELN builds 2023-06-23 13:31:25 -04:00
Ingvar Hagelund
c37e152be9 Switched from bcond to bcond_with for compatibility with el8 and el9
haproxy builddep on systems with haproxy2
Disable pcre2-jit only for fedora <= 37 on 32bit x86
2023-03-20 19:05:05 +01:00
Ingvar Hagelund
1951aa387e New upstream release
Added a bcond system_allocator for skipping jemalloc, bz#1917697
nil _lto_cflags macro to link to jemalloc again
disable pcre2-jit on 32bit x86 for now
2023-03-16 21:30:23 +01:00
Fedora Release Engineering
f13df6b120 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 06:07:06 +00:00
Ingvar Hagelund
fe17444c14 New upstream release: A security release
Includes fix for VSV00011
2022-11-09 13:42:10 +01:00
Ingvar Hagelund
3119cd2157 New upstream release varnish-7.2.0 2022-09-20 09:17:25 +02:00
Ingvar Hagelund
9eb58e1d45 New upstream release. The regular bi-annual "fresh" release
Removed list of patches from comments
Cosmetical changes to specfile from upstream
Now build with --with-contrib
2022-09-20 09:03:44 +02:00
Ingvar Hagelund
81188f651d New upstream release. A security release
Includes fix for VSV00009 aka CVE-2022-38150
2022-08-12 11:48:33 +02:00
Fedora Release Engineering
080212f0f3 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 11:41:49 +00:00
Ingvar Hagelund
8238fb02e8 New upstream release
Includes updated snapshot of pkg-varnish
2022-03-29 15:41:12 +02:00
Luboš Uhliarik
33f3a47bab Fix Provides directive for varnish-devel package 2022-02-21 12:16:46 +01:00
Ingvar Hagelund
4624908388 New upstream release. A security release
Includes fix for CVE-2022-23959 aka VSV00008, rhbz#2045033
2022-01-26 15:38:46 +01:00
Fedora Release Engineering
53ddde7cf9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 03:48:19 +00:00
Ingvar Hagelund
4c633f0ba8 update release number 2022-01-13 14:48:27 +01:00
Ingvar Hagelund
83e31e04f0 Update ABI string 2022-01-13 14:47:11 +01:00
Ingvar Hagelund
09baceb7fa New upstream release. A maintenance and stability release 2022-01-13 09:57:06 +01:00
Ingvar Hagelund
0059ddef65 New upstream release. A maintenance and stability release 2022-01-13 09:52:31 +01:00
Ingvar Hagelund
85d4f11b58 upstream switched to pcre2 a while ago 2021-11-04 10:21:25 +01:00
Ingvar Hagelund
fe2fc39809 - New upstream release 7.0.0
- Updated pkg-varnish checkout from the 7.0 branch
2021-10-02 01:35:47 +02:00
Ingvar Hagelund
ee6e68eab7 - fixed a minimal patch for a failing test on armv7hl 2021-09-28 17:00:53 +02:00
Ingvar Hagelund
830aac4ef4 - New upstream release
- Updated pkg-varnish checkout from the 7.0 branch
- Added a minimal patch for a failing test on armv7hl
2021-09-23 00:20:21 +02:00
Ingvar Hagelund
e25baab38f - New upstream release
- Updated pkg-varnish checkout from the 7.0 branch
- Added a minimal patch for a failing test on armv7hl
2021-09-23 00:19:19 +02:00
Ingvar Hagelund
f2252ed21b New upstream release
Updated pkg-varnish checkout from the 7.0 branch
2021-09-22 19:45:54 +02:00
Fedora Release Engineering
af2ba5d46a - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 20:19:02 +00:00
Ingvar Hagelund
b1c417d25c Bumped abi and vrt versions 2021-07-17 02:10:18 +02:00
Ingvar Hagelund
ace6dac2a3 New upstream release
Includes fix for CVE-2021-36740 aka VSV00007, bz#1982413
2021-07-17 01:19:15 +02:00
Ingvar Hagelund
a575c94cae corrected changelog item 2021-05-18 16:57:08 +02:00
Timm Bäder
1a114f250c spec: Use make macros 2021-05-18 16:37:33 +02:00
Ingvar Hagelund
69d4c9d2a7 New upstream release
Now provides vmod_purge
Uses haproxy in the test suite on el8
Skipped obsoleting varnish-libs. That was many years ago now.
2021-05-18 15:21:57 +02:00
2f923727f9 Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
2021-03-02 16:12:04 +01:00
Fedora Release Engineering
fef0a7f31d - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 22:55:13 +00:00
Ingvar Hagelund
cbc6e0615f Pulled support for el6
Pulled support for sysvinit
aarch64 builds now with jemalloc again on el7
2021-01-22 09:37:56 +01:00
Ingvar Hagelund
45b447537f New upstream release varnish-6.5.1 2020-09-28 20:51:35 +02:00
Ingvar Hagelund
6d591be49e New upstream release varnish-6.5.0
Respun silly patch to get rid of compiler warnings on el6
2020-09-16 12:08:17 +02:00
10 changed files with 927 additions and 233 deletions

34
.gitignore vendored
View file

@ -42,3 +42,37 @@ varnish-2.1.3.tar.gz
/pkg-varnish-cache-ec7ad9e.tar.gz
/varnish-6.3.2.tgz
/varnish-6.4.0.tgz
/varnish-6.5.0.tgz
/varnish-6.5.1.tgz
/varnish-6.6.0.tgz
/varnish-6.6.1.tgz
/pkg-varnish-cache-d3e6a3f.tar.gz
/varnish-7.0.0.tgz
/varnish-7.0.1.tgz
/varnish-7.0.2.tgz
/pkg-varnish-cache-3ba24a8.tar.gz
/varnish-7.1.0.tgz
/varnish-7.1.1.tgz
/pkg-varnish-cache-ffc59a3.tar.gz
/varnish-7.2.0.tgz
/varnish-7.2.1.tgz
/pkg-varnish-cache-7126673.tar.gz
/varnish-7.3.0.tgz
/pkg-varnish-cache-cfa8cb3.tar.gz
/varnish-7.4.0.tgz
/varnish-7.4.1.tgz
/varnish-7.4.2.tgz
/varnish-7.5.0.tgz
/varnish-7.6.0.tgz
/pkg-varnish-cache-7d90347.tar.gz
/varnish-7.6.1.tgz
/varnish-7.7.0.tgz
/varnish-7.7.1.tgz
/jemalloc-5.3.0.tar.bz2
/varnish-7.7.3.tgz
/varnish-8.0.0.tgz
/pkg-varnish-cache-1f0d212.tar.gz
/varnish-9.0.0.tar.gz
/varnish-9.0.1.tar.gz
/varnish-9.0.2.tar.gz
/varnish-9.0.3.tar.gz

View file

@ -0,0 +1,140 @@
diff --git a/test/unit/psset.c b/test/unit/psset.c
index 6ff7201..58b4a88 100644
--- a/test/unit/psset.c
+++ b/test/unit/psset.c
@@ -124,7 +124,7 @@ TEST_BEGIN(test_fill) {
hpdata_t pageslab;
hpdata_init(&pageslab, PAGESLAB_ADDR, PAGESLAB_AGE);
- edata_t alloc[HUGEPAGE_PAGES];
+ edata_t *alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
psset_t psset;
psset_init(&psset);
@@ -147,6 +147,8 @@ TEST_BEGIN(test_fill) {
edata_init_test(&extra_alloc);
err = test_psset_alloc_reuse(&psset, &extra_alloc, PAGE);
expect_true(err, "Alloc succeeded even though psset should be empty");
+
+ free(alloc);
}
TEST_END
@@ -157,7 +159,7 @@ TEST_BEGIN(test_reuse) {
hpdata_t pageslab;
hpdata_init(&pageslab, PAGESLAB_ADDR, PAGESLAB_AGE);
- edata_t alloc[HUGEPAGE_PAGES];
+ edata_t *alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
psset_t psset;
psset_init(&psset);
@@ -239,6 +241,8 @@ TEST_BEGIN(test_reuse) {
err = test_psset_alloc_reuse(&psset, &alloc[index_of_4], 4 * PAGE);
expect_false(err, "Should have been able to find alloc.");
edata_expect(&alloc[index_of_4], index_of_4, 4);
+
+ free(alloc);
}
TEST_END
@@ -249,7 +253,7 @@ TEST_BEGIN(test_evict) {
hpdata_t pageslab;
hpdata_init(&pageslab, PAGESLAB_ADDR, PAGESLAB_AGE);
- edata_t alloc[HUGEPAGE_PAGES];
+ edata_t *alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
psset_t psset;
psset_init(&psset);
@@ -273,6 +277,8 @@ TEST_BEGIN(test_evict) {
err = test_psset_alloc_reuse(&psset, &alloc[0], PAGE);
expect_true(err, "psset should be empty.");
+
+ free(alloc);
}
TEST_END
@@ -286,7 +292,9 @@ TEST_BEGIN(test_multi_pageslab) {
(void *)((uintptr_t)PAGESLAB_ADDR + HUGEPAGE),
PAGESLAB_AGE + 1);
- edata_t alloc[2][HUGEPAGE_PAGES];
+ edata_t* alloc[2];
+ alloc[0] = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
+ alloc[1] = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
psset_t psset;
psset_init(&psset);
@@ -336,6 +344,9 @@ TEST_BEGIN(test_multi_pageslab) {
*/
err = test_psset_alloc_reuse(&psset, &alloc[1][0], 2 * PAGE);
expect_false(err, "Allocation should have succeeded");
+
+ free(alloc[0]);
+ free(alloc[1]);
}
TEST_END
@@ -385,7 +396,7 @@ TEST_BEGIN(test_stats) {
hpdata_t pageslab;
hpdata_init(&pageslab, PAGESLAB_ADDR, PAGESLAB_AGE);
- edata_t alloc[HUGEPAGE_PAGES];
+ edata_t *alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
psset_t psset;
psset_init(&psset);
@@ -415,6 +426,8 @@ TEST_BEGIN(test_stats) {
stats_expect(&psset, 0);
psset_update_end(&psset, &pageslab);
stats_expect(&psset, 1);
+
+ free(alloc);
}
TEST_END
@@ -475,8 +488,8 @@ init_test_pageslabs(psset_t *psset, hpdata_t *pageslab,
TEST_BEGIN(test_oldest_fit) {
bool err;
- edata_t alloc[HUGEPAGE_PAGES];
- edata_t worse_alloc[HUGEPAGE_PAGES];
+ edata_t *alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
+ edata_t *worse_alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
hpdata_t pageslab;
hpdata_t worse_pageslab;
@@ -493,14 +506,19 @@ TEST_BEGIN(test_oldest_fit) {
expect_false(err, "Nonempty psset failed page allocation");
expect_ptr_eq(&pageslab, edata_ps_get(&test_edata),
"Allocated from the wrong pageslab");
+
+ free(alloc);
+ free(worse_alloc);
}
TEST_END
TEST_BEGIN(test_insert_remove) {
bool err;
hpdata_t *ps;
- edata_t alloc[HUGEPAGE_PAGES];
- edata_t worse_alloc[HUGEPAGE_PAGES];
+
+ edata_t *alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
+ edata_t *worse_alloc = (edata_t *)malloc(sizeof(edata_t) * HUGEPAGE_PAGES);
+
hpdata_t pageslab;
hpdata_t worse_pageslab;
@@ -539,6 +557,9 @@ TEST_BEGIN(test_insert_remove) {
psset_update_begin(&psset, &worse_pageslab);
err = test_psset_alloc_reuse(&psset, &alloc[HUGEPAGE_PAGES - 1], PAGE);
expect_true(err, "psset should be empty, but an alloc succeeded");
+
+ free(alloc);
+ free(worse_alloc);
}
TEST_END

View file

@ -0,0 +1,29 @@
commit 3de0c24859f4413bf03448249078169bb50bda0f
Author: divanorama <divanorama@gmail.com>
Date: Thu Sep 29 23:35:59 2022 +0200
Disable builtin malloc in tests
With `--with-jemalloc-prefix=` and without `-fno-builtin` or `-O1` both clang and gcc may optimize out `malloc` calls
whose result is unused. Comparing result to NULL also doesn't necessarily count as being used.
This won't be a problem in most client programs as this only concerns really unused pointers, but in
tests it's important to actually execute allocations.
`-fno-builtin` should disable this optimization for both gcc and clang, and applying it only to tests code shouldn't hopefully be an issue.
Another alternative is to force "use" of result but that'd require more changes and may miss some other optimization-related issues.
This should resolve https://github.com/jemalloc/jemalloc/issues/2091
diff --git a/Makefile.in b/Makefile.in
index 6809fb29..a964f07e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -458,6 +458,8 @@ $(TESTS_OBJS): $(objroot)test/%.$(O): $(srcroot)test/%.c
$(TESTS_CPP_OBJS): $(objroot)test/%.$(O): $(srcroot)test/%.cpp
$(TESTS_OBJS): CPPFLAGS += -I$(srcroot)test/include -I$(objroot)test/include
$(TESTS_CPP_OBJS): CPPFLAGS += -I$(srcroot)test/include -I$(objroot)test/include
+$(TESTS_OBJS): CFLAGS += -fno-builtin
+$(TESTS_CPP_OBJS): CPPFLAGS += -fno-builtin
ifneq ($(IMPORTLIB),$(SO))
$(CPP_OBJS) $(C_SYM_OBJS) $(C_OBJS) $(C_JET_SYM_OBJS) $(C_JET_OBJS): CPPFLAGS += -DDLLEXPORT
endif

View file

@ -1,2 +1,3 @@
SHA512 (pkg-varnish-cache-ec7ad9e.tar.gz) = 146aacec76b2ca641bb8bc9dda49e82d28740dbcba034e73a8d39387696f10fa3108ab124a078e900865388217352d112f63f6fe9ef7b23e20bc699441aab4f2
SHA512 (varnish-6.4.0.tgz) = cda8f9e1d301a2b79db14685a23e25e36225f37065a1b7f37c5ae12fbb0483be51be9ffcc8ba72c1f65f5a022d1e408825694daed6780e206b9ba91feb2a07a1
SHA512 (varnish-9.0.3.tar.gz) = 2789cff88632c2279062a109513cc00cab7690785f8f77e90b9968098c71ddcdc6403d6a9edc755b8f4055f0d32d9e330b0bc20fbab92ba80232955942dc912a
SHA512 (jemalloc-5.3.0.tar.bz2) = 22907bb052096e2caffb6e4e23548aecc5cc9283dce476896a2b1127eee64170e3562fa2e7db9571298814a7a2c7df6e8d1fbe152bd3f3b0c1abec22a2de34b1
SHA512 (pkg-varnish-cache-1f0d212.tar.gz) = 9f05978c99f292e64e71ba24ef2de791a33640e40fbad66d47889837fb0d4ced203873f5a17716edf757b5ad48098289882c2df196ce1fb457f279bf7f35bec3

View file

@ -0,0 +1,78 @@
diff -Naur ../varnish-6.5.0.orig/bin/varnishd/http1/cache_http1_deliver.c ./bin/varnishd/http1/cache_http1_deliver.c
--- ../varnish-6.5.0.orig/bin/varnishd/http1/cache_http1_deliver.c 2020-09-15 17:06:03.000000000 +0200
+++ ./bin/varnishd/http1/cache_http1_deliver.c 2020-09-16 11:45:28.663086943 +0200
@@ -76,7 +76,7 @@
VSLb(req->vsl, SLT_RespReason, "Internal Server Error");
req->wrk->stats->client_resp_500++;
- (void)write(req->sp->fd, r_500, sizeof r_500 - 1);
+ if (write(req->sp->fd, r_500, sizeof r_500 - 1)) 0;
req->doclose = SC_TX_EOF;
}
diff -Naur ../varnish-6.5.0.orig/bin/varnishd/mgt/mgt_main.c ./bin/varnishd/mgt/mgt_main.c
--- ../varnish-6.5.0.orig/bin/varnishd/mgt/mgt_main.c 2020-09-15 17:06:03.000000000 +0200
+++ ./bin/varnishd/mgt/mgt_main.c 2020-09-16 11:46:21.323667133 +0200
@@ -252,7 +252,7 @@
return;
VJ_rmdir("vmod_cache");
VJ_unlink("_.pid");
- (void)chdir("/");
+ if (chdir("/")) 0;
VJ_rmdir(workdir);
}
diff -Naur ../varnish-6.5.0.orig/bin/varnishd/mgt/mgt_param.c ./bin/varnishd/mgt/mgt_param.c
--- ../varnish-6.5.0.orig/bin/varnishd/mgt/mgt_param.c 2020-09-15 17:06:03.000000000 +0200
+++ ./bin/varnishd/mgt/mgt_param.c 2020-09-16 11:45:28.771086082 +0200
@@ -829,11 +829,11 @@
t2 = strchr(t1 + 1, '\t');
AN(t2);
printf("\n\t*");
- (void)fwrite(t1 + 1, (t2 - 1) - t1, 1, stdout);
+ if (fwrite(t1 + 1, (t2 - 1) - t1, 1, stdout)) 1;
printf("*\n\t\t");
p = t2 + 1;
}
- (void)fwrite(p, q - p, 1, stdout);
+ if(fwrite(p, q - p, 1, stdout)) 1;
p = q;
if (*p == '\n') {
printf("\n");
diff -Naur ../varnish-6.5.0.orig/bin/varnishtest/vtc_main.c ./bin/varnishtest/vtc_main.c
--- ../varnish-6.5.0.orig/bin/varnishtest/vtc_main.c 2020-09-15 17:06:03.000000000 +0200
+++ ./bin/varnishtest/vtc_main.c 2020-09-16 11:45:28.771086082 +0200
@@ -233,7 +233,7 @@
assert(cleaner_pid >= 0);
if (cleaner_pid == 0) {
closefd(&p[1]);
- (void)nice(1); /* Not important */
+ if (nice(1)) 1;
setbuf(stdin, NULL);
AZ(dup2(p[0], STDIN_FILENO));
while (fgets(buf, sizeof buf, stdin)) {
diff -Naur ../varnish-6.5.0.orig/lib/libvarnishapi/vsm.c ./lib/libvarnishapi/vsm.c
--- ../varnish-6.5.0.orig/lib/libvarnishapi/vsm.c 2020-09-15 17:06:03.000000000 +0200
+++ ./lib/libvarnishapi/vsm.c 2020-09-16 11:45:28.772086074 +0200
@@ -764,18 +764,18 @@
VSM_ResetError(vd);
if (u & VSM_MGT_RUNNING) {
if (progress >= 0 && n > 4)
- (void)write(progress, "\n", 1);
+ if (!write(progress, "\n", 1)) return (vsm_diag(vd, "Unable to write progress"));
vd->attached = 1;
return (0);
}
if (t0 < VTIM_mono()) {
if (progress >= 0 && n > 4)
- (void)write(progress, "\n", 1);
+ if (!write(progress, "\n", 1)) return (vsm_diag(vd, "Unable to write progress"));
return (vsm_diag(vd,
"Could not get hold of varnishd, is it running?"));
}
if (progress >= 0 && !(++n % 4))
- (void)write(progress, ".", 1);
+ if (!write(progress, ".", 1)) return (vsm_diag(vd, "Unable to write progress"));
VTIM_sleep(.25);
}
return (vsm_diag(vd, "Attach interrupted"));

View file

@ -0,0 +1,178 @@
commit 95e41dfa584d108e444949534c7ce5801cffeacc
Author: Poul-Henning Kamp <phk@FreeBSD.org>
Date: Wed Mar 26 09:25:43 2025 +0000
If the client sends NO_RFC7540_PRIORITIES, "rxprio" verbs become no-ops.
Fixes: #4298
Tested by: @ingvarha
commit 3a1eb57d8bd57205db7d2c766aed39cf73c4f578
Author: Poul-Henning Kamp <phk@FreeBSD.org>
Date: Wed Mar 26 09:24:17 2025 +0000
Add more HTTP2 Settings to the table
diff --git a/bin/varnishtest/vtc.h b/bin/varnishtest/vtc.h
index 2e5d4161a..b765fe60a 100644
--- a/bin/varnishtest/vtc.h
+++ b/bin/varnishtest/vtc.h
@@ -148,7 +148,7 @@ struct http;
void cmd_stream(CMD_ARGS);
void start_h2(struct http *hp);
void stop_h2(struct http *hp);
-void b64_settings(const struct http *hp, const char *s);
+void b64_settings(struct http *hp, const char *s);
/* vtc_gzip.c */
void vtc_gunzip(struct http *, char *, long *);
diff --git a/bin/varnishtest/vtc_http.h b/bin/varnishtest/vtc_http.h
index 7a86de8da..62c598a55 100644
--- a/bin/varnishtest/vtc_http.h
+++ b/bin/varnishtest/vtc_http.h
@@ -83,6 +83,7 @@ struct http {
/* H/2 */
unsigned h2;
int wf;
+ int no_rfc7540_priorities;
pthread_t tp;
VTAILQ_HEAD(, stream) streams;
diff --git a/bin/varnishtest/vtc_http2.c b/bin/varnishtest/vtc_http2.c
index 822abbae1..7feeb42b0 100644
--- a/bin/varnishtest/vtc_http2.c
+++ b/bin/varnishtest/vtc_http2.c
@@ -629,7 +629,7 @@ parse_settings(const struct stream *s, struct frame *f)
buf = "unknown";
u += 4;
- if (t == 1) {
+ if (t == SETTINGS_HEADER_TABLE_SIZE) {
r = HPK_ResizeTbl(s->hp->encctx, v);
assert(r == hpk_done);
}
@@ -2460,28 +2460,47 @@ cmd_rxsettings(CMD_ARGS)
hp->h2_win_peer->init = val;
}
}
+/* SECTION: stream.spec.prio_rxprio rxprio
+ *
+ * Receive a PRIORITY frame.
+ */
+static void
+cmd_rxprio (CMD_ARGS)
+{
+ struct stream *s;
+ (void)av;
+ CAST_OBJ_NOTNULL(s, priv, STREAM_MAGIC);
+ if (s->hp->no_rfc7540_priorities) {
+ vtc_log(vl, 4, "skipping rxprio: no_rfc7540_priorities is set");
+ return;
+ }
+ s->frame = rxstuff(s);
+ if (s->frame != NULL && s->frame->type != TYPE_PRIORITY) {
+ vtc_fatal(vl,
+ "Wrong frame type %s (%d) wanted %s",
+ s->frame->type < TYPE_MAX ?
+ h2_types[s->frame->type] : "?",
+ s->frame->type, "PRIORITY");
+ }
+}
#define RXFUNC(lctype, upctype) \
static void \
- cmd_rx ## lctype(CMD_ARGS) { \
+ cmd_rx ## lctype(CMD_ARGS) \
+ { \
struct stream *s; \
(void)av; \
CAST_OBJ_NOTNULL(s, priv, STREAM_MAGIC); \
s->frame = rxstuff(s); \
- if (s->frame != NULL && s->frame->type != TYPE_ ## upctype) \
+ if (s->frame != NULL && s->frame->type != TYPE_ ## upctype) { \
vtc_fatal(vl, \
"Wrong frame type %s (%d) wanted %s", \
s->frame->type < TYPE_MAX ? \
h2_types[s->frame->type] : "?", \
s->frame->type, #upctype); \
+ } \
}
-/* SECTION: stream.spec.prio_rxprio rxprio
- *
- * Receive a PRIORITY frame.
- */
-RXFUNC(prio, PRIORITY)
-
/* SECTION: stream.spec.reset_rxrst rxrst
*
* Receive a RST_STREAM frame.
@@ -2857,7 +2876,7 @@ cmd_stream(CMD_ARGS)
}
void
-b64_settings(const struct http *hp, const char *s)
+b64_settings(struct http *hp, const char *s)
{
uint16_t i;
uint64_t v, vv;
@@ -2891,7 +2910,10 @@ b64_settings(const struct http *hp, const char *s)
else
buf = "unknown";
- if (v == 1) {
+ if (i == SETTINGS_NO_RFC7540_PRIORITIES) {
+ hp->no_rfc7540_priorities = v;
+ }
+ if (i == SETTINGS_HEADER_TABLE_SIZE) {
enum hpk_result hrs;
if (hp->sfd) {
AN(hp->encctx);
diff --git a/include/tbl/h2_settings.h b/include/tbl/h2_settings.h
index 2dbac671f..273f157fe 100644
--- a/include/tbl/h2_settings.h
+++ b/include/tbl/h2_settings.h
@@ -102,7 +102,39 @@ H2_SETTING( // rfc7540,l,2159,2167
0xffffffff,
0
)
-#endif
+
+H2_SETTING( // rfc8441
+ ENABLE_CONNECT_PROTOCOL,
+ enable_connect_protocol,
+ 0x8,
+ 0,
+ 0,
+ 1,
+ H2CE_PROTOCOL_ERROR
+)
+
+H2_SETTING( // rfc9218
+ NO_RFC7540_PRIORITIES,
+ no_rfc7540_priorities,
+ 0x9,
+ 0,
+ 0,
+ 1,
+ H2CE_PROTOCOL_ERROR
+)
+
+H2_SETTING( // [MS-HTTP2E]
+ // [Gabriel_Montenegro]
+ TLS_RENEG_PERMITTED,
+ tls_reneg_permitted,
+ 0x10,
+ 0,
+ 0,
+ 3,
+ H2CE_PROTOCOL_ERROR
+)
+#endif /* !H2_SETTINGS_PARAM_ONLY */
+
#undef H2_SETTING
/*lint -restore */

View file

@ -0,0 +1,38 @@
Author: Ingvar Hagelund <ingvar@redpill-linpro.com>
Date: Wed Apr 15 00:17:59 2026 +0200
Use ASN1_STRING functions for openssl-4.0.0
diff -Naur varnish-9.0.1.orig/bin/vinyltest/vtest2/src/vtc_asn_gentm.c varnish-9.0.1/bin/vinyltest/vtest2/src/vtc_asn_gentm.c
--- varnish-9.0.1.orig/bin/vinyltest/vtest2/src/vtc_asn_gentm.c 2026-04-08 18:57:33.000000000 +0200
+++ varnish-9.0.1/bin/vinyltest/vtest2/src/vtc_asn_gentm.c 2026-04-15 00:34:44.788211992 +0200
@@ -142,10 +142,10 @@
char *a;
int n, i, l, o;
- if (d->type != V_ASN1_GENERALIZEDTIME)
+ if (ASN1_STRING_type(d) != V_ASN1_GENERALIZEDTIME)
return (0);
- l = d->length;
- a = (char *)d->data;
+ l = ASN1_STRING_length(d);
+ a = (char *)ASN1_STRING_get0_data(d);
o = 0;
/*
* GENERALIZEDTIME is similar to UTCTIME except the year is represented
diff -Naur varnish-9.0.1.orig/bin/vinyltest/vtest2/src/vtc_tls.c varnish-9.0.1/bin/vinyltest/vtest2/src/vtc_tls.c
--- varnish-9.0.1.orig/bin/vinyltest/vtest2/src/vtc_tls.c 2026-04-08 18:57:33.000000000 +0200
+++ varnish-9.0.1/bin/vinyltest/vtest2/src/vtc_tls.c 2026-04-15 00:35:53.447792774 +0200
@@ -1060,10 +1060,10 @@
break;
case GEN_IPADD:
- p = n->d.ip->data;
+ p = ASN1_STRING_get0_data(n->d.ip);
AN(p);
- if (inet_ntop(n->d.ip->length == 16 ? AF_INET6 : AF_INET,
+ if (inet_ntop(ASN1_STRING_length(n->d.ip) == 16 ? AF_INET6 : AF_INET,
p, b, INET6_ADDRSTRLEN) == 0)
continue;

View file

@ -1,135 +1,125 @@
%global _hardened_build 1
%global _hardened_build 0
# https://github.com/varnishcache/varnish-cache/issues/2269
%global debug_package %{nil}
%if 0%{?rhel} == 6 || 0%{?rhel} == 7
%global _use_internal_dependency_generator 0
%global __find_provides %{_builddir}/%{name}-%{version}/find-provides %__find_provides
%global __python /usr/bin/python3.4
%else
%global __python %{__python3}
%endif
%global __provides_exclude_from ^%{_libdir}/varnish/vmods
%global abi 13f137934ec1cf14af66baf7896311115ee35598
%global vrt 11.0
%global abi 0a625649cd40af4b6c10be5e58a2e89a5e275baa
%global vrt 23.1
# Package scripts are now external
# https://github.com/varnishcache/pkg-varnish-cache
%global commit1 ec7ad9e6c6dd7c9b4f4ba60c5b223376908c3ca6
%global commit1 1f0d212dc45065f38bd80ac57fe22773a20a0595
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})
# Default: Use jemalloc, as adviced by upstream project
# Change to 1 to use system allocator (ie. glibc)
#
# for rhel >= 10, use bundled jemalloc
# for rhel < 10, use system allocator
%bcond system_allocator %[0%{?rhel} && 0%{?rhel} < 10]
%bcond bundled_jemalloc %[0%{?rhel} >= 10]
%define jemalloc_version 5.3.0
%define jemalloc_prefix varnish_
%if %{with system_allocator}
# use _lto_cflags if present
%else
%global _lto_cflags %{nil}
%endif
Summary: High-performance HTTP accelerator
Name: varnish
Version: 6.4.0
Release: 4%{?dist}
License: BSD
Version: 9.0.3
Release: 3%{?dist}
License: BSD-2-Clause AND (BSD-2-Clause-FreeBSD AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain AND Zlib)
URL: https://www.varnish-cache.org/
Source0: http://varnish-cache.org/_downloads/%{name}-%{version}%{?vd_rc}.tgz
Source0: https://github.com/varnish/varnish/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
Source1: https://github.com/varnishcache/pkg-varnish-cache/archive/%{commit1}.tar.gz#/pkg-varnish-cache-%{shortcommit1}.tar.gz
Source2: varnish.sysusers
Source3: https://github.com/jemalloc/jemalloc/releases/download/%{jemalloc_version}/jemalloc-%{jemalloc_version}.tar.bz2
Source4: varnish.tmpfiles
# Patches:
# Patch 001: Because of Fedora's libtool no-rpath requirement, it is still
# necessary to add LD_LIBRARY_PATH when building the documentation
# (Fixed by using LT_SYS_LIBRARY_PATH)
#Patch1: varnish-6.1.1_fix_ld_library_path_in_doc_build.patch
# Compatibility with openssl-4.0.0
# https://github.com/varnish/varnish/issues/32
Patch1: varnish-9.0.1_openssl_4.0_asn1.patch
# Patch 004: varnish selinux support for el6
Patch4: varnish-4.0.3_fix_varnish4_selinux.el6.patch
%if %{with bundled_jemalloc}
# bundled jemalloc patch
Patch100: jemalloc-5.3.0_fno-builtin.patch
Patch101: jemalloc-5.3.0-aarch64-ts-segfault.patch
%endif
# Patch 009: Hard code older python support in configure for older el releases
#Patch9: varnish-5.1.1.fix_python_version.patch
# Patch 012: Fix test for variants of ncurses, based on upstream commit 9bdc5f75, upstream issue #2668
#Patch12: varnish-6.0.1_fix_bug2668.patch
# Patch 013: Just a simple format error
#Patch13: varnish-6.1.0_fix_testu00008.patch
# Patch 014: Another formatting error fixed upstream, issue 2879
#Patch14: varnish-6.1.1_fix_upstrbug_2879.patch
# Patch 015: pcre-jit fixed upstream, issue #2912
#Patch15: varnish-6.1.1_fix_issue_2912.patch
# Patch 016: Fix some warnings that prohibited clean -Werror compilation
# on el6. Will not be fixed upstream. Patch grows more stupid
# for each iteration :-(
Patch16: varnish-6.4.0_el6_fix_warning_from_old_gcc.patch
# Patch 017: Fix stack size on ppc64 in test c_00057, upstream commit 88948d9
#Patch17: varnish-6.2.0_fix_ppc64_for_test_c00057.patch
# Patch 018: gcc-10.0.1/s390x compilation fix, upstream commit b0af060
#Patch18: varnish-6.3.2_fix_s390x.patch
%if 0%{?fedora} > 29
Provides: varnish%{_isa} = %{version}-%{release}
Provides: varnishd(abi)%{_isa} = %{abi}
Provides: varnishd(vrt)%{_isa} = %{vrt}
Provides: vmod(blob)%{_isa} = %{version}-%{release}
Provides: vmod(cookie)%{_isa} = %{version}-%{release}
Provides: vmod(debug)%{_isa} = %{version}-%{release}
Provides: vmod(directors)%{_isa} = %{version}-%{release}
Provides: vmod(h2)%{_isa} = %{version}-%{release}
Provides: vmod(proxy)%{_isa} = %{version}-%{release}
Provides: vmod(purge)%{_isa} = %{version}-%{release}
Provides: vmod(std)%{_isa} = %{version}-%{release}
Provides: vmod(unix)%{_isa} = %{version}-%{release}
Provides: vmod(vtc)%{_isa} = %{version}-%{release}
%if %{with bundled_jemalloc}
Provides: bundled(jemalloc)
%endif
Obsoletes: varnish-libs < %{version}-%{release}
BuildRequires: systemd-rpm-macros
%{?systemd_requires}
%{?sysusers_requires_compat}
%if 0%{?rhel} == 6 || 0%{?rhel} == 7
BuildRequires: python34 python-sphinx python34-docutils
%else
BuildRequires: python3, python3-sphinx, python3-docutils
%endif
BuildRequires: jemalloc-devel
BuildRequires: libedit-devel
BuildRequires: ncurses-devel
BuildRequires: pcre-devel
BuildRequires: pkgconfig
BuildRequires: gcc
%if %{without bundled_jemalloc}
%if %{with system_allocator}
# use glibc
%else
%ifnarch aarch64
BuildRequires: jemalloc-devel
%endif
%endif
%endif
BuildRequires: libedit-devel
BuildRequires: make
BuildRequires: ncurses-devel
BuildRequires: pcre2-devel
BuildRequires: pkgconfig
BuildRequires: openssl-devel
%if %{with bundled_jemalloc}
BuildRequires: /usr/bin/xsltproc
BuildRequires: perl-generators
%endif
# Extra requirements for the build suite
# needs haproxy2
%if 0%{?fedora} > 30
BuildRequires: haproxy
%endif
BuildRequires: nghttp2
# haproxy is broken in rawhide now
#if 0#{?fedora} || 0#{?rhel} >= 8
#BuildRequires: haproxy
#endif
%if 0%{?rhel} == 6
BuildRequires: selinux-policy
%endif
Requires: logrotate
Requires: ncurses
Requires: pcre
Requires: jemalloc
Requires: redhat-rpm-config
Requires(pre): shadow-utils
Requires(post): /usr/bin/uuidgen
# Varnish actually needs gcc installed to work. It uses the C compiler
# Varnish actually needs gcc installed to work. It uses the C compiler
# at runtime to compile the VCL configuration files. This is by design.
Requires: gcc
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
Requires(post): systemd-units
Requires(post): systemd-sysv
Requires(preun): systemd-units
Requires(postun): systemd-units
BuildRequires: systemd-units
Requires: logrotate
Requires: ncurses
Requires: pcre2
Requires: redhat-rpm-config
Requires(post): /usr/bin/uuidgen
%if %{with system_allocator}
# use glibc
%else
%if %{without bundled_jemalloc}
Requires: jemalloc
%endif
%if 0%{?rhel} == 6
Requires: %{name}-selinux
Requires(post): policycoreutils,
Requires(preun): policycoreutils
Requires(postun): policycoreutils
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
%endif
%description
@ -149,17 +139,12 @@ Summary: Development files for %{name}
Provides: varnish-libs-devel%{?isa} = %{version}-%{release}
Provides: varnish-libs-devel = %{version}-%{release}
Obsoletes: varnish-libs-devel < %{version}-%{release}
Requires: %{name} = %{version}-%{release}
Requires: python3
%description devel
Development files for %{name}
Varnish Cache is a high-performance HTTP accelerator
Requires: %{name} = %{version}-%{release}
%if 0%{?rhel} == 6
Requires: python34
%else
Requires: python3
%endif
%package docs
Summary: Documentation files for %name
@ -167,50 +152,95 @@ Summary: Documentation files for %name
%description docs
Documentation files for %name
%if 0%{?rhel} == 6
%package selinux
Summary: Minimal selinux policy for running varnish
%description selinux
Minimal selinux policy for running varnish4
%endif
%prep
%setup -q -n varnish-%{version}%{?vd_rc}
%setup -q
%if 0%{?fedora} > 44 || 0%{?rhel} > 10
%patch 1 -p1
%endif
tar xzf %SOURCE1
ln -s pkg-varnish-cache-%{commit1}/redhat redhat
ln -s pkg-varnish-cache-%{commit1}/debian debian
cp redhat/find-provides .
%if 0%{?rhel} == 6
cp pkg-varnish-cache-%{commit1}/sysv/redhat/* redhat/
sed -i '8 i\RPM_BUILD_ROOT=%{buildroot}' find-provides
sed -i 's,rst2man-3.6,rst2man-3.4,g; s,rst2html-3.6,rst2html-3.4,g; s,phinx-build-3.6,phinx-build-3.4,g' configure
# jemalloc
%if %{with bundled_jemalloc}
tar xjf %SOURCE3
sed -i '/^LIBPREFIX/s/@libprefix@/@libprefix@%{jemalloc_prefix}/' jemalloc*/Makefile.in
pushd jemalloc*
%patch 100 -p1 -b .jemalloc
%patch 101 -p1 -b .ts-segfault
popd
# Override PAGESIZE, bz #1545539
%ifarch %ix86 %arm x86_64 s390x riscv64
%define lg_page --with-lg-page=12
%endif
%if 0%{?rhel} == 6
%patch4 -p0
%patch16 -p1
%ifarch ppc64 ppc64le aarch64
%define lg_page --with-lg-page=16
%endif
# Disable thp on systems not supporting this for now
%ifarch %ix86 %arm aarch64 s390x
%define disable_thp --disable-thp
%endif
%endif
%build
%if 0%{?rhel} == 6
export CFLAGS="%{optflags} -fPIC"
export LDFLAGS=" -pie"
%if %{with bundled_jemalloc}
# build bundled jemalloc first
pushd jemalloc*
echo "For debugging package builders"
echo "What is the pagesize?"
getconf PAGESIZE
echo "What mm features are available?"
ls /sys/kernel/mm
ls /sys/kernel/mm/transparent_hugepage || true
cat /sys/kernel/mm/transparent_hugepage/enabled || true
echo "What kernel version and config is this?"
uname -a
%configure %{?disable_thp} %{?lg_page} --enable-prof
make %{?_smp_mflags}
popd
%endif
# varnish
%if %{with system_allocator}
export CFLAGS="%{optflags}"
%else
# nilled _lto_cflags above because they remove the deps on jemalloc.
# On the fedoras, _lto_cflags is -flto=auto and -ffat-lto-objects. The latter is OK.
export CFLAGS="%{optflags} -ffat-lto-objects"
%endif
# https://gcc.gnu.org/wiki/FAQ#PR323
%ifarch %ix86
%if 0%{?fedora} > 21
export CFLAGS="%{optflags} -ffloat-store -fexcess-precision=standard"
%endif
%if 0%{?rhel} >= 6
export CFLAGS="%{optflags} -fno-exceptions -fPIC -ffloat-store"
export CFLAGS="$CFLAGS -ffloat-store -fexcess-precision=standard"
%endif
%endif
%ifarch s390x
export CFLAGS="%{optflags} -Wno-error=free-nonheap-object"
%if 0%{?fedora} > 41 || 0%{?rhel} > 10
export CFLAGS="$CFLAGS -std=gnu17"
%endif
%if 0%{?fedora} > 42 || 0%{?rhel} > 10
export CFLAGS="$CFLAGS -Wno-error=discarded-qualifiers"
%endif
%ifarch s390x
export CFLAGS="$CFLAGS -Wno-error=free-nonheap-object"
%endif
# What platform is this
uname -a
# What gcc version is this?
gcc --version
@ -220,23 +250,35 @@ getconf PAGESIZE
# Man pages are prebuilt. No need to regenerate them.
export RST2MAN=/bin/true
# Explicit python, please
export PYTHON=%{__python}
export PYTHON=python3
for f in configure configure.ac; do
sed -i 's|ljemalloc|l%{jemalloc_prefix}jemalloc|g' $f
done
%if %{with bundled_jemalloc}
export LDFLAGS="$LDFLAGS -L%{_builddir}/%{name}-%{version}/jemalloc-%{jemalloc_version}/lib"
%endif
%configure LT_SYS_LIBRARY_PATH=%_libdir \
--disable-static \
%ifarch aarch64
%if 0%{?rhel} > 0
--localstatedir=/var/lib \
--with-contrib \
--docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} \
%ifarch %ix86
%if 0%{?fedora} <= 37
--enable-pcre2-jit=no \
%endif
%endif
%if %{with system_allocator} || %{without bundled_jemalloc}
--with-jemalloc=no \
%endif
%endif
%if 0%{?rhel} != 6
--with-sphinx-build=sphinx-build-3.4 \
%endif
--localstatedir=/var/lib \
--docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} \
# --disable-pcre-jit \
make %{?_smp_mflags} V=1
%if %{with bundled_jemalloc}
export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/jemalloc-%{jemalloc_version}/lib
%endif
%make_build
# One varnish user is enough
sed -i 's,User=varnishlog,User=varnish,g;' redhat/varnishncsa.service
@ -245,28 +287,55 @@ sed -i 's,User=varnishlog,User=varnish,g;' redhat/varnishncsa.service
rm -rf doc/html/_sources
%check
# rhbz #1690796
%if 0%{?rhel} == 6
%ifarch ppc64 ppc64le aarch64
rm bin/varnishtest/tests/c00057.vtc
%endif
# check jemalloc first
%if %{with bundled_jemalloc}
pushd jemalloc*
make %{?_smp_mflags} check
popd
%endif
# Remove this for now. Hard to get the size and timing right
%ifarch s390 s390x
rm bin/varnishtest/tests/o00005.vtc
# Up the stack size in tests, necessary on secondary arches
sed -i 's/thread_pool_stack 80k/thread_pool_stack 128k/g;' bin/vinyltest/tests/*.vtc
sed -i 's/file,2M/file,8M/' bin/vinyltest/tests/r04036.vtc
%ifarch %ix86
sed -i 's/param.set workspace_thread 0.55k/param.set workspace_thread 0.5k/' bin/vinyltest/tests/b00081.vtc
%endif
make %{?_smp_mflags} check VERBOSE=1
# This is a bug in varnishtest making it incompatible with nghttp2 >= 1.65
#if 0#{?fedora} > 41 || 0#{?rhel} > 10
#rm bin/varnishtest/tests/a02022.vtc
#endif
%if %{with bundled_jemalloc}
export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/jemalloc-%{jemalloc_version}/lib
%endif
# This runs fine in the emulator, but not on Red Hat's builders
# Upstream is looking at it, upstream issue #36
%ifarch s390x
rm bin/vinyltest/tests/t02033.vtc
%endif
# Just a hack to avoid too high load on secondary arch builders
%ifarch s390x ppc64le %ix86
make check
%else
%make_build check
%endif
%install
rm -rf %{buildroot}
# mock el6 and el7 defaults to LANG=C, which makes python3 fail when parsing utf8 text
%if 0%{?rhel} == 6 || 0%{?rhel} == 7
export LANG=en_US.UTF-8
# jemalloc
%if %{with bundled_jemalloc}
pushd jemalloc*
make DESTDIR=%{buildroot} install_lib %{?_smp_mflags}
find %{buildroot}%{_libdir}/ -name '*.a' -exec rm -vf {} ';'
# we don't need .pc file
rm %{buildroot}%{_libdir}/pkgconfig/jemalloc.pc
popd
%endif
%{make_install}
@ -283,67 +352,55 @@ install -D -m 0644 redhat/varnish.logrotate %{buildroot}%{_sysconfdir}/logrotate
install -D -m 0644 include/vcs_version.h %{buildroot}%{_includedir}/varnish
install -D -m 0644 include/vrt.h %{buildroot}%{_includedir}/varnish
# systemd support
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
mkdir -p %{buildroot}%{_unitdir}
install -D -m 0644 redhat/varnish.service %{buildroot}%{_unitdir}/varnish.service
install -D -m 0644 redhat/varnishncsa.service %{buildroot}%{_unitdir}/varnishncsa.service
# default is standard sysvinit
%else
install -D -m 0644 redhat/varnish.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/varnish
install -D -m 0755 redhat/varnish.initrc %{buildroot}%{_initrddir}/varnish
install -D -m 0755 redhat/varnishncsa.initrc %{buildroot}%{_initrddir}/varnishncsa
%endif
install -D -m 0755 redhat/varnishreload %{buildroot}%{_sbindir}/varnishreload
install -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysusersdir}/varnish.conf
echo %{_libdir}/varnish > %{buildroot}%{_sysconfdir}/ld.so.conf.d/varnish-%{_arch}.conf
# tmpfiles.d configuration
mkdir -p %{buildroot}%{_tmpfilesdir}
install -m 644 -p %{SOURCE4} %{buildroot}%{_tmpfilesdir}/varnish.conf
echo %{_libdir}/varnish > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
# No idea why these ends up with mode 600 in the debug package
%if 0%{debug_package}
chmod 644 lib/libvmod_*/*.c
chmod 644 lib/libvmod_*/*.h
# selinux module for el6
%if 0%{?rhel} == 6
cd selinux
make -f %{_datadir}/selinux/devel/Makefile
install -p -m 644 -D varnish4.pp %{buildroot}%{_datadir}/selinux/packages/%{name}/varnish4.pp
%endif
%pre
%sysusers_create_compat %{SOURCE2}
%files
%if "%{_sbindir}" != "%{_bindir}"
%{_sbindir}/*
%endif
%{_bindir}/*
%{_libdir}/*.so.*
%{_libdir}/varnish
%{_libdir}/%{name}
%{_var}/lib/varnish
%attr(0700,varnish,varnish) %dir %{_var}/log/varnish
%{_mandir}/man1/*.1*
%{_mandir}/man3/*.3*
%{_mandir}/man7/*.7*
%license LICENSE
%doc README.rst ChangeLog
%doc README.md ChangeLog
%doc etc/builtin.vcl etc/example.vcl
%dir %{_sysconfdir}/varnish/
%config(noreplace) %{_sysconfdir}/varnish/default.vcl
%config(noreplace) %{_sysconfdir}/logrotate.d/varnish
%config %{_sysconfdir}/ld.so.conf.d/varnish-%{_arch}.conf
%config %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
# systemd from fedora 17 and rhel 7
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
%{_unitdir}/varnish.service
%{_unitdir}/varnishncsa.service
# default is standard sysvinit
%else
%config(noreplace) %{_sysconfdir}/sysconfig/varnish
%{_initrddir}/varnish
%{_initrddir}/varnishncsa
%endif
%{_sysusersdir}/varnish.conf
%{_tmpfilesdir}/varnish.conf
%files devel
%license LICENSE
%doc README.rst
%doc README.md
%{_libdir}/lib*.so
%{_includedir}/%{name}
%{_libdir}/pkgconfig/varnishapi.pc
@ -355,84 +412,218 @@ install -p -m 644 -D varnish4.pp %{buildroot}%{_datadir}/selinux/packages/%{name
%doc doc/html
%doc doc/changes*.html
%if 0%{?rhel} == 6
%files selinux
%{_datadir}/selinux/packages/%{name}/varnish4.pp
%endif
%pre
getent group varnish >/dev/null || groupadd -r varnish
getent passwd varnish >/dev/null || \
useradd -r -g varnish -d /var/lib/varnish -s /sbin/nologin \
-c "Varnish Cache" varnish
exit 0
%post
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
%systemd_post varnish varnishncsa
# Other distros: Use chkconfig
%else
/sbin/chkconfig --add varnish
/sbin/chkconfig --add varnishncsa
%endif
/sbin/ldconfig
# Previous versions had varnishlog and varnishncsa running as root
chown varnish:varnish /var/log/varnish/varnishncsa.log 2>/dev/null || true
test -f /etc/varnish/secret || (uuidgen > /etc/varnish/secret && chmod 0600 /etc/varnish/secret)
# selinux module for el6
%if 0%{?rhel} == 6
%post selinux
if [ "$1" -le "1" ] ; then # First install
semodule -i %{_datadir}/selinux/packages/%{name}/varnish4.pp 2>/dev/null || :
fi
%preun selinux
if [ "$1" -lt "1" ] ; then # Final removal
semodule -r varnish4 2>/dev/null || :
fi
%postun
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
%systemd_postun_with_restart varnish varnishncsa
%endif
/sbin/ldconfig
%postun selinux
if [ "$1" -ge "1" ] ; then # Upgrade
semodule -i %{_datadir}/selinux/packages/%{name}/varnish4.pp 2>/dev/null || :
fi
%endif
%preun
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
%systemd_preun varnish varnishncsa
%else
if [ $1 -lt 1 ]; then
# Package removal, not upgrade
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
/bin/systemctl --no-reload disable varnish.service > /dev/null 2>&1 || :
/bin/systemctl stop varnish.service > /dev/null 2>&1 || :
/bin/systemctl stop varnishncsa.service > /dev/null 2>&1 || :
%else
/sbin/service varnish stop > /dev/null 2>&1
/sbin/service varnishncsa stop > /dev/null 2>%1
/sbin/chkconfig --del varnish
/sbin/chkconfig --del varnishncsa
%endif
fi
%endif
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jun 13 2026 Yaakov Selkowitz <yselkowi@redhat.com> - 9.0.3-2
- Rebuilt for openssl 4.0
* Thu May 21 2026 Ingvar Hagelund <ingvar@redpill-linpro.com> - 9.0.3-1
- New upstream release: A security relase
- Includes fix for VSV00019 aka CVE-2026-50052
* Fri May 15 2026 Ingvar Hagelund <ingvar@redpill-linpro.com> - 9.0.2-1
- New upstream release: A bugfix release
* Fri Apr 10 2026 Ingvar Hagelund <ingvar@redpill-linpro.com> - 9.0.1-1
- New upstream release
- Add patch for openssl-4.0.0 in rawhide
- Includes fix for VEV00002
* Fri Mar 27 2026 Ingvar Hagelund <ingvar@redpill-linpro.com> - 9.0.0-1
- New upstream release
- Includes fix for VSV00018
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Thu Dec 11 2025 Ingvar Hagelund <ingvar@redpill-linpro.com> - 8.0.0-1
- New upstream release
- New pkg-varnish-cache checkout
- Added cflag -Wno-error=discarded-qualifiers to build on fedora while waiting for upstream
* Wed Oct 29 2025 Luboš Uhliarik <luhliari@redhat.com> - 7.7.3-2
- Add tmpfiles.d rules for /var directories (bootc compatibility)
* Mon Sep 15 2025 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.7.3-1
- New upstream release: A security release
- Includes fix for VSV00017 aka CVE-2025-8671, rhbz#2388222
* Thu Jul 31 2025 Luboš Uhliarik <luhliari@redhat.com> - 7.7.1-4
- bundle jemalloc in RHEL
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 7.7.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu May 22 2025 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.7.1-2
- Correct ABI and VRT versions
- Pulled el7 support
- Use systemd setup for users
* Tue May 20 2025 Luboš Uhliarik <luhliari@redhat.com> - 7.7.1-1
- new version 7.7.1
* Thu Mar 27 2025 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.7.0-2
- Fix for eln build (merged from yselkowitz)
- Fix for failing h2 switch check. Enabling full test suite again
* Mon Mar 24 2025 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.7.0-1
- New upstream release
- fedora now has completed the bin/sbin merge
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 7.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Dec 02 2024 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.6.1-1
- New upstream release
* Mon Sep 16 2024 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.6.0-1
- New upstream release
- Updated checkout of pkg-varnish
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Tue Mar 19 2024 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.5.0-1
- New upstream release
- Moved somethings around to make the diff from the upstream spec less
- Upped some memory requirements in some of the tests. Necessary on aarch64 and ppc64le (and ppc32)
- Reduced number of parallel jobs on s390x builders as builds tend to fail when stressed
- Retired armv7hl
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Nov 08 2023 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.4.2-1
- New upstream release. A security release
- Includes fix for CVE-2023-44487 aka VSV00013, rhbz#2243328, HTTP/2 Rapid Reset Attack
* Thu Oct 12 2023 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.4.1-1
- New upstream release. A bugfix release
* Wed Oct 11 2023 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.4.0-0
- New upstream release
* Thu Sep 14 2023 Luboš Uhliarik <luhliari@redhat.com> - 7.3.0-5
- SPDX migration
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.3.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 23 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 7.3.0-3
- Enable system_allocator in RHEL/ELN builds
* Mon Mar 20 2023 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.3.0-2
- Switched from bcond to bcond_with for compatibility with el8 and el9
- haproxy builddep on systems with haproxy2
- Disable pcre2-jit only for fedora <= 37 on 32bit x86
* Thu Mar 16 2023 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.3.0-1
- New upstream release
- Added a bcond system_allocator for skipping jemalloc, bz#1917697
- nil _lto_cflags macro to link to jemalloc again
- disable pcre2-jit on 32bit x86 for now
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Nov 09 2022 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.2.1-1
- New upstream release: A security release
- Includes fix for VSV00011
* Fri Sep 16 2022 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.2.0-1
- New upstream release. The regular bi-annual "fresh" release
- Removed list of patches from comments
- Cosmetical changes to specfile from upstream
- Now build with --with-contrib
* Fri Aug 12 2022 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.1.1-1
- New upstream release. A security release
- Includes fix for VSV00009 aka CVE-2022-38150
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Mar 29 2022 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.1.0-1
- New upstream release
- Includes updated snapshot of pkg-varnish
* Mon Feb 21 2022 Luboš Uhliarik <luhliari@redhat.com> - 7.0.2-2
- Fix Provides directive for varnish-devel package
* Wed Jan 26 2022 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.0.2-1
- New upstream release. A security release
- Includes fix for CVE-2022-23959 aka VSV00008, rhbz#2045033
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jan 13 2022 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.0.1-2
- Update ABI string
* Thu Jan 13 2022 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.0.1-1
- New upstream release. A maintenance and stability release
* Tue Nov 02 2021 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.0.0-2
- upstream switched to pcre2 a while ago
* Thu Sep 16 2021 Ingvar Hagelund <ingvar@redpill-linpro.com> - 7.0.0-1
- New upstream release
- Updated pkg-varnish checkout from the 7.0 branch
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sat Jul 17 2021 Ingvar Hagelund <ingvar@redpill-linpro.com> 6.6.1-2
- Bumped abi and vrt versions
* Sat Jul 17 2021 Ingvar Hagelund <ingvar@redpill-linpro.com> 6.6.1-1
- New upstream release
- Includes fix for CVE-2021-36740 aka VSV00007, bz#1982413
* Tue May 18 2021 Timm Bäder <tbaeder@redhat.com> - 6.6.0-2
- Use make macros
* Mon Mar 15 2021 Ingvar Hagelund <ingvar@redpill-linpro.com> - 6.6.0-1
- New upstream release
- Now provides vmod_purge
- Uses haproxy in the test suite on el8
- Skipped obsoleting varnish-libs. That was many years ago now.
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 6.5.1-4
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Jan 21 2021 Ingvar Hagelund <ingvar@redpill-linpro.com> 6.5.1-2
- Pulled support for el6
- Pulled support for sysvinit
- aarch64 builds now with jemalloc again on el7
* Fri Sep 25 2020 Ingvar Hagelund <ingvar@redpill-linpro.com> 6.5.1-1
- New upstream release varnish-6.5.1
* Wed Sep 16 2020 Ingvar Hagelund <ingvar@redpill-linpro.com> 6.5.0-1
- New upstream release varnish-6.5.0
- Respun silly patch to get rid of compiler warnings on el6
* Tue Aug 04 2020 Ingvar Hagelund <ingvar@redpill-linpro.com> 6.4.0-4
- Added -Wno-error=free-nonheap-object to CFLAGS to build on s390x

3
varnish.sysusers Normal file
View file

@ -0,0 +1,3 @@
#Type Name ID GECOS Home directory Shell
g varnish -
u varnish - "Varnish Cache" /var/lib/varnish /sbin/nologin

2
varnish.tmpfiles Normal file
View file

@ -0,0 +1,2 @@
d /var/lib/varnish 755 root root -
d /var/log/varnish 700 varnish varnish -