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

Bug#666772: apt cross-build-dep handling should be liberal with Arch: all packages



Package: apt
Version: 0.8.16~exp12
Severity: normal
Tags: patch
User: multiarch-devel@lists.alioth.debian.org
Usertags: multiarch

Hey guys,

While working on getting the Ubuntu base system's cross-build-dependencies
satisfiable using only apt-get build-dep -a $arch, I came to the realization
that the only Architecture: all package I'd seen being used as a
build-dependency that *couldn't* be marked Multi-Arch: foreign was
python-dev - and we had separately determined that python-dev needs to be
made an Architecture: any package precisely *because* other packages needed
to build-depend on the host version of python2.7-dev for cross-building.

And of course, unlike in the case of binary deps, there's no way that the
new build-dep behavior would accidentally pull in the wrong dependencies and
break a user's system on upgrade.  In both cases, an Architecture: all
package that masks a transitive arch-dependent dependency is *wrong*; but
whereas in the binary dep case we have to be very conservative in treating
that package the same way previous package managers would have (i.e.,
treating it like a native package), cross-build-dep handling is an entirely
new feature with no upgrade considerations - so it should be entirely
reasonable to treat all Arch: all packages as implicitly M-A: foreign when
satisfying cross-build-deps.


In support of this argument I'm attaching two bits of evidence:

 - arch-indep-build-deps.sh, that recurses through all the build-deps in the
   specified distro (here, Ubuntu) to generate a list of Arch: all packages
   that are used as build-dependencies.
 - arch-all-build-dep-list.txt, the sorted output of the above script.

This shows the scope of the problem; up to 1000 Arch: all packages that
might need to be marked M-A: foreign without this change, which may not need
any metadata updates with this change.  (Of course, this script doesn't
filter out build-deps of source packages that only build Architecture: all
binaries, so the actual number of packages affected may be somewhat lower.)


Finally, I'm attaching a patch that I believe implements the desired
behavior.  I've tested this locally, and it does the right thing in my
tests.  Example:

Before:

$ sudo apt-get build-dep -a armhf htmldoc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libjpeg-turbo8-dev:armhf' instead of 'libjpeg-dev:armhf'
Note, selecting 'libpng12-dev' instead of 'libpng-dev'
E: Build-Depends dependency for htmldoc cannot be satisfied because the package autoconf2.59 cannot be found
$

After:

$ sudo apt-get build-dep -a armhf htmldoc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libpng12-dev' instead of 'libpng-dev'
The following NEW packages will be installed:
  autoconf2.59 libdrm2:armhf libexpat1:armhf libfltk1.1:armhf
  libfltk1.1-dev:armhf libfontconfig1:armhf libfreetype6:armhf
  libgl1-mesa-glx:armhf libglapi-mesa:armhf libjpeg-dev libjpeg-turbo8:armhf
  libjpeg-turbo8-dev libjpeg8:armhf libjpeg8-dev libpng12-0:armhf libpng12-dev
  libssl-dev:armhf libssl1.0.0:armhf libx11-xcb1:armhf libxcb-glx0:armhf
  libxdamage1:armhf libxfixes3:armhf libxft2:armhf libxinerama1:armhf
  libxrender1:armhf libxxf86vm1:armhf zlib1g:armhf zlib1g-dev
  zlib1g-dev:armhf
The following packages will be upgraded:
  libssl1.0.0
1 upgraded, 29 newly installed, 0 to remove and 33 not upgraded.
Need to get 2134 kB/6199 kB of archives.
After this operation, 15.6 MB of additional disk space will be used.
Do you want to continue [Y/n]? ^C
$

Of note here is that libjpeg-dev is an Arch: all transitional package
depending on an Arch: any libjpeg8-dev, so apt doesn't get the answer
completely right - but as mentioned, the only way to fix that case is by
making libjpeg-dev not be Arch: all.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: arch-indep-build-deps.sh
Description: Bourne shell script

adduser
ant
ant1.7
ant1.7-optional
antlr
antlr3
ant-optional
asciidoc
autoconf
autoconf2.13
autoconf2.59
autoconf2.64
autoconf-archive
automake
automake1.10
automake1.4
automake1.7
automake1.9
autopoint
autotools-dev
avr-libc
bash-completion
bf-utf-source
binutils-mingw-w64
binutils-source
bioperl
bodr
bzr
ca-certificates
caml2html
camlmix
cdbs
cernlib-base-dev
cfortran
chemical-mime-data
cimg-dev
cl-asdf
cli-common-dev
cons
cppo
dahdi-source
dblatex
dbs
debconf
debconf-utils
debhelper
debiandoc-sgml
debian-ports-archive-keyring
default-jdk-doc
defoma
dejagnu
dh-apparmor
dh-apport
dh-autoreconf
dh-buildinfo
dh-di
dh-lisp
dh-metainit
dh-modaliases
dh-ocaml
dh-translations
dictionaries-common-dev
dkms
doc-base
docbook
docbook5-xml
docbook-dsssl
docbook-utils
docbook-xml
docbook-xsl
docbook-xsl-doc-html
docbook-xsl-ns
doxygen-latex
dpatch
dpkg-awk
dpkg-dev
d-shlibs
dssi-dev
dvd-slideshow
elyxer
emacs
eog-dev
epiphany-browser-dev
erlang-esdl-dev
erlang-nox
erlang-src
esmtp-run
exim4
fatrat-dev
fenix-dev
ffmpeg
firebird2.1-dev
firebird2.5-dev
fonts-linuxlibertine
fop
fort77
fpc
fpc-2.4.4
freetts
fso-specs
ftgl-dev
gcc-4.4-source
gcc-4.5-source
gcc-4.6-source
gdb-source
gedit-dev
gem2deb
geoip-database
geoip-database-contrib
germinate
ghc6
ghc-doc
git-core
gnome-common
gnome-control-center-dev
gnome-doc-utils
gnome-icon-theme
gnome-mime-data
gnome-pkg-tools
gnulib
gnuplot
gnustep-core-devel
gnustep-make
graphicsmagick-imagemagick-compat
graphicsmagick-libmagick-dev-compat
graphviz-dev
grid-packaging-tools
gsfonts
gstreamer0.10-doc
gstreamer0.10-plugins-base-doc
gtk-doc-tools
guile-library
g-wrap
gyp
hardening-includes
haskell-devscripts
heroes-data
hevea
hicolor-icon-theme
html2ps
hunspell-en-ca
hunspell-en-us
hwdata
icon-naming-utils
ikiwiki
intltool
intltool-debian
ipython
iso-codes
isoquery
itstool
jadetex
javahelper
junit
junit4
kbd-compat
kdebase-workspace-dev
kde-sc-dev-latest
kdesdk-scripts
kernel-wedge
krb5-config
language-pack-en
latex2html
latex-beamer
latex-xcolor
lazarus
lazarus-0.9.30.2
lazarus-src-0.9.30.2
libalgorithm-diff-perl
libaliased-perl
libantlr-java
libany-moose-perl
libapache2-mod-perl2-dev
libapache-sessionx-perl
libappindicator0.1-cil-dev
libarchive-zip-perl
libasa-perl
libasio-dev
libastro-fits-header-perl
libauthen-sasl-perl
libautobox-core-perl
libautobox-dump-perl
libautobox-list-util-perl
libav-source
libbcel-java
libbcmail-java
libbcprov-java
libbctsp-java
libb-hooks-endofscope-perl
libbio-perl-perl
libbitstream-dev
libboolean-perl
libbsf-java
libcairo2-doc
libcairo-ruby1.8
libcapture-tiny-perl
libcarp-clan-perl
libcddb-file-perl
libcgi-fast-perl
libcgi-pm-perl
libchild-perl
libclalsadrv-dev
libclass-accessor-perl
libclass-gomor-perl
libclass-load-perl
libclass-method-modifiers-perl
libclass-mix-perl
libclass-perl
libcluster-glue-dev
libclxclient-dev
libcobertura-java
libcommons-daemon-java
libcommon-sense-perl
libcommons-logging-java
libcommons-net-java
libconfig-inifiles-perl
libcorosync4
libcorosync-dev
libcrypt-cbc-perl
libcsnd-dev
libcsound64-dev
libdata-float-perl
libdata-integer-perl
libdata-optlist-perl
libdata-types-perl
libdate-calc-perl
libdate-manip-perl
libdatetime-format-epoch-perl
libdatetime-format-mysql-perl
libdatetime-locale-perl
libdatetime-timezone-perl
libdatetime-timezone-tzfile-perl
libdb4o-cil-dev
libdbm-deep-perl
libdb-ruby1.8
libdbus1.0-cil-dev
libdbus-glib1.0-cil-dev
libdevel-checklib-perl
libdevel-globaldestruction-perl
libdevel-repl-perl
libdevel-stacktrace-perl
libdigest-hmac-perl
libdigest-perl
libdom4j-java
libdpkg-perl
libdrumstick-dev
libecj-java
libepr-api2-dev
libeval-closure-perl
libevent-execflow-perl
libevent-rpc-perl
libextutils-cbuilder-perl
libextutils-cchecker-perl
libextutils-depends-perl
libextutils-f77-perl
libextutils-parsexs-perl
libextutils-pkgconfig-perl
libextutils-xspp-perl
libfile-basedir-perl
libfile-chdir-perl
libfile-desktopentry-perl
libfile-find-rule-perl
libfile-mimeinfo-perl
libfile-mmagic-perl
libfile-scan-perl
libfile-slurp-perl
libfile-which-perl
libflickrnet-cil-dev
libgconf2.0-cil-dev
libgdata-cil-dev
libgeo-distance-perl
libgeronimo-jta-1.1-spec-java
libgetopt-argvfile-perl
libgetopt-java
libghc6-cairo-dev
libghc6-glade-dev
libghc6-gtk-dev
libghc6-mtl-dev
libghc6-parsec3-dev
libghc-hslogger-doc
libghc-missingh-doc
libghc-mtl-doc
libgio2.0-cil-dev
libgkeyfile-cil-dev
libglib2.0-doc
libgmerlin-avdec-dev
libgmime2.6-cil-dev
libgnomedesktop2.0-cil-dev
libgnome-vfs2.0-cil-dev
libgnujaf-java
libgnumail-java
libgnumail-java-doc
libgpmg1-dev
libgpod-cil-dev
libgsf-1-common
libgtk2.0-doc
libgtk2-ex-entry-pango-perl
libgtk2-ex-formfactory-perl
libgtk-3-doc
libgtk-sharp-beans2.0-cil-dev
libgudev1.0-cil-dev
libhash-merge-simple-perl
libhdf4g-dev
libhtml-format-perl
libhtml-stripscripts-parser-perl
libhtml-tagset-perl
libhtml-template-perl
libhtml-tree-perl
libhttp-daemon-perl
libhttp-proxy-perl
libhttp-server-simple-authen-perl
libhttp-server-simple-perl
libimage-size-perl
libinline-perl
libinstpatch-dev
libintl-perl
libio-async-perl
libio-compress-perl
libio-string-perl
libio-stringy-perl
libipc-run-perl
libipc-system-simple-perl
libitext-java
libjaxen-java
libjaxp1.3-java
libjdepend-java
libjdom1-java
libjfreechart-java
libjlayer-java
libjorbis-java
libjpeg-dev
libjsch-java
libjs-jquery
libjson-any-perl
libjson-perl
liblash-compat-dev
liblilv-dev
liblingua-stopwords-perl
liblocale-po-perl
liblocale-us-perl
liblog4j1.2-java
liblog4net-cil-dev
liblscp-dev
libltcsmpte-dev
libmailtools-perl
libmarc-record-perl
libmath-bigint-perl
libmath-round-perl
libmime-charset-perl
libmime-encwords-perl
libmime-tools-perl
libmodern-perl-perl
libmodglue1-dev
libmodplug-dev
libmodule-build-perl
libmodule-refresh-perl
libmodule-scandeps-perl
libmono-addins-cil-dev
libmono-addins-gui-cil-dev
libmono-cairo2.0-cil
libmono-upnp-cil-dev
libmono-zeroconf-cil-dev
libmoosex-types-perl
libmro-compat-perl
libmtp-dev
libmupen64plus-dev
libmx4j-java
libmysql-cil-dev
libmysqlclient16-dev
libnamespace-autoclean-perl
libnamespace-clean-perl
libnarray-ruby1.8
libnarray-ruby1.9.1
libnb-platform-devel-java
libndesk-dbus1.0-cil-dev
libndesk-dbus-glib1.0-cil-dev
libnet-cidr-lite-perl
libnet-ip-perl
libnet-jabber-perl
libnet-ldap-perl
libnet-snmp-perl
libnini-cil-dev
libnotify-cil-dev
libobject-id-perl
liboce-foundation-dev
liboce-modeling-dev
liboce-ocaf-dev
liboce-visualization-dev
libopencascade-modeling-dev
liboro-java
liboss4-salsa-asound2
liboss-salsa-asound2
libpackage-deprecationmanager-perl
libpackage-stash-perl
libpalm-perl
libpango1.0-doc
libparams-coerce-perl
libparent-perl
libpar-perl
libparse-method-signatures-perl
libparse-yapp-perl
libpath-class-perl
libpcap-dev
libpdf-create-perl
libpdfrenderer-java
libperl4-corelibs-perl
libperl6-caller-perl
libperl6-junction-perl
libphp-serialization-perl
libplrpc-perl
libpng++-dev
libpod-coverage-perl
libpoe-perl
libpostscript-file-perl
libppi-html-perl
libppi-perl
libpstreams-dev
libpurple-dev
libqscintilla2-dev
libqt3-i18n
libqtscript4-qtbindings
libreadonly-perl
libregexp-common-perl
libregexp-java
librsvg2-2.0-cil-dev
libsaxon-java
libscope-guard-perl
libservlet2.5-java
libservlet2.5-java-doc
libslf4j-java
libsparsehash-dev
libspice-protocol-dev
libstatistics-test-randomwalk-perl
libstringtemplate-java
libsub-exporter-perl
libsuil-dev
libsuper-perl
libsys-sigaction-perl
libtaglib-cil-dev
libtask-weaken-perl
libtest-command-perl
libtest-compile-perl
libtest-cpan-meta-perl
libtest-deep-perl
libtest-differences-perl
libtest-distribution-perl
libtest-exception-perl
libtest-fatal-perl
libtest-kwalitee-perl
libtest-nowarnings-perl
libtest-number-delta-perl
libtest-output-perl
libtest-perl-critic-perl
libtest-pod-coverage-perl
libtest-pod-perl
libtest-portability-files-perl
libtest-requires-perl
libtest-simple-perl
libtest-tcp-perl
libtest-use-ok-perl
libtest-warn-perl
libtext-csv-perl
libtext-diff-perl
libtext-template-perl
libtidy-ruby1.8
libtie-ixhash-perl
libtimedate-perl
libtime-local-perl
libtime-period-perl
libtnt-dev
libtomcat6-java
libtritonus-java
libtry-tiny-perl
libtut-dev
libuniversal-require-perl
liburi-perl
libutf8-all-perl
libvecmath-java
libwww-perl
libwxsqlite3-2.8-dev
libxalan2-java
libxerces2-java
libxml2-doc
libxml-commons-resolver1.1-java
libxml-dom-perl
libxml-namespacesupport-perl
libxml-perl
libxmlrpc-c3-dev
libxml-sax-expat-perl
libxml-sax-perl
libxml-simple-perl
libxml-twig-perl
libxml-xpath-perl
libxmu-headers
libyaml-perl
lintian
linuxdoc-tools-text
linux-source
linux-source-3.2.0
llvm-3.0-source
lmodern
locales
lojban-common
lsb-base
lsb-invalid-mta
lsb-release
lua5.1-policy-dev
luadoc
lv2core
lv2-extensions-good
lynx
lzma-dev
m17n-db
makedev
markdown
mathgl-doc-en
mathgl-doc-ru
maven-repo-helper
maxima-share
mecab-jumandic
mhonarc
mingw32-runtime
mingw-w64-dev
mklibs
mm-common
mobile-broadband-provider-info
mono-devel
monodoc-base
mono-tools-devel
mozilla-devscripts
msmtp-mta
msp430mcu
myspell-en-au
myspell-en-gb
myspell-en-us
myspell-en-za
mysql-client
mysql-server
nant
naturaldocs
netbase
nowebm
nunit-console
ocamlmakefile
ocaml-source
octave3.2-common
octave-control
octave-pkg-dev
octave-time
ofono-dev
omniorb-idl
opensaml2-schemas
oss4-dev
pbuilder
perl-doc
perl-modules
perltidy
php-pear
pidgin-dev
pkg-kde-tools
po4a
po-debconf
postgresql
postgresql-client
postgresql-server-dev-all
postr
ppp-dev
prime
proj
ptex-base
ptex-buildsupport
puredata
puredata-dev
pyflakes
pylint
python
python3
python3-all-dbg
python3-all-dev
python3-dev
python3-setuptools
python3-zope.fixers
python-all
python-all-dbg
python-all-dev
python-boto
python-cairo-dev
python-central
python-cliapp
python-configobj
python-coverage-test-runner
python-cxx-dev
python-dateutil
python-dbg
python-debian
python-dev
python-distutils-extra
python-dnspython
python-docutils
python-egenix-mx-base-dev
python-empy
python-epydoc
python-eventlet
python-fastimport
python-fpconst
python-gi-dev
python-gnome2-desktop-dev
python-gnome2-dev
python-gnome2-extras-dev
python-gobject
python-gobject-dbg
python-gobject-dev
python-gtk2-dev
python-gtk2-doc
python-guidata
python-hachoir-regex
python-joblib
python-kiwi
python-larch
python-minimal
python-mock
python-mutagen
python-netaddr
python-nibabel
python-nose
python-paramiko
python-pastedeploy
python-pexpect
python-plastex
python-poker-engine
python-pydoctor
python-pyorbit-dev
python-pyparsing
python-pyrex
python-pytools
python-qt4-dev
python-reportlab
python-routes
python-scapy
python-scour
python-sepolgen
python-setupdocs
python-setuptools
python-soappy
python-sphinx
python-sqlalchemy
python-subunit
python-suds
python-support
python-sympy
python-templayer
python-testtools
python-tracing
python-ttystatus
python-twisted
python-twisted-conch
python-twisted-core
python-twisted-names
python-twisted-web
python-twisted-words
python-tz
python-unittest2
python-van.pydeb
python-vobject
python-webkit-dev
python-webob
python-xcbgen
python-xdg
python-xkit
python-xlib
qmail-run
qmail-uids-gids
quilt
rake
r-base-dev
r-cran-car
r-cran-coda
r-cran-fmultivar
r-cran-ftrading
r-cran-g.data
r-cran-genetics
r-cran-qvalue
r-cran-rcolorbrewer
r-cran-vcd
r-cran-xtable
rdtool
r-recommended
ruby
ruby-dataobjects
ruby-dev
rubygems
ruby-hoe
ruby-minitest
ruby-pkg-config
ruby-pkg-tools
ruby-rspec
ruby-shoulda
ruby-tidy
samba-common
sanitizer
scilab
scilab-doc
scons
scrollkeeper
sdf
selinux-policy-dev
sgml2x
sgml-base
sgml-data
sgmlspl
sgmltools-lite
shake
shared-desktop-ontologies
shr-specs
shtool
slib
slice
slugimage
spamassassin
ssh
stx2any
subunit
svdrpservice-dev
syslinux-common
systemtap-sdt-dev
system-tools-backends-dev
sysv-rc
tcl
tcl-dev
tcllib
tex-common
texi2html
texlive
texlive-base
texlive-common
texlive-extra-utils
texlive-fonts-extra
texlive-fonts-recommended
texlive-font-utils
texlive-full
texlive-generic-recommended
texlive-humanities
texlive-lang-german
texlive-lang-greek
texlive-latex-base
texlive-latex-extra
texlive-latex-recommended
texlive-math-extra
texlive-metapost
texlive-omega
texlive-pstricks
texlive-science
texlive-xetex
tk
tk-dev
translate-toolkit
ttf-dejavu
ttf-dejavu-core
ttf-freefont
ttf-linux-libertine
txt2html
txt2man
tzdata
ubuntu-keyring
unicode-data
uthash-dev
vala-0.12-doc
valac
vdr-dev
verilog
wamerican
wbritish
wx2.8-i18n
x11-common
x11proto-composite-dev
x11proto-core-dev
x11proto-damage-dev
x11proto-dmx-dev
x11proto-dri2-dev
x11proto-fixes-dev
x11proto-fonts-dev
x11proto-gl-dev
x11proto-input-dev
x11proto-kb-dev
x11proto-print-dev
x11proto-randr-dev
x11proto-record-dev
x11proto-render-dev
x11proto-resource-dev
x11proto-scrnsaver-dev
x11proto-video-dev
x11proto-xext-dev
x11proto-xf86dga-dev
x11proto-xf86dri-dev
x11proto-xf86vidmode-dev
x11proto-xinerama-dev
xbitmaps
xcb-proto
xchat-common
xcursor-themes
xdg-utils
xfce4-dev-tools
xfonts-100dpi
xfonts-75dpi
xfonts-base
xfonts-unifont
xkb-data
xml-core
xmltoman
xmltooling-schemas
xmms2-dev
xorg-docs-core
xorg-sgml-doctools
xtrans-dev
xutils
xz-lzma
yada
yelp-tools
yelp-xsl
yorick-yutils
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: steve.langasek@canonical.com-20120401035514-\
#   oa3ok3cjf534fpqz
# target_branch: :parent
# testament_sha1: 24a17f97530be613eea8efba4feb3d4931bee30e
# timestamp: 2012-03-31 21:22:52 -0700
# base_revision_id: michael.vogt@ubuntu.com-20120313133323-\
#   x3g9lv5d3gx3xczh
# 
# Begin patch
=== modified file 'cmdline/apt-get.cc'
--- cmdline/apt-get.cc	2012-02-18 20:20:57 +0000
+++ cmdline/apt-get.cc	2012-04-01 03:55:14 +0000
@@ -2900,7 +2900,7 @@
 	       if ((BADVER(Ver)) == false)
 	       {
 		  string forbidden;
-		  if (Ver->MultiArch == pkgCache::Version::None || Ver->MultiArch == pkgCache::Version::All)
+		  if (Ver->MultiArch == pkgCache::Version::None)
 		  {
 		     if (colon == string::npos)
 		     {
@@ -2915,7 +2915,7 @@
 			forbidden = "Multi-Arch: same";
 		     // :native gets the buildArch
 		  }
-		  else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign)
+		  else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign || Ver->MultiArch == pkgCache::Version::All)
 		  {
 		     if (colon != string::npos)
 			forbidden = "Multi-Arch: foreign";

=== modified file 'debian/changelog'
--- debian/changelog	2012-03-13 13:32:40 +0000
+++ debian/changelog	2012-04-01 03:55:14 +0000
@@ -13,6 +13,14 @@
       as this could break an earlier dependency (LP: #940396)
     - recheck dependencies in SmartUnpack after a change, too
 
+  [ Steve Langasek ]
+  * For cross-build-dependencies, Architecture: all packages should be
+    treated as implicitly Multi-Arch: foreign, because either they *are*
+    M-A: foreign when used as a build-dependency, or they need to be updated
+    to not be Architecture: all; and since cross-build-deps are new
+    functionality in apt, we can safely make this change without breaking
+    existing systems.
+
  -- David Kalnischkies <kalnischkies@gmail.com>  Tue, 13 Mar 2012 12:38:35 +0100
 
 apt (0.8.16~exp13) experimental; urgency=low

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWevpHVIAApBfgEAwUXf//3sH
CQq////0YAY3T4AqQFBQAFEc0xMBGmBGEYAAAAmEYCUJJpjKeKek0p+k9JqD1D1G1HqYjEaA9Roc
0xMBGmBGEYAAAAmEYDRImEabSaMjQBoaAAyDQNDBzTEwEaYEYRgAAACYRgJJAmgIyDQExNTym0Kb
SZpDE9QMjkHDiJDDTlWpA+tD/C7NPbz7O3lGaKQ6LZIJc6b8nRZXv4GFEJS+REqRPiSQO1JxeHQJ
BmZGY89iH1VhxAQd9Gc5qlL6nNn8ZbF3mo6FNJ3+Wq3mdQcTAcZCazeRGPEiVnMYIKPCEnVVj6gy
FMxAgXforOs4qyylZWdCATCsgMSKhhw24OE3LwH+liHsgv/sPYHejFeHG15BYDzQay2tCzL7HImG
gVFLcfECvRzU/G5mlFmngj/gZIowQODAtsgYnxO1dAKzJEPB+Me2AwuZEByFJ3o8HFQ8eEAGAeJp
RK2HRTQFEtPLVKwhYBcd91IGY11Rc/KRQujctma2wCzjdECbdQ/fFjE/3LMpL7BwrF64Feq7Hv1D
x5ebBxZ/mzZdru0YrPmFmQnGW1CjETXRuTDQWcxswjAyNSUsNnqSzzVgso415LwqKQgw4KAtJsis
ZPZgpApkBr21yymJtAgcvysyiA5UJB84AKjgUUVTChG+kqzDEYvzo8SN1cNQFhdB9IEcsBzKZnA3
UAMGmzRYW3vtCVX5VDiUGHE3ykYqu0pTXMwm1l9wOKViy02WDOZh1qj6jNMR7wZJMWjlhE1VzuTO
lKEx2h8ZvzEVljvsKRRhlYP00131lZREynZQvD7nUmW0srA0iboEw1vZZWCds9OlqyuYPVLwabRT
UIom1xoA4HqtfkoZbGZi80Iku76nNeSxD3AMN42BE19U4vFWF14wzDe28HwmmJC+1DhPPsovEz/R
mcDjOG5bhbWN68xQUTyFpF87WGaCWi9mFpk8LRwoHzAbeW8jsPHHjx7DHgenh7BpVlwXr0RzPcon
wSWjSdMQoeQiRFOR/Z4oLFJJQO2faHsQPqYJVieHgkUMS8aB15bjabmLDpHgcvbiI4+Aop2BxAj7
yvV8S3p4liSsP6SWk9c4czQX68diiwlWis4XhAOkiRsAi5i0Ea6QkZAY2eSeLmNAYcLbZ50Fp2Db
kqCYbx0FBE4HIxUg4CzbYqfltD1PYrMDMNrPIoN5kgUoKCZPtRz61wz5ysHh+hI2xPNnWlaKzpTU
F5SK4YyVFHLAxqa2yFguJYkV6wwt5tTkxfbUUJnANoRTXsRg5iZhKz+o0raXZgXQbgsHSSK0Zz59
/vii4J0ndn/AHXZvOq1G/zHLV3HItXoZjuNLC0YANpjEOuC6A9I1sWiZj3/pcL+QpClYpBxEyXIY
MjuxwAgiI4yiY3sjKl8hXpJ3APAfh9ENWaKdRtVgsfiLeLzyTJowKkYMQPp3YxkgidDN4o+I8LzW
ZzVqKhngRGNwDkDi3SP7BVsRAmmDgyRICpEHBzcfBBtKAVFQyProcRak7wpgjqsSJgCPLcb1dWNn
YYNNEHqBMZPHExRAeJkEyI+JWMOHocEYjMPRASekuVr0lEklJgoBy42hMC2naHuA2IRMD7iZfjrx
SVJ+DKWouHjI2PUQkZuAY5xVLFhg0EFAOVEggVysAnMxUQJjnjhhMjolvRATCGCYPMhEUEp77F7V
RF3uoU32agiiISIGI4gHeF46mshKGQ3bnFKRlW9shUFJqBUcQDhMNFq0PweCKQ4PGE74knkzBOnR
hq3hrC1wSN4NJ1wRB5o9RyC4KZDhMOJXOWq8oNhQTPhuii5Pe6bBJgoBxaHf8A3cBZDl0Qw8Mhkp
DAeUGCxSMiZHYJ/J5QLkta4hxPBSEVmMhhx5ioWB5ImnEZakr6v5P/i7kinChIdfSOqQ

Attachment: signature.asc
Description: Digital signature


Reply to: