[PATCH] gnu: Add squid.

DoneSubmitted by Vincent Legoll.
Details
2 participants
  • Marius Bakke
  • Vincent Legoll
Owner
unassigned
Severity
normal
V
V
Vincent Legoll wrote on 20 Mar 2020 11:55
(address . guix-patches@gnu.org)
CAEwRq=rHBhrvhV_aBW2S9V1F_z4jODzr3Tfu83GHX4tZoFredQ@mail.gmail.com
The attached patch adds squid caching proxy so that we can all start
saving precious network bandwidth.

I lightly tested it with the attached squid config file, in foreground
mode, like the following:

# Create temporary test space for squid
mkdir /tmp/squid
# Create the hashed store directories
/gnu/store/szbiglrkvll6qdxcrg3ir0hz8zdc9h5f-squid-4.10/sbin/squid -N
-f ./squid.conf -z
# Run squid
/gnu/store/szbiglrkvll6qdxcrg3ir0hz8zdc9h5f-squid-4.10/sbin/squid -N
-f ./squid.conf

# In another shell
export http_proxy=localhost:3128
export https_proxy=localhost:3128
time wget google.fr
time wget google.fr
less /tmp/squid/access.log
less /tmp/squid/cache.log
ls -lah /tmp/squid/00/00

There's no shepherd ready to run service &
config definitions, as I still don't know how
to do that.

I'll try to create one, if no one beats me to
it, but it may already be useful as-is...

--
Vincent Legoll
Attachment: squid.conf
From 24a81038d315a4bf757eca590c53a16eac005879 Mon Sep 17 00:00:00 2001
From: Vincent Legoll <vincent.legoll@gmail.com>
Date: Fri, 20 Mar 2020 11:45:11 +0100
Subject: [PATCH] gnu: Add squid.

* gnu/packages/networking.scm (squid): New variable.
---
gnu/packages/networking.scm | 45 +++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (74 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index e9abac2991..6a6e836261 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -80,8 +80,10 @@
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
+;  #:use-module (gnu packages cppunit)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
@@ -98,6 +100,7 @@
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
+  #:use-module (gnu packages openldap)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -862,6 +865,48 @@ prints timing information for each step of the HTTP request (DNS lookup,
 TCP connection, TLS handshake and so on) in the terminal.")
     (license license:expat)))
 
+(define-public squid
+  (package
+    (name "squid")
+    (version "4.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.squid-cache.org/Versions/v4/squid-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "07sz0adv8nkhy797675bpra7lvdkwjq9isw1ddgylhlazl511w4q"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-true-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "test-suite/testheaders.sh"
+               (("/bin/true")
+                (string-append (assoc-ref inputs "coreutils")
+                               "/bin/true")))
+             #t)))))
+    (inputs
+     `(("perl" ,perl)
+       ("openldap" ,openldap)
+       ("linux-pam" ,linux-pam)
+       ("libcap" ,libcap)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("expat" ,expat)
+       ("libxml2" ,libxml2)
+       ("openssl" ,openssl)))
+    (native-inputs
+     `(("cppunit" ,cppunit)
+       ("coreutils" ,coreutils) ; test suite needs /bin/true
+       ("pkg-config" ,pkg-config)))
+    (synopsis "A web caching proxy supporting HTTP, HTTPS, FTP, etc.")
+    (description "Squid is a caching proxy for the Web supporting HTTP, HTTPS,
+FTP, and more.  It reduces bandwidth and improves response times by caching and
+reusing frequently-requested web pages.")
+    (home-page "http://www.squid-cache.org/")
+    (license license:gpl2)))
+
 (define-public bwm-ng
   (package
     (name "bwm-ng")
-- 
2.25.1
M
M
Marius Bakke wrote on 20 Mar 2020 18:25
87tv2j7xb2.fsf@devup.no
Vincent Legoll <vincent.legoll@gmail.com> writes:

Toggle quote (3 lines)
> The attached patch adds squid caching proxy so that we can all start
> saving precious network bandwidth.

Nice, about time! :-)

Toggle quote (28 lines)
> I lightly tested it with the attached squid config file, in foreground
> mode, like the following:
>
> # Create temporary test space for squid
> mkdir /tmp/squid
> # Create the hashed store directories
> /gnu/store/szbiglrkvll6qdxcrg3ir0hz8zdc9h5f-squid-4.10/sbin/squid -N
> -f ./squid.conf -z
> # Run squid
> /gnu/store/szbiglrkvll6qdxcrg3ir0hz8zdc9h5f-squid-4.10/sbin/squid -N
> -f ./squid.conf
>
> # In another shell
> export http_proxy=localhost:3128
> export https_proxy=localhost:3128
> time wget google.fr
> time wget google.fr
> less /tmp/squid/access.log
> less /tmp/squid/cache.log
> ls -lah /tmp/squid/00/00
>
> There's no shepherd ready to run service &
> config definitions, as I still don't know how
> to do that.
>
> I'll try to create one, if no one beats me to
> it, but it may already be useful as-is...

Writing services may seem intimidating at first, but is actually easier
than it looks. I think you'll figure it out fairly quickly. :-)

Toggle quote (7 lines)
> From 24a81038d315a4bf757eca590c53a16eac005879 Mon Sep 17 00:00:00 2001
> From: Vincent Legoll <vincent.legoll@gmail.com>
> Date: Fri, 20 Mar 2020 11:45:11 +0100
> Subject: [PATCH] gnu: Add squid.
>
> * gnu/packages/networking.scm (squid): New variable.

[...]

Toggle quote (2 lines)
> +; #:use-module (gnu packages cppunit)

I dropped this leftover from the patch.

[...]

Toggle quote (13 lines)
> + (inputs
> + `(("perl" ,perl)
> + ("openldap" ,openldap)
> + ("linux-pam" ,linux-pam)
> + ("libcap" ,libcap)
> + ("cyrus-sasl" ,cyrus-sasl)
> + ("expat" ,expat)
> + ("libxml2" ,libxml2)
> + ("openssl" ,openssl)))
> + (native-inputs
> + `(("cppunit" ,cppunit)
> + ("coreutils" ,coreutils) ; test suite needs /bin/true

coreutils is already implicitly available, so I removed this input.

Toggle quote (3 lines)
> + ("pkg-config" ,pkg-config)))
> + (synopsis "A web caching proxy supporting HTTP, HTTPS, FTP, etc.")

I changed this to just "Web caching proxy" to please 'guix lint'.

Toggle quote (6 lines)
> + (description "Squid is a caching proxy for the Web supporting HTTP, HTTPS,
> +FTP, and more. It reduces bandwidth and improves response times by caching and
> +reusing frequently-requested web pages.")
> + (home-page "http://www.squid-cache.org/")
> + (license license:gpl2)))

The license is actually GPL2+ according to the source code headers.

Applied with these changes, thank you!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl50/KEACgkQoqBt8qM6
VPrDhAgAxZUQvH6MccpnvrxHEwPtzK+EoJpYy66x/Ybbniy5rGzxkzukEuQYh32x
9JqjP/NjeN/yJNQ4kRXLtINm/IMXIS1icFDE9DW5M+MoMS2EuNzoDauTHrhS2rRR
sINzMhCbJ/qm1mZbk8hKiEFMj2ke5oQn482lE17IUWDR4pMfEJAEq5uVM1vD6bZX
lMs9zDum4CYKWqzBCveHmOnx+f+NGwdQGMFp+AyHbqBkAHjeQeE7ziYrzJs1G60y
DDY9ZNfGr9gwgBtb63N33kgkEdn5rqilcquowNhB30m165X0ssZS9DanEXvr1daO
mK/8f83Tpe7nij7XS0EcW+QdQr5Sog==
=kLlt
-----END PGP SIGNATURE-----

Closed
V
V
Vincent Legoll wrote on 20 Mar 2020 18:35
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 40145-done@debbugs.gnu.org)
CAEwRq=oAN_3L-dsDz=13VVejv-R5zHWuXwWicEgToLtcz6V3vQ@mail.gmail.com
Hello,

On Fri, Mar 20, 2020 at 6:25 PM Marius Bakke <mbakke@fastmail.com> wrote:
Toggle quote (8 lines)
>
> Vincent Legoll <vincent.legoll@gmail.com> writes:
>
> > The attached patch adds squid caching proxy so that we can
> > all start saving precious network bandwidth.
>
> Nice, about time! :-)

Necessity is the mother of...

Toggle quote (11 lines)
> > There's no shepherd ready to run service &
> > config definitions, as I still don't know how
> > to do that.
> >
> > I'll try to create one, if no one beats me to
> > it, but it may already be useful as-is...
>
> Writing services may seem intimidating at first, but is
> > actually easier
> than it looks. I think you'll figure it out fairly quickly. :-)

Currently reading the doc...

Toggle quote (13 lines)
> > From 24a81038d315a4bf757eca590c53a16eac005879 Mon Sep 17 00:00:00 2001
> > From: Vincent Legoll <vincent.legoll@gmail.com>
> > Date: Fri, 20 Mar 2020 11:45:11 +0100
> > Subject: [PATCH] gnu: Add squid.
> >
> > * gnu/packages/networking.scm (squid): New variable.
>
> [...]
>
> > +; #:use-module (gnu packages cppunit)
>
> I dropped this leftover from the patch.

oopsie, I let this one slip, usually I proof-read before sending,
looks like I was in a hurry...

Toggle quote (17 lines)
> [...]
>
> > + (inputs
> > + `(("perl" ,perl)
> > + ("openldap" ,openldap)
> > + ("linux-pam" ,linux-pam)
> > + ("libcap" ,libcap)
> > + ("cyrus-sasl" ,cyrus-sasl)
> > + ("expat" ,expat)
> > + ("libxml2" ,libxml2)
> > + ("openssl" ,openssl)))
> > + (native-inputs
> > + `(("cppunit" ,cppunit)
> > + ("coreutils" ,coreutils) ; test suite needs /bin/true
>
> coreutils is already implicitly available, so I removed this input.

OK

Toggle quote (5 lines)
> The license is actually GPL2+ according to the source code
> headers.
>
> Applied with these changes, thank you!

Thanks for the fixes !

--
Vincent Legoll
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 40145@debbugs.gnu.org