Create new directories:
ceph
config
config-files
filesystem
kernel
kernel/kernel-modules
ldap
logging
strorage-drivers
tools
utilities
virt
Retire directories:
connectivity
core
devtools
support
extended
Delete two packages:
tgt
irqbalance
Relocated packages:
base/
dhcp
initscripts
libevent
lighttpd
linuxptp
memcached
net-snmp
novnc
ntp
openssh
pam
procps
sanlock
shadow
sudo
systemd
util-linux
vim
watchdog
ceph/
python-cephclient
config/
facter
puppet-4.8.2
puppet-modules
filesystem/
e2fsprogs
nfs-utils
nfscheck
kernel/
kernel-std
kernel-rt
kernel/kernel-modules/
mlnx-ofa_kernel
ldap/
nss-pam-ldapd
openldap
logging/
syslog-ng
logrotate
networking/
lldpd
iproute
mellanox
python-ryu
mlx4-config
python/
python-2.7.5
python-django
python-gunicorn
python-setuptools
python-smartpm
python-voluptuous
security/
shim-signed
shim-unsigned
tboot
strorage-drivers/
python-3parclient
python-lefthandclient
virt/
cloud-init
libvirt
libvirt-python
qemu
tools/
storage-topology
vm-topology
utilities/
tis-extensions
namespace-utils
nova-utils
update-motd
Change-Id: I37ade764d873c701b35eac5881eb40412ba64a86
Story: 2002801
Task: 22687
Signed-off-by: Scott Little <scott.little@windriver.com>
81 lines
3.1 KiB
Diff
81 lines
3.1 KiB
Diff
Fix smart RPM backend to handle rpm-dbpath/rpm-root properly
|
|
|
|
Don't assume that if the dbpath starts with / that it is an absolute
|
|
path. This matches the behaviour of rpm itself. (If the root path is
|
|
specified and does not start with /, rpm will prepend the root path
|
|
twice and fail).
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
|
|
|
|
diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py
|
|
index 7092332..0489e11 100644
|
|
--- a/smart/backends/rpm/base.py
|
|
+++ b/smart/backends/rpm/base.py
|
|
@@ -46,6 +46,12 @@ __all__ = ["RPMPackage", "RPMProvides", "RPMNameProvides", "RPMPreRequires",
|
|
"rpm", "getTS", "getArchScore", "getArchColor", "system_provides",
|
|
"collapse_libc_requires"]
|
|
|
|
+def rpm_join_dbpath(root, dbpath):
|
|
+ if dbpath.startswith('/') and root:
|
|
+ return os.path.join(root, dbpath[1:])
|
|
+ else:
|
|
+ return os.path.join(root, dbpath)
|
|
+
|
|
def getTS(new=False):
|
|
rpm_root = os.path.abspath(sysconf.get("rpm-root", "/"))
|
|
if not hasattr(getTS, "ts") or getTS.root != rpm_root:
|
|
@@ -56,7 +62,7 @@ def getTS(new=False):
|
|
if not sysconf.get("rpm-check-signatures", False):
|
|
getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
|
|
rpm_dbpath = sysconf.get("rpm-dbpath", "var/lib/rpm")
|
|
- dbdir = os.path.join(getTS.root, rpm_dbpath)
|
|
+ dbdir = rpm_join_dbpath(getTS.root, rpm_dbpath)
|
|
if not os.path.isdir(dbdir):
|
|
try:
|
|
os.makedirs(dbdir)
|
|
diff --git a/smart/channels/rpm_sys.py b/smart/channels/rpm_sys.py
|
|
index efcb10e..b9fda27 100644
|
|
--- a/smart/channels/rpm_sys.py
|
|
+++ b/smart/channels/rpm_sys.py
|
|
@@ -20,7 +20,7 @@
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
from smart.backends.rpm.header import RPMDBLoader
|
|
-from smart.backends.rpm.base import getTS
|
|
+from smart.backends.rpm.base import getTS, rpm_join_dbpath
|
|
from smart.channel import PackageChannel
|
|
from smart import *
|
|
import os
|
|
@@ -32,9 +32,9 @@ class RPMSysChannel(PackageChannel):
|
|
|
|
def fetch(self, fetcher, progress):
|
|
getTS() # Make sure the db exists.
|
|
- path = os.path.join(sysconf.get("rpm-root", "/"),
|
|
- sysconf.get("rpm-dbpath", "var/lib/rpm"),
|
|
- "Packages")
|
|
+ dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"),
|
|
+ sysconf.get("rpm-dbpath", "var/lib/rpm"))
|
|
+ path = os.path.join(dbdir, "Packages")
|
|
digest = os.path.getmtime(path)
|
|
if digest == self._digest:
|
|
return True
|
|
diff --git a/smart/plugins/detectsys.py b/smart/plugins/detectsys.py
|
|
index 2cd49ad..3959d07 100644
|
|
--- a/smart/plugins/detectsys.py
|
|
+++ b/smart/plugins/detectsys.py
|
|
@@ -20,10 +20,11 @@
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
from smart import *
|
|
+from smart.backends.rpm.base import rpm_join_dbpath
|
|
import os
|
|
|
|
def detectRPMSystem():
|
|
- dir = os.path.join(sysconf.get("rpm-root", "/"),
|
|
+ dir = rpm_join_dbpath(sysconf.get("rpm-root", "/"),
|
|
sysconf.get("rpm-dbpath", "var/lib/rpm"))
|
|
file = os.path.join(dir, "Packages")
|
|
if os.path.exists(file):
|