openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
March 2010
- 1 participants
- 1093 discussions
Hello community,
here is the log from the commit of package xen for openSUSE:Factory
checked in at Sun Mar 21 11:57:45 CET 2010.
--------
--- xen/xen.changes 2010-03-01 16:05:43.000000000 +0100
+++ /mounts/work_src_done/STABLE/xen/xen.changes 2010-03-19 18:16:52.000000000 +0100
@@ -1,0 +2,27 @@
+Wed Mar 17 16:42:20 CST 2010 - jsong(a)novell.com
+
+-Fix bnc#466899 - numa enabled xen fails to start/create vms
+ adjust_vcpuaffinity_more_cpu.patch
+-------------------------------------------------------------------
+Tue Mar 9 16:28:59 MST 2010 - carnold(a)novell.com
+
+- Update to changeset 21022 Xen 4.0.0 RC6.
+
+-------------------------------------------------------------------
+Tue Mar 9 10:43:27 MST 2010 - carnold(a)novell.com
+
+- bnc#586510 - cpupool fixes
+ cpu-pools-update.patch
+
+-------------------------------------------------------------------
+Fri Mar 5 09:04:18 MST 2010 - carnold(a)novell.com
+
+- bnc#582645 - Xen stuck, mptbase driver attempting to reset config
+ request
+
+-------------------------------------------------------------------
+Mon Mar 1 10:05:07 MST 2010 - carnold(a)novell.com
+
+- Update to changeset 20990 Xen 4.0.0 RC5.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
qemu-console-retry.patch
shadow.patch
xen-gcc45-fixes.patch
xen_pvdrivers
New:
----
cpu-pools-fixes.patch
xen-extra-fixes.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package xen (Version 4.0.0_20978_01)
+# spec file for package xen (Version 4.0.0_21046_01)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -22,7 +22,7 @@
ExclusiveArch: %ix86 x86_64
%define xvers 4.0
%define xvermaj 4
-%define changeset 20978
+%define changeset 21046
%define xen_build_dir xen-4.0.0-testing
%define with_kmp 0
BuildRequires: LibVNCServer-devel SDL-devel acpica automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig
@@ -37,7 +37,7 @@
%if %{?with_kmp}0
BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11
%endif
-Version: 4.0.0_20978_01
+Version: 4.0.0_21046_01
Release: 1
License: GPLv2
Group: System/Kernel
@@ -91,6 +91,7 @@
Patch314: xen-max-free-mem.diff
Patch315: xen-disable-libxl.diff
Patch316: xen-disable-xenpaging.diff
+Patch317: xen-extra-fixes.patch
Patch320: block-losetup-retry.diff
Patch321: block-flags.diff
Patch322: bridge-opensuse.patch
@@ -120,20 +121,19 @@
Patch356: ioemu-vnc-resize.patch
Patch357: ioemu-debuginfo.patch
Patch358: vif-bridge-no-iptables.patch
-Patch359: qemu-console-retry.patch
# Needs to go upstream
-Patch360: checkpoint-rename.patch
-Patch361: xm-save-check-file.patch
-Patch362: xm-create-xflag.patch
-Patch363: cpupools-core.patch
-Patch364: cpupools-core-fixup.patch
-Patch365: keyhandler-alternative.patch
-Patch366: cpu-pools-libxc.patch
-Patch367: cpu-pools-python.patch
-Patch368: cpu-pools-libxen.patch
-Patch369: cpu-pools-xmtest.patch
-Patch370: cpu-pools-docs.patch
-Patch371: xen-gcc45-fixes.patch
+Patch359: checkpoint-rename.patch
+Patch360: xm-save-check-file.patch
+Patch361: xm-create-xflag.patch
+Patch362: cpupools-core.patch
+Patch363: cpupools-core-fixup.patch
+Patch364: keyhandler-alternative.patch
+Patch365: cpu-pools-libxc.patch
+Patch366: cpu-pools-python.patch
+Patch367: cpu-pools-libxen.patch
+Patch368: cpu-pools-xmtest.patch
+Patch369: cpu-pools-docs.patch
+Patch370: cpu-pools-fixes.patch
# Patches for snapshot support
Patch400: snapshot-ioemu-save.patch
Patch401: snapshot-ioemu-restore.patch
@@ -155,8 +155,7 @@
Patch425: ioemu-bdrv-open-CACHE_WB.patch
Patch426: xen-ioemu-hvm-pv-support.diff
Patch427: qemu-dm-segfault.patch
-Patch428: shadow.patch
-Patch429: hibernate.patch
+Patch428: hibernate.patch
# Jim's domain lock patch
Patch450: xend-domain-lock.patch
# Hypervisor and PV driver Patches
@@ -532,6 +531,7 @@
%patch314 -p1
%patch315 -p1
%patch316 -p1
+%patch317 -p1
#%patch320 -p1
#%patch321 -p1
%patch322 -p1
@@ -573,7 +573,6 @@
%patch368 -p1
%patch369 -p1
%patch370 -p1
-%patch371 -p1
%patch400 -p1
%patch401 -p1
%patch402 -p1
@@ -593,7 +592,6 @@
%patch426 -p1
%patch427 -p1
%patch428 -p1
-%patch429 -p1
%patch450 -p1
%patch500 -p1
%patch501 -p1
++++++ blktap-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -673,10 +673,10 @@
MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a
endif
--LDFLAGS_blktapctrl := $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) $(MEMSHRLIBS) -L../lib -lblktap -lrt -lm
+-LDFLAGS_blktapctrl := $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) $(MEMSHRLIBS) -L../lib -lblktap -lrt -lm -lpthread
-LDFLAGS_img := $(LIBAIO_DIR)/libaio.a $(CRYPT_LIB) -lpthread -lz
+LDFLAGS_xen := $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore)
-+LDFLAGS_blktapctrl := $(LDFLAGS_xen) $(MEMSHRLIBS) -L../lib -lblktap -lrt -lm
++LDFLAGS_blktapctrl := $(LDFLAGS_xen) $(MEMSHRLIBS) -L../lib -lblktap -lrt -lm -lpthread
+LDFLAGS_img := $(LIBAIO_DIR)/libaio.a $(CRYPT_LIB) -lpthread -lz $(LDFLAGS_xen)
BLK-OBJS-y := block-aio.o
++++++ bridge-bonding.diff ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -2,9 +2,9 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.0.0-testing/tools/hotplug/Linux/network-bridge
-@@ -241,6 +241,9 @@ op_start () {
- return
- fi
+@@ -245,6 +245,9 @@ op_start () {
+
+ claim_lock "network-bridge"
+ local bonded=""
+ [ -e /sys/class/net/${netdev}/bonding ] && bonded="yes"
@@ -12,7 +12,7 @@
vlans=$(find_active_vlans "${netdev}")
for vlan in $vlans ; do ifdown $vlan ; done
-@@ -258,18 +261,32 @@ op_start () {
+@@ -262,18 +265,32 @@ op_start () {
ip link set ${netdev} down
ip addr flush ${netdev}
fi
++++++ bridge-opensuse.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.0.0-testing/tools/hotplug/Linux/network-bridge
-@@ -262,18 +262,18 @@ op_stop () {
+@@ -270,19 +270,19 @@ op_stop () {
transfer_addrs ${bridge} ${pdev}
if ! ifdown ${bridge}; then
get_ip_info ${bridge}
@@ -24,8 +24,9 @@
+ ip link set ${pdev} down
ip link set ${pdev} name ${netdev}
do_ifup ${netdev}
--
+
- brctl delbr ${tdev}
+-
+ release_lock "network-bridge"
}
- # adds $dev to $bridge but waits for $dev to be in running state first
++++++ bridge-record-creation.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -1,8 +1,8 @@
-Index: xen-3.5.0-testing/tools/hotplug/Linux/network-bridge
+Index: xen-4.0.0-testing/tools/hotplug/Linux/network-bridge
===================================================================
---- xen-3.5.0-testing.orig/tools/hotplug/Linux/network-bridge
-+++ xen-3.5.0-testing/tools/hotplug/Linux/network-bridge
-@@ -249,6 +249,11 @@ op_start () {
+--- xen-4.0.0-testing.orig/tools/hotplug/Linux/network-bridge
++++ xen-4.0.0-testing/tools/hotplug/Linux/network-bridge
+@@ -253,6 +253,11 @@ op_start () {
create_bridge ${tdev}
@@ -14,7 +14,7 @@
preiftransfer ${netdev}
transfer_addrs ${netdev} ${tdev}
# Remember slaves for bonding interface.
-@@ -322,6 +327,13 @@ op_stop () {
+@@ -330,6 +335,13 @@ op_stop () {
ip link set ${pdev} name ${netdev}
do_ifup ${netdev}
@@ -26,5 +26,5 @@
+ fi
+
for vlan in $vlans ; do ifup $vlan ; done
- }
+ release_lock "network-bridge"
++++++ bridge-vlan.diff ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.0.0-testing/tools/hotplug/Linux/network-bridge
-@@ -191,6 +191,28 @@ antispoofing () {
+@@ -193,6 +193,28 @@ antispoofing () {
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
}
@@ -31,9 +31,9 @@
# Usage: show_status dev bridge
# Print ifconfig and routes.
show_status () {
-@@ -219,6 +241,9 @@ op_start () {
- return
- fi
+@@ -223,6 +245,9 @@ op_start () {
+
+ claim_lock "network-bridge"
+ vlans=$(find_active_vlans "${netdev}")
+ for vlan in $vlans ; do ifdown $vlan ; done
@@ -41,7 +41,7 @@
create_bridge ${tdev}
preiftransfer ${netdev}
-@@ -246,6 +271,8 @@ op_start () {
+@@ -250,6 +275,8 @@ op_start () {
add_to_bridge2 ${bridge} ${pdev}
do_ifup ${bridge}
@@ -50,9 +50,9 @@
if [ ${antispoof} = 'yes' ] ; then
antispoofing
fi
-@@ -259,6 +286,9 @@ op_stop () {
- return
- fi
+@@ -267,6 +294,9 @@ op_stop () {
+
+ claim_lock "network-bridge"
+ vlans=$(find_active_vlans "${netdev}")
+ for vlan in $vlans ; do ifdown $vlan ; done
@@ -60,12 +60,12 @@
transfer_addrs ${bridge} ${pdev}
if ! ifdown ${bridge}; then
get_ip_info ${bridge}
-@@ -274,6 +304,8 @@ op_stop () {
- ip link set ${pdev} down
+@@ -283,6 +313,8 @@ op_stop () {
ip link set ${pdev} name ${netdev}
do_ifup ${netdev}
-+
+
+ for vlan in $vlans ; do ifup $vlan ; done
++
+ release_lock "network-bridge"
}
- # adds $dev to $bridge but waits for $dev to be in running state first
++++++ build-tapdisk-ioemu.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -60,7 +60,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/configure
+++ xen-4.0.0-testing/tools/ioemu-remote/configure
-@@ -1508,7 +1508,7 @@ bsd)
+@@ -1511,7 +1511,7 @@ bsd)
;;
esac
@@ -121,7 +121,7 @@
typedef struct IOHandlerRecord {
int fd;
IOCanRWHandler *fd_read_poll;
-@@ -103,7 +81,6 @@ int main(void)
+@@ -103,7 +81,6 @@ int main(void)
logfile = stderr;
bdrv_init();
@@ -129,7 +129,7 @@
init_blktap();
/* Daemonize */
-@@ -115,8 +92,6 @@ int main(void)
+@@ -115,8 +92,6 @@ int main(void)
* completed aio operations.
*/
while (1) {
++++++ cpu-pools-fixes.patch ++++++
++++ 773 lines (skipped)
++++++ cpu-pools-libxc.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -204,7 +204,7 @@
memcpy(domctl.u.createdomain.handle, handle, sizeof(xen_domain_handle_t));
if ( (err = do_domctl(xc_handle, &domctl)) != 0 )
return err;
-@@ -206,6 +213,7 @@ int xc_domain_getinfo(int xc_handle,
+@@ -220,6 +227,7 @@ int xc_domain_getinfo(int xc_handle,
info->cpu_time = domctl.u.getdomaininfo.cpu_time;
info->nr_online_vcpus = domctl.u.getdomaininfo.nr_online_vcpus;
info->max_vcpu_id = domctl.u.getdomaininfo.max_vcpu_id;
@@ -257,7 +257,7 @@
/* Functions to produce a dump of a given domain
-@@ -500,6 +501,100 @@ int xc_domain_setdebugging(int xc_handle
+@@ -502,6 +503,100 @@ int xc_domain_setdebugging(int xc_handle
unsigned int enable);
/*
++++++ cpu-pools-python.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -36,7 +36,7 @@
return pyxc_error_to_exception();
if ( target )
-@@ -316,7 +318,7 @@ static PyObject *pyxc_domain_getinfo(XcO
+@@ -332,7 +334,7 @@ static PyObject *pyxc_domain_getinfo(XcO
{
info_dict = Py_BuildValue(
"{s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i"
@@ -45,7 +45,7 @@
"domid", (int)info[i].domid,
"online_vcpus", info[i].nr_online_vcpus,
"max_vcpu_id", info[i].max_vcpu_id,
-@@ -331,7 +333,8 @@ static PyObject *pyxc_domain_getinfo(XcO
+@@ -347,7 +349,8 @@ static PyObject *pyxc_domain_getinfo(XcO
"cpu_time", (long long)info[i].cpu_time,
"maxmem_kb", (long long)info[i].max_memkb,
"ssidref", (int)info[i].ssidref,
@@ -55,7 +55,7 @@
pyhandle = PyList_New(sizeof(xen_domain_handle_t));
if ( (pyhandle == NULL) || (info_dict == NULL) )
{
-@@ -1697,6 +1700,179 @@ static PyObject *pyxc_dom_set_memshr(XcO
+@@ -1755,6 +1758,179 @@ static PyObject *pyxc_dom_set_memshr(XcO
return zero;
}
@@ -235,7 +235,7 @@
static PyMethodDef pyxc_methods[] = {
{ "handle",
-@@ -1812,7 +1988,8 @@ static PyMethodDef pyxc_methods[] = {
+@@ -1870,7 +2046,8 @@ static PyMethodDef pyxc_methods[] = {
" maxmem_kb [int]: Maximum memory limit, in kilobytes\n"
" cpu_time [long]: CPU time consumed, in nanoseconds\n"
" shutdown_reason [int]: Numeric code from guest OS, explaining "
@@ -245,7 +245,7 @@
{ "vcpu_getinfo",
(PyCFunction)pyxc_vcpu_getinfo,
-@@ -2210,6 +2387,66 @@ static PyMethodDef pyxc_methods[] = {
+@@ -2268,6 +2445,66 @@ static PyMethodDef pyxc_methods[] = {
" enable [int,0|1]: Disable or enable?\n"
"Returns: [int] 0 on success; -1 on error.\n" },
@@ -1489,15 +1489,15 @@
}
LEGACY_CFG_TO_XENAPI_CFG = reverse_dict(XENAPI_CFG_TO_LEGACY_CFG)
-@@ -233,6 +234,7 @@ XENAPI_CFG_TYPES = {
- 's3_integrity' : int,
+@@ -234,6 +235,7 @@ XENAPI_CFG_TYPES = {
'superpages' : int,
'memory_sharing': int,
+ 'Description': str,
+ 'pool_name' : str,
}
# List of legacy configuration keys that have no equivalent in the
-@@ -278,6 +280,7 @@ LEGACY_CFG_TYPES = {
+@@ -279,6 +281,7 @@ LEGACY_CFG_TYPES = {
'bootloader': str,
'bootloader_args': str,
'description': str,
@@ -1505,7 +1505,7 @@
}
# Values that should be stored in xenstore's /vm/<uuid> that is used
-@@ -299,6 +302,7 @@ LEGACY_XENSTORE_VM_PARAMS = [
+@@ -300,6 +303,7 @@ LEGACY_XENSTORE_VM_PARAMS = [
'on_xend_stop',
'bootloader',
'bootloader_args',
@@ -1513,7 +1513,7 @@
]
##
-@@ -407,6 +411,7 @@ class XendConfig(dict):
+@@ -408,6 +412,7 @@ class XendConfig(dict):
'other_config': {},
'platform': {},
'target': 0,
@@ -1646,7 +1646,7 @@
def _init_networks(self):
# Initialise networks
-@@ -357,6 +360,18 @@ class XendNode:
+@@ -361,6 +364,18 @@ class XendNode:
for physical_host, pscsi_HBA_uuid in pscsi_HBA_table.items():
XendPSCSI_HBA(pscsi_HBA_uuid, {'physical_host': physical_host})
@@ -1665,7 +1665,7 @@
def add_network(self, interface):
# TODO
-@@ -577,6 +592,7 @@ class XendNode:
+@@ -581,6 +596,7 @@ class XendNode:
self.save_PPCIs()
self.save_PSCSIs()
self.save_PSCSI_HBAs()
@@ -1673,7 +1673,7 @@
def save_PIFs(self):
pif_records = dict([(pif_uuid, XendAPIStore.get(
-@@ -619,6 +635,12 @@ class XendNode:
+@@ -623,6 +639,12 @@ class XendNode:
for pscsi_HBA_uuid in XendPSCSI_HBA.get_all()])
self.state_store.save_state('pscsi_HBA', pscsi_HBA_records)
@@ -1686,7 +1686,7 @@
def shutdown(self):
return 0
-@@ -930,6 +952,7 @@ class XendNode:
+@@ -934,6 +956,7 @@ class XendNode:
self.format_node_to_memory(info, 'node_to_memory')
info['node_to_dma32_mem'] = \
self.format_node_to_memory(info, 'node_to_dma32_mem')
@@ -1694,7 +1694,7 @@
# FIXME: These are hard-coded to be the inverse of the getXenMemory
# functions in image.py. Find a cleaner way.
-@@ -949,6 +972,7 @@ class XendNode:
+@@ -953,6 +976,7 @@ class XendNode:
'virt_caps',
'total_memory',
'free_memory',
++++++ cpupools-core-fixup.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -6,12 +6,13 @@
- move and rename csched_priv to make sure eventual backported
upstream patches using the variable get correctly adjusted (i.e.
missing adjustments get detected at build time)
+- remove boot time per-CPU pool assignment messages (bnc#572146)
Index: xen-4.0.0-testing/xen/arch/x86/domain.c
===================================================================
--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c
+++ xen-4.0.0-testing/xen/arch/x86/domain.c
-@@ -1573,6 +1573,7 @@ int continue_hypercall_on_cpu(int cpu, v
+@@ -1580,6 +1580,7 @@ int continue_hypercall_on_cpu(int cpu, v
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
v->arch.continue_info = info;
@@ -19,7 +20,7 @@
}
else
{
-@@ -1583,7 +1584,6 @@ int continue_hypercall_on_cpu(int cpu, v
+@@ -1590,7 +1591,6 @@ int continue_hypercall_on_cpu(int cpu, v
info->func = func;
info->data = data;
++++++ cpupools-core.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -4,7 +4,7 @@
===================================================================
--- xen-4.0.0-testing.orig/xen/arch/x86/acpi/power.c
+++ xen-4.0.0-testing/xen/arch/x86/acpi/power.c
-@@ -229,7 +229,7 @@ static int enter_state(u32 state)
+@@ -231,7 +231,7 @@ static int enter_state(u32 state)
return error;
}
@@ -13,7 +13,7 @@
{
struct acpi_sleep_info *sinfo = (struct acpi_sleep_info *)data;
return enter_state(sinfo->sleep_state);
-@@ -260,7 +260,7 @@ int acpi_enter_sleep(struct xenpf_enter_
+@@ -262,7 +262,7 @@ int acpi_enter_sleep(struct xenpf_enter_
acpi_sinfo.pm1b_cnt_val = sleep->pm1b_cnt_val;
acpi_sinfo.sleep_state = sleep->sleep_state;
@@ -26,7 +26,7 @@
===================================================================
--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c
+++ xen-4.0.0-testing/xen/arch/x86/domain.c
-@@ -1510,42 +1510,52 @@ void sync_vcpu_execstate(struct vcpu *v)
+@@ -1517,42 +1517,52 @@ void sync_vcpu_execstate(struct vcpu *v)
}
struct migrate_info {
@@ -96,7 +96,7 @@
info = v->arch.continue_info;
if ( info == NULL )
-@@ -1554,16 +1564,12 @@ int continue_hypercall_on_cpu(int cpu, l
+@@ -1561,16 +1571,12 @@ int continue_hypercall_on_cpu(int cpu, l
if ( info == NULL )
return -ENOMEM;
@@ -117,7 +117,7 @@
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
v->arch.continue_info = info;
-@@ -1571,17 +1577,17 @@ int continue_hypercall_on_cpu(int cpu, l
+@@ -1578,17 +1584,17 @@ int continue_hypercall_on_cpu(int cpu, l
else
{
BUG_ON(info->nest != 0);
@@ -160,7 +160,7 @@
if ( opt_dom0_max_vcpus > MAX_VIRT_CPUS )
opt_dom0_max_vcpus = MAX_VIRT_CPUS;
-@@ -248,7 +249,7 @@ int __init construct_dom0(
+@@ -277,7 +278,7 @@ int __init construct_dom0(
unsigned long _initrd_start, unsigned long initrd_len,
char *cmdline)
{
@@ -169,7 +169,7 @@
struct cpu_user_regs *regs;
unsigned long pfn, mfn;
unsigned long nr_pages;
-@@ -757,8 +758,12 @@ int __init construct_dom0(
+@@ -776,8 +777,12 @@ int __init construct_dom0(
printk("Dom0 has maximum %u VCPUs\n", opt_dom0_max_vcpus);
@@ -372,7 +372,7 @@
*/
int alloc_cpu_id(void)
{
-@@ -984,10 +984,10 @@ static int __devinit do_boot_cpu(int api
+@@ -985,10 +985,10 @@ static int __devinit do_boot_cpu(int api
cpucount--;
/* Mark the CPU as non-present */
@@ -430,7 +430,7 @@
if (cpu_online(cpu)) {
printk("Bring up a online cpu. Bogus!\n");
err = -EBUSY;
-@@ -1398,7 +1400,7 @@ int cpu_up(unsigned int cpu)
+@@ -1400,7 +1402,7 @@ int cpu_up(unsigned int cpu)
out:
if (!err)
send_guest_global_virq(dom0, VIRQ_PCPU_STATE);
@@ -439,7 +439,7 @@
return err;
}
-@@ -1479,13 +1481,13 @@ int cpu_add(uint32_t apic_id, uint32_t a
+@@ -1481,13 +1483,13 @@ int cpu_add(uint32_t apic_id, uint32_t a
if ( physid_isset(apic_id, phys_cpu_present_map) )
return -EEXIST;
@@ -455,7 +455,7 @@
return cpu;
}
-@@ -1502,7 +1504,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
+@@ -1504,7 +1506,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
"Setup node failed for pxm %x\n", pxm);
x86_acpiid_to_apicid[acpi_id] = 0xff;
mp_unregister_lapic(apic_id, cpu);
@@ -464,7 +464,7 @@
return node;
}
apicid_to_node[apic_id] = node;
-@@ -1510,7 +1512,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
+@@ -1512,7 +1514,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
srat_detect_node(cpu);
numa_add_cpu(cpu);
@@ -473,7 +473,7 @@
dprintk(XENLOG_INFO, "Add CPU %x with index %x\n", apic_id, cpu);
return cpu;
}
-@@ -1554,6 +1556,7 @@ int __devinit __cpu_up(unsigned int cpu)
+@@ -1556,6 +1558,7 @@ int __devinit __cpu_up(unsigned int cpu)
process_pending_softirqs();
}
++++++ dom-print.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c
+++ xen-4.0.0-testing/xen/arch/x86/domain.c
-@@ -143,7 +143,7 @@ void dump_pageframe_info(struct domain *
+@@ -144,7 +144,7 @@ void dump_pageframe_info(struct domain *
printk("Memory pages belonging to domain %u:\n", d->domain_id);
@@ -11,7 +11,7 @@
{
printk(" DomPage list too long to display\n");
}
-@@ -151,6 +151,15 @@ void dump_pageframe_info(struct domain *
+@@ -152,6 +152,15 @@ void dump_pageframe_info(struct domain *
{
page_list_for_each ( page, &d->page_list )
{
++++++ hv_tools.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:30.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:30.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/lowlevel/xc/xc.c
+++ xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c
-@@ -917,16 +917,16 @@ static PyObject *pyxc_hvm_build(XcObject
+@@ -950,16 +950,16 @@ static PyObject *pyxc_hvm_build(XcObject
#endif
int i;
char *image;
@@ -24,7 +24,7 @@
return NULL;
memset(vcpu_avail, 0, sizeof(vcpu_avail));
-@@ -978,6 +978,7 @@ static PyObject *pyxc_hvm_build(XcObject
+@@ -1011,6 +1011,7 @@ static PyObject *pyxc_hvm_build(XcObject
va_hvm->checksum -= sum;
munmap(va_map, XC_PAGE_SIZE);
#endif
++++++ snapshot-ioemu-restore.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:31.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:31.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/blktap/drivers/blktapctrl.c
+++ xen-4.0.0-testing/tools/blktap/drivers/blktapctrl.c
-@@ -347,6 +347,7 @@ static int write_msg(int fd, int msgtype
+@@ -348,6 +348,7 @@ static int write_msg(int fd, int msgtype
msg_dev = (msg_newdev_t *)(buf + sizeof(msg_hdr_t));
msg_dev->devnum = blkif->minor;
msg_dev->domid = blkif->domid;
++++++ snapshot-xend.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:31.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:31.000000000 +0100
@@ -325,9 +325,9 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendConfig.py
-@@ -235,6 +235,7 @@ XENAPI_CFG_TYPES = {
- 'superpages' : int,
+@@ -236,6 +236,7 @@ XENAPI_CFG_TYPES = {
'memory_sharing': int,
+ 'Description': str,
'pool_name' : str,
+ 'snapshotname': str,
}
++++++ x86-ioapic-ack-default.patch ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:31.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:31.000000000 +0100
@@ -1,7 +1,9 @@
Change default IO-APIC ack mode for single IO-APIC systems to old-style.
---- 2010-01-06.orig/xen/arch/x86/io_apic.c 2009-12-17 12:20:22.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/io_apic.c 2010-01-06 11:17:14.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/x86/io_apic.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/io_apic.c
++++ xen-4.0.0-testing/xen/arch/x86/io_apic.c
@@ -1442,7 +1442,7 @@ static unsigned int startup_level_ioapic
return 0; /* don't check for pending */
}
@@ -11,7 +13,7 @@
static void setup_ioapic_ack(char *s)
{
if ( !strcmp(s, "old") )
-@@ -1954,6 +1954,8 @@ void __init setup_IO_APIC(void)
+@@ -1946,6 +1946,8 @@ void __init setup_IO_APIC(void)
else
io_apic_irqs = ~PIC_IRQS;
++++++ xen-4.0.0-testing-src.tar.bz2 ++++++
xen/xen-4.0.0-testing-src.tar.bz2 /mounts/work_src_done/STABLE/xen/xen-4.0.0-testing-src.tar.bz2 differ: char 11, line 1
++++++ xen-config.diff ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:31.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:31.000000000 +0100
@@ -2,16 +2,16 @@
===================================================================
--- xen-4.0.0-testing.orig/Config.mk
+++ xen-4.0.0-testing/Config.mk
-@@ -148,7 +148,7 @@ QEMU_REMOTE=http://xenbits.xensource.com
+@@ -151,7 +151,7 @@ QEMU_REMOTE=http://xenbits.xensource.com
# Specify which qemu-dm to use. This may be `ioemu' to use the old
# Mercurial in-tree version, or a local directory, or a git URL.
# CONFIG_QEMU ?= ../qemu-xen.git
-CONFIG_QEMU ?= $(QEMU_REMOTE)
+CONFIG_QEMU ?= ioemu-remote
- QEMU_TAG ?= e5d14857cd67490bf956d97c8888c0be95ed3f78
- # Thu Feb 18 15:36:29 2010 +0000
-@@ -163,9 +163,9 @@ CONFIG_OCAML_XENSTORED ?= n
+ QEMU_TAG := xen-4.0.0-rc6
+ #QEMU_TAG ?= e5d14857cd67490bf956d97c8888c0be95ed3f78
+@@ -167,9 +167,9 @@ CONFIG_OCAML_XENSTORED ?= n
# Optional components
XENSTAT_XENTOP ?= y
VTPM_TOOLS ?= n
++++++ xen-extra-fixes.patch ++++++
Index: xen-4.0.0-testing/tools/ioemu-remote/block-vvfat.c
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/block-vvfat.c
+++ xen-4.0.0-testing/tools/ioemu-remote/block-vvfat.c
@@ -865,7 +865,8 @@ static int init_directories(BDRVVVFATSta
{
direntry_t* entry=array_get_next(&(s->directory));
entry->attributes=0x28; /* archive | volume label */
- snprintf((char*)entry->name,11,"QEMU VVFAT");
+ memcpy(entry->name,"QEMU VVF",8);
+ memcpy(entry->extension,"AT ",3);
}
/* Now build FAT, and write back information into directory */
Index: xen-4.0.0-testing/unmodified_drivers/linux-2.6/overrides.mk
===================================================================
--- xen-4.0.0-testing.orig/unmodified_drivers/linux-2.6/overrides.mk
+++ xen-4.0.0-testing/unmodified_drivers/linux-2.6/overrides.mk
@@ -11,7 +11,7 @@ ifeq ($(ARCH),ia64)
_XEN_CPPFLAGS += -DCONFIG_VMX_GUEST
endif
-_XEN_CPPFLAGS += -include $(objtree)/include/linux/autoconf.h
+_XEN_CPPFLAGS += -include $(objtree)/include/generated/autoconf.h
EXTRA_CFLAGS += $(_XEN_CPPFLAGS)
EXTRA_AFLAGS += $(_XEN_CPPFLAGS)
++++++ xen-max-free-mem.diff ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:31.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:31.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendNode.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendNode.py
-@@ -907,15 +907,39 @@ class XendNode:
+@@ -911,15 +911,39 @@ class XendNode:
info['cpu_mhz'] = info['cpu_khz'] / 1000
@@ -47,7 +47,7 @@
ITEM_ORDER = ['nr_cpus',
'nr_nodes',
'cores_per_socket',
-@@ -925,6 +949,9 @@ class XendNode:
+@@ -929,6 +953,9 @@ class XendNode:
'virt_caps',
'total_memory',
'free_memory',
++++++ xen-warnings.diff ++++++
--- /var/tmp/diff_new_pack.LeQwEc/_old 2010-03-21 11:57:31.000000000 +0100
+++ /var/tmp/diff_new_pack.LeQwEc/_new 2010-03-21 11:57:31.000000000 +0100
@@ -165,7 +165,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/blktap2/drivers/block-remus.c
+++ xen-4.0.0-testing/tools/blktap2/drivers/block-remus.c
-@@ -1578,7 +1578,7 @@ static int tdremus_open(td_driver_t *dri
+@@ -1579,7 +1579,7 @@ static int tdremus_open(td_driver_t *dri
td_flag_t flags)
{
struct tdremus_state *s = (struct tdremus_state *)driver->data;
@@ -174,16 +174,3 @@
RPRINTF("opening %s\n", name);
-Index: xen-4.0.0-testing/tools/libxl/Makefile
-===================================================================
---- xen-4.0.0-testing.orig/tools/libxl/Makefile
-+++ xen-4.0.0-testing/tools/libxl/Makefile
-@@ -50,7 +50,7 @@ xl.o: $(LIBCONFIG_OUTPUT)/libconfig.so x
- $(CC) $(CFLAGS) -I$(LIBCONFIG_SOURCE) -c xl.c
-
- $(CLIENTS): xl.o libxenlight.so $(LIBCONFIG_OUTPUT)/libconfig.so
-- $(CC) $(LDFLAGS) -o $@ $< $(LIBS) -L . -lxenlight -L$(LIBCONFIG_OUTPUT) -lconfig
-+ $(CC) $(LDFLAGS) -o $@ $< -L . -lxenlight $(LIBS) -L$(LIBCONFIG_OUTPUT) -lconfig
-
- .PHONY: install
- install: all
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package vm-install for openSUSE:Factory
checked in at Sun Mar 21 11:57:12 CET 2010.
--------
--- vm-install/vm-install.changes 2010-02-26 19:08:48.000000000 +0100
+++ /mounts/work_src_done/STABLE/vm-install/vm-install.changes 2010-03-19 17:18:10.000000000 +0100
@@ -1,0 +2,32 @@
+Fri Mar 19 09:28:37 MDT 2010 - carnold(a)novell.com
+
+- bnc#572167 - "Create Virtual Machines" can not be used by default
+
+-------------------------------------------------------------------
+Thu Mar 18 06:40:39 MDT 2010 - carnold(a)novell.com
+
+- bnc#589332 - vm-install reports the wrong amount of free memory
+ available for KVM guests
+
+-------------------------------------------------------------------
+Mon Mar 15 11:23:50 MDT 2010 - carnold(a)novell.com
+
+- bnc#588215 - virt-manager/vminstall can't install new KVM Guests
+
+-------------------------------------------------------------------
+Fri Mar 12 08:40:43 MST 2010 - carnold(a)novell.com
+
+- Updated language files.
+
+-------------------------------------------------------------------
+Wed Mar 10 15:32:17 MST 2010 - carnold(a)novell.com
+
+- bnc#574603 - vm-install failed with the normal user
+
+-------------------------------------------------------------------
+Thu Mar 04 08:58:26 MST 2010 - carnold(a)novell.com
+
+- bnc#585446 - Vm-install outputs incorrect XML for current and
+ maximum memory
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
vm-install-0.4.21.tar.bz2
New:
----
vm-install-0.4.23.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vm-install.spec ++++++
--- /var/tmp/diff_new_pack.ZY91Xp/_old 2010-03-21 11:57:04.000000000 +0100
+++ /var/tmp/diff_new_pack.ZY91Xp/_new 2010-03-21 11:57:04.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package vm-install (Version 0.4.21)
+# spec file for package vm-install (Version 0.4.23)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -26,10 +26,10 @@
License: GPLv2+
Group: System/Emulators/PC
AutoReqProv: yes
-Version: 0.4.21
+Version: 0.4.23
Release: 1
Summary: Tool to Define a Virtual Machine and Install Its Operating System
-Source0: %{name}-0.4.21.tar.bz2
+Source0: %{name}-0.4.23.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64
Requires: libvirt python-urlgrabber libxml2-python libvirt-python virt-utils udhcp tftp
++++++ vm-install-0.4.21.tar.bz2 -> vm-install-0.4.23.tar.bz2 ++++++
++++ 6615 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package virt-manager for openSUSE:Factory
checked in at Sun Mar 21 11:56:52 CET 2010.
--------
--- virt-manager/virt-manager.changes 2010-02-26 19:33:46.000000000 +0100
+++ /mounts/work_src_done/STABLE/virt-manager/virt-manager.changes 2010-03-19 18:23:28.000000000 +0100
@@ -1,0 +2,23 @@
+Thu Mar 18 11:19:11 MDT 2010 - carnold(a)novell.com
+
+- bnc#588391 - Send Key in virt-viewer does not work with Netware
+ VM's
+
+-------------------------------------------------------------------
+Wed Mar 17 16:11:50 MDT 2010 - carnold(a)novell.com
+
+- Don't automatically connect to xen in the virt-manager.desktop
+ file. This results in an error dialog when only KVM is installed
+
+-------------------------------------------------------------------
+Mon Mar 15 11:20:25 MDT 2010 - carnold(a)novell.com
+
+- bnc#588215 - virt-manager/vminstall can't install new KVM Guests
+
+-------------------------------------------------------------------
+Fri Mar 5 16:07:05 MST 2010 - jfehlig(a)novell.com
+
+- bnc#585990 - Fix add/remove device for active Xen guests.
+ virtman-device-flags.diff
+
+-------------------------------------------------------------------
@@ -9,0 +33,9 @@
+- cleanup spec
+ * norootforbuild
+ * sort TAGS
+- some rpmlint stuff
+ * configfile
+
+-------------------------------------------------------------------
+Wed Feb 10 10:52:23 MST 2010 - carnold(a)novell.com
+
@@ -12 +44,2 @@
- existing interfaces. Provision new bridge, bond, and vlan devices.
+ existing interfaces. Provision new bridge, bond, and vlan
+ devices.
@@ -22,5 +54,0 @@
-- cleanup spec
- * norootforbuild
- * sort TAGS
-- some rpmlint stuff
- * configfile
calling whatdependson for head-i586
New:
----
virtman-device-flags.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.7II1WS/_old 2010-03-21 11:56:33.000000000 +0100
+++ /var/tmp/diff_new_pack.7II1WS/_new 2010-03-21 11:56:33.000000000 +0100
@@ -28,7 +28,7 @@
Name: virt-manager
Summary: Virtual Machine Manager
Version: 0.8.3
-Release: 1
+Release: 2
Group: System/Monitoring
License: LGPLv2.1+
Url: http://virt-manager.et.redhat.com
@@ -45,6 +45,7 @@
Patch58: virtman-help.diff
Patch59: virtman-keycombo.diff
Patch60: virtman-autoconnect.diff
+Patch61: virtman-device-flags.diff
Patch81: virtinst-cdrom.diff
Patch82: virtinst-storage-ocfs2.diff
ExclusiveArch: %{ix86} x86_64
@@ -134,6 +135,7 @@
%patch58 -p1
%patch59 -p1
%patch60 -p1
+%patch61 -p1
pushd $RPM_BUILD_DIR/%{virtinst_name}
%patch81 -p1
%patch82 -p1
++++++ virtman-desktop.diff ++++++
--- /var/tmp/diff_new_pack.7II1WS/_old 2010-03-21 11:56:33.000000000 +0100
+++ /var/tmp/diff_new_pack.7II1WS/_new 2010-03-21 11:56:33.000000000 +0100
@@ -36,7 +36,7 @@
-Exec=::PACKAGE::
+Version=1.0
+Icon=yast-vm-management
-+Exec=/usr/bin/virt-manager -c xen:///
++Exec=/usr/bin/virt-manager
Type=Application
Terminal=false
Encoding=UTF-8
@@ -46,7 +46,7 @@
+X-KDE-RootOnly=true
+X-KDE-HasReadOnlyMode=false
+X-KDE-Library=yast2
-+X-SuSE-YaST-Call=/usr/bin/virt-manager -- -c xen:///
++X-SuSE-YaST-Call=/usr/bin/virt-manager
+X-SuSE-YaST-Group=Virtualization
+X-SuSE-YaST-Argument=
+X-SuSE-YaST-RootOnly=true
++++++ virtman-device-flags.diff ++++++
Index: virt-manager-0.8.3/src/virtManager/addhardware.py
===================================================================
--- virt-manager-0.8.3.orig/src/virtManager/addhardware.py
+++ virt-manager-0.8.3/src/virtManager/addhardware.py
@@ -1047,6 +1047,18 @@ class vmmAddHardware(gobject.GObject):
self._dev.get_xml_config()
logging.debug("Adding device:\n" + self._dev.get_xml_config())
+ # If vm is active, Try to hotplug the device and modify persistent
+ # config in one go
+ if self.vm.is_active():
+ try:
+ self.vm.attach_device_flags(self._dev, 3)
+ return (False, None)
+ except Exception, e:
+ logging.debug("Could not hotplug device and modify persistent "
+ "config at the same time: %s" % str(e))
+ logging.debug("Trying the operations seperately ...")
+
+ # Try hotplug then modify persistent config
# Hotplug device
attach_err = False
try:
Index: virt-manager-0.8.3/src/virtManager/details.py
===================================================================
--- virt-manager-0.8.3.orig/src/virtManager/details.py
+++ virt-manager-0.8.3/src/virtManager/details.py
@@ -1194,6 +1194,17 @@ class vmmDetails(gobject.GObject):
return
self.config.set_confirm_removedev(not skip_prompt)
+ # If vm is running, try to hot remove the device and modify
+ # persistent config in one go
+ if self.vm.is_active():
+ try:
+ self.vm.detach_device_flags(dev_type, dev_id_info, 3)
+ return
+ except Exception, e:
+ logging.debug("Could not hot remove device and modify "
+ "persistent config at the same time: %s" % str(e))
+ logging.debug("Trying the operations seperately ...")
+
# Define the change
try:
self.vm.remove_device(dev_type, dev_id_info)
Index: virt-manager-0.8.3/src/virtManager/domain.py
===================================================================
--- virt-manager-0.8.3.orig/src/virtManager/domain.py
+++ virt-manager-0.8.3/src/virtManager/domain.py
@@ -1286,6 +1286,10 @@ class vmmDomain(vmmDomainBase):
xml = devobj.get_xml_config()
self._backend.attachDevice(xml)
+ def attach_device_flags(self, devobj, flags):
+ xml = devobj.get_xml_config()
+ self._backend.attachDeviceFlags(xml, flags)
+
def detach_device(self, devtype, dev_id_info):
"""
Hotunplug device from running guest
@@ -1294,6 +1298,10 @@ class vmmDomain(vmmDomainBase):
if self.is_active():
self._backend.detachDevice(xml)
+ def detach_device_flags(self, devtype, dev_id_info, flags):
+ xml = self._get_device_xml(devtype, dev_id_info)
+ self._backend.detachDeviceFlags(xml, flags)
+
def hotplug_vcpus(self, vcpus):
vcpus = int(vcpus)
if vcpus != self.vcpu_count():
++++++ virtman-keycombo.diff ++++++
--- /var/tmp/diff_new_pack.7II1WS/_old 2010-03-21 11:56:33.000000000 +0100
+++ /var/tmp/diff_new_pack.7II1WS/_new 2010-03-21 11:56:33.000000000 +0100
@@ -10,7 +10,7 @@
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Alt+Shift+Shift+Esc</property>
+ <property name="use_underline">False</property>
-+ <signal name="activate" handler="on_menu_send_assesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_assesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
+ </widget>
+ </child>
+ <child>
@@ -23,7 +23,7 @@
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">A_lt+F10</property>
+ <property name="use_underline">True</property>
-+ <signal name="activate" handler="on_menu_send_af10_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_af10_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
+ </widget>
+ </child>
+ <child>
@@ -31,15 +31,15 @@
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Alt+_Tab</property>
+ <property name="use_underline">True</property>
-+ <signal name="activate" handler="on_menu_send_atab_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_atab_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
+ </widget>
+ </child>
+ <child>
-+ <widget class="GtkMenuItem" id="details-menu-send-astab">
++ <widget class="GtkMenuItem" id="details-menu-send-aesc">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Alt+Esc</property>
+ <property name="use_underline">True</property>
-+ <signal name="activate" handler="on_menu_send_aesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_aesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
+ </widget>
+ </child>
+ <child>
@@ -47,7 +47,7 @@
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Ctrl+Esc</property>
+ <property name="use_underline">True</property>
-+ <signal name="activate" handler="on_menu_send_cesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_cesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
+ </widget>
+ </child>
+ <child>
@@ -55,7 +55,7 @@
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Ctrl+Alt+_Esc</property>
+ <property name="use_underline">True</property>
-+ <signal name="activate" handler="on_menu_send_caesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_caesc_activate" last_modification_time="Wed, 14 Oct 2009 12:06:25 GMT"/>
+ </widget>
+ </child>
+ <child>
@@ -68,7 +68,7 @@
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_F8</property>
+ <property name="use_underline">True</property>
-+ <signal name="activate" handler="on_menu_send_f8_activate" last_modification_time="Wed, 09 Jan 2008 19:20:40 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_f8_activate" last_modification_time="Wed, 09 Jan 2008 19:20:40 GMT"/>
+ </widget>
+ </child>
+ <child>
@@ -76,7 +76,7 @@
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">F1_0</property>
+ <property name="use_underline">True</property>
-+ <signal name="activate" handler="on_menu_send_f10_activate" last_modification_time="Wed, 09 Jan 2008 19:20:40 GMT"/>
++ <signal name="activate" handler="on_details_menu_send_f10_activate" last_modification_time="Wed, 09 Jan 2008 19:20:40 GMT"/>
+ </widget>
+ </child>
+ <child>
++++++ virtman-vminstall.diff ++++++
--- /var/tmp/diff_new_pack.7II1WS/_old 2010-03-21 11:56:33.000000000 +0100
+++ /var/tmp/diff_new_pack.7II1WS/_new 2010-03-21 11:56:33.000000000 +0100
@@ -12,7 +12,7 @@
from virtManager.host import vmmHost
from virtManager.error import vmmErrorDialog
from virtManager.systray import vmmSystray
-@@ -436,13 +437,24 @@ class vmmEngine(gobject.GObject):
+@@ -436,13 +437,27 @@ class vmmEngine(gobject.GObject):
return False
return True
@@ -22,7 +22,10 @@
def show_create(self, uri):
if self.windowCreate == None:
- create = vmmCreate(self.get_config(), self)
-+ create = vmmCreate(virtman=True,key=0)
++ try:
++ create = vmmCreate(virtman=True,key=0)
++ except Exception, e:
++ self.err.show_err("%s" % str(e),"".join(traceback.format_exc()))
create.connect("action-show-console", self._do_show_console)
- create.connect("action-show-help", self._do_show_help)
+ create.connect("vmmcreate-closing", self._vmmcreate_closing)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package pcmanfm for openSUSE:Factory
checked in at Sun Mar 21 11:56:19 CET 2010.
--------
--- pcmanfm/pcmanfm.changes 2010-03-09 18:59:26.000000000 +0100
+++ /mounts/work_src_done/STABLE/pcmanfm/pcmanfm.changes 2010-03-18 22:51:49.000000000 +0100
@@ -1,0 +2,18 @@
+Thu Mar 18 21:53:37 UTC 2010 - andrea(a)opensuse.org
+
+- upgrade to 0.9.3
+
+-------------------------------------------------------------------
+Tue Mar 16 13:34:05 UTC 2010 - andrea(a)opensuse.org
+
+- bug fixing and using new libfm APIs
+
+-------------------------------------------------------------------
+Sun Mar 14 14:58:49 UTC 2010 - andrea(a)opensuse.org
+
+- new git revision, is now possible to disable automount and
+ autorun
+- translations upgrades
+- added rpmlintrc to suppress false positives warning
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
pcmanfm-rpmlintrc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pcmanfm.spec ++++++
--- /var/tmp/diff_new_pack.YnQDFj/_old 2010-03-21 11:56:14.000000000 +0100
+++ /var/tmp/diff_new_pack.YnQDFj/_new 2010-03-21 11:56:14.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package pcmanfm (Version 0.9.2alpha+git20100309)
+# spec file for package pcmanfm (Version 0.9.3beta+git20100317)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,12 +20,13 @@
Name: pcmanfm
Summary: The next generation LXDE file manager
-Version: 0.9.2alpha+git20100309
+Version: 0.9.3beta+git20100317
Release: 1
License: GPLv2
Group: Productivity/File utilities
Url: http://www.lxde.org/
Source0: %name.tar.bz2
+Source1: %name-rpmlintrc
# PATCH-FIX-OPENSUSE pcmanfm-rename-to-pcmanfm.patch andrea(a)opensuse.org -- pcmanfm2 will change his name back to pcmanfm on upstream code
# only when stable release will be ready, we can't wait, that may happen after 11.3 GM is out.
Patch0: %name-rename-to-pcmanfm.patch
++++++ pcmanfm-rpmlintrc ++++++
# libfm is NOT a lib, and it's a needed dependecy
addFilter ("W: explicit-lib-dependency")
++++++ pcmanfm.tar.bz2 ++++++
++++ 3736 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package openbox for openSUSE:Factory
checked in at Sun Mar 21 11:56:04 CET 2010.
--------
--- openbox/openbox.changes 2010-03-02 21:47:42.000000000 +0100
+++ /mounts/work_src_done/STABLE/openbox/openbox.changes 2010-03-06 11:56:22.000000000 +0100
@@ -5 +5 @@
- a SIBART detected with gcc 4.5 #bio4563
+ a SIGABRT detected with gcc 4.5 #bio4563
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openbox.spec ++++++
--- /var/tmp/diff_new_pack.E8py3T/_old 2010-03-21 11:55:51.000000000 +0100
+++ /var/tmp/diff_new_pack.E8py3T/_new 2010-03-21 11:55:51.000000000 +0100
@@ -23,7 +23,7 @@
Provides: windowmanager
AutoReqProv: on
Version: 3.4.11
-Release: 2
+Release: 3
Summary: ICCCM and EWMH Compliant Window Manager with Very Few Dependencies
Url: http://openbox.org/
Source: %name-%version.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package mux for openSUSE:Factory
checked in at Sun Mar 21 11:55:41 CET 2010.
--------
--- GNOME/mux/mux.changes 2010-03-19 14:07:38.000000000 +0100
+++ /mounts/work_src_done/STABLE/mux/mux.changes 2010-03-19 19:36:30.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Mar 19 18:37:06 UTC 2010 - awafaa(a)opensuse.org
+
+- Fix package name and Group
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mux.spec ++++++
--- /var/tmp/diff_new_pack.t6BAS2/_old 2010-03-21 11:55:29.000000000 +0100
+++ /var/tmp/diff_new_pack.t6BAS2/_new 2010-03-21 11:55:29.000000000 +0100
@@ -20,9 +20,9 @@
Name: mux
Summary: Gtk+ Widgets
-Group: Development/Libraries
+Group: Development/Libraries/C and C++
Version: 0.320090709
-Release: 1
+Release: 2
License: GPLv2+
Url: http://www.moblin.org
Source0: %{name}-%{version}.tar.bz2
@@ -32,19 +32,19 @@
%description
Mux is a set of Gtk+ widgets for the Moblin UX
-%package -n libmux-0_3-0
+%package -n libmux0
License: GPLv2+
-Summary: Mux foo
-Group: Development/Libraries
+Summary: Gtk+ Widgets
+Group: Development/Libraries/C and C++
-%description -n libmux-0_3-0
+%description -n libmux0
Mux is a set of Gtk+ widgets for the Moblin UX
%package devel
License: GPLv2+
Summary: Gtk+ Widgets
-Group: Development/Libraries
-Requires: libmux-0_3-0 = %{version}-%{release}
+Group: Development/Libraries/C and C++
+Requires: libmux0 = %{version}-%{release}
Requires: pkgconfig
Requires: gtk2-devel
@@ -69,11 +69,11 @@
%clean
rm -rf %{buildroot}
-%post -n libmux-0_3-0 -p /sbin/ldconfig
+%post -n libmux0 -p /sbin/ldconfig
-%postun -n libmux-0_3-0 -p /sbin/ldconfig
+%postun -n libmux0 -p /sbin/ldconfig
-%files -n libmux-0_3-0
+%files -n libmux0
%defattr(-,root,root,-)
%doc COPYING
%{_libdir}/libmux*.so.*
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package lxterminal for openSUSE:Factory
checked in at Sun Mar 21 11:55:00 CET 2010.
--------
--- lxterminal/lxterminal.changes 2010-03-02 00:45:48.000000000 +0100
+++ /mounts/work_src_done/STABLE/lxterminal/lxterminal.changes 2010-03-10 17:14:14.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Mar 10 16:15:04 UTC 2010 - andrea(a)opensuse.org
+
+- added lxterminal-0.1.7-fix-path.patch now -e option will work
+ again with commands not in the $PATH, example:
+ lxterminal -e ./command
+ will work again now
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
lxterminal-0.1.7-fix-path.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lxterminal.spec ++++++
--- /var/tmp/diff_new_pack.v2XKQK/_old 2010-03-21 11:54:51.000000000 +0100
+++ /var/tmp/diff_new_pack.v2XKQK/_new 2010-03-21 11:54:51.000000000 +0100
@@ -20,13 +20,14 @@
Name: lxterminal
Version: 0.1.7
-Release: 1
+Release: 2
Summary: Lightweight LXDE Terminal
Group: System/X11/Utilities
License: GPL
Url: http://www.lxde.org/
Source0: %name-%version.tar.bz2
Patch0: %name-0.1.6-disable-f10.patch
+Patch1: %name-0.1.7-fix-path.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes gtk2-devel intltool pkg-config update-desktop-files
BuildRequires: docbook-utils docbook-xsl-stylesheets libxslt-devel vte-devel
@@ -39,6 +40,7 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS"
++++++ lxterminal-0.1.7-fix-path.patch ++++++
--- a/src/lxterminal.c
+++ b/src/lxterminal.c
@@ -766,7 +766,7 @@ static Term *terminal_new(LXTerminal *te
if (exec) {
gchar **command;
g_shell_parse_argv(exec, NULL, &command, NULL);
- term->pid = vte_terminal_fork_command(VTE_TERMINAL(term->vte), (const char *)*(command), command, env, "/tmp", FALSE, TRUE, TRUE);
+ term->pid = vte_terminal_fork_command(VTE_TERMINAL(term->vte), (const char *)*(command), command, env, pwd, FALSE, TRUE, TRUE);
g_strfreev(command);
} else {
term->pid = vte_terminal_fork_command(VTE_TERMINAL(term->vte), NULL, NULL, env, pwd, FALSE, TRUE, TRUE);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package lxsession for openSUSE:Factory
checked in at Sun Mar 21 11:54:37 CET 2010.
--------
--- lxsession/lxsession.changes 2010-03-11 09:02:35.000000000 +0100
+++ /mounts/work_src_done/STABLE/lxsession/lxsession.changes 2010-03-18 22:43:02.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Mar 18 21:42:38 UTC 2010 - andrea(a)opensuse.org
+
+- new upstream version 0.4.3
+- removed fortify-declaration patch (fixed upstream)
+- ported lxsession-0.4.2-fix-buttons-position.patch to fit new code
+- bug fix release
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
lxsession-0.4.2-fix-buttons-position.patch
lxsession-0.4.2-implicit-fortify-decl.patch
lxsession-0.4.2.tar.bz2
New:
----
lxsession-0.4.3-fix-buttons-position.patch
lxsession-0.4.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lxsession.spec ++++++
--- /var/tmp/diff_new_pack.We8gKE/_old 2010-03-21 11:54:28.000000000 +0100
+++ /var/tmp/diff_new_pack.We8gKE/_new 2010-03-21 11:54:28.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package lxsession (Version 0.4.2)
+# spec file for package lxsession (Version 0.4.3)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,15 +19,14 @@
Name: lxsession
-Version: 0.4.2
-Release: 2
+Version: 0.4.3
+Release: 1
Summary: LXDE Session Manager, required for running the desktop environment
Group: System/GUI/Other
License: GPL
Url: http://www.lxde.org/
Source0: %{name}-%{version}.tar.bz2
-Patch0: %name-0.4.2-implicit-fortify-decl.patch
-Patch1: %name-0.4.2-fix-buttons-position.patch
+Patch0: %name-0.4.3-fix-buttons-position.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: dbus-1-glib-devel fdupes gtk2-devel intltool pkg-config
BuildRequires: docbook-utils docbook-xsl-stylesheets hal-devel libxslt
@@ -45,7 +44,6 @@
%prep
%setup -q -n %name-%version
%patch0 -p1
-%patch1 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS"
++++++ lxsession-0.4.2-fix-buttons-position.patch -> lxsession-0.4.3-fix-buttons-position.patch ++++++
--- lxsession/lxsession-0.4.2-fix-buttons-position.patch 2010-03-10 07:48:04.000000000 +0100
+++ /mounts/work_src_done/STABLE/lxsession/lxsession-0.4.3-fix-buttons-position.patch 2010-03-18 22:42:55.000000000 +0100
@@ -1,60 +1,65 @@
-diff -uNr old-lxsession-0.4.2//lxsession-logout/lxsession-logout.c lxsession-0.4.2/lxsession-logout/lxsession-logout.c
---- old-lxsession-0.4.2//lxsession-logout/lxsession-logout.c 2010-03-10 07:41:10.972412403 +0100
-+++ lxsession-0.4.2/lxsession-logout/lxsession-logout.c 2010-03-10 07:45:45.528412788 +0100
-@@ -405,6 +405,8 @@
- GtkWidget * logout_button = gtk_button_new_with_mnemonic(_("_Logout"));
- GtkWidget * image = gtk_image_new_from_icon_name("system-log-out", GTK_ICON_SIZE_BUTTON);
- gtk_button_set_image(GTK_BUTTON(logout_button), image);
-+ /* align it to left 0.0 as X and 0.0 as Y */
-+ gtk_button_set_alignment(GTK_BUTTON(logout_button), 0.0 ,0.0);
- g_signal_connect(G_OBJECT(logout_button), "clicked", G_CALLBACK(logout_clicked), &handler_context);
- gtk_box_pack_start(GTK_BOX(controls), logout_button, FALSE, FALSE, 4);
-
-@@ -414,6 +416,8 @@
+diff -uNr old-lxsession-0.4.3/lxsession-logout/lxsession-logout.c lxsession-0.4.3//lxsession-logout/lxsession-logout.c
+--- old-lxsession-0.4.3/lxsession-logout/lxsession-logout.c 2010-03-18 17:21:34.000000000 +0100
++++ lxsession-0.4.3//lxsession-logout/lxsession-logout.c 2010-03-18 22:41:18.875553519 +0100
+@@ -395,6 +395,8 @@
GtkWidget * shutdown_button = gtk_button_new_with_mnemonic(_("Sh_utdown"));
GtkWidget * image = gtk_image_new_from_icon_name("system-shutdown", GTK_ICON_SIZE_BUTTON);
gtk_button_set_image(GTK_BUTTON(shutdown_button), image);
+ /* align it to left 0.0 as X and 0.0 as Y */
-+ gtk_button_set_alignment(GTK_BUTTON(shutdown_button), 0.0 ,0.0);
++ gtk_button_set_alignment(GTK_BUTTON(shutdown_button), 0.0 ,0.0);
g_signal_connect(G_OBJECT(shutdown_button), "clicked", G_CALLBACK(shutdown_clicked), &handler_context);
gtk_box_pack_start(GTK_BOX(controls), shutdown_button, FALSE, FALSE, 4);
}
-@@ -424,6 +428,8 @@
+@@ -404,8 +406,10 @@
+ {
GtkWidget * reboot_button = gtk_button_new_with_mnemonic(_("_Reboot"));
GtkWidget * image = gtk_image_new_from_icon_name("gnome-session-reboot", GTK_ICON_SIZE_BUTTON);
- gtk_button_set_image(GTK_BUTTON(reboot_button), image);
+- gtk_button_set_image(GTK_BUTTON(reboot_button), image);
+- g_signal_connect(G_OBJECT(reboot_button), "clicked", G_CALLBACK(reboot_clicked), &handler_context);
++ gtk_button_set_image(GTK_BUTTON(reboot_button), image);
+ /* align it to left 0.0 as X and 0.0 as Y */
-+ gtk_button_set_alignment(GTK_BUTTON(reboot_button), 0.0 ,0.0);
- g_signal_connect(G_OBJECT(reboot_button), "clicked", G_CALLBACK(reboot_clicked), &handler_context);
++ gtk_button_set_alignment(GTK_BUTTON(reboot_button), 0.0 ,0.0);
++ g_signal_connect(G_OBJECT(reboot_button), "clicked", G_CALLBACK(reboot_clicked), &handler_context);
gtk_box_pack_start(GTK_BOX(controls), reboot_button, FALSE, FALSE, 4);
}
-@@ -434,6 +440,8 @@
+
+@@ -415,7 +419,9 @@
GtkWidget * suspend_button = gtk_button_new_with_mnemonic(_("_Suspend"));
GtkWidget * image = gtk_image_new_from_icon_name("gnome-session-suspend", GTK_ICON_SIZE_BUTTON);
gtk_button_set_image(GTK_BUTTON(suspend_button), image);
+- g_signal_connect(G_OBJECT(suspend_button), "clicked", G_CALLBACK(suspend_clicked), &handler_context);
+ /* align it to left 0.0 as X and 0.0 as Y */
-+ gtk_button_set_alignment(GTK_BUTTON(suspend_button), 0.0 ,0.0);
- g_signal_connect(G_OBJECT(suspend_button), "clicked", G_CALLBACK(suspend_clicked), &handler_context);
++ gtk_button_set_alignment(GTK_BUTTON(suspend_button), 0.0 ,0.0);
++ g_signal_connect(G_OBJECT(suspend_button), "clicked", G_CALLBACK(suspend_clicked), &handler_context);
gtk_box_pack_start(GTK_BOX(controls), suspend_button, FALSE, FALSE, 4);
}
-@@ -444,6 +452,8 @@
+
+@@ -425,6 +431,8 @@
GtkWidget * hibernate_button = gtk_button_new_with_mnemonic(_("_Hibernate"));
GtkWidget * image = gtk_image_new_from_icon_name("gnome-session-hibernate", GTK_ICON_SIZE_BUTTON);
gtk_button_set_image(GTK_BUTTON(hibernate_button), image);
-+ /* align it to left 0.0 as X and 0.0 as Y */
-+ gtk_button_set_alignment(GTK_BUTTON(hibernate_button), 0.0 ,0.0);
++ /* align it to left 0.0 as X and 0.0 as Y */
++ gtk_button_set_alignment(GTK_BUTTON(hibernate_button), 0.0 ,0.0);
g_signal_connect(G_OBJECT(hibernate_button), "clicked", G_CALLBACK(hibernate_clicked), &handler_context);
gtk_box_pack_start(GTK_BOX(controls), hibernate_button, FALSE, FALSE, 4);
}
-@@ -454,12 +464,16 @@
+@@ -435,6 +443,8 @@
GtkWidget * switch_user_button = gtk_button_new_with_mnemonic(_("S_witch User"));
GtkWidget * image = gtk_image_new_from_icon_name("gnome-session-switch", GTK_ICON_SIZE_BUTTON);
gtk_button_set_image(GTK_BUTTON(switch_user_button), image);
+ /* align it to left 0.0 as X and 0.0 as Y */
-+ gtk_button_set_alignment(GTK_BUTTON(switch_user_button), 0.0 ,0.0);
++ gtk_button_set_alignment(GTK_BUTTON(switch_user_button), 0.0 ,0.0);
g_signal_connect(G_OBJECT(switch_user_button), "clicked", G_CALLBACK(switch_user_clicked), &handler_context);
gtk_box_pack_start(GTK_BOX(controls), switch_user_button, FALSE, FALSE, 4);
}
+@@ -443,11 +453,15 @@
+ GtkWidget * logout_button = gtk_button_new_with_mnemonic(_("_Logout"));
+ GtkWidget * image = gtk_image_new_from_icon_name("system-log-out", GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image(GTK_BUTTON(logout_button), image);
++ /* align it to left 0.0 as X and 0.0 as Y */
++ gtk_button_set_alignment(GTK_BUTTON(logout_button), 0.0 ,0.0);
+ g_signal_connect(G_OBJECT(logout_button), "clicked", G_CALLBACK(logout_clicked), &handler_context);
+ gtk_box_pack_start(GTK_BOX(controls), logout_button, FALSE, FALSE, 4);
/* Create the Cancel button. */
GtkWidget * cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
++++++ lxsession-0.4.2.tar.bz2 -> lxsession-0.4.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/configure new/lxsession-0.4.3/configure
--- old/lxsession-0.4.2/configure 2010-03-07 16:11:24.000000000 +0100
+++ new/lxsession-0.4.3/configure 2010-03-18 17:34:32.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for lxsession 0.4.2.
+# Generated by GNU Autoconf 2.65 for lxsession 0.4.3.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -549,8 +549,8 @@
# Identity of this package.
PACKAGE_NAME='lxsession'
PACKAGE_TARNAME='lxsession'
-PACKAGE_VERSION='0.4.2'
-PACKAGE_STRING='lxsession 0.4.2'
+PACKAGE_VERSION='0.4.3'
+PACKAGE_STRING='lxsession 0.4.3'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1300,7 +1300,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures lxsession 0.4.2 to adapt to many kinds of systems.
+\`configure' configures lxsession 0.4.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1366,7 +1366,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of lxsession 0.4.2:";;
+ short | recursive ) echo "Configuration of lxsession 0.4.3:";;
esac
cat <<\_ACEOF
@@ -1472,7 +1472,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-lxsession configure 0.4.2
+lxsession configure 0.4.3
generated by GNU Autoconf 2.65
Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1837,7 +1837,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by lxsession $as_me 0.4.2, which was
+It was created by lxsession $as_me 0.4.3, which was
generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@
@@ -2645,7 +2645,7 @@
# Define the identity of the package.
PACKAGE='lxsession'
- VERSION='0.4.2'
+ VERSION='0.4.3'
cat >>confdefs.h <<_ACEOF
@@ -7276,7 +7276,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by lxsession $as_me 0.4.2, which was
+This file was extended by lxsession $as_me 0.4.3, which was
generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7342,7 +7342,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-lxsession config.status 0.4.2
+lxsession config.status 0.4.3
configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/configure.ac new/lxsession-0.4.3/configure.ac
--- old/lxsession-0.4.2/configure.ac 2010-03-07 16:11:07.000000000 +0100
+++ new/lxsession-0.4.3/configure.ac 2010-03-18 17:32:17.000000000 +0100
@@ -1,5 +1,5 @@
AC_PREREQ([2.57])
-AC_INIT(lxsession,[0.4.2], [],lxsession)
+AC_INIT(lxsession,[0.4.3], [],lxsession)
AM_INIT_AUTOMAKE()
AC_PROG_INTLTOOL(, [no-xml])
AM_MAINTAINER_MODE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession/Makefile.am new/lxsession-0.4.3/lxsession/Makefile.am
--- old/lxsession-0.4.2/lxsession/Makefile.am 2010-02-16 19:21:39.000000000 +0100
+++ new/lxsession-0.4.3/lxsession/Makefile.am 2010-03-09 21:41:37.000000000 +0100
@@ -12,8 +12,8 @@
lxsession_SOURCES = \
lxsession.c \
lxsession.h \
- autostart.c \
- autostart.h \
+ xdg-autostart.c \
+ xdg-autostart.h \
xevent.c \
xevent.h \
settings-daemon.c \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession/Makefile.in new/lxsession-0.4.3/lxsession/Makefile.in
--- old/lxsession-0.4.2/lxsession/Makefile.in 2010-03-07 16:11:24.000000000 +0100
+++ new/lxsession-0.4.3/lxsession/Makefile.in 2010-03-18 17:34:32.000000000 +0100
@@ -48,7 +48,7 @@
PROGRAMS = $(bin_PROGRAMS)
am__objects_1 =
am_lxsession_OBJECTS = lxsession-lxsession.$(OBJEXT) \
- lxsession-autostart.$(OBJEXT) lxsession-xevent.$(OBJEXT) \
+ lxsession-xdg-autostart.$(OBJEXT) lxsession-xevent.$(OBJEXT) \
lxsession-settings-daemon.$(OBJEXT) \
lxsession-xsettings-common.$(OBJEXT) \
lxsession-xsettings-manager.$(OBJEXT) \
@@ -200,8 +200,8 @@
lxsession_SOURCES = \
lxsession.c \
lxsession.h \
- autostart.c \
- autostart.h \
+ xdg-autostart.c \
+ xdg-autostart.h \
xevent.c \
xevent.h \
settings-daemon.c \
@@ -295,9 +295,9 @@
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxsession-autostart.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxsession-lxsession.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxsession-settings-daemon.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxsession-xdg-autostart.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxsession-xevent.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxsession-xsettings-common.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxsession-xsettings-manager.Po@am__quote@
@@ -331,19 +331,19 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -c -o lxsession-lxsession.obj `if test -f 'lxsession.c'; then $(CYGPATH_W) 'lxsession.c'; else $(CYGPATH_W) '$(srcdir)/lxsession.c'; fi`
-lxsession-autostart.o: autostart.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -MT lxsession-autostart.o -MD -MP -MF $(DEPDIR)/lxsession-autostart.Tpo -c -o lxsession-autostart.o `test -f 'autostart.c' || echo '$(srcdir)/'`autostart.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/lxsession-autostart.Tpo $(DEPDIR)/lxsession-autostart.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='autostart.c' object='lxsession-autostart.o' libtool=no @AMDEPBACKSLASH@
+lxsession-xdg-autostart.o: xdg-autostart.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -MT lxsession-xdg-autostart.o -MD -MP -MF $(DEPDIR)/lxsession-xdg-autostart.Tpo -c -o lxsession-xdg-autostart.o `test -f 'xdg-autostart.c' || echo '$(srcdir)/'`xdg-autostart.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/lxsession-xdg-autostart.Tpo $(DEPDIR)/lxsession-xdg-autostart.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xdg-autostart.c' object='lxsession-xdg-autostart.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -c -o lxsession-autostart.o `test -f 'autostart.c' || echo '$(srcdir)/'`autostart.c
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -c -o lxsession-xdg-autostart.o `test -f 'xdg-autostart.c' || echo '$(srcdir)/'`xdg-autostart.c
-lxsession-autostart.obj: autostart.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -MT lxsession-autostart.obj -MD -MP -MF $(DEPDIR)/lxsession-autostart.Tpo -c -o lxsession-autostart.obj `if test -f 'autostart.c'; then $(CYGPATH_W) 'autostart.c'; else $(CYGPATH_W) '$(srcdir)/autostart.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/lxsession-autostart.Tpo $(DEPDIR)/lxsession-autostart.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='autostart.c' object='lxsession-autostart.obj' libtool=no @AMDEPBACKSLASH@
+lxsession-xdg-autostart.obj: xdg-autostart.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -MT lxsession-xdg-autostart.obj -MD -MP -MF $(DEPDIR)/lxsession-xdg-autostart.Tpo -c -o lxsession-xdg-autostart.obj `if test -f 'xdg-autostart.c'; then $(CYGPATH_W) 'xdg-autostart.c'; else $(CYGPATH_W) '$(srcdir)/xdg-autostart.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/lxsession-xdg-autostart.Tpo $(DEPDIR)/lxsession-xdg-autostart.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xdg-autostart.c' object='lxsession-xdg-autostart.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -c -o lxsession-autostart.obj `if test -f 'autostart.c'; then $(CYGPATH_W) 'autostart.c'; else $(CYGPATH_W) '$(srcdir)/autostart.c'; fi`
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -c -o lxsession-xdg-autostart.obj `if test -f 'xdg-autostart.c'; then $(CYGPATH_W) 'xdg-autostart.c'; else $(CYGPATH_W) '$(srcdir)/xdg-autostart.c'; fi`
lxsession-xevent.o: xevent.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lxsession_CFLAGS) $(CFLAGS) -MT lxsession-xevent.o -MD -MP -MF $(DEPDIR)/lxsession-xevent.Tpo -c -o lxsession-xevent.o `test -f 'xevent.c' || echo '$(srcdir)/'`xevent.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession/autostart.c new/lxsession-0.4.3/lxsession/autostart.c
--- old/lxsession-0.4.2/lxsession/autostart.c 2010-02-16 19:21:39.000000000 +0100
+++ new/lxsession-0.4.3/lxsession/autostart.c 1970-01-01 01:00:00.000000000 +0100
@@ -1,304 +0,0 @@
-/*
- * autostart.c - Handle autostart spec of freedesktop.org
- *
- * Copyright 2008 PCMan <pcman.tw(a)gmail.com>
- *
- * This program 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.
- *
- * 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 General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-#include <glib.h>
-#include <stdio.h>
-#include <string.h>
-
-static const char DesktopEntry[] = "Desktop Entry";
-extern const char* de_name; /* defined in lxsession.c */
-
-#if 0
-/*
-* Parse Exec command line of app desktop file, and translate
-* it into a real command which can be passed to g_spawn_command_line_async().
-* file_list is a null-terminated file list containing full
-* paths of the files passed to app.
-* returned char* should be freed when no longer needed.
-*/
-static char* translate_app_exec_to_command_line( VFSAppDesktop* app,
- GList* file_list )
-{
- const char* pexec = vfs_app_desktop_get_exec( app );
- char* file;
- GList* l;
- gchar *tmp;
- GString* cmd = g_string_new("");
- gboolean add_files = FALSE;
-
- for( ; *pexec; ++pexec )
- {
- if( *pexec == '%' )
- {
- ++pexec;
- switch( *pexec )
- {
- case 'U':
- for( l = file_list; l; l = l->next )
- {
- tmp = g_filename_to_uri( (char*)l->data, NULL, NULL );
- file = g_shell_quote( tmp );
- g_free( tmp );
- g_string_append( cmd, file );
- g_string_append_c( cmd, ' ' );
- g_free( file );
- }
- add_files = TRUE;
- break;
- case 'u':
- if( file_list && file_list->data )
- {
- file = (char*)file_list->data;
- tmp = g_filename_to_uri( file, NULL, NULL );
- file = g_shell_quote( tmp );
- g_free( tmp );
- g_string_append( cmd, file );
- g_free( file );
- add_files = TRUE;
- }
- break;
- case 'F':
- case 'N':
- for( l = file_list; l; l = l->next )
- {
- file = (char*)l->data;
- tmp = g_shell_quote( file );
- g_string_append( cmd, tmp );
- g_string_append_c( cmd, ' ' );
- g_free( tmp );
- }
- add_files = TRUE;
- break;
- case 'f':
- case 'n':
- if( file_list && file_list->data )
- {
- file = (char*)file_list->data;
- tmp = g_shell_quote( file );
- g_string_append( cmd, tmp );
- g_free( tmp );
- add_files = TRUE;
- }
- break;
- case 'D':
- for( l = file_list; l; l = l->next )
- {
- tmp = g_path_get_dirname( (char*)l->data );
- file = g_shell_quote( tmp );
- g_free( tmp );
- g_string_append( cmd, file );
- g_string_append_c( cmd, ' ' );
- g_free( file );
- }
- add_files = TRUE;
- break;
- case 'd':
- if( file_list && file_list->data )
- {
- tmp = g_path_get_dirname( (char*)file_list->data );
- file = g_shell_quote( tmp );
- g_free( tmp );
- g_string_append( cmd, file );
- g_free( tmp );
- add_files = TRUE;
- }
- break;
- case 'c':
- g_string_append( cmd, vfs_app_desktop_get_disp_name( app ) );
- break;
- case 'i':
- /* Add icon name */
- if( vfs_app_desktop_get_icon_name( app ) )
- {
- g_string_append( cmd, "--icon " );
- g_string_append( cmd, vfs_app_desktop_get_icon_name( app ) );
- }
- break;
- case 'k':
- /* Location of the desktop file */
- break;
- case 'v':
- /* Device name */
- break;
- case '%':
- g_string_append_c ( cmd, '%' );
- break;
- case '\0':
- goto _finish;
- break;
- }
- }
- else /* not % escaped part */
- {
- g_string_append_c ( cmd, *pexec );
- }
- }
-_finish:
- if( ! add_files )
- {
- g_string_append_c ( cmd, ' ' );
- for( l = file_list; l; l = l->next )
- {
- file = (char*)l->data;
- tmp = g_shell_quote( file );
- g_string_append( cmd, tmp );
- g_string_append_c( cmd, ' ' );
- g_free( tmp );
- }
- }
-
- return g_string_free( cmd, FALSE );
-}
-#endif
-
-static void launch_autostart_file( const char* desktop_id, const char* desktop_file, GKeyFile* kf )
-{
- if( g_key_file_load_from_file( kf, desktop_file, 0, NULL ) )
- {
- char* exec;
- char** only_show_in, **not_show_in;
- gsize n;
-
- if( g_key_file_get_boolean( kf, DesktopEntry, "Hidden", NULL ) )
- return;
-
- /* check if this desktop entry is desktop-specific */
- only_show_in = g_key_file_get_string_list( kf, DesktopEntry, "OnlyShowIn", &n, NULL );
- if( only_show_in )
- {
- /* The format of this list is like: OnlyShowIn=GNOME;XFCE */
- int i = 0;
- for( i = 0; i < n; ++i )
- {
- /* Only start this program if we are in the "OnlyShowIn" list */
- if( 0 == strcmp( de_name, only_show_in[ i ] ) )
- break;
- }
- if( i >= n ) /* our session name is not found in the list */
- {
- g_strfreev( only_show_in );
- return; /* read next desktop file */
- }
- g_strfreev( only_show_in );
- }
- else /* OnlyShowIn and NotShowIn cannot be set at the same time. */
- {
- /* check if this desktop entry is not allowed in our session */
- not_show_in = g_key_file_get_string_list( kf, DesktopEntry, "NotShowIn", &n, NULL );
- if( not_show_in )
- {
- /* The format of this list is like: NotShowIn=KDE;IceWM */
- int i = 0;
- for( i = 0; i < n; ++i )
- {
- /* Only start this program if we are in the "OnlyShowIn" list */
- if( 0 == strcmp( de_name, not_show_in[ i ] ) )
- break;
- }
- if( i < n ) /* our session name is found in the "NotShowIn" list */
- {
- g_strfreev( not_show_in );
- return; /* read next desktop file */
- }
- g_strfreev( not_show_in );
- }
- }
-
- exec = g_key_file_get_string( kf, DesktopEntry, "TryExec", NULL );
- if( G_UNLIKELY(exec) ) /* If we are asked to tryexec first */
- {
- if( ! g_path_is_absolute( exec ) )
- {
- char* full = g_find_program_in_path( exec );
- g_free( exec );
- exec = full;
- }
- /* If we cannot match the TryExec key with an installed executable program */
- if( ! g_file_test( exec, G_FILE_TEST_IS_EXECUTABLE ) )
- {
- g_free( exec );
- return; /* bypass this desktop file, and read next */
- }
- g_free( exec );
- }
-
- /* get the real command line */
- exec = g_key_file_get_string( kf, DesktopEntry, "Exec", NULL );
- if( G_LIKELY(exec) )
- {
- /* according to the spec, the Exec command line should be translated
- * with some rules, but that's normally for file managers who needs to
- * pass selected file as arguments. The probability we need this is
- * very low, so just omit it.
- */
-
- /* FIXME: Exec key should be handled correctly */
-
- /* launch the program */
- if( g_spawn_command_line_async( exec, NULL ) )
- {
- }
- }
- }
-}
-
-static void get_autostart_files_in_dir( GHashTable* hash, const char* de_name, const char* base_dir )
-{
- char* dir_path = g_build_filename( base_dir, "autostart", NULL );
- GDir* dir = g_dir_open( dir_path, 0, NULL );
-
- if( dir )
- {
- char *path;
- const char *name;
-
- while( (name = g_dir_read_name( dir )) && g_str_has_suffix( name, ".desktop" ) )
- {
- path = g_build_filename( dir_path, name, NULL );
- g_hash_table_replace( hash, g_strdup(name), path );
- }
- g_dir_close( dir );
- }
- g_free( dir_path );
-}
-
-void handle_autostart( const char* de_name )
-{
- const char* const *dirs = g_get_system_config_dirs();
- const char* const *dir;
- GHashTable* hash = g_hash_table_new_full( g_str_hash, g_str_equal, g_free, g_free );
-
- /* get system-wide autostart files */
- for( dir = dirs; *dir; ++dir )
- get_autostart_files_in_dir( hash, de_name, *dir );
-
- /* get user-specific autostart files */
- get_autostart_files_in_dir( hash, de_name, g_get_user_config_dir() );
-
- if( g_hash_table_size( hash ) > 0 )
- {
- GKeyFile* kf = g_key_file_new();
- g_hash_table_foreach( hash, (GHFunc)launch_autostart_file, kf );
- g_key_file_free( kf );
- }
-
- g_hash_table_destroy( hash );
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession/autostart.h new/lxsession-0.4.3/lxsession/autostart.h
--- old/lxsession-0.4.2/lxsession/autostart.h 2010-02-16 19:21:39.000000000 +0100
+++ new/lxsession-0.4.3/lxsession/autostart.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-/*
- * autostart.h - Handle autostart spec of freedesktop.org
- *
- * Copyright 2008 PCMan <pcman.tw(a)gmail.com>
- *
- * This program 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.
- *
- * 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 General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-#ifndef _AUTOSTART_H_
-#define _AUTOSTART_H_
-
-void handle_autostart( const char* session_name );
-
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession/lxsession.c new/lxsession-0.4.3/lxsession/lxsession.c
--- old/lxsession-0.4.2/lxsession/lxsession.c 2010-02-22 08:07:54.000000000 +0100
+++ new/lxsession-0.4.3/lxsession/lxsession.c 2010-03-09 21:41:37.000000000 +0100
@@ -33,10 +33,12 @@
#include <string.h>
#include <stdlib.h>
+#include <wordexp.h> /* for shell expansion */
+
#include "lxsession.h"
#include "xevent.h"
#include "settings-daemon.h"
-#include "autostart.h"
+#include "xdg-autostart.h"
static gboolean no_settings = FALSE; /* disable settings daemon */
@@ -57,8 +59,7 @@
const char *session_name = NULL;
const char* de_name = NULL;
-static GPid run_app( const char* cmd );
-static void run_guarded_app( const char* cmd );
+static GPid run_app( const char* cmd, gboolean guarded );
static void start_session();
static void sig_term_handler ( int sig )
@@ -93,7 +94,7 @@
const gchar* const *dir;
GKeyFile* kf = g_key_file_new();
char* filename;
- gboolean ret;
+ gboolean ret;
/* load user-specific session config */
filename = g_build_filename( g_get_user_config_dir(), prog_name, session_name, config_filename, NULL );
@@ -121,42 +122,34 @@
return kf;
}
-/* Returns pid if succesful, returns -1 if errors happen. */
-GPid run_app( const char* cmd )
-{
- char** argv;
- int argc;
- GPid pid = -1;
- if( g_shell_parse_argv( cmd, &argc, &argv, NULL ) )
- {
- g_spawn_async( NULL, argv, NULL,
- G_SPAWN_DO_NOT_REAP_CHILD|
- G_SPAWN_SEARCH_PATH,
- NULL, NULL, &pid, NULL );
- }
- g_strfreev( argv );
- return pid;
-}
-
static void on_child_exit( GPid pid, gint status, gchar* cmd )
{
int sig = WTERMSIG( status );
/* if the term signal is not SIGTERM or SIGKILL, this might be a crash! */
if( sig && sig != SIGTERM && sig != SIGKILL )
- {
- run_guarded_app( cmd );
- }
+ run_app( cmd, TRUE );
}
-void run_guarded_app( const char* cmd )
+/* Returns pid if succesful, returns -1 if errors happen. */
+GPid run_app( const char* cmd, gboolean guarded )
{
- GPid pid = run_app( cmd );
- if( pid > 0 )
+ GPid pid = -1;
+ wordexp_t we;
+ GSpawnFlags flags = guarded ? G_SPAWN_DO_NOT_REAP_CHILD|G_SPAWN_SEARCH_PATH : G_SPAWN_SEARCH_PATH;
+
+ if( wordexp(cmd, &we, 0) == 0)
+ {
+ g_spawn_async( NULL, we.we_wordv, NULL, flags, NULL, NULL, &pid, NULL );
+ wordfree(&we);
+ }
+
+ if(guarded && pid > 0)
{
g_child_watch_add_full( G_PRIORITY_DEFAULT_IDLE, pid,
(GChildWatchFunc)on_child_exit,
g_strdup( cmd ), (GDestroyNotify)g_free );
}
+ return pid;
}
static void load_default_apps( const char* filename )
@@ -173,18 +166,16 @@
len = strlen ( buf );
if( buf[ len - 1 ] == '\n' ) /* remove the '\n' at the end of line */
{
- buf[ len ] = '\0';
--len;
+ buf[ len ] = '\0';
}
switch(buf[0])
{
case '@': /* if the app should be restarted on crash */
- run_guarded_app( buf + 1 );
- break;
- case '#': /* skip comments */
+ run_app( buf + 1, TRUE );
break;
default: /* just run the program */
- g_spawn_command_line_async( buf, NULL );
+ run_app( buf, FALSE );
}
}
fclose( file );
@@ -192,7 +183,7 @@
}
/*
- * system wide default config is /etc/xdg/lxsession/SESSION_NAME/config
+ * system wide default config is /etc/xdg/lxsession/SESSION_NAME/desktop.conf
* system wide default apps are listed in /etc/xdg/lxsession/SESSION_NAME/autostart
*/
void start_session()
@@ -205,7 +196,7 @@
/* run window manager first */
if( G_LIKELY( window_manager ) )
- run_guarded_app( window_manager );
+ run_app( window_manager, TRUE );
/* load system-wide default apps */
for( dir = dirs; *dir; ++dir )
@@ -220,7 +211,7 @@
g_free( filename );
/* Support autostart spec of freedesktop.org */
- handle_autostart( session_name );
+ xdg_autostart( session_name );
}
static void parse_options(int argc, char** argv)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession/xdg-autostart.c new/lxsession-0.4.3/lxsession/xdg-autostart.c
--- old/lxsession-0.4.2/lxsession/xdg-autostart.c 1970-01-01 01:00:00.000000000 +0100
+++ new/lxsession-0.4.3/lxsession/xdg-autostart.c 2010-03-09 21:41:37.000000000 +0100
@@ -0,0 +1,310 @@
+/*
+ * autostart.c - Handle autostart spec of freedesktop.org
+ *
+ * Copyright 2008 PCMan <pcman.tw(a)gmail.com>
+ *
+ * This program 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.
+ *
+ * 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 General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "xdg-autostart.h"
+
+#include <glib.h>
+#include <stdio.h>
+#include <string.h>
+
+static const char DesktopEntry[] = "Desktop Entry";
+extern const char* de_name; /* defined in lxsession.c */
+
+#if 0
+/*
+* Parse Exec command line of app desktop file, and translate
+* it into a real command which can be passed to g_spawn_command_line_async().
+* file_list is a null-terminated file list containing full
+* paths of the files passed to app.
+* returned char* should be freed when no longer needed.
+*/
+static char* translate_app_exec_to_command_line( VFSAppDesktop* app,
+ GList* file_list )
+{
+ const char* pexec = vfs_app_desktop_get_exec( app );
+ char* file;
+ GList* l;
+ gchar *tmp;
+ GString* cmd = g_string_new("");
+ gboolean add_files = FALSE;
+
+ for( ; *pexec; ++pexec )
+ {
+ if( *pexec == '%' )
+ {
+ ++pexec;
+ switch( *pexec )
+ {
+ case 'U':
+ for( l = file_list; l; l = l->next )
+ {
+ tmp = g_filename_to_uri( (char*)l->data, NULL, NULL );
+ file = g_shell_quote( tmp );
+ g_free( tmp );
+ g_string_append( cmd, file );
+ g_string_append_c( cmd, ' ' );
+ g_free( file );
+ }
+ add_files = TRUE;
+ break;
+ case 'u':
+ if( file_list && file_list->data )
+ {
+ file = (char*)file_list->data;
+ tmp = g_filename_to_uri( file, NULL, NULL );
+ file = g_shell_quote( tmp );
+ g_free( tmp );
+ g_string_append( cmd, file );
+ g_free( file );
+ add_files = TRUE;
+ }
+ break;
+ case 'F':
+ case 'N':
+ for( l = file_list; l; l = l->next )
+ {
+ file = (char*)l->data;
+ tmp = g_shell_quote( file );
+ g_string_append( cmd, tmp );
+ g_string_append_c( cmd, ' ' );
+ g_free( tmp );
+ }
+ add_files = TRUE;
+ break;
+ case 'f':
+ case 'n':
+ if( file_list && file_list->data )
+ {
+ file = (char*)file_list->data;
+ tmp = g_shell_quote( file );
+ g_string_append( cmd, tmp );
+ g_free( tmp );
+ add_files = TRUE;
+ }
+ break;
+ case 'D':
+ for( l = file_list; l; l = l->next )
+ {
+ tmp = g_path_get_dirname( (char*)l->data );
+ file = g_shell_quote( tmp );
+ g_free( tmp );
+ g_string_append( cmd, file );
+ g_string_append_c( cmd, ' ' );
+ g_free( file );
+ }
+ add_files = TRUE;
+ break;
+ case 'd':
+ if( file_list && file_list->data )
+ {
+ tmp = g_path_get_dirname( (char*)file_list->data );
+ file = g_shell_quote( tmp );
+ g_free( tmp );
+ g_string_append( cmd, file );
+ g_free( tmp );
+ add_files = TRUE;
+ }
+ break;
+ case 'c':
+ g_string_append( cmd, vfs_app_desktop_get_disp_name( app ) );
+ break;
+ case 'i':
+ /* Add icon name */
+ if( vfs_app_desktop_get_icon_name( app ) )
+ {
+ g_string_append( cmd, "--icon " );
+ g_string_append( cmd, vfs_app_desktop_get_icon_name( app ) );
+ }
+ break;
+ case 'k':
+ /* Location of the desktop file */
+ break;
+ case 'v':
+ /* Device name */
+ break;
+ case '%':
+ g_string_append_c ( cmd, '%' );
+ break;
+ case '\0':
+ goto _finish;
+ break;
+ }
+ }
+ else /* not % escaped part */
+ {
+ g_string_append_c ( cmd, *pexec );
+ }
+ }
+_finish:
+ if( ! add_files )
+ {
+ g_string_append_c ( cmd, ' ' );
+ for( l = file_list; l; l = l->next )
+ {
+ file = (char*)l->data;
+ tmp = g_shell_quote( file );
+ g_string_append( cmd, tmp );
+ g_string_append_c( cmd, ' ' );
+ g_free( tmp );
+ }
+ }
+
+ return g_string_free( cmd, FALSE );
+}
+#endif
+
+static void launch_autostart_file( const char* desktop_id, const char* desktop_file, GKeyFile* kf )
+{
+ if( g_key_file_load_from_file( kf, desktop_file, 0, NULL ) )
+ {
+ char* exec;
+ char** only_show_in, **not_show_in;
+ gsize n;
+
+ if( g_key_file_get_boolean( kf, DesktopEntry, "Hidden", NULL ) )
+ return;
+
+ /* check if this desktop entry is desktop-specific */
+ only_show_in = g_key_file_get_string_list( kf, DesktopEntry, "OnlyShowIn", &n, NULL );
+ if( only_show_in )
+ {
+ /* The format of this list is like: OnlyShowIn=GNOME;XFCE */
+ int i = 0;
+ for( i = 0; i < n; ++i )
+ {
+ /* Only start this program if we are in the "OnlyShowIn" list */
+ if( 0 == strcmp( de_name, only_show_in[ i ] ) )
+ break;
+ }
+ if( i >= n ) /* our session name is not found in the list */
+ {
+ g_strfreev( only_show_in );
+ return; /* read next desktop file */
+ }
+ g_strfreev( only_show_in );
+ }
+ else /* OnlyShowIn and NotShowIn cannot be set at the same time. */
+ {
+ /* check if this desktop entry is not allowed in our session */
+ not_show_in = g_key_file_get_string_list( kf, DesktopEntry, "NotShowIn", &n, NULL );
+ if( not_show_in )
+ {
+ /* The format of this list is like: NotShowIn=KDE;IceWM */
+ int i = 0;
+ for( i = 0; i < n; ++i )
+ {
+ /* Only start this program if we are in the "OnlyShowIn" list */
+ if( 0 == strcmp( de_name, not_show_in[ i ] ) )
+ break;
+ }
+ if( i < n ) /* our session name is found in the "NotShowIn" list */
+ {
+ g_strfreev( not_show_in );
+ return; /* read next desktop file */
+ }
+ g_strfreev( not_show_in );
+ }
+ }
+
+ exec = g_key_file_get_string( kf, DesktopEntry, "TryExec", NULL );
+ if( G_UNLIKELY(exec) ) /* If we are asked to tryexec first */
+ {
+ if( ! g_path_is_absolute( exec ) )
+ {
+ char* full = g_find_program_in_path( exec );
+ g_free( exec );
+ exec = full;
+ }
+ /* If we cannot match the TryExec key with an installed executable program */
+ if( ! g_file_test( exec, G_FILE_TEST_IS_EXECUTABLE ) )
+ {
+ g_free( exec );
+ return; /* bypass this desktop file, and read next */
+ }
+ g_free( exec );
+ }
+
+ /* get the real command line */
+ exec = g_key_file_get_string( kf, DesktopEntry, "Exec", NULL );
+ if( G_LIKELY(exec) )
+ {
+ /* according to the spec, the Exec command line should be translated
+ * with some rules, but that's normally for file managers who needs to
+ * pass selected file as arguments. The probability we need this is
+ * very low, so just omit it.
+ */
+
+ /* FIXME: Exec key should be handled correctly */
+
+ /* launch the program */
+ if( g_spawn_command_line_async( exec, NULL ) )
+ {
+ }
+ }
+ }
+}
+
+static void get_autostart_files_in_dir( GHashTable* hash, const char* de_name, const char* base_dir )
+{
+ char* dir_path = g_build_filename( base_dir, "autostart", NULL );
+ GDir* dir = g_dir_open( dir_path, 0, NULL );
+
+ if( dir )
+ {
+ char *path;
+ const char *name;
+
+ while( (name = g_dir_read_name( dir )) && g_str_has_suffix( name, ".desktop" ) )
+ {
+ path = g_build_filename( dir_path, name, NULL );
+ g_hash_table_replace( hash, g_strdup(name), path );
+ }
+ g_dir_close( dir );
+ }
+ g_free( dir_path );
+}
+
+void xdg_autostart( const char* de_name )
+{
+ const char* const *dirs = g_get_system_config_dirs();
+ const char* const *dir;
+ GHashTable* hash = g_hash_table_new_full( g_str_hash, g_str_equal, g_free, g_free );
+
+ /* get system-wide autostart files */
+ for( dir = dirs; *dir; ++dir )
+ get_autostart_files_in_dir( hash, de_name, *dir );
+
+ /* get user-specific autostart files */
+ get_autostart_files_in_dir( hash, de_name, g_get_user_config_dir() );
+
+ if( g_hash_table_size( hash ) > 0 )
+ {
+ GKeyFile* kf = g_key_file_new();
+ g_hash_table_foreach( hash, (GHFunc)launch_autostart_file, kf );
+ g_key_file_free( kf );
+ }
+
+ g_hash_table_destroy( hash );
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession/xdg-autostart.h new/lxsession-0.4.3/lxsession/xdg-autostart.h
--- old/lxsession-0.4.2/lxsession/xdg-autostart.h 1970-01-01 01:00:00.000000000 +0100
+++ new/lxsession-0.4.3/lxsession/xdg-autostart.h 2010-03-09 21:41:37.000000000 +0100
@@ -0,0 +1,27 @@
+/*
+ * autostart.h - Handle autostart spec of freedesktop.org
+ *
+ * Copyright 2008 PCMan <pcman.tw(a)gmail.com>
+ *
+ * This program 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.
+ *
+ * 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 General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+#ifndef _XDG_AUTOSTART_H_
+#define _XDG_AUTOSTART_H_
+
+void xdg_autostart( const char* session_name );
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession-logout/dbus-interface.c new/lxsession-0.4.3/lxsession-logout/dbus-interface.c
--- old/lxsession-0.4.2/lxsession-logout/dbus-interface.c 2010-02-22 13:08:17.000000000 +0100
+++ new/lxsession-0.4.3/lxsession-logout/dbus-interface.c 2010-03-18 17:28:49.000000000 +0100
@@ -18,6 +18,7 @@
#include <config.h>
#include <glib.h>
+#include <string.h>
#ifdef HAVE_DBUS
#include <dbus/dbus.h>
#endif
@@ -73,6 +74,22 @@
return reply;
}
+/* Send a message with no reply expected. */
+static gboolean dbus_send_message_without_reply(DBusMessage * message)
+{
+ /* Get a connection handle. */
+ DBusConnection * connection = dbus_connect();
+ if (connection == NULL)
+ return FALSE;
+
+ /* Send the message in the blind. */
+ dbus_bool_t status = dbus_connection_send(connection, message, NULL);
+ dbus_message_unref(message);
+ if ( ! status)
+ g_warning(G_STRLOC ": DBUS: dbus_connection_send failed\n");
+ return status;
+}
+
/* Read a result for a method that returns void. */
static gboolean dbus_read_result_void(DBusMessage * reply)
{
@@ -225,6 +242,7 @@
{
#ifdef HAVE_DBUS
return dbus_read_result_void(dbus_send_message(dbus_DeviceKit_formulate_command(command)));
+// return dbus_send_message_without_reply(dbus_DeviceKit_formulate_command(command)); It seems they don't send a reply; to be checked out
#else
return FALSE;
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/lxsession-logout/lxsession-logout.c new/lxsession-0.4.3/lxsession-logout/lxsession-logout.c
--- old/lxsession-0.4.2/lxsession-logout/lxsession-logout.c 2010-02-21 19:19:21.000000000 +0100
+++ new/lxsession-0.4.3/lxsession-logout/lxsession-logout.c 2010-03-18 17:21:34.000000000 +0100
@@ -17,6 +17,8 @@
*/
#include <config.h>
+#include <locale.h>
+#include <stdlib.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <glib/gi18n.h>
@@ -184,7 +186,7 @@
return pixbuf;
}
-/* Handler for "expose_event" on drawing areas. */
+/* Handler for "expose_event" on background. */
gboolean expose_event(GtkWidget * widget, GdkEventExpose * event, GdkPixbuf * pixbuf)
{
if (pixbuf != NULL)
@@ -201,7 +203,7 @@
GDK_RGB_DITHER_NORMAL, /* Dither type */
0, 0); /* Dither offsets */
}
- return TRUE;
+ return FALSE;
}
/* Main program. */
@@ -237,7 +239,7 @@
{
g_print( _("Error: %s\n"), _("LXSession is not running."));
return 1;
- }
+ }
/* Initialize capabilities of the ConsoleKit mechanism. */
if (dbus_ConsoleKit_CanStop())
@@ -266,22 +268,22 @@
#endif
/* Initialize capabilities of the HAL mechanism. */
- if (dbus_HAL_CanShutdown())
+ if (!handler_context.shutdown_available && dbus_HAL_CanShutdown())
{
handler_context.shutdown_available = TRUE;
handler_context.shutdown_HAL = TRUE;
}
- if (dbus_HAL_CanReboot())
+ if (!handler_context.reboot_available && dbus_HAL_CanReboot())
{
handler_context.reboot_available = TRUE;
handler_context.reboot_HAL = TRUE;
}
- if (dbus_HAL_CanSuspend())
+ if (!handler_context.suspend_available && dbus_HAL_CanSuspend())
{
handler_context.suspend_available = TRUE;
handler_context.suspend_HAL = TRUE;
}
- if (dbus_HAL_CanHibernate())
+ if (!handler_context.hibernate_available && dbus_HAL_CanHibernate())
{
handler_context.hibernate_available = TRUE;
handler_context.hibernate_HAL = TRUE;
@@ -309,36 +311,23 @@
GtkWidget * window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_decorated(GTK_WINDOW(window), FALSE);
gtk_window_fullscreen(GTK_WINDOW(window));
+ GdkScreen* screen = gtk_widget_get_screen(window);
+ gtk_window_set_default_size(GTK_WINDOW(window), gdk_screen_get_width(screen), gdk_screen_get_height(screen));
+ gtk_widget_set_app_paintable(window, TRUE);
+ g_signal_connect(G_OBJECT(window), "expose_event", G_CALLBACK(expose_event), pixbuf);
+
+ /* Toplevel container */
+ GtkWidget* alignment = gtk_alignment_new(0.5, 0.5, 0.0, 0.0);
+ gtk_container_add(GTK_CONTAINER(window), alignment);
+
+ GtkWidget* center_area = gtk_event_box_new();
+ gtk_container_add(GTK_CONTAINER(alignment), center_area);
+
+ GtkWidget* center_vbox = gtk_vbox_new(FALSE, 6);
+ gtk_container_set_border_width(GTK_CONTAINER(center_vbox), 12);
+ gtk_container_add(GTK_CONTAINER(center_area), center_vbox);
- /* Create a vertical box as the child of the toplevel window. */
- GtkWidget * outermost = gtk_vbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(window), outermost);
-
- /* Create a drawing area as the child of the toplevel window.
- * This drawing area is as wide as the screen and as tall as the area above the user controls. */
- GtkWidget * top_drawing_area = gtk_drawing_area_new();
- gtk_box_pack_start(GTK_BOX(outermost), top_drawing_area, TRUE, TRUE, 0);
- g_signal_connect(G_OBJECT(top_drawing_area), "expose_event", G_CALLBACK(expose_event), pixbuf);
-
- /* Create a horizontal box as the child of the outermost box. */
- GtkWidget * horizontal = gtk_hbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(outermost), horizontal, FALSE, FALSE, 0);
-
- /* Create a drawing area as the child of the toplevel window.
- * This drawing area is as wide as the screen and as tall as the area below the user controls. */
- GtkWidget * bottom_drawing_area = gtk_drawing_area_new();
- gtk_box_pack_start(GTK_BOX(outermost), bottom_drawing_area, TRUE, TRUE, 0);
- g_signal_connect(G_OBJECT(bottom_drawing_area), "expose_event", G_CALLBACK(expose_event), pixbuf);
-
- /* Create a drawing area as the child of the horizontal box.
- * This drawing area is as wide as the area left of the user controls and as tall as the user controls. */
- GtkWidget * left_drawing_area = gtk_drawing_area_new();
- gtk_box_pack_start(GTK_BOX(horizontal), left_drawing_area, TRUE, TRUE, 0);
- g_signal_connect(G_OBJECT(left_drawing_area), "expose_event", G_CALLBACK(expose_event), pixbuf);
-
- /* Create a vertical box as the child of the horizontal box. This will contain the user controls. */
- GtkWidget * controls = gtk_vbox_new(FALSE, 0);
- gtk_container_set_border_width(GTK_CONTAINER(controls), 6);
+ GtkWidget* controls = gtk_vbox_new(FALSE, 6);
/* If specified, apply a user-specified banner image. */
if (banner_path != NULL)
@@ -353,7 +342,7 @@
{
/* Create a horizontal box to contain the image and the controls. */
GtkWidget * box = gtk_hbox_new(FALSE, 2);
- gtk_box_pack_start(GTK_BOX(horizontal), box, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(center_vbox), box, FALSE, FALSE, 0);
/* Pack the image and a separator. */
gtk_misc_set_alignment(GTK_MISC(banner_image), 0.5, 0.0);
@@ -375,18 +364,18 @@
case GTK_POS_TOP:
gtk_box_pack_start(GTK_BOX(controls), banner_image, FALSE, FALSE, 2);
gtk_box_pack_start(GTK_BOX(controls), gtk_hseparator_new(), FALSE, FALSE, 2);
- gtk_box_pack_start(GTK_BOX(horizontal), controls, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(center_vbox), controls, FALSE, FALSE, 0);
break;
case GTK_POS_BOTTOM:
gtk_box_pack_end(GTK_BOX(controls), banner_image, FALSE, FALSE, 2);
gtk_box_pack_end(GTK_BOX(controls), gtk_hseparator_new(), FALSE, FALSE, 2);
- gtk_box_pack_start(GTK_BOX(horizontal), controls, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(center_vbox), controls, FALSE, FALSE, 0);
break;
}
}
else
- gtk_box_pack_start(GTK_BOX(horizontal), controls, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(center_vbox), controls, FALSE, FALSE, 0);
/* Create the label. */
GtkWidget * label = gtk_label_new("");
@@ -400,13 +389,6 @@
gtk_label_set_markup(GTK_LABEL(label), prompt);
gtk_box_pack_start(GTK_BOX(controls), label, FALSE, FALSE, 4);
- /* Create the Logout button. */
- GtkWidget * logout_button = gtk_button_new_with_mnemonic(_("_Logout"));
- GtkWidget * image = gtk_image_new_from_icon_name("system-log-out", GTK_ICON_SIZE_BUTTON);
- gtk_button_set_image(GTK_BUTTON(logout_button), image);
- g_signal_connect(G_OBJECT(logout_button), "clicked", G_CALLBACK(logout_clicked), &handler_context);
- gtk_box_pack_start(GTK_BOX(controls), logout_button, FALSE, FALSE, 4);
-
/* Create the Shutdown button. */
if (handler_context.shutdown_available)
{
@@ -457,17 +439,18 @@
gtk_box_pack_start(GTK_BOX(controls), switch_user_button, FALSE, FALSE, 4);
}
+ /* Create the Logout button. */
+ GtkWidget * logout_button = gtk_button_new_with_mnemonic(_("_Logout"));
+ GtkWidget * image = gtk_image_new_from_icon_name("system-log-out", GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image(GTK_BUTTON(logout_button), image);
+ g_signal_connect(G_OBJECT(logout_button), "clicked", G_CALLBACK(logout_clicked), &handler_context);
+ gtk_box_pack_start(GTK_BOX(controls), logout_button, FALSE, FALSE, 4);
+
/* Create the Cancel button. */
GtkWidget * cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
g_signal_connect(G_OBJECT(cancel_button), "clicked", G_CALLBACK(cancel_clicked), NULL);
gtk_box_pack_start(GTK_BOX(controls), cancel_button, FALSE, FALSE, 4);
- /* Create a drawing area as the child of the horizontal box.
- * This drawing area is as wide as the area right of the user controls and as tall as the user controls. */
- GtkWidget * right_drawing_area = gtk_drawing_area_new();
- gtk_box_pack_start(GTK_BOX(horizontal), right_drawing_area, TRUE, TRUE, 0);
- g_signal_connect(G_OBJECT(right_drawing_area), "expose_event", G_CALLBACK(expose_event), pixbuf);
-
/* Show everything. */
gtk_widget_show_all(window);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxsession-0.4.2/po/it.po new/lxsession-0.4.3/po/it.po
--- old/lxsession-0.4.2/po/it.po 2010-02-16 19:21:39.000000000 +0100
+++ new/lxsession-0.4.3/po/it.po 2010-03-09 21:41:37.000000000 +0100
@@ -8,13 +8,14 @@
"Project-Id-Version: lxsession-lite 0.3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-04-15 19:49+0200\n"
-"PO-Revision-Date: 2009-01-06 11:55+0100\n"
-"Last-Translator: Fabio Barone <phonky(a)gmx.net>\n"
+"PO-Revision-Date: 2010-03-09 00:29+0100\n"
+"Last-Translator: Andrea Florio <andrea(a)opensuse.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Italian\n"
"X-Poedit-Country: ITALY\n"
+"Language-Team: \n"
#: ../lxsession-logout/main.c:63
msgid "Custom message to show on the dialog"
@@ -36,7 +37,8 @@
msgid "Position of the banner"
msgstr "Posizione dell'immagine"
-#: ../lxsession-logout/main.c:354 ../lxsession-logout/main.c:365
+#: ../lxsession-logout/main.c:354
+#: ../lxsession-logout/main.c:365
#, c-format
msgid "Error: %s\n"
msgstr "Errore: %s\n"
@@ -53,7 +55,7 @@
#: ../lxsession-logout/main.c:428
#, c-format
msgid "<b><big>Logout %s session?</big></b>"
-msgstr "<b><big>%s chiudere la sessione? </big></b>"
+msgstr "<b><big>Chiudere la sessione %s? </big></b>"
#: ../lxsession-logout/main.c:438
msgid "Sh_utdown"
@@ -81,3 +83,4 @@
#~ msgid "Save current session"
#~ msgstr "Salvare la sessione attuale"
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package limal-ca-mgm for openSUSE:Factory
checked in at Sun Mar 21 11:54:17 CET 2010.
--------
--- limal-ca-mgm/limal-ca-mgm.changes 2009-09-10 12:20:34.000000000 +0200
+++ /mounts/work_src_done/STABLE/limal-ca-mgm/limal-ca-mgm.changes 2010-03-19 16:55:28.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Mar 19 16:39:57 CET 2010 - mc(a)suse.de
+
+- version 1.6.3
+- fix testcase
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
limal-ca-mgm-1.6.2.tar.bz2
New:
----
limal-ca-mgm-1.6.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ limal-ca-mgm.spec ++++++
--- /var/tmp/diff_new_pack.BEX4fT/_old 2010-03-21 11:54:07.000000000 +0100
+++ /var/tmp/diff_new_pack.BEX4fT/_new 2010-03-21 11:54:07.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package limal-ca-mgm (Version 1.6.2)
+# spec file for package limal-ca-mgm (Version 1.6.3)
#
-# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,21 +19,26 @@
Name: limal-ca-mgm
-Version: 1.6.2
+Version: 1.6.3
Release: 1
-License: GPL v2 or later
+License: GPLv2+
Group: Development/Libraries/C and C++
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: limal-ca-mgm-1.6.2.tar.bz2
+
+Source0: limal-ca-mgm-1.6.3.tar.bz2
+
Prefix: /usr
%define swiglibdir /usr/share/limal/typemaps
+
BuildRequires: curl gcc-c++ limal-devel limal-devtools limal-perl perl-gettext sgml-skel
+
%if 0%{?suse_version} >= 1030
BuildRequires: libopenssl-devel openssl
Requires: openssl
%else
BuildRequires: openssl-devel
%endif
+
%if 0%{?fedora_version}
BuildRequires: openssl-perl
Requires: openssl-perl
@@ -41,6 +46,7 @@
%if 0%{?fedora_version} >= 7
BuildRequires: perl-ExtUtils-Embed
%endif
+
Summary: LiMaL--CA Management Library
%description
@@ -49,9 +55,10 @@
%package devel
Requires: limal-ca-mgm = %version
Requires: limal-devel
+
Group: Development/Libraries/C and C++
Requires: openssl-devel
-License: GPL v2 or later
+License: GPLv2+
Summary: LiMaL - CA Management Library Development Files
%if 0%{?suse_version} >= 1030
Requires: libopenssl-devel
@@ -70,7 +77,7 @@
Requires: perl = %{perl_version}
%endif
Group: Development/Libraries/Perl
-License: GPL v2 or later
+License: GPLv2+
Summary: LiMaL - CA Management Library Perl Bindings
%description perl
@@ -81,14 +88,16 @@
%prep
-%setup -n limal-ca-mgm-1.6.2
+%setup -n limal-ca-mgm-1.6.3
%build
%{prefix}/bin/limaltool limalautoconf
%{prefix}/bin/limaltool limalautomake
autoreconf --force --install --verbose
+
export CFLAGS="$RPM_OPT_FLAGS -DNDEBUG"
export CXXFLAGS="$RPM_OPT_FLAGS -DNDEBUG"
+
%{?suse_update_config:%{suse_update_config -f}}
# workaround for fedora gettext check on x86_64
sed -i -e 's/return (int) gettext/return (long) gettext/g' ./configure
@@ -103,6 +112,7 @@
# required for perl test cases
export LD_LIBRARY_PATH="$RPM_BUILD_ROOT/usr/lib/limal"
make check DESTDIR="$RPM_BUILD_ROOT"
+
mkdir -p $RPM_BUILD_ROOT/var/lib/
install -d -m 0700 $RPM_BUILD_ROOT/var/lib/CAM
install -d -m 0755 $RPM_BUILD_ROOT/var/lib/CAM/.cas/
@@ -143,5 +153,4 @@
%dir %{perl_vendorarch}/auto/LIMAL/CaMgm/
%{perl_vendorarch}/auto/LIMAL/CaMgm/*
%{perl_vendorarch}/LIMAL/*.pm
-
%changelog
++++++ limal-ca-mgm-1.6.2.tar.bz2 -> limal-ca-mgm-1.6.3.tar.bz2 ++++++
++++ 6496 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/limal-ca-mgm-1.6.2/VERSION new/limal-ca-mgm-1.6.3/VERSION
--- old/limal-ca-mgm-1.6.2/VERSION 2009-09-10 12:16:15.000000000 +0200
+++ new/limal-ca-mgm-1.6.3/VERSION 2010-03-19 16:39:49.000000000 +0100
@@ -1 +1 @@
-1.6.2
+1.6.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/limal-ca-mgm-1.6.2/configure.in new/limal-ca-mgm-1.6.3/configure.in
--- old/limal-ca-mgm-1.6.2/configure.in 2009-09-10 12:16:46.000000000 +0200
+++ new/limal-ca-mgm-1.6.3/configure.in 2010-03-19 16:40:14.000000000 +0100
@@ -3,7 +3,7 @@
dnl -- This file is generated by limalautoconf - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(limal-ca-mgm, 1.6.2, http://www.suse.de/feedback, limal-ca-mgm)
+AC_INIT(limal-ca-mgm, 1.6.3, http://www.suse.de/feedback, limal-ca-mgm)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -17,7 +17,7 @@
AM_INIT_AUTOMAKE(tar-ustar) dnl searches for some needed programs
dnl Important LiMaL variables
-VERSION="1.6.2"
+VERSION="1.6.3"
RPMNAME="limal-ca-mgm"
RPMARCH=""
RPMLIB="ca-mgm"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/limal-ca-mgm-1.6.2/missing new/limal-ca-mgm-1.6.3/missing
--- old/limal-ca-mgm-1.6.2/missing 2009-09-10 12:16:58.000000000 +0200
+++ new/limal-ca-mgm-1.6.3/missing 2010-03-19 16:40:30.000000000 +0100
@@ -1,10 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2006-05-10.23
+scriptversion=2009-04-28.21; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -18,9 +18,7 @@
# 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., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -89,6 +87,9 @@
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
Send bug reports to <bug-automake(a)gnu.org>."
exit $?
;;
@@ -106,15 +107,22 @@
esac
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
-# the program).
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
case $1 in
- lex|yacc)
+ lex*|yacc*)
# Not GNU programs, they don't have --version.
;;
- tar)
+ tar*)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
@@ -138,7 +146,7 @@
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
-case $1 in
+case $program in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
@@ -148,7 +156,7 @@
touch aclocal.m4
;;
- autoconf)
+ autoconf*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
@@ -157,7 +165,7 @@
touch configure
;;
- autoheader)
+ autoheader*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
@@ -187,7 +195,7 @@
while read f; do touch "$f"; done
;;
- autom4te)
+ autom4te*)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
@@ -210,7 +218,7 @@
fi
;;
- bison|yacc)
+ bison*|yacc*)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
@@ -240,7 +248,7 @@
fi
;;
- lex|flex)
+ lex*|flex*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
@@ -263,7 +271,7 @@
fi
;;
- help2man)
+ help2man*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
@@ -277,11 +285,11 @@
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
- exit 1
+ exit $?
fi
;;
- makeinfo)
+ makeinfo*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -310,7 +318,7 @@
touch $file
;;
- tar)
+ tar*)
shift
# We have already tried tar in the generic part.
@@ -363,5 +371,6 @@
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/limal-ca-mgm-1.6.2/testsuite/TestRepos/.cas/c527c2de.r0 new/limal-ca-mgm-1.6.3/testsuite/TestRepos/.cas/c527c2de.r0
--- old/limal-ca-mgm-1.6.2/testsuite/TestRepos/.cas/c527c2de.r0 2009-09-10 12:17:18.000000000 +0200
+++ new/limal-ca-mgm-1.6.3/testsuite/TestRepos/.cas/c527c2de.r0 2010-03-19 16:41:04.000000000 +0100
@@ -1,7 +1,7 @@
-----BEGIN X509 CRL-----
MIIC+TCCAeECAQEwDQYJKoZIhvcNAQEFBQAwQzELMAkGA1UEBhMCREUxFzAVBgNV
BAMTDlN0YXRpYyBUZXN0IENBMRswGQYJKoZIhvcNAQkBFgxzdXNlQHN1c2UuZGUX
-DTA3MDkyODE0MTIwMloXDTA3MDkyOTE0MTIwMlowgfAwEgIBAxcNMDUwODE4MTQx
+DTA5MTExMzExNDA0MVoXDTA5MTExNDExNDA0MVowgfAwEgIBAxcNMDUwODE4MTQx
MzIzWjAyAgEEFw0wNTA4MTgxNDEzMjVaMB4wCgYDVR0VBAMKAQYwEAYDVR0XBAkG
ByqGSM44AgIwOgIBBRcNMDUwODE4MTQxMzI2WjAmMAoGA1UdFQQDCgEBMBgGA1Ud
GAQRGA8yMDA1MDgxODE1NTY0NlowOgIBBhcNMDUwODE4MTQxMzI4WjAmMAoGA1Ud
@@ -9,10 +9,10 @@
ODE4WjAaMAoGA1UdFQQDCgEGMAwGA1UdFwQFBgMuFSugdzB1MHMGA1UdIwRsMGqA
FDIAwASkKojCPsrVvdhM01KIIH87oUekRTBDMQswCQYDVQQGEwJERTEXMBUGA1UE
AxMOU3RhdGljIFRlc3QgQ0ExGzAZBgkqhkiG9w0BCQEWDHN1c2VAc3VzZS5kZYIJ
-AI7xzphhj2SdMA0GCSqGSIb3DQEBBQUAA4IBAQCsHzxUgsZXcDucG1hknMq2spUr
-Arg9r8w+o7wzAWr9jxq74JeNpn8atXNeQbe4VVksL5cKiT3csoS+5mOdKEM5yOm8
-Pb/zDwz5a4MNnDawDLk4nh+PZFHZcpdSxWBee2Ag7oY68CwbOy9QbfLeozRrHgjU
-csL8gCvNdIaLtARy6CWC7aJ3tQ9sjcW16jtMcXYB+4ugkfkH2NWzW4290akIM7a+
-pB8OXOrte03iQjk7cG+hYqGmvfqMBdiKUO8ir3ja5zReHx/uWn6Mg2c9Msdy9wgY
-u9lueuQe7x82ZLaQUJQ0AAE3IRX2jYexVoTa4ZDyN0M4H8wXNyItVX+XlzmC
+AI7xzphhj2SdMA0GCSqGSIb3DQEBBQUAA4IBAQAbxhH7mpiJ43ft8EXT6fi1AUrl
+yvy5orMem1VcrOdYsUF4Aa6T472yklui9hIejnE5b7EgOpjSa92Ajqp6C2DT6TkL
+mLb87nueGINQUeN/WcEOAv4C5W+kKchxj+mmcMZDH1DFBdt2JfF/D/owgxMg4EaF
+pNO9xr/b32Iwc3t4c5tXHdlTRUaLDbGHxiOaMe+szG0mHdo5Fnjo6FZRosfLZs3F
+iFPr0lHkpfpP0JS9E1QR9Kwkcnbm0cRuv2nXJRs28uSaB761sCBm3OcJlI+rAetb
++ZRc3qYMfe9emRGyOmQTCSehPOvh/P958K5UNzwd15eiyoz2k58+Et0GP9Kh
-----END X509 CRL-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/limal-ca-mgm-1.6.2/testsuite/TestRepos/.cas/crl_Test_CA2.pem new/limal-ca-mgm-1.6.3/testsuite/TestRepos/.cas/crl_Test_CA2.pem
--- old/limal-ca-mgm-1.6.2/testsuite/TestRepos/.cas/crl_Test_CA2.pem 2009-09-10 12:17:18.000000000 +0200
+++ new/limal-ca-mgm-1.6.3/testsuite/TestRepos/.cas/crl_Test_CA2.pem 2010-03-19 16:41:04.000000000 +0100
@@ -1,7 +1,7 @@
-----BEGIN X509 CRL-----
MIIC+TCCAeECAQEwDQYJKoZIhvcNAQEFBQAwQzELMAkGA1UEBhMCREUxFzAVBgNV
BAMTDlN0YXRpYyBUZXN0IENBMRswGQYJKoZIhvcNAQkBFgxzdXNlQHN1c2UuZGUX
-DTA3MDkyODE0MTIwMloXDTA3MDkyOTE0MTIwMlowgfAwEgIBAxcNMDUwODE4MTQx
+DTA5MTExMzExNDA0MVoXDTA5MTExNDExNDA0MVowgfAwEgIBAxcNMDUwODE4MTQx
MzIzWjAyAgEEFw0wNTA4MTgxNDEzMjVaMB4wCgYDVR0VBAMKAQYwEAYDVR0XBAkG
ByqGSM44AgIwOgIBBRcNMDUwODE4MTQxMzI2WjAmMAoGA1UdFQQDCgEBMBgGA1Ud
GAQRGA8yMDA1MDgxODE1NTY0NlowOgIBBhcNMDUwODE4MTQxMzI4WjAmMAoGA1Ud
@@ -9,10 +9,10 @@
ODE4WjAaMAoGA1UdFQQDCgEGMAwGA1UdFwQFBgMuFSugdzB1MHMGA1UdIwRsMGqA
FDIAwASkKojCPsrVvdhM01KIIH87oUekRTBDMQswCQYDVQQGEwJERTEXMBUGA1UE
AxMOU3RhdGljIFRlc3QgQ0ExGzAZBgkqhkiG9w0BCQEWDHN1c2VAc3VzZS5kZYIJ
-AI7xzphhj2SdMA0GCSqGSIb3DQEBBQUAA4IBAQCsHzxUgsZXcDucG1hknMq2spUr
-Arg9r8w+o7wzAWr9jxq74JeNpn8atXNeQbe4VVksL5cKiT3csoS+5mOdKEM5yOm8
-Pb/zDwz5a4MNnDawDLk4nh+PZFHZcpdSxWBee2Ag7oY68CwbOy9QbfLeozRrHgjU
-csL8gCvNdIaLtARy6CWC7aJ3tQ9sjcW16jtMcXYB+4ugkfkH2NWzW4290akIM7a+
-pB8OXOrte03iQjk7cG+hYqGmvfqMBdiKUO8ir3ja5zReHx/uWn6Mg2c9Msdy9wgY
-u9lueuQe7x82ZLaQUJQ0AAE3IRX2jYexVoTa4ZDyN0M4H8wXNyItVX+XlzmC
+AI7xzphhj2SdMA0GCSqGSIb3DQEBBQUAA4IBAQAbxhH7mpiJ43ft8EXT6fi1AUrl
+yvy5orMem1VcrOdYsUF4Aa6T472yklui9hIejnE5b7EgOpjSa92Ajqp6C2DT6TkL
+mLb87nueGINQUeN/WcEOAv4C5W+kKchxj+mmcMZDH1DFBdt2JfF/D/owgxMg4EaF
+pNO9xr/b32Iwc3t4c5tXHdlTRUaLDbGHxiOaMe+szG0mHdo5Fnjo6FZRosfLZs3F
+iFPr0lHkpfpP0JS9E1QR9Kwkcnbm0cRuv2nXJRs28uSaB761sCBm3OcJlI+rAetb
++ZRc3qYMfe9emRGyOmQTCSehPOvh/P958K5UNzwd15eiyoz2k58+Et0GP9Kh
-----END X509 CRL-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/limal-ca-mgm-1.6.2/testsuite/perl-TypeTest.single new/limal-ca-mgm-1.6.3/testsuite/perl-TypeTest.single
--- old/limal-ca-mgm-1.6.2/testsuite/perl-TypeTest.single 2008-03-25 12:15:53.000000000 +0100
+++ new/limal-ca-mgm-1.6.3/testsuite/perl-TypeTest.single 2010-03-19 16:39:19.000000000 +0100
@@ -38,7 +38,7 @@
{
print $copy->iterator_value($it)."\t\t";
# swig before 1.3.34 didn't have the '_'
- if(Data::Dumper->Dump([$it]) =~ /_p_blocxx__ListT_?blocxx__Int32_t__iterator/)
+ if(ref($it) =~ /_p_blocxx__ListT_?blocxx__Int32_t__iterator/)
{
print "_p_blocxx__ListT_blocxx__Int32_t__iterator\n";
}
@@ -60,7 +60,7 @@
{
print $outList->iterator_value($it)."\t\t";
# swig before 1.3.34 didn't have the '_'
- if(Data::Dumper->Dump([$it]) =~ /_p_blocxx__ListT_?blocxx__String_t__iterator/)
+ if(ref($it) =~ /_p_blocxx__ListT_?blocxx__String_t__iterator/)
{
print "_p_blocxx__ListT_blocxx__String_t__iterator\n";
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libstorage for openSUSE:Factory
checked in at Sun Mar 21 11:53:55 CET 2010.
--------
--- libstorage/libstorage.changes 2010-03-16 15:41:02.000000000 +0100
+++ /mounts/work_src_done/STABLE/libstorage/libstorage.changes 2010-03-19 15:41:45.000000000 +0100
@@ -1,0 +2,16 @@
+Thu Mar 18 18:54:31 CET 2010 - fehr(a)suse.de
+
+- make update and detection of encrypted LVM VGs possible
+- 2.19.12
+
+-------------------------------------------------------------------
+Wed Mar 17 18:12:23 CET 2010 - aschnell(a)suse.de
+
+- improved commit messages for partitioned MDs
+
+-------------------------------------------------------------------
+Wed Mar 17 11:58:07 CET 2010 - fehr(a)suse.de
+
+- do no fsck after successful luksOpen, its unnecessary (bnc #588698)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
libstorage-2.19.11.tar.bz2
New:
----
libstorage-2.19.12.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libstorage.spec ++++++
--- /var/tmp/diff_new_pack.KB8aYi/_old 2010-03-21 11:53:14.000000000 +0100
+++ /var/tmp/diff_new_pack.KB8aYi/_new 2010-03-21 11:53:14.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package libstorage (Version 2.19.11)
+# spec file for package libstorage (Version 2.19.12)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,7 +19,7 @@
Name: libstorage
-Version: 2.19.11
+Version: 2.19.12
Release: 1
License: GPL
Group: System/Libraries
++++++ libstorage-2.19.11.tar.bz2 -> libstorage-2.19.12.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/VERSION new/libstorage-2.19.12/VERSION
--- old/libstorage-2.19.11/VERSION 2010-03-16 15:36:14.000000000 +0100
+++ new/libstorage-2.19.12/VERSION 2010-03-19 15:35:26.000000000 +0100
@@ -1 +1 @@
-2.19.11
+2.19.12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/bindings/python/libstorage.py new/libstorage-2.19.12/bindings/python/libstorage.py
--- old/libstorage-2.19.11/bindings/python/libstorage.py 2010-03-16 14:58:18.000000000 +0100
+++ new/libstorage-2.19.12/bindings/python/libstorage.py 2010-03-19 10:23:42.000000000 +0100
@@ -1472,6 +1472,7 @@
def checkDeviceMounted(*args): return _libstorage.StorageInterface_checkDeviceMounted(*args)
def umountDevice(*args): return _libstorage.StorageInterface_umountDevice(*args)
def mountDevice(*args): return _libstorage.StorageInterface_mountDevice(*args)
+ def activateEncryption(*args): return _libstorage.StorageInterface_activateEncryption(*args)
def mountDeviceOpts(*args): return _libstorage.StorageInterface_mountDeviceOpts(*args)
def mountDeviceRo(*args): return _libstorage.StorageInterface_mountDeviceRo(*args)
def checkDmMapsTo(*args): return _libstorage.StorageInterface_checkDmMapsTo(*args)
@@ -1481,6 +1482,7 @@
def activateHld(*args): return _libstorage.StorageInterface_activateHld(*args)
def activateMultipath(*args): return _libstorage.StorageInterface_activateMultipath(*args)
def rescanEverything(*args): return _libstorage.StorageInterface_rescanEverything(*args)
+ def rescanCryptedObjects(*args): return _libstorage.StorageInterface_rescanCryptedObjects(*args)
def dumpObjectList(*args): return _libstorage.StorageInterface_dumpObjectList(*args)
def dumpCommitInfos(*args): return _libstorage.StorageInterface_dumpCommitInfos(*args)
def getContVolInfo(*args): return _libstorage.StorageInterface_getContVolInfo(*args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/libstorage.spec.in new/libstorage-2.19.12/libstorage.spec.in
--- old/libstorage-2.19.11/libstorage.spec.in 2010-02-26 17:17:21.000000000 +0100
+++ new/libstorage-2.19.12/libstorage.spec.in 2010-03-17 12:08:57.000000000 +0100
@@ -90,7 +90,7 @@
%package devel
Requires: libstorage = %version
-Requires: gcc-c++ libstdc++-devel boost-devel blocxx-devel
+Requires: gcc-c++ libstdc++-devel boost-devel blocxx-devel libxml2-devel
Summary: Header files and documentation for libstorage
Group: Development/Languages/C and C++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Device.h new/libstorage-2.19.12/storage/Device.h
--- old/libstorage-2.19.11/storage/Device.h 2010-03-10 16:33:44.000000000 +0100
+++ new/libstorage-2.19.12/storage/Device.h 2010-03-17 12:16:08.000000000 +0100
@@ -76,6 +76,10 @@
virtual string udevPath() const;
virtual list<string> udevId() const;
+ // name for device in /proc/partitions
+ virtual string procName() const { return ""; }
+
+ // full path for device in /sys/block
virtual string sysfsPath() const { return ""; }
void clearUsedBy() { uby.clear(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Disk.cc new/libstorage-2.19.12/storage/Disk.cc
--- old/libstorage-2.19.11/storage/Disk.cc 2010-03-16 11:42:52.000000000 +0100
+++ new/libstorage-2.19.12/storage/Disk.cc 2010-03-17 18:33:56.000000000 +0100
@@ -79,7 +79,7 @@
getMajorMinor();
unsigned long long sz = size_k;
Partition *p = new Partition( *this, num, sz, 0, cyl, PRIMARY );
- if (systeminfo.getProcParts().getSize(p->device(), sz) && sz > 0)
+ if (systeminfo.getProcParts().getSize(p->procName(), sz) && sz > 0)
{
p->setSize( sz );
}
@@ -178,7 +178,7 @@
string
Disk::sysfsPath() const
{
- return SYSFSDIR "/" + boost::replace_all_copy(nm, "/", "!");
+ return SYSFSDIR "/" + boost::replace_all_copy(procName(), "/", "!");
}
@@ -834,7 +834,7 @@
Partition *p = new Partition( *this, pnr, s,
c_start, c_size, type,
id, boot );
- if (parts.getSize(p->device(), s))
+ if (parts.getSize(p->procName(), s))
{
if( s>0 && p->type() != EXTENDED )
p->setSize( s );
@@ -1861,27 +1861,28 @@
}
-Text Disk::setDiskLabelText( bool doing ) const
+ Text
+ Disk::setDiskLabelText(bool doing) const
{
Text txt;
- string d = dev;
if( doing )
{
// displayed text during action, %1$s is replaced by disk name (e.g. /dev/hda),
// %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Setting disk label of disk %1$s to %2$s"),
- d.c_str(), label.c_str() );
+ txt = sformat(_("Setting disk label of %1$s to %2$s"), dev.c_str(),
+ boost::to_upper_copy(label).c_str());
}
else
{
// displayed text before action, %1$s is replaced by disk name (e.g. /dev/hda),
// %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Set disk label of disk %1$s to %2$s"),
- d.c_str(), label.c_str() );
+ txt = sformat(_("Set disk label of %1$s to %2$s"), dev.c_str(),
+ boost::to_upper_copy(label).c_str());
}
- return( txt );
+ return txt;
}
+
int Disk::doCreateLabel()
{
y2mil("label:" << label);
@@ -2138,7 +2139,7 @@
ret = true;
if( !dmp_slave && p->type() != EXTENDED )
{
- if (!parts.getSize(p->device(), s) || s == 0)
+ if (!parts.getSize(p->procName(), s) || s == 0)
{
y2err("device " << p->device() << " not found in /proc/partitions");
ret = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Disk.h new/libstorage-2.19.12/storage/Disk.h
--- old/libstorage-2.19.11/storage/Disk.h 2010-03-11 17:56:45.000000000 +0100
+++ new/libstorage-2.19.12/storage/Disk.h 2010-03-17 15:24:04.000000000 +0100
@@ -81,7 +81,10 @@
virtual list<string> udevId() const { return udev_id; }
void setSlave( bool val=true ) { dmp_slave=val; }
void setNumMinor( unsigned long val ) { range=val; }
+
+ virtual string procName() const { return nm; }
virtual string sysfsPath() const;
+
unsigned numPartitions() const;
bool isDasd() const { return( nm.find("dasd")==0 ); }
bool isIScsi() const { return iscsi; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Dm.cc new/libstorage-2.19.12/storage/Dm.cc
--- old/libstorage-2.19.11/storage/Dm.cc 2010-03-10 16:33:44.000000000 +0100
+++ new/libstorage-2.19.12/storage/Dm.cc 2010-03-19 10:23:09.000000000 +0100
@@ -470,7 +470,17 @@
}
else
{
- c.execute(DMSETUPBIN " remove_all");
+ c.execute(DMSETUPBIN " info -c -o name,subsystem");
+ SystemCmd rm;
+ for( unsigned i=0; i<c.numLines(); i++ )
+ {
+ if( extractNthWord(1, c.getLine(i)) != "CRYPT" )
+ {
+ string cmd = DMSETUPBIN " remove ";
+ cmd += extractNthWord(0, c.getLine(i));
+ rm.execute( cmd );
+ }
+ }
}
active = val;
}
@@ -494,7 +504,7 @@
string
Dm::sysfsPath() const
{
- return SYSFSDIR "/" "dm-" + decString(mnr);
+ return SYSFSDIR "/" + procName();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Dm.h new/libstorage-2.19.12/storage/Dm.h
--- old/libstorage-2.19.11/storage/Dm.h 2010-03-10 16:33:44.000000000 +0100
+++ new/libstorage-2.19.12/storage/Dm.h 2010-03-17 15:24:04.000000000 +0100
@@ -63,7 +63,10 @@
unsigned setStripes( unsigned long val ) { return stripe=val; }
unsigned long long stripeSize() const { return stripe_size; }
void setStripeSize( unsigned long long val ) { stripe_size=val; }
+
+ virtual string procName() const { return "dm-" + decString(mnr); }
virtual string sysfsPath() const;
+
void updateMajorMinor();
virtual list<string> udevId() const { return Volume::udevId(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/DmPartCo.cc new/libstorage-2.19.12/storage/DmPartCo.cc
--- old/libstorage-2.19.11/storage/DmPartCo.cc 2010-03-11 18:13:54.000000000 +0100
+++ new/libstorage-2.19.12/storage/DmPartCo.cc 2010-03-17 18:28:16.000000000 +0100
@@ -63,7 +63,7 @@
string
DmPartCo::sysfsPath() const
{
- return SYSFSDIR "/" "dm-" + decString(mnr);
+ return SYSFSDIR "/" + procName();
}
@@ -928,23 +928,7 @@
Text DmPartCo::setDiskLabelText( bool doing ) const
{
- Text txt;
- string d = dev;
- if( doing )
- {
- // displayed text during action, %1$s is replaced by name (e.g. pdc_igeeeadj),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Setting disk label of %1$s to %2$s"),
- d.c_str(), labelName().c_str() );
- }
- else
- {
- // displayed text before action, %1$s is replaced by name (e.g. pdc_igeeeadj),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Set disk label of %1$s to %2$s"),
- d.c_str(), labelName().c_str() );
- }
- return( txt );
+ return disk->setDiskLabelText(doing);
}
Text DmPartCo::removeText( bool doing ) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/DmPartCo.h new/libstorage-2.19.12/storage/DmPartCo.h
--- old/libstorage-2.19.11/storage/DmPartCo.h 2010-03-11 18:12:45.000000000 +0100
+++ new/libstorage-2.19.12/storage/DmPartCo.h 2010-03-17 18:52:00.000000000 +0100
@@ -60,6 +60,7 @@
friend std::ostream& operator<< (std::ostream&, const DmPartCo& );
void setUdevData(const list<string>& id);
+ virtual string procName() const { return "dm-" + decString(mnr); }
virtual string sysfsPath() const;
int createPartition( storage::PartitionType type, long unsigned start,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/DmmultipathCo.cc new/libstorage-2.19.12/storage/DmmultipathCo.cc
--- old/libstorage-2.19.11/storage/DmmultipathCo.cc 2010-03-08 23:18:37.000000000 +0100
+++ new/libstorage-2.19.12/storage/DmmultipathCo.cc 2010-03-17 18:30:00.000000000 +0100
@@ -261,27 +261,6 @@
}
-Text DmmultipathCo::setDiskLabelText( bool doing ) const
- {
- Text txt;
- if( doing )
- {
- // displayed text during action, %1$s is replaced by multipath name (e.g. 3600508b400105f590000900000300000),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Setting disk label of multipath disk %1$s to %2$s"),
- name().c_str(), labelName().c_str());
- }
- else
- {
- // displayed text before action, %1$s is replaced by multipath name (e.g. 3600508b400105f590000900000300000),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Set disk label of multipath disk %1$s to %2$s"),
- name().c_str(), labelName().c_str());
- }
- return( txt );
- }
-
-
void DmmultipathCo::getInfo( DmmultipathCoInfo& tinfo ) const
{
DmPartCo::getInfo( info );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/DmmultipathCo.h new/libstorage-2.19.12/storage/DmmultipathCo.h
--- old/libstorage-2.19.11/storage/DmmultipathCo.h 2010-03-08 23:18:37.000000000 +0100
+++ new/libstorage-2.19.12/storage/DmmultipathCo.h 2010-03-17 18:28:58.000000000 +0100
@@ -136,7 +136,6 @@
void addMultipath( const string& name );
void addPv(const Pv& pv);
void newP( DmPart*& dm, unsigned num, Partition* p );
- Text setDiskLabelText( bool doing ) const;
static string undevName( const string& name );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/DmraidCo.cc new/libstorage-2.19.12/storage/DmraidCo.cc
--- old/libstorage-2.19.11/storage/DmraidCo.cc 2010-03-08 23:18:37.000000000 +0100
+++ new/libstorage-2.19.12/storage/DmraidCo.cc 2010-03-17 18:52:00.000000000 +0100
@@ -248,26 +248,6 @@
}
-Text DmraidCo::setDiskLabelText( bool doing ) const
- {
- Text txt;
- if( doing )
- {
- // displayed text during action, %1$s is replaced by raid name (e.g. pdc_igeeeadj),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Setting disk label of raid %1$s to %2$s"),
- name().c_str(), labelName().c_str());
- }
- else
- {
- // displayed text before action, %1$s is replaced by raid name (e.g. pdc_igeeeadj),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Set disk label of raid %1$s to %2$s"),
- name().c_str(), labelName().c_str());
- }
- return( txt );
- }
-
int
DmraidCo::doRemove()
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/DmraidCo.h new/libstorage-2.19.12/storage/DmraidCo.h
--- old/libstorage-2.19.11/storage/DmraidCo.h 2010-03-08 23:18:37.000000000 +0100
+++ new/libstorage-2.19.12/storage/DmraidCo.h 2010-03-17 18:30:57.000000000 +0100
@@ -136,8 +136,8 @@
void addRaid( const string& name );
void addPv(const Pv& pv);
void newP( DmPart*& dm, unsigned num, Partition* p );
+
Text removeText( bool doing ) const;
- Text setDiskLabelText( bool doing ) const;
static string undevName( const string& name );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/LvmVg.cc new/libstorage-2.19.12/storage/LvmVg.cc
--- old/libstorage-2.19.11/storage/LvmVg.cc 2010-03-09 17:09:22.000000000 +0100
+++ new/libstorage-2.19.12/storage/LvmVg.cc 2010-03-17 15:28:14.000000000 +0100
@@ -1030,11 +1030,11 @@
y2mil( "Container::getCommitActions:" << l );
if( deleted() )
{
- l.push_back(commitAction(DECREASE, staticType(), removeVgText(false), this, true));
+ l.push_back(commitAction(DECREASE, staticType(), removeText(false), this, true));
}
else if( created() )
{
- l.push_front(commitAction( INCREASE, staticType(), createVgText(false), this, true));
+ l.push_front(commitAction(INCREASE, staticType(), createText(false), this, true));
}
else
{
@@ -1042,18 +1042,18 @@
for( list<Pv>::const_iterator i=pv_add.begin(); i!=pv_add.end();
++i )
l.push_back(commitAction(INCREASE, staticType(),
- extendVgText(false, i->device), this, true));
+ extendText(false, i->device), this, true));
if( !pv_remove.empty() )
for( list<Pv>::const_iterator i=pv_remove.begin();
i!=pv_remove.end(); ++i )
l.push_back(commitAction(DECREASE, staticType(),
- reduceVgText(false, i->device), this, false ));
+ reduceText(false, i->device), this, false));
}
}
Text
-LvmVg::removeVgText( bool doing ) const
+LvmVg::removeText(bool doing) const
{
Text txt;
if( doing )
@@ -1070,7 +1070,7 @@
}
Text
-LvmVg::createVgText( bool doing ) const
+LvmVg::createText(bool doing) const
{
Text txt;
if( doing )
@@ -1091,7 +1091,7 @@
}
Text
-LvmVg::extendVgText( bool doing, const string& dev ) const
+LvmVg::extendText(bool doing, const string& dev) const
{
Text txt;
if( doing )
@@ -1113,7 +1113,7 @@
Text
-LvmVg::reduceVgText( bool doing, const string& dev ) const
+LvmVg::reduceText(bool doing, const string& dev) const
{
Text txt;
if( doing )
@@ -1196,7 +1196,7 @@
checkConsistency();
if( !silent )
{
- getStorage()->showInfoCb( createVgText(true) );
+ getStorage()->showInfoCb(createText(true));
}
string devices;
if( pv_add.size()+pv.size()-pv_remove.size()<=0 )
@@ -1254,7 +1254,7 @@
activate(true);
if( !silent )
{
- getStorage()->showInfoCb( removeVgText(true) );
+ getStorage()->showInfoCb(removeText(true));
}
checkConsistency();
string cmd = VGREMOVEBIN " " + quote(name());
@@ -1288,7 +1288,7 @@
checkConsistency();
if( !silent )
{
- getStorage()->showInfoCb(extendVgText(true, d->device));
+ getStorage()->showInfoCb(extendText(true, d->device));
}
ret = doCreatePv(*d);
if( ret==0 )
@@ -1337,7 +1337,7 @@
checkConsistency();
if( !silent )
{
- getStorage()->showInfoCb(reduceVgText(true, d->device));
+ getStorage()->showInfoCb(reduceText(true, d->device));
}
string cmd = VGREDUCEBIN " " + instSysString() + quote(name()) + " " + quote(d->realDevice());
SystemCmd c( cmd );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/LvmVg.h new/libstorage-2.19.12/storage/LvmVg.h
--- old/libstorage-2.19.11/storage/LvmVg.h 2010-03-08 23:23:34.000000000 +0100
+++ new/libstorage-2.19.12/storage/LvmVg.h 2010-03-17 15:28:18.000000000 +0100
@@ -141,10 +141,10 @@
virtual void print( std::ostream& s ) const { s << *this; }
virtual Container* getCopy() const { return( new LvmVg( *this ) ); }
- Text createVgText( bool doing ) const;
- Text removeVgText( bool doing ) const;
- Text extendVgText( bool doing, const string& dev ) const;
- Text reduceVgText( bool doing, const string& dev ) const;
+ Text createText(bool doing) const;
+ Text removeText(bool doing) const;
+ Text extendText(bool doing, const string& dev) const;
+ Text reduceText(bool doing, const string& dev) const;
int doCreateVg();
int doRemoveVg();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Md.cc new/libstorage-2.19.12/storage/Md.cc
--- old/libstorage-2.19.11/storage/Md.cc 2010-03-10 11:48:04.000000000 +0100
+++ new/libstorage-2.19.12/storage/Md.cc 2010-03-18 18:48:07.000000000 +0100
@@ -591,7 +591,7 @@
string
Md::sysfsPath() const
{
- return SYSFSDIR "/" "md" + decString(num);
+ return SYSFSDIR "/" + procName();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Md.h new/libstorage-2.19.12/storage/Md.h
--- old/libstorage-2.19.11/storage/Md.h 2010-03-10 11:38:06.000000000 +0100
+++ new/libstorage-2.19.12/storage/Md.h 2010-03-17 15:24:04.000000000 +0100
@@ -64,6 +64,7 @@
static bool matchRegex( const string& dev );
static unsigned mdMajor();
+ virtual string procName() const { return nm; }
virtual string sysfsPath() const;
static const string& pName(MdType t) { return md_names[t]; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/MdPart.cc new/libstorage-2.19.12/storage/MdPart.cc
--- old/libstorage-2.19.11/storage/MdPart.cc 2010-03-10 11:48:04.000000000 +0100
+++ new/libstorage-2.19.12/storage/MdPart.cc 2010-03-17 15:45:31.000000000 +0100
@@ -89,7 +89,7 @@
string
MdPart::sysfsPath() const
{
- return SYSFSDIR "/" + co()->name() + "/" + name();
+ return co()->sysfsPath() + "/" + procName();
}
@@ -119,12 +119,12 @@
void MdPart::updateSize( const ProcParts& pp )
{
- unsigned long long si = 0;
updateSize();
//In case of extended partition /proc/partition contains size 1.
if( p && p->type() != storage::EXTENDED )
{
- if( mjr>0 && pp.getSize( dev, si ))
+ unsigned long long si = 0;
+ if( mjr>0 && pp.getSize(procName(), si))
{
setSize( si );
}
@@ -164,12 +164,9 @@
MdPart::udevId() const
{
list<string> ret;
- for (list<string>::const_iterator i = alt_names.begin();
- i != alt_names.end(); i++)
- {
- if (i->find("/by-id/") != string::npos)
- ret.push_back(*i);
- }
+ const list<string> tmp = co()->udevId();
+ for (list<string>::const_iterator i = tmp.begin(); i != tmp.end(); ++i)
+ ret.push_back(udevAppendPart(*i, num));
return ret;
}
@@ -187,6 +184,14 @@
}
}
+
+ Text
+ MdPart::createText(bool doing) const
+ {
+ return p->createText(doing);
+ }
+
+
Text
MdPart::setTypeText(bool doing) const
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/MdPart.h new/libstorage-2.19.12/storage/MdPart.h
--- old/libstorage-2.19.11/storage/MdPart.h 2010-03-10 10:32:30.000000000 +0100
+++ new/libstorage-2.19.12/storage/MdPart.h 2010-03-17 18:52:00.000000000 +0100
@@ -60,6 +60,9 @@
virtual Text setTypeText(bool doing = true) const;
static bool notDeleted( const MdPart& l ) { return( !l.deleted() ); }
+ virtual Text createText(bool doing) const;
+
+ virtual string procName() const { return nm; }
virtual string sysfsPath() const;
protected:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/MdPartCo.cc new/libstorage-2.19.12/storage/MdPartCo.cc
--- old/libstorage-2.19.11/storage/MdPartCo.cc 2010-03-12 11:20:42.000000000 +0100
+++ new/libstorage-2.19.12/storage/MdPartCo.cc 2010-03-18 18:48:07.000000000 +0100
@@ -114,7 +114,7 @@
string
MdPartCo::sysfsPath() const
{
- return SYSFSDIR "/" + name();
+ return SYSFSDIR "/" + procName();
}
@@ -377,7 +377,7 @@
void
MdPartCo::init(SystemInfo& systeminfo)
{
- systeminfo.getProcParts().getSize(dev, size_k);
+ systeminfo.getProcParts().getSize(procName(), size_k);
y2mil("nm:" << nm << " size_k:" << size_k);
createDisk(systeminfo);
getVolumes(systeminfo.getProcParts());
@@ -1094,22 +1094,7 @@
Text
MdPartCo::setDiskLabelText(bool doing) const
{
- Text txt;
- if( doing )
- {
- // displayed text during action, %1$s is replaced by name (e.g. pdc_igeeeadj),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Setting disk label of %1$s to %2$s"),
- dev.c_str(), labelName().c_str() );
- }
- else
- {
- // displayed text before action, %1$s is replaced by name (e.g. pdc_igeeeadj),
- // %2$s is replaced by label name (e.g. msdos)
- txt = sformat( _("Set disk label of %1$s to %2$s"),
- dev.c_str(), labelName().c_str() );
- }
- return txt;
+ return disk->setDiskLabelText(doing);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/MdPartCo.h new/libstorage-2.19.12/storage/MdPartCo.h
--- old/libstorage-2.19.11/storage/MdPartCo.h 2010-03-11 18:10:30.000000000 +0100
+++ new/libstorage-2.19.12/storage/MdPartCo.h 2010-03-17 18:52:00.000000000 +0100
@@ -63,6 +63,7 @@
friend std::ostream& operator<< (std::ostream&, const MdPartCo& );
void setUdevData(const list<string>& id);
+ virtual string procName() const { return nm; }
virtual string sysfsPath() const;
void getMdPartCoState(MdPartCoStateInfo& info) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Partition.cc new/libstorage-2.19.12/storage/Partition.cc
--- old/libstorage-2.19.11/storage/Partition.cc 2010-03-10 11:33:59.000000000 +0100
+++ new/libstorage-2.19.12/storage/Partition.cc 2010-03-17 18:17:55.000000000 +0100
@@ -123,7 +123,7 @@
string
Partition::sysfsPath() const
{
- return disk()->sysfsPath() + "/" + boost::replace_all_copy(nm, "/", "!");
+ return disk()->sysfsPath() + "/" + boost::replace_all_copy(procName(), "/", "!");
}
@@ -388,108 +388,32 @@
return( txt );
}
-Text Partition::createText( bool doing ) const
- {
+
+Text
+Partition::createText(bool doing) const
+{
Text txt;
- string d = dev;
- if( doing )
- {
- // displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Creating partition %1$s"), d.c_str() );
- }
+ if (doing)
+ {
+ txt = Volume::createText(doing);
+ }
else
+ {
+ if (typ == EXTENDED)
{
- if( typ==EXTENDED )
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat( _("Create extended partition %1$s (%2$s)"),
- d.c_str(), sizeString().c_str() );
- }
- else if( mp=="swap" )
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat( _("Create swap partition %1$s (%2$s)"),
- d.c_str(), sizeString().c_str() );
- }
- else if( mp=="/" )
- {
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by size (e.g. 623.5 MB)
- // %3$s is replaced by file system type (e.g. reiserfs)
- txt = sformat( _("Create root partition %1$s (%2$s) with %3$s"),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str() );
- }
- else if (mp == getStorage()->bootMount())
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- // %3$s is replaced by file system type (e.g. reiserfs)
- txt = sformat( _("Create boot partition %1$s (%2$s) with %3$s"),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str() );
- }
- else if( !mp.empty() )
- {
- if( encryption==ENC_NONE )
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- // %3$s is replaced by file system type (e.g. reiserfs)
- // %4$s is replaced by mount point (e.g. /usr)
- txt = sformat( _("Create partition %1$s (%2$s) for %4$s with %3$s"),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str(),
- mp.c_str() );
- }
- else
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- // %3$s is replaced by file system type (e.g. reiserfs)
- // %4$s is replaced by mount point (e.g. /usr)
- txt = sformat( _("Create encrypted partition %1$s (%2$s) for %4$s with %3$s"),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str(),
- mp.c_str() );
- }
- }
- else if( idt != ID_SWAP && idt != ID_LINUX && idt<256 )
- {
- if (encryption == ENC_NONE)
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- // %3$s is replaced by hexadecimal number (e.g. 8E)
- txt = sformat(_("Create partition %1$s (%2$s) with id=%3$X"), d.c_str(),
- sizeString().c_str(), idt);
- }
- else
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- // %3$s is replaced by hexadecimal number (e.g. 8E)
- txt = sformat(_("Create encrypted partition %1$s (%2$s) with id=%3$X"), d.c_str(),
- sizeString().c_str(), idt);
- }
+ txt = sformat(_("Create extended partition %1$s (%2$s)"), dev.c_str(),
+ sizeString().c_str());
}
else
{
- if (encryption == ENC_NONE)
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat(_("Create partition %1$s (%2$s)"), d.c_str(), sizeString().c_str());
- }
- else
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- // %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat(_("Create encrypted partition %1$s (%2$s)"), d.c_str(),
- sizeString().c_str());
- }
+ txt = Volume::createText(doing);
}
- }
- return txt;
}
+ return txt;
+}
+
Text Partition::formatText( bool doing ) const
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Partition.h new/libstorage-2.19.12/storage/Partition.h
--- old/libstorage-2.19.11/storage/Partition.h 2010-03-10 15:47:49.000000000 +0100
+++ new/libstorage-2.19.12/storage/Partition.h 2010-03-17 15:24:04.000000000 +0100
@@ -59,7 +59,10 @@
const Region& region() const { return reg; }
virtual string udevPath() const;
virtual list<string> udevId() const;
+
+ virtual string procName() const { return nm; }
virtual string sysfsPath() const;
+
bool intersectArea( const Region& r, unsigned fuzz=0 ) const;
bool contains( const Region& r, unsigned fuzz=0 ) const;
unsigned OrigNr() const { return( orig_num ); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/ProcParts.cc new/libstorage-2.19.12/storage/ProcParts.cc
--- old/libstorage-2.19.11/storage/ProcParts.cc 2010-02-19 15:44:12.000000000 +0100
+++ new/libstorage-2.19.12/storage/ProcParts.cc 2010-03-17 12:08:57.000000000 +0100
@@ -64,18 +64,20 @@
return( findEntry(device)!=data.end() );
}
+
bool
ProcParts::getSize(const string& device, unsigned long long& sizeK) const
{
- bool ret = false;
const_iterator i = findEntry(device);
- if (i != data.end())
+ if (i == data.end())
{
- sizeK = i->second;
- ret = true;
+ y2err("dev:" << device << " not found");
+ return false;
}
- y2mil("dev:" << device << " ret:" << ret << " sizeK:" << (ret ? sizeK : 0));
- return ret;
+
+ sizeK = i->second;
+ y2mil("dev:" << device << " sizeK:" << sizeK);
+ return true;
}
@@ -88,11 +90,10 @@
return ret;
}
+
ProcParts::const_iterator
ProcParts::findEntry(const string& device) const
{
- if (device != normalizeDevice(device))
- y2err("unnormalize device " << device);
return( data.find(normalizeDevice(device)) );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Storage.cc new/libstorage-2.19.12/storage/Storage.cc
--- old/libstorage-2.19.11/storage/Storage.cc 2010-03-16 14:57:54.000000000 +0100
+++ new/libstorage-2.19.12/storage/Storage.cc 2010-03-19 10:23:09.000000000 +0100
@@ -445,6 +445,30 @@
detectObjects();
}
+bool Storage::rescanCryptedObjects()
+ {
+ bool ret = false;
+ LvmVg::activate(false);
+ LvmVg::activate(true);
+ const list<string> l = LvmVg::getVgs();
+ SystemInfo *si = NULL;
+ for( list<string>::const_iterator i=l.begin(); i!=l.end(); ++i )
+ {
+ if( findLvmVg( *i ) == lvgEnd() )
+ {
+ if( !si )
+ si = new SystemInfo;
+ LvmVg* v = new LvmVg(this, *i, "/dev/" + *i, *si);
+ addToList( v );
+ v->checkConsistency();
+ ret = true;
+ }
+ }
+ if( si )
+ delete si;
+ y2mil( "ret:" << ret );
+ return( ret );
+ }
string
Storage::bootMount() const
@@ -2765,13 +2789,14 @@
}
int
-Storage::verifyCryptPassword( const string& device, const string& pwd )
+Storage::verifyCryptPassword( const string& device, const string& pwd,
+ bool erase )
{
int ret = 0;
assertInit();
- y2mil("device:" << device << " l:" << pwd.length());
+ y2mil("device:" << device << " l:" << pwd.length() << " erase:" << erase );
#ifdef DEBUG_LOOP_CRYPT_PASSWORD
- y2mil("password:" << pwd);
+ y2mil("pwd:" << pwd);
#endif
VolIterator vol;
@@ -2784,7 +2809,8 @@
ret = vol->setCryptPwd( pwd );
if( ret==0 && vol->detectEncryption()==ENC_UNKNOWN )
ret = VOLUME_CRYPT_NOT_DETECTED;
- vol->clearCryptPwd();
+ if( erase || ret != 0 )
+ vol->clearCryptPwd();
}
else
{
@@ -5311,6 +5337,21 @@
return Disk::getDlabelCapabilities(dlabel, dlabelcapabilities);
}
+void Storage::removeDmTableTo( unsigned long mjr, unsigned long mnr )
+ {
+ y2mil( "mjr:" << mjr << " mnr:" << mnr );
+ string cmd = DMSETUPBIN " table | grep -w ";
+ cmd += decString(mjr) + ":" + decString(mnr);
+ cmd += " | sed s/:.*// | uniq";
+ SystemCmd c( cmd );
+ unsigned line=0;
+ while( line<c.numLines() )
+ {
+ removeDmTable( c.getLine(line) );
+ line++;
+ }
+ }
+
void Storage::removeDmTableTo( const Volume& vol )
{
@@ -5324,17 +5365,8 @@
removeDmMapsTo( vol.getContainer()->device() );
if( vol.getContainer()->majorNr()>0 )
{
- string cmd = DMSETUPBIN " table | grep -w ";
- cmd += decString(vol.getContainer()->majorNr()) + ":" +
- decString(vol.getContainer()->minorNr());
- cmd += " | sed s/:.*// | uniq";
- SystemCmd c( cmd );
- unsigned line=0;
- while( line<c.numLines() )
- {
- removeDmTable( c.getLine(line) );
- line++;
- }
+ removeDmTableTo( vol.getContainer()->majorNr(),
+ vol.getContainer()->minorNr() );
}
}
}
@@ -6260,6 +6292,33 @@
y2mil("ret:" << ret);
return( ret );
}
+
+int
+Storage::activateEncryption( const string& device, bool on )
+ {
+ int ret = 0;
+ assertInit();
+ y2mil("device:" << device << " on:" << on );
+ VolIterator vol;
+ if( !readonly() && findVolume( device, vol ) )
+ {
+ bool slnt = vol->isSilent();
+ vol->setSilent(true);
+ if( on && vol->needCrsetup() )
+ {
+ ret = vol->doCrsetup();
+ }
+ else if( !on )
+ {
+ ret = vol->crUnsetup(true);
+ }
+ vol->setSilent(slnt);
+ }
+ else
+ ret = STORAGE_VOLUME_NOT_FOUND;
+ y2mil("ret:" << ret);
+ return( ret );
+ }
bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Storage.h new/libstorage-2.19.12/storage/Storage.h
--- old/libstorage-2.19.11/storage/Storage.h 2010-03-09 19:00:02.000000000 +0100
+++ new/libstorage-2.19.12/storage/Storage.h 2010-03-19 10:23:09.000000000 +0100
@@ -243,6 +243,7 @@
bool isCacheChanges() const { return( cache ); }
void assertInit() { if( !initialized ) initialize(); }
void rescanEverything();
+ bool rescanCryptedObjects();
int checkCache();
const string& root() const { return( rootprefix ); }
string prependRoot(const string& mp) const;
@@ -384,7 +385,8 @@
int addFstabOptions( const string&, const string& options );
int removeFstabOptions( const string&, const string& options );
int setCryptPassword( const string& device, const string& pwd );
- int verifyCryptPassword( const string& device, const string& pwd );
+ int verifyCryptPassword( const string& device, const string& pwd,
+ bool erase );
int verifyCryptFilePassword( const string& file, const string& pwd );
bool needCryptPassword( const string& device );
int forgetCryptPassword( const string& device );
@@ -435,6 +437,7 @@
bool mountDeviceRo( const string& device, const string& mp,
const string& opts )
{ return( mountDev( device, mp, true, opts )); }
+ int activateEncryption( const string& device, bool on );
bool readFstab( const string& dir, deque<storage::VolumeInfo>& infos);
bool getFreeInfo(const string& device, bool get_resize, ResizeInfo& resize_info,
@@ -535,6 +538,7 @@
void removeDmTableTo( const Volume& vol );
void removeDmTableTo( const string& device );
+ void removeDmTableTo( unsigned long mjr, unsigned long mnr );
bool removeDmTable( const string& table );
bool removeDmMapsTo( const string& dev );
bool checkDmMapsTo( const string& dev );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/StorageInterface.h new/libstorage-2.19.12/storage/StorageInterface.h
--- old/libstorage-2.19.11/storage/StorageInterface.h 2010-03-16 14:55:25.000000000 +0100
+++ new/libstorage-2.19.12/storage/StorageInterface.h 2010-03-19 10:23:09.000000000 +0100
@@ -1464,9 +1464,12 @@
*
* @param device name of volume, e.g. /dev/hda1
* @param pwd crypt password for this volume
+ * @param erase if true remove password even after successful verification
* @return zero if password is ok, a negative number to indicate an error
*/
- virtual int verifyCryptPassword( const string& device, const string& pwd ) = 0;
+ virtual int verifyCryptPassword( const string& device,
+ const string& pwd, bool erase ) = 0;
+
/**
* Check if crypt password is required
*
@@ -2318,6 +2321,18 @@
virtual bool mountDevice( const string& device, const string& mp ) = 0;
/**
+ * Mount the given device and do what is necessary to access
+ * volume (e.g. do losetup if loop is set up)
+ *
+ * The function mounts at once, /etc/fstab is unaffected
+ *
+ * @param device device name
+ * @param on if true activate access to encrypted data, otherwise deactivate it
+ * @return zero if all is ok, a negative number to indicate an error
+ */
+ virtual int activateEncryption( const string& device, bool on ) = 0;
+
+ /**
* Mount the given device with given options and do what is necessary
* to access volume (e.g. do losetup if loop is set up)
*
@@ -2415,6 +2430,16 @@
virtual void rescanEverything() = 0;
/**
+ * Rescan after unlocked encrypted volume.
+ * Rescan for objects that might be newly found after at least one
+ * encrypted volume has been unlocked. Currently the only supported
+ * containers on an decrypted volume is a LVM Volume Group.
+ *
+ * @return true if at least on encrypted container has been found
+ */
+ virtual bool rescanCryptedObjects() = 0;
+
+ /**
* Dump list of all objects to log file.
*/
virtual void dumpObjectList() = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-2.19.11/storage/Volume.cc new/libstorage-2.19.12/storage/Volume.cc
--- old/libstorage-2.19.11/storage/Volume.cc 2010-03-16 14:35:01.000000000 +0100
+++ new/libstorage-2.19.12/storage/Volume.cc 2010-03-19 10:23:09.000000000 +0100
@@ -683,14 +683,13 @@
Text Volume::formatText( bool doing ) const
{
Text txt;
- string d = dev;
if( doing )
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by size (e.g. 623.5 MB)
// %3$s is replaced by file system type (e.g. reiserfs)
- txt = sformat( _("Formatting device %1$s (%2$s) with %3$s "),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str() );
+ txt = sformat(_("Formatting device %1$s (%2$s) with %3$s"), dev.c_str(),
+ sizeString().c_str(), fsTypeString().c_str());
}
else
{
@@ -702,9 +701,9 @@
// %2$s is replaced by size (e.g. 623.5 MB)
// %3$s is replaced by file system type (e.g. reiserfs)
// %4$s is replaced by mount point (e.g. /usr)
- txt = sformat( _("Format device %1$s (%2$s) for %4$s with %3$s"),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str(),
- mp.c_str() );
+ txt = sformat(_("Format device %1$s (%2$s) for %4$s with %3$s"),
+ dev.c_str(), sizeString().c_str(), fsTypeString().c_str(),
+ mp.c_str());
}
else
{
@@ -712,9 +711,9 @@
// %2$s is replaced by size (e.g. 623.5 MB)
// %3$s is replaced by file system type (e.g. reiserfs)
// %4$s is replaced by mount point (e.g. /usr)
- txt = sformat( _("Format encrypted device %1$s (%2$s) for %4$s with %3$s"),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str(),
- mp.c_str() );
+ txt = sformat(_("Format encrypted device %1$s (%2$s) for %4$s with %3$s"),
+ dev.c_str(), sizeString().c_str(), fsTypeString().c_str(),
+ mp.c_str());
}
}
else
@@ -722,8 +721,8 @@
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by size (e.g. 623.5 MB)
// %3$s is replaced by file system type (e.g. reiserfs)
- txt = sformat( _("Format device %1$s (%2$s) with %3$s"),
- d.c_str(), sizeString().c_str(), fsTypeString().c_str() );
+ txt = sformat(_("Format device %1$s (%2$s) with %3$s"),
+ dev.c_str(), sizeString().c_str(), fsTypeString().c_str());
}
}
return( txt );
@@ -1101,19 +1100,18 @@
Text Volume::mountText( bool doing ) const
{
Text txt;
- string d = dev;
if( doing )
{
if( !mp.empty() )
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by mount point e.g. /home
- txt = sformat( _("Mounting %1$s to %2$s"), d.c_str(), mp.c_str() );
+ txt = sformat(_("Mounting %1$s to %2$s"), dev.c_str(), mp.c_str());
}
else
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Unmounting %1$s"), d.c_str() );
+ txt = sformat(_("Unmounting %1$s"), dev.c_str());
}
}
else
@@ -1123,8 +1121,8 @@
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by mount point e.g. /home
- txt = sformat( _("Change mount point of %1$s to %2$s"), d.c_str(),
- mp.c_str() );
+ txt = sformat(_("Change mount point of %1$s to %2$s"), dev.c_str(),
+ mp.c_str());
}
else if( !mp.empty() )
{
@@ -1132,14 +1130,14 @@
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by mount point e.g. /home
- txt = sformat( _("Set mount point of %1$s to %2$s"), d.c_str(),
- mp.c_str() );
+ txt = sformat(_("Set mount point of %1$s to %2$s"), dev.c_str(),
+ mp.c_str());
}
else
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by "swap"
- txt = sformat( _("Use %1$s as %2$s"), d.c_str(), mp.c_str() );
+ txt = sformat(_("Use %1$s as %2$s"), dev.c_str(), mp.c_str());
}
}
else if( !orig_mp.empty() )
@@ -1151,7 +1149,7 @@
fn = "/etc/cryptotab";
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by pathname e.g. /etc/fstab
- txt = sformat( _("Remove %1$s from %2$s"), d.c_str(), fn.c_str() );
+ txt = sformat(_("Remove %1$s from %2$s"), dev.c_str(), fn.c_str());
}
}
return( txt );
@@ -1425,16 +1423,15 @@
Text Volume::losetupText( bool doing ) const
{
Text txt;
- string d = dev;
if( doing )
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Setting up encrypted loop device on %1$s"), d.c_str() );
+ txt = sformat(_("Setting up encrypted loop device on %1$s"), dev.c_str());
}
else
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Set up encrypted loop device on %1$s"), d.c_str() );
+ txt = sformat(_("Set up encrypted loop device on %1$s"), dev.c_str());
}
return( txt );
}
@@ -1442,16 +1439,15 @@
Text Volume::crsetupText( bool doing ) const
{
Text txt;
- string d = dev;
if( doing )
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Setting up encrypted dm device on %1$s"), d.c_str() );
+ txt = sformat(_("Setting up encrypted dm device on %1$s"), dev.c_str());
}
else
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Set up encrypted dm device on %1$s"), d.c_str() );
+ txt = sformat(_("Set up encrypted dm device on %1$s"), dev.c_str());
}
return( txt );
}
@@ -1680,7 +1676,7 @@
Volume::setCryptPwd( const string& val )
{
#ifdef DEBUG_LOOP_CRYPT_PASSWORD
- y2mil("password:" << val);
+ y2mil("pwd:" << val << " orig_pwd:" << orig_crypt_pwd );
#endif
int ret = 0;
@@ -1693,6 +1689,9 @@
if( encryption==ENC_UNKNOWN )
detectEncryption();
}
+#ifdef DEBUG_LOOP_CRYPT_PASSWORD
+ y2mil("pwd:" << crypt_pwd << " orig_pwd:" << orig_crypt_pwd );
+#endif
y2mil("ret:" << ret);
return( ret );
}
@@ -1770,6 +1769,7 @@
mkdir( mpname.c_str(), 0700 );
getFreeLoop();
detected_fs = fs = FSUNKNOWN;
+ bool luks_ok = false;
do
{
ofstream pwdfile( fname.c_str() );
@@ -1791,11 +1791,16 @@
c.execute(MODPROBEBIN " dm-crypt");
c.execute( cmd );
string use_dev = dmcrypt_dev;
+ luks_ok = try_order[pos]==ENC_LUKS && c.retcode()==0;
if( c.retcode()==0 )
{
Storage::waitForDevice(use_dev);
updateFsData();
- if( detected_fs!=FSUNKNOWN )
+ unsigned long mj = 0;
+ unsigned long mn;
+ if( storage::getMajorMinor( use_dev, mj, mn ) && mj>0 )
+ getStorage()->removeDmTableTo( mj, mn );
+ if( detected_fs!=FSUNKNOWN && !luks_ok )
{
string cmd;
switch( detected_fs )
@@ -1837,12 +1842,14 @@
}
}
}
- if( fs==FSUNKNOWN )
+ if( fs==FSUNKNOWN && !luks_ok )
pos++;
+ y2mil( "pos:" << pos << " luks_ok:" << luks_ok <<
+ " fs:" << Volume::fs_names[fs] );
}
- while( detected_fs==FSUNKNOWN && pos<lengthof(try_order) );
+ while( !luks_ok && detected_fs==FSUNKNOWN && pos<lengthof(try_order) );
crUnsetup( true );
- if( detected_fs!=FSUNKNOWN )
+ if( detected_fs!=FSUNKNOWN || luks_ok )
{
is_loop = cType() == LOOP;
ret = encryption = orig_encryption = try_order[pos];
@@ -1859,6 +1866,9 @@
}
unlink( fname.c_str() );
rmdir( mpname.c_str() );
+#ifdef DEBUG_LOOP_CRYPT_PASSWORD
+ y2mil("pwd:" << crypt_pwd << " orig_pwd:" << orig_crypt_pwd );
+#endif
y2mil("ret:" << encTypeString(ret));
return( ret );
}
@@ -2001,7 +2011,7 @@
pwdfile.close();
SystemCmd cmd;
if( format || (isTmpCryptMp(mp)&&crypt_pwd.empty()) ||
- (encryption!=ENC_NONE&&mp.empty()) )
+ (encryption!=ENC_NONE&&orig_crypt_pwd!=crypt_pwd) )
{
string cmdline = getCryptsetupCmd( encryption, dmcrypt_dev, mp, fname, true,
crypt_pwd.empty() );
@@ -2095,19 +2105,18 @@
Text Volume::labelText( bool doing ) const
{
Text txt;
- string d = dev;
if( doing )
{
if( label.empty() )
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Clearing label on %1$s"), d.c_str() );
+ txt = sformat(_("Clearing label on %1$s"), dev.c_str());
}
else
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by a name e.g. ROOT
- txt = sformat( _("Setting label on %1$s to %2$s"), d.c_str(), label.c_str() );
+ txt = sformat(_("Setting label on %1$s to %2$s"), dev.c_str(), label.c_str());
}
}
else
@@ -2115,13 +2124,13 @@
if( label.empty() )
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Clear label on %1$s"), d.c_str() );
+ txt = sformat(_("Clear label on %1$s"), dev.c_str());
}
else
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by a name e.g. ROOT
- txt = sformat( _("Set label on %1$s to %2$s"), d.c_str(), label.c_str() );
+ txt = sformat(_("Set label on %1$s to %2$s"), dev.c_str(), label.c_str());
}
}
return( txt );
@@ -2800,36 +2809,98 @@
cont->setExtError( cmd, serr );
}
-Text Volume::createText( bool doing ) const
- {
+
+Text
+Volume::createText(bool doing) const
+{
Text txt;
- if( doing )
- {
- // displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Creating %1$s"), dev.c_str() );
- }
+ if (doing)
+ {
+ // displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
+ txt = sformat(_("Creating volume %1$s"), dev.c_str());
+ }
else
- {
- // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Create %1$s"), dev.c_str() );
- }
- return( txt );
+ {
+ if (mp == "swap")
+ {
+ // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
+ // %2$s is replaced by size (e.g. 623.5 MB)
+ txt = sformat(_("Create swap volume %1$s (%2$s)"), dev.c_str(),
+ sizeString().c_str());
+ }
+ else if (mp == "/")
+ {
+ // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
+ // %2$s is replaced by size (e.g. 623.5 MB)
+ // %3$s is replaced by file system type (e.g. reiserfs)
+ txt = sformat(_("Create root volume %1$s (%2$s) with %3$s"),
+ dev.c_str(), sizeString().c_str(), fsTypeString().c_str());
+ }
+ else if (mp == getStorage()->bootMount())
+ {
+ // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
+ // %2$s is replaced by size (e.g. 623.5 MB)
+ // %3$s is replaced by file system type (e.g. reiserfs)
+ txt = sformat(_("Create boot volume %1$s (%2$s) with %3$s"),
+ dev.c_str(), sizeString().c_str(), fsTypeString().c_str());
+ }
+ else if (!mp.empty())
+ {
+ if (encryption == ENC_NONE)
+ {
+ // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
+ // %2$s is replaced by size (e.g. 623.5 MB)
+ // %3$s is replaced by file system type (e.g. reiserfs)
+ // %4$s is replaced by mount point (e.g. /usr)
+ txt = sformat(_("Create volume %1$s (%2$s) for %4$s with %3$s"),
+ dev.c_str(), sizeString().c_str(), fsTypeString().c_str(),
+ mp.c_str());
+ }
+ else
+ {
+ // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
+ // %2$s is replaced by size (e.g. 623.5 MB)
+ // %3$s is replaced by file system type (e.g. reiserfs)
+ // %4$s is replaced by mount point (e.g. /usr)
+ txt = sformat(_("Create encrypted volume %1$s (%2$s) for %4$s with %3$s"),
+ dev.c_str(), sizeString().c_str(), fsTypeString().c_str(),
+ mp.c_str());
+ }
+ }
+ else
+ {
+ if (encryption == ENC_NONE)
+ {
+ // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
+ // %2$s is replaced by size (e.g. 623.5 MB)
+ txt = sformat(_("Create volume %1$s (%2$s)"), dev.c_str(), sizeString().c_str());
+ }
+ else
+ {
+ // displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
+ // %2$s is replaced by size (e.g. 623.5 MB)
+ txt = sformat(_("Create encrypted volume %1$s (%2$s)"), dev.c_str(),
+ sizeString().c_str());
+ }
+ }
}
+ return txt;
+}
+
Text Volume::resizeText( bool doing ) const
{
Text txt;
- string d = dev;
if( doing )
{
if( needShrink() )
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat( _("Shrinking %1$s to %2$s"), d.c_str(), sizeString().c_str() );
+ txt = sformat(_("Shrinking %1$s to %2$s"), dev.c_str(), sizeString().c_str());
else
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat( _("Extending %1$s to %2$s"), d.c_str(), sizeString().c_str() );
+ txt = sformat(_("Extending %1$s to %2$s"), dev.c_str(), sizeString().c_str());
txt += Text(" ", " ");
// text displayed during action
txt += _("(progress bar might not move)");
@@ -2839,13 +2910,13 @@
if( needShrink() )
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat( _("Shrink %1$s to %2$s"), d.c_str(), sizeString().c_str() );
+ txt = sformat(_("Shrink %1$s to %2$s"), dev.c_str(), sizeString().c_str());
else
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
// %2$s is replaced by size (e.g. 623.5 MB)
- txt = sformat( _("Extend %1$s to %2$s"), d.c_str(), sizeString().c_str() );
+ txt = sformat(_("Extend %1$s to %2$s"), dev.c_str(), sizeString().c_str());
}
- return( txt );
+ return txt;
}
Text Volume::removeText( bool doing ) const
@@ -2854,12 +2925,12 @@
if( doing )
{
// displayed text during action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Removing %1$s"), dev.c_str() );
+ txt = sformat( _("Removing volume %1$s"), dev.c_str() );
}
else
{
// displayed text before action, %1$s is replaced by device name e.g. /dev/hda1
- txt = sformat( _("Remove %1$s"), dev.c_str() );
+ txt = sformat( _("Remove volume %1$s"), dev.c_str() );
}
return( txt );
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0