configure also the replacement before remove by adding Immediate flag
[ntk/apt.git] / debian / changelog
index e44d798..b836aaa 100644 (file)
@@ -1,21 +1,54 @@
-apt (0.7.26~exp5) UNRELEASED; urgency=low
+apt (0.7.26~exp11) experimental; urgency=low
 
-  [ Christian Perrier ]
-  * Slovak translation update. Closes: #581159
-  * Italian translation update. Closes: #581742
+  [ David Kalnischkies ]
+  * apt-pkg/depcache.cc:
+    - handle "circular" conflicts for "all" packages correctly
+  * cmdline/apt-cache.cc:
+    - be able to omit dependency types in (r)depends (Closes: #319006)
+    - show in (r)depends the canidate per default instead of newest
+    - share the (r)depends code instead of codecopy
+  * apt-pkg/cacheset.cc:
+    - move them back to the library as they look stable now
+    - add a 'newest' pseudo target release as in pkg/newest
+  * apt-pkg/pkgcache.cc:
+    - prefer non-virtual packages in FindPreferredPkg (Closes: #590041)
+  * test/integration/*:
+    - add with bug#590041 testcase a small test "framework"
+  * apt-pkg/orderlist.cc:
+    - try to install another or-group member in DepRemove before
+      breaking the or group (Closes: #590438)
+    - configure also the replacement before remove by adding Immediate flag
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Thu, 29 Jul 2010 12:24:49 +0200
+
+apt (0.7.26~exp10) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/contrib/error.{cc,h}:
+    - remove constness of va_list parameter to fix build on amd64 and co
+      Thanks Eric Valette! (Closes: #588610)
+  * apt-pkg/deb/debmetaindex.cc:
+    - do not query each architecture for flat file archives
+    - fix typo preventing display of architecture in Info()
+  * methods/bzip2.cc:
+    - add a copycat of the old gzip.cc as we need it for bzip2 and lzma
 
   [ Martin Pitt ]
   * debian/rules:
     - Make DEB_BUILD_OPTIONS=noopt actually work by passing the right
       CXXFLAGS.
   * apt-pkg/contrib/fileutl.{h,cc}:
-    - Add support for transparent reading of gzipped files.
+    - Add support for reading of gzipped files with the new "ReadOnlyGzip"
+      OpenMode. (Closes: #188407)
     - Link against zlib (in apt-pkg/makefile) and add zlib build dependency.
     - [ABI BREAK] This adds a new private member to FileFd, but its
-      initialization is in the public header file. This also changes the
-      behaviour of FileFd for reading gzipped files.
+      initialization is in the public header file.
   * configure.in:
     - Check for zlib library and headers.
+  * apt-pkg/acquire-item.cc, apt-pkg/deb/debindexfile.cc,
+    apt-pkg/deb/debrecords.cc, apt-pkg/deb/debsrcrecords.h,
+    cmdline/apt-cache.cc:
+    - Open Packages, Sources, and Translations indexes in "ReadOnlyGzip" mode.
   * apt-pkg/deb/debindexfile.cc:
     - If we do not find uncompressed package/source/translation indexes, look
       for gzip compressed ones.
@@ -30,18 +63,313 @@ apt (0.7.26~exp5) UNRELEASED; urgency=low
   * Add test/test-indexes.sh:
     - Test behaviour of index retrieval and usage, in particular with
       uncompressed and gzip compressed indexes.
+  * methods/gzip.cc: With FileFd now being able to read gzipped files, there
+    is no need for the gzip method any more to spawn an external gzip process.
+    Rewrite it to use FileFd directly, which makes the code a lot simpler, and
+    also using less memory and overhead.
+
+ -- Michael Vogt <mvo@debian.org>  Mon, 12 Jul 2010 11:41:01 +0200
+
+apt (0.7.26~exp9) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * doc/apt.conf.5.xml:
+    - add and document APT::Cache-{Start,Grow,Limit} options for mmap control
+  * apt-pkg/contrib/fileutl.cc:
+    - do not fail von double close()
+
+ -- Michael Vogt <mvo@debian.org>  Fri, 09 Jul 2010 21:51:55 +0200
+
+apt (0.7.26~exp8) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * cmdline/cacheset.cc:
+    - doesn't include it in the library for now as it is too volatile
+    - get the candidate either from an already built depcache
+      or use the policy which is a bit faster than depcache generation
+    - get packages by task^ with FromTask()
+    - only print errors if all tries to get a package by string failed
+    - factor out code to get a single package FromName()
+    - check in Grouped* first without modifier interpretation
+  * cmdline/apt-get.cc:
+    - use the cachsets in the install commands
+    - make the specify order of packages irrelevant (Closes: #196021)
+  * apt-pkg/orderlist.cc:
+    - untouched packages are never missing
+  * apt-pkg/packagemanager.cc:
+    - packages that are not touched doesn't need to be unpacked
+  * debian/control:
+    - remove intltool's dependency as it is an ubuntu artefact
+  * apt-pkg/depcache.cc:
+    - SetCandidateVer for all pseudo packages
+    - SetReInstall for the "all" package of a pseudo package
+    - use the new MatchAgainstConfig for the DefaultRootSetFunc
+    - always mark the all package if a pseudo package is marked for install
+  * apt-pkg/contrib/error.{cc,h}:
+    - complete rewrite but use the same API
+    - add NOTICE and DEBUG as new types of a message
+    - add a simple stack handling to be able to delay error handling
+  * apt-pkg/aptconfiguration.cc:
+    - show a deprecation notice for APT::Acquire::Translation
+  * apt-pkg/contrib/configuration.{cc,h}:
+    - add a wrapper to match strings against configurable regex patterns
+  * apt-pkg/contrib/fileutl.cc:
+    - show notice about ignored file instead of being always silent
+    - add a Dir::Ignore-Files-Silently list option to control the notice
+  * apt-pkg/policy.h:
+    - add another round of const& madness as the previous round accidentally
+      NOT overrides the virtual GetCandidateVer() method (Closes: #587725)
+  * apt-pkg/pkgcachegen.{cc,h}:
+    - make the used MMap moveable (and therefore dynamic resizeable) by
+      applying (some) mad pointer magic (Closes: #195018)
+
+  [ Michael Vogt ]
+  * apt-pkg/deb/dpkgpm.cc:
+    - make the apt/term.log output unbuffered (thanks to Matt Zimmerman)
+
+  [ Julian Andres Klode ]
+  * methods/ftp.h:
+    - Handle different logins on the same server (Closes: #586904).
+  * apt-pkg/deb/deblistparser.cc:
+    - Handle architecture wildcards (Closes: #547724).
+  * apt-pkg/versionmatch.cc:
+    - Support matching pins by regular expressions or glob() like patterns,
+      regular expressions have to be put between to slashes; for example,
+      /.*/.
+  * apt-pkg/contrib/fileutl.cc:
+    - Make FileFd replace files atomically in WriteTemp mode (for cache, etc).
+  * debian/control:
+    - Set Standards-Version to 3.9.0
+
+ -- Michael Vogt <mvo@debian.org>  Fri, 09 Jul 2010 19:16:20 +0200
+
+apt (0.7.26~exp7) experimental; urgency=low
+
+  * apt-pkg/cachefile.h:
+    - make pkgPolicy public again, libapt-pkg-perl (and probably
+      others) get unhappy without that
+
+ -- Michael Vogt <mvo@debian.org>  Thu, 10 Jun 2010 15:33:24 +0200
+
+apt (0.7.26~exp6) experimental; urgency=low
+
+  [ Michael Vogt ]
+  * merge the remaining Ubuntu change:
+    - on gpg verification failure warn and restore the last known
+      good state
+    - on failure display the IP of the server (useful for servers
+      that use round robin DNS)
+    - support Original-Maintainer in RewritePackageOrder
+    - enable cdrom autodetection via libudev by default
+    - show message about Vcs in use when apt-get source is run for
+      packages maintained in a Vcs
+    - better support transitional packages with mark auto-installed. 
+      when the transitional package is in "oldlibs" the new package
+      is not marked auto installed (same is true for section
+      metapackages)
+    - provide new "deb mirror://archive.foo/mirrors.list sid main"
+      method expects a list of mirrors (generated on the server e.g.
+      via geoip) and will use that, including cycle on failure
+    - write apport crash file on package failure (disabled by default
+      on debian until apport is available)
+    - support mirror failure reporting (disabled by default on debian)
+  
+  [ David Kalnischkies ]
+  * apt-pkg/deb/dpkgpm.cc:
+    - write Disappeared also to the history.log
+    - forward manual-installed bit on package disappearance
+  * apt-pkg/deb/debsystem.cc:
+    - add better config item for extended_states file
+  * apt-pkg/pkgcache.h:
+    - switch {,Install-}Size to unsigned long long
+  * apt-pkg/depcache.cc:
+    - do the autoremove mark process also for required packages to handle
+      these illegally depending on lower priority packages (Closes: #583517)
+    - try harder to find the other pseudo versions for autoremove multiarch
+    - correct "Dangerous iterator usage" pointed out by cppcheck
+    - deal with long long, not with int to remove 2GB Limit (LP: #250909)
+    - deprecate AddSize with Multiplier as it is unused and switch to
+      boolean instead to handle the sizes more gracefully.
+    - switch i{Download,Usr}Size from double to (un)signed long long
+  * apt-pkg/aptconfiguration.cc:
+    - remove duplicate architectures in getArchitectures()
+  * apt-pkg/indexrecords.{cc,h}:
+    - backport forgotten Valid-Until patch from the obsolete experimental
+      branch to prevent replay attacks better, thanks to Thomas Viehmann
+      for the initial patch! (Closes: #499897)
+    - add a constant Exists check for MetaKeys
   * apt-pkg/acquire-item.cc:
-    - Fix return value of pkgAcqFile::Custom600Headers() in the non-index
-      case, to avoid returning NULL and causing crashers in callers. This also
-      fixes a compiler warning.
+    - do not try PDiff if it is not listed in the Meta file
+    - sent Last-Modified header also for Translation files
+  * apt-pkg/cacheiterator.h:
+    - let pkgCache::Iterator inherent std::iterator
+  * ftparchive/writer.h:
+    - add a virtual destructor to FTWScanner class (for cppcheck)
+  * apt-pkg/cacheset.{cc,h}:
+    - add simple wrapper around std::set for cache structures
+    - move regex magic from apt-get to new FromRegEx method
+    - move cmdline parsing from apt-cache to new FromCommandLine method
+    - support special release-modifier 'installed' and 'candidate'
+  * apt-pkg/contrib/cmdline.cc:
+    - fix segfault in SaveInConfig caused by writing over char[] sizes
+  * apt-pkg/pkgcache.cc:
+    - get the best matching arch package from a group with FindPreferredPkg
+  * cmdline/apt-cache.cc:
+    - make the search multiarch compatible by using GrpIterator instead
+    - use pkgCacheFile and the new CacheSets all over the place
+    - add --target-release option (Closes: #115520)
+    - accept pkg/release and pkg=version in show and co. (Closes: #236270)
+    - accept package versions in the unmet command
+  * cmdline/apt-get.cc:
+    - use unsigned long long instead of double to store values it gets
+  * apt-pkg/cachefile.{cc,h}:
+    - split Open() into submethods to be able to build only parts
+    - make the OpProgress optional in the Cache buildprocess
+    - store also the SourceList we use internally for export
+  * doc/apt.conf.5.xml:
+    - document the new Valid-Until related options
+  * apt-pkg/contrib/strutl.cc:
+    - split StrToTime() into HTTP1.1 and FTP date parser methods and
+      use strptime() instead of some self-made scanf mangling
+    - use the portable timegm shown in his manpage instead of a strange
+      looking code copycat from wget
+  * ftparchive/writer.cc:
+    - add ValidTime option to generate a Valid-Until header in Release file
+  * apt-pkg/policy.cc:
+    - get the candidate right for a not-installed pseudo package if
+      his non-pseudo friend is installed
+  * apt-pkg/indexcopy.cc:
+    - move the gpg codecopy to a new method and use it also in methods/gpgv.cc
 
- -- Christian Perrier <bubulle@debian.org>  Tue, 11 May 2010 19:52:00 +0200
+ -- Michael Vogt <mvo@debian.org>  Thu, 10 Jun 2010 14:02:22 +0200
 
-apt (0.7.26~exp4) unstable; urgency=low
+apt (0.7.26~exp5) experimental; urgency=low
 
+  [ David Kalnischkies ]
+  * cmdline/apt-get.cc:
+    - rerun dpkg-source in source if --fix-broken is given (Closes: #576752)
+    - don't suggest held packages as they are installed (Closes: #578135)
+    - handle multiple --{tar,diff,dsc}-only options correctly
+    - show at the end of the install process a list of disappeared packages
+  * cmdline/apt-cache.cc:
+    - use GroupCount for package names in stats and add a package struct line
+  * methods/rred.cc:
+    - use the patchfile modification time instead of the one from the
+      "old" file - thanks to Philipp Weis for noticing! (Closes: #571541)
+  * debian/rules:
+    - remove targets referring to CVS or arch as they are useless
+    - use $(CURDIR) instead of $(pwd)
+    - use dpkg-buildflags if available for CXXFLAGS
+  * README.arch:
+    - remove the file completely as it has no use nowadays
+  * apt-pkg/depcache.cc:
+    - be doublesure that the killer query is empty before starting reinstall
+  * methods/gpgv.cc:
+    - remove the keyrings count limit by using vector magic
+  * contrib/mmap.cc:
+    - clarify "MMap reached size limit" error message, thanks Ivan Masár!
+  * doc/apt.ent
+    - add entities for the current oldstable/stable/testing codenames
+  * doc/sources.list.5.xml:
+    - use stable-codename instead of stable in the examples (Closes: #531492)
+  * doc/apt_preferences.5.xml:
+    - adapt some examples here to use current codenames as well
+    - add "NotAutomatic: yes" handling, thanks Osamu Aoki (Closes: #490347)
+  * debian/libapt-pkg-doc.doc-base.cache:
+    - remove yet another reference to the removed cache.sgml
+  * doc/apt-get.8.xml:
+    - do not say explicit target_release_{name,version,codename}, it should
+      be clear by itself and 'man' can break lines again (Closes: #566166)
+    - remove the gnome-apt reference as it is removed from unstable
+  * apt-pkg/deb/dpkgpm.cc:
+    - add 'disappear' to the known processing states, thanks Jonathan Nieder
+  * apt-pkg/packagemanager.h:
+    - export info about disappeared packages with GetDisappearedPackages()
+
+  [ Michael Vogt ]
+  * methods/http.{cc,h}:
+    - code cleanup, use enums instead of magic ints
+  
+  [ Jari Aalto ]
+  * debian/rules:
+    - spell out some less known options to reduce manpage consultation-rate
+    - Use POSIX command substitution: $(<command sequence>)
+    - Remove EOL whitespace (Closes: #577804)
+
+  [ Julian Andres Klode ]
+  * apt-pkg/acquire-item.cc:
+    - Fix pkgAcqFile::Custom600Headers() to always return something.
+  
+
+  [ Christian Perrier ]
+  * Slovak translation update. Closes: #581159
+  * Italian translation update. Closes: #581742
+
+ -- Michael Vogt <mvo@debian.org>  Tue, 25 May 2010 16:01:42 +0200
+
+apt (0.7.26~exp4) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/depcache.cc:
+    - rewrite the pseudo package reinstaller to be more intelligent
+      in his package choices
+  * apt-pkg/packagemanager.cc:
+    - don't try to "unpack" pseudo packages twice
+  * apt-pkg/contrib/fileutl.cc:
+    - add a parent-guarded "mkdir -p" as CreateDirectory()
+  * apt-pkg/acquire.{cc,h}:
+    - add a delayed constructor with Setup() for success reporting
+    - check for and create directories in Setup if needed instead of
+      error out unfriendly in the Constructor (Closes: #523920, #525783)
+    - optional handle a lock file in Setup()
+  * apt-pkg/acquire-item.cc:
+    - Acquire::ForceHash to force method for expected hash
+  * cmdline/apt-get.cc:
+    - remove the lock file handling and let Acquire take care of it instead
+    - display MD5Sum in --print-uris if not forced to use another method
+      instead of displaying the strongest available (Closes: #576420)
+    - regex for package names executed on Grp- not PkgIterator
+    - show non-candidates as fallback for virtual packages (Closes: #578385)
+    - set also "all" to this version for pseudo packages in TryToChangeVer
+  * apt-pkg/deb/dpkgpm.cc:
+    - remove Chroot-Directory from files passed to install commands.
+      Thanks to Kel Modderman for report & patch! (Closes: #577226)
+  * ftparchive/writer.cc:
+    - remove 999 chars Files and Checksums rewrite limit (Closes: #577759)
+  * cmdline/apt-cache.cc:
+    - align Installed and Candidate Version in policy so they can be compared
+      easier, thanks Ralf Gesellensetter for the pointer! (Closes: #578657)
+  * doc/apt.ent:
+    - Add a note about APT_CONFIG in the -c description (Closes: #578267)
+  * doc/po/de.po:
+    - correct typos in german apt_preferences manpage, thanks Chris Leick!
+  * apt-pkg/sourcelist.cc:
+    - be less strict and accept [option=value] as well
+  * apt-pkg/contrib/configuration.cc:
+    - error out if #clear directive has no argument
+  * doc/files.sgml:
+    - sync documentation with status quo, regarding files/directories in
+      use, extended_states and uri schemes.
+  * doc/cache.sgml:
+    - drop the file in favor of inplace documentation with doxygen
+  * apt-pkg/pkgcache.h:
+    - enhance the Groups ABI by providing a ID as the other structs does
+    - check also the size of the Group struct then checking for the others
+
+  [ Jari Aalto ]
+  * cmdline/apt-get.cc:
+    - replace backticks with single quotes around fix-broken command
+      in the broken packages message. (Closes: #577168)
+  * dselect/install:
+    - modernize if-statements not to use 'x' (Closes: #577117)
+    - replace backticks with POSIX $() (Closes: #577116)
+
+  [ Michael Vogt ]
   * [ Abi break ] apt-pkg/acquire-item.{cc,h}:
     - add "IsIndexFile" to constructor of pkgAcqFile so that it sends
       the right cache control headers
+  * cmdline/apt-get.cc:
+    - fix crash when pkg.VersionList() is empty
   * apt-pkg/depcache.cc:
     - fix incorrect std::cout usage for debug output
   * test/libapt/getlanguages_test.cc:
@@ -50,11 +378,26 @@ apt (0.7.26~exp4) unstable; urgency=low
   * apt-pkg/deb/debrecords.cc:
     - fix max tag buffer size (LP: #545336, closes: #578959)
   * debian/rules:
-    - install html doxygen in libapt-pkg-doc as well
+    - install html doxygen in libapt-pkg-doc 
+  * debian/control:
+    - build-depend on doxygen
+
+  [ Julian Andres Klode ]
+  * apt-pkg/contrib/weakptr.h:
+    - add a class WeakPointable which allows one to register weak pointers to
+      an object which will be set to NULL when the object is deallocated.
+  * [ABI break] apt-pkg/acquire{-worker,-item,}.h:
+    - subclass pkgAcquire::{Worker,Item,ItemDesc} from WeakPointable.
+  * apt-pkg/pkgcache.cc:
+    - Merge fix from David to correct handling in single-arch environments.
+  * cmdline/apt-cache.cc:
+    - Add a showauto command to apt-cache.
+  * cmdline/apt-get.cc:
+    - Add apt-get markauto and unmarkauto commands.
 
- -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 04 May 2010 09:55:08 +0200
+ -- Michael Vogt <mvo@debian.org>  Thu, 06 May 2010 09:32:54 +0200
 
-apt (0.7.26~exp3) UNRELEASED; urgency=low
+apt (0.7.26~exp3) experimental; urgency=low
 
   [ Christian Perrier ]
   * German translation update. Closes: #571037
@@ -64,6 +407,68 @@ apt (0.7.26~exp3) UNRELEASED; urgency=low
   * Add "manpages-pl (<< 20060617-3~)" to avoid file conflicts with
     that package that was providing some manpages for APT utilities.
 
+  [ David Kalnischkies ]
+  * [BREAK] merge MultiArch-ABI. We don't support MultiArch,
+    but we support the usage of the new ABI so libapt users
+    can start to prepare for MultiArch (Closes: #536029)
+  * Ignore :qualifiers after package name in build dependencies
+    in the library by default, but try to honour them in apt-get
+    as we have some sort of MultiArch support ready (Closes: #558103)
+  * add translation of the manpages to PT (portuguese)
+    Thanks to Américo Monteiro!
+  * Switch to dpkg-source 3.0 (native) format
+  * apt-pkg/depcache.cc:
+    - remove Auto-Installed information from extended_states
+      together with the package itself (Closes: #572364)
+  * cmdline/apt-mark:
+    - don't crash if no arguments are given (Closes: #570962)
+  * debian/control:
+    - remove some years old and obsolete Replaces
+    - add automake/conf build-depends/conflicts as recommend by
+      the autotools-dev README (Closes: #572615)
+  * apt-pkg/contrib/mmap.{h,cc}:
+    - add char[] fallback for filesystems without shared writable
+      mmap() like JFFS2. Thanks to Marius Vollmer for writing
+      and to Loïc Minier for pointing to the patch! (Closes: #314334)
+  * doc/apt_preferences.5.xml:
+    - fix two typos and be more verbose in the novice warning.
+      Thanks to Osamu Aoki for pointing it out! (Closes: #567669)
+    - fix a=sid vs. n=sid typo, thanks Ansgar Burchardt!
+    - origin can be used to match a hostname (Closes: #352667)
+    - remove wrong pin-priority is optional remark (Closes: #574944)
+  * apt-pkg/deb/dpkgpm.cc:
+    - fix error message construction in OpenLog()
+    - if available store the Commandline in the history
+  * cmdline/apt-get.cc:
+    - add a --only-upgrade flag to install command (Closes: #572259)
+    - fix memory leaks in error conditions in DoSource()
+    - try version match in FindSrc first exact than fuzzy (LP: #551178)
+  * apt-pkg/contrib/cmndline.cc:
+    - save Commandline in Commandline::AsString for logging
+  * apt-pkg/deb/debversion.cc:
+    - consider absent of debian revision equivalent to 0 (Closes: #573592)
+  * doc/makefile, doc/*:
+    - generate subdirectories for building the manpages in on the fly
+      depending on the po files we have.
+  * apt-pkg/pkgcachegen.cc:
+    - merge versions correctly even if multiple different versions
+      with the same version number are available.
+      Thanks to Magnus Holmgren for the patch! (Closes: #351056)
+  * ftparchive/writer.cc:
+    - write LongDescriptions if they shouldn't be included in Packages
+      file into i18n/Translation-en by default.
+  * doc/po/de.po:
+    - correct a few typos in the german manpage translation.
+      Thanks to Chris Leick and Georg Koppen! (Closes: #574962)
+  * apt-pkg/contrib/strutl.cc:
+    - convert all toupper calls to tolower_ascii for a little speedup
+
+  [ Jean-Baptiste Lallement ]
+  * apt-pkg/contrib/strutl.cc:
+    - always escape '%' (LP: #130289) (Closes: #500560)
+    - unescape '%' sequence only if followed by 2 hex digit
+    - username/password are urlencoded in proxy string (RFC 3986)
+
   [ Julian Andres Klode ]
   * cmdline/apt-cache.cc:
     - Change behavior of showsrc to match the one of show (Closes: #512046).
@@ -96,7 +501,7 @@ apt (0.7.26~exp3) UNRELEASED; urgency=low
   * doc/examples/configure-index:
     - add missing Debug::pkgPackageManager option
 
- -- Christian Perrier <bubulle@debian.org>  Wed, 24 Feb 2010 22:13:50 +0100
+ -- Michael Vogt <mvo@debian.org>  Thu, 01 Apr 2010 17:30:43 +0200
 
 apt (0.7.26~exp2) experimental; urgency=low
 
@@ -1496,13 +1901,6 @@ apt (0.7.6) unstable; urgency=low
 
  -- Otavio Salvador <otavio@debian.org>  Wed, 01 Aug 2007 19:49:51 -0300
 
-apt (0.7.6) unstable; urgency=low
-
-  * Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong
-    directory downloading on non-linux architectures (closes: #435597)
-
- -- Otavio Salvador <otavio@debian.org>  Wed, 01 Aug 2007 19:49:51 -0300
-
 apt (0.7.5) unstable; urgency=low
 
   [ Otavio Salvador ]