varnish / varnish-modules

Collection of Varnish Cache modules (vmods) by Varnish Software
Other
185 stars 86 forks source link

changes for master/6.1 #119

Closed nigoroll closed 5 years ago

nigoroll commented 6 years ago

this is basically a cleaned up version of https://github.com/nigoroll/varnish-modules/

nigoroll commented 6 years ago

The travis check does not apply because travis builds against 41

tristanbes commented 6 years ago

When I clone your fork and use your branch, make install dosen't work ; (Debian 9.5, Varnish 4.1)

root@yprox:/tmp/varnish-modules# make install
Making install in src
make[1]: Entering directory '/tmp/varnish-modules/src'
  GEN      vmod_bodyaccess.3
  GEN      vmod_cookie.3
  GEN      vmod_header.3
  GEN      vmod_saintmode.3
  GEN      vmod_tcp.3
  GEN      vmod_var.3
  GEN      vmod_vsthrottle.3
  GEN      vmod_xkey.3
make[2]: Entering directory '/tmp/varnish-modules/src'
make[2]: Nothing to be done for 'install-exec-am'.
  GEN      vmod_bodyaccess.3
  GEN      vmod_cookie.3
  GEN      vmod_header.3
  GEN      vmod_saintmode.3
  GEN      vmod_tcp.3
  GEN      vmod_var.3
  GEN      vmod_vsthrottle.3
  GEN      vmod_xkey.3
 /bin/mkdir -p '/usr/share/man/man3'
 /usr/bin/install -c -m 644 ./vmod_bodyaccess.3 ./vmod_cookie.3 ./vmod_header.3 ./vmod_saintmode.3 ./vmod_tcp.3 ./vmod_var.3 ./vmod_vsthrottle.3 ./vmod_xkey.3 '/usr/share/man/man3'
/usr/bin/install: cannot stat './vmod_bodyaccess.3': No such file or directory
/usr/bin/install: cannot stat './vmod_cookie.3': No such file or directory
/usr/bin/install: cannot stat './vmod_header.3': No such file or directory
/usr/bin/install: cannot stat './vmod_saintmode.3': No such file or directory
/usr/bin/install: cannot stat './vmod_tcp.3': No such file or directory
/usr/bin/install: cannot stat './vmod_var.3': No such file or directory
/usr/bin/install: cannot stat './vmod_vsthrottle.3': No such file or directory
/usr/bin/install: cannot stat './vmod_xkey.3': No such file or directory
Makefile:927: recipe for target 'install-man3' failed
make[2]: *** [install-man3] Error 1
make[2]: Leaving directory '/tmp/varnish-modules/src'
Makefile:1223: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/tmp/varnish-modules/src'
Makefile:537: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
nigoroll commented 6 years ago

@tristanbes please check if you got rst2man. configure should output a warning if you don't:

rst2man not found - not building man pages

if this is the cause, then the issue is unrelated to these changes. The varnish-modules makefiles should either not try to install man pages if rst2man is missing or require it.

tristanbes commented 6 years ago

I think it was because i didn't had python-docutils I wish there were a place somewhere listing all the depandancies we need to build this :(

nigoroll commented 6 years ago

FTR, just found https://github.com/varnish/varnish-modules/issues/123#issuecomment-431910617 where the root cause is also mentioned. @tristanbes I agree and have just opened #125

davividal commented 6 years ago

Any update on this? I could successfully compile and install varnish-modules against varnish 6.1, but I'm not sure if this is enough for me to use that under production. How can I help testing?

nigoroll commented 6 years ago

@davividal I am not quite sure I understand your question. Sure this code is production-ready, we (at UPLEX) use it (and even later updates found in https://github.com/nigoroll/varnish-modules/) for various high traffic sites.

dridi commented 6 years ago

Sorry but I'll say it here again: we do not wish to maintain multiple branches and parallel releases. And we don't release git tags but instead properly bootstrapped archives that shouldn't require optional build dependencies.

I want to thank @nigoroll for paving 6.1 support but we can't merge this as-is without breaking 4.1 and 6.0 (both LTS) compatibility. So this will have to wait either until someone sends a patch that maintains compatibility or when someone from our side gets time to do it.

nigoroll commented 6 years ago

@Dridi it's absolutely your choice as a maintainer (or rather as a member of the maintainer team), but I actually had considered maintaining backwards compatibility and I am not convinced this will be a good option long-term. IMHO, it will get increasingly hard and not help code clarity to achieve this objective with preprocessor macros and wrapper functions. Consider, for example

change.

Again, I value the varnish-modules bundle and would love to see it maintained long term. But I'm hesitating a bit to invest additional time into a path forward which might not be the most viable option.

dridi commented 6 years ago

@nigoroll it worked fine from 4.1 to 6.0, including 5.x compatibility along the way. On the bright side, once 4.1 goes EOL we can drop some of that burden and move to 6.0+ only :)

jpastuszek commented 5 years ago

I am using Varnish 6.1.1 with modules compiled from this branch, but now since that Varnish version is not "Retired" and I am getting panics I would like to move on to "Supported" version. Unfortunately I can't get this modules building with "Fresh" 6.2.0 or with "Supported" 6.0.3 version (I am happy to create Issue or provide more detail).

I am using some of this modules (var, vsthrottle, cookie, header and xkey) and removing them as dependency is not feasible. Also I have spent considerable amount of effort to move to Varnish 5 (from 4.1) and going back to Varnish 4.1 (since Varnish 5 is now also "Retired") is not an options (4.1 has some design issues that were solved in 5 that are important for my use case).

So in essence I am stuck with unstable and unsupported Varnish version and unable to move in any direction. Please advice on the future plans for this package as I need to reconsider options available to me going forward.

nigoroll commented 5 years ago

@jpastuszek I would recommend to use 6.2 with https://github.com/nigoroll/varnish-modules/ which I maintain. There is a 6.2 branch also basically snapshotting the current state as we will be moving ahead with varnish-cache master. Regarding maintenance from Varnish-Software, their policy is now written down in https://github.com/varnish/varnish-modules#status-of-this-repository so basically moving forward, the supported fork is the one mentioned above. It might help to know that this is also the basis now for fedora packages which may or may not end up in redhat linux, see https://www.redhat.com/en/technologies/linux-platforms/articles/relationship-between-fedora-and-rhel From the point of view of the https://github.com/varnishcache/ project (which is the open source project completely independent of Varnish-Software), we are considering to pull some vmods from this project into https://github.com/varnishcache/varnish-cache . We would also appreciate contributions in the form of pull requests.

dridi commented 5 years ago

I'm also really surprised to see that it doesn't work with Varnish 6.0.3, can you please open a separate ticket for that? Last time I had such a report (#132) it turned out to be a false-positive.

I will eventually drop 4.1 support and make 6.0 the new baseline, and hopefully soon after add 6.x support too but as long as 6.0 is supported the rest is not the priority.

jpastuszek commented 5 years ago

Thanks for the reply. I have tried branches from https://github.com/nigoroll/varnish-modules/ and I can confirm that:

As advised I will go ahead with Varnish 6.2.0. Sorry for the noise.

dridi commented 5 years ago

This pull request should be closed and revisited only when #138 is solved.