Accepted piuparts 0.51~bpo70+1 (source all)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Tue, 28 May 2013 11:15:45 +0200
Source: piuparts
Binary: piuparts piuparts-master piuparts-slave piuparts-common
Architecture: source all
Version: 0.51~bpo70+1
Distribution: wheezy-backports
Urgency: low
Maintainer: piuparts developers team <piuparts-devel@lists.alioth.debian.org>
Changed-By: Holger Levsen <holger@debian.org>
Description:
piuparts - .deb package installation, upgrading, and removal testing tool
piuparts-common - common piuparts components
piuparts-master - piuparts master components
piuparts-slave - piuparts slave components
Closes: 603873 656438 657799 668713 670150 677332 678725 679780 682184 683685 686360 687538 687995 698526 699028 699160 703810 708241
Changes:
piuparts (0.51~bpo70+1) wheezy-backports; urgency=low
.
* Rebuild for wheezy-backports.
.
piuparts (0.51) unstable; urgency=low
.
[ Andreas Beckmann ]
* Mark all python code as utf-8 encoded.
* piuparts.py:
- In install-purge tests support installing extra packages before the
package to be tested via --extra-old-packages.
- Add --arch <arch> option to run the test for the requested instead of
the default architecture.
- Disable using PDiffs in order to save CPU instead of bandwidth to a
local mirror/proxy. (Closes: #708241)
* piuparts.conf:
- New global settings:
+ slave-count
- Use installation-dependent defaults for known-problem-directory.
* distros.conf:
- Update backports setup after integration into the regular archive.
- Enable stable security updates when installing stable backports.
- Set testing = jessie and add jessie-proposed-updates.
* piupartslib/conf.py:
- Raise MissingSection if the requested section is not in piuparts.conf.
- Improve handling of virtual distros.
* piupartslib/packagesdb.py:
- get_package(): Add flag resolve_virtual, disabled by default.
* Rename piuparts-master.py to piuparts-master-backend.py
* piuparts-master: New.
- Wrapper shell script to simplify calling the master from the slave.
- Get the 'master-directory' from piuparts.conf and chdir there.
- Get the (global) 'log-file' from piuparts.conf and handle the error
logging. No longer uses the section specific logfile name for errors.
* Allow the master-command to be set in ~piupartsm/.ssh/authorized_keys to
restrict ssh keys to only run piuparts-master.
* piuparts-master-backend.py:
- Raise CommandSyntaxError on unknown commands.
- Add "section" command:
+ Make section selection part of the master-slave protocol.
+ Allow switching sections without reconnecting.
+ No longer accept section argument on the command line.
+ Switch the logfile after switching sections.
* piuparts-slave.py:
- Fix parsing 'idle' return value from master.
- Let the piuparts-master (wrapper script) handle chdir and error logging.
- Skip sections that don't exist in piuparts.conf and continue to run.
- Pass the section to piuparts-master via the new "section" command
instead of using a command line argument.
- Keep the connection to the master open while switching sections. This
reduces the number of ssh connections attempted while checking idle
sections. Close the connection before processing packages, before going
to sleep, and after communication errors.
- Support empty master-command if the command is set in master's
.ssh/authorized_keys file.
- Change default basetgz name to {DISTRO}_{ARCH}.tar.gz.
* piuparts-report.py:
- Skip sections that don't exist in piuparts.conf.
- "Missing" binary packages don't influence the overall test result of a
source package. These are either udebs or for other architectures.
(Closes: #699160)
- Report the correct version for binary packages.
* archive_old_logs:
- Compress the archived logs.
* detect_well_known_errors:
- Skip sections that don't exist in piuparts.conf.
* piuparts-master.deb:
- Add Depends: xz-utils.
* piuparts-slave.deb:
- Restrict the ssh key added to master's authorized_keys to only run
piuparts-master.
* slave_run: Support starting multiple concurrent slaves. (Closes: #678725)
* Update and add new exceptions for buggy packages.
* scripts-wheezy/post_setup_wheezy-fake-essential: New custom script to
suppress some purge failures in wheezy.
* post_{setup,distupgrade}_squeeze-backports: New custom scripts to improve
support for squeeze-backports.
* New known problem: Database setup failure (issue).
.
[ David Steele ]
* detect_well_known_errors:
- Replace the bash script with an equivalent Python script.
- Sort known error and issue packages by reverse dependency count,
separating 'fail' from everything else.
(Closes: #698526)
- Add a PTS link to issue and error summary entries.
- Replace the known_problem COMMAND with PATTERN and EXCLUDE_PATTERN,
and replace grep shell calls with python re modules calls, for a
10x speedup.
- Validate field names, and only use valid known problem conf files.
- Minor HTML syntax fix.
- Minor template integration.
.
[ Holger Levsen ]
* piuparts.py:
- Add to ignored_files:
+ /var/log/fontconfig.log (Closes: #703810) - Thanks to Hideki Yamane.
- switch default Ubuntu distribution to "saucy".
* Bump Standards-Version to 3.9.4.
* Use /srv/piuparts.debian.org/ on piatti.debian.org as per DSA policy.
* Provide instance configuration for pejacevic.d.o and piu-slave-bm-a.d.o.
* Move README_piatti.txt and README_pejacevic.txt and update accordingly.
* Provide two new helper scripts for running from git:
update-piuparts-master-setup and update-piuparts-slave-setup, drop
update-piuparts-setup.
* Drop instances/forward.* files.
* slave-bin/slave_run:
- Run slave_cleanup before starting the slave.
* slave-bin/detect_slave_problems: remove check limiting this script to be
run on piatti only.
* master-bin/prepare_backup: also backup sources.txt.
.
piuparts (0.50) unstable; urgency=low
.
[ Andreas Beckmann ]
* piuparts.py:
- Add to ignored_files:
+ /var/lib/dpkg/arch
+ /usr/lib/python2.[67]/dist-packages/python-support.pth
broken symlinks caused by python-support (see #635493 and #385775,
thanks David Steele)
- Call dpkg-deb with --nocheck to allow bad version numbers.
- Pass unqualified package names to apt-cache show for lenny support.
- Support plain URLs or local paths as --testdebs-repo argument and
prepend/append "deb", "file://", and "./" as needed.
- Improve the "dirname part contains a symlink" test and report
overwritten files owned by other packages as failures.
- Add --proxy=URL option.
- piuparts.deb: Add Depends: piuparts-common for using distros.conf and
piupartslib.
- Use distros.conf to generate mirror configuration. This enables more
complex scenarios involving partial distributions and dist-upgrades.
- Use apt-get -t <target-release> if set in distros.conf.
* piuparts.conf:
- New global settings:
+ proxy
+ slave-directory
+ known-problem-directory (for known_problem definitions)
+ backup-directory (for the master script prepare_backup)
+ PYTHONPATH (to find the python modules in non-default path setups)
+ slave-load-max
- New per-section settings:
+ depends-sections
+ basetgz-directory
- Obsolete settings: upgrade-test-chroot-tgz.
- Setting tmpdir is now mandatory for master/slave operation.
* distros.conf:
- New configuration file to describe full distributions (e.g. sid,
squeeze) and partial distributions (e.g. squeeze/security,
squeeze-backports, experimental) along with their dependencies (e.g.
base distribution) and non-default mirrors. (Closes: #699028)
- Allows setting a target-release (for apt-get -t ...). (Closes: #687995)
- Shipped in package piuparts-common.
* piupartslib/conf.py:
- Add methods: get_distros(), get_start_distro().
- Add class DistroConfig for reading distros.conf.
* piupartslib/packagesdb.py:
- Add Package.waiting_count() and friends, populated in calc_rrdep_count.
- Optimize reserve() and skip unavailable candidates.
- Add method: set_dependency_databases().
- Lookup missing packages, states, ... in the dependency_databases.
* piuparts-master.py:
- Sort packages to be tested by importance, i.e. descending waiting_count.
- Use piuparts.conf global proxy setting as http_proxy.
- Use distros.conf to compute URLs.
- Load depends-sections for package lookup in partial distros.
* piuparts-slave.py:
- Tarball recreation can be disabled by setting max-tgz-age to 0.
- Relax package existence checks to allow distupgrading to backports.
- Fix SIGHUP handling while recycling.
- Flush and unreserve all sections on interrupt.
- Add support for running piuparts under /usr/bin/timeout.
- Check system load frequently and enter sleep mode if threshold
(piuparts.conf global setting slave-load-max) is exceeded. Operation
will be resumed after load drops below 'slave-load-max - 1.0'. Disabled
by default.
- Use piuparts.conf global proxy setting as http_proxy and pass it to
piuparts via --proxy.
- Use distros.conf to compute URLs.
- Use the upgrade-test-distros setting to select between install/purge
test (if unset) and dist-upgrade test (if there are at least 2 distros).
Drop support for running both tests for a section.
* piuparts-analyze.py:
- Add support for magic "$DISTRO/None" versions.
* piuparts-report.py:
- Call r.dev_off() after generating a plot. (Closes: #657799)
- Use piuparts.conf global proxy setting as http_proxy.
- Use distros.conf to compute URLs.
- Generate/prepend/append a default description.
- Load depends-sections for package lookup in partial distros.
* Makefile:
- Add DESTDIR support.
- Overhaul. Add dependencies between build and install targets.
- Add support for placeholder substitution in scripts and config.
- Perform syntax check on *.py before installation.
* debian/rules: Set 'prefix' and 'DESTDIR' for build and install.
* lib/read_config.sh: Factored out the piuparts.conf reading function that
is used by all master/slave shell scripts. Shipped in piuparts.common.
- Add support for RFC822 line continuation (wrap + indent) and comments.
* master-bin/slave-bin: Switch to sourcing read_config.sh.
* conf/crontab*: Substitute @sharedir@ at build time.
* known_problems: Install to @sharedir@/piuparts/known_problems/.
* Replace all remaining references to $HOME/bin and ~/bin with @sharedir@.
* prepare_backup:
- Get paths from piuparts.conf.
- Prepare a copy of submissions.txt, too.
* master-bin/slave-bin: Use PYTHONPATH from piuparts.conf.
* piuparts-slave.deb:
- Use /var/cache/piuparts/tmp as tmpdir.
- Use /var/cache/piuparts/basetgz as basetgz-directory.
- Populate ~piupartss/.ssh/known_hosts with localhost's hostkey.
- Restrict the ssh key added to master's authorized_keys to only run
piuparts-master.
* slave_{run,join}: Rename the screen session to "piuparts_slave_screen".
* slave_cleanup: Use pgrep to find running piuparts-slave processes.
* slave_{run,join}: Use screen -ls to find running screen sessions.
* slave_join: Use 'script /dev/null' hack if needed to get a writable tty.
This avoids running the piuparts-slave screen session as root.
* slave_run: Get paths etc. from piuparts.conf.
* slave_run: Ensure the tmpdir exists, this could be on tmpfs.
* detect_leftover_processes: Move statefile to slave-directory.
* detect_stale_mounts: Merge into detect_tmp_cruft.
* detect_tmp_cruft: Move to slave-bin and run from slave crontab.
* detect_slave_problems:
- Move to slave-bin and run from slave crontab.
- Use idle-sleep setting from piuparts.conf.
- Move statefile to slave-directory.
* master: Get rid of the monitor-slave directory.
* pre_install_exceptions: Handle bootcd-ia64 installation in squeeze.
* post_distupgrade_exceptions: Handle libdb4.8 removal in wheezy.
* pre_remove_50_find_bad_permissions: Add some exceptions.
* pre_remove_50_find_missing_copyright: Add some exceptions.
* post_{setup,distupgrade}_experimental: New custom scripts to improve
support for experimental.
* Add several exceptions for lenny and lenny2squeeze tests.
* New script to enable Debug::pkgPackageManager during upgrades:
scripts-debug-packagemanager/pre_distupgrade_debug_packagemanager
* New known problem: Packages that need to be rebuild or updated for newer
tools, e.g. due to obsolete install-info or tex-common usage.
* New bug template: unhandled_symlink_to_directory_conversion.
* New bug template: installs_over_existing_symlink.
.
[ Holger Levsen ]
* Mention http://piuparts.debian.org in README.txt prominently.
* Mention github clone in htdocs/index.tpl.
.
[David Steele]
* Replace the Tango icon symlinks with copies.
* Make the Tango weather icons required for master.
.
piuparts (0.49) unstable; urgency=low
.
[ Andreas Beckmann ]
* Add support for dist-upgrade tests of "disappearing" packages:
- master/report: Get candidate packages from distro in the "distro"
setting in piuparts.conf and (target) versions to test from last distro
entry in "upgrade-test-distros". In case a package no longer exists, use
a pseudo-version "None". (Closes: #656438)
- slave: Support pseudo-version "None".
- piuparts: Do not try to install unavailable packages after dist-upgrade.
* piuparts.py:
- Run custom scripts only once if dependencies are installed via a
metapackage.
- Rename --no-debsums option to --warn-on-debsums-errors.
- Add --extra-repo=<sources.list line> option for adding extra
package sources, e.g. backports, security or local repositories.
The argument must be a valid line (including whitespace) that is added
to sources.list verbatim. The option may be repeated to add more lines.
- Qualify to the package names extracted from .debs with the version.
- Add --testdebs-repo=<sources.list line> option. Provide the package(s)
to be tested (and additional dependencies that are not yet in the
archive) in a repository to enable dependency resolution with apt-get.
Use for complex install and upgrade scenarios.
- Add --distupgrade-to-testdebs option. During distupgrade tests override
packages from the target distro with the packages from the testdebs
repository. This allows doing distupgrade tests before uploading.
- Enable upgrade tests if both --apt and --testdebs-repo are given.
* piupartslib/conf.py:
- Add get_final_distro() method.
- Add optional distro argument to get_mirror() method.
* piupartslib/packagesdb.py:
- Speed up LogDB by fetching existing files with os.listdir().
* piuparts-slave.py:
- Disable X forwarding while connecting to master.
- Move checks for package existence to test_package().
* piuparts-analyze.py:
- Sort bugs and try the newest bug first.
* piuparts-report.py:
- Fix URLs to piatti's config.
- Hardlink the logfiles to the htdocs tree (with copy as fallback).
* post_setup_squeeze-fake-essential: Restrict fake-essential install-info to
the 4 packages that actually need this.
* New custom script: pre_remove_40_find_obsolete_conffiles, report obsolete
conffiles after package upgrades. Suggested by Michael Biebl.
* pre_remove_50_find_missing_copyright: Skip check for packages that are not
installed or have only config files remaining.
* post_remove_cleanup: Cleanup dovecot certificates.
* Add support for installing and upgrading to the multiarch ia32-libs* in
wheezy/sid on amd64. (Closes: #679780)
* Merge known problem analyses excessive_output and runtime_exceeded into
new known problem resource_violation.
* New known problem: Leaving obsolete conffiles after upgrade.
* New known problem: Modifying conffiles or other shipped files (issue).
* New bug template: partial-upgrade-file-overwrite.
.
[ Holger Levsen ]
* README.txt:
- reformat with shorter line lengths (Closes: #603873).
- fix some typos.
.
piuparts (0.48) unstable; urgency=low
.
[ Andreas Beckmann ]
* piuparts.py:
- Ignore *.dpkg-* conffile backups found in --scriptsdir directories.
- Report attributes (for reference and current file) in case of file
modification.
- Report paths of installed files that contain symlinks (for better
debugging of the problems caused by such a setup).
( test $(dirname $x) != $(readlink -f $(dirname $x)) )
- Add debsums, processes, and broken-symlinks check after the first purge
in --install-purge-install mode.
- Add --install-recommends option, disabled by default.
- Mark temporary directories with a .piuparts.tmpdir file.
- Use rm -rf --one-file-system to delete chroots.
* piuparts.conf:
- New per section settings: expire-old-days, expire-fail-days (defaulting
to 0 which means expiration is disabled).
- Split and rename piuparts-cmd into piuparts-command ([global] setting
that should include all common flags) and piuparts-flags (for additional
section-specific flags).
- Rename the tempdir setting to tmpdir, this will be used for the --tmpdir
argument of piuparts, too.
* piuparts-master.py:
- Enable recycling before initializing the real package db.
- Enable logging by default and set default log-file to
$SECTION/master.log. Use "/dev/null" to disable logging.
* piuparts-slave.py:
- Retry sections with higher precedence more often.
- Construct the piuparts command line from the new config options
piuparts-command, piuparts-flags, and tmpdir.
* piuparts-report.py:
- Don't hardcode section names, always show all known_problem reports.
* detect_piuparts_issues: Catch the chroot running out of space.
* reschedule_oldest_logs: Implement logfile expiration. Delete logfiles that
are marked for recycling and are older than expire-{old,fail}-days. These
packages have not been retested because of some dependency problem making
the package currently untestable. Deleting the log will cause the package
to be moved to dependency-failed-testing or similar state.
expire-*-days needs to be greater than reschedule-*-days to enable this.
* slave_cleanup: Only remove directories containing a .piuparts.tmpdir file.
* New bug template: copyright_file_missing_after_upgrade.
* New known problem: Installing something over existing symlinks.
.
piuparts (0.47) unstable; urgency=low
.
[ Andreas Beckmann ]
* piuparts.py:
- Add to ignored_files/ignored_patterns:
+ /var/log/dbconfig-common/dbc.log
- Print a final message before terminating in the panic() handler.
- Add support for running debsums before package removal, enabled by
default. May be disabled via --no-debsums. (Closes: #687538)
- Add debsums as dependency.
* piuparts-slave.py:
- Detect incomplete piuparts output and ensure such tests fail.
* piuparts-report.py:
- Rewrite find_files_with_suffix(), handle disappearing files.
* New custom script pre_remove_50_find_missing_copyright: check for missing
/usr/share/doc/$package/copyright files. (Closes: #683685)
* Rename custom script post_install_find_bad_permissions to
pre_remove_50_find_bad_permissions to avoid early failures during upgrade
tests that may be fixed in a later version.
* Remove post_purge_dbconfig_cleanup custom script.
* reschedule_oldest_logs: Refactored.
- Fix duplicate variable name usage that sometimes prevented recycling.
- Support a [global] auto-reschedule=no setting.
* detect_well_known_errors: Unclassified logs may still be bugged.
* detect_piuparts_issues: Detect incomplete logfiles.
* New bug template: modifies_conffiles.
* New known problem: Modifying conffiles or other shipped files.
* New custom script post_distupgrade_hack_debsums to work around #687611
which makes all debsum checks fail due to modification of
/usr/share/keyrings/debian-archive-removed-keys.gpg during upgrades.
.
piuparts (0.46) unstable; urgency=low
.
[ Holger Levsen ]
* piuparts-report: drop in-code index.tpl stub.
* slave-join: fix bug preventing detection that the slave is not running.
* piuparts: call schroot with session: argument, thanks to Stephan Sürken
for the patch. (Closes: #686360)
.
[ Andreas Beckmann ]
* piuparts.py:
- Add to ignored_files/ignored_patterns:
+ /var/lib/cdebconf/{questions,templates}.dat-old
+ /var/lib/onioncat/
+ /var/lib/vmm/(./.*)? (Closes: #682184)
- Fix some leftover files and directories getting incorrectly accounted to
the package being tested instead of the dependencies in --warn-on-others
mode.
- Implement --install-purge-install option: test purging with all
dependencies still installed; re-install after purge.
- Install the dependencies and snapshot the chroot before the
--install-purge-install test. Check that the chroot after purge matches
the snapshot. (Closes: #668713)
* piupartslib/dependencyparser.py:
- Package names may now have a ":any" qualification in some cases. Extend
the parser to recognize and discard this suffix.
* piupartslib/packagesdb.py:
- Implement logfile recycling mode that avoids getting a large backlog of
untested packages due to uncoordinated log deletion. Delay log deletion
and give preference to packages (or versions) that have not yet been
tested. (Closes: #670150)
+ logfiles to be recycled should be hardlinked from pass/, fail/, ... to
recycle/
+ recycling can be enabled if recycle/ is not empty
+ treat packages with logfile in recycle/ as initially "unknown" and
compute state ("waiting[-for-dependency]-to-be-tested")
+ delete old logfile while reserving such a package
* piuparts-master.py:
- Accept and discard duplicate log submissions, preventing the slave from
retrying infinitely.
- Delay loading the Packages file which is only needed for "status" and
"reserve" commands, but not for submitting logs.
- Add "recycle" command to enter logfile recycling mode (needs to be
issued before "status" or "reserve").
- Remember idle state by creating stamp files.
- Add "idle" command to check a remembered idle status before trying to
"reserve" packages (avoid package state computation). Idle status (i.e.
no packages available for "reserve") will be remembered for an hour, but
any log modification (submission, deletion, marking for recycling) will
clear the idle status.
* piuparts-slave.py:
- Fix stopping the currently running test (Ctrl-C Ctrl-C).
- Handle master communication exceptions while sending logs or reserving
packages: skip the section but keep the slave running.
- Flush finished logs from sections that have processing postponed due to
precedence settings.
- Skip connection to master if we have reserved but no submittable logs.
- Submit finished logs after completing all reserved logs in a section.
- Send finished logs to master if interrupted with a single Ctrl-C.
- Try to unreserve all reserved logs after interrupt.
- Add SIGHUP handler that triggers flushing finished logs. Flushing (all
sections) will be done after the current test has finished.
- Enter logfile recycling mode if no section has packages left for regular
processing. Recycle logfiles until a section becomes available for
regular processing. If no logfiles could be recycled, retry after an
hour.
- Issue "idle" command before "reserve" and skip status computation and
reserving if master is idle.
* Simplify running piuparts from GIT.
* Reorganize layout in the GIT repository to reduce path nesting and length.
* Makefile:
- Separate build and install targets.
- Adjust for new layout, cleanup, simplify.
* conf/piuparts.apache: Set DefaultType text/plain (for the logfiles).
* reschedule_oldest_logs: Hardlink old logfiles to recycle/ instead of
deleting them. Cleanup obsolete rescheduling requests.
* New helper script: master-bin/reclassify_bugged.
* New custom script post_setup_forbid_home: replace /home with a file to
prevent creating home directories there. (Closes: #677332)
* New custom script post_install_find_bad_permissions: look for world
writable directories without sticky bit set.
Checksums-Sha1:
4e52a319f0adc623d115bdba084583a1296ed342 1861 piuparts_0.51~bpo70+1.dsc
040b6f9c1df1afeb77e3d51263d8ef00be7f5aaf 184053 piuparts_0.51~bpo70+1.tar.gz
414c6dd200c70976334dc4da9c5999c599e8b49f 103716 piuparts_0.51~bpo70+1_all.deb
58110d126eaab50e046d8d3caa345e0734fabf3e 102344 piuparts-master_0.51~bpo70+1_all.deb
4d7061384b761c4030e9ef47c4c46b73e7aaf3a0 42604 piuparts-slave_0.51~bpo70+1_all.deb
99b0e9417955a8d2c06a2d7221e7aa2343b689f6 43160 piuparts-common_0.51~bpo70+1_all.deb
Checksums-Sha256:
ef7573315365876485ac67fefe64f307318b3ca791935703a6a887cfdee4c783 1861 piuparts_0.51~bpo70+1.dsc
6c3126948f1642cfc2a65131160ec1d3e245e3a7fa1ba590622be766ab9ebf0a 184053 piuparts_0.51~bpo70+1.tar.gz
4a5e79000b4d87dbba7e821609e913106c5397e5bcb1baaf15fec0177c6fce21 103716 piuparts_0.51~bpo70+1_all.deb
909d8f3a04af788efa2cf86f70d9c1d2a1611c9b6c65b38d8849e80e39b7e460 102344 piuparts-master_0.51~bpo70+1_all.deb
b18a37a6e105f227c410e09846d6f0b5f4b08786b1dcad367a4489e38459abdc 42604 piuparts-slave_0.51~bpo70+1_all.deb
877fda01eea1163a3141f4e825777a12e1ec4abbf06f679b6e6fd2c5c8067959 43160 piuparts-common_0.51~bpo70+1_all.deb
Files:
f44cbdcc6499d7c87ba298a245cb44d0 1861 devel extra piuparts_0.51~bpo70+1.dsc
3939b86f2abedc962bcad1a0904e630d 184053 devel extra piuparts_0.51~bpo70+1.tar.gz
14e1c9cc9c17f65626be4e45ef5dfa4a 103716 devel extra piuparts_0.51~bpo70+1_all.deb
47d6ab74f2f70cb78614040de47d5ac9 102344 devel extra piuparts-master_0.51~bpo70+1_all.deb
c72a4e42f14ae57fa0595cc964b4a480 42604 devel extra piuparts-slave_0.51~bpo70+1_all.deb
6e0af82be8e579e01faf0dbf51a55384 43160 devel extra piuparts-common_0.51~bpo70+1_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIVAwUBUaR4UgkauFYGmqocAQjuGxAAogmFCuWAuL0/pwiVVSyMczla+T+zv/M+
3gh43GlXlRaECuxxsnfUq/q6WLeH0xDTtVL4QhPox4we+L9/1psFlQVMjlZtWA6S
HVGnOkZ4oCNbith69jLKVPidP22xHywDm9SFOmohweRraMizIqtlP9rWq9GGL2tG
WnJEnDc9/NI2dBAiMGnbLY3dPpGDOn+6/rEz/sHoWpIZIPr+UL2r3d5tJJpk0uT3
Ybu+OSZUUo0/kSoK+9UT1FOnVfWEqZSA3CjQ6Yi1qS6b7pq8Pvq9GpH/XEI8rIc4
Gps+5Bf3LJa6zHt4nJ3RudxdXU/EXdmdrMrlcb41z8qErBe1QxQ70tzQPL/Tsfz4
YaAY82tvgo71DGBEnP07qMVjXb4Tb/RlVjXHQSjq7ttBshv3xDD18ToeNFQhaqxR
Jg3dnNYScOFds9oHc8n305GYhj1lZH+R4pzunEu6qlWYvP5iqjiqDkMyxHp3Pl5e
ifTgMzhowVdfNGC4LAh2jNGYttVmIu4P8Wmoabbz5+by+mTZ7IRGgCSe1HGzAqPO
4qbe9AO9EkDrky6Mf6qDgUCIMp+U4RENtuj4pJPzWQWeZs1WXKseqXI2JjbDJiNN
93b0XH1pBt4QAcQNTEcL7gNwTPqgrbhAeNJlsNILg1hTND0j2d8Hyf+hsOELtIDz
zyODZf+kYqs=
=7xVz
-----END PGP SIGNATURE-----
=7xVz
-----END PGP SIGNATURE-----
Reply to: