From unknown Fri Jun 20 07:09:02 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#73170 <73170@debbugs.gnu.org> To: bug#73170 <73170@debbugs.gnu.org> Subject: Status: [PATCH] gnu: Add cl-async-process. Reply-To: bug#73170 <73170@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:09:02 +0000 retitle 73170 [PATCH] gnu: Add cl-async-process. reassign 73170 guix-patches submitter 73170 jgart severity 73170 normal tag 73170 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 10 12:21:23 2024 Received: (at submit) by debbugs.gnu.org; 10 Sep 2024 16:21:23 +0000 Received: from localhost ([127.0.0.1]:36881 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so3cI-0004xe-M2 for submit@debbugs.gnu.org; Tue, 10 Sep 2024 12:21:23 -0400 Received: from lists.gnu.org ([209.51.188.17]:43302) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so3cG-0004xW-GT for submit@debbugs.gnu.org; Tue, 10 Sep 2024 12:21:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1so3cA-0001DB-HB for guix-patches@gnu.org; Tue, 10 Sep 2024 12:21:14 -0400 Received: from mx2.dismail.de ([159.69.191.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1so3c5-0004gU-Vb for guix-patches@gnu.org; Tue, 10 Sep 2024 12:21:13 -0400 Received: from mx2.dismail.de (localhost [127.0.0.1]) by mx2.dismail.de (OpenSMTPD) with ESMTP id 59be9a58 for ; Tue, 10 Sep 2024 18:21:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=from:to:cc :subject:date:message-id:mime-version:content-transfer-encoding; s=20190914; bh=x661ykv+e3Mx9V3o6cG3w7Fx2fVCNbW1i0NTJ95CIuU=; b= SO98ybtwI4g8W9TfZ0ZReU2av5frN0uQPxtOj6LXV0dMXTQ6eoHzGHIzeIwCHTVO SOYVuNy1XoAxzMP67K7OG2x8QLLB0B+nfV763iNmy+7GQdTLjsrRZQUpE+CWEROK 57hMKV+dmD132HTbFVeTJ/1XBSu9xRvLUaPATAGAzzaQqe97EeSVTn9zLY0aBJz8 02awY83y/9eqPc2xYK47TgEBxLtdIFJrzeKwne344ZhDqMbXsuTExs/DK5JjibB5 A8qULy3SM6aIbXvPJ/PMsM7tzzfW3jdEQwt5BrZQdSEkSQSj0dlnb/ftdkuD7NOj HW6Wiq/W5sEd/d3+tUfVTQ== Received: from smtp2.dismail.de ( [10.240.26.12]) by mx2.dismail.de (OpenSMTPD) with ESMTP id e49c5f76 for ; Tue, 10 Sep 2024 18:21:05 +0200 (CEST) Received: from smtp2.dismail.de (localhost [127.0.0.1]) by smtp2.dismail.de (OpenSMTPD) with ESMTP id f05a83ab for ; Tue, 10 Sep 2024 18:21:04 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id 4a99b68f (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Tue, 10 Sep 2024 18:20:59 +0200 (CEST) From: jgart To: guix-patches@gnu.org Subject: [PATCH] gnu: Add cl-async-process. Date: Tue, 10 Sep 2024 11:20:44 -0500 Message-ID: <21b927da240259b41c3ceee1a246019095509740.1725985244.git.jgart@dismail.de> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 X-Debbugs-Cc: Guillaume Le Vaillant , Katherine Cox-Buday , Munyoki Kilyungi , Sharlatan Hellseher , jgart Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=159.69.191.136; envelope-from=jgart@dismail.de; helo=mx2.dismail.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: jgart X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) * gnu/packages/lisp-xyz.scm (cl-async-process, ecl-async-process, sbcl-async-process): New variables. Change-Id: I4e4707ffa30b6fcd1267e681f71a874c790746f4 --- gnu/packages/lisp-xyz.scm | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 02eb3514ee..eaaaa17f99 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -81,6 +81,7 @@ (define-module (gnu packages lisp-xyz) #:use-module (guix build-system trivial) #:use-module (guix build-system emacs) #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages c) #:use-module (gnu packages compression) @@ -2850,6 +2851,80 @@ (define-public cl-cells (define-public ecl-cells (sbcl-package->ecl-package sbcl-cells)) +(define (async-process-origin commit name version) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lem-project/async-process") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1m2sfgfg6c0gqqy1pqsahsiw3j25y473mfw7sx0akkqbhwhm7mjb")) + (modules '((guix build utils))) + (snippet + ;; Delete precompiled artifacts. + `(begin + (for-each delete-file-recursively + (list "static" + "static_old0001-819cbf6")))))) + +(define async-process-c-sources + (let ((commit "9690530fc92b59636d9f17d821afa7697e7c8ca4") + (revision "0")) + (package + (name "async-process-c-sources") + (version (git-version "0.0.1" revision commit)) + (source (async-process-origin commit name version)) + (build-system gnu-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + (invoke "libtoolize") + (invoke "aclocal") + (invoke "autoheader") + (invoke "automake" "-a") + (invoke "autoconf")))))) + (native-inputs (list autoconf automake libtool)) + (home-page "https://github.com/lem-project/async-process") + (synopsis "Asynchronous process execution for Common Lisp") + (description "This library provides an asynchronous process +execution mechanism for Common Lisp.") + (license license:expat)))) + +(define-public sbcl-async-process + (let ((commit "9690530fc92b59636d9f17d821afa7697e7c8ca4") + (revision "0")) + (package + (name "sbcl-async-process") + (version (git-version "0.0.1" revision commit)) + (source (async-process-origin commit name version)) + (build-system asdf-build-system/sbcl) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/async-process.lisp" + (("libasyncprocess\\.so") + (search-input-file inputs + "/lib/async-process/libasyncprocess.so")))))))) + (inputs (list async-process-c-sources sbcl-cffi)) + (home-page "https://github.com/lem-project/async-process") + (synopsis "Asynchronous process execution for Common Lisp") + (description "This library provides an asynchronous process +execution mechanism for Common Lisp.") + (license license:expat)))) + +(define-public cl-async-process + (sbcl-package->cl-source-package sbcl-async-process)) + +(define-public ecl-async-process + (sbcl-package->ecl-package sbcl-async-process)) + (define-public sbcl-cephes (let ((commit "d87146fa38c8425ffb5fe425eee5eb3e818bacd4") (revision "0")) base-commit: f977cb2b609f7122db2cf026cac5ab9d6d44a206 -- 2.46.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 10 12:41:50 2024 Received: (at 73170) by debbugs.gnu.org; 10 Sep 2024 16:41:50 +0000 Received: from localhost ([127.0.0.1]:36904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so3w5-0005zv-Rx for submit@debbugs.gnu.org; Tue, 10 Sep 2024 12:41:50 -0400 Received: from mx2.dismail.de ([159.69.191.136]:48280) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1so3w3-0005zf-NB for 73170@debbugs.gnu.org; Tue, 10 Sep 2024 12:41:48 -0400 Received: from mx2.dismail.de (localhost [127.0.0.1]) by mx2.dismail.de (OpenSMTPD) with ESMTP id 9bf2413b; Tue, 10 Sep 2024 18:41:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=from:to:cc :subject:in-reply-to:date:message-id:mime-version:content-type; s=20190914; bh=S0C7n7bmZY97FCR9Qkiiz2RX3C4EKJ1tUwzjtKg9GgA=; b= cCkyHb/pmUDWefwzcDaEGslAii6wOmbEbutA+eFOrIpPoxIbUxr3qJl2LAzN9HPP MimzM9VxARNGZlp8co2Dp+1iwx3D4uJiLcqvL+1mA3TFyKevMm0xIUJevXwyRaTd 2DM0Xs92g8nBVWxzoPLv1m84KRvUBelxMt9OUkoB6FpbHhgBf1i8eIDmAI1ls6dS glvg21OExpU/044zu+1d3RV21dAV5poJTw5jYJy/CJd0F+pugKPiBVdR2kePyyu0 ow80K5aSaV2FXcKKpE/ou8dQ6wk2jNlhQbxgIGjhfrWL8cs+9ietbyPylK2WeeDM 6HaXkG7nJygWF4E+jQYm3w== Received: from smtp2.dismail.de ( [10.240.26.12]) by mx2.dismail.de (OpenSMTPD) with ESMTP id 4f5a40e4; Tue, 10 Sep 2024 18:41:35 +0200 (CEST) Received: from smtp2.dismail.de (localhost [127.0.0.1]) by smtp2.dismail.de (OpenSMTPD) with ESMTP id 2bcea03a; Tue, 10 Sep 2024 18:41:35 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id 239c43c6 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Tue, 10 Sep 2024 18:41:34 +0200 (CEST) From: jgart To: 73170@debbugs.gnu.org Subject: Re: [PATCH] gnu: Add cl-async-process. In-Reply-To: <21b927da240259b41c3ceee1a246019095509740.1725985244.git.jgart@dismail.de> Date: Tue, 10 Sep 2024 11:41:31 -0500 Message-ID: <874j6nihqc.fsf@dismail.de> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 73170 Cc: Guillaume Le Vaillant , jgart X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Guillaume, Would you be able to review this one? This package is a dependency of the lem text editor. To give some context, this package has C source code that needs to be compiled. There is a bootstrap script in the root of the project repository that does too much. It also runs configure and make, for example. https://github.com/lem-project/async-process/issues/21 Thanks! -- all the best, jgart From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 17 09:17:03 2024 Received: (at 73170) by debbugs.gnu.org; 17 Sep 2024 13:17:03 +0000 Received: from localhost ([127.0.0.1]:54216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqY4l-0003uj-18 for submit@debbugs.gnu.org; Tue, 17 Sep 2024 09:17:03 -0400 Received: from mout01.posteo.de ([185.67.36.65]:38383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqY4i-0003u5-RP for 73170@debbugs.gnu.org; Tue, 17 Sep 2024 09:17:01 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 8E11F240027 for <73170@debbugs.gnu.org>; Tue, 17 Sep 2024 15:16:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1726578998; bh=dKn+JA60wTCIbwabOUfQ97eHwWAsSjihYSD0yKuj9EA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type: From; b=GuVceisaw1mfHTrB5b7zo/V2mn6zYBFcXT2aU+oQ1u+1LremeGymqH2tzg4IuH2dy id3Zow5IgymEKdpz5KdeshvzyeRjOg2zDFVw6TsjFZvoKQUDti0aJMbdvwwRCMBM7k k+jyQ62X3MRDatqEYlsaSmsmJJAQYTd9iTcmqdz9RFThgjsDvSzH3UAk3crSDJISSP qVC0PXPEPR7Zm1aJIK2R16VUiIlEJDePlmjtc0kU+iRrR+oFcJlbzYop58ZLwTBEZf MglEqdTyLx/gDmTEbzTD01hOiSbsHVeCV8MJs3R7Az7eg/wkfTM8v9lNf646pEFIfY WIAoorB1issAg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4X7MkF5pylz6twM; Tue, 17 Sep 2024 15:16:37 +0200 (CEST) From: Guillaume Le Vaillant To: jgart Subject: Re: [bug#73170] [PATCH] gnu: Add cl-async-process. In-Reply-To: <21b927da240259b41c3ceee1a246019095509740.1725985244.git.jgart@dismail.de> (jgart@dismail.de's message of "Tue, 10 Sep 2024 11:20:44 -0500") References: <21b927da240259b41c3ceee1a246019095509740.1725985244.git.jgart@dismail.de> Date: Tue, 17 Sep 2024 13:16:36 +0000 Message-ID: <874j6es9mz.fsf@kitej> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 73170 Cc: 73170@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi. jgart skribis: > +(define (async-process-origin commit name version) > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/lem-project/async-process") > + (commit commit))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "1m2sfgfg6c0gqqy1pqsahsiw3j25y473mfw7sx0akkqbhwhm7mjb")) > + (modules '((guix build utils))) > + (snippet > + ;; Delete precompiled artifacts. > + `(begin > + (for-each delete-file-recursively > + (list "static" > + "static_old0001-819cbf6")))))) I don't think this function is necessary; and the sha256 hash is fixed here but it would in fact depend on the commit passed as argument to the function. > +(define async-process-c-sources > + (let ((commit "9690530fc92b59636d9f17d821afa7697e7c8ca4") > + (revision "0")) > + (package > + (name "async-process-c-sources") > + (version (git-version "0.0.1" revision commit)) > + (source (async-process-origin commit name version)) > + (build-system gnu-build-system) > + (arguments > + (list > + #:phases > + #~(modify-phases %standard-phases > + (replace 'bootstrap > + (lambda _ > + (invoke "libtoolize") > + (invoke "aclocal") > + (invoke "autoheader") > + (invoke "automake" "-a") > + (invoke "autoconf")))))) > + (native-inputs (list autoconf automake libtool)) > + (home-page "https://github.com/lem-project/async-process") > + (synopsis "Asynchronous process execution for Common Lisp") > + (description "This library provides an asynchronous process > +execution mechanism for Common Lisp.") > + (license license:expat)))) So I would rather put the 'origin' field in this package building the C library. And as the purpose of this package is to build the libasyncprocess library, I would just call it "libasyncprocess". > +(define-public sbcl-async-process > + (let ((commit "9690530fc92b59636d9f17d821afa7697e7c8ca4") > + (revision "0")) > + (package > + (name "sbcl-async-process") > + (version (git-version "0.0.1" revision commit)) > + (source (async-process-origin commit name version)) > + (build-system asdf-build-system/sbcl) > + (arguments > + (list > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'fix-paths > + (lambda* (#:key inputs #:allow-other-keys) > + (substitute* "src/async-process.lisp" > + (("libasyncprocess\\.so") > + (search-input-file inputs > + "/lib/async-process/libasyncproces= s.so")))))))) > + (inputs (list async-process-c-sources sbcl-cffi)) > + (home-page "https://github.com/lem-project/async-process") > + (synopsis "Asynchronous process execution for Common Lisp") > + (description "This library provides an asynchronous process > +execution mechanism for Common Lisp.") > + (license license:expat)))) Then the sbcl-async-process package could be simplified by inheriting from the libasyncprocess package, and modifying the 'name', 'build-system', 'inputs' and 'arguments' fields. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCZumBNQ8cZ2x2QHBvc3Rl by5uZXQACgkQa+ggit8h/j98jwD8CX1SzVp/8GuAypsPptIHsD2q4oIittJc6VL6 nHm+PYABAIc4yMwb5yNatCFG2nNqZK3dQPk6t0X5/UVQOnV7D3Ee =JBOI -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 26 02:54:51 2024 Received: (at 73170-done) by debbugs.gnu.org; 26 Sep 2024 06:54:51 +0000 Received: from localhost ([127.0.0.1]:47760 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1stiOp-0006oI-Bg for submit@debbugs.gnu.org; Thu, 26 Sep 2024 02:54:51 -0400 Received: from mx2.dismail.de ([159.69.191.136]:10972) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1stiOl-0006no-8j for 73170-done@debbugs.gnu.org; Thu, 26 Sep 2024 02:54:49 -0400 Received: from mx2.dismail.de (localhost [127.0.0.1]) by mx2.dismail.de (OpenSMTPD) with ESMTP id 56f87b6c; Thu, 26 Sep 2024 08:54:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h= mime-version:date:content-type:content-transfer-encoding:from :message-id:subject:to; s=20190914; bh=lBSSAbycMejaULs8Npa0DwFq9 79mbIPjOTMqn7SZel0=; b=lmEKkrCQHgUkXom8EBBsNEC0kdXYYrCjPP1FW9wnL 15a2dhtfbiUTrGDu+qNWKlTA2H56f8/chiquwe9zY5k4mie9shKR8+Uwn5aHZT0O EH9urJKR/I0Sf1K63ybPK+am2+H3Z/GzTnbftWDKsVo5BSGrtD+llRPIgajMiEKQ kC0G6hgDomj4SOKcjpYI5bnJjMv9noH2Rt/8IN23r1AxTHZDFk8ulfBowBFca6Kz iMFkWTHiFFi5z1OXmJGNZv5G3rW61stXXYh3pg3odI8s8ZNg5ffpQh7Z57xwMipJ Cz9NhVHxUA8cUZV0Bz1ioXiFD/O3Tp29qKOMW4eeIetXQ== Received: from smtp2.dismail.de ( [10.240.26.12]) by mx2.dismail.de (OpenSMTPD) with ESMTP id 1ca90034; Thu, 26 Sep 2024 08:54:12 +0200 (CEST) Received: from smtp2.dismail.de (localhost [127.0.0.1]) by smtp2.dismail.de (OpenSMTPD) with ESMTP id 974b4d29; Thu, 26 Sep 2024 08:54:12 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id dcce96e1 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Thu, 26 Sep 2024 08:54:12 +0200 (CEST) MIME-Version: 1.0 Date: Thu, 26 Sep 2024 06:54:11 +0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: "jgart" Message-ID: TLS-Required: No Subject: Re: [PATCH] gnu: Add cl-async-process. To: 73170-done@debbugs.gnu.org, "Guillaume Le Vaillant" X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: 73170-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.2 (---) Hi Guillaume, I added your requested changes and pushed the patch in the following comm= it: 5955c2aebc95f5ba7a75a92e2c045af8ea56685b Closing this issue now. Thanks for the review! all the best, jgart From unknown Fri Jun 20 07:09:02 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 24 Oct 2024 11:24:21 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator