[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#517077: marked as done (FTBFS when SHELL isn't set; also "SHELL ?= =/bin/sh -e" in debian/rules is useless and wrong)



Your message dated Fri, 27 Feb 2009 19:32:25 +0000
with message-id <E1Ld8Rd-0003vz-Ll@ries.debian.org>
and subject line Bug#517077: fixed in glibc 2.9-4
has caused the Debian Bug report #517077,
regarding FTBFS when SHELL isn't set; also "SHELL ?= =/bin/sh -e" in debian/rules is useless and wrong
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
517077: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517077
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: glibc
Version: 2.9-3
Severity: important
Tags: patch

        Hi,

 (Sorry if I'm reporting two issues in this single bug, the fix is the
 same for both and it's best to know about both when fixing either.)

 glibc fails to build in an environment where SHELL isn't set -- which
 is the case by default when using debuild (it clears the env).  The
 testsuite fails with:
make[2]: Target `check' not remade because of errors.
make[2]: Leaving directory `/home/lool/scratch/glibc/glibc-2.9'
make[1]: *** [check] Error 2
make[1]: Leaving directory `/home/lool/scratch/glibc/glibc-2.9/build-tree/amd64-libc'
#
# Testsuite failures, someone should be working towards
# fixing these! They are listed here for the purpose of
# regression testing during builds.
# Format: <Failed test>, Error <Make error code> [(ignored)]
#
tst-tables.out, Error 1
***************
Encountered regressions that don't match expected failures:
tst-tables.out, Error 1

 I could reproduce this on amd64 and armel.

 This is due to an upstream bug: "env -i make check" fails but "env -i
 SHELL=/bin/zsh make check" passes.

 While debugging this issue with SHELL not being set properly, I saw
 this in glibc's debian/rules:
    SHELL                 ?= =/bin/sh -e
   However this statement is never going to be useful: make sets SHELL
 despite whatever value the env might have, so ?= will never set it.
   You can check this with this Makefile:
    SHELL ?= foo

    $(info origin: $(origin SHELL))
    $(info SHELL=$(SHELL))
    $(info env SHELL=$(shell printenv SHELL))

    default:
            $(SHELL) -c printenv SHELL | grep ^SHELL=

 % env -i make
 origin: default
 SHELL=/bin/sh
 env SHELL=
 /bin/sh -c printenv SHELL | grep ^SHELL=
 make: *** [default] Error 1

 % env -i SHELL=bar make
 origin: file
 SHELL=/bin/sh
 env SHELL=bar
 /bin/sh -c printenv SHELL | grep ^SHELL=
 SHELL=bar

 => SHELL was never defined with ?=, neither for env nor for Makefile

 If you change the Makefile to set SHELL as follows:
    SHELL := =/bin/sh -e

 % env -i SHELL=bar make
 origin: file
 SHELL==/bin/sh -e
 /bin/sh: =/bin/sh: No such file or directory
 env SHELL=
 =/bin/sh -e -c printenv SHELL | grep ^SHELL=
 /bin/sh: =/bin/sh: No such file or directory
 make: *** [default] Error 127

 => can't even run; I think the "=" was bogus


 The main bug is that the glibc testsuite relies on SHELL being in the
 env; some tests are called from within upstream's make check with:
    $(SHELL) foo.sh
 which will work even if SHELL isn't exported in the env because it's
 set by make.  However some scripts call other scripts which call other
 scripts, and in that latter case $(SHELL) isn't in the env anymore:
    <original env>: SHELL unset
        debian/rules: SHELL defined by make
            $(MAKE) check: SHELL defined by make (same process as above)
                $(SHELL) tst-tables.sh: SHELL is a regular var, not env
                    $(SHELL) tst-table.sh: SHELL unset (new shell)
                        $(SHELL) tst-table-charmap.sh: fails

 => SHELL being unset in the original env might fail the testsuite.


 So there are two things to fix with SHELL:
 a) fixing upstream's assumptions; this can be done by adding this
    snippet near the top of tst-tables.sh:
    if test "$SHELL" = ""; then SHELL=/bin/sh; fi
    export SHELL

    I confirmed this works for a shebang using bash, zsh, dash, and
    posh; only bash sets SHELL by default, and it sets it to the user
    account db value; so it will work either if called directly or if
    called from make as "$(SHELL) tst-tables.sh".

    Alternatively, you could opt to export SHELL from rules, but in this
    case you need to be very careful with how you set SHELL in your
    rules, or pass it to all upstream command invocations.

    You could either export SHELL from rules, but in that case /bin/sh
    will always be used for the upstream build:
    export SHELL

    Or if you want to check the value of $SHELL in the env in which
    debian/rules was called and export SHELL if it wasn't set, you can
    use:
    ENV_SHELL := $(shell echo $$SHELL)
    ifeq ($(ENV_SHELL),)
    # SHELL is always set to /bin/sh by make
    export SHELL
    endif

    (but I don't recommend this last solution since it will use random
    shells to run the upstream rules)

 b) fixing debian/rules' SHELL, either by dropping it or by setting it
    right.  I think the intent was to use "-e" and the "=" seemed bogus,
    so I propose simply doing:
    SHELL += -e
    NB: I didn't check whether debian/rules actually are set -e safe

    if you care to use the env's SHELL, using -e, and passing that to
    upstream, you could do:
    ENV_SHELL := $(shell echo $$SHELL)
    $(error $(ENV_SHELL))
    ifeq ($(ENV_SHELL),)
    # SHELL is always set to /bin/sh by make
    SHELL += -e
    export SHELL
    else
    # prefer using the env's SHELL, but "set -e"
    SHELL := $(ENV_SHELL) -e
    endif

    (but I don't recommend this last solution since it will use random
    shells to run debian/rules)


 Finally, I'd like to note two things:
 - In glibc 2.1.2-2, Joel Klecker noted:
    Call make with SHELL=/bin/bash, as the test suite seems to rely on
    bash behavior.
   so you might want to force bash
 - In glibc 2.9-2, Aurélien Jarno noted:
    rules.d/build.mk: define SHELL as /bin/bash.
   this doesn't seem to be enough for the testsuite, you might want to
   revert this or fix the testsuite to use that.


 Bye

-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.28-1-686 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

-- 
Loïc Minier



--- End Message ---
--- Begin Message ---
Source: glibc
Source-Version: 2.9-4

We believe that the bug you reported is fixed in the latest version of
glibc, which is due to be installed in the Debian FTP archive:

glibc-doc_2.9-4_all.deb
  to pool/main/g/glibc/glibc-doc_2.9-4_all.deb
glibc-source_2.9-4_all.deb
  to pool/main/g/glibc/glibc-source_2.9-4_all.deb
glibc_2.9-4.diff.gz
  to pool/main/g/glibc/glibc_2.9-4.diff.gz
glibc_2.9-4.dsc
  to pool/main/g/glibc/glibc_2.9-4.dsc
libc6-dbg_2.9-4_amd64.deb
  to pool/main/g/glibc/libc6-dbg_2.9-4_amd64.deb
libc6-dev-i386_2.9-4_amd64.deb
  to pool/main/g/glibc/libc6-dev-i386_2.9-4_amd64.deb
libc6-dev_2.9-4_amd64.deb
  to pool/main/g/glibc/libc6-dev_2.9-4_amd64.deb
libc6-i386_2.9-4_amd64.deb
  to pool/main/g/glibc/libc6-i386_2.9-4_amd64.deb
libc6-pic_2.9-4_amd64.deb
  to pool/main/g/glibc/libc6-pic_2.9-4_amd64.deb
libc6-prof_2.9-4_amd64.deb
  to pool/main/g/glibc/libc6-prof_2.9-4_amd64.deb
libc6-udeb_2.9-4_amd64.udeb
  to pool/main/g/glibc/libc6-udeb_2.9-4_amd64.udeb
libc6_2.9-4_amd64.deb
  to pool/main/g/glibc/libc6_2.9-4_amd64.deb
libnss-dns-udeb_2.9-4_amd64.udeb
  to pool/main/g/glibc/libnss-dns-udeb_2.9-4_amd64.udeb
libnss-files-udeb_2.9-4_amd64.udeb
  to pool/main/g/glibc/libnss-files-udeb_2.9-4_amd64.udeb
locales-all_2.9-4_amd64.deb
  to pool/main/g/glibc/locales-all_2.9-4_amd64.deb
locales_2.9-4_all.deb
  to pool/main/g/glibc/locales_2.9-4_all.deb
nscd_2.9-4_amd64.deb
  to pool/main/g/glibc/nscd_2.9-4_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 517077@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated glibc package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Fri, 27 Feb 2009 19:01:26 +0100
Source: glibc
Binary: glibc-doc glibc-source locales locales-all nscd libc6 libc6-dev libc6-dbg libc6-prof libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-prof libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-prof libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-prof libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc64 libc6-dev-sparc64 libc6-s390x libc6-dev-s390x libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-sparcv9b libc6-i686 libc6-xen libc0.1-i686 libc6.1-alphaev67 libnss-dns-udeb libnss-files-udeb
Architecture: source all amd64
Version: 2.9-4
Distribution: unstable
Urgency: low
Maintainer: Aurelien Jarno <aurel32@debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description: 
 glibc-doc  - GNU C Library: Documentation
 glibc-source - GNU C Library: sources
 libc0.1    - GNU C Library: Shared libraries
 libc0.1-dbg - GNU C Library: detached debugging symbols
 libc0.1-dev - GNU C Library: Development Libraries and Header Files
 libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64
 libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64
 libc0.1-i686 - GNU C Library: Shared libraries [i686 optimized]
 libc0.1-pic - GNU C Library: PIC archive library
 libc0.1-prof - GNU C Library: Profiling Libraries
 libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc0.3    - GNU C Library: Shared libraries
 libc0.3-dbg - GNU C Library: detached debugging symbols
 libc0.3-dev - GNU C Library: Development Libraries and Header Files
 libc0.3-pic - GNU C Library: PIC archive library
 libc0.3-prof - GNU C Library: Profiling Libraries
 libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc6      - GNU C Library: Shared libraries
 libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64
 libc6-dbg  - GNU C Library: detached debugging symbols
 libc6-dev  - GNU C Library: Development Libraries and Header Files
 libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64
 libc6-dev-i386 - GNU C Library: 32bit development libraries for AMD64
 libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64
 libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64
 libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64
 libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64
 libc6-dev-s390x - GNU C Library: 64bit Development Libraries for IBM zSeries
 libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC
 libc6-i386 - GNU C Library: 32bit shared libraries for AMD64
 libc6-i686 - GNU C Library: Shared libraries [i686 optimized]
 libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64
 libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64
 libc6-pic  - GNU C Library: PIC archive library
 libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64
 libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64
 libc6-prof - GNU C Library: Profiling Libraries
 libc6-s390x - GNU C Library: 64bit Shared libraries for IBM zSeries
 libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC
 libc6-sparcv9b - GNU C Library: Shared libraries [v9b optimized]
 libc6-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc6-xen  - GNU C Library: Shared libraries [Xen version]
 libc6.1    - GNU C Library: Shared libraries
 libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized)
 libc6.1-dbg - GNU C Library: detached debugging symbols
 libc6.1-dev - GNU C Library: Development Libraries and Header Files
 libc6.1-pic - GNU C Library: PIC archive library
 libc6.1-prof - GNU C Library: Profiling Libraries
 libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libnss-dns-udeb - GNU C Library: NSS helper for DNS - udeb (udeb)
 libnss-files-udeb - GNU C Library: NSS helper for files - udeb (udeb)
 locales    - GNU C Library: National Language (locale) data [support]
 locales-all - GNU C Library: Precompiled locale data
 nscd       - GNU C Library: Name Service Cache Daemon
Closes: 516516 516908 517077 517094
Changes: 
 glibc (2.9-4) unstable; urgency=low
 .
   * testsuite-checking/expected-results-ia64-linux-gnu-libc: ignore
     result of tst-oddstacklimit.out, it is known to fail with old
     kernels, just like in glibc 2.7.
   * debian/debhelper.in/libc{-alt,-otherbuild,}.lintian: remove outdated
     overrides.
   * debhelper.in/libc.postinst: restart NSS services on upgrades from
     versions prior to 2.9-1.
   * testsuite-checking/expected-results-arm-linux-gnueabi-libc: ignore
     result of test-fenv.out and test-fpucw.out, as they were already
     failing with glibc 2.7.
   * patches/any/submitted-futex_robust_pi.diff: new patch to correctly
     define when PI futexes and robust mutexes have been introduced
     in the kernel, on a per architecture basis.
   * testsuite-checking/expected-results-{alpha,ia64}-linux-gnu-libc:
     remove PI futexes failures.
   * patches/all/submitted-readme-version.diff: fix the upstream version
     number in upstream README.  Closes: bug#516908.
   * debian/rules.d/build.mk: disable the testsuite on ball/mayr/mayer/rem
     build daemons.
   * debian/rules.d/info.mk: new file to dump useful info in the build log.
   * debian/rules: always define and export SHELL as "/bin/bash -e".
     Closes: bug#517077.
   * patches/any/cvs-bz7058-nss_nss-nis.diff: new patch to fix crash when
     doing host lookup with nss-nis.  Closes: bug#517094.
   * Add debian/libc6-mips{n32,64}.symbols.mips{el,} symbol files.
   * debian/debhelper.in/glibc-source.install, debian/rules.d/build.mk:
     switch the format of glibc-source to lzma, sparing 6MB.
   * debian/libc6.1.symbols.{alpha,ia64}: fix symbols.
   * debian/*symbols*: rename symbols.common into libc6.symbols.common.
   * rules.d/debhelper.mk: don't strip debugging symbols. Remove
     debhelper.in/libc-dbg.{install,lintian} and wrappter/objcopy.
     control.in/libc: update description of libc-dbg.  Closes: bug#516516.
   * patches/kfreebsd/local-scripts.diff: correctly define the soname of
     libthread_db.
   * libc0.1.symbols.common, libc0.1.symbols.kfreebsd-{amd64,i386],
     libc0.1-i386.symbols.kfreebsd-amd64: new files.
Checksums-Sha1: 
 c5767f198490d44fd30df111cbd9a3439dca403e 2650 glibc_2.9-4.dsc
 7a0f3184bd5a08df91e5adfe8fd42db3b334a0e1 688388 glibc_2.9-4.diff.gz
 aeb59176b7300a43d586f977be172d691b734af9 1651848 glibc-doc_2.9-4_all.deb
 172847ea0fc40fc61ca188cd067596677a0a0513 11151380 glibc-source_2.9-4_all.deb
 54b30799ea3129c0efd1480702b72aabee4549b3 4660562 locales_2.9-4_all.deb
 9f4ba5ae4f6990edec85e2b4f8aff227018597df 4934642 libc6_2.9-4_amd64.deb
 83f5dc8e5268de4389dcd5367207ecb2473d7f90 2520556 libc6-dev_2.9-4_amd64.deb
 d5095c7d360ccad934489b85b29fa6c748188da4 1946890 libc6-prof_2.9-4_amd64.deb
 fdead11ef9105793f448414df59f865a30320e4b 1482698 libc6-pic_2.9-4_amd64.deb
 b068a6057d685a5d076b8056abb80c8a41865c43 2951794 locales-all_2.9-4_amd64.deb
 31eda144c228d2ce79f4c56a022edb5dc2fec86d 3748594 libc6-i386_2.9-4_amd64.deb
 d8dc49eacbcf18a264bc0549f61a36aacb5f3cfa 1500688 libc6-dev-i386_2.9-4_amd64.deb
 5689765b0d96454ab946ae40658f2c7e7daef5d8 184048 nscd_2.9-4_amd64.deb
 6b981c2ee01fbd467119f9ad4615f6e5463c7d50 10598542 libc6-dbg_2.9-4_amd64.deb
 22def6432233d24feb2f02c77268ca3bbef181ff 1115994 libc6-udeb_2.9-4_amd64.udeb
 fadd7f88d155817cfc70b6a55dce4d0aa8967a3b 10834 libnss-dns-udeb_2.9-4_amd64.udeb
 475f754ba99360ee9c5dd6c9d8e284f631f2bc0e 19056 libnss-files-udeb_2.9-4_amd64.udeb
Checksums-Sha256: 
 2f2bc4701131cc5b15d4ab4cb0b09306e7fa8249a5e3e4c25d7d8592b6303954 2650 glibc_2.9-4.dsc
 7f4747283e2e28d7e6d03e064a755993c0335f770073ac3ce00480c535ae867a 688388 glibc_2.9-4.diff.gz
 eb08d4af4b69eb8c72567ce133c939b71621903e1b686297e21b7b5db6172e2c 1651848 glibc-doc_2.9-4_all.deb
 1d482269ec142c4ec220ba13343685b05abb54c0a14d96f0ae5331e5e1f71d57 11151380 glibc-source_2.9-4_all.deb
 339f81f9f92e449520737df4480996102671fed97719d54dc4e42e2cf246927b 4660562 locales_2.9-4_all.deb
 215c89fa64e3facbea88fa5bec8f7a15ed578e8ad722c03970ecbf38f67d668c 4934642 libc6_2.9-4_amd64.deb
 2b25ae4cf7772b7f4ccebbdcffccb495b278cf822e7a3d1c87e34c8ac7117412 2520556 libc6-dev_2.9-4_amd64.deb
 b02380354938deadfa166d9b38257e038808ae6fb21addb6ee817b0b56a9f645 1946890 libc6-prof_2.9-4_amd64.deb
 05d8661936f3b63dde6e240fd03ceddec01b2b851d689e82c0829a32802af404 1482698 libc6-pic_2.9-4_amd64.deb
 b259f02f85f8e4de3725c37f619e97ae8c9d7097a2c0767c3b9f5d4fdb60a571 2951794 locales-all_2.9-4_amd64.deb
 6ff47408a153174bd415ef1c6477a02e4f0edceef803690bb23bc9bdc45674eb 3748594 libc6-i386_2.9-4_amd64.deb
 c225da326a41dd2369cf622e1a181fe0e337d3db28b784d3c03d47e3f1d3ea87 1500688 libc6-dev-i386_2.9-4_amd64.deb
 f7787fa8cd95453ab539232fc405589a1d656cc2a7501878d4e0bc90a86be976 184048 nscd_2.9-4_amd64.deb
 9f00d6ef79b8a2852e7c06fcc032b412e28772b9901f723a808beadfb8dff0d9 10598542 libc6-dbg_2.9-4_amd64.deb
 077549ec7bd430be44d767890a94077c17a009dda1f9f5c8e4aff52e7bcf5793 1115994 libc6-udeb_2.9-4_amd64.udeb
 7684fb5e0347bc3202c7507f31f73ecd9c3632be415d7bbc5fa2c1f66a198837 10834 libnss-dns-udeb_2.9-4_amd64.udeb
 cbb221f2fdfaa2f06c1532897987df310c4736392d8893892aab443ab4d18759 19056 libnss-files-udeb_2.9-4_amd64.udeb
Files: 
 9f34b1eadb07f1ff250e6ab93b674f8f 2650 libs required glibc_2.9-4.dsc
 b33c3a19fe8b9abf83f67800b1d7195c 688388 libs required glibc_2.9-4.diff.gz
 395229c3b7afae40a7c96a663d467931 1651848 doc optional glibc-doc_2.9-4_all.deb
 69aa6293e5e7fd80b9087bd3b232e766 11151380 devel optional glibc-source_2.9-4_all.deb
 dc596b342b34b0587f5c8fb4ba9c6d3a 4660562 libs standard locales_2.9-4_all.deb
 803f70b8dcf61563502b904bfc301b46 4934642 libs required libc6_2.9-4_amd64.deb
 e767bffc6df61d6559a01600c9977035 2520556 libdevel optional libc6-dev_2.9-4_amd64.deb
 12ee8ab1562b01dc5e77118c2a02febf 1946890 libdevel extra libc6-prof_2.9-4_amd64.deb
 74597aed0ed2d6db3f45b01167d410c1 1482698 libdevel optional libc6-pic_2.9-4_amd64.deb
 604565b69b86ff9409c12adfdc05ed1b 2951794 libs extra locales-all_2.9-4_amd64.deb
 be3c95a4b42a7a14b3a8fbf26e56c736 3748594 libs optional libc6-i386_2.9-4_amd64.deb
 d0cbdbb4d044583d05032a15789f76d8 1500688 libdevel optional libc6-dev-i386_2.9-4_amd64.deb
 f37ef7684cb72ff510b5f60d38725ef8 184048 admin optional nscd_2.9-4_amd64.deb
 76fc6dfe0acf938f8a3fa0033961842b 10598542 libdevel extra libc6-dbg_2.9-4_amd64.deb
 5ed6ee243154b70d50d99fabbda6244d 1115994 debian-installer extra libc6-udeb_2.9-4_amd64.udeb
 75460b1ec2ecf78bc80ddb3c8a8e0752 10834 debian-installer extra libnss-dns-udeb_2.9-4_amd64.udeb
 7f4f0cff533cebaa3b00d0d5320b78c2 19056 debian-installer extra libnss-files-udeb_2.9-4_amd64.udeb
Package-Type: udeb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFJqDtOw3ao2vG823MRAqodAJ9B+ulDkBMAwplUHd4eHrPuB/uv3wCfRUFN
2a16BbRwDBOdD7+Zkpm3CyU=
=713p
-----END PGP SIGNATURE-----



--- End Message ---

Reply to: