This file is indexed.

/usr/share/doc/libcupt3-doc/examples/show-upgradeable/show-upgradeable.cpp is in libcupt3-doc 2.8.4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/**************************************************************************
*   Copyright (C) 2010-2011 by Eugene V. Lyubimkin                        *
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License                  *
*   (version 3 or above) as published by the Free Software Foundation.    *
*                                                                         *
*   This program 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 GPL                        *
*   along with this program; if not, write to the                         *
*   Free Software Foundation, Inc.,                                       *
*   51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA               *
**************************************************************************/

/// shows installed and preferred versions for all upgradeable manually installed packages.

#include <iostream>
using std::cout;
using std::endl;

#include <cupt/common.hpp>
#include <cupt/config.hpp>
#include <cupt/cache.hpp>
#include <cupt/system/state.hpp>
#include <cupt/cache/binarypackage.hpp>
#include <cupt/cache/binaryversion.hpp>

int main()
{
	try
	{
		cupt::shared_ptr< cupt::Config > config(new cupt::Config());
		cupt::Cache cache(config, false, true, true); // include binary installed packages

		for (const auto& packageName: cache.getSystemState()->getInstalledPackageNames())
		{
			if (cache.isAutomaticallyInstalled(packageName))
			{
				continue;
			}
			auto package = cache.getBinaryPackage(packageName);
			if (!package)
			{
				cupt::fatal2("no binary package '%s'", packageName);
			}
			auto installedVersion = package->getInstalledVersion();
			if (!installedVersion)
			{
				cupt::fatal2("no installed version in package '%s'", packageName);
			}
			auto preferredVersion = cache.getPreferredVersion(package);
			if (!preferredVersion)
			{
				cupt::fatal2("unable to get preferred version for package '%s'", packageName);
			}

			if (installedVersion != preferredVersion)
			{
				cout << packageName << ": " << installedVersion->versionString
						<< " -> " << preferredVersion->versionString << endl;
			}
		}
	}
	catch (cupt::Exception&)
	{
		return EXIT_FAILURE;
	}
	return 0;
}