diff -up octave-4.0.0-rc1/scripts/pkg/private/install.m.pkgbuilddir octave-4.0.0-rc1/scripts/pkg/private/install.m --- octave-4.0.0-rc1/scripts/pkg/private/install.m.pkgbuilddir 2015-03-05 08:13:28.000000000 -0700 +++ octave-4.0.0-rc1/scripts/pkg/private/install.m 2015-03-05 20:43:45.762854275 -0700 @@ -62,7 +62,10 @@ function install (files, handle_deps, au for i = 1:length (files) tgz = files{i}; - if (exist (tgz, "file")) + ## The filename pointed to an uncompressed package to begin with. + if (exist (tgz, "dir")) + dirlist = {".", "..", tgz}; + elseif (exist (tgz, "file")) ## Create a temporary directory. tmpdir = tempname (); tmpdirs{end+1} = tmpdir; @@ -91,17 +94,16 @@ function install (files, handle_deps, au endif endif - ## The filename pointed to an uncompressed package to begin with. - if (exist (tgz, "dir")) - dirlist = {".", "..", tgz}; - endif - - if (exist (tgz, "file") || exist (tgz, "dir")) + if (exist (tgz, "file")) ## The two first entries of dirlist are "." and "..". - if (exist (tgz, "file")) - packdir = fullfile (tmpdir, dirlist{3}); + if (exist (tgz, "dir")) + if (tgz(1) == '/') + packdir = tgz; + else + packdir = fullfile (pwd (), dirlist{3}); + endif else - packdir = fullfile (pwd (), dirlist{3}); + packdir = fullfile (tmpdir, dirlist{3}); endif packdirs{end+1} = packdir;