Browse Source

restore binary compatiblity with the pkgPackageManager interface

tags/debian/0.9.13.exp1
Michael Vogt 8 years ago
parent
commit
3b1b0f2900
4 changed files with 89 additions and 11 deletions
  1. +2
    -1
      apt-pkg/deb/dpkgpm.cc
  2. +25
    -0
      apt-pkg/packagemanager.cc
  3. +8
    -10
      apt-pkg/packagemanager.h
  4. +54
    -0
      test/integration/test-apt-progress-fd-deb822

+ 2
- 1
apt-pkg/deb/dpkgpm.cc View File

@@ -19,7 +19,8 @@
#include <apt-pkg/fileutl.h>
#include <apt-pkg/cachefile.h>
#include <apt-pkg/packagemanager.h>
#include <apt-pkg/iprogress.h>

#include <apt-private/private-progress.h>

#include <unistd.h>
#include <stdlib.h>


+ 25
- 0
apt-pkg/packagemanager.cc View File

@@ -1027,6 +1027,18 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
return Completed;
}
// PM::DoInstallPostFork - compat /*{{{*/
// ---------------------------------------------------------------------
/*}}}*/
pkgPackageManager::OrderResult
pkgPackageManager::DoInstallPostFork(int statusFd)
{
APT::Progress::PackageManager *progress = new
APT::Progress::PackageManagerProgressFd(statusFd);
pkgPackageManager::OrderResult res = DoInstallPostFork(progress);
delete progress;
return res;
}
/*}}}*/
// PM::DoInstallPostFork - Does install part that happens after the fork /*{{{*/
// ---------------------------------------------------------------------
@@ -1042,6 +1054,19 @@ pkgPackageManager::DoInstallPostFork(APT::Progress::PackageManager *progress)
/*}}}*/
// PM::DoInstall - Does the installation /*{{{*/
// ---------------------------------------------------------------------
/* compat */
pkgPackageManager::OrderResult
pkgPackageManager::DoInstall(int statusFd)
{
APT::Progress::PackageManager *progress = new
APT::Progress::PackageManagerProgressFd(statusFd);
OrderResult res = DoInstall(progress);
delete progress;
return res;
}
/*}}}*/
// PM::DoInstall - Does the installation /*{{{*/
// ---------------------------------------------------------------------
/* This uses the filenames in FileNames and the information in the
DepCache to perform the installation of packages.*/
pkgPackageManager::OrderResult


+ 8
- 10
apt-pkg/packagemanager.h View File

@@ -23,8 +23,10 @@
#ifndef PKGLIB_PACKAGEMANAGER_H
#define PKGLIB_PACKAGEMANAGER_H

#include <apt-pkg/macros.h>
#include <apt-pkg/pkgcache.h>
#include <apt-pkg/iprogress.h>

#include <apt-private/private-progress.h>

#include <string>
#include <iostream>
@@ -100,16 +102,8 @@ class pkgPackageManager : protected pkgCache::Namespace

// Do the installation
OrderResult DoInstall(APT::Progress::PackageManager *progress);

// compat
OrderResult DoInstall(int statusFd=-1) {
APT::Progress::PackageManager *progress = new
APT::Progress::PackageManagerProgressFd(statusFd);
OrderResult res = DoInstall(progress);
delete progress;
return res;
}

__deprecated OrderResult DoInstall(int statusFd=-1);

// stuff that needs to be done before the fork() of a library that
// uses apt
@@ -120,6 +114,10 @@ class pkgPackageManager : protected pkgCache::Namespace

// stuff that needs to be done after the fork
OrderResult DoInstallPostFork(APT::Progress::PackageManager *progress);
// compat
__deprecated OrderResult DoInstallPostFork(int statusFd=-1);

// ?
bool FixMissing();

/** \brief returns all packages dpkg let disappear */


+ 54
- 0
test/integration/test-apt-progress-fd-deb822 View File

@@ -0,0 +1,54 @@

set -e

TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework

setupenvironment
configarchitecture 'amd64' 'i386'

buildsimplenativepackage 'testing' 'amd64' '0.1' 'stable'
buildsimplenativepackage 'testing' 'all' '0.8.15' 'stable'
buildsimplenativepackage 'testing2' 'amd64,i386' '0.8.15' 'stable'
setupaptarchive

# install native
exec 3> apt-progress.log
testsuccess aptget install testing=0.1 -y -o APT::Status-deb822-Fd=3
testequal "# and compare
testequal "percent:0
message: Running dpkg

package: testing2
percent: 0
message: Installing testing2 (i386)

package: testing2
percent: 20
message: Preparing testing2 (i386)

package: testing2
percent: 40
message: Unpacking testing2 (i386)

package: testing2
percent: 60
message: Preparing to configure testing2 (i386)

percent: 60
message: Running dpkg

package: testing2
percent: 60
message: Configuring testing2 (i386)

package: testing2
percent: 80
message: Configuring testing2 (i386)

package: testing2
percent: 100
message: Installed testing2 (i386)" cat apt-progress.log


rm -f apt-progress*.log

Loading…
Cancel
Save