summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--methods/copy.cc4
-rwxr-xr-xtest/integration/test-bug-762160-relpath10
2 files changed, 8 insertions, 6 deletions
diff --git a/methods/copy.cc b/methods/copy.cc
index 5570f31c8..b78053d36 100644
--- a/methods/copy.cc
+++ b/methods/copy.cc
@@ -55,8 +55,8 @@ void CopyMethod::CalculateHashes(FetchResult &Res)
/* */
bool CopyMethod::Fetch(FetchItem *Itm)
{
- URI Get = Itm->Uri;
- std::string File = Get.Path;
+ // this ensures that relative paths work in copy
+ std::string File = Itm->Uri.substr(Itm->Uri.find(':')+1);
// Stat the file and send a start message
struct stat Buf;
diff --git a/test/integration/test-bug-762160-relpath b/test/integration/test-bug-762160-relpath
index 0af71f57b..204587727 100755
--- a/test/integration/test-bug-762160-relpath
+++ b/test/integration/test-bug-762160-relpath
@@ -1,9 +1,9 @@
#!/bin/sh
+# regresion test for bug #762160 where apt-get update fails when a
+# relative directory is given
+#
set -e
-# dpkg implements versioned provides in commit 5bb02fe80e9f40dcad9703a72f67cf615ff217b5
-# but previous versions seem to allow parsing, working and ignoring it.
-
TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework
setupenvironment
@@ -11,5 +11,7 @@ configarchitecture 'amd64'
insertpackage 'unstable' 'foo' 'all' '1'
setupaptarchive
+changetowebserver
-aptget update -o Dir=./apt
+testsuccess aptget update -o Dir=./rootdir
+testsuccess aptget update -o Dir=./rootdir \ No newline at end of file