aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2006-03-14 22:37:11 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2006-03-14 22:37:11 +0000
commitb3ef01b84fa830757897ef17e98424916a2c1210 (patch)
tree5593babb276f412f9fd2157e8bbb848ee9202830
parent5dfaae53b3b5fe95dd1d2c6f2073c036103095ce (diff)
downloadpaludis-b3ef01b84fa830757897ef17e98424916a2c1210.tar.gz
paludis-b3ef01b84fa830757897ef17e98424916a2c1210.tar.xz
Initial non-working install code
-rw-r--r--configure.ac1
-rw-r--r--ebuild/Makefile.am2
-rw-r--r--ebuild/build_functions.bash4
-rwxr-xr-xebuild/ebuild.bash73
-rw-r--r--ebuild/echo_functions.bash5
-rw-r--r--ebuild/pkg_init.bash52
-rw-r--r--ebuild/pkg_postinst.bash8
-rw-r--r--ebuild/pkg_preinst.bash8
-rw-r--r--ebuild/pkg_setup.bash8
-rw-r--r--ebuild/src_compile.bash3
-rw-r--r--ebuild/src_test.bash11
-rw-r--r--ebuild/src_unpack.bash3
-rw-r--r--ebuild/usage_error.bash6
-rw-r--r--paludis/Makefile.am.m45
-rw-r--r--paludis/fake_repository.cc4
-rw-r--r--paludis/fake_repository.hh2
-rw-r--r--paludis/portage_repository.cc50
-rw-r--r--paludis/portage_repository.hh2
-rw-r--r--paludis/qa/Makefile.am.m45
-rw-r--r--paludis/repository.hh13
-rw-r--r--src/Makefile.am5
-rw-r--r--src/colour.hh3
-rw-r--r--src/install.cc16
-rw-r--r--src/paludis.cc1
-rw-r--r--src/qualudis/Makefile.am5
-rw-r--r--src/qualudis/qualudis.cc1
-rw-r--r--src/query.cc2
27 files changed, 253 insertions, 45 deletions
diff --git a/configure.ac b/configure.ac
index 3df686c..579e6da 100644
--- a/configure.ac
+++ b/configure.ac
@@ -326,6 +326,7 @@ AC_OUTPUT(
doc/Makefile
doc/doxygen.conf
ebuild/Makefile
+ ebuild/utils/Makefile
misc/Makefile
misc/svn-version-filter-data.bash
paludis/Makefile
diff --git a/ebuild/Makefile.am b/ebuild/Makefile.am
index 838a7d0..fa3a8c4 100644
--- a/ebuild/Makefile.am
+++ b/ebuild/Makefile.am
@@ -1,5 +1,6 @@
MAINTAINERCLEANFILES = Makefile.in
CLEANFILES = *~
+SUBDIRS = . utils
libexecprogdir = $(libexecdir)/paludis/
@@ -13,6 +14,7 @@ libexecprog_SCRIPTS = \
list_functions.bash \
multilib_functions.bash \
pkg_config.bash \
+ pkg_init.bash \
pkg_nofetch.bash \
pkg_postinst.bash \
pkg_postrm.bash \
diff --git a/ebuild/build_functions.bash b/ebuild/build_functions.bash
index 990cde1..fd51cc3 100644
--- a/ebuild/build_functions.bash
+++ b/ebuild/build_functions.bash
@@ -31,8 +31,8 @@ econf()
if [[ -d /usr/share/gnuconfig ]] ; then
local f
for f in $(find "${WORKDIR}" -type f -name config.guess -or -name config.sub ) ; do
- echo "econf: updating ${x} with /usr/share/gnuconfig/${x##*/}"
- cp -f /usr/share/gnuconfig/${x##*/} ${x}
+ echo "econf: updating ${f} with /usr/share/gnuconfig/${f##*/}"
+ cp -f /usr/share/gnuconfig/${f##*/} ${f}
done
fi
diff --git a/ebuild/ebuild.bash b/ebuild/ebuild.bash
index f513e1f..c47c67f 100755
--- a/ebuild/ebuild.bash
+++ b/ebuild/ebuild.bash
@@ -49,6 +49,8 @@ diefunc()
EBUILD_MODULES_DIR=$(readlink -f $(dirname $0 ) )
[[ -d ${EBUILD_MODULES_DIR} ]] || die "${EBUILD_MODULES_DIR} is not a directory"
+source /sbin/functions.sh || die "Couldn't source functions.sh"
+
ebuild_load_module()
{
source "${EBUILD_MODULES_DIR}/${1}.bash" || die "Error loading module ${1}"
@@ -72,36 +74,43 @@ ebuild_load_ebuild()
[[ ${RDEPEND-unset} == "unset" ]] && RDEPEND="${DEPEND}"
}
-[[ -n "${PALUDIS_IN_TEST_FRAMEWORK}" ]] || case ${1:x} in
- metadata)
- for f in cut tr ; do
- eval "export ebuild_real_${f}=\"$(which $f )\""
- eval "${f}() { ebuild_notice qa 'global scope ${f}' ; $(which $f ) \"\$@\" ; }"
- done
- PATH="" ebuild_load_ebuild "${2}"
- ebuild_load_module depend
- ebuild_f_depend
- exit 0
- ;;
-
- unpack|compile|install|test)
- ebuild_load_ebuild "${2}"
- ebuild_load_module src_${1}
- ebuild_f_${1}
- exit 0
- ;;
-
- setup|config|nofetch|preinst|postinst|prerm|postrm)
- ebuild_load_ebuild "${2}"
- ebuild_load_module pkg_${1}
- ebuild_f_${1}
- exit 0
- ;;
-
- *)
- ebuild_load_module usage_error
- ebuild_f_usage_error
- exit 1
- ;;
-esac
+ebuild_main()
+{
+ local action ebuild="$1"
+ shift
+
+ for action in $@ ; do
+ case ${action} in
+ metadata)
+ for f in cut tr ; do
+ eval "export ebuild_real_${f}=\"$(which $f )\""
+ eval "${f}() { ebuild_notice qa 'global scope ${f}' ; $(which $f ) \"\$@\" ; }"
+ done
+ PATH="" ebuild_load_ebuild "${ebuild}"
+ ebuild_load_module depend
+ ebuild_f_depend || die "${action} failed"
+ ;;
+
+ unpack|compile|install|test)
+ ebuild_load_module src_${action}
+ ebuild_load_ebuild "${ebuild}"
+ ebuild_f_${action} || die "${action} failed"
+ ;;
+
+ init|setup|config|nofetch|preinst|postinst|prerm|postrm)
+ ebuild_load_module pkg_${action}
+ ebuild_load_ebuild "${ebuild}"
+ ebuild_f_${action} || die "${action} failed"
+ ;;
+
+ *)
+ ebuild_load_module usage_error
+ ebuild_f_usage_error "Unknown action '${action}'"
+ exit 1
+ ;;
+ esac
+ done
+}
+
+ebuild_main $@
diff --git a/ebuild/echo_functions.bash b/ebuild/echo_functions.bash
index bc7e190..862ca42 100644
--- a/ebuild/echo_functions.bash
+++ b/ebuild/echo_functions.bash
@@ -80,3 +80,8 @@ ebuild_notice()
true
}
+ebuild_section()
+{
+ echo ">>> $*" 1>&2
+}
+
diff --git a/ebuild/pkg_init.bash b/ebuild/pkg_init.bash
new file mode 100644
index 0000000..28da95e
--- /dev/null
+++ b/ebuild/pkg_init.bash
@@ -0,0 +1,52 @@
+#!/bin/bash
+# vim: set sw=4 sts=4 et :
+
+# Copyright (c) 2006 Ciaran McCreesh <ciaranm@gentoo.org>
+#
+# This file is part of the Paludis package manager. Paludis is free software;
+# you can redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation; either version
+# 2 of the License, or (at your option) any later version.
+#
+# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA
+
+pkg_init()
+{
+ local a
+ for a in P PV PR PN PVR PF CATEGORY FILESDIR ECLASSDIR PORTDIR \
+ DISTDIR KV PALUDIS_TMPDIR PALUDIS_EBUILD_LOG_LEVEL PALUDIS_EBUILD_DIR ; do
+ [[ -z "${!a}" ]] && die "\$${a} unset or empty"
+ done
+
+ for a in FILESDIR ECLASSDIR PORTDIR DISTDIR ; do
+ [[ -d "${!a}" ]] || die "\$${a} (\"${!a}\") not a directory"
+ done
+
+ export WORKDIR="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/work"
+ mkdir -p "${WORKDIR}" || die "Couldn't create \$WORKDIR (\"${WORKDIR}\")"
+
+ export T="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/temp"
+ mkdir -p "${T}" || die "Couldn't create \$T (\"${T}\")"
+
+ export D="${PALUDIS_TMPDIR}/${CATEGORY}/${PF}/image"
+ mkdir -p "${D}" || die "Couldn't create \$D (\"${D}\")"
+
+ export S="${WORKDIR}/${P}"
+
+ export PATH="${PALUDIS_EBUILD_DIR}/utils:${PATH}"
+}
+
+ebuild_f_init()
+{
+ ebuild_section "Starting pkg_init"
+ pkg_init
+ ebuild_section "Done pkg_init"
+}
+
diff --git a/ebuild/pkg_postinst.bash b/ebuild/pkg_postinst.bash
index c62287e..b996286 100644
--- a/ebuild/pkg_postinst.bash
+++ b/ebuild/pkg_postinst.bash
@@ -23,5 +23,13 @@
pkg_postinst()
{
+ :
+}
+
+ebuild_f_postinst()
+{
+ ebuild_section "Starting pkg_postinst"
+ pkg_postinst
+ ebuild_section "Done pkg_postinst"
}
diff --git a/ebuild/pkg_preinst.bash b/ebuild/pkg_preinst.bash
index 65034cf..4bdefcc 100644
--- a/ebuild/pkg_preinst.bash
+++ b/ebuild/pkg_preinst.bash
@@ -23,5 +23,13 @@
pkg_preinst()
{
+ :
+}
+
+ebuild_f_preinst()
+{
+ ebuild_section "Starting pkg_preinst"
+ pkg_preinst
+ ebuild_section "Done pkg_preinst"
}
diff --git a/ebuild/pkg_setup.bash b/ebuild/pkg_setup.bash
index 9420a41..2707164 100644
--- a/ebuild/pkg_setup.bash
+++ b/ebuild/pkg_setup.bash
@@ -23,5 +23,13 @@
pkg_setup()
{
+ :
+}
+
+ebuild_f_setup()
+{
+ ebuild_section "Starting pkg_setup"
+ pkg_setup
+ ebuild_section "Done pkg_setup"
}
diff --git a/ebuild/src_compile.bash b/ebuild/src_compile.bash
index 0d2b8a6..55b8b0f 100644
--- a/ebuild/src_compile.bash
+++ b/ebuild/src_compile.bash
@@ -31,6 +31,9 @@ src_compile()
ebuild_f_compile()
{
+ ebuild_section "Starting src_compile"
+ cd ${S} || die "cd to \${S} (\"${S}\") failed"
src_compile
+ ebuild_section "Done src_compile"
}
diff --git a/ebuild/src_test.bash b/ebuild/src_test.bash
index f0fe1b4..02d612c 100644
--- a/ebuild/src_test.bash
+++ b/ebuild/src_test.bash
@@ -30,3 +30,14 @@ src_test()
fi
}
+ebuild_f_test()
+{
+ if hasq "test" ${RESTRICT} ; then
+ ebuild_section "Skipping src_test (RESTRICT)"
+ else
+ ebuild_section "Starting src_test"
+ src_test
+ ebuild_section "Done src_test"
+ fi
+}
+
diff --git a/ebuild/src_unpack.bash b/ebuild/src_unpack.bash
index 05c788c..1e06e9d 100644
--- a/ebuild/src_unpack.bash
+++ b/ebuild/src_unpack.bash
@@ -28,6 +28,9 @@ src_unpack()
ebuild_f_unpack()
{
+ ebuild_section "Starting src_unpack"
+ cd ${WORKDIR} || die "cd to \${WORKDIR} (\"${WORKDIR}\") failed"
src_unpack
+ ebuild_section "Done src_unpack"
}
diff --git a/ebuild/usage_error.bash b/ebuild/usage_error.bash
index 0270472..072cb7b 100644
--- a/ebuild/usage_error.bash
+++ b/ebuild/usage_error.bash
@@ -23,6 +23,10 @@
ebuild_f_usage_error()
{
- die "Usage error"
+ if [[ -z ${1} ]] ; then
+ die "Usage error"
+ else
+ die "Usage error: ${1}"
+ fi
}
diff --git a/paludis/Makefile.am.m4 b/paludis/Makefile.am.m4
index 431c097..5484dbe 100644
--- a/paludis/Makefile.am.m4
+++ b/paludis/Makefile.am.m4
@@ -33,7 +33,10 @@ CLEANFILES = *~
MAINTAINERCLEANFILES = Makefile.in Makefile.am about.hh paludis.hh \
hashed_containers.hh
AM_CXXFLAGS = -I$(top_srcdir)
-DEFS=-DSYSCONFDIR=\"$(sysconfdir)\" -DLIBEXECDIR=\"$(libexecdir)\"
+DEFS= \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DBIGTEMPDIR=\"/var/tmp\"
EXTRA_DIST = about.hh.in Makefile.am.m4 paludis.hh.m4 files.m4 \
hashed_containers.hh.in testscriptlist
SUBDIRS = util . args qa
diff --git a/paludis/fake_repository.cc b/paludis/fake_repository.cc
index 2249078..fd8255e 100644
--- a/paludis/fake_repository.cc
+++ b/paludis/fake_repository.cc
@@ -211,3 +211,7 @@ FakeRepository::do_is_mirror(const std::string &) const
return false;
}
+void
+FakeRepository::do_install(const QualifiedPackageName &, const VersionSpec &) const
+{
+}
diff --git a/paludis/fake_repository.hh b/paludis/fake_repository.hh
index 1ff754f..7aede5d 100644
--- a/paludis/fake_repository.hh
+++ b/paludis/fake_repository.hh
@@ -79,6 +79,8 @@ namespace paludis
virtual bool do_is_mirror(const std::string &) const;
+ virtual void do_install(const QualifiedPackageName &, const VersionSpec &) const;
+
public:
/**
* Constructor.
diff --git a/paludis/portage_repository.cc b/paludis/portage_repository.cc
index 1674e42..e07c9bb 100644
--- a/paludis/portage_repository.cc
+++ b/paludis/portage_repository.cc
@@ -43,6 +43,7 @@
#include <vector>
#include <deque>
#include <limits>
+#include <iostream>
#include <strings.h>
using namespace paludis;
@@ -642,15 +643,13 @@ PortageRepository::do_version_metadata(
"PORTDIR='" + stringify(_imp->location) + "/' " +
"DISTDIR='" + stringify(_imp->location) + "/distfiles/' " +
"WORKDIR='/dev/null' " +
- "T='/dev/null' " +
- "D='/dev/null' " +
- "S='/dev/null' " +
+ "PALUDIS_TMPDIR='/dev/null' " +
"KV='" + kernel_version() + "' " +
"PALUDIS_EBUILD_LOG_LEVEL='" + log_level_string() + "' " +
getenv_with_default("PALUDIS_EBUILD_DIR", LIBEXECDIR "/paludis") +
- "/ebuild.bash metadata '" +
+ "/ebuild.bash '" +
stringify(_imp->location) + "/" + stringify(c) + "/" + stringify(p) + "/" +
- stringify(p) + "-" + stringify(v) + ".ebuild'");
+ stringify(p) + "-" + stringify(v) + ".ebuild' metadata");
PStream prog(cmd);
KeyValueConfigFile f(&prog);
@@ -882,3 +881,44 @@ PortageRepository::do_is_mirror(const std::string & s) const
return _imp->mirrors.end() != _imp->mirrors.find(s);
}
+void
+PortageRepository::do_install(const QualifiedPackageName & q, const VersionSpec & v) const
+{
+ if (! has_version(q, v))
+ throw InternalError(PALUDIS_HERE, "TODO"); /// \todo fixme
+
+ std::string archives;
+ archives = "fluxbox-0.9.14.tar.bz2";
+
+ std::string cmd(
+ "env P='" + stringify(q.get<qpn_package>()) + "-" + stringify(v.remove_revision()) + "' " +
+ "PV='" + stringify(v.remove_revision()) + "' " +
+ "PR='" + v.revision_only() + "' " +
+ "PN='" + stringify(q.get<qpn_package>()) + "' " +
+ "PVR='" + stringify(v.remove_revision()) + "-" + v.revision_only() + "' " +
+ "PF='" + stringify(q.get<qpn_package>()) + "-" + stringify(v) + "' " +
+ "A='" + archives + "' " +
+ "CATEGORY='" + stringify(q.get<qpn_category>()) + "' " +
+ "FILESDIR='" + stringify(_imp->location) + "/" + stringify(q.get<qpn_category>()) + "/" +
+ stringify(q.get<qpn_package>()) + "/files/' " +
+ "ECLASSDIR='" + stringify(_imp->location) + "/eclass/' " +
+ "PORTDIR='" + stringify(_imp->location) + "/' " +
+ "DISTDIR='" + stringify(_imp->location) + "/distfiles/' " +
+ "PALUDIS_TMPDIR='" BIGTEMPDIR "/paludis/' " +
+ "KV='" + kernel_version() + "' " +
+ "PALUDIS_EBUILD_LOG_LEVEL='" + log_level_string() + "' " +
+ "PALUDIS_EBUILD_DIR='" + getenv_with_default("PALUDIS_EBUILD_DIR", LIBEXECDIR "/paludis") + "' " +
+ getenv_with_default("PALUDIS_EBUILD_DIR", LIBEXECDIR "/paludis") +
+ "/ebuild.bash '" +
+ stringify(_imp->location) + "/" + stringify(q.get<qpn_category>()) + "/" +
+ stringify(q.get<qpn_package>()) + "/" +
+ stringify(q.get<qpn_package>()) + "-" + stringify(v) + ".ebuild' "
+ "init setup unpack compile test install preinst merge postinst tidyup");
+
+ PStream prog(cmd);
+ std::copy((std::istreambuf_iterator<char>(prog)), std::istreambuf_iterator<char>(),
+ std::ostreambuf_iterator<char>(std::cout));
+ if (prog.exit_status())
+ throw InternalError(PALUDIS_HERE, "TODO"); /// \todo fixme
+}
+
diff --git a/paludis/portage_repository.hh b/paludis/portage_repository.hh
index 3b31b8b..b576ebe 100644
--- a/paludis/portage_repository.hh
+++ b/paludis/portage_repository.hh
@@ -90,6 +90,8 @@ namespace paludis
virtual bool do_is_mirror(const std::string &) const;
+ virtual void do_install(const QualifiedPackageName &, const VersionSpec &) const;
+
public:
/**
* Constructor.
diff --git a/paludis/qa/Makefile.am.m4 b/paludis/qa/Makefile.am.m4
index 6816ef3..fe9ea1c 100644
--- a/paludis/qa/Makefile.am.m4
+++ b/paludis/qa/Makefile.am.m4
@@ -34,7 +34,10 @@ include(`paludis/qa/files.m4')
CLEANFILES = *~
MAINTAINERCLEANFILES = Makefile.in Makefile.am qa.hh
AM_CXXFLAGS = -I$(top_srcdir)
-DEFS=-DSYSCONFDIR=\"$(sysconfdir)\" -DLIBEXECDIR=\"$(libexecdir)\"
+DEFS= \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DBIGTEMPDIR=\"/var/tmp\"
EXTRA_DIST = Makefile.am.m4 files.m4 qa.hh.m4 testscriptlist
libpaludisqa_la_SOURCES = filelist
diff --git a/paludis/repository.hh b/paludis/repository.hh
index d37d801..408cfc8 100644
--- a/paludis/repository.hh
+++ b/paludis/repository.hh
@@ -146,6 +146,11 @@ namespace paludis
*/
virtual bool do_is_mirror(const std::string &) const = 0;
+ /**
+ * Override in descendents: install.
+ */
+ virtual void do_install(const QualifiedPackageName &, const VersionSpec &) const = 0;
+
public:
/**
* Destructor.
@@ -360,6 +365,14 @@ namespace paludis
{
return do_is_mirror(u);
}
+
+ /**
+ * Install a package.
+ */
+ void install(const QualifiedPackageName & q, const VersionSpec & v) const
+ {
+ do_install(q, v);
+ }
};
/**
diff --git a/src/Makefile.am b/src/Makefile.am
index 1d8d2d7..ebdd2d1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,10 @@
CLEANFILES = *~ version_TEST
MAINTAINERCLEANFILES = Makefile.in
AM_CXXFLAGS = -I$(top_srcdir)
-DEFS=-DSYSCONFDIR=\"$(sysconfdir)\" -DLIBEXECDIR=\"$(libexecdir)\"
+DEFS= \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DBIGTEMPDIR=\"/var/tmp\"
SUBDIRS = . qualudis
bin_PROGRAMS = paludis
diff --git a/src/colour.hh b/src/colour.hh
index 0c0e57d..f6beb41 100644
--- a/src/colour.hh
+++ b/src/colour.hh
@@ -39,7 +39,8 @@ enum Colour
cl_flag_off = cl_red,
cl_slot = cl_blue,
cl_visible = cl_flag_on,
- cl_masked = cl_flag_off
+ cl_masked = cl_flag_off,
+ cl_heading = cl_bold_green
};
bool use_colour() PALUDIS_ATTRIBUTE((pure));
diff --git a/src/install.cc b/src/install.cc
index 782dfe7..051b6df 100644
--- a/src/install.cc
+++ b/src/install.cc
@@ -40,6 +40,8 @@ do_install()
p::Context context("When performing install action from command line:");
p::Environment * const env(p::DefaultEnvironment::get_instance());
+ cout << colour(cl_heading, "These packages will be installed:") << endl << endl;
+
p::CompositeDepAtom::Pointer targets(new p::AllDepAtom);
CommandLine::ParametersIterator q(CommandLine::get_instance()->begin_parameters()),
@@ -115,6 +117,20 @@ do_install()
cout << endl;
}
+
+ if (CommandLine::get_instance()->a_pretend.specified())
+ return return_code;
+
+ for (p::DepList::Iterator dep(dep_list.begin()), dep_end(dep_list.end()) ;
+ dep != dep_end ; ++dep)
+ {
+ cout << endl << colour(cl_heading,
+ "Installing " + p::stringify(dep->get<p::dle_name>()) + "-"
+ + p::stringify(dep->get<p::dle_version>())) << endl << endl;
+
+ env->package_database()->fetch_repository(dep->get<p::dle_repository>())->
+ install(dep->get<p::dle_name>(), dep->get<p::dle_version>());
+ }
}
catch (const p::DepListStackTooDeepError & e)
{
diff --git a/src/paludis.cc b/src/paludis.cc
index 7840733..303bf09 100644
--- a/src/paludis.cc
+++ b/src/paludis.cc
@@ -154,6 +154,7 @@ main(int argc, char *argv[])
cout << "LDFLAGS: " << PALUDIS_BUILD_LDFLAGS << endl;
cout << "SYSCONFDIR: " << SYSCONFDIR << endl;
cout << "LIBEXECDIR: " << LIBEXECDIR << endl;
+ cout << "BIGTEMPDIR: " << BIGTEMPDIR << endl;
cout << "stdlib: "
#if defined(__GLIBCXX__)
# define XSTRINGIFY(x) #x
diff --git a/src/qualudis/Makefile.am b/src/qualudis/Makefile.am
index f47a8bf..6f8bc4b 100644
--- a/src/qualudis/Makefile.am
+++ b/src/qualudis/Makefile.am
@@ -1,7 +1,10 @@
CLEANFILES = *~ version_TEST
MAINTAINERCLEANFILES = Makefile.in
AM_CXXFLAGS = -I$(top_srcdir)
-DEFS=-DSYSCONFDIR=\"$(sysconfdir)\" -DLIBEXECDIR=\"$(libexecdir)\"
+DEFS= \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DBIGTEMPDIR=\"/var/tmp\"
SUBDIRS = .
bin_PROGRAMS = qualudis
diff --git a/src/qualudis/qualudis.cc b/src/qualudis/qualudis.cc
index 782f785..4028b5c 100644
--- a/src/qualudis/qualudis.cc
+++ b/src/qualudis/qualudis.cc
@@ -516,6 +516,7 @@ int main(int argc, char *argv[])
cout << "LDFLAGS: " << PALUDIS_BUILD_LDFLAGS << endl;
cout << "SYSCONFDIR: " << SYSCONFDIR << endl;
cout << "LIBEXECDIR: " << LIBEXECDIR << endl;
+ cout << "BIGTEMPDIR: " << BIGTEMPDIR << endl;
cout << "stdlib: "
#if defined(__GLIBCXX__)
# define XSTRINGIFY(x) #x
diff --git a/src/query.cc b/src/query.cc
index f6b2087..fff1888 100644
--- a/src/query.cc
+++ b/src/query.cc
@@ -143,6 +143,8 @@ void do_one_query(
" " << metadata->get(p::vmk_rdepend) << std::endl;
std::cout << " " << std::setw(22) << std::left << "RESTRICT:" << std::setw(0) <<
" " << metadata->get(p::vmk_restrict) << std::endl;
+ std::cout << " " << std::setw(22) << std::left << "SRC_URI:" << std::setw(0) <<
+ " " << metadata->get(p::vmk_src_uri) << std::endl;
std::cout << " " << std::setw(22) << std::left << "VIRTUAL:" << std::setw(0) <<
" " << metadata->get(p::vmk_virtual) << std::endl;
}