openSUSE Commits
Threads by month
- ----- 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
April 2014
- 1 participants
- 1084 discussions
Hello community,
here is the log from the commit of package shim for openSUSE:Factory checked in at 2014-04-21 11:05:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shim (Old)
and /work/SRC/openSUSE:Factory/.shim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shim"
Changes:
--------
--- /work/SRC/openSUSE:Factory/shim/shim.changes 2014-04-20 11:35:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.shim.new/shim.changes 2014-04-21 11:05:28.000000000 +0200
@@ -2,110 +1,0 @@
-Thu Apr 10 08:20:20 UTC 2014 - glin(a)suse.com
-
-- Replace shim-mokmanager-support-sha1.patch with
- shim-mokmanager-support-sha-family.patch to support the SHA
- family
-
--------------------------------------------------------------------
-Mon Apr 7 09:32:21 UTC 2014 - glin(a)suse.com
-
-- Add shim-mokmanager-support-sha1.patch to support SHA1 hashes in
- MOK
-
--------------------------------------------------------------------
-Mon Mar 31 11:57:13 UTC 2014 - mchang(a)suse.com
-
-- snapper rollback support (fate#317062)
- - refresh shim-install
-
--------------------------------------------------------------------
-Thu Mar 13 02:32:15 UTC 2014 - glin(a)suse.com
-
-- Insert the right signature (bnc#867974)
-
--------------------------------------------------------------------
-Mon Mar 10 07:56:44 UTC 2014 - glin(a)suse.com
-
-- Add shim-fix-uninitialized-variable.patch to fix the use of
- uninitialzed variables in lib
-
--------------------------------------------------------------------
-Fri Mar 7 09:09:12 UTC 2014 - glin(a)suse.com
-
-- Add shim-mokmanager-delete-bs-var-right.patch to delete the BS+NV
- variables the right way
-- Update shim-opensuse-cert-prompt.patch to delete openSUSE_Verify
- correctly
-
--------------------------------------------------------------------
-Thu Mar 6 07:37:57 UTC 2014 - glin(a)suse.com
-
-- Add shim-fallback-avoid-duplicate-bootorder.patch to fix the
- duplicate entries in BootOrder
-- Add shim-allow-fallback-use-system-loadimage.patch to handle the
- shim protocol properly to keep only one protocol entity
-- Refresh shim-opensuse-cert-prompt.patch
-
--------------------------------------------------------------------
-Thu Mar 6 03:53:49 UTC 2014 - mchang(a)suse.com
-
-- shim-install: fix the $prefix to use grub2-mkrelpath for paths
- on btrfs subvolume (bnc#866690).
-
--------------------------------------------------------------------
-Tue Mar 4 04:19:05 UTC 2014 - glin(a)suse.com
-
-- FATE#315002: Update shim-install to install shim.efi as the EFI
- default bootloader when none exists in \EFI\boot.
-
--------------------------------------------------------------------
-Thu Feb 27 09:46:49 UTC 2014 - fcrozat(a)suse.com
-
-- Update signature-sles.asc: shim signed by UEFI signing service,
- based on code from "Thu Feb 20 11:57:01 UTC 2014"
-
--------------------------------------------------------------------
-Fri Feb 21 08:45:46 UTC 2014 - glin(a)suse.com
-
-- Add shim-opensuse-cert-prompt.patch to show the prompt to ask
- whether the user trusts the openSUSE certificate or not
-
--------------------------------------------------------------------
-Thu Feb 20 11:57:01 UTC 2014 - lnussel(a)suse.de
-
-- allow package to carry multiple signatures
-- check correct certificate is embedded
-
--------------------------------------------------------------------
-Thu Feb 20 10:06:47 UTC 2014 - lnussel(a)suse.de
-
-- always clean up generated files that embed certificates
- (shim_cert.h shim.cer shim.crt) to make sure next build loop
- rebuilds them properly
-
--------------------------------------------------------------------
-Mon Feb 17 09:58:56 UTC 2014 - glin(a)suse.com
-
-- Add shim-bnc863205-mokmanager-fix-hash-delete.patch to fix the
- hash deletion operation to avoid ruining the whole list
- (bnc#863205)
-
--------------------------------------------------------------------
-Tue Feb 11 06:30:02 UTC 2014 - glin(a)suse.com
-
-- Update shim-mokx-support.patch to support the resetting of MOK
- blacklist
-- Add shim-get-variable-check.patch to fix the variable checking
- in get_variable_attr
-- Add shim-improve-fallback-entries-creation.patch to improve the
- boot entry pathes and avoid generating the boot entries that
- are already there
-- Update SUSE certificate
-- Update attach_signature.sh, show_hash.sh, strip_signature.sh,
- extract_signature.sh and show_signatures.sh to remove the
- creation of the temporary nss database
-- Add shim-only-os-name.patch: remove the kernel version of the
- build server
-- Match the the prefix of the project name properly by escaping the
- percent sign.
-
--------------------------------------------------------------------
Old:
----
shim-allow-fallback-use-system-loadimage.patch
shim-bnc863205-mokmanager-fix-hash-delete.patch
shim-fallback-avoid-duplicate-bootorder.patch
shim-fallback-improve-entries-creation.patch
shim-fix-uninitialized-variable.patch
shim-get-variable-check.patch
shim-mokmanager-delete-bs-var-right.patch
shim-mokmanager-support-sha-family.patch
shim-only-os-name.patch
shim-opensuse-cert-prompt.patch
signature-opensuse.asc
signature-sles.asc
New:
----
microsoft.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shim.spec ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:29.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:29.000000000 +0200
@@ -28,7 +28,7 @@
Source: %{name}-%{version}.tar.bz2
# run "extract_signature.sh shim.efi" where shim.efi is the binary
# with the signature from the UEFI signing service.
-Source1: signature-opensuse.asc
+Source1: microsoft.asc
Source2: openSUSE-UEFI-CA-Certificate.crt
Source3: shim-install
Source4: SLES-UEFI-CA-Certificate.crt
@@ -38,8 +38,6 @@
Source8: show_signatures.sh
Source9: openSUSE-UEFI-CA-Certificate-4096.crt
Source10: timestamp.pl
-Source11: strip_signature.sh
-Source12: signature-sles.asc
# PATCH-FIX-UPSTREAM shim-fix-verify-mok.patch glin(a)suse.com -- Fix the error handling in verify_mok()
Patch1: shim-fix-verify-mok.patch
# PATCH-FIX-UPSTREAM shim-improve-error-messages.patch glin(a)suse.com -- Improve the error messages
@@ -52,26 +50,6 @@
Patch5: shim-mokx-support.patch
# PATCH-FIX-UPSTREAM shim-mokmanager-handle-keystroke-error.patch glin(a)suse.com -- Handle the error status from ReadKeyStroke to avoid the unexpected keys
Patch6: shim-mokmanager-handle-keystroke-error.patch
-# PATCH-FIX-SUSE shim-only-os-name.patch glin(a)suse.com -- Only include the OS name in version.c
-Patch7: shim-only-os-name.patch
-# PATCH-FIX-UPSTREAM shim-get-variable-check.patch glin(a)suse.com -- Fix the variable checking in get_variable_attr
-Patch8: shim-get-variable-check.patch
-# PATCH-FIX-UPSTREAM shim-fallback-improve--entries-creation.patch glin(a)suse.com -- Improve the boot entry pathes and avoid generating the boot entries that are already there
-Patch9: shim-fallback-improve-entries-creation.patch
-# PATCH-FIX-UPSTREAM shim-bnc863205-mokmanager-fix-hash-delete.patch bnc#863205 glin(a)suse.com -- Fix the hash deletion operation to avoid ruining the whole list
-Patch10: shim-bnc863205-mokmanager-fix-hash-delete.patch
-# PATCH-FIX-UPSTREAM shim-fallback-avoid-duplicate-bootorder.patch glin(a)suse.com -- Fix the duplicate BootOrder entries generated by fallback.efi
-Patch11: shim-fallback-avoid-duplicate-bootorder.patch
-# PATCH-FIX-UPSTREAM shim-allow-fallback-use-system-loadimage.patch glin(a)suse.com -- Handle the shim protocol properly to keep only one protocol entity
-Patch12: shim-allow-fallback-use-system-loadimage.patch
-# PATCH-FIX-UPSTREAM shim-mokmanager-delete-bs-var-right.patch glin(a)suse.com -- Delete BootService non-volatile variables the right way
-Patch13: shim-mokmanager-delete-bs-var-right.patch
-# PATCH-FIX-UPSTREAM shim-fix-uninitialized-variable.patch glin(a)suse.com -- Initialize the variable in lib properly
-Patch14: shim-fix-uninitialized-variable.patch
-# PATCH-FIX-UPSTREAM shim-mokmanager-support-sha-family.patch glin(a)suse.com -- Support SHA hashes in MOK
-Patch15: shim-mokmanager-support-sha-family.patch
-# PATCH-FIX-OPENSUSE shim-opensuse-cert-prompt.patch glin(a)suse.com -- Show the prompt to ask whether the user trusts openSUSE certificate or not
-Patch100: shim-opensuse-cert-prompt.patch
BuildRequires: gnu-efi >= 3.0t
BuildRequires: mozilla-nss-tools
BuildRequires: openssl >= 0.9.8
@@ -100,16 +78,6 @@
%patch4 -p1
%patch5 -p1
%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
-%patch100 -p1
%build
# first, build MokManager and fallback as they don't depend on a
@@ -140,18 +108,12 @@
if test "$suffix" = "opensuse"; then
cert=%{SOURCE2}
cert2=%{SOURCE9}
- verify='openSUSE Secure Boot CA1'
- signature=%{SOURCE1}
elif test "$suffix" = "sles"; then
cert=%{SOURCE4}
cert2=''
- verify='SUSE Linux Enterprise Secure Boot CA1'
- signature=%{SOURCE12}
elif test "$suffix" = "devel"; then
cert=%{_sourcedir}/_projectcert.crt
cert2=''
- verify=`openssl x509 -in "$cert" -noout -email`
- signature=''
test -e "$cert" || continue
else
echo "invalid suffix"
@@ -159,7 +121,6 @@
fi
openssl x509 -in $cert -outform DER -out shim-$suffix.der
- rm -f shim_cert.h shim.cer shim.crt
if [ -z "$cert2" ]; then
# create empty local cert file, we don't need a local key pair as we
# sign the mokmanager with our vendor key
@@ -167,39 +128,36 @@
touch shim.cer
else
cp $cert2 shim.crt
+ rm -f shim.cer
fi
# make sure cast warnings don't trigger post build check
make EFI_PATH=/usr/lib64 VENDOR_CERT_FILE=shim-$suffix.der shim.efi 2>/dev/null
- #
- # assert correct certificate embedded
- grep -q "$verify" shim.efi
# make VENDOR_CERT_FILE=cert.der VENDOR_DBX_FILE=dbx
- chmod 755 %{SOURCE10}
+ chmod 755 %{SOURCE6} %{SOURCE7} %{SOURCE10}
# alternative: verify signature
#sbverify --cert MicCorThiParMarRoo_2010-10-05.pem shim-signed.efi
- if test -n "$signature"; then
- head -1 "$signature" > hash1
+ head -1 %{SOURCE1} > hash1
cp shim.efi shim.efi.bak
# pe header contains timestamp and checksum. we need to
# restore that
- %{SOURCE10} --set-from-file "$signature" shim.efi
- pesign -h -P -i shim.efi > hash2
+ %{SOURCE10} --set-from-file %{SOURCE1} shim.efi
+ %{SOURCE7} shim.efi > hash2
cat hash1 hash2
if ! cmp -s hash1 hash2; then
- echo "ERROR: $suffix binary changed, need to request new signature!"
+ echo "ERROR: binary changed, need to request new signature!"
# don't fail in devel projects
prj="%{_project}"
- if [ "${prj%%%:*}" = "openSUSE" -o "${prj%%%:*}" = "SUSE" ]; then
+ if [ "${prj%%:*}" = "openSUSE" -o "${prj%%:*}" = "SUSE" ]; then
false
fi
mv shim.efi.bak shim-$suffix.efi
rm shim.efi
else
# attach signature
- pesign -m "$signature" -i shim.efi -o shim-$suffix.efi
+ %{SOURCE6} %{SOURCE1} shim.efi
+ mv shim-signed.efi shim-$suffix.efi
rm -f shim.efi
fi
- fi
rm -f shim.cer shim.crt
# make sure cert.o gets rebuilt
rm -f cert.o
++++++ SLES-UEFI-CA-Certificate.crt ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:29.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:29.000000000 +0200
@@ -1,29 +1,39 @@
-----BEGIN CERTIFICATE-----
-MIIE5TCCA82gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBpjEtMCsGA1UEAwwkU1VT
+MIIG5TCCBM2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBpjEtMCsGA1UEAwwkU1VT
RSBMaW51eCBFbnRlcnByaXNlIFNlY3VyZSBCb290IENBMQswCQYDVQQGEwJERTES
MBAGA1UEBwwJTnVyZW1iZXJnMSEwHwYDVQQKDBhTVVNFIExpbnV4IFByb2R1Y3Rz
IEdtYkgxEzARBgNVBAsMCkJ1aWxkIFRlYW0xHDAaBgkqhkiG9w0BCQEWDWJ1aWxk
-QHN1c2UuZGUwHhcNMTMwNDE4MTQzMzQxWhcNMzUwMzE0MTQzMzQxWjCBpjEtMCsG
+QHN1c2UuZGUwHhcNMTMwMTIyMTQyMDA4WhcNMzQxMjE4MTQyMDA4WjCBpjEtMCsG
A1UEAwwkU1VTRSBMaW51eCBFbnRlcnByaXNlIFNlY3VyZSBCb290IENBMQswCQYD
VQQGEwJERTESMBAGA1UEBwwJTnVyZW1iZXJnMSEwHwYDVQQKDBhTVVNFIExpbnV4
IFByb2R1Y3RzIEdtYkgxEzARBgNVBAsMCkJ1aWxkIFRlYW0xHDAaBgkqhkiG9w0B
-CQEWDWJ1aWxkQHN1c2UuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQDN/avXKoT4gcM2NVA1LMfsBPH01sxgS8gTs3SbvfbEP2M+ZlHyfj9ufHZ7cZ1p
-ISoVm6ql5VbIeZgSNc17Y4y4Nynud1C8t2SP/iZK5YMYHGxdtIfv1zPE+Bo/KZqE
-WgHg2YFtMXdiKfXBZRTfSh37t0pGO/OQi6K4JioKw55UtQNggePZWDXtsAviT2vv
-abqLR9+kxdrQ0iWqhWM+LwXbTGkCpg41s8KucLD/JYAxxw05dKPApFDNnz+Ft2L7
-e5JtyB4S0u4PlvQBMNHt4hDs0rK4oeHFLbOxHvjF+nloneWhkg9eT0VCfpAYVYz+
-whMxuCHerDCdmeFrRGEMQz11AgMBAAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/
-MB0GA1UdDgQWBBTsqw1CxFbPdwQ2uXOZOGKWXocmLzCB0wYDVR0jBIHLMIHIgBTs
-qw1CxFbPdwQ2uXOZOGKWXocmL6GBrKSBqTCBpjEtMCsGA1UEAwwkU1VTRSBMaW51
-eCBFbnRlcnByaXNlIFNlY3VyZSBCb290IENBMQswCQYDVQQGEwJERTESMBAGA1UE
-BwwJTnVyZW1iZXJnMSEwHwYDVQQKDBhTVVNFIExpbnV4IFByb2R1Y3RzIEdtYkgx
-EzARBgNVBAsMCkJ1aWxkIFRlYW0xHDAaBgkqhkiG9w0BCQEWDWJ1aWxkQHN1c2Uu
-ZGWCAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IBAQASviyFhVqU
-Wc1JUQgXwdljJynTnp0/FQOZJBSe7XdBGPmy91+3ITqrXgyqo/218KISiQl53Qlw
-pq+cIiGRAia1D7p7wbg7wsg+Trt0zZFXes30wfYq5pjfWadEBAgNCffkBz10TSjL
-jQrVwW5N+yUJMoq+r843TzV56Huy6LBOVhI5yTz7X7i2rSJYfyQWM8oeHLj8Yl5M
-rOB9gyTumxB4mOLmSqwKzJiUB0ppGPohdLUSSEKDdo6KSH/GjR7M7uBicwnzwJD3
-SVfT9nx9HKF2nXZlHvs5ViQQru3qP1tc6i0eXEnPTYW2+zkZcN0e5iHyozEZHsO0
-rvc1p6G0YWtO
+CQEWDWJ1aWxkQHN1c2UuZGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCrLYL1Uq02iIgro6x6PFESFDtUKU7xO/bJanI7+AQAroowFuLBI67BBSmoq3hR
+QnH3OtQusGV8y+wvjaaunppvWMfjViZ88zssj5fKXrDr5U6BB566DJgHreWaEs2d
+FD13XpKRr3Nk9zdjAJu5YsR7hI1NMXsnj1X8w71OY9HLjv+Kq9917PJwZQjOGnAJ
+BQTi0ogHuLiwDqMKgg5rrYD4cJDPzoLEmEXnwHDIOSiWdD0bCzhN6GQDKldIxQ2O
+d/mjUgzB+dWslIb+bUKaoJgDtyPV20W74t7Y2uwoaEVr9QkPoM3tOPttf4qsWo8B
+J1TgeoF01ZeKcvSyvOXCKbfAN9sqURK2ZUTNThqZ//VPQmJP6fByrMJsbvTOSsQt
+HI+fFPrg1DC2KT8SzuGtWDRscHZ7MofvUKEQolVgkGwp8u68t/RAAwDpUdqIajzi
+yfp9qSDD+9uMeyiLa4rrAr2ATGohNBa0qha95slgvSepXbYKuHG5b4fWMsG7z4Uc
+dqE2vK8cQma1nsAeQBaq2/89294TOHEzKyspesfCBCnKQ3q+l9xelYRdvapj1CH/
+cfUZf2/6X3VHN1P88RfRrPubswmrcOCEBT41upa2WKRDJ1GS6YhL6LJnrZSTjfe+
+KsfNVS1D+KqSKiK0hfk6YK6O88mMGeAKQs3Ap8WthBLf0QIDAQABo4IBGjCCARYw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPU1Az5OFOQJLHPxaEt7f6LF+dV8w
+gdMGA1UdIwSByzCByIAUPU1Az5OFOQJLHPxaEt7f6LF+dV+hgaykgakwgaYxLTAr
+BgNVBAMMJFNVU0UgTGludXggRW50ZXJwcmlzZSBTZWN1cmUgQm9vdCBDQTELMAkG
+A1UEBhMCREUxEjAQBgNVBAcMCU51cmVtYmVyZzEhMB8GA1UECgwYU1VTRSBMaW51
+eCBQcm9kdWN0cyBHbWJIMRMwEQYDVQQLDApCdWlsZCBUZWFtMRwwGgYJKoZIhvcN
+AQkBFg1idWlsZEBzdXNlLmRlggEBMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0B
+AQsFAAOCAgEANtdMT47CjQtuERYa5jfygIO5F+urB4fl8pYcQQ/hTPE0KtAnAtrS
+1strtMrVQ1t7Wu3fVbWYA6MZMXXkcwyyNbaWfj6roaSC6G5ZqCJ69oSyzaCbyaTI
+eOgzIIiVGOAj7tiM6T88Xp9qx4Xa3F6UQHF6xfwBT3nNKerGKOG01p7mBfBewwO5
+Hxp7OAZmennUxV1uuT5/AsArxw9lMlawXhIAS7tRYHW+32D4tjHPDycldOw1hBjt
+z5JdehBiTmxhJ6onl0HSpsX84IMSbkeFIxLfxIF0TNas1pGnSGmh8FcV+ck9js3P
+yamJcNkgCstIwo3QZ2D5YdtQjOusyEuGjCIpDIQx36OMzeOo0SayOdzb2dSmcrHv
+4DIkXDUELyIzu79A2R2KR7OQaGL6HGAVy6+yXHHygTbbUrb6ck2+aOG8913ChABc
+ZAiSFFRKVZzzj7FeIxZNA8GBUbhd20eQB2fUXDypeAnTG6P3dtTs84xNb1qGm3VC
+OAKjkWYQijLWmAOs9Q4NM/AXOeDTgXxA7iX7kWHRNeDbACirp7zM2ZOIP5ObIS6z
+yMqcG9DecSVbXiH3MJDTBoB1idQTTyreqpM/l6N8xNNVjEiLJGMEM1SeYq6S1lFV
+a+GcdOaLYkh7ya3I42l/tDOqH2OLIf7FEtocnc1xU6jTz8au1tZxec8=
-----END CERTIFICATE-----
++++++ attach_signature.sh ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:29.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:29.000000000 +0200
@@ -11,4 +11,13 @@
outfile="${infile%.efi}-signed.efi"
-pesign -m "$sig" -i "$infile" -o "$outfile"
+nssdir=`mktemp -d`
+cleanup()
+{
+ rm -r "$nssdir"
+}
+trap cleanup EXIT
+echo > "$nssdir/pw"
+certutil -f "$nssdir/pw" -d "$nssdir" -N
+
+pesign -n "$nssdir" -m "$sig" -i "$infile" -o "$outfile"
++++++ extract_signature.sh ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:29.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:29.000000000 +0200
@@ -9,7 +9,16 @@
exit 1
fi
+nssdir=`mktemp -d`
+cleanup()
+{
+ rm -r "$nssdir"
+}
+trap cleanup EXIT
+echo > "$nssdir/pw"
+certutil -f "$nssdir/pw" -d "$nssdir" -N
+
# wtf?
-(pesign -h -P -i "$infile";
+(pesign -n "$nssdir" -h -P -i "$infile";
perl $(dirname $0)/timestamp.pl "$infile";
-pesign -a -f -e /dev/stdout -i "$infile")|cat
+pesign -n "$nssdir" -a -f -e /dev/stdout -i "$infile")|cat
++++++ microsoft.asc ++++++
hash: 97a8c5ba11d61fefbb5d6a05da4e15ba472dc4c6cd4972fc1a035de321342fe4
# 2013-10-01 08:29:53
timestamp: 524a8801
checksum: d364
-----BEGIN AUTHENTICODE SIGNATURE-----
MIIh8QYJKoZIhvcNAQcCoIIh4jCCId4CAQExDzANBglghkgBZQMEAgEFADBcBgor
BgEEAYI3AgEEoE4wTDAXBgorBgEEAYI3AgEPMAkDAQCgBKICgAAwMTANBglghkgB
ZQMEAgEFAAQgl6jFuhHWH++7XWoF2k4VukctxMbNSXL8GgNd4yE0L+Sgggs8MIIF
JDCCBAygAwIBAgITMwAAAApmQvP0n7c3lgABAAAACjANBgkqhkiG9w0BAQsFADCB
gTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMi
TWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTAeFw0xMzA5MjQxNzU0
MDNaFw0xNDEyMjQxNzU0MDNaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
cnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMTAwLgYDVQQDEydNaWNyb3NvZnQgV2lu
ZG93cyBVRUZJIERyaXZlciBQdWJsaXNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCc2PZRP3t6i2DCLSAuWrFHZKfyD98yckc9yxqqqJACgekdZi4s
ZEN1vYcVfiUhW4hFpdH3kcPah7wf+uqgyQa1hb/9AzDH63JYfaHLWA+Jx0leY0cG
CsIFviaUHrCEgxhkeXdrGfHroDcWArv2yBBvj+zvePVE9/VpDoBK+2nAFxz0oG23
BzE5duVpHIZn96fNyoDKYvCf649VqjM+O5/b5jlDylkMWAIVTvWqE0r/7YnC1Vcc
cgJDQk8IaIWSepRsjrvvf8C8uG3ZSxVjQeuPz7ETAryJIWvYdz240MzVAJD7SazH
SbVJm1LPHfS2FEpx3uUNOuo3IJrrxqeals8FAgMBAAGjggF9MIIBeTAfBgNVHSUE
GDAWBggrBgEFBQcDAwYKKwYBBAGCN1ACATAdBgNVHQ4EFgQU6t49RpSALGo0XSnP
ixuEhp5y0NEwUQYDVR0RBEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUT
KjMxNjE5KzAxMjU1ZjQ2LTc0ZjUtNGZjNC1iYzcxLWU0ZGE5NzM2YmVlZTAfBgNV
HSMEGDAWgBQTrb9DCb2CcJyM1U8xbtUimIob1DBTBgNVHR8ETDBKMEigRqBEhkJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb3JVRUZDQTIw
MTFfMjAxMS0wNi0yNy5jcmwwYAYIKwYBBQUHAQEEVDBSMFAGCCsGAQUFBzAChkRo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvclVFRkNB
MjAxMV8yMDExLTA2LTI3LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUA
A4IBAQAqJ9a9LzTGipmJ7IVkSf5JNK1cBhXsWBlmQ5kFNzeoa+RskUuUeM45NTS3
We7F628BW3BrhT8dK+Uf6YB7F46qng+VWNal2RPFjHSSy60QartzlUJoAaQvNjhC
5gv3LQRmaIZdtdjOLJAclnMETQWrt0wXGsGYwPk3a7kYXsdSO7U+bSwRRkL/v74g
78bCVxwgBhWctw/yxCjpl/bOg79XrZpHxH3szpgwz4YaFWRxxiYAoCYLROKeqObj
PEB8BG83vkpG3K84wBiyT5ab63FtjnbOvD0dGRNO1vIWzC41eEi0mYGW69cya8o+
Ot4bqI6YYSpWmkah9FhW9OLfoCpdMIIGEDCCA/igAwIBAgIKYQjTxAAAAAAABDAN
BgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
dGlvbjE7MDkGA1UEAxMyTWljcm9zb2Z0IENvcnBvcmF0aW9uIFRoaXJkIFBhcnR5
IE1hcmtldHBsYWNlIFJvb3QwHhcNMTEwNjI3MjEyMjQ1WhcNMjYwNjI3MjEzMjQ1
WjCBgTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UE
AxMiTWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKUIbEzHRQlqSwykwId/BnUMQwFUZOAWfwft
kn0LsnO/DArGSkVhoMUWLZbT9Sug+01Jm0GAkDy5VP3mvNGdxKQYin9BilxZg2gy
u4xHye5xvCFPmop8/0Q/jY8ysiZIrnW17slMHkoZfuSCmh14d00MsL32D9MW07z6
K6VROF31+7rbeALb/+wKG5bVg7gZE+m2wHtAe+EfKCfJ+u9WXhzmfpR+wPBEsnk5
5dqyYotNvzhw4mgkFMkzpAg31VhpXtN87cEEUwjnTrAqh2MIYW9jFVnqsit51wxh
Z4pb/V6th3+6hmdPcVgSIgQiIs6L71RxAM5QNVh2lQjuarGiAdUCAwEAAaOCAXYw
ggFyMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFPjBa7d/d1NK
8yU3HU6hJnsPIHCAMB0GA1UdDgQWBBQTrb9DCb2CcJyM1U8xbtUimIob1DAZBgkr
BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
AwEB/zAfBgNVHSMEGDAWgBRFZlJD4X5YEb/WTp4jVQg7OiJqqDBcBgNVHR8EVTBT
MFGgT6BNhktodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
cy9NaWNDb3JUaGlQYXJNYXJSb29fMjAxMC0xMC0wNS5jcmwwYAYIKwYBBQUHAQEE
VDBSMFAGCCsGAQUFBzAChkRodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
cnRzL01pY0NvclRoaVBhck1hclJvb18yMDEwLTEwLTA1LmNydDANBgkqhkiG9w0B
AQsFAAOCAgEANQhC/zDMzvd2DK0QaFg1KUYydid87xJBJ0IbSqptgThIWRNV8+lY
NKYWC4KqXa2C2oCDQQaPtB3yA7nzGl0b8VCQ+bNVhEIoHCC9sq5RFMXArJeVIRyQ
2w/8d56Vc5GIyr29UrkFUA3fV56gYe0N5W0l2UAPF0DIzqNKwk2vmhIdCFSPvce8
uSs9SSsfMvxqIWlPm8h+QjT8NgYXi48gQMCzmiV1J83JA6P2XdHnNlR6uVC10xLR
B7+7dN/cHo+A1e0Y9C8UFmsv3maMsCPlx4TY7erBM4KtVksYLfFolQfNz/By8K67
3YaFmCwhTDMr8A9K8GiHtZJVMnWhaoJqPKMlEaTtrdcErsvYQFmghNGVTGKRIhp0
HYw9Rw5EpuSwmzQ1sfq2U6gsgeykBXHInbi66BtEZuRHVA6OVn+znxaYsobQaD6Q
I7UvXo9QhY3GjYJfQaH0Lg3gmdJsdeS2abUhhvoH0fbiTdHarSx3Ux4lMjfHbFJy
lYaw8TVhahn1sjuBUFamMi3+oon5QoYnGFWhgspam/gwmFQUpkeWJS/IJuRBlBpc
Aj/lluOFWzw+P7tHFnJV4iUisdl75wMGKqP3HpBGwwAN1hmJ4w41J2IDcRWm79An
oKBZN2D4OJS44Hhw+LpMhoeU9uCuAkXuZcK2o35pFnUHkpv1prxZg1gxghYoMIIW
JAIBATCBmTCBgTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEr
MCkGA1UEAxMiTWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMQITMwAA
AApmQvP0n7c3lgABAAAACjANBglghkgBZQMEAgEFAKCCAREwGQYJKoZIhvcNAQkD
MQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJ
KoZIhvcNAQkEMSIEIOBR1lXJ0yMtGJm8ETD6MEFIJCyjBPLlLe2aF6PcGN1xMIGk
BgorBgEEAYI3AgEMMYGVMIGSoF6AXABoAHQAdABwADoALwAvAHcAdwB3AC4AbQBp
AGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAHcAaABkAGMALwBoAGMAbAAvAGQAZQBm
AGEAdQBsAHQALgBtAHMAcAB4oTCALmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93
aGRjL2hjbC9kZWZhdWx0Lm1zcHgwDQYJKoZIhvcNAQEBBQAEggEAVajbL42oQSy1
NUS6HAoCq0L01hhN9fHn8acFrSpXK+GjijNspEcxVWSmJCWUWj4oVgBU7hgB2cFr
YBm7M6VLl0h45tCI0jyHURNs4bYeKhBlywIAKQ1B3sxBi84vrNmVv7tZqtV8eAte
tmX/8X6mOObVtD1YfYRVc2/EAEqv/Dee3BKb2/3MJ8TlUDuPZ1yAjAq4MViGs0J3
m4T63cugiWPuoaZEGJ6eaPiVXPcEKiDDOboCMm6MY1CLADE0moMrQ86dtbmycXIu
N44ImKRkPSSCnRbmNDl/OkITHAicitORyvpet6uciDQtXQEq8xuRHJ7tOrwTmuLs
r+BEVn7BR6GCE0owghNGBgorBgEEAYI3AwMBMYITNjCCEzIGCSqGSIb3DQEHAqCC
EyMwghMfAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggE9BgsqhkiG9w0BCRABBKCCASwE
ggEoMIIBJAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCBfmL3wsdu9
3kovdSnRVAah9huZNZbgGFJ05HSVLqfy9gIGUmk4IyjpGBMyMDEzMTAzMDE5MTY0
My42ODZaMAcCAQGAAgH0oIG5pIG2MIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERT
RSBFU046QzBGNC0zMDg2LURFRjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
YW1wIFNlcnZpY2Wggg7NMIIGcTCCBFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG
9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy
MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
MTAwHhcNMTAwNzAxMjEzNjU1WhcNMjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJV
UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt
ZS1TdGFtcCBQQ0EgMjAxMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AKkdDbx3EYo6IOz8E5f1+n9plGt0VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vw
FVMnBDEfQRsalR3OCROOfGEwWbEwRA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNF
DdDq9UeBzb8kYDJYYEbyWEeGMoQedGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC7
32H8RsEnHSRnEnIaIYqvS2SJUGKxXf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOW
RH7v0Ev9buWayrGo8noqCjHw2k4GkbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJ
k3jN/LzAyURdXhacAQVPIk0CAwEAAaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEA
MB0GA1UdDgQWBBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4K
AFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
GDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRw
Oi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJB
dXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5o
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8y
MDEwLTA2LTIzLmNydDCBoAYDVR0gAQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEw
PQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9D
UFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABv
AGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQAD
ggIBAAfmiFEN4sbgmD+BcQM9naOhIW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/1
5/B4vceoniXj+bzta1RXCCtRgkQS+7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRW
S3TvQhDIr79/xn/yN31aPxzymXlKkVIArzgPF/UveYFl2am1a+THzvbKegBvSzBE
JCI8z+0DpZaPWSm8tv0E4XCfMkon/VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/
3cVKC5Em4jnsGUpxY517IW3DnKOiPPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9
nhquBEKDuLWAmyI4ILUl5WTs9/S/fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5H
moDF0M2n0O99g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv3
3nJ+YWtvd6mBy6cJrDm77MbL2IK0cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI
5pgt6o3gMy4SKfXAL1QnIffIrE7aKLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0
MkvfY3v1mYovG8chr1m1rtxEPJdQcdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0e
GTgvvM9YBS7vDaBQNdrvCScc1bN+NR4Iuto229Nfj950iEkSMIIE2jCCA8KgAwIB
AgITMwAAACiQZ7kEsDxuZgAAAAAAKDANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQG
EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
VGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0xMzAzMjcyMDEzMTNaFw0xNDA2MjcyMDEz
MTNaMIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYD
VQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046QzBGNC0zMDg2LURF
RjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdpUi/akidSiGckmve4C3c5GP4zLmJ
xMcbvee10/vtrs8x/vNmsEQD2plnCFq/dQYiEYnQZ1LM+s+SN0Xo+vG9M9PMc+O4
IaSgFX3LL8QDBdo/lnPTWeWYTQtWhi+dR9HWX52R6ceE2ZVrMky0awBS4EHTPGl0
qM7MfWidUlXmcH8UB6KeZ7CGRPMzP3Ndxij4F19SAS1EL9bteAi45TsvwLnDS8O3
Oy/TprWcsUhK3TIJVqEbS1rTqiYnDBJDYMVq19pADWCYiUG7k3Pdv/7EjFvO+lUn
yk1Nmm99EWyxRyOwTHxsfwahdIIfUngY6QYaFlCawzrdgYH3mydyIX91AgMBAAGj
ggEbMIIBFzAdBgNVHQ4EFgQU3JgInXnRBLKLR8Nx0Izns+awU50wHwYDVR0jBBgw
FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
BgkqhkiG9w0BAQsFAAOCAQEAgiLztz1kfhJL/Cb84OS30MQUTgn+q1aa0VqYpr6M
QR6UtDK+hLS3RXbj72AYJIeoz+m00VQpvMrkyxJ7wPHUDp8xMxsRP3o73d0CqhjK
yjz6luNsu6+7yYQ+x9gMhctyCwEbpPUxERAMRaVaSJl+2r5Fhte6TeSB/9NYCnZl
Blkv9sJCzwTJqxv6YZ3185hJcLFJ0GTEIejuYBdTfusC2miVi/UKPAHbo7WYFFF0
nlPp2nKYZqBfKc+Prx+CnNPr5vFMG1T46DLcwRXDrCpudAUWg+NEmJ/L7+gweX+v
UqU6H99lx43+J9hHGZIItIs0jmknNxoC9pGzlSL/CEgq/qGCA3YwggJeAgEBMIHj
oYG5pIG2MIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0w
CwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046QzBGNC0zMDg2
LURFRjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiJQoB
ATAJBgUrDgMCGgUAAxUA8120HsdfO2ZOZQ7emART9hWnH0SggcIwgb+kgbwwgbkx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1P
UFIxJzAlBgNVBAsTHm5DaXBoZXIgTlRTIEVTTjpCMDI3LUM2RjgtMUQ4ODErMCkG
A1UEAxMiTWljcm9zb2Z0IFRpbWUgU291cmNlIE1hc3RlciBDbG9jazANBgkqhkiG
9w0BAQUFAAIFANYbbXkwIhgPMjAxMzEwMzAxMTM1MjFaGA8yMDEzMTAzMTExMzUy
MVowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA1htteQIBADAHAgEAAgIQxzAHAgEA
AgIYcDAKAgUA1hy++QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMB
oAowCAIBAAIDFuNgoQowCAIBAAIDB6EgMA0GCSqGSIb3DQEBBQUAA4IBAQAxxOL5
p8WZx+WQXwsf9YpPA4dWCU2xk7l1MY2R653keklyM7ks9Md5/7JbBzMPQXMPJ0Ts
SllTUWF+wCUwW84ZAJCG4IUS5MrfbC5yXPkCjYEW6pll2A77OgwC+UG7X5VN67nm
XfRbw+3lyAAcCjpreeEOiMRTNP1UW3Th2x5Lmbgc4AW/6p+6VEj/7QJEuj7oMXVe
KQNp/I+lJn1rBGU42wqteobjNmUI55+i5PN+Wa5uGh7IhkqpDRPIkBM9wqVDQoHb
d727DRVQMwzTAGYdSaOPJjLYti078h71WDJYyM1waA435nrkukJ6ObWdMTNjJqsy
/Tz7rYZPgMPKLjtfMYIC9TCCAvECAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNV
BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
UENBIDIwMTACEzMAAAAokGe5BLA8bmYAAAAAACgwDQYJYIZIAWUDBAIBBQCgggEy
MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgqtHU
/PG7RLWN/Y5UsjD6+lFX/RpWbpbjNV/x7SF3lQwwgeIGCyqGSIb3DQEJEAIMMYHS
MIHPMIHMMIGxBBTzXbQex187Zk5lDt6YBFP2FacfRDCBmDCBgKR+MHwxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29m
dCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAAKJBnuQSwPG5mAAAAAAAoMBYEFLWf
+tQPMIlyzZih4uVtvwa31BWHMA0GCSqGSIb3DQEBCwUABIIBAEJSSeyhVFmVBArn
o02R+f9PxUVjdMsHRqTWdnfA6F4uFU2GGGB2NoGTPHVeHrTTejo2bzXf5Di0jO5r
nIM1KVSUIDmM6xgvcIgxMuo2oM8MxHnYSh9QdWTCnJsqcR+PzIhsdrxaQOLRXNiS
uEyj0MgaJuYATAmhM2oM4BFNmbFavr0Sar3fj54zoZ9/p7ZhROSVm40OKt8tzSDu
7KrU8rr6VikJV2svuvLsmBKP7H6A+ZBWgrSlraQhdOxgjdPci6rhoZ9GG3WzNIcg
c+4KZEXs0hxinuZA2+Z9QhyXcTeLXm1UbKtN+P6hEv6ABEaghtj238dcrBtwijpX
BkfJeJoAAAA=
-----END AUTHENTICODE SIGNATURE-----
++++++ shim-install ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:30.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:30.000000000 +0200
@@ -4,18 +4,14 @@
bootdir=
efidir=
install_device=
-efibootdir=
-ca_string=
removable=no
clean=no
sysconfdir="/etc"
libdir="/usr/lib64"
source_dir="$libdir/efi"
grub_probe="`which grub2-probe`"
-grub_mkrelpath="`which grub2-mkrelpath`"
self="`basename $0`"
grub_cfg="/boot/grub2/grub.cfg"
-update_boot=no
# Get GRUB_DISTRIBUTOR.
if test -f "${sysconfdir}/default/grub" ; then
@@ -30,14 +26,6 @@
efi_distributor="$bootloader_id"
bootloader_id="${bootloader_id}-secureboot"
-case "$bootloader_id" in
- "sle"*)
- ca_string='SUSE Linux Enterprise Secure Boot CA1';;
- "opensuse"*)
- ca_string='openSUSE Secure Boot CA1';;
- *) ca_string="";;
-esac
-
usage () {
echo "Usage: $self [OPTION] [INSTALL_DEVICE]"
echo
@@ -181,32 +169,18 @@
if test -n "$efidir"; then
efi_file=shim.efi
- efibootdir="$efidir/EFI/boot"
- mkdir -p "$efibootdir" || exit 1
efidir="$efidir/EFI/$efi_distributor"
mkdir -p "$efidir" || exit 1
else
exit 1;
fi
-if test -f "$efibootdir/bootx64.efi"; then
- if test -n "$ca_string" && (grep -q "$ca_string" "$efibootdir/bootx64.efi"); then
- update_boot=yes
- fi
-else
- update_boot=yes
-fi
-
if test "$clean" = "yes"; then
rm -f "${efidir}/shim.efi"
rm -f "${efidir}/MokManager.efi"
rm -f "${efidir}/grub.efi"
rm -f "${efidir}/grub.cfg"
rm -f "${efidir}/boot.csv"
- if test "$update_boot" = "yes"; then
- rm -f "${efibootdir}/bootx64.efi"
- rm -f "${efibootdir}/fallback.efi"
- fi
efibootmgr="`which efibootmgr`"
if test "$removable" = no && test -n "$bootloader_id" && test -n "$efibootmgr"; then
# Delete old entries from the same distributor.
@@ -222,70 +196,17 @@
cp "${source_dir}/MokManager.efi" "${efidir}"
cp "${source_dir}/grub.efi" "${efidir}"
echo "shim.efi,${bootloader_id}" | iconv -f ascii -t ucs2 > "${efidir}/boot.csv"
-if test "$update_boot" = "yes"; then
- cp "${source_dir}/shim.efi" "${efibootdir}/bootx64.efi"
- cp "${source_dir}/fallback.efi" "${efibootdir}"
-fi
-
-
-make_grubcfg () {
grub_cfg_dirname=`dirname $grub_cfg`
grub_cfg_basename=`basename $grub_cfg`
cfg_fs_uuid=`"$grub_probe" --target=fs_uuid "$grub_cfg_dirname"`
-descriptive_config="snapshot_submenu.cfg"
-root_fstype=`$grub_probe -t fs /`
-boot_fstype=`$grub_probe -t fs /boot`
-if [ "x${root_fstype}" != "xbtrfs" ] ||
- [ "x${boot_fstype}" != "xbtrfs" ]; then
- echo "/ is not on btrfs" >&2
- exit 1;
-fi
-
-if test "x$SUSE_BTRFS_SNAPSHOT_BOOTING" = "xtrue" &&
- test "x$root_fstype" = "xbtrfs" &&
- test "x$boot_fstype" = "xbtrfs"; then
-
-cat <<EOF
-set btrfs_relative_path="yes"
-set extra_cmdline=""
-btrfs_subvolid=""
-btrfs_subvol="/"
-
-export btrfs_relative_path
-export extra_cmdline
+(cat << EOF
search --fs-uuid --set=root ${cfg_fs_uuid}
-
-set timeout=0
-
-terminal_input console
-terminal_output console
-
-menuentry 'default' {
- btrfs_subvol=""
- configfile /boot/grub2/grub.cfg
- btrfs_subvol="/"
-}
-
-if [ -f "/.snapshots/${descriptive_config}" ]; then
- source "/.snapshots/${descriptive_config}"
-fi
-
-EOF
-
-else
-
-cat <<EOF
-search --fs-uuid --set=root ${cfg_fs_uuid}
-set prefix=(\${root})`${grub_mkrelpath} ${grub_cfg_dirname}`
-configfile \$prefix/${grub_cfg_basename}
+set prefix=(\${root})${grub_cfg_dirname}
EOF
-fi
-
-}
-
-make_grubcfg > "${efidir}/grub.cfg"
+echo "configfile \$prefix/${grub_cfg_basename}") \
+> "${efidir}/grub.cfg"
efibootmgr="`which efibootmgr`"
if test "$removable" = no && test -n "$bootloader_id" && test -n "$efibootmgr"; then
++++++ shim-mokx-support.patch ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:30.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:30.000000000 +0200
@@ -1,12 +1,10 @@
-From 58b8e54ef60d488886a9f0d0877b7187eb200d07 Mon Sep 17 00:00:00 2001
+From 8614cf8c164049e77d702eb234d608d5342e975b Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 24 Oct 2013 17:02:08 +0800
-Subject: [PATCH 01/10] Support MOK blacklist
+Subject: [PATCH 1/9] Support MOK blacklist
The new blacklist, MokListX, stores the keys and hashes that are
banned.
-
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 241 +++++++++++++++++++++++++++++++++++++++++++++++++----------
shim.c | 3 +-
@@ -512,7 +510,7 @@
return EFI_SUCCESS;
}
diff --git a/shim.c b/shim.c
-index cf93d65..2c23a2f 100644
+index 9ae1936..c133bb2 100644
--- a/shim.c
+++ b/shim.c
@@ -1510,7 +1510,8 @@ EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
@@ -526,15 +524,14 @@
if (efi_status != EFI_SUCCESS) {
--
-1.8.4.5
+1.8.1.4
-From d2980a5cbee887223405a24be44ffd5bb439e3f1 Mon Sep 17 00:00:00 2001
+From f36f4093bb72344242949b16b83905cefb93d3cd Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 24 Oct 2013 17:32:31 +0800
-Subject: [PATCH 02/10] MokManager: show the hash list properly
+Subject: [PATCH 2/9] MokManager: show the hash list properly
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 71 insertions(+), 11 deletions(-)
@@ -678,15 +675,14 @@
for (i=0; menu_strings[i] != NULL; i++)
--
-1.8.4.5
+1.8.1.4
-From 9c4b5d58385c64056adb5386c097219665f2f50d Mon Sep 17 00:00:00 2001
+From f1073a9bc757008d44b5b86cb5002a3654faf2d2 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 25 Oct 2013 16:54:25 +0800
-Subject: [PATCH 03/10] MokManager: delete the hash properly
+Subject: [PATCH 3/9] MokManager: delete the hash properly
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 114 insertions(+), 10 deletions(-)
@@ -844,15 +840,14 @@
}
--
-1.8.4.5
+1.8.1.4
-From 54ce2f9605990c00f9cafae7cab22a1c885828c1 Mon Sep 17 00:00:00 2001
+From b5cb83a92620b0b41857f3e3a292d1577eb3a3a5 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 25 Oct 2013 17:05:10 +0800
-Subject: [PATCH 04/10] MokManager: Match all hashes in the list
+Subject: [PATCH 4/9] MokManager: Match all hashes in the list
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
@@ -913,17 +908,15 @@
}
}
--
-1.8.4.5
+1.8.1.4
-From 4c1912c8521cca4d320a1417abff6f7954809a20 Mon Sep 17 00:00:00 2001
+From 70a4e12d2e6ba37541d0b78ec3c8ed5e8da9a941 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 25 Oct 2013 18:30:48 +0800
-Subject: [PATCH 05/10] MokManager: Write the hash list properly
+Subject: [PATCH 5/9] MokManager: Write the hash list properly
also return to the previous entry in the list
-
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
@@ -998,21 +991,20 @@
efi_status = uefi_call_wrapper(RT->SetVariable, 5, db_name,
--
-1.8.4.5
+1.8.1.4
-From 8b96a93bda39617efbe51f24d1dc606ad8835d26 Mon Sep 17 00:00:00 2001
+From 225e5fca2f7cf63e365b77243d6e43b1eb9860c8 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 28 Oct 2013 15:08:40 +0800
-Subject: [PATCH 06/10] Copy the MOK blacklist to a RT variable
+Subject: [PATCH 6/9] Copy the MOK blacklist to a RT variable
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
shim.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/shim.c b/shim.c
-index 2c23a2f..ccb3071 100644
+index c133bb2..a0383a8 100644
--- a/shim.c
+++ b/shim.c
@@ -1480,6 +1480,33 @@ EFI_STATUS mirror_mok_list()
@@ -1049,7 +1041,7 @@
* Check if a variable exists
*/
static BOOLEAN check_var(CHAR16 *varname)
-@@ -1799,6 +1826,8 @@ EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
+@@ -1795,6 +1822,8 @@ EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
*/
efi_status = mirror_mok_list();
@@ -1059,21 +1051,20 @@
* Create the runtime MokIgnoreDB variable so the kernel can make
* use of it
--
-1.8.4.5
+1.8.1.4
-From 044d04dbed3ef3f2f3004a770e3751eabc052c2c Mon Sep 17 00:00:00 2001
+From f9db55b719281ce491780ecd4ec269c5286a7251 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 28 Oct 2013 16:36:34 +0800
-Subject: [PATCH 07/10] No newline for console_notify
+Subject: [PATCH 7/9] No newline for console_notify
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
shim.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/shim.c b/shim.c
-index ccb3071..e30a464 100644
+index a0383a8..a2e0862 100644
--- a/shim.c
+++ b/shim.c
@@ -470,7 +470,7 @@ static BOOLEAN secure_mode (void)
@@ -1095,13 +1086,13 @@
}
--
-1.8.4.5
+1.8.1.4
-From 0e97d1576fcc1924f0f17b7f31baf1dd74a7f83e Mon Sep 17 00:00:00 2001
+From 0bf2da5c7d9442f3249fc977b3fbffab924a374c Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 4 Nov 2013 14:45:33 +0800
-Subject: [PATCH 08/10] Verify the EFI images with MOK blacklist
+Subject: [PATCH 8/9] Verify the EFI images with MOK blacklist
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
@@ -1109,7 +1100,7 @@
1 file changed, 9 insertions(+)
diff --git a/shim.c b/shim.c
-index e30a464..efd3d85 100644
+index a2e0862..5f5e9a6 100644
--- a/shim.c
+++ b/shim.c
@@ -365,6 +365,7 @@ static EFI_STATUS check_blacklist (WIN_CERTIFICATE_EFI_PKCS *cert,
@@ -1136,13 +1127,13 @@
return EFI_SUCCESS;
}
--
-1.8.4.5
+1.8.1.4
-From a166edaa42ef96eaf5b000d0e4ad71779b745d68 Mon Sep 17 00:00:00 2001
+From 20ced27d1785bceaf814c07ca0d5686506a119ad Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 4 Nov 2013 17:51:55 +0800
-Subject: [PATCH 09/10] Exclude ca.crt while signing EFI images
+Subject: [PATCH 9/9] Exclude ca.crt while signing EFI images
If ca.crt was added into the certificate database, ca.crt would be the first
certificate in the signature. Because shim couldn't verify ca.crt with the
@@ -1167,33 +1158,5 @@
certutil -d certdb/ -A -i shim.crt -n shim -t u
--
-1.8.4.5
-
-
-From cce37bfa5298e8e9c12d3509c78592f711699c4f Mon Sep 17 00:00:00 2001
-From: Gary Ching-Pang Lin <glin(a)suse.com>
-Date: Tue, 11 Feb 2014 14:11:15 +0800
-Subject: [PATCH 10/10] Make shim to check MokXAuth for MOKX reset
-
-Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
----
- shim.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/shim.c b/shim.c
-index efd3d85..7093c45 100644
---- a/shim.c
-+++ b/shim.c
-@@ -1547,7 +1547,8 @@ EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
- if (check_var(L"MokNew") || check_var(L"MokSB") ||
- check_var(L"MokPW") || check_var(L"MokAuth") ||
- check_var(L"MokDel") || check_var(L"MokDB") ||
-- check_var(L"MokXNew") || check_var(L"MokXDel")) {
-+ check_var(L"MokXNew") || check_var(L"MokXDel") ||
-+ check_var(L"MokXAuth")) {
- efi_status = start_image(image_handle, MOK_MANAGER);
-
- if (efi_status != EFI_SUCCESS) {
---
-1.8.4.5
+1.8.1.4
++++++ show_hash.sh ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:30.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:30.000000000 +0200
@@ -9,4 +9,13 @@
exit 1
fi
-pesign -h -P -i "$infile"
+nssdir=`mktemp -d`
+cleanup()
+{
+ rm -r "$nssdir"
+}
+trap cleanup EXIT
+echo > "$nssdir/pw"
+certutil -f "$nssdir/pw" -d "$nssdir" -N
+
+pesign -n "$nssdir" -h -P -i "$infile"
++++++ show_signatures.sh ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:30.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:30.000000000 +0200
@@ -9,4 +9,13 @@
exit 1
fi
-pesign -S -i "$infile"
+nssdir=`mktemp -d`
+cleanup()
+{
+ rm -r "$nssdir"
+}
+trap cleanup EXIT
+echo > "$nssdir/pw"
+certutil -f "$nssdir/pw" -d "$nssdir" -N
+
+pesign -n "$nssdir" -S -i "$infile"
++++++ strip_signature.sh ++++++
--- /var/tmp/diff_new_pack.caxf2B/_old 2014-04-21 11:05:30.000000000 +0200
+++ /var/tmp/diff_new_pack.caxf2B/_new 2014-04-21 11:05:30.000000000 +0200
@@ -10,4 +10,13 @@
outfile="${infile%.efi}-unsigned.efi"
-pesign -r -i "$infile" -o "$outfile"
+nssdir=`mktemp -d`
+cleanup()
+{
+ rm -r "$nssdir"
+}
+trap cleanup EXIT
+echo > "$nssdir/pw"
+certutil -f "$nssdir/pw" -d "$nssdir" -N
+
+pesign -n "$nssdir" -r -i "$infile" -o "$outfile"
--
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 tor for openSUSE:Factory checked in at 2014-04-20 11:37:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tor (Old)
and /work/SRC/openSUSE:Factory/.tor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tor"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tor/tor.changes 2014-03-09 20:27:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.tor.new/tor.changes 2014-04-20 11:37:21.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Apr 19 02:54:55 UTC 2014 - mook.moz+com.novell(a)gmail.com
+
+- Add tor-fw-helper for UPnP port forwarding; not used by default
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tor.spec ++++++
--- /var/tmp/diff_new_pack.HMWl2z/_old 2014-04-20 11:37:22.000000000 +0200
+++ /var/tmp/diff_new_pack.HMWl2z/_new 2014-04-20 11:37:22.000000000 +0200
@@ -18,6 +18,7 @@
%define with_bufferevents 0%{?suse_version} > 1220
%define with_systemd 0%{?suse_version} > 1140
+%define with_upnp 0%{?suse_version} >= 1220
%define toruser %{name}
%define torgroup %{name}
%define home_dir %{_localstatedir}/lib/empty
@@ -36,6 +37,9 @@
Source4: tor.tmpfiles
# PATCH-FIX-UPSTREAM tor-0.2.2.37-logrotate.patch -- add su to logrotate config to fix W: suse-logrotate-user-writable-log-dir
Patch0: tor-0.2.2.37-logrotate.patch
+%if %{with_upnp}
+BuildRequires: libminiupnpc-devel
+%endif
BuildRequires: openssl-devel
BuildRequires: pwdutils
Requires: logrotate
@@ -93,6 +97,9 @@
%configure \
--with-tor-user=%{toruser} \
--with-tor-group=%{torgroup} \
+%if %{with_upnp}
+ --enable-upnp \
+%endif
%if %{with_bufferevents}
--enable-bufferevents \
%endif
@@ -174,6 +181,9 @@
%{_bindir}/%{name}ify
%{_bindir}/%{name}-gencert
%{_bindir}/%{name}-resolve
+%if %{with_upnp}
+%{_bindir}/%{name}-fw-helper
+%endif
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/geoip*
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}
--
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 libxmp for openSUSE:Factory checked in at 2014-04-20 11:37:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libxmp (Old)
and /work/SRC/openSUSE:Factory/.libxmp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxmp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libxmp/libxmp.changes 2014-03-04 13:46:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libxmp.new/libxmp.changes 2014-04-20 11:37:06.000000000 +0200
@@ -1,0 +2,19 @@
+Mon Apr 14 07:46:14 UTC 2014 - jengelh(a)inai.de
+
+- Update to new upstream release 4.2.7
+* This release adds support for ADPCM samples in XM files, and
+ implements an OctaMED channel pan effect. It also fixes OctaMED
+ MMD2 and MMD3 note and sample mapping, the XM channel pan
+ effect, and a disabled pan in IT instruments.
+
+-------------------------------------------------------------------
+Tue Apr 8 14:18:07 UTC 2014 - jengelh(a)inai.de
+
+- Update to new upstream release 4.2.6
+* This release has fixes for the Impulse Tracker tempo slide
+ effect, for 15-instrument Soundtracker sample loops, and many
+ fixes for OctaMED modules, including 2-to-7 octave IFFOCT
+ samples, hold and decay support, vibrato depth, and synth
+ instrument volume.
+
+-------------------------------------------------------------------
Old:
----
libxmp-4.2.5.tar.gz
New:
----
libxmp-4.2.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libxmp.spec ++++++
--- /var/tmp/diff_new_pack.IyvPuu/_old 2014-04-20 11:37:06.000000000 +0200
+++ /var/tmp/diff_new_pack.IyvPuu/_new 2014-04-20 11:37:06.000000000 +0200
@@ -21,7 +21,7 @@
Summary: Module Player library for MOD, S3M, IT and others
License: LGPL-2.1
Group: Development/Libraries/C and C++
-Version: 4.2.5
+Version: 4.2.7
Release: 0
Url: http://xmp.sf.net/
++++++ libxmp-4.2.5.tar.gz -> libxmp-4.2.7.tar.gz ++++++
++++ 3791 lines of diff (skipped)
--
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 crmsh for openSUSE:Factory checked in at 2014-04-20 11:36:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crmsh (Old)
and /work/SRC/openSUSE:Factory/.crmsh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crmsh"
Changes:
--------
--- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes 2014-04-09 13:12:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.crmsh.new/crmsh.changes 2014-04-20 11:36:52.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Apr 11 07:58:21 UTC 2014 - kgronlund(a)suse.com
+
+- hb_report: pcmk lib changed permissions (bnc#872958)
+- history: Use subsecond precision if possible (bnc#872932)
+- history: set colours for all nodes found (bnc#872936)
+- upstream: 2.0.0-18-ga957470950b6
+
+-------------------------------------------------------------------
+Wed Apr 9 12:37:17 UTC 2014 - kgronlund(a)suse.com
+
+- parse: Support cib object tags (fate#315101)
+- cibconfig: Support filename-style globs in show/edit (bnc#864346)
+- Support Pacemaker 1.3 schema
+- upstream: 2.0.0-12-g60ed9131ec43
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ crmsh.spec ++++++
--- /var/tmp/diff_new_pack.c272Ki/_old 2014-04-20 11:36:53.000000000 +0200
+++ /var/tmp/diff_new_pack.c272Ki/_new 2014-04-20 11:36:53.000000000 +0200
@@ -41,7 +41,7 @@
Summary: High Availability cluster command-line interface
License: GPL-2.0+
Group: %{pkg_group}
-Version: 2.0+git5
+Version: 2.0+git18
Release: %{?crmsh_release}%{?dist}
Url: http://crmsh.github.io
Source0: crmsh.tar.bz2
++++++ crmsh.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/doc/crm.8.txt new/crmsh/doc/crm.8.txt
--- old/crmsh/doc/crm.8.txt 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/doc/crm.8.txt 2014-04-11 09:31:00.000000000 +0200
@@ -2717,6 +2717,24 @@
op_defaults record-pending=true
...............
+[[cmdhelp_configure_tag,Define resource tags]]
+==== `tag`
+
+Define a resource tag. A tag is an id referring to one or more
+resources, without implying any constraints between the tagged
+resources. This can be useful for grouping conceptually related
+resources.
+
+Usage:
+...............
+tag <tag-name>: <rsc> [<rsc> ...]
+...............
+Example:
+...............
+tag web: p-webserver p-vip
+...............
+
+
[[cmdhelp_configure_schema,set or display current CIB RNG schema]]
==== `schema`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/hb_report/ha_cf_support.sh new/crmsh/hb_report/ha_cf_support.sh
--- old/crmsh/hb_report/ha_cf_support.sh 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/hb_report/ha_cf_support.sh 2014-04-11 09:31:00.000000000 +0200
@@ -76,7 +76,7 @@
cat<<EOF
d $HA_VARLIB 0755 root root
d $HA_VARLIB/ccm 0750 hacluster haclient
-d $PCMK_LIB 0755 root root
+d $PCMK_LIB 0750 hacluster haclient
d $PE_STATE_DIR 0750 hacluster haclient
d $CIB_DIR 0750 hacluster haclient
EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/hb_report/openais_conf_support.sh new/crmsh/hb_report/openais_conf_support.sh
--- old/crmsh/hb_report/openais_conf_support.sh 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/hb_report/openais_conf_support.sh 2014-04-11 09:31:00.000000000 +0200
@@ -90,7 +90,7 @@
}
essential_files() {
cat<<EOF
-d $PCMK_LIB 0755 root root
+d $PCMK_LIB 0750 hacluster haclient
d $PE_STATE_DIR 0750 hacluster haclient
d $CIB_DIR 0750 hacluster haclient
EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/cibconfig.py new/crmsh/modules/cibconfig.py
--- old/crmsh/modules/cibconfig.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/cibconfig.py 2014-04-11 09:31:00.000000000 +0200
@@ -20,6 +20,7 @@
import os
import sys
import re
+import fnmatch
import time
import config
from singletonmixin import Singleton
@@ -824,6 +825,7 @@
"utilization": "utilization",
"operations": "operations",
"op": "op",
+ "tag": "tag",
}
@@ -1752,7 +1754,8 @@
for enode in self.node.xpath("rule/expression"):
if enode.get("attribute") == "#uname":
uname = enode.get("value")
- if uname and uname.lower() not in [id.lower() for id in cib_factory.node_id_list()]:
+ ids = [i.lower() for i in cib_factory.node_id_list()]
+ if uname and uname.lower() not in ids:
common_warn("%s: referenced node %s does not exist" % (self.obj_id, uname))
rc = 1
return rc
@@ -2141,6 +2144,29 @@
headnode.append(n)
remove_id_used_attributes(oldnode)
return headnode
+
+
+class CibTag(CibObject):
+
+ def _repr_cli_head(self, fmt):
+ s = cli_display.keyword('tag')
+ id_ = cli_display.id(self.obj_id)
+ return "%s %s:" % (s, id_)
+
+ def _repr_cli_child(self, c, fmt):
+ return c.get('id')
+
+ def _cli_list2node(self, cli_list, oldnode):
+ """
+ cli_list: [[tag] <id> [<rsc>, <rsc>...]]
+ out: <tag id="<id>"><obj_ref id="<rsc>">...</tag>
+ """
+ tagid = cli_list[0][1][0][1]
+ tag = etree.Element('tag', id=tagid)
+ for rsc in cli_list[1]:
+ etree.SubElement(tag, 'obj_ref', id=rsc)
+ return tag
+
#
################################################################
@@ -2182,6 +2208,7 @@
"fencing-topology": ("fencing_topology", CibFencingOrder, "configuration"),
"acl_role": ("role", CibAcl, "acls"),
"acl_user": ("user", CibAcl, "acls"),
+ "tag": ("tag", CibTag, "tags"),
}
# generate a translation cli -> tag
@@ -2212,7 +2239,7 @@
self.last_commit_time = 0
# internal (just not to produce silly messages)
self._no_constraint_rm_msg = False
- self.supported_cib_re = "^pacemaker-1[.][012]$"
+ self.supported_cib_re = "^pacemaker-1[.][0123]$"
def is_cib_sane(self):
# try to initialize
@@ -2616,16 +2643,23 @@
self._clean_state()
id_store.clear()
- def find_object(self, obj_id):
- "Find an object for id."
+ def find_objects(self, obj_id):
+ "Find objects for id (can be a wildcard-glob)."
+ matchfn = lambda x: fnmatch.fnmatch(x, obj_id)
+ objs = []
for obj in self.cib_objects:
- if obj.obj_id == obj_id:
- return obj
+ if matchfn(obj.obj_id):
+ objs.append(obj)
# special case for Heartbeat nodes which have id
# different from uname
- if obj.obj_type == "node" and \
- obj.node.get("uname") == obj_id:
- return obj
+ elif obj.obj_type == "node" and matchfn(obj.node.get("uname")):
+ objs.append(obj)
+ return objs
+
+ def find_object(self, obj_id):
+ objs = self.find_objects(obj_id)
+ if len(objs) > 0:
+ return objs[0]
return None
#
@@ -2895,10 +2929,10 @@
elif spec.startswith("type:"):
obj_set |= set(self.get_elems_on_type(spec))
else:
- obj = self.find_object(spec)
- if obj:
+ objs = self.find_objects(spec)
+ for obj in objs:
obj_set.add(obj)
- else:
+ if len(objs) == 0:
no_object_err(spec)
rc = False
return rc, obj_set
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/cibobjects.py new/crmsh/modules/cibobjects.py
--- old/crmsh/modules/cibobjects.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/cibobjects.py 2014-04-11 09:31:00.000000000 +0200
@@ -397,3 +397,15 @@
def _to_list(self):
return listfmt('[[% [[id %]]] [raw %]]', self.type, self.id, self.raw)
+
+
+class Tag(Expr):
+ def __init__(self):
+ Expr.__init__(self)
+ self.id = None
+ self.resources = []
+
+ def _to_list(self):
+ ret = listfmt('[[tag [[id %]]]]', self.id)
+ ret.append(self.resources)
+ return ret
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/pacemaker.py new/crmsh/modules/pacemaker.py
--- old/crmsh/modules/pacemaker.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/pacemaker.py 2014-04-11 09:31:00.000000000 +0200
@@ -30,6 +30,7 @@
"pacemaker-1.0": ("rng", "pacemaker-1.0.rng"),
"pacemaker-1.1": ("rng", "pacemaker-1.1.rng"),
"pacemaker-1.2": ("rng", "pacemaker-1.2.rng"),
+ "pacemaker-1.3": ("rng", "pacemaker-1.3.rng"),
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/parse.py new/crmsh/modules/parse.py
--- old/crmsh/modules/parse.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/parse.py 2014-04-11 09:31:00.000000000 +0200
@@ -26,7 +26,7 @@
from msg import common_err, syntax_err
from cibobjects import Primitive, RscTemplate, Group, Clone, Master
from cibobjects import Location, Colocation, Order
-from cibobjects import Monitor, Node, Property, RscTicket
+from cibobjects import Monitor, Node, Property, RscTicket, Tag
from cibobjects import FencingTopology, ACLRight, Role, User, RawXML
@@ -805,6 +805,28 @@
return out
+class TagParser(BaseParser):
+ _TAG_RE = re.compile(r"([^:]+):$")
+
+ def can_parse(self):
+ return ('tag',)
+
+ def parse(self, cmd):
+ self.begin(cmd, min_args=2)
+ self.match('tag')
+ self.match(self._TAG_RE)
+ tagname = self.matched(1)
+ resources = []
+ while self.has_tokens():
+ resources.append(self.match_resource())
+ if not resources:
+ self.err("Expected at least one resource")
+ out = Tag()
+ out.id = tagname
+ out.resources = resources
+ return out
+
+
class AclParser(BaseParser):
_ACL_RIGHT_RE = re.compile(r'(%s)$' % ('|'.join(vars.acl_rule_names)), re.IGNORECASE)
_ROLE_REF_RE = re.compile(r'role:(.+)$', re.IGNORECASE)
@@ -1174,7 +1196,8 @@
PropertyParser,
FencingOrderParser,
AclParser,
- RawXMLParser)
+ RawXMLParser,
+ TagParser)
def _xml_lex(self, s):
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/report.py new/crmsh/modules/report.py
--- old/crmsh/modules/report.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/report.py 2014-04-11 09:31:00.000000000 +0200
@@ -72,13 +72,13 @@
def syslog_ts(s):
try:
# strptime defaults year to 1900 (sigh)
+ # strptime returns a time_struct
tm = time.strptime(' '.join([YEAR] + s.split()[0:3]),
"%Y %b %d %H:%M:%S")
- return time.mktime(tm)
+ return datetime.datetime.fromtimestamp(time.mktime(tm))
except: # try the rfc5424
try:
- tm = parse_time(s.split()[0])
- return time.mktime(tm.timetuple())
+ return parse_time(s.split()[0])
except Exception:
common_debug("malformed line: %s" % s)
return None
@@ -1038,7 +1038,7 @@
def set_node_colors(self):
i = 0
- for n in self.cibnode_l:
+ for n in self.get_nodes():
self.nodecolor[n] = self.nodecolors[i]
i = (i+1) % len(self.nodecolors)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/ui_configure.py new/crmsh/modules/ui_configure.py
--- old/crmsh/modules/ui_configure.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/ui_configure.py 2014-04-11 09:31:00.000000000 +0200
@@ -758,6 +758,11 @@
status"""
return self.__conf_object(context.get_command_name(), *args)
+ @command.skill_level('administrator')
+ @command.completers_repeating(compl.null, top_rsc_tmpl_id_list)
+ def do_tag(self, context, *args):
+ return self.__conf_object(context.get_command_name(), *args)
+
@command.skill_level('expert')
@command.completers_repeating(_rsc_id_list)
def do_rsctest(self, context, *args):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/ui_resource.py new/crmsh/modules/ui_resource.py
--- old/crmsh/modules/ui_resource.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/ui_resource.py 2014-04-11 09:31:00.000000000 +0200
@@ -90,7 +90,16 @@
else:
for n in xmlutil.get_set_nodes(target_node, "meta_attributes", 1):
xmlutil.set_attr(n, attr, value)
- return xmlutil.commit_rsc(target_node)
+ return True
+
+
+def set_deep_meta_attr_tag(tag, attr, value):
+ """
+ tag: an etree tag node
+ TODO: make transactional (shadow CIB?)
+ """
+ return all(set_deep_meta_attr(attr, value, ref.get('id'))
+ for ref in tag.xpath("./obj_ref"))
def set_deep_meta_attr(attr, value, rsc_id):
@@ -109,10 +118,15 @@
if target_node is None:
common_error("resource %s does not exist" % rsc_id)
return False
+
+ if target_node.tag == 'tag':
+ return set_deep_meta_attr_tag(target_node, attr, value)
if not (target_node.tag == "primitive" and
target_node.getparent().tag == "group"):
target_node = xmlutil.get_topmost_rsc(target_node)
- return set_deep_meta_attr_node(target_node, attr, value)
+ if not set_deep_meta_attr_node(target_node, attr, value):
+ return False
+ return xmlutil.commit_rsc(target_node)
def cleanup_resource(rsc, node=''):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/utils.py new/crmsh/modules/utils.py
--- old/crmsh/modules/utils.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/utils.py 2014-04-11 09:31:00.000000000 +0200
@@ -380,7 +380,8 @@
cmd = "(%s; rm -f %s)" % (cmd, dotfile)
if options.regression_tests:
print ".EXT", cmd
- subprocess.Popen(cmd, shell=True, bufsize=0, stdin=None, stdout=None, stderr=None, close_fds=True)
+ subprocess.Popen(cmd, shell=True, bufsize=0,
+ stdin=None, stdout=None, stderr=None, close_fds=True)
common_info("starting %s to show %s" % (config.core.dotty, desc))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/modules/xmlutil.py new/crmsh/modules/xmlutil.py
--- old/crmsh/modules/xmlutil.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/modules/xmlutil.py 2014-04-11 09:31:00.000000000 +0200
@@ -887,7 +887,7 @@
def filter_on_type(cl, obj_type):
- if type(cl[0]) == type([]):
+ if isinstance(cl[0], list):
l = [cli_list for cli_list in cl if cli_list[0][0] == obj_type]
if config.core.sort_elements:
l.sort(cmp=cmp)
@@ -958,7 +958,8 @@
'''
if not cl:
return []
- return nodes_cli(cl) + templates_cli(cl) + primitives_cli(cl) + groups_cli(cl) + mss_cli(cl) + clones_cli(cl) \
+ return nodes_cli(cl) + templates_cli(cl) + primitives_cli(cl) \
+ + groups_cli(cl) + mss_cli(cl) + clones_cli(cl) \
+ constraints_cli(cl) + fencing_topology_cli(cl) + properties_cli(cl) \
+ ops_cli(cl) + acls_cli(cl)
@@ -1311,18 +1312,18 @@
if a.tag != b.tag:
return fail("tags differ: %s != %s" % (a.tag, b.tag))
- if a.attrib != b.attrib:
+ elif a.attrib != b.attrib:
return fail("attributes differ: %s != %s" % (a.attrib, b.attrib))
- if safe_strip(a.text) != safe_strip(b.text):
+ elif safe_strip(a.text) != safe_strip(b.text):
return fail("text differ %s != %s" % (repr(a.text), repr(b.text)))
- if safe_strip(a.tail) != safe_strip(b.tail):
+ elif safe_strip(a.tail) != safe_strip(b.tail):
return fail("tails differ: %s != %s" % (a.tail, b.tail))
- if len(a) != len(b):
+ elif len(a) != len(b):
return fail("number of children differ")
+ elif len(a) == 0:
+ return True
sorted_children = zip(sorted(a, key=sortby), sorted(b, key=sortby))
- if sorted_children:
- return all(xml_equals_unordered(a, b) for a, b in sorted_children)
- return True
+ return all(xml_equals_unordered(a, b) for a, b in sorted_children)
def xml_equals(n, m, show=False):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh/test/unittests/test_parse.py new/crmsh/test/unittests/test_parse.py
--- old/crmsh/test/unittests/test_parse.py 2014-04-07 22:28:33.000000000 +0200
+++ new/crmsh/test/unittests/test_parse.py 2014-04-11 09:31:00.000000000 +0200
@@ -362,6 +362,19 @@
out = self.parser.parse('fencing_topology vbox4: stonith-vbox3-1-off,stonith-vbox3-2-off,stonith-vbox3-1-on,stonith-vbox3-2-on')
self.assertEqual(1, len(out.levels))
+ def test_tag(self):
+ out = self.parser.parse('tag tag1: one two three')
+ self.assertEqual(out.id, 'tag1')
+ self.assertEqual(out.resources, ['one', 'two', 'three'])
+ self.assertEqual([['tag', [['id', 'tag1']]], ['one', 'two', 'three']],
+ out.to_list())
+
+ out = self.parser.parse('tag tag1:')
+ self.assertFalse(out)
+
+ out = self.parser.parse('tag tag1:: foo')
+ self.assertFalse(out)
+
def _parse_lines(self, lines):
out = []
for line in lines2cli(lines):
--
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 rabbitmq-server for openSUSE:Factory checked in at 2014-04-20 11:36:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rabbitmq-server (Old)
and /work/SRC/openSUSE:Factory/.rabbitmq-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rabbitmq-server"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rabbitmq-server/rabbitmq-server.changes 2014-04-05 21:41:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rabbitmq-server.new/rabbitmq-server.changes 2014-04-20 11:36:44.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Apr 10 10:25:08 UTC 2014 - matwey.kornilov(a)gmail.com
+
+- require epmd.socket in .service in order not to start earlier
+ than epmd.socket
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rabbitmq-server.service ++++++
--- /var/tmp/diff_new_pack.sRWlRH/_old 2014-04-20 11:36:45.000000000 +0200
+++ /var/tmp/diff_new_pack.sRWlRH/_new 2014-04-20 11:36:45.000000000 +0200
@@ -1,6 +1,7 @@
[Unit]
Description=RabbitMQ broker
-After=syslog.target network.target
+After=epmd.socket syslog.target network.target
+Requires=epmd.socket
[Service]
Type=simple
--
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 openstack-trove for openSUSE:Factory checked in at 2014-04-20 11:36:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-trove (Old)
and /work/SRC/openSUSE:Factory/.openstack-trove.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-trove"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-trove/openstack-trove.changes 2014-04-14 12:33:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-trove.new/openstack-trove.changes 2014-04-20 11:36:40.000000000 +0200
@@ -1,0 +2,11 @@
+Thu Apr 17 12:55:28 UTC 2014 - dmueller(a)suse.com
+
+- update to 2014.1:
+ * no change
+
+-------------------------------------------------------------------
+Mon Apr 14 12:34:29 UTC 2014 - dmueller(a)suse.com
+
+- switch to release (2014.1.rc1)
+
+-------------------------------------------------------------------
Old:
----
trove-milestone-proposed.tar.gz
New:
----
trove-2014.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openstack-trove.spec ++++++
--- /var/tmp/diff_new_pack.VEwpJ8/_old 2014-04-20 11:36:41.000000000 +0200
+++ /var/tmp/diff_new_pack.VEwpJ8/_new 2014-04-20 11:36:41.000000000 +0200
@@ -21,13 +21,13 @@
%define username %{component}
Name: openstack-%{component}
-Version: 2014.1.dev62.g3582409
+Version: 2014.1
Release: 0
Summary: Openstack DBaaS (Trove)
License: Apache-2.0
Group: System/Management
Url: https://launchpad.net/trove
-Source: http://tarballs.openstack.org/trove/trove-milestone-proposed.tar.gz
+Source: http://tarballs.openstack.org/trove/trove-%{version}.tar.gz
Source1: %{name}.init
Source2: %{name}.logrotate
%if 0%{?suse_version} > 1230
@@ -65,22 +65,22 @@
Group: Development/Languages/Python
Requires: python >= 2.6.8
Requires: python-Jinja2
-Requires: python-PasteDeploy >= 1.5.0
+Requires: python-PasteDeploy >= 1.5
Requires: python-Routes >= 1.12.3
Requires: python-SQLAlchemy >= 0.7.8
Requires: python-WebOb >= 1.2.3
Requires: python-cinderclient >= 1.0.6
-Requires: python-designateclient >= 1.0.0
-Requires: python-eventlet >= 0.13.0
+Requires: python-designateclient >= 1
+Requires: python-eventlet >= 0.13
Requires: python-heatclient >= 0.2.3
Requires: python-iso8601 >= 0.1.9
-Requires: python-jsonschema >= 2.0.0
-Requires: python-keystoneclient >= 0.7.0
+Requires: python-jsonschema >= 2
+Requires: python-keystoneclient >= 0.7
Requires: python-kombu >= 2.4.8
Requires: python-lxml >= 2.3
Requires: python-netaddr >= 0.7.6
-Requires: python-novaclient >= 2.17.0
-Requires: python-oslo.config >= 1.2.0
+Requires: python-novaclient >= 2.17
+Requires: python-oslo.config >= 1.2
Requires: python-passlib
Requires: python-pexpect >= 3.1
Requires: python-proboscis >= 1.2.5.3
@@ -136,7 +136,7 @@
%if 0%{?suse_version} <= 1110
Requires: python-discover
%endif
-Requires: python-WebTest >= 2.0
+Requires: python-WebTest >= 2
Requires: python-mockito
Requires: python-mox >= 0.5.3
Requires: python-nose
@@ -149,7 +149,7 @@
This package contains testsuite files for %{name}.
%prep
-%setup -q -n %{component}-2014.1.dev62.g3582409
+%setup -q -n %{component}-%{version}
%openstack_cleanup_prep
%build
++++++ trove-milestone-proposed.tar.gz -> trove-2014.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trove-2014.1.dev62.g3582409/ChangeLog new/trove-2014.1/ChangeLog
--- old/trove-2014.1.dev62.g3582409/ChangeLog 2014-04-02 14:13:29.000000000 +0200
+++ new/trove-2014.1/ChangeLog 2014-04-17 11:36:15.000000000 +0200
@@ -1,6 +1,9 @@
CHANGES
=======
+2014.1
+------
+
* Fixed unit test to not actually run backup command
* Fix create call for security group rules
* Updated from global requirements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trove-2014.1.dev62.g3582409/PKG-INFO new/trove-2014.1/PKG-INFO
--- old/trove-2014.1.dev62.g3582409/PKG-INFO 2014-04-02 14:13:29.000000000 +0200
+++ new/trove-2014.1/PKG-INFO 2014-04-17 11:36:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trove
-Version: 2014.1.dev62.g3582409
+Version: 2014.1
Summary: OpenStack DBaaS
Home-page: http://www.openstack.org/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trove-2014.1.dev62.g3582409/trove.egg-info/PKG-INFO new/trove-2014.1/trove.egg-info/PKG-INFO
--- old/trove-2014.1.dev62.g3582409/trove.egg-info/PKG-INFO 2014-04-02 14:13:29.000000000 +0200
+++ new/trove-2014.1/trove.egg-info/PKG-INFO 2014-04-17 11:36:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: trove
-Version: 2014.1.dev62.g3582409
+Version: 2014.1
Summary: OpenStack DBaaS
Home-page: http://www.openstack.org/
Author: OpenStack
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
20 Apr '14
Hello community,
here is the log from the commit of package python-sphinxcontrib-docbookrestapi for openSUSE:Factory checked in at 2014-04-20 11:36:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sphinxcontrib-docbookrestapi (Old)
and /work/SRC/openSUSE:Factory/.python-sphinxcontrib-docbookrestapi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sphinxcontrib-docbookrestapi"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sphinxcontrib-docbookrestapi/python-sphinxcontrib-docbookrestapi.changes 2014-04-13 13:18:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-sphinxcontrib-docbookrestapi.new/python-sphinxcontrib-docbookrestapi.changes 2014-04-20 11:36:37.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Apr 14 13:36:51 UTC 2014 - dmueller(a)suse.com
+
+- add 0001-Fix-the-code-to-work-with-Python2.6.patch
+
+-------------------------------------------------------------------
New:
----
0001-Fix-the-code-to-work-with-Python2.6.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sphinxcontrib-docbookrestapi.spec ++++++
--- /var/tmp/diff_new_pack.xKMNXN/_old 2014-04-20 11:36:38.000000000 +0200
+++ /var/tmp/diff_new_pack.xKMNXN/_new 2014-04-20 11:36:38.000000000 +0200
@@ -26,6 +26,7 @@
Source: sphinxcontrib-docbookrestapi-%{version}.tar.gz
# PATCH-FIX-UPSTREAM speilicke(a)suse.com -- https://review.openstack.org/#/c/84132/
Patch0: 0001-Properly-declare-namespace-package.patch
+Patch1: 0001-Fix-the-code-to-work-with-Python2.6.patch
BuildRequires: python-devel
BuildRequires: python-pbr
Requires: python-Sphinx
@@ -44,6 +45,7 @@
%prep
%setup -q -n sphinxcontrib-docbookrestapi-%{version}
%patch0 -p1
+%patch1 -p1
%build
python setup.py build
++++++ 0001-Fix-the-code-to-work-with-Python2.6.patch ++++++
>From 9ad4e8f5fe41b3c9bf334a3f9aea925a5128eddc Mon Sep 17 00:00:00 2001
From: Cyril Roelandt <cyril.roelandt(a)enovance.com>
Date: Fri, 29 Nov 2013 18:44:09 +0100
Subject: [PATCH] Fix the code to work with Python2.6
It was previously using some features introduced in Python2.7.
Change-Id: I3b4b2895f231cf98235efd16f65eb123db8a9157
---
sphinxcontrib/docbookrestapi/docbook.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sphinxcontrib/docbookrestapi/docbook.py b/sphinxcontrib/docbookrestapi/docbook.py
index 63ecfd9..e923e53 100644
--- a/sphinxcontrib/docbookrestapi/docbook.py
+++ b/sphinxcontrib/docbookrestapi/docbook.py
@@ -30,7 +30,7 @@ def generate_id(path, method):
path = path.replace('(', '')
path = path.replace(')', '')
elems = path.split('/')
- elems = filter(lambda x: x, elems) # Remove empty strings
+ elems = list(filter(lambda x: x, elems)) # Remove empty strings
elems = elems[1:] # Remove "vx" (v1, v2...)
n_elems = len(elems)
@@ -189,12 +189,12 @@ class MyNodeVisitor(SparseNodeVisitor):
self.in_method_definition = False
def visit_desc(self, node):
- attrs = {k: v for (k, v) in node.attlist()}
+ attrs = dict(node.attlist())
if attrs['domain'] == 'http':
self.in_method_definition = True
def visit_desc_signature(self, node):
- attrs = {k: v for (k, v) in node.attlist()}
+ attrs = dict(node.attlist())
if 'method' in attrs and 'path' in attrs:
method_id = generate_id(attrs['path'], attrs['method'])
self.current_method = ET.Element('method', {
--
1.9.0
--
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 openstack-ceilometer for openSUSE:Factory checked in at 2014-04-20 11:36:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-ceilometer (Old)
and /work/SRC/openSUSE:Factory/.openstack-ceilometer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-ceilometer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-ceilometer/openstack-ceilometer.changes 2014-04-14 10:52:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-ceilometer.new/openstack-ceilometer.changes 2014-04-20 11:36:32.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Apr 14 08:54:16 UTC 2014 - dmueller(a)suse.com
+
+- update to 2014.1.rc2:
+ * Allowed nested resource metadata in POST'd samples
+ * Fix Jenkins translation jobs
+ * Updated from global requirements
+
+-------------------------------------------------------------------
Old:
----
ceilometer-2014.1.rc1.tar.gz
New:
----
ceilometer-2014.1.rc2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openstack-ceilometer-doc.spec ++++++
--- /var/tmp/diff_new_pack.NPSfZ5/_old 2014-04-20 11:36:33.000000000 +0200
+++ /var/tmp/diff_new_pack.NPSfZ5/_new 2014-04-20 11:36:33.000000000 +0200
@@ -19,7 +19,7 @@
%define component ceilometer
Name: openstack-%{component}-doc
-Version: 2014.1.rc1
+Version: 2014.1.rc2
Release: 0
Summary: OpenStack Metering (Ceilometer) - Documentation
License: Apache-2.0
++++++ openstack-ceilometer.spec ++++++
--- /var/tmp/diff_new_pack.NPSfZ5/_old 2014-04-20 11:36:33.000000000 +0200
+++ /var/tmp/diff_new_pack.NPSfZ5/_new 2014-04-20 11:36:33.000000000 +0200
@@ -22,7 +22,7 @@
%define username %{component}
Name: openstack-%{component}
-Version: 2014.1.rc1
+Version: 2014.1.rc2
Release: 0
Summary: OpenStack Metering (Ceilometer)
License: Apache-2.0
@@ -92,18 +92,18 @@
Requires: python-croniter >= 0.3.4
Requires: python-eventlet >= 0.13.0
Requires: python-glanceclient >= 0.9.0
-Requires: python-happybase >= 0.4
-Requires: python-iso8601 >= 0.1.8
+Requires: python-happybase >= 0.5
+Requires: python-iso8601 >= 0.1.9
Requires: python-jsonpath-rw >= 1.2.0
Requires: python-jsonschema >= 2.0.0
-Requires: python-keystoneclient >= 0.6.0
+Requires: python-keystoneclient >= 0.7.0
Requires: python-kombu >= 2.4.8
Requires: python-lockfile >= 0.8
Requires: python-lxml >= 2.3
Requires: python-msgpack-python
-Requires: python-novaclient >= 2.15.0
+Requires: python-novaclient >= 2.17.0
Requires: python-oslo.config >= 1.2.0
-Requires: python-oslo.vmware
+Requires: python-oslo.vmware >= 0.2
Requires: python-pecan >= 0.4.5
Requires: python-pymongo >= 2.4
Requires: python-pysnmp >= 4.2.1
++++++ ceilometer-2014.1.rc1.tar.gz -> ceilometer-2014.1.rc2.tar.gz ++++++
++++ 13176 lines of diff (skipped)
--
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 python-openstackclient for openSUSE:Factory checked in at 2014-04-20 11:36:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-openstackclient (Old)
and /work/SRC/openSUSE:Factory/.python-openstackclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-openstackclient"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-openstackclient/python-openstackclient.changes 2014-04-09 19:09:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-openstackclient.new/python-openstackclient.changes 2014-04-20 11:36:25.000000000 +0200
@@ -2 +2 @@
-Thu Mar 27 10:25:53 UTC 2014 - dmueller(a)suse.com
+Mon Apr 7 16:42:07 UTC 2014 - dmueller(a)suse.com
@@ -4,44 +4 @@
-- go back to released version (0.3.1) for Icehouse
-
--------------------------------------------------------------------
-Mon Mar 24 01:10:32 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version python-openstackclient-0.3.1.23.gee22070:
- * Correct display of project/tenant id on display of credentials
-
--------------------------------------------------------------------
-Sun Mar 23 01:11:42 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version python-openstackclient-0.3.1.21.g4900c64:
- * Produce a useful error message for NoUniqueMatch
-
--------------------------------------------------------------------
-Fri Mar 14 00:44:21 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version python-openstackclient-0.3.1.20.g0c0803d:
- * identity v3 allow project list filtering by domain
- * Add ability to set key value pairs in projects
-
--------------------------------------------------------------------
-Thu Mar 13 00:55:17 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version python-openstackclient-0.3.1.17.g65f094e:
- * Updated from global requirements
-
--------------------------------------------------------------------
-Tue Mar 11 00:58:06 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version python-openstackclient-0.3.1.16.gcf8506d:
- * Fix 'keypair show' command output
-
--------------------------------------------------------------------
-Mon Mar 10 15:39:48 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version python-openstackclient-0.3.1.14.g4632238:
- * add interface and url to endpoint list
- * Fixed spelling error, compatability to compatibility
- * Fixed Spelling errors - compatability to compatibility
- * Fixed spelling errors - occurance to occurence
- * Updated from global requirements
- * Add --volume option to image create command
- 0.3.1
+- switch to released version (0.3.1)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-openstackclient.spec ++++++
--- /var/tmp/diff_new_pack.Jg2tzU/_old 2014-04-20 11:36:26.000000000 +0200
+++ /var/tmp/diff_new_pack.Jg2tzU/_new 2014-04-20 11:36:26.000000000 +0200
@@ -36,7 +36,6 @@
%endif
BuildRequires: python-Babel >= 1.3
BuildRequires: python-cliff >= 1.4.3
-BuildRequires: python-fixtures
BuildRequires: python-glanceclient >= 0.9.0
BuildRequires: python-keyring >= 1.6.1
BuildRequires: python-keystoneclient >= 0.3.2
@@ -48,14 +47,13 @@
BuildRequires: python-six >= 1.4.1
BuildRequires: python-testrepository >= 0.0.17
BuildRequires: python-testtools >= 0.9.32
-Requires: python-WebOb >= 1.2.3
Requires: python-cinderclient >= 1.0.6
Requires: python-cliff >= 1.4.3
Requires: python-glanceclient >= 0.9.0
Requires: python-keyring >= 1.6.1
-Requires: python-keystoneclient >= 0.6.0
+Requires: python-keystoneclient >= 0.3.2
Requires: python-novaclient >= 2.15.0
-Requires: python-pbr >= 0.6
+Requires: python-pbr >= 0.5.21
Requires: python-pycrypto >= 2.6
Requires: python-requests >= 1.1
Requires: python-six >= 1.4.1
--
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 python-oslo.messaging for openSUSE:Factory checked in at 2014-04-20 11:36:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.messaging (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.messaging.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.messaging"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.messaging/python-oslo.messaging.changes 2014-04-06 07:15:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.messaging.new/python-oslo.messaging.changes 2014-04-20 11:36:14.000000000 +0200
@@ -1,0 +2,30 @@
+Fri Apr 4 13:15:19 UTC 2014 - dmueller(a)suse.com
+
+- add compat hacks
+
+-------------------------------------------------------------------
+Fri Apr 4 12:13:37 UTC 2014 - dmueller(a)suse.com
+
+- fix package requires
+
+-------------------------------------------------------------------
+Tue Apr 1 13:37:43 UTC 2014 - speilicke(a)suse.com
+
+- Update to version 1.3.0:
+ * Add release notes for 1.3.0
+ * Fix wrong parameter description in docstring
+ * Fixed inconsistent EventletContextManagerSpawnTest failures
+ * Use messaging_conf fixture configuration by default
+ * Fixed possible pep8 failure due to pyflakes bug
+ * Refactor AMQP message broker selection
+ * Add unit test to check the order of Qpid hosts on reconnect
+ * Clean up for qpid tests
+ * Add kombu driver library to requirements.txt
+ * Use driver's notify_send() method again
+ * Remove vim header
+ * Updated from global requirements
+ * Fixed spelling error - runnung to running
+ * Build log_handler documentation
+ * Add release notes up to 1.3.0a9
+
+-------------------------------------------------------------------
Old:
----
oslo.messaging-1.3.0a9.tar.gz
New:
----
oslo.messaging-1.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.messaging.spec ++++++
--- /var/tmp/diff_new_pack.3pPVqN/_old 2014-04-20 11:36:15.000000000 +0200
+++ /var/tmp/diff_new_pack.3pPVqN/_new 2014-04-20 11:36:15.000000000 +0200
@@ -18,13 +18,18 @@
%define component oslo
Name: python-oslo.messaging
-Version: 1.3.0a9
+Version: 1.3.0
Release: 0
+%if "%version" != "1.3.0"
+%error remove the lines below
+%endif
+Provides: %name = 1.3.0a4
+Provides: %name = 1.3.0a9
Url: https://launchpad.net/oslo/
Summary: OpenStack Messaging API
License: Apache-2.0
Group: Development/Languages/Python
-Source: http://tarballs.openstack.org/oslo.messaging/oslo.messaging-1.3.0a9.tar.gz
+Source: http://tarballs.openstack.org/oslo.messaging/oslo.messaging-%{version}.tar.…
Source99: rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
@@ -35,11 +40,11 @@
Requires: python-Babel >= 1.3
Requires: python-PyYAML >= 3.1.0
Requires: python-eventlet >= 0.13.0
-Requires: python-iso8601 >= 0.1.8
+Requires: python-iso8601 >= 0.1.9
Requires: python-kombu >= 2.4.8
Requires: python-oslo.config >= 1.2.0
-Requires: python-six >= 1.4.1
-Requires: python-stevedore >= 0.12
+Requires: python-six >= 1.5.2
+Requires: python-stevedore >= 0.14
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
@@ -63,18 +68,17 @@
Summary: OpenStack Messaging API - test suite
Group: System/Management
Requires: %{name} = %{version}
-Requires: python-coverage >= 3.6
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
Requires: python-discover
%endif
Requires: python-fixtures >= 0.3.14
-Requires: python-hacking >= 0.8.0
Requires: python-mock >= 1.0
Requires: python-mox3 >= 0.7.0
-Requires: python-python-subunit
-Requires: python-testrepository >= 0.0.17
+Requires: python-oslotest
+Requires: python-python-subunit >= 0.0.18
+Requires: python-testrepository >= 0.0.18
Requires: python-testscenarios >= 0.4
-Requires: python-testtools >= 0.9.32
+Requires: python-testtools >= 0.9.34
%description test
This package contains testsuite files for %{name}.
++++++ _service ++++++
--- /var/tmp/diff_new_pack.3pPVqN/_old 2014-04-20 11:36:15.000000000 +0200
+++ /var/tmp/diff_new_pack.3pPVqN/_new 2014-04-20 11:36:15.000000000 +0200
@@ -5,6 +5,8 @@
<service mode="disabled" name="set_version">
<param name="basename">oslo.messaging</param>
</service>
+ <service name="python_requires" mode="disabled">
+ </service>
<service name="refresh_patches" mode="disabled">
<param name="changesgenerate">enable</param>
</service>
++++++ oslo.messaging-1.3.0a9.tar.gz -> oslo.messaging-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/ChangeLog new/oslo.messaging-1.3.0/ChangeLog
--- old/oslo.messaging-1.3.0a9/ChangeLog 2014-03-04 20:22:11.000000000 +0100
+++ new/oslo.messaging-1.3.0/ChangeLog 2014-04-01 14:21:49.000000000 +0200
@@ -1,6 +1,25 @@
CHANGES
=======
+1.3.0
+-----
+
+* Add release notes for 1.3.0
+* Fix wrong parameter description in docstring
+* Fixed inconsistent EventletContextManagerSpawnTest failures
+* Use messaging_conf fixture configuration by default
+* Fixed possible pep8 failure due to pyflakes bug
+* Refactor AMQP message broker selection
+* Add unit test to check the order of Qpid hosts on reconnect
+* Clean up for qpid tests
+* Add kombu driver library to requirements.txt
+* Use driver's notify_send() method again
+* Remove vim header
+* Updated from global requirements
+* Fixed spelling error - runnung to running
+* Build log_handler documentation
+* Add release notes up to 1.3.0a9
+
1.3.0a9
-------
@@ -9,8 +28,11 @@
1.3.0a8
-------
+* Expose PublishErrorsHandler through oslo.messaging
+* notify listener: document the metadata callback parameter
* Add missing data into the notif. endpoint callback
* notification listener: add allow_requeue param
+* Adds unit test cases to impl_qpid
* Do not leak _unique_id out of amqp drivers
* Add multiple exchange per listerner in fake driver
* Allow to requeue the notification message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/PKG-INFO new/oslo.messaging-1.3.0/PKG-INFO
--- old/oslo.messaging-1.3.0a9/PKG-INFO 2014-03-04 20:22:11.000000000 +0100
+++ new/oslo.messaging-1.3.0/PKG-INFO 2014-04-01 14:21:49.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: oslo.messaging
-Version: 1.3.0a9
+Version: 1.3.0
Summary: Oslo Messaging API
Home-page: https://launchpad.net/oslo
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/doc/source/index.rst new/oslo.messaging-1.3.0/doc/source/index.rst
--- old/oslo.messaging-1.3.0a9/doc/source/index.rst 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/doc/source/index.rst 2014-04-01 14:21:04.000000000 +0200
@@ -24,6 +24,112 @@
Release Notes
=============
+1.3.0
+-----
+
+Changes since 1.3.0a9:
+
+* Expose PublishErrorsHandler in the public API
+* 1288425_: Add kombu driver library to requirements.txt
+* 1255239_: Add unit tests for the qpid driver
+* 1261631_: Add unit test for Qpid reconnect order
+* 1282706_: Fixed inconsistent eventlet test failures
+* 1297161_: Fixed pep8 failure due to pyflakes bug
+* 1286984_: Build log_handler documentation
+
+.. _1288425: https://bugs.launchpad.net/oslo.messaging/+bug/1288425
+.. _1255239: https://bugs.launchpad.net/oslo.messaging/+bug/1255239
+.. _1261631: https://bugs.launchpad.net/oslo.messaging/+bug/1261631
+.. _1282706: https://bugs.launchpad.net/oslo.messaging/+bug/1282706
+.. _1297161: https://bugs.launchpad.net/oslo.messaging/+bug/1297161
+.. _1286984: https://bugs.launchpad.net/oslo.messaging/+bug/1286984
+
+Thanks to Alex Holden, ChangBo Guo, Clint Byrum, Doug Hellmann, Ihar
+Hrachyshka, Lance Bragstad and Numan Siddique for their contributions
+to this release.
+
+1.3.0a9
+-------
+
+Changes since 1.3.0a8:
+
+* 856764_: Handle RabbitMQ consumer cancel notifications
+* 856764_: Slow down RabbitMQ reconnection attempts
+* 1287542_: Fix issue with duplicate SSL config options registered
+
+.. _856764: https://bugs.launchpad.net/oslo.messaging/+bug/856764
+.. _1287542: https://bugs.launchpad.net/oslo.messaging/+bug/1287542
+
+Thanks to Chet Burgess, Doug Hellmann and Nicolas Simonds for their
+contributions to this release.
+
+1.3.0a8
+-------
+
+Changes since 1.3.0a7:
+
+* notification_listener_: More notification listener API additions
+* log_handler_: Add notifier log handler
+* 1282038_: Fix Qpid driver regression
+* 1276163_: Fix ExpectedException handling
+* 1261631_: Fix RabbitMQ and Qpid reconnection behaviour
+* 1269890_: Support different RabbitMQ login methods
+* 1277168_: Switch from oslo.sphinx to oslosphinx
+* Convert to oslo.test library
+* Improve configuration help strings
+
+.. _notification_listener: https://blueprints.launchpad.net/oslo.messaging/+spec/notification-subscrib…
+.. _log_handler: https://blueprints.launchpad.net/oslo.messaging/+spec/log-handler
+.. _1282038: https://bugs.launchpad.net/oslo.messaging/+bug/1282038
+.. _1276163: https://bugs.launchpad.net/oslo.messaging/+bug/1276163
+.. _1261631: https://bugs.launchpad.net/oslo.messaging/+bug/1261631
+.. _1269890: https://bugs.launchpad.net/oslo.messaging/+bug/1269890
+.. _1277168: https://bugs.launchpad.net/oslo.messaging/+bug/1277168
+
+Thanks to Andreas Jaeger, Ben Nemec, Dirk Mueller, Doug Hellmann,
+Flavio Percoco, Ihar Hrachyshka, Jeremy Hanmer, Joe Harrison,
+Kurt Griffiths, Lance Bragstad, Mehdi Abaakouk and Xavier Queralt
+for their contributions to this release.
+
+1.3.0a7
+-------
+
+Changes since 1.3.0a6:
+
+* notification_listener_: Add notification listener API
+* 1272271_: Fix regression in RabbitMQ reconnection support
+* 1273455_: Remove use of deprecated stevedore API
+
+.. _notification_listener: https://blueprints.launchpad.net/oslo.messaging/+spec/notification-subscrib…
+.. _1272271: https://bugs.launchpad.net/oslo.messaging/+bug/1272271
+.. _1273455: https://bugs.launchpad.net/oslo.messaging/+bug/1273455
+
+Thanks to Ala Rezmerita, Doug Hellmann and Mehdi Abaakouk for their
+contributions to this release.
+
+1.3.0a6
+-------
+
+Changes since 1.3.0a5:
+
+* 1241566_: Enable sample config file generator include oslo.messaging options
+
+.. _1241566: https://bugs.launchpad.net/oslo.messaging/+bug/1241566
+
+Thanks to Andreas Jaeger for his contributions to this release.
+
+1.3.0a5
+-------
+
+Changes since 1.3.0a3:
+
+* routing_notifier_: Add a routing notifier
+
+.. _routing_notifier: http://blueprints.launchpad.net/oslo.messaging/+spec/configurable-notificat…
+
+Thanks to Dirk Mueller and Sandy Walsh for their contributions to this
+release.
+
1.3.0a3
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/doc/source/notifier.rst new/oslo.messaging-1.3.0/doc/source/notifier.rst
--- old/oslo.messaging-1.3.0a9/doc/source/notifier.rst 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/doc/source/notifier.rst 2014-04-01 14:21:03.000000000 +0200
@@ -9,3 +9,6 @@
.. autoclass:: LoggingNotificationHandler
:members:
+
+.. autoclass:: PublishErrorsHandler
+ :members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_cmd/zmq_receiver.py new/oslo.messaging-1.3.0/oslo/messaging/_cmd/zmq_receiver.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_cmd/zmq_receiver.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_cmd/zmq_receiver.py 2014-04-01 14:21:03.000000000 +0200
@@ -1,5 +1,4 @@
#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2011 OpenStack Foundation
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/amqpdriver.py new/oslo.messaging-1.3.0/oslo/messaging/_drivers/amqpdriver.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/amqpdriver.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_drivers/amqpdriver.py 2014-04-01 14:21:04.000000000 +0200
@@ -358,7 +358,8 @@
return self._reply_q
def _send(self, target, ctxt, message,
- wait_for_reply=None, timeout=None, envelope=True):
+ wait_for_reply=None, timeout=None,
+ envelope=True, notify=False):
# FIXME(markmc): remove this temporary hack
class Context(object):
@@ -388,7 +389,9 @@
try:
with self._get_connection() as conn:
- if target.fanout:
+ if notify:
+ conn.notify_send(target.topic, msg)
+ elif target.fanout:
conn.fanout_send(target.topic, msg)
else:
topic = target.topic
@@ -409,7 +412,8 @@
return self._send(target, ctxt, message, wait_for_reply, timeout)
def send_notification(self, target, ctxt, message, version):
- return self._send(target, ctxt, message, envelope=(version == 2.0))
+ return self._send(target, ctxt, message,
+ envelope=(version == 2.0), notify=True)
def listen(self, target):
conn = self._get_connection(pooled=False)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/impl_fake.py new/oslo.messaging-1.3.0/oslo/messaging/_drivers/impl_fake.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/impl_fake.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_drivers/impl_fake.py 2014-04-01 14:21:03.000000000 +0200
@@ -1,5 +1,3 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
# Copyright 2011 OpenStack Foundation
# Copyright 2013 Red Hat, Inc.
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/impl_qpid.py new/oslo.messaging-1.3.0/oslo/messaging/_drivers/impl_qpid.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/impl_qpid.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_drivers/impl_qpid.py 2014-04-01 14:21:03.000000000 +0200
@@ -473,10 +473,7 @@
}
params.update(server_params or {})
- self.brokers = params['qpid_hosts']
-
- brokers_count = len(self.brokers)
- self.next_broker_indices = itertools.cycle(range(brokers_count))
+ self.brokers = itertools.cycle(params['qpid_hosts'])
self.username = params['username']
self.password = params['password']
@@ -515,7 +512,7 @@
except qpid_exceptions.ConnectionError:
pass
- broker = self.brokers[next(self.next_broker_indices)]
+ broker = six.next(self.brokers)
try:
self.connection_create(broker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/impl_rabbit.py new/oslo.messaging-1.3.0/oslo/messaging/_drivers/impl_rabbit.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/impl_rabbit.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_drivers/impl_rabbit.py 2014-04-01 14:21:03.000000000 +0200
@@ -466,10 +466,7 @@
params_list.append(params)
- self.params_list = params_list
-
- brokers_count = len(self.params_list)
- self.next_broker_indices = itertools.cycle(range(brokers_count))
+ self.params_list = itertools.cycle(params_list)
self.memory_transport = self.conf.fake_rabbit
@@ -575,7 +572,7 @@
attempt = 0
while True:
- params = self.params_list[next(self.next_broker_indices)]
+ params = six.next(self.params_list)
attempt += 1
try:
self._connect(params)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/matchmaker.py new/oslo.messaging-1.3.0/oslo/messaging/_drivers/matchmaker.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/matchmaker.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_drivers/matchmaker.py 2014-04-01 14:21:03.000000000 +0200
@@ -1,5 +1,3 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
# Copyright 2011 Cloudscaling Group, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/matchmaker_redis.py new/oslo.messaging-1.3.0/oslo/messaging/_drivers/matchmaker_redis.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/matchmaker_redis.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_drivers/matchmaker_redis.py 2014-04-01 14:21:03.000000000 +0200
@@ -1,5 +1,3 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
# Copyright 2013 Cloudscaling Group, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/matchmaker_ring.py new/oslo.messaging-1.3.0/oslo/messaging/_drivers/matchmaker_ring.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_drivers/matchmaker_ring.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_drivers/matchmaker_ring.py 2014-04-01 14:21:03.000000000 +0200
@@ -1,5 +1,3 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
# Copyright 2011-2013 Cloudscaling Group, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/_executors/impl_eventlet.py new/oslo.messaging-1.3.0/oslo/messaging/_executors/impl_eventlet.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/_executors/impl_eventlet.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/_executors/impl_eventlet.py 2014-04-01 14:21:03.000000000 +0200
@@ -57,6 +57,8 @@
thread = pool.spawn(callback)
thread.link(complete, ctxt.__exit__)
+ return thread
+
class EventletExecutor(base.ExecutorBase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/conffixture.py new/oslo.messaging-1.3.0/oslo/messaging/conffixture.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/conffixture.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/conffixture.py 2014-04-01 14:21:03.000000000 +0200
@@ -46,8 +46,14 @@
self.conf = conf
_import_opts(self.conf,
'oslo.messaging._drivers.impl_rabbit', 'rabbit_opts')
+ _import_opts(self.conf,
+ 'oslo.messaging._drivers.impl_qpid', 'qpid_opts')
+ _import_opts(self.conf,
+ 'oslo.messaging._drivers.amqp', 'amqp_opts')
_import_opts(self.conf, 'oslo.messaging.rpc.client', '_client_opts')
_import_opts(self.conf, 'oslo.messaging.transport', '_transport_opts')
+ _import_opts(self.conf,
+ 'oslo.messaging.notify.notifier', '_notifier_opts')
def setUp(self):
super(ConfFixture, self).setUp()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/notify/__init__.py new/oslo.messaging-1.3.0/oslo/messaging/notify/__init__.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/notify/__init__.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/notify/__init__.py 2014-04-01 14:21:03.000000000 +0200
@@ -16,9 +16,11 @@
__all__ = ['Notifier',
'LoggingNotificationHandler',
'get_notification_listener',
- 'NotificationResult']
+ 'NotificationResult',
+ 'PublishErrorsHandler']
from .notifier import *
from .listener import *
+from .log_handler import *
from .logger import *
from .dispatcher import NotificationResult
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/notify/listener.py new/oslo.messaging-1.3.0/oslo/messaging/notify/listener.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/notify/listener.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/notify/listener.py 2014-04-01 14:21:03.000000000 +0200
@@ -71,7 +71,9 @@
priority
Parameters to endpoint methods are the request context supplied by the client,
-the publisher_id of the notification message, the event_type, the payload.
+the publisher_id of the notification message, the event_type, the payload and
+metadata. The metadata parameter is a mapping containing a unique message_id
+and a timestamp.
By supplying a serializer object, a listener can deserialize a request context
and arguments from - and serialize return values to - primitive types.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/notify/log_handler.py new/oslo.messaging-1.3.0/oslo/messaging/notify/log_handler.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/notify/log_handler.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/notify/log_handler.py 2014-04-01 14:21:03.000000000 +0200
@@ -13,11 +13,13 @@
import logging
from oslo.config import cfg
-from oslo import messaging
class PublishErrorsHandler(logging.Handler):
def __init__(self, *args, **kwargs):
+ # NOTE(dhellmann): Avoid a cyclical import by doing this one
+ # at runtime.
+ from oslo import messaging
logging.Handler.__init__(self, *args, **kwargs)
self._transport = messaging.get_transport(cfg.CONF)
self._notifier = messaging.Notifier(self._transport,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo/messaging/rpc/client.py new/oslo.messaging-1.3.0/oslo/messaging/rpc/client.py
--- old/oslo.messaging-1.3.0a9/oslo/messaging/rpc/client.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo/messaging/rpc/client.py 2014-04-01 14:21:03.000000000 +0200
@@ -320,7 +320,7 @@
:param method: the method name
:type method: str
:param kwargs: a dict of method arguments
- :param kwargs: dict
+ :type kwargs: dict
"""
self.prepare().cast(ctxt, method, **kwargs)
@@ -355,7 +355,7 @@
:param method: the method name
:type method: str
:param kwargs: a dict of method arguments
- :param kwargs: dict
+ :type kwargs: dict
:raises: MessagingTimeout, RemoteError
"""
return self.prepare().call(ctxt, method, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo.messaging.egg-info/PKG-INFO new/oslo.messaging-1.3.0/oslo.messaging.egg-info/PKG-INFO
--- old/oslo.messaging-1.3.0a9/oslo.messaging.egg-info/PKG-INFO 2014-03-04 20:22:11.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo.messaging.egg-info/PKG-INFO 2014-04-01 14:21:49.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: oslo.messaging
-Version: 1.3.0a9
+Version: 1.3.0
Summary: Oslo Messaging API
Home-page: https://launchpad.net/oslo
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo.messaging.egg-info/SOURCES.txt new/oslo.messaging-1.3.0/oslo.messaging.egg-info/SOURCES.txt
--- old/oslo.messaging-1.3.0a9/oslo.messaging.egg-info/SOURCES.txt 2014-03-04 20:22:11.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo.messaging.egg-info/SOURCES.txt 2014-04-01 14:21:49.000000000 +0200
@@ -97,6 +97,7 @@
tests/test_notify_listener.py
tests/test_opts.py
tests/test_pool.py
+tests/test_qpid.py
tests/test_rabbit.py
tests/test_rpc_client.py
tests/test_rpc_dispatcher.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/oslo.messaging.egg-info/requires.txt new/oslo.messaging-1.3.0/oslo.messaging.egg-info/requires.txt
--- old/oslo.messaging-1.3.0a9/oslo.messaging.egg-info/requires.txt 2014-03-04 20:22:11.000000000 +0100
+++ new/oslo.messaging-1.3.0/oslo.messaging.egg-info/requires.txt 2014-04-01 14:21:49.000000000 +0200
@@ -1,7 +1,8 @@
oslo.config>=1.2.0
stevedore>=0.14
-iso8601>=0.1.8
+iso8601>=0.1.9
six>=1.5.2
eventlet>=0.13.0
Babel>=1.3
-PyYAML>=3.1.0
\ No newline at end of file
+PyYAML>=3.1.0
+kombu>=2.4.8
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/requirements.txt new/oslo.messaging-1.3.0/requirements.txt
--- old/oslo.messaging-1.3.0a9/requirements.txt 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/requirements.txt 2014-04-01 14:21:03.000000000 +0200
@@ -2,7 +2,7 @@
stevedore>=0.14
# for timeutils
-iso8601>=0.1.8
+iso8601>=0.1.9
# for jsonutils
six>=1.5.2
@@ -17,3 +17,6 @@
# for the routing notifier
PyYAML>=3.1.0
+
+# rabbit driver is the default
+kombu>=2.4.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/test-requirements.txt new/oslo.messaging-1.3.0/test-requirements.txt
--- old/oslo.messaging-1.3.0a9/test-requirements.txt 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/test-requirements.txt 2014-04-01 14:21:03.000000000 +0200
@@ -11,8 +11,8 @@
testtools>=0.9.34
oslotest
-# for test_rabbit
-kombu>=2.4.8
+# for test_qpid
+qpid-python
# when we can require tox>= 1.4, this can go into tox.ini:
# [testenv:cover]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_executor.py new/oslo.messaging-1.3.0/tests/test_executor.py
--- old/oslo.messaging-1.3.0a9/tests/test_executor.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_executor.py 2014-04-01 14:21:03.000000000 +0200
@@ -105,8 +105,8 @@
self.mgr = context_mgr()
def test_normal_run(self):
- impl_eventlet.spawn_with(self.mgr, pool=eventlet)
- eventlet.sleep(0)
+ thread = impl_eventlet.spawn_with(self.mgr, pool=eventlet)
+ thread.wait()
self.assertEqual(self.before.call_count, 1)
self.assertEqual(self.callback.call_count, 1)
self.assertEqual(self.after.call_count, 1)
@@ -114,8 +114,11 @@
def test_excepted_exception(self):
self.callback.side_effect = ExceptedException
- impl_eventlet.spawn_with(self.mgr, pool=eventlet)
- eventlet.sleep(0)
+ thread = impl_eventlet.spawn_with(self.mgr, pool=eventlet)
+ try:
+ thread.wait()
+ except ExceptedException:
+ pass
self.assertEqual(self.before.call_count, 1)
self.assertEqual(self.callback.call_count, 1)
self.assertEqual(self.after.call_count, 1)
@@ -123,8 +126,11 @@
def test_unexcepted_exception(self):
self.callback.side_effect = Exception
- impl_eventlet.spawn_with(self.mgr, pool=eventlet)
- eventlet.sleep(0)
+ thread = impl_eventlet.spawn_with(self.mgr, pool=eventlet)
+ try:
+ thread.wait()
+ except Exception:
+ pass
self.assertEqual(self.before.call_count, 1)
self.assertEqual(self.callback.call_count, 1)
self.assertEqual(self.after.call_count, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_log_handler.py new/oslo.messaging-1.3.0/tests/test_log_handler.py
--- old/oslo.messaging-1.3.0a9/tests/test_log_handler.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_log_handler.py 2014-04-01 14:21:03.000000000 +0200
@@ -23,7 +23,6 @@
"""Tests for log.PublishErrorsHandler"""
def setUp(self):
super(PublishErrorsHandlerTestCase, self).setUp()
- self.conf.register_opts(messaging.notify.notifier._notifier_opts)
self.publisherrorshandler = (log_handler.
PublishErrorsHandler(logging.ERROR))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_notifier.py new/oslo.messaging-1.3.0/tests/test_notifier.py
--- old/oslo.messaging-1.3.0a9/tests/test_notifier.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_notifier.py 2014-04-01 14:21:03.000000000 +0200
@@ -135,8 +135,6 @@
def setUp(self):
super(TestMessagingNotifier, self).setUp()
- self.conf.register_opts(msg_notifier._notifier_opts)
-
self.logger = self.useFixture(_ReRaiseLoggedExceptionsFixture()).logger
self.stubs.Set(_impl_messaging, 'LOG', self.logger)
self.stubs.Set(msg_notifier, '_LOG', self.logger)
@@ -149,8 +147,8 @@
if self.v2:
drivers.append('messagingv2')
- self.config(notification_driver=drivers)
- self.config(notification_topics=self.topics)
+ self.config(notification_driver=drivers,
+ notification_topics=self.topics)
transport = _FakeTransport(self.conf)
@@ -251,10 +249,6 @@
class TestLogNotifier(test_utils.BaseTestCase):
- def setUp(self):
- super(TestLogNotifier, self).setUp()
- self.conf.register_opts(msg_notifier._notifier_opts)
-
@mock.patch('oslo.messaging.openstack.common.timeutils.utcnow')
def test_notifier(self, mock_utcnow):
self.config(notification_driver=['log'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_qpid.py new/oslo.messaging-1.3.0/tests/test_qpid.py
--- old/oslo.messaging-1.3.0a9/tests/test_qpid.py 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_qpid.py 2014-04-01 14:21:03.000000000 +0200
@@ -0,0 +1,615 @@
+# Copyright (C) 2014 eNovance SAS <licensing(a)enovance.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import random
+import thread
+import threading
+import time
+
+import mock
+import qpid
+import testscenarios
+
+from oslo import messaging
+from oslo.messaging._drivers import impl_qpid as qpid_driver
+from tests import utils as test_utils
+
+
+load_tests = testscenarios.load_tests_apply_scenarios
+
+QPID_BROKER = 'localhost:5672'
+
+
+class TestQpidDriverLoad(test_utils.BaseTestCase):
+
+ def setUp(self):
+ super(TestQpidDriverLoad, self).setUp()
+ self.messaging_conf.transport_driver = 'qpid'
+
+ def test_driver_load(self):
+ transport = messaging.get_transport(self.conf)
+ self.assertIsInstance(transport._driver, qpid_driver.QpidDriver)
+
+
+def _is_qpidd_service_running():
+
+ """this function checks if the qpid service is running or not."""
+
+ qpid_running = True
+ try:
+ broker = QPID_BROKER
+ connection = qpid.messaging.Connection(broker)
+ connection.open()
+ except Exception:
+ # qpid service is not running.
+ qpid_running = False
+ else:
+ connection.close()
+
+ return qpid_running
+
+
+class _QpidBaseTestCase(test_utils.BaseTestCase):
+
+ def setUp(self):
+ super(_QpidBaseTestCase, self).setUp()
+ self.messaging_conf.transport_driver = 'qpid'
+ self.fake_qpid = not _is_qpidd_service_running()
+
+ if self.fake_qpid:
+ self.session_receive = get_fake_qpid_session()
+ self.session_send = get_fake_qpid_session()
+ else:
+ self.broker = QPID_BROKER
+ # create connection from the qpid.messaging
+ # connection for the Consumer.
+ self.con_receive = qpid.messaging.Connection(self.broker)
+ self.con_receive.open()
+ # session to receive the messages
+ self.session_receive = self.con_receive.session()
+
+ # connection for sending the message
+ self.con_send = qpid.messaging.Connection(self.broker)
+ self.con_send.open()
+ # session to send the messages
+ self.session_send = self.con_send.session()
+
+ # list to store the expected messages and
+ # the actual received messages
+ self._expected = []
+ self._messages = []
+ self.initialized = True
+
+ def tearDown(self):
+ super(_QpidBaseTestCase, self).tearDown()
+
+ if self.initialized:
+ if self.fake_qpid:
+ _fake_session.flush_exchanges()
+ else:
+ self.con_receive.close()
+ self.con_send.close()
+
+
+class TestQpidInvalidTopologyVersion(_QpidBaseTestCase):
+ """Unit test cases to test invalid qpid topology version."""
+
+ scenarios = [
+ ('direct', dict(consumer_cls=qpid_driver.DirectConsumer,
+ publisher_cls=qpid_driver.DirectPublisher)),
+ ('topic', dict(consumer_cls=qpid_driver.TopicConsumer,
+ publisher_cls=qpid_driver.TopicPublisher)),
+ ('fanout', dict(consumer_cls=qpid_driver.FanoutConsumer,
+ publisher_cls=qpid_driver.FanoutPublisher)),
+ ]
+
+ def setUp(self):
+ super(TestQpidInvalidTopologyVersion, self).setUp()
+ self.config(qpid_topology_version=-1)
+
+ def test_invalid_topology_version(self):
+ def consumer_callback(msg):
+ pass
+
+ msgid_or_topic = 'test'
+
+ # not using self.assertRaises because
+ # 1. qpid driver raises Exception(msg) for invalid topology version
+ # 2. flake8 - H202 assertRaises Exception too broad
+ exception_msg = ("Invalid value for qpid_topology_version: %d" %
+ self.conf.qpid_topology_version)
+ recvd_exc_msg = ''
+
+ try:
+ self.consumer_cls(self.conf,
+ self.session_receive,
+ msgid_or_topic,
+ consumer_callback)
+ except Exception as e:
+ recvd_exc_msg = e.message
+
+ self.assertEqual(exception_msg, recvd_exc_msg)
+
+ recvd_exc_msg = ''
+ try:
+ self.publisher_cls(self.conf,
+ self.session_send,
+ msgid_or_topic)
+ except Exception as e:
+ recvd_exc_msg = e.message
+
+ self.assertEqual(exception_msg, recvd_exc_msg)
+
+
+class TestQpidDirectConsumerPublisher(_QpidBaseTestCase):
+ """Unit test cases to test DirectConsumer and Direct Publisher."""
+
+ _n_qpid_topology = [
+ ('v1', dict(qpid_topology=1)),
+ ('v2', dict(qpid_topology=2)),
+ ]
+
+ _n_msgs = [
+ ('single', dict(no_msgs=1)),
+ ('multiple', dict(no_msgs=10)),
+ ]
+
+ @classmethod
+ def generate_scenarios(cls):
+ cls.scenarios = testscenarios.multiply_scenarios(cls._n_qpid_topology,
+ cls._n_msgs)
+
+ def consumer_callback(self, msg):
+ # This function will be called by the DirectConsumer
+ # when any message is received.
+ # Append the received message into the messages list
+ # so that the received messages can be validated
+ # with the expected messages
+ if isinstance(msg, dict):
+ self._messages.append(msg['content'])
+ else:
+ self._messages.append(msg)
+
+ def test_qpid_direct_consumer_producer(self):
+ self.msgid = str(random.randint(1, 100))
+
+ # create a DirectConsumer and DirectPublisher class objects
+ self.dir_cons = qpid_driver.DirectConsumer(self.conf,
+ self.session_receive,
+ self.msgid,
+ self.consumer_callback)
+ self.dir_pub = qpid_driver.DirectPublisher(self.conf,
+ self.session_send,
+ self.msgid)
+
+ def try_send_msg(no_msgs):
+ for i in range(no_msgs):
+ self._expected.append(str(i))
+ snd_msg = {'content_type': 'text/plain', 'content': str(i)}
+ self.dir_pub.send(snd_msg)
+
+ def try_receive_msg(no_msgs):
+ for i in range(no_msgs):
+ self.dir_cons.consume()
+
+ thread1 = threading.Thread(target=try_receive_msg,
+ args=(self.no_msgs,))
+ thread2 = threading.Thread(target=try_send_msg,
+ args=(self.no_msgs,))
+
+ thread1.start()
+ thread2.start()
+ thread1.join()
+ thread2.join()
+
+ self.assertEqual(len(self._messages), self.no_msgs)
+ self.assertEqual(self._messages, self._expected)
+
+
+TestQpidDirectConsumerPublisher.generate_scenarios()
+
+
+class TestQpidTopicAndFanout(_QpidBaseTestCase):
+ """Unit Test cases to test TopicConsumer and
+ TopicPublisher classes of the qpid driver
+ and FanoutConsumer and FanoutPublisher classes
+ of the qpid driver
+ """
+
+ _n_qpid_topology = [
+ ('v1', dict(qpid_topology=1)),
+ ('v2', dict(qpid_topology=2)),
+ ]
+
+ _n_msgs = [
+ ('single', dict(no_msgs=1)),
+ ('multiple', dict(no_msgs=10)),
+ ]
+
+ _n_senders = [
+ ('single', dict(no_senders=1)),
+ ('multiple', dict(no_senders=10)),
+ ]
+
+ _n_receivers = [
+ ('single', dict(no_receivers=1)),
+ ]
+ _exchange_class = [
+ ('topic', dict(consumer_cls=qpid_driver.TopicConsumer,
+ publisher_cls=qpid_driver.TopicPublisher,
+ topic='topictest.test',
+ receive_topic='topictest.test')),
+ ('fanout', dict(consumer_cls=qpid_driver.FanoutConsumer,
+ publisher_cls=qpid_driver.FanoutPublisher,
+ topic='fanouttest',
+ receive_topic='fanouttest')),
+ ]
+
+ @classmethod
+ def generate_scenarios(cls):
+ cls.scenarios = testscenarios.multiply_scenarios(cls._n_qpid_topology,
+ cls._n_msgs,
+ cls._n_senders,
+ cls._n_receivers,
+ cls._exchange_class)
+
+ def setUp(self):
+ super(TestQpidTopicAndFanout, self).setUp()
+
+ # to store the expected messages and the
+ # actual received messages
+ #
+ # NOTE(dhellmann): These are dicts, where the base class uses
+ # lists.
+ self._expected = {}
+ self._messages = {}
+
+ self._senders = []
+ self._receivers = []
+
+ self._sender_threads = []
+ self._receiver_threads = []
+
+ def consumer_callback(self, msg):
+ """callback function called by the ConsumerBase class of
+ qpid driver.
+ Message will be received in the format x-y
+ where x is the sender id and y is the msg number of the sender
+ extract the sender id 'x' and store the msg 'x-y' with 'x' as
+ the key
+ """
+
+ if isinstance(msg, dict):
+ msgcontent = msg['content']
+ else:
+ msgcontent = msg
+
+ splitmsg = msgcontent.split('-')
+ key = thread.get_ident()
+
+ if key not in self._messages:
+ self._messages[key] = dict()
+
+ tdict = self._messages[key]
+
+ if splitmsg[0] not in tdict:
+ tdict[splitmsg[0]] = []
+
+ tdict[splitmsg[0]].append(msgcontent)
+
+ def _try_send_msg(self, sender_id, no_msgs):
+ for i in range(no_msgs):
+ sendmsg = '%s-%s' % (str(sender_id), str(i))
+ key = str(sender_id)
+ # Store the message in the self._expected for each sender.
+ # This will be used later to
+ # validate the test by comparing it with the
+ # received messages by all the receivers
+ if key not in self._expected:
+ self._expected[key] = []
+ self._expected[key].append(sendmsg)
+ send_dict = {'content_type': 'text/plain', 'content': sendmsg}
+ self._senders[sender_id].send(send_dict)
+
+ def _try_receive_msg(self, receiver_id, no_msgs):
+ for i in range(self.no_senders * no_msgs):
+ no_of_attempts = 0
+
+ # ConsumerBase.consume blocks indefinitely until a message
+ # is received.
+ # So qpid_receiver.available() is called before calling
+ # ConsumerBase.consume() so that we are not
+ # blocked indefinitely
+ qpid_receiver = self._receivers[receiver_id].get_receiver()
+ while no_of_attempts < 50:
+ if qpid_receiver.available() > 0:
+ self._receivers[receiver_id].consume()
+ break
+ no_of_attempts += 1
+ time.sleep(0.05)
+
+ def test_qpid_topic_and_fanout(self):
+ for receiver_id in range(self.no_receivers):
+ consumer = self.consumer_cls(self.conf,
+ self.session_receive,
+ self.receive_topic,
+ self.consumer_callback)
+ self._receivers.append(consumer)
+
+ # create receivers threads
+ thread = threading.Thread(target=self._try_receive_msg,
+ args=(receiver_id, self.no_msgs,))
+ self._receiver_threads.append(thread)
+
+ for sender_id in range(self.no_senders):
+ publisher = self.publisher_cls(self.conf,
+ self.session_send,
+ self.topic)
+ self._senders.append(publisher)
+
+ # create sender threads
+ thread = threading.Thread(target=self._try_send_msg,
+ args=(sender_id, self.no_msgs,))
+ self._sender_threads.append(thread)
+
+ for thread in self._receiver_threads:
+ thread.start()
+
+ for thread in self._sender_threads:
+ thread.start()
+
+ for thread in self._receiver_threads:
+ thread.join()
+
+ for thread in self._sender_threads:
+ thread.join()
+
+ # Each receiver should receive all the messages sent by
+ # the sender(s).
+ # So, Iterate through each of the receiver items in
+ # self._messages and compare with the expected messages
+ # messages.
+
+ self.assertEqual(len(self._expected), self.no_senders)
+ self.assertEqual(len(self._messages), self.no_receivers)
+
+ for key, messages in self._messages.iteritems():
+ self.assertEqual(self._expected, messages)
+
+TestQpidTopicAndFanout.generate_scenarios()
+
+
+class TestQpidReconnectOrder(test_utils.BaseTestCase):
+ """Unit Test cases to test reconnection
+ """
+
+ def test_reconnect_order(self):
+ brokers = ['host1', 'host2', 'host3', 'host4', 'host5']
+ brokers_count = len(brokers)
+
+ self.messaging_conf.conf.qpid_hosts = brokers
+
+ with mock.patch('qpid.messaging.Connection') as conn_mock:
+ # starting from the first broker in the list
+ connection = qpid_driver.Connection(self.messaging_conf.conf)
+
+ # reconnect will advance to the next broker, one broker per
+ # attempt, and then wrap to the start of the list once the end is
+ # reached
+ for _ in range(brokers_count):
+ connection.reconnect()
+
+ connection.close()
+
+ expected = []
+ for broker in brokers:
+ expected.extend([mock.call(broker),
+ mock.call().open(),
+ mock.call().session(),
+ mock.call().opened(),
+ mock.call().opened().__nonzero__(),
+ mock.call().close()])
+
+ # the last one was closed with close(), not reconnect()
+ expected.extend([mock.call(brokers[0]),
+ mock.call().open(),
+ mock.call().session(),
+ mock.call().close()])
+ conn_mock.assert_has_calls(expected)
+
+
+def synchronized(func):
+ func.__lock__ = threading.Lock()
+
+ def synced_func(*args, **kws):
+ with func.__lock__:
+ return func(*args, **kws)
+
+ return synced_func
+
+
+class FakeQpidMsgManager(object):
+ def __init__(self):
+ self._exchanges = {}
+
+ @synchronized
+ def add_exchange(self, exchange):
+ if exchange not in self._exchanges:
+ self._exchanges[exchange] = {'msgs': [], 'consumers': {}}
+
+ @synchronized
+ def add_exchange_consumer(self, exchange, consumer_id):
+ exchange_info = self._exchanges[exchange]
+ cons_dict = exchange_info['consumers']
+ cons_dict[consumer_id] = 0
+
+ @synchronized
+ def add_exchange_msg(self, exchange, msg):
+ exchange_info = self._exchanges[exchange]
+ exchange_info['msgs'].append(msg)
+
+ def get_exchange_msg(self, exchange, index):
+ exchange_info = self._exchanges[exchange]
+ return exchange_info['msgs'][index]
+
+ def get_no_exch_msgs(self, exchange):
+ exchange_info = self._exchanges[exchange]
+ return len(exchange_info['msgs'])
+
+ def get_exch_cons_index(self, exchange, consumer_id):
+ exchange_info = self._exchanges[exchange]
+ cons_dict = exchange_info['consumers']
+ return cons_dict[consumer_id]
+
+ @synchronized
+ def inc_consumer_index(self, exchange, consumer_id):
+ exchange_info = self._exchanges[exchange]
+ cons_dict = exchange_info['consumers']
+ cons_dict[consumer_id] += 1
+
+_fake_qpid_msg_manager = FakeQpidMsgManager()
+
+
+class FakeQpidSessionSender(object):
+ def __init__(self, session, id, target, options):
+ self.session = session
+ self.id = id
+ self.target = target
+ self.options = options
+
+ @synchronized
+ def send(self, object, sync=True, timeout=None):
+ _fake_qpid_msg_manager.add_exchange_msg(self.target, object)
+
+ def close(self, timeout=None):
+ pass
+
+
+class FakeQpidSessionReceiver(object):
+
+ def __init__(self, session, id, source, options):
+ self.session = session
+ self.id = id
+ self.source = source
+ self.options = options
+
+ @synchronized
+ def fetch(self, timeout=None):
+ if timeout is None:
+ # if timeout is not given, take a default time out
+ # of 30 seconds to avoid indefinite loop
+ _timeout = 30
+ else:
+ _timeout = timeout
+
+ deadline = time.time() + _timeout
+ while time.time() <= deadline:
+ index = _fake_qpid_msg_manager.get_exch_cons_index(self.source,
+ self.id)
+ try:
+ msg = _fake_qpid_msg_manager.get_exchange_msg(self.source,
+ index)
+ except IndexError:
+ pass
+ else:
+ _fake_qpid_msg_manager.inc_consumer_index(self.source,
+ self.id)
+ return qpid.messaging.Message(msg)
+ time.sleep(0.050)
+
+ if timeout is None:
+ raise Exception('timed out waiting for reply')
+
+ def close(self, timeout=None):
+ pass
+
+ @synchronized
+ def available(self):
+ no_msgs = _fake_qpid_msg_manager.get_no_exch_msgs(self.source)
+ index = _fake_qpid_msg_manager.get_exch_cons_index(self.source,
+ self.id)
+ if no_msgs == 0 or index >= no_msgs:
+ return 0
+ else:
+ return no_msgs - index
+
+
+class FakeQpidSession(object):
+
+ def __init__(self, connection=None, name=None, transactional=None):
+ self.connection = connection
+ self.name = name
+ self.transactional = transactional
+ self._receivers = {}
+ self.conf = None
+ self.url = None
+ self._senders = {}
+ self._sender_id = 0
+ self._receiver_id = 0
+
+ @synchronized
+ def sender(self, target, **options):
+ exchange_key = self._extract_exchange_key(target)
+ _fake_qpid_msg_manager.add_exchange(exchange_key)
+
+ sendobj = FakeQpidSessionSender(self, self._sender_id,
+ exchange_key, options)
+ self._senders[self._sender_id] = sendobj
+ self._sender_id = self._sender_id + 1
+ return sendobj
+
+ @synchronized
+ def receiver(self, source, **options):
+ exchange_key = self._extract_exchange_key(source)
+ _fake_qpid_msg_manager.add_exchange(exchange_key)
+ recvobj = FakeQpidSessionReceiver(self, self._receiver_id,
+ exchange_key, options)
+ self._receivers[self._receiver_id] = recvobj
+ _fake_qpid_msg_manager.add_exchange_consumer(exchange_key,
+ self._receiver_id)
+ self._receiver_id += 1
+ return recvobj
+
+ def acknowledge(self, message=None, disposition=None, sync=True):
+ pass
+
+ @synchronized
+ def flush_exchanges(self):
+ _fake_qpid_msg_manager._exchanges = {}
+
+ def _extract_exchange_key(self, exchange_msg):
+ """This function extracts a unique key for the exchange.
+ This key is used in the dictionary as a 'key' for
+ this exchange.
+ Eg. if the exchange_msg (for qpid topology version 1)
+ is 33/33 ; {"node": {"x-declare": {"auto-delete": true, ....
+ then 33 is returned as the key.
+ Eg 2. For topology v2, if the
+ exchange_msg is - amq.direct/44 ; {"link": {"x-dec.......
+ then 44 is returned
+ """
+ # first check for ';'
+ semicolon_split = exchange_msg.split(';')
+
+ # split the first item of semicolon_split with '/'
+ slash_split = semicolon_split[0].split('/')
+ # return the last element of the list as the key
+ key = slash_split[-1]
+ return key.strip()
+
+_fake_session = FakeQpidSession()
+
+
+def get_fake_qpid_session():
+ return _fake_session
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_rabbit.py new/oslo.messaging-1.3.0/tests/test_rabbit.py
--- old/oslo.messaging-1.3.0a9/tests/test_rabbit.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_rabbit.py 2014-04-01 14:21:03.000000000 +0200
@@ -1,5 +1,3 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
# Copyright 2013 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_rpc_client.py new/oslo.messaging-1.3.0/tests/test_rpc_client.py
--- old/oslo.messaging-1.3.0a9/tests/test_rpc_client.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_rpc_client.py 2014-04-01 14:21:03.000000000 +0200
@@ -17,7 +17,6 @@
import testscenarios
from oslo import messaging
-from oslo.messaging.rpc import client as rpc_client
from oslo.messaging import serializer as msg_serializer
from tests import utils as test_utils
@@ -48,10 +47,6 @@
args=dict(bar='blaa', foobar=11.01))),
]
- def setUp(self):
- super(TestCastCall, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(rpc_client._client_opts)
-
def test_cast_call(self):
self.config(rpc_response_timeout=None)
@@ -238,10 +233,6 @@
dict(confval=None, ctor=None, prepare=0, expect=0)),
]
- def setUp(self):
- super(TestCallTimeout, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(rpc_client._client_opts)
-
def test_call_timeout(self):
self.config(rpc_response_timeout=self.confval)
@@ -277,10 +268,6 @@
retval='d')),
]
- def setUp(self):
- super(TestSerializer, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(rpc_client._client_opts)
-
def test_call_serializer(self):
self.config(rpc_response_timeout=None)
@@ -361,10 +348,6 @@
testscenarios.multiply_scenarios(cls._call_vs_cast,
cls._cap_scenarios))
- def setUp(self):
- super(TestVersionCap, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(rpc_client._client_opts)
-
def test_version_cap(self):
self.config(rpc_response_timeout=None)
@@ -459,10 +442,6 @@
can_send=False)),
]
- def setUp(self):
- super(TestCanSendVersion, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(rpc_client._client_opts)
-
def test_version_cap(self):
self.config(rpc_response_timeout=None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_transport.py new/oslo.messaging-1.3.0/tests/test_transport.py
--- old/oslo.messaging-1.3.0a9/tests/test_transport.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_transport.py 2014-04-01 14:21:03.000000000 +0200
@@ -112,10 +112,6 @@
allowed=[]))),
]
- def setUp(self):
- super(GetTransportTestCase, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(transport._transport_opts)
-
def test_get_transport(self):
self.config(rpc_backend=self.rpc_backend,
control_exchange=self.control_exchange,
@@ -144,11 +140,11 @@
kwargs['allowed_remote_exmods'] = self.allowed
if self.aliases is not None:
kwargs['aliases'] = self.aliases
- transport = messaging.get_transport(self.conf, **kwargs)
+ transport_ = messaging.get_transport(self.conf, **kwargs)
- self.assertIsNotNone(transport)
- self.assertIs(transport.conf, self.conf)
- self.assertIs(transport._driver, drvr)
+ self.assertIsNotNone(transport_)
+ self.assertIs(transport_.conf, self.conf)
+ self.assertIs(transport_._driver, drvr)
class GetTransportSadPathTestCase(test_utils.BaseTestCase):
@@ -171,10 +167,6 @@
driver='testbackend'))),
]
- def setUp(self):
- super(GetTransportSadPathTestCase, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(transport._transport_opts)
-
def test_get_transport_sad(self):
self.config(rpc_backend=self.rpc_backend,
transport_url=self.transport_url)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/test_urls.py new/oslo.messaging-1.3.0/tests/test_urls.py
--- old/oslo.messaging-1.3.0a9/tests/test_urls.py 2014-03-04 20:21:21.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/test_urls.py 2014-04-01 14:21:03.000000000 +0200
@@ -13,11 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-from oslo.config import cfg
import testscenarios
from oslo import messaging
-from oslo.messaging import transport
from tests import utils as test_utils
load_tests = testscenarios.load_tests_apply_scenarios
@@ -120,10 +118,6 @@
]))),
]
- def setUp(self):
- super(TestParseURL, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(transport._transport_opts)
-
def test_parse_url(self):
self.config(rpc_backend=None)
@@ -223,10 +217,6 @@
expected='testtransport://b%24:s%26@host:10//%24')),
]
- def setUp(self):
- super(TestFormatURL, self).setUp(conf=cfg.ConfigOpts())
- self.conf.register_opts(transport._transport_opts)
-
def test_parse_url(self):
self.config(rpc_backend=self.rpc_backend)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-1.3.0a9/tests/utils.py new/oslo.messaging-1.3.0/tests/utils.py
--- old/oslo.messaging-1.3.0a9/tests/utils.py 2014-03-04 20:21:22.000000000 +0100
+++ new/oslo.messaging-1.3.0/tests/utils.py 2014-04-01 14:21:03.000000000 +0200
@@ -1,5 +1,3 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
# Copyright 2010-2011 OpenStack Foundation
# Copyright 2010 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration.
@@ -34,12 +32,10 @@
def setUp(self, conf=cfg.CONF):
super(BaseTestCase, self).setUp()
- self.conf = conf
- self.addCleanup(self.conf.reset)
from oslo.messaging import conffixture
- self.messaging_conf = self.useFixture(
- conffixture.ConfFixture(self.conf))
+ self.messaging_conf = self.useFixture(conffixture.ConfFixture(conf))
+ self.conf = self.messaging_conf.conf
moxfixture = self.useFixture(moxstubout.MoxStubout())
self.mox = moxfixture.mox
--
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 openstack-neutron for openSUSE:Factory checked in at 2014-04-20 11:36:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-neutron (Old)
and /work/SRC/openSUSE:Factory/.openstack-neutron.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-neutron"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-neutron/openstack-neutron.changes 2014-04-14 10:56:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-neutron.new/openstack-neutron.changes 2014-04-20 11:36:10.000000000 +0200
@@ -1,0 +2,11 @@
+Thu Apr 17 12:53:32 UTC 2014 - dmueller(a)suse.com
+
+- update to 2014.1:
+ * no change
+
+-------------------------------------------------------------------
+Tue Apr 15 13:59:52 UTC 2014 - dmueller(a)suse.com
+
+- add 0001-Robust-detection-for-postgresql-connection-errors.patch (bnc#872361)
+
+-------------------------------------------------------------------
Old:
----
neutron-2014.1.rc2.tar.gz
New:
----
0001-Robust-detection-for-postgresql-connection-errors.patch
neutron-2014.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openstack-neutron-doc.spec ++++++
--- /var/tmp/diff_new_pack.32xKQr/_old 2014-04-20 11:36:11.000000000 +0200
+++ /var/tmp/diff_new_pack.32xKQr/_new 2014-04-20 11:36:11.000000000 +0200
@@ -19,7 +19,7 @@
%define component neutron
Name: openstack-neutron-doc
-Version: 2014.1.rc2
+Version: 2014.1
Release: 0
Summary: OpenStack Virtual Network Service (Neutron) - Documentation
License: Apache-2.0
++++++ openstack-neutron.spec ++++++
--- /var/tmp/diff_new_pack.32xKQr/_old 2014-04-20 11:36:11.000000000 +0200
+++ /var/tmp/diff_new_pack.32xKQr/_new 2014-04-20 11:36:11.000000000 +0200
@@ -21,7 +21,7 @@
%define username %{component}
Name: openstack-neutron
-Version: 2014.1.rc2
+Version: 2014.1
Release: 0
Summary: OpenStack Network
License: Apache-2.0
@@ -40,6 +40,7 @@
%endif
Patch1: 0001-Only-enable-IP6Tables-managing-if-IPv6-is-available.patch
Patch2: 0001-Start-ping-listener-also-for-postgresql.patch
+Patch3: 0001-Robust-detection-for-postgresql-connection-errors.patch
BuildRequires: crudini
BuildRequires: fdupes
BuildRequires: openstack-suse-macros
@@ -52,7 +53,7 @@
Requires: openstack-suse-sudo
Requires: python >= 2.6.8
Requires: python-neutron = %{version}
-Requires: python-oslo.config >= 1.2.0
+Requires: python-oslo.config >= 1.2
Provides: openstack-quantum = 2013.2.0
Obsoletes: openstack-quantum < 2013.2.0
Requires(pre): pwdutils
@@ -81,24 +82,24 @@
Requires: python >= 2.6.8
Requires: python-Jinja2
Requires: python-Paste
-Requires: python-PasteDeploy >= 1.5.0
+Requires: python-PasteDeploy >= 1.5
Requires: python-Routes >= 1.12.3
Requires: python-SQLAlchemy >= 0.7.8
Requires: python-WebOb >= 1.2.3
Requires: python-alembic >= 0.4.1
Requires: python-amqplib >= 0.6.1
Requires: python-anyjson >= 0.3.3
-Requires: python-eventlet >= 0.13.0
+Requires: python-eventlet >= 0.13
Requires: python-greenlet >= 0.3.2
Requires: python-httplib2 >= 0.7.5
Requires: python-iso8601 >= 0.1.9
Requires: python-jsonrpclib
-Requires: python-keystoneclient >= 0.7.0
+Requires: python-keystoneclient >= 0.7
Requires: python-kombu >= 2.4.8
Requires: python-netaddr >= 0.7.6
Requires: python-neutronclient >= 2.3.4
-Requires: python-novaclient >= 2.17.0
-Requires: python-oslo.config >= 1.2.0
+Requires: python-novaclient >= 2.17
+Requires: python-oslo.config >= 1.2
Requires: python-oslo.rootwrap
Requires: python-pbr >= 0.6
Requires: python-requests >= 1.1
@@ -304,14 +305,14 @@
Summary: OpenStack Network - Testsuite
Group: Development/Languages/Python
Requires: %{name} = %{version}
-Requires: python-WebTest >= 2.0
+Requires: python-WebTest >= 2
Requires: python-cliff >= 1.4.3
Requires: python-configobj
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
Requires: python-discover
%endif
Requires: python-fixtures >= 0.3.14
-Requires: python-mock >= 1.0
+Requires: python-mock >= 1
Requires: python-python-subunit >= 0.0.18
Requires: python-testrepository >= 0.0.18
Requires: python-testtools >= 0.9.34
@@ -326,6 +327,7 @@
%setup -q -n %{component}-%{version}
%patch1 -p1
%patch2
+%patch3 -p1
%openstack_cleanup_prep
%build
++++++ 0001-Robust-detection-for-postgresql-connection-errors.patch ++++++
>From d9bbb042f6287061e89c1e2f96b9f70c176c871a Mon Sep 17 00:00:00 2001
From: Dirk Mueller <dirk(a)dmllr.de>
Date: Fri, 11 Apr 2014 17:06:53 +0200
Subject: [PATCH] Robust detection for postgresql connection errors
In most cases, when the database is failing over to a new node,
engine.dialect.is_disconnected() returns True. However in some
cases it returns False and the exception string is "unknown error".
In those cases we can however query the closed attribute on the
db_connection that is set to True at that point.
Change-Id: I64ef17f451780c622e1cfd257acf74e2e11e8b62
Closes-Bug: #1306668
---
openstack/common/db/sqlalchemy/session.py | 4 ++-
tests/unit/db/sqlalchemy/test_sqlalchemy.py | 44 +++++++++++++++++++++++++++--
2 files changed, 45 insertions(+), 3 deletions(-)
Index: neutron-2014.1.rc2/neutron/openstack/common/db/sqlalchemy/session.py
===================================================================
--- neutron-2014.1.rc2.orig/neutron/openstack/common/db/sqlalchemy/session.py
+++ neutron-2014.1.rc2/neutron/openstack/common/db/sqlalchemy/session.py
@@ -683,7 +683,9 @@ def _ping_listener(engine, dbapi_conn, c
ping_sql = 'select 1 from (values (1)) AS t1'
cursor.execute(ping_sql)
except Exception as ex:
- if engine.dialect.is_disconnect(ex, dbapi_conn, cursor):
+ if (engine.dialect.is_disconnect(ex, dbapi_conn, cursor) or
+ ('unknown error' in str(ex).partition('\n')[0] and
+ getattr(dbapi_conn, 'closed', False))):
msg = _('Database server has gone away: %s') % ex
LOG.warning(msg)
++++++ neutron-2014.1.rc2.tar.gz -> neutron-2014.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/openstack-neutron/neutron-2014.1.rc2.tar.gz /work/SRC/openSUSE:Factory/.openstack-neutron.new/neutron-2014.1.tar.gz differ: char 5, line 1
--
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 python-oslo.config for openSUSE:Factory checked in at 2014-04-20 11:36:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.config (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.config.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.config"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.config/python-oslo.config.changes 2014-03-28 13:56:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.config.new/python-oslo.config.changes 2014-04-20 11:36:07.000000000 +0200
@@ -2 +2 @@
-Thu Mar 27 10:19:08 UTC 2014 - dmueller(a)suse.com
+Wed Apr 2 09:05:43 UTC 2014 - speilicke(a)suse.com
@@ -4,2 +4,29 @@
-- switch back to released version of oslo.config (which is
- recommended for Icehouse)
+- Update to version 1.3.0:
+ * Include the 'meta' trove classifiers for python versions
+ * Do substitution on overrides and defaults too
+ * Follow style guide for help strings
+ * Updated from global requirements
+ * Convert to oslo.test
+ * Fix a whitespace in a comment
+ * Fix docstring of parsing order
+ * Switch over to oslosphinx
+ * Remove extraneous vim configuration comments
+ * Fix misspellings in oslo.config
+ * Add py33 trove classifier
+ * Support building wheels (PEP-427)
+ * Add Style Guide for help of config options
+ * Add docs for types
+ * Throw exception if --config-dir doesn't exist
+ * Remove copyright from empty files
+ * Implemented support for custom opt types
+ * Fix for parsing error with Dollar Sign ($) in values
+ * Utilizes assertIsNone and assertIsNotNone
+ * Fix spelling errors in docstrings and comments
+ * Added support of operator '=='
+ * Updated from global requirements
+ * Updated from global requirements
+ * Fix to make ConfigOpts no longer obscure IOErrors
+ * Replace assertEquals with assertEqual
+ * Updated from global requirements
+ * Add the ability to validate default options value
+- Switch to Icehouse release
@@ -8 +35 @@
-Mon Mar 10 16:24:49 UTC 2014 - cloud-devel(a)suse.de
+Thu Mar 27 10:19:08 UTC 2014 - dmueller(a)suse.com
@@ -10,2 +37,2 @@
-- Update to version oslo.config-1.3.0a0.40.gb347519:
- * Include the 'meta' trove classifiers for python versions
+- switch back to released version of oslo.config (which is
+ recommended for Icehouse)
Old:
----
oslo.config-1.2.1.tar.gz
New:
----
oslo.config-1.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.config.spec ++++++
--- /var/tmp/diff_new_pack.5pb4Bp/_old 2014-04-20 11:36:08.000000000 +0200
+++ /var/tmp/diff_new_pack.5pb4Bp/_new 2014-04-20 11:36:08.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-oslo.config
-Version: 1.2.1
+Version: 1.3.0
Release: 0
Url: https://launchpad.net/oslo/
Summary: OpenStack configuration API
@@ -28,8 +28,9 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: python-devel
-BuildRequires: python-oslosphinx
BuildRequires: python-pbr
+# Documentation requirements:
+BuildRequires: python-oslosphinx
# Test requirements:
#BuildRequires: python-coverage >= 3.6
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
@@ -39,13 +40,13 @@
BuildRequires: python-fixtures >= 0.3.14
BuildRequires: python-mock >= 1.0
BuildRequires: python-oslotest
-BuildRequires: python-python-subunit
-BuildRequires: python-six
+BuildRequires: python-python-subunit >= 0.0.18
+BuildRequires: python-six >= 1.5.2
BuildRequires: python-testrepository >= 0.0.17
BuildRequires: python-testscenarios >= 0.4
BuildRequires: python-testtools >= 0.9.32
Requires: python-pbr
-Requires: python-six
+Requires: python-six >= 1.5.2
Provides: python-oslo-config = 2013.2
Obsoletes: python-oslo-config < 2013.2
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
++++++ _service ++++++
--- /var/tmp/diff_new_pack.5pb4Bp/_old 2014-04-20 11:36:08.000000000 +0200
+++ /var/tmp/diff_new_pack.5pb4Bp/_new 2014-04-20 11:36:08.000000000 +0200
@@ -5,6 +5,8 @@
<service mode="disabled" name="set_version">
<param name="basename">oslo.config</param>
</service>
+ <service name="python_requires" mode="disabled">
+ </service>
<service name="refresh_patches" mode="disabled">
<param name="changesgenerate">enable</param>
</service>
++++++ oslo.config-1.2.1.tar.gz -> oslo.config-1.3.0.tar.gz ++++++
++++ 5712 lines of diff (skipped)
--
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 openstack-keystone for openSUSE:Factory checked in at 2014-04-20 11:36:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-keystone (Old)
and /work/SRC/openSUSE:Factory/.openstack-keystone.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-keystone"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-keystone/openstack-keystone.changes 2014-04-14 10:55:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-keystone.new/openstack-keystone.changes 2014-04-20 11:36:04.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Apr 17 12:52:36 UTC 2014 - dmueller(a)suse.com
+
+- update to 2014.1:
+ * no change
+
+-------------------------------------------------------------------
Old:
----
keystone-2014.1.rc2.tar.gz
New:
----
keystone-2014.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openstack-keystone-doc.spec ++++++
--- /var/tmp/diff_new_pack.YRfJRq/_old 2014-04-20 11:36:04.000000000 +0200
+++ /var/tmp/diff_new_pack.YRfJRq/_new 2014-04-20 11:36:04.000000000 +0200
@@ -19,7 +19,7 @@
%define component keystone
Name: openstack-%{component}-doc
-Version: 2014.1.rc2
+Version: 2014.1
Release: 0
Summary: OpenStack Identity Service (Keystone) - Documentation
License: Apache-2.0
++++++ openstack-keystone.spec ++++++
--- /var/tmp/diff_new_pack.YRfJRq/_old 2014-04-20 11:36:04.000000000 +0200
+++ /var/tmp/diff_new_pack.YRfJRq/_new 2014-04-20 11:36:04.000000000 +0200
@@ -21,7 +21,7 @@
%define username %{component}
Name: openstack-%{component}
-Version: 2014.1.rc2
+Version: 2014.1
Release: 0
Summary: OpenStack Identity Service (Keystone)
License: Apache-2.0
@@ -65,16 +65,16 @@
Requires: logrotate
Requires: python-iso8601 >= 0.1.9
Requires: python-keystone = %{version}
-Requires: python-oslo.config >= 1.2.0
+Requires: python-oslo.config >= 1.2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# keystone dependencies
# To generate a self-signed certificate to be used in demo setups:
Requires(post): coreutils
Requires(post): crudini
Requires(post): python-keystone
-Requires(post): python-dogpile.cache >= 0.5.0
+Requires(post): python-dogpile.cache >= 0.5
Requires(post): python-argparse
-Requires(post): python-iso8601 >= 0.1.8
+Requires(post): python-iso8601 >= 0.1.9
# NOTE(saschp): We need OpenStack'S fork here:
Requires(post): python-sqlalchemy-migrate >= 0.8.2
Requires(post): python-Routes >= 1.12.3
@@ -98,23 +98,23 @@
Requires: python >= 2.6.8
Requires: python-Babel >= 1.3
Requires: python-Paste
-Requires: python-PasteDeploy >= 1.5.0
+Requires: python-PasteDeploy >= 1.5
Requires: python-Routes >= 1.12.3
Requires: python-SQLAlchemy >= 0.7.8
Requires: python-WebOb >= 1.2.3
-Requires: python-dogpile.cache >= 0.5.0
-Requires: python-eventlet >= 0.13.0
+Requires: python-dogpile.cache >= 0.5
+Requires: python-eventlet >= 0.13
Requires: python-greenlet >= 0.3.2
Requires: python-iso8601 >= 0.1.9
-Requires: python-jsonschema >= 2.0.0
-Requires: python-keystoneclient >= 0.7.0
+Requires: python-jsonschema >= 2
+Requires: python-keystoneclient >= 0.7
Requires: python-kombu >= 2.4.8
Requires: python-ldap >= 2.3.13
Requires: python-lockfile >= 0.8
Requires: python-lxml >= 2.3
Requires: python-netaddr >= 0.7.6
Requires: python-oauthlib >= 0.6
-Requires: python-oslo.messaging >= 1.3.0a9
+Requires: python-oslo.messaging >= 1.3
Requires: python-pam >= 0.1.4
Requires: python-passlib
Requires: python-pbr >= 0.6
@@ -134,13 +134,13 @@
Summary: Testsuite for the OpenStack Keystone
Group: Development/Languages/Python
Requires: %{name} = %{version}
-Requires: python-WebTest >= 2.0
+Requires: python-WebTest >= 2
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
Requires: python-discover
%endif
Requires: python-fixtures >= 0.3.14
-Requires: python-keystoneclient >= 0.7.0
-Requires: python-mock >= 1.0
+Requires: python-keystoneclient >= 0.7
+Requires: python-mock >= 1
Requires: python-mox >= 0.5.3
Requires: python-pysqlite
Requires: python-python-memcached >= 1.48
++++++ keystone-2014.1.rc2.tar.gz -> keystone-2014.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/keystone-2014.1.rc2/ChangeLog new/keystone-2014.1/ChangeLog
--- old/keystone-2014.1.rc2/ChangeLog 2014-04-08 10:48:06.000000000 +0200
+++ new/keystone-2014.1/ChangeLog 2014-04-17 11:22:17.000000000 +0200
@@ -1,8 +1,8 @@
CHANGES
=======
-2014.1.rc2
-----------
+2014.1
+------
* Updated from global requirements
* Fix invalid LDAP filter for user ID with comma
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/keystone-2014.1.rc2/PKG-INFO new/keystone-2014.1/PKG-INFO
--- old/keystone-2014.1.rc2/PKG-INFO 2014-04-08 10:48:07.000000000 +0200
+++ new/keystone-2014.1/PKG-INFO 2014-04-17 11:22:17.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: keystone
-Version: 2014.1.rc2
+Version: 2014.1
Summary: OpenStack Identity
Home-page: http://www.openstack.org/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/keystone-2014.1.rc2/keystone.egg-info/PKG-INFO new/keystone-2014.1/keystone.egg-info/PKG-INFO
--- old/keystone-2014.1.rc2/keystone.egg-info/PKG-INFO 2014-04-08 10:48:07.000000000 +0200
+++ new/keystone-2014.1/keystone.egg-info/PKG-INFO 2014-04-17 11:22:17.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: keystone
-Version: 2014.1.rc2
+Version: 2014.1
Summary: OpenStack Identity
Home-page: http://www.openstack.org/
Author: OpenStack
--
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 openstack-cinder for openSUSE:Factory checked in at 2014-04-20 11:35:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-cinder (Old)
and /work/SRC/openSUSE:Factory/.openstack-cinder.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-cinder"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-cinder/openstack-cinder.changes 2014-04-14 10:52:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-cinder.new/openstack-cinder.changes 2014-04-20 11:35:58.000000000 +0200
@@ -1,0 +2,15 @@
+Thu Apr 17 12:47:09 UTC 2014 - dmueller(a)suse.com
+
+- update to 2014.1
+ * driver.create/remove_export() require elevated ctx
+ * Check for silent failure of tgtadm remove
+
+-------------------------------------------------------------------
+Tue Apr 15 08:29:46 UTC 2014 - dmueller(a)suse.com
+
+- Update to version 2014.1.rc2
+ * driver.create/remove_export() require elevated ctx
+ * Check for silent failure of tgtadm remove
+- fix requires
+
+-------------------------------------------------------------------
Old:
----
cinder-milestone-proposed.tar.gz
New:
----
cinder-2014.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openstack-cinder-doc.spec ++++++
--- /var/tmp/diff_new_pack.Of1FnC/_old 2014-04-20 11:35:59.000000000 +0200
+++ /var/tmp/diff_new_pack.Of1FnC/_new 2014-04-20 11:35:59.000000000 +0200
@@ -19,13 +19,13 @@
%define component cinder
Name: openstack-%{component}-doc
-Version: 2014.1.dev17.g512170a
+Version: 2014.1
Release: 0
Summary: OpenStack Block Storage (Cinder) - Documentation
License: Apache-2.0
Group: Documentation/HTML
Url: https://launchpad.net/cinder
-Source: http://tarballs.openstack.org/cinder/cinder-milestone-proposed.tar.gz
+Source: http://tarballs.openstack.org/cinder/cinder-%{version}.tar.gz
BuildRequires: graphviz
BuildRequires: openstack-suse-macros
BuildRequires: python-Babel
++++++ openstack-cinder.spec ++++++
--- /var/tmp/diff_new_pack.Of1FnC/_old 2014-04-20 11:35:59.000000000 +0200
+++ /var/tmp/diff_new_pack.Of1FnC/_new 2014-04-20 11:35:59.000000000 +0200
@@ -21,13 +21,13 @@
%define username %{component}
Name: openstack-%{component}
-Version: 2014.1.dev17.g512170a
+Version: 2014.1
Release: 0
Summary: OpenStack Block Storage (Cinder)
License: Apache-2.0
Group: System/Management
Url: https://launchpad.net/cinder
-Source: http://tarballs.openstack.org/cinder/cinder-milestone-proposed.tar.gz
+Source: http://tarballs.openstack.org/cinder/cinder-%{version}.tar.gz
Source1: %{name}.init
Source2: %{name}.logrotate
Source3: cinder-sudoers
@@ -60,7 +60,7 @@
Requires: python >= 2.6.8
Requires: python-cinder = %{version}
Requires: python-kombu >= 2.4.8
-Requires: python-oslo.config >= 1.2.0
+Requires: python-oslo.config >= 1.2
Requires: python-swiftclient >= 1.6
%if 0%{?suse_version} > 1110
Requires(pre): pwdutils
@@ -87,22 +87,24 @@
Requires: python >= 2.6.8
Requires: python-Babel >= 1.3
Requires: python-Paste
-Requires: python-PasteDeploy >= 1.5.0
+Requires: python-PasteDeploy >= 1.5
Requires: python-Routes >= 1.12.3
Requires: python-SQLAlchemy >= 0.7.8
Requires: python-WebOb >= 1.2.3
Requires: python-amqplib >= 0.6.1
Requires: python-anyjson >= 0.3.3
-Requires: python-eventlet >= 0.13.0
-Requires: python-glanceclient >= 0.9.0
+Requires: python-eventlet >= 0.13
+Requires: python-glanceclient >= 0.9
Requires: python-greenlet >= 0.3.2
Requires: python-iso8601 >= 0.1.9
-Requires: python-keystoneclient >= 0.7.0
+Requires: python-keystoneclient >= 0.7
Requires: python-lxml >= 2.3
Requires: python-netaddr >= 0.7.6
-Requires: python-novaclient >= 2.17.0
+Requires: python-novaclient >= 2.17
+Requires: python-oslo.messaging >= 1.3
Requires: python-oslo.rootwrap
-Requires: python-paramiko >= 1.9.0
+Requires: python-paramiko >= 1.9
+Requires: python-requests >= 1.1
Requires: python-rtslib-fb >= 2.1.39
Requires: python-six >= 1.5.2
Requires: python-sqlalchemy-migrate >= 0.8.2
@@ -170,10 +172,10 @@
Requires: python-discover
%endif
Requires: python-fixtures >= 0.3.14
-Requires: python-glanceclient >= 0.9.0
-Requires: python-hp3parclient >= 3.0
-Requires: python-hplefthandclient >= 1.0.0
-Requires: python-mock >= 1.0
+Requires: python-glanceclient >= 0.9
+Requires: python-hp3parclient >= 3
+Requires: python-hplefthandclient >= 1
+Requires: python-mock >= 1
Requires: python-mox >= 0.5.3
Requires: python-pbr >= 0.6
Requires: python-psycopg2
@@ -186,7 +188,7 @@
functionality of OpenStack Cinder.
%prep
-%setup -q -n cinder-2014.1.dev17.g512170a
+%setup -q -n cinder-%{version}
%patch0 -p1
%openstack_cleanup_prep
++++++ cinder-milestone-proposed.tar.gz -> cinder-2014.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinder-2014.1.dev17.g512170a/ChangeLog new/cinder-2014.1/ChangeLog
--- old/cinder-2014.1.dev17.g512170a/ChangeLog 2014-04-06 18:18:25.000000000 +0200
+++ new/cinder-2014.1/ChangeLog 2014-04-17 12:16:32.000000000 +0200
@@ -1,6 +1,15 @@
CHANGES
=======
+2014.1
+------
+
+* driver.create/remove_export() require elevated ctx
+* Check for silent failure of tgtadm remove
+
+2014.1.rc2
+----------
+
* Updated from global requirements
* Append nas_opts to IBMNAS_NFSDriver configuration
* Change iogrp property when retyping for Storwize/SVC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinder-2014.1.dev17.g512170a/PKG-INFO new/cinder-2014.1/PKG-INFO
--- old/cinder-2014.1.dev17.g512170a/PKG-INFO 2014-04-06 18:18:25.000000000 +0200
+++ new/cinder-2014.1/PKG-INFO 2014-04-17 12:16:33.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: cinder
-Version: 2014.1.dev17.g512170a
+Version: 2014.1
Summary: OpenStack Block Storage
Home-page: http://www.openstack.org/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinder-2014.1.dev17.g512170a/cinder/brick/iscsi/iscsi.py new/cinder-2014.1/cinder/brick/iscsi/iscsi.py
--- old/cinder-2014.1.dev17.g512170a/cinder/brick/iscsi/iscsi.py 2014-04-06 18:14:48.000000000 +0200
+++ new/cinder-2014.1/cinder/brick/iscsi/iscsi.py 2014-04-17 12:12:54.000000000 +0200
@@ -276,6 +276,30 @@
% {'vol_id': vol_id, 'e': e})
raise exception.ISCSITargetRemoveFailed(volume_id=vol_id)
+ # NOTE(jdg): There's a bug in some versions of tgt that
+ # will sometimes fail silently when using the force flag
+ # https://bugs.launchpad.net/ubuntu/+source/tgt/+bug/1305343
+ # For now work-around by checking if the target was deleted,
+ # if it wasn't, try again without the force.
+
+ # This will NOT do any good for the case of mutliple sessions
+ # which the force was aded for but it will however address
+ # the cases pointed out in bug:
+ # https://bugs.launchpad.net/cinder/+bug/1304122
+ if self._get_target(iqn):
+ try:
+ LOG.warning(_('Silent failure of target removal '
+ 'detected, retry....'))
+ self._execute('tgt-admin',
+ '--delete',
+ iqn,
+ run_as_root=True)
+ except putils.ProcessExecutionError as e:
+ LOG.error(_("Failed to remove iscsi target for volume "
+ "id:%(vol_id)s: %(e)s")
+ % {'vol_id': vol_id, 'e': e})
+ raise exception.ISCSITargetRemoveFailed(volume_id=vol_id)
+
# NOTE(jdg): This *should* be there still but incase
# it's not we don't care, so just ignore it if was
# somehow deleted between entry of this method
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinder-2014.1.dev17.g512170a/cinder/tests/test_iscsi.py new/cinder-2014.1/cinder/tests/test_iscsi.py
--- old/cinder-2014.1.dev17.g512170a/cinder/tests/test_iscsi.py 2014-04-06 18:14:48.000000000 +0200
+++ new/cinder-2014.1/cinder/tests/test_iscsi.py 2014-04-17 12:12:55.000000000 +0200
@@ -114,6 +114,7 @@
self.flags(volumes_dir=self.persist_tempdir)
self.script_template = "\n".join([
'tgt-admin --update %(target_name)s',
+ 'tgt-admin --delete %(target_name)s',
'tgt-admin --force '
'--delete %(target_name)s',
'tgtadm --lld iscsi --op show --mode target'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinder-2014.1.dev17.g512170a/cinder/tests/zonemanager/test_volume_manager_fc.py new/cinder-2014.1/cinder/tests/zonemanager/test_volume_manager_fc.py
--- old/cinder-2014.1.dev17.g512170a/cinder/tests/zonemanager/test_volume_manager_fc.py 2014-04-06 18:14:48.000000000 +0200
+++ new/cinder-2014.1/cinder/tests/zonemanager/test_volume_manager_fc.py 2014-04-17 12:12:55.000000000 +0200
@@ -119,7 +119,7 @@
with mock.patch.object(manager.VolumeManager,
'_add_or_delete_fc_connection')\
as add_del_conn_mock:
- self.terminate_connection(None, None, None, False)
+ self.terminate_connection(self.context_mock, None, None, False)
add_del_conn_mock.assert_called_once_with(conn_info, 0)
@mock.patch.object(utils, 'require_driver_initialized')
@@ -131,7 +131,7 @@
as add_del_conn_mock:
self.configuration.zoning_mode = 'none'
self.zonemanager = None
- self.terminate_connection(None, None, None, False)
+ self.terminate_connection(self.context_mock, None, None, False)
assert not add_del_conn_mock.called
@mock.patch.object(utils, 'require_driver_initialized')
@@ -142,7 +142,7 @@
with mock.patch.object(manager.VolumeManager,
'_add_or_delete_fc_connection')\
as add_del_conn_mock:
- self.terminate_connection(None, None, None, False)
+ self.terminate_connection(self.context_mock, None, None, False)
assert not add_del_conn_mock.called
@mock.patch.object(fc_zone_manager.ZoneManager, 'add_connection')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinder-2014.1.dev17.g512170a/cinder/volume/manager.py new/cinder-2014.1/cinder/volume/manager.py
--- old/cinder-2014.1.dev17.g512170a/cinder/volume/manager.py 2014-04-06 18:14:48.000000000 +0200
+++ new/cinder-2014.1/cinder/volume/manager.py 2014-04-17 12:12:57.000000000 +0200
@@ -779,7 +779,8 @@
model_update = None
try:
LOG.debug(_("Volume %s: creating export"), volume_id)
- model_update = self.driver.create_export(context, volume)
+ model_update = self.driver.create_export(context.elevated(),
+ volume)
if model_update:
volume = self.db.volume_update(context,
volume_id,
@@ -794,10 +795,10 @@
try:
conn_info = self.driver.initialize_connection(volume, connector)
except Exception as err:
- self.driver.remove_export(context, volume)
err_msg = (_('Unable to fetch connection information from '
'backend: %(err)s') % {'err': err})
LOG.error(err_msg)
+ self.driver.remove_export(context.elevated(), volume)
raise exception.VolumeBackendAPIException(data=err_msg)
# Add qos_specs to connection info
@@ -865,7 +866,7 @@
try:
LOG.debug(_("volume %s: removing export"), volume_id)
- self.driver.remove_export(context, volume_ref)
+ self.driver.remove_export(context.elevated(), volume_ref)
except Exception as ex:
LOG.exception(_("Error detaching volume %(volume)s, "
"due to remove export failure."),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinder-2014.1.dev17.g512170a/cinder.egg-info/PKG-INFO new/cinder-2014.1/cinder.egg-info/PKG-INFO
--- old/cinder-2014.1.dev17.g512170a/cinder.egg-info/PKG-INFO 2014-04-06 18:18:25.000000000 +0200
+++ new/cinder-2014.1/cinder.egg-info/PKG-INFO 2014-04-17 12:16:33.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: cinder
-Version: 2014.1.dev17.g512170a
+Version: 2014.1
Summary: OpenStack Block Storage
Home-page: http://www.openstack.org/
Author: OpenStack
--
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 openstack-glance for openSUSE:Factory checked in at 2014-04-20 11:35:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-glance (Old)
and /work/SRC/openSUSE:Factory/.openstack-glance.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-glance"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-glance/openstack-glance-doc.changes 2014-04-14 10:53:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-glance.new/openstack-glance-doc.changes 2014-04-20 11:35:54.000000000 +0200
@@ -2,72 +1,0 @@
-Thu Mar 27 01:43:33 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev44.gdc2672a:
- * Return 405 when attempting DELETE on /tasks
- * Removes use of timeutils.set_time_override
- * Remove dependency of test_v1_api on other tests
-
--------------------------------------------------------------------
-Wed Mar 26 01:45:24 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev38.gb5d3295:
- * Pass Message object to webob exception
-
--------------------------------------------------------------------
-Tue Mar 25 01:45:22 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev36.gaabc62a:
- * VMware store.add to return the image size uploaded
- * registry: log errors on failure
-
--------------------------------------------------------------------
-Sat Mar 22 01:43:00 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev32.g09265f6:
- * Remove openstack.common.fixture
-
--------------------------------------------------------------------
-Fri Mar 21 01:54:56 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev31.g49d3220:
- * Detect MultiDict when generating json body
-
--------------------------------------------------------------------
-Mon Mar 17 01:06:27 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev29.gddae276:
- * Make the VMware datastore backend more robust
- * Add copyright text to glance/openstack/common/__init__.py
-
--------------------------------------------------------------------
-Sat Mar 15 01:08:01 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev26.gc6365cc:
- * Makes possible to enable Registry API v1 and v2
- * Fix glance db migration failed on 031
- * Include Location header in POST /tasks response
- * Catch exception when image cache pruning
-
--------------------------------------------------------------------
-Fri Mar 14 00:36:42 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev19.g2d3fa9e:
- * Updated from global requirements
- * Provide an upgrade period for enabling stores
- * API v2: Allow GET on unowned images with show_image_direct_url
-
--------------------------------------------------------------------
-Thu Mar 13 01:43:08 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev14.g09b583e:
- * Remove import specific validation from tasks resource
- * Provide explicit image create value in Registry v2 API test
-
--------------------------------------------------------------------
-Tue Mar 11 01:50:21 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev10.gcc118d4:
- * Don't enable all stores by default
- 2014.1.b3
- * Log 'image_id' with all BadStoreURI error messages
-
--------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/openstack-glance/openstack-glance.changes 2014-04-14 10:53:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-glance.new/openstack-glance.changes 2014-04-20 11:35:54.000000000 +0200
@@ -2 +2 @@
-Thu Mar 27 10:15:05 UTC 2014 - dmueller(a)suse.com
+Thu Apr 17 12:50:28 UTC 2014 - dmueller(a)suse.com
@@ -4 +4,2 @@
-- switch back to Icehouse branch
+- update to 2014.1:
+ * no change
@@ -7 +8 @@
-Thu Mar 27 01:43:36 UTC 2014 - cloud-devel(a)suse.de
+Mon Apr 14 19:30:59 UTC 2014 - dmueller(a)suse.com
@@ -9,4 +10 @@
-- Update to version glance-2014.1.dev44.gdc2672a:
- * Return 405 when attempting DELETE on /tasks
- * Removes use of timeutils.set_time_override
- * Remove dependency of test_v1_api on other tests
+- switch over to non-openstack-prefix'ed users
@@ -15 +13 @@
-Wed Mar 26 01:45:27 UTC 2014 - cloud-devel(a)suse.de
+Mon Apr 14 09:05:21 UTC 2014 - dmueller(a)suse.com
@@ -17,2 +15,7 @@
-- Update to version glance-2014.1.dev38.gb5d3295:
- * Pass Message object to webob exception
+- update to 2014.1.rc2:
+ * Fixes Glance Registry V2 client
+ * Update Glance configuration sample files for database options
+ * To prevent remote code injection on Sheepdog store
+ * Fix Jenkins translation jobs
+ * Catch loading failures if transport_url is not set
+ * Updated from global requirements
@@ -21 +24 @@
-Tue Mar 25 01:45:25 UTC 2014 - cloud-devel(a)suse.de
+Fri Apr 4 13:35:31 UTC 2014 - dmueller(a)suse.com
@@ -23,3 +26 @@
-- Update to version glance-2014.1.dev36.gaabc62a:
- * VMware store.add to return the image size uploaded
- * registry: log errors on failure
+- fix requires once again
@@ -28 +29 @@
-Sat Mar 22 01:43:03 UTC 2014 - cloud-devel(a)suse.de
+Wed Apr 2 07:53:56 UTC 2014 - speilicke(a)suse.com
@@ -30 +31,7 @@
-- Update to version glance-2014.1.dev32.g09265f6:
+- Update to 2014.1.rc1:
+ * Making DB sanity checking be optional for DB migration
+ * Fix swift functional test "test_create_store"
+ * Sanitize set passed to jsonutils.dumps()
+ * Imported Translations from Transifex
+ * Sync common db code from Oslo
+ * Return 405 when attempting DELETE on /tasks
@@ -32,26 +39,3 @@
-
--------------------------------------------------------------------
-Fri Mar 21 01:55:00 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev31.g49d3220:
- * Detect MultiDict when generating json body
-
--------------------------------------------------------------------
-Tue Mar 18 12:26:44 UTC 2014 - dmueller(a)suse.com
-
-- fix requires
-
--------------------------------------------------------------------
-Tue Mar 18 10:14:08 UTC 2014 - speilicke(a)suse.com
-
-- Fix changelog
-
--------------------------------------------------------------------
-Mon Mar 17 09:46:49 UTC 2014 - rhafer(a)suse.com
-
-- switch over to non-openstack-prefix'ed users
-
--------------------------------------------------------------------
-Mon Mar 17 01:06:30 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev29.gddae276:
+ * VMware store.add to return the image size uploaded
+ * registry: log errors on failure
+ * Removes use of timeutils.set_time_override
@@ -59,6 +43,2 @@
- * Add copyright text to glance/openstack/common/__init__.py
-
--------------------------------------------------------------------
-Sat Mar 15 01:08:05 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev26.gc6365cc:
+ * Pass Message object to webob exception
+ * Detect MultiDict when generating json body
@@ -66,8 +45,0 @@
- * Fix glance db migration failed on 031
- * Include Location header in POST /tasks response
- * Catch exception when image cache pruning
-
--------------------------------------------------------------------
-Fri Mar 14 00:36:46 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev19.g2d3fa9e:
@@ -77,12 +49 @@
-
--------------------------------------------------------------------
-Thu Mar 13 01:43:11 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev14.g09b583e:
- * Remove import specific validation from tasks resource
- * Provide explicit image create value in Registry v2 API test
-
--------------------------------------------------------------------
-Tue Mar 11 01:50:25 UTC 2014 - cloud-devel(a)suse.de
-
-- Update to version glance-2014.1.dev10.gcc118d4:
+ * Add copyright text to glance/openstack/common/__init__.py
@@ -90,2 +51,4 @@
- 2014.1.b3
- * Log 'image_id' with all BadStoreURI error messages
+ * Fix glance db migration failed on 031
+ * Document for API message localization
+- Cleanup requirements
+- Switch away from master (again)
Old:
----
glance-2014.1.b3.tar.gz
New:
----
glance-2014.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openstack-glance-doc.spec ++++++
--- /var/tmp/diff_new_pack.BnrUHY/_old 2014-04-20 11:35:55.000000000 +0200
+++ /var/tmp/diff_new_pack.BnrUHY/_new 2014-04-20 11:35:55.000000000 +0200
@@ -18,7 +18,7 @@
%define component glance
Name: openstack-%{component}-doc
-Version: 2014.1.b3
+Version: 2014.1
Release: 0
Summary: OpenStack Image Service (Glance) - Documentation
License: Apache-2.0
++++++ openstack-glance.spec ++++++
--- /var/tmp/diff_new_pack.BnrUHY/_old 2014-04-20 11:35:55.000000000 +0200
+++ /var/tmp/diff_new_pack.BnrUHY/_new 2014-04-20 11:35:55.000000000 +0200
@@ -22,7 +22,7 @@
%define username %{component}
Name: openstack-%{component}
-Version: 2014.1.b3
+Version: 2014.1
Release: 0
Summary: OpenStack Image Service (Glance)
License: Apache-2.0
@@ -81,23 +81,23 @@
Requires: python >= 2.6.8
Requires: python-Babel >= 1.3
Requires: python-Paste
-Requires: python-PasteDeploy >= 1.5.0
+Requires: python-PasteDeploy >= 1.5
Requires: python-Routes >= 1.12.3
Requires: python-SQLAlchemy >= 0.7.8
Requires: python-WebOb >= 1.2.3
Requires: python-anyjson >= 0.3.3
Requires: python-argparse
-Requires: python-boto >= 2.12.0
+Requires: python-boto >= 2.12
Requires: python-cinderclient >= 1.0.6
-Requires: python-eventlet >= 0.13.0
+Requires: python-eventlet >= 0.13
Requires: python-greenlet >= 0.3.2
Requires: python-httplib2 >= 0.7.5
-Requires: python-iso8601 >= 0.1.8
-Requires: python-jsonschema >= 2.0.0
-Requires: python-keystoneclient >= 0.6.0
+Requires: python-iso8601 >= 0.1.9
+Requires: python-jsonschema >= 2
+Requires: python-keystoneclient >= 0.7
Requires: python-kombu >= 2.4.8
-Requires: python-oslo.config >= 1.2.0
-Requires: python-oslo.messaging >= 1.3.0a4
+Requires: python-oslo.config >= 1.2
+Requires: python-oslo.messaging >= 1.3
Requires: python-oslo.vmware >= 0.2
%if %suse_version < 1120
Requires: python-ordereddict
@@ -106,10 +106,9 @@
Requires: python-psutil >= 1.1.1
Requires: python-pyOpenSSL >= 0.11
Requires: python-pycrypto >= 2.6
-Requires: python-six >= 1.4.1
+Requires: python-six >= 1.5.2
Requires: python-sqlalchemy-migrate >= 0.8.2
Requires: python-stevedore >= 0.14
-Requires: python-suds >= 0.4
Requires: python-swiftclient >= 1.6
Requires: python-xattr >= 0.4
@@ -120,13 +119,15 @@
Summary: OpenStack Image Service (Glance) - Testsuite
Group: Development/Languages/Python
Requires: %{name} = %{version}
+%if 0%{?suse_version} && 0%{?suse_version} <= 1110
Requires: python-discover
+%endif
Requires: python-fixtures >= 0.3.14
Requires: python-glanceclient
-Requires: python-mock >= 1.0
+Requires: python-mock >= 1
Requires: python-mox >= 0.5.3
Requires: python-psycopg2
-Requires: python-pysendfile >= 2.0.0
+Requires: python-pysendfile >= 2
Requires: python-requests >= 1.1
Requires: python-sqlalchemy-migrate >= 0.8.2
Requires: python-testrepository >= 0.0.18
@@ -204,7 +205,9 @@
mkdir -p %{buildroot}%{_localstatedir}/cache/glance/registry
%pre
-%openstack_pre_user_group_create %{username} %{groupname}
+getent group %{groupname} >/dev/null || groupadd -r %{groupname}
+getent passwd %{username} >/dev/null || useradd -r -g %{groupname} -d %{_localstatedir}/lib/glance -s /sbin/nologin -c "OpenStack Glance Daemons" %{username}
+exit 0
%post
%fillup_and_insserv openstack-glance-api openstack-glance-registry
++++++ glance-2014.1.b3.tar.gz -> glance-2014.1.tar.gz ++++++
++++ 264849 lines of diff (skipped)
--
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 python3-nose for openSUSE:Factory checked in at 2014-04-20 11:35:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-nose (Old)
and /work/SRC/openSUSE:Factory/.python3-nose.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-nose"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-nose/python3-nose-doc.changes 2013-06-21 19:01:49.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-nose.new/python3-nose-doc.changes 2014-04-20 11:35:11.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Apr 17 11:18:47 UTC 2014 - toddrme2178(a)gmail.com
+
+- update to 1.3.1:
+ * very long list of bugfixes, see included CHANGELOG for details
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/python3-nose/python3-nose.changes 2014-02-26 06:55:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-nose.new/python3-nose.changes 2014-04-20 11:35:12.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Apr 17 11:18:47 UTC 2014 - toddrme2178(a)gmail.com
+
+- update to 1.3.1:
+ * very long list of bugfixes, see included CHANGELOG for details
+
+-------------------------------------------------------------------
Old:
----
nose-1.3.0.tar.gz
New:
----
nose-1.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-nose-doc.spec ++++++
--- /var/tmp/diff_new_pack.oQ4XOO/_old 2014-04-20 11:35:12.000000000 +0200
+++ /var/tmp/diff_new_pack.oQ4XOO/_new 2014-04-20 11:35:12.000000000 +0200
@@ -17,7 +17,7 @@
Name: python3-nose-doc
-Version: 1.3.0
+Version: 1.3.1
Release: 0
Url: http://readthedocs.org/docs/nose/
Summary: Nose extends unittest to make testing easier
python3-nose.spec: same change
++++++ nose-1.3.0.tar.gz -> nose-1.3.1.tar.gz ++++++
++++ 2522 lines of diff (skipped)
--
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 shim for openSUSE:Factory checked in at 2014-04-20 11:35:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shim (Old)
and /work/SRC/openSUSE:Factory/.shim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shim"
Changes:
--------
--- /work/SRC/openSUSE:Factory/shim/shim.changes 2014-01-30 11:37:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.shim.new/shim.changes 2014-04-20 11:35:07.000000000 +0200
@@ -1,0 +2,110 @@
+Thu Apr 10 08:20:20 UTC 2014 - glin(a)suse.com
+
+- Replace shim-mokmanager-support-sha1.patch with
+ shim-mokmanager-support-sha-family.patch to support the SHA
+ family
+
+-------------------------------------------------------------------
+Mon Apr 7 09:32:21 UTC 2014 - glin(a)suse.com
+
+- Add shim-mokmanager-support-sha1.patch to support SHA1 hashes in
+ MOK
+
+-------------------------------------------------------------------
+Mon Mar 31 11:57:13 UTC 2014 - mchang(a)suse.com
+
+- snapper rollback support (fate#317062)
+ - refresh shim-install
+
+-------------------------------------------------------------------
+Thu Mar 13 02:32:15 UTC 2014 - glin(a)suse.com
+
+- Insert the right signature (bnc#867974)
+
+-------------------------------------------------------------------
+Mon Mar 10 07:56:44 UTC 2014 - glin(a)suse.com
+
+- Add shim-fix-uninitialized-variable.patch to fix the use of
+ uninitialzed variables in lib
+
+-------------------------------------------------------------------
+Fri Mar 7 09:09:12 UTC 2014 - glin(a)suse.com
+
+- Add shim-mokmanager-delete-bs-var-right.patch to delete the BS+NV
+ variables the right way
+- Update shim-opensuse-cert-prompt.patch to delete openSUSE_Verify
+ correctly
+
+-------------------------------------------------------------------
+Thu Mar 6 07:37:57 UTC 2014 - glin(a)suse.com
+
+- Add shim-fallback-avoid-duplicate-bootorder.patch to fix the
+ duplicate entries in BootOrder
+- Add shim-allow-fallback-use-system-loadimage.patch to handle the
+ shim protocol properly to keep only one protocol entity
+- Refresh shim-opensuse-cert-prompt.patch
+
+-------------------------------------------------------------------
+Thu Mar 6 03:53:49 UTC 2014 - mchang(a)suse.com
+
+- shim-install: fix the $prefix to use grub2-mkrelpath for paths
+ on btrfs subvolume (bnc#866690).
+
+-------------------------------------------------------------------
+Tue Mar 4 04:19:05 UTC 2014 - glin(a)suse.com
+
+- FATE#315002: Update shim-install to install shim.efi as the EFI
+ default bootloader when none exists in \EFI\boot.
+
+-------------------------------------------------------------------
+Thu Feb 27 09:46:49 UTC 2014 - fcrozat(a)suse.com
+
+- Update signature-sles.asc: shim signed by UEFI signing service,
+ based on code from "Thu Feb 20 11:57:01 UTC 2014"
+
+-------------------------------------------------------------------
+Fri Feb 21 08:45:46 UTC 2014 - glin(a)suse.com
+
+- Add shim-opensuse-cert-prompt.patch to show the prompt to ask
+ whether the user trusts the openSUSE certificate or not
+
+-------------------------------------------------------------------
+Thu Feb 20 11:57:01 UTC 2014 - lnussel(a)suse.de
+
+- allow package to carry multiple signatures
+- check correct certificate is embedded
+
+-------------------------------------------------------------------
+Thu Feb 20 10:06:47 UTC 2014 - lnussel(a)suse.de
+
+- always clean up generated files that embed certificates
+ (shim_cert.h shim.cer shim.crt) to make sure next build loop
+ rebuilds them properly
+
+-------------------------------------------------------------------
+Mon Feb 17 09:58:56 UTC 2014 - glin(a)suse.com
+
+- Add shim-bnc863205-mokmanager-fix-hash-delete.patch to fix the
+ hash deletion operation to avoid ruining the whole list
+ (bnc#863205)
+
+-------------------------------------------------------------------
+Tue Feb 11 06:30:02 UTC 2014 - glin(a)suse.com
+
+- Update shim-mokx-support.patch to support the resetting of MOK
+ blacklist
+- Add shim-get-variable-check.patch to fix the variable checking
+ in get_variable_attr
+- Add shim-improve-fallback-entries-creation.patch to improve the
+ boot entry pathes and avoid generating the boot entries that
+ are already there
+- Update SUSE certificate
+- Update attach_signature.sh, show_hash.sh, strip_signature.sh,
+ extract_signature.sh and show_signatures.sh to remove the
+ creation of the temporary nss database
+- Add shim-only-os-name.patch: remove the kernel version of the
+ build server
+- Match the the prefix of the project name properly by escaping the
+ percent sign.
+
+-------------------------------------------------------------------
Old:
----
microsoft.asc
New:
----
shim-allow-fallback-use-system-loadimage.patch
shim-bnc863205-mokmanager-fix-hash-delete.patch
shim-fallback-avoid-duplicate-bootorder.patch
shim-fallback-improve-entries-creation.patch
shim-fix-uninitialized-variable.patch
shim-get-variable-check.patch
shim-mokmanager-delete-bs-var-right.patch
shim-mokmanager-support-sha-family.patch
shim-only-os-name.patch
shim-opensuse-cert-prompt.patch
signature-opensuse.asc
signature-sles.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shim.spec ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -28,7 +28,7 @@
Source: %{name}-%{version}.tar.bz2
# run "extract_signature.sh shim.efi" where shim.efi is the binary
# with the signature from the UEFI signing service.
-Source1: microsoft.asc
+Source1: signature-opensuse.asc
Source2: openSUSE-UEFI-CA-Certificate.crt
Source3: shim-install
Source4: SLES-UEFI-CA-Certificate.crt
@@ -38,6 +38,8 @@
Source8: show_signatures.sh
Source9: openSUSE-UEFI-CA-Certificate-4096.crt
Source10: timestamp.pl
+Source11: strip_signature.sh
+Source12: signature-sles.asc
# PATCH-FIX-UPSTREAM shim-fix-verify-mok.patch glin(a)suse.com -- Fix the error handling in verify_mok()
Patch1: shim-fix-verify-mok.patch
# PATCH-FIX-UPSTREAM shim-improve-error-messages.patch glin(a)suse.com -- Improve the error messages
@@ -50,6 +52,26 @@
Patch5: shim-mokx-support.patch
# PATCH-FIX-UPSTREAM shim-mokmanager-handle-keystroke-error.patch glin(a)suse.com -- Handle the error status from ReadKeyStroke to avoid the unexpected keys
Patch6: shim-mokmanager-handle-keystroke-error.patch
+# PATCH-FIX-SUSE shim-only-os-name.patch glin(a)suse.com -- Only include the OS name in version.c
+Patch7: shim-only-os-name.patch
+# PATCH-FIX-UPSTREAM shim-get-variable-check.patch glin(a)suse.com -- Fix the variable checking in get_variable_attr
+Patch8: shim-get-variable-check.patch
+# PATCH-FIX-UPSTREAM shim-fallback-improve--entries-creation.patch glin(a)suse.com -- Improve the boot entry pathes and avoid generating the boot entries that are already there
+Patch9: shim-fallback-improve-entries-creation.patch
+# PATCH-FIX-UPSTREAM shim-bnc863205-mokmanager-fix-hash-delete.patch bnc#863205 glin(a)suse.com -- Fix the hash deletion operation to avoid ruining the whole list
+Patch10: shim-bnc863205-mokmanager-fix-hash-delete.patch
+# PATCH-FIX-UPSTREAM shim-fallback-avoid-duplicate-bootorder.patch glin(a)suse.com -- Fix the duplicate BootOrder entries generated by fallback.efi
+Patch11: shim-fallback-avoid-duplicate-bootorder.patch
+# PATCH-FIX-UPSTREAM shim-allow-fallback-use-system-loadimage.patch glin(a)suse.com -- Handle the shim protocol properly to keep only one protocol entity
+Patch12: shim-allow-fallback-use-system-loadimage.patch
+# PATCH-FIX-UPSTREAM shim-mokmanager-delete-bs-var-right.patch glin(a)suse.com -- Delete BootService non-volatile variables the right way
+Patch13: shim-mokmanager-delete-bs-var-right.patch
+# PATCH-FIX-UPSTREAM shim-fix-uninitialized-variable.patch glin(a)suse.com -- Initialize the variable in lib properly
+Patch14: shim-fix-uninitialized-variable.patch
+# PATCH-FIX-UPSTREAM shim-mokmanager-support-sha-family.patch glin(a)suse.com -- Support SHA hashes in MOK
+Patch15: shim-mokmanager-support-sha-family.patch
+# PATCH-FIX-OPENSUSE shim-opensuse-cert-prompt.patch glin(a)suse.com -- Show the prompt to ask whether the user trusts openSUSE certificate or not
+Patch100: shim-opensuse-cert-prompt.patch
BuildRequires: gnu-efi >= 3.0t
BuildRequires: mozilla-nss-tools
BuildRequires: openssl >= 0.9.8
@@ -78,6 +100,16 @@
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch100 -p1
%build
# first, build MokManager and fallback as they don't depend on a
@@ -108,12 +140,18 @@
if test "$suffix" = "opensuse"; then
cert=%{SOURCE2}
cert2=%{SOURCE9}
+ verify='openSUSE Secure Boot CA1'
+ signature=%{SOURCE1}
elif test "$suffix" = "sles"; then
cert=%{SOURCE4}
cert2=''
+ verify='SUSE Linux Enterprise Secure Boot CA1'
+ signature=%{SOURCE12}
elif test "$suffix" = "devel"; then
cert=%{_sourcedir}/_projectcert.crt
cert2=''
+ verify=`openssl x509 -in "$cert" -noout -email`
+ signature=''
test -e "$cert" || continue
else
echo "invalid suffix"
@@ -121,6 +159,7 @@
fi
openssl x509 -in $cert -outform DER -out shim-$suffix.der
+ rm -f shim_cert.h shim.cer shim.crt
if [ -z "$cert2" ]; then
# create empty local cert file, we don't need a local key pair as we
# sign the mokmanager with our vendor key
@@ -128,36 +167,39 @@
touch shim.cer
else
cp $cert2 shim.crt
- rm -f shim.cer
fi
# make sure cast warnings don't trigger post build check
make EFI_PATH=/usr/lib64 VENDOR_CERT_FILE=shim-$suffix.der shim.efi 2>/dev/null
+ #
+ # assert correct certificate embedded
+ grep -q "$verify" shim.efi
# make VENDOR_CERT_FILE=cert.der VENDOR_DBX_FILE=dbx
- chmod 755 %{SOURCE6} %{SOURCE7} %{SOURCE10}
+ chmod 755 %{SOURCE10}
# alternative: verify signature
#sbverify --cert MicCorThiParMarRoo_2010-10-05.pem shim-signed.efi
- head -1 %{SOURCE1} > hash1
+ if test -n "$signature"; then
+ head -1 "$signature" > hash1
cp shim.efi shim.efi.bak
# pe header contains timestamp and checksum. we need to
# restore that
- %{SOURCE10} --set-from-file %{SOURCE1} shim.efi
- %{SOURCE7} shim.efi > hash2
+ %{SOURCE10} --set-from-file "$signature" shim.efi
+ pesign -h -P -i shim.efi > hash2
cat hash1 hash2
if ! cmp -s hash1 hash2; then
- echo "ERROR: binary changed, need to request new signature!"
+ echo "ERROR: $suffix binary changed, need to request new signature!"
# don't fail in devel projects
prj="%{_project}"
- if [ "${prj%%:*}" = "openSUSE" -o "${prj%%:*}" = "SUSE" ]; then
+ if [ "${prj%%%:*}" = "openSUSE" -o "${prj%%%:*}" = "SUSE" ]; then
false
fi
mv shim.efi.bak shim-$suffix.efi
rm shim.efi
else
# attach signature
- %{SOURCE6} %{SOURCE1} shim.efi
- mv shim-signed.efi shim-$suffix.efi
+ pesign -m "$signature" -i shim.efi -o shim-$suffix.efi
rm -f shim.efi
fi
+ fi
rm -f shim.cer shim.crt
# make sure cert.o gets rebuilt
rm -f cert.o
++++++ SLES-UEFI-CA-Certificate.crt ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -1,39 +1,29 @@
-----BEGIN CERTIFICATE-----
-MIIG5TCCBM2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBpjEtMCsGA1UEAwwkU1VT
+MIIE5TCCA82gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBpjEtMCsGA1UEAwwkU1VT
RSBMaW51eCBFbnRlcnByaXNlIFNlY3VyZSBCb290IENBMQswCQYDVQQGEwJERTES
MBAGA1UEBwwJTnVyZW1iZXJnMSEwHwYDVQQKDBhTVVNFIExpbnV4IFByb2R1Y3Rz
IEdtYkgxEzARBgNVBAsMCkJ1aWxkIFRlYW0xHDAaBgkqhkiG9w0BCQEWDWJ1aWxk
-QHN1c2UuZGUwHhcNMTMwMTIyMTQyMDA4WhcNMzQxMjE4MTQyMDA4WjCBpjEtMCsG
+QHN1c2UuZGUwHhcNMTMwNDE4MTQzMzQxWhcNMzUwMzE0MTQzMzQxWjCBpjEtMCsG
A1UEAwwkU1VTRSBMaW51eCBFbnRlcnByaXNlIFNlY3VyZSBCb290IENBMQswCQYD
VQQGEwJERTESMBAGA1UEBwwJTnVyZW1iZXJnMSEwHwYDVQQKDBhTVVNFIExpbnV4
IFByb2R1Y3RzIEdtYkgxEzARBgNVBAsMCkJ1aWxkIFRlYW0xHDAaBgkqhkiG9w0B
-CQEWDWJ1aWxkQHN1c2UuZGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCrLYL1Uq02iIgro6x6PFESFDtUKU7xO/bJanI7+AQAroowFuLBI67BBSmoq3hR
-QnH3OtQusGV8y+wvjaaunppvWMfjViZ88zssj5fKXrDr5U6BB566DJgHreWaEs2d
-FD13XpKRr3Nk9zdjAJu5YsR7hI1NMXsnj1X8w71OY9HLjv+Kq9917PJwZQjOGnAJ
-BQTi0ogHuLiwDqMKgg5rrYD4cJDPzoLEmEXnwHDIOSiWdD0bCzhN6GQDKldIxQ2O
-d/mjUgzB+dWslIb+bUKaoJgDtyPV20W74t7Y2uwoaEVr9QkPoM3tOPttf4qsWo8B
-J1TgeoF01ZeKcvSyvOXCKbfAN9sqURK2ZUTNThqZ//VPQmJP6fByrMJsbvTOSsQt
-HI+fFPrg1DC2KT8SzuGtWDRscHZ7MofvUKEQolVgkGwp8u68t/RAAwDpUdqIajzi
-yfp9qSDD+9uMeyiLa4rrAr2ATGohNBa0qha95slgvSepXbYKuHG5b4fWMsG7z4Uc
-dqE2vK8cQma1nsAeQBaq2/89294TOHEzKyspesfCBCnKQ3q+l9xelYRdvapj1CH/
-cfUZf2/6X3VHN1P88RfRrPubswmrcOCEBT41upa2WKRDJ1GS6YhL6LJnrZSTjfe+
-KsfNVS1D+KqSKiK0hfk6YK6O88mMGeAKQs3Ap8WthBLf0QIDAQABo4IBGjCCARYw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPU1Az5OFOQJLHPxaEt7f6LF+dV8w
-gdMGA1UdIwSByzCByIAUPU1Az5OFOQJLHPxaEt7f6LF+dV+hgaykgakwgaYxLTAr
-BgNVBAMMJFNVU0UgTGludXggRW50ZXJwcmlzZSBTZWN1cmUgQm9vdCBDQTELMAkG
-A1UEBhMCREUxEjAQBgNVBAcMCU51cmVtYmVyZzEhMB8GA1UECgwYU1VTRSBMaW51
-eCBQcm9kdWN0cyBHbWJIMRMwEQYDVQQLDApCdWlsZCBUZWFtMRwwGgYJKoZIhvcN
-AQkBFg1idWlsZEBzdXNlLmRlggEBMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0B
-AQsFAAOCAgEANtdMT47CjQtuERYa5jfygIO5F+urB4fl8pYcQQ/hTPE0KtAnAtrS
-1strtMrVQ1t7Wu3fVbWYA6MZMXXkcwyyNbaWfj6roaSC6G5ZqCJ69oSyzaCbyaTI
-eOgzIIiVGOAj7tiM6T88Xp9qx4Xa3F6UQHF6xfwBT3nNKerGKOG01p7mBfBewwO5
-Hxp7OAZmennUxV1uuT5/AsArxw9lMlawXhIAS7tRYHW+32D4tjHPDycldOw1hBjt
-z5JdehBiTmxhJ6onl0HSpsX84IMSbkeFIxLfxIF0TNas1pGnSGmh8FcV+ck9js3P
-yamJcNkgCstIwo3QZ2D5YdtQjOusyEuGjCIpDIQx36OMzeOo0SayOdzb2dSmcrHv
-4DIkXDUELyIzu79A2R2KR7OQaGL6HGAVy6+yXHHygTbbUrb6ck2+aOG8913ChABc
-ZAiSFFRKVZzzj7FeIxZNA8GBUbhd20eQB2fUXDypeAnTG6P3dtTs84xNb1qGm3VC
-OAKjkWYQijLWmAOs9Q4NM/AXOeDTgXxA7iX7kWHRNeDbACirp7zM2ZOIP5ObIS6z
-yMqcG9DecSVbXiH3MJDTBoB1idQTTyreqpM/l6N8xNNVjEiLJGMEM1SeYq6S1lFV
-a+GcdOaLYkh7ya3I42l/tDOqH2OLIf7FEtocnc1xU6jTz8au1tZxec8=
+CQEWDWJ1aWxkQHN1c2UuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDN/avXKoT4gcM2NVA1LMfsBPH01sxgS8gTs3SbvfbEP2M+ZlHyfj9ufHZ7cZ1p
+ISoVm6ql5VbIeZgSNc17Y4y4Nynud1C8t2SP/iZK5YMYHGxdtIfv1zPE+Bo/KZqE
+WgHg2YFtMXdiKfXBZRTfSh37t0pGO/OQi6K4JioKw55UtQNggePZWDXtsAviT2vv
+abqLR9+kxdrQ0iWqhWM+LwXbTGkCpg41s8KucLD/JYAxxw05dKPApFDNnz+Ft2L7
+e5JtyB4S0u4PlvQBMNHt4hDs0rK4oeHFLbOxHvjF+nloneWhkg9eT0VCfpAYVYz+
+whMxuCHerDCdmeFrRGEMQz11AgMBAAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/
+MB0GA1UdDgQWBBTsqw1CxFbPdwQ2uXOZOGKWXocmLzCB0wYDVR0jBIHLMIHIgBTs
+qw1CxFbPdwQ2uXOZOGKWXocmL6GBrKSBqTCBpjEtMCsGA1UEAwwkU1VTRSBMaW51
+eCBFbnRlcnByaXNlIFNlY3VyZSBCb290IENBMQswCQYDVQQGEwJERTESMBAGA1UE
+BwwJTnVyZW1iZXJnMSEwHwYDVQQKDBhTVVNFIExpbnV4IFByb2R1Y3RzIEdtYkgx
+EzARBgNVBAsMCkJ1aWxkIFRlYW0xHDAaBgkqhkiG9w0BCQEWDWJ1aWxkQHN1c2Uu
+ZGWCAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IBAQASviyFhVqU
+Wc1JUQgXwdljJynTnp0/FQOZJBSe7XdBGPmy91+3ITqrXgyqo/218KISiQl53Qlw
+pq+cIiGRAia1D7p7wbg7wsg+Trt0zZFXes30wfYq5pjfWadEBAgNCffkBz10TSjL
+jQrVwW5N+yUJMoq+r843TzV56Huy6LBOVhI5yTz7X7i2rSJYfyQWM8oeHLj8Yl5M
+rOB9gyTumxB4mOLmSqwKzJiUB0ppGPohdLUSSEKDdo6KSH/GjR7M7uBicwnzwJD3
+SVfT9nx9HKF2nXZlHvs5ViQQru3qP1tc6i0eXEnPTYW2+zkZcN0e5iHyozEZHsO0
+rvc1p6G0YWtO
-----END CERTIFICATE-----
++++++ attach_signature.sh ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -11,13 +11,4 @@
outfile="${infile%.efi}-signed.efi"
-nssdir=`mktemp -d`
-cleanup()
-{
- rm -r "$nssdir"
-}
-trap cleanup EXIT
-echo > "$nssdir/pw"
-certutil -f "$nssdir/pw" -d "$nssdir" -N
-
-pesign -n "$nssdir" -m "$sig" -i "$infile" -o "$outfile"
+pesign -m "$sig" -i "$infile" -o "$outfile"
++++++ extract_signature.sh ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -9,16 +9,7 @@
exit 1
fi
-nssdir=`mktemp -d`
-cleanup()
-{
- rm -r "$nssdir"
-}
-trap cleanup EXIT
-echo > "$nssdir/pw"
-certutil -f "$nssdir/pw" -d "$nssdir" -N
-
# wtf?
-(pesign -n "$nssdir" -h -P -i "$infile";
+(pesign -h -P -i "$infile";
perl $(dirname $0)/timestamp.pl "$infile";
-pesign -n "$nssdir" -a -f -e /dev/stdout -i "$infile")|cat
+pesign -a -f -e /dev/stdout -i "$infile")|cat
++++++ shim-allow-fallback-use-system-loadimage.patch ++++++
>From 06495f692fa748a553ffbde8bfae2974d8c791c0 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones(a)redhat.com>
Date: Fri, 14 Feb 2014 15:38:25 -0500
Subject: [PATCH] Allow fallback to use the system's LoadImage/StartImage .
Track use of the system's LoadImage(), and when the next StartImage()
call is for an image the system verified, allow that to count as
participating, since it has been verified by the system's db.
Signed-off-by: Peter Jones <pjones(a)redhat.com>
---
replacements.c | 68 ++++++++++++++++++++++++++++++++++++++++++++-
replacements.h | 3 ++
shim.c | 85 ++++++++++++++++++++++++++++++++++-----------------------
3 files changed, 121 insertions(+), 35 deletions(-)
--- a/replacements.c
+++ b/replacements.c
@@ -60,26 +60,82 @@
static EFI_SYSTEM_TABLE *systab;
+static typeof(systab->BootServices->LoadImage) system_load_image;
static typeof(systab->BootServices->StartImage) system_start_image;
static typeof(systab->BootServices->Exit) system_exit;
static typeof(systab->BootServices->ExitBootServices) system_exit_boot_services;
+static EFI_HANDLE last_loaded_image;
+
void
unhook_system_services(void)
{
systab->BootServices->Exit = system_exit;
+ systab->BootServices->LoadImage = system_load_image;
systab->BootServices->StartImage = system_start_image;
systab->BootServices->ExitBootServices = system_exit_boot_services;
}
static EFI_STATUS EFIAPI
+load_image(BOOLEAN BootPolicy, EFI_HANDLE ParentImageHandle,
+ EFI_DEVICE_PATH *DevicePath, VOID *SourceBuffer,
+ UINTN SourceSize, EFI_HANDLE *ImageHandle)
+{
+ EFI_STATUS status;
+ unhook_system_services();
+
+ status = systab->BootServices->LoadImage(BootPolicy,
+ ParentImageHandle, DevicePath,
+ SourceBuffer, SourceSize, ImageHandle);
+ hook_system_services(systab);
+ if (EFI_ERROR(status))
+ last_loaded_image = NULL;
+ else
+ last_loaded_image = *ImageHandle;
+ return status;
+}
+
+static EFI_STATUS EFIAPI
start_image(EFI_HANDLE image_handle, UINTN *exit_data_size, CHAR16 **exit_data)
{
EFI_STATUS status;
unhook_system_services();
+
+ /* We have to uninstall shim's protocol here, because if we're
+ * On the fallback.efi path, then our call pathway is:
+ *
+ * shim->fallback->shim->grub
+ * ^ ^ ^
+ * | | \- gets protocol #0
+ * | \- installs its protocol (#1)
+ * \- installs its protocol (#0)
+ * and if we haven't removed this, then grub will get the *first*
+ * shim's protocol, but it'll get the second shim's systab
+ * replacements. So even though it will participate and verify
+ * the kernel, the systab never finds out.
+ */
+ if (image_handle == last_loaded_image) {
+ loader_is_participating = 1;
+ uninstall_shim_protocols();
+ }
status = systab->BootServices->StartImage(image_handle, exit_data_size, exit_data);
- if (EFI_ERROR(status))
+ if (EFI_ERROR(status)) {
+ if (image_handle == last_loaded_image) {
+ EFI_STATUS status2 = install_shim_protocols();
+
+ if (EFI_ERROR(status2)) {
+ Print(L"Something has gone seriously wrong: %d\n",
+ status2);
+ Print(L"shim cannot continue, sorry.\n");
+ systab->BootServices->Stall(5000000);
+ systab->RuntimeServices->ResetSystem(
+ EfiResetShutdown,
+ EFI_SECURITY_VIOLATION, 0, NULL);
+ }
+ }
hook_system_services(systab);
+ loader_is_participating = 0;
+ }
return status;
}
@@ -123,6 +179,16 @@ hook_system_services(EFI_SYSTEM_TABLE *l
/* We need to hook various calls to make this work... */
+ /* We need LoadImage() hooked so that fallback.c can load shim
+ * without having to fake LoadImage as well. This allows it
+ * to call the system LoadImage(), and have us track the output
+ * and mark loader_is_participating in start_image. This means
+ * anything added by fallback has to be verified by the system db,
+ * which we want to preserve anyway, since that's all launching
+ * through BDS gives us. */
+ system_load_image = systab->BootServices->LoadImage;
+ systab->BootServices->LoadImage = load_image;
+
/* we need StartImage() so that we can allow chain booting to an
* image trusted by the firmware */
system_start_image = systab->BootServices->StartImage;
--- a/replacements.h
+++ b/replacements.h
@@ -41,4 +41,7 @@ extern int loader_is_participating;
extern void hook_system_services(EFI_SYSTEM_TABLE *local_systab);
extern void unhook_system_services(void);
+extern EFI_STATUS install_shim_protocols(void);
+extern void uninstall_shim_protocols(void);
+
#endif /* SHIM_REPLACEMENTS_H */
--- a/shim.c
+++ b/shim.c
@@ -1719,11 +1719,56 @@ EFI_STATUS set_second_stage (EFI_HANDLE
return EFI_SUCCESS;
}
-EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
+static SHIM_LOCK shim_lock_interface;
+static EFI_HANDLE shim_lock_handle;
+
+EFI_STATUS
+install_shim_protocols(void)
+{
+ EFI_GUID shim_lock_guid = SHIM_LOCK_GUID;
+ EFI_STATUS efi_status;
+ /*
+ * Install the protocol
+ */
+ efi_status = uefi_call_wrapper(BS->InstallProtocolInterface, 4,
+ &shim_lock_handle, &shim_lock_guid,
+ EFI_NATIVE_INTERFACE, &shim_lock_interface);
+ if (EFI_ERROR(efi_status)) {
+ console_error(L"Could not install security protocol",
+ efi_status);
+ return efi_status;
+ }
+
+#if defined(OVERRIDE_SECURITY_POLICY)
+ /*
+ * Install the security protocol hook
+ */
+ security_policy_install(shim_verify);
+#endif
+
+ return EFI_SUCCESS;
+}
+
+void
+uninstall_shim_protocols(void)
{
EFI_GUID shim_lock_guid = SHIM_LOCK_GUID;
- static SHIM_LOCK shim_lock_interface;
- EFI_HANDLE handle = NULL;
+#if defined(OVERRIDE_SECURITY_POLICY)
+ /*
+ * Clean up the security protocol hook
+ */
+ security_policy_uninstall();
+#endif
+
+ /*
+ * If we're back here then clean everything up before exiting
+ */
+ uefi_call_wrapper(BS->UninstallProtocolInterface, 3, shim_lock_handle,
+ &shim_lock_guid, &shim_lock_interface);
+}
+
+EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
+{
EFI_STATUS efi_status;
verification_method = VERIFIED_BY_NOTHING;
@@ -1776,24 +1821,9 @@ EFI_STATUS efi_main (EFI_HANDLE image_ha
loader_is_participating = 0;
}
- /*
- * Install the protocol
- */
- efi_status = uefi_call_wrapper(BS->InstallProtocolInterface, 4,
- &handle, &shim_lock_guid, EFI_NATIVE_INTERFACE,
- &shim_lock_interface);
- if (EFI_ERROR(efi_status)) {
- console_error(L"Could not install security protocol",
- efi_status);
+ efi_status = install_shim_protocols();
+ if (EFI_ERROR(efi_status))
return efi_status;
- }
-
-#if defined(OVERRIDE_SECURITY_POLICY)
- /*
- * Install the security protocol hook
- */
- security_policy_install(shim_verify);
-#endif
/*
* Enter MokManager if necessary
@@ -1820,20 +1850,7 @@ EFI_STATUS efi_main (EFI_HANDLE image_ha
efi_status = init_grub(image_handle);
-#if defined(OVERRIDE_SECURITY_POLICY)
- /*
- * Clean up the security protocol hook
- */
- security_policy_uninstall();
-#endif
-
- /*
- * If we're back here then clean everything up before exiting
- */
- uefi_call_wrapper(BS->UninstallProtocolInterface, 3, handle,
- &shim_lock_guid, &shim_lock_interface);
-
-
+ uninstall_shim_protocols();
/*
* Remove our hooks from system services.
*/
++++++ shim-bnc863205-mokmanager-fix-hash-delete.patch ++++++
>From 23cdee7b62fc62cd988d74b2180014595da9e4c5 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 13 Feb 2014 15:05:45 +0800
Subject: [PATCH 1/2] MokManager: calculate the variable size correctly
MokSize of the hash signature list includes the owner GUID,
so we should not add the 16bytes compensation.
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/MokManager.c b/MokManager.c
index e79a8e0..e0cc143 100644
--- a/MokManager.c
+++ b/MokManager.c
@@ -934,7 +934,9 @@ static EFI_STATUS write_back_mok_list (MokListNode *list, INTN key_num,
if (list[i].Mok == NULL)
continue;
- DataSize += sizeof(EFI_SIGNATURE_LIST) + sizeof(EFI_GUID);
+ DataSize += sizeof(EFI_SIGNATURE_LIST);
+ if (CompareGuid(&(list[i].Type), &CertType) == 0)
+ DataSize += sizeof(EFI_GUID);
DataSize += list[i].MokSize;
}
--
1.8.4.5
>From 6b70c15cd8a83e0e62088bc4f2f8e84e818d2b73 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 17 Feb 2014 17:49:55 +0800
Subject: [PATCH 2/2] MokManager: fix the hash list counting in delete
match_hash() requests the number of keys in a list and it was
mistakenly replaced with the size of the Mok node. This would
made MokManager to remove the whole Mok node instead of one
hash.
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/MokManager.c b/MokManager.c
index e0cc143..5af5ce6 100644
--- a/MokManager.c
+++ b/MokManager.c
@@ -1042,6 +1042,7 @@ static void delete_hash_in_list (UINT8 *hash, UINT32 hash_size,
{
EFI_GUID HashType = EFI_CERT_SHA256_GUID;
UINT32 sig_size;
+ UINT32 list_num;
int i, del_ind;
void *start, *end;
UINT32 remain;
@@ -1053,8 +1054,10 @@ static void delete_hash_in_list (UINT8 *hash, UINT32 hash_size,
(mok[i].MokSize < sig_size))
continue;
+ list_num = mok[i].MokSize / sig_size;
+
del_ind = match_hash(hash, hash_size, 0, mok[i].Mok,
- mok[i].MokSize);
+ list_num);
while (del_ind >= 0) {
/* Remove the hash */
if (sig_size == mok[i].MokSize) {
@@ -1069,9 +1072,10 @@ static void delete_hash_in_list (UINT8 *hash, UINT32 hash_size,
mem_move(start, end, remain);
mok[i].MokSize -= sig_size;
+ list_num--;
del_ind = match_hash(hash, hash_size, del_ind,
- mok[i].Mok, mok[i].MokSize);
+ mok[i].Mok, list_num);
}
}
}
--
1.8.4.5
++++++ shim-fallback-avoid-duplicate-bootorder.patch ++++++
>From 99858938a08dbdd892cc5438ec49b4262077017d Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 6 Mar 2014 11:58:36 +0800
Subject: [PATCH 1/3] [fallback] Avoid duplicate old BootOrder
set_boot_order() already copies the old BootOrder to the variable,
bootorder. Besides, we can adjust BootOrder when adding the newly
generated boot option. So, we don't have to copy the old one again
in update_boot_order(). This avoid the duplicate entries in BootOrder.
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
fallback.c | 39 +++++++++++++--------------------------
1 file changed, 13 insertions(+), 26 deletions(-)
diff --git a/fallback.c b/fallback.c
index 44638ec..8aee618 100644
--- a/fallback.c
+++ b/fallback.c
@@ -204,12 +204,12 @@ add_boot_option(EFI_DEVICE_PATH *hddp, EFI_DEVICE_PATH *fulldp,
return EFI_OUT_OF_RESOURCES;
int j = 0;
+ newbootorder[0] = i & 0xffff;
if (nbootorder) {
- for (j = 0; j < nbootorder; j++)
- newbootorder[j] = bootorder[j];
+ for (j = 1; j < nbootorder + 1; j++)
+ newbootorder[j] = bootorder[j-1];
FreePool(bootorder);
}
- newbootorder[j] = i & 0xffff;
bootorder = newbootorder;
nbootorder += 1;
#ifdef DEBUG_FALLBACK
@@ -307,28 +307,17 @@ set_boot_order(void)
EFI_STATUS
update_boot_order(void)
{
- CHAR16 *oldbootorder;
UINTN size;
+ UINTN len = 0;
EFI_GUID global = EFI_GLOBAL_VARIABLE;
CHAR16 *newbootorder = NULL;
+ EFI_STATUS rc;
- oldbootorder = LibGetVariableAndSize(L"BootOrder", &global, &size);
- if (oldbootorder) {
- int n = size / sizeof (CHAR16) + nbootorder;
-
- newbootorder = AllocateZeroPool(n * sizeof (CHAR16));
- if (!newbootorder)
- return EFI_OUT_OF_RESOURCES;
- CopyMem(newbootorder, bootorder, nbootorder * sizeof (CHAR16));
- CopyMem(newbootorder + nbootorder, oldbootorder, size);
- size = n * sizeof (CHAR16);
- } else {
- size = nbootorder * sizeof(CHAR16);
- newbootorder = AllocateZeroPool(size);
- if (!newbootorder)
- return EFI_OUT_OF_RESOURCES;
- CopyMem(newbootorder, bootorder, size);
- }
+ size = nbootorder * sizeof(CHAR16);
+ newbootorder = AllocateZeroPool(size);
+ if (!newbootorder)
+ return EFI_OUT_OF_RESOURCES;
+ CopyMem(newbootorder, bootorder, size);
#ifdef DEBUG_FALLBACK
Print(L"nbootorder: %d\nBootOrder: ", size / sizeof (CHAR16));
@@ -337,13 +326,11 @@ update_boot_order(void)
Print(L"%04x ", newbootorder[j]);
Print(L"\n");
#endif
-
- if (oldbootorder) {
+ rc = uefi_call_wrapper(RT->GetVariable, 5, L"BootOrder", &global,
+ NULL, &len, NULL);
+ if (rc == EFI_BUFFER_TOO_SMALL)
LibDeleteVariable(L"BootOrder", &global);
- FreePool(oldbootorder);
- }
- EFI_STATUS rc;
rc = uefi_call_wrapper(RT->SetVariable, 5, L"BootOrder", &global,
EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS |
--
1.8.4.5
>From 80c15a7e90d8f51b09211994895a64ec5e4f5c1e Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 6 Mar 2014 10:57:02 +0800
Subject: [PATCH 2/3] [fallback] Fix the data size for boot option comparison
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
fallback.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fallback.c b/fallback.c
index 8aee618..156115f 100644
--- a/fallback.c
+++ b/fallback.c
@@ -231,7 +231,7 @@ find_boot_option(EFI_DEVICE_PATH *dp, CHAR16 *filename, CHAR16 *label,
{
int size = sizeof(UINT32) + sizeof (UINT16) +
StrLen(label)*2 + 2 + DevicePathSize(dp) +
- StrLen(arguments) * 2 + 2;
+ StrLen(arguments) * 2;
CHAR8 *data = AllocateZeroPool(size);
if (!data)
--
1.8.4.5
>From 70ffe93b85380a9866ebf3a99b35dde0b332cd65 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Wed, 5 Mar 2014 18:14:09 +0800
Subject: [PATCH 3/3] [fallback] Try to boot the first boot option anyway
Some UEFI implementations never care the boot options, so the
restored boot options could be just ignored and this results in
endless reboot.
To avoid this situation, this commit makes fallback.efi to
load the first matched boot option even if there is not boot
option to be restored.
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
fallback.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/fallback.c b/fallback.c
index 156115f..777e708 100644
--- a/fallback.c
+++ b/fallback.c
@@ -226,8 +226,9 @@ add_boot_option(EFI_DEVICE_PATH *hddp, EFI_DEVICE_PATH *fulldp,
}
EFI_STATUS
-find_boot_option(EFI_DEVICE_PATH *dp, CHAR16 *filename, CHAR16 *label,
- CHAR16 *arguments, UINT16 *optnum)
+find_boot_option(EFI_DEVICE_PATH *dp, EFI_DEVICE_PATH *fulldp,
+ CHAR16 *filename, CHAR16 *label, CHAR16 *arguments,
+ UINT16 *optnum)
{
int size = sizeof(UINT32) + sizeof (UINT16) +
StrLen(label)*2 + 2 + DevicePathSize(dp) +
@@ -278,6 +279,12 @@ find_boot_option(EFI_DEVICE_PATH *dp, CHAR16 *filename, CHAR16 *label,
continue;
/* at this point, we have duplicate data. */
+ if (!first_new_option) {
+ first_new_option = DuplicateDevicePath(fulldp);
+ first_new_option_args = arguments;
+ first_new_option_size = StrLen(arguments) * sizeof (CHAR16);
+ }
+
*optnum = i;
FreePool(candidate);
FreePool(data);
@@ -403,7 +410,7 @@ add_to_boot_list(EFI_FILE_HANDLE fh, CHAR16 *dirname, CHAR16 *filename, CHAR16 *
#endif
UINT16 option;
- rc = find_boot_option(dp, fullpath, label, arguments, &option);
+ rc = find_boot_option(dp, full_device_path, fullpath, label, arguments, &option);
if (EFI_ERROR(rc)) {
add_boot_option(dp, full_device_path, fullpath, label, arguments);
} else if (option != 0) {
--
1.8.4.5
++++++ shim-fallback-improve-entries-creation.patch ++++++
>From 9ba08c4e8e7cf9b001497a0752652e0ece0b2b84 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones(a)redhat.com>
Date: Fri, 31 Jan 2014 10:30:24 -0500
Subject: [PATCH 1/2] For HD() device paths, use just the media node and later.
UEFI 2.x section 3.1.2 provides for "short-form device path", where the
first element specified is a "hard drive media device path", so that you
can move a disk around on different buses without invalidating your
device path. Fallback has not been using this option, though in most
cases efibootmgr has.
Note that we still keep the full device path, because LoadImage()
isn't necessarily the layer where HD() works - one some systems BDS is
responsible for resolving the full path and passes that to LoadImage()
instead. So we have to do LoadImage() with the full path.
---
fallback.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++---------------
1 file changed, 78 insertions(+), 25 deletions(-)
diff --git a/fallback.c b/fallback.c
index 82ddbf2..7f4201e 100644
--- a/fallback.c
+++ b/fallback.c
@@ -15,6 +15,27 @@
EFI_LOADED_IMAGE *this_image = NULL;
static EFI_STATUS
+FindSubDevicePath(EFI_DEVICE_PATH *In, UINT8 Type, UINT8 SubType,
+ EFI_DEVICE_PATH **Out)
+{
+ EFI_DEVICE_PATH *dp = In;
+ if (!In || !Out)
+ return EFI_INVALID_PARAMETER;
+
+ for (dp = In; !IsDevicePathEnd(dp); dp = NextDevicePathNode(dp)) {
+ if (DevicePathType(dp) == Type &&
+ DevicePathSubType(dp) == SubType) {
+ *Out = DuplicateDevicePath(dp);
+ if (!*Out)
+ return EFI_OUT_OF_RESOURCES;
+ return EFI_SUCCESS;
+ }
+ }
+ *Out = NULL;
+ return EFI_NOT_FOUND;
+}
+
+static EFI_STATUS
get_file_size(EFI_FILE_HANDLE fh, UINT64 *retsize)
{
EFI_STATUS rc;
@@ -93,7 +114,9 @@ make_full_path(CHAR16 *dirname, CHAR16 *filename, CHAR16 **out, UINT64 *outlen)
{
UINT64 len;
- len = StrLen(dirname) + StrLen(filename) + StrLen(L"\\EFI\\\\") + 2;
+ len = StrLen(L"\\EFI\\") + StrLen(dirname)
+ + StrLen(L"\\") + StrLen(filename)
+ + 2;
CHAR16 *fullpath = AllocateZeroPool(len*sizeof(CHAR16));
if (!fullpath) {
@@ -119,7 +142,8 @@ VOID *first_new_option_args = NULL;
UINTN first_new_option_size = 0;
EFI_STATUS
-add_boot_option(EFI_DEVICE_PATH *dp, CHAR16 *filename, CHAR16 *label, CHAR16 *arguments)
+add_boot_option(EFI_DEVICE_PATH *hddp, EFI_DEVICE_PATH *fulldp,
+ CHAR16 *filename, CHAR16 *label, CHAR16 *arguments)
{
static int i = 0;
CHAR16 varname[] = L"Boot0000";
@@ -136,24 +160,31 @@ add_boot_option(EFI_DEVICE_PATH *dp, CHAR16 *filename, CHAR16 *label, CHAR16 *ar
void *var = LibGetVariable(varname, &global);
if (!var) {
int size = sizeof(UINT32) + sizeof (UINT16) +
- StrLen(label)*2 + 2 + DevicePathSize(dp) +
- StrLen(arguments) * 2 + 2;
+ StrLen(label)*2 + 2 + DevicePathSize(hddp) +
+ StrLen(arguments) * 2;
CHAR8 *data = AllocateZeroPool(size);
CHAR8 *cursor = data;
*(UINT32 *)cursor = LOAD_OPTION_ACTIVE;
cursor += sizeof (UINT32);
- *(UINT16 *)cursor = DevicePathSize(dp);
+ *(UINT16 *)cursor = DevicePathSize(hddp);
cursor += sizeof (UINT16);
StrCpy((CHAR16 *)cursor, label);
cursor += StrLen(label)*2 + 2;
- CopyMem(cursor, dp, DevicePathSize(dp));
- cursor += DevicePathSize(dp);
+ CopyMem(cursor, hddp, DevicePathSize(hddp));
+ cursor += DevicePathSize(hddp);
StrCpy((CHAR16 *)cursor, arguments);
Print(L"Creating boot entry \"%s\" with label \"%s\" "
L"for file \"%s\"\n",
varname, label, filename);
+
+ if (!first_new_option) {
+ first_new_option = DuplicateDevicePath(fulldp);
+ first_new_option_args = arguments;
+ first_new_option_size = StrLen(arguments) * sizeof (CHAR16);
+ }
+
rc = uefi_call_wrapper(RT->SetVariable, 5, varname,
&global, EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS |
@@ -254,7 +285,10 @@ add_to_boot_list(EFI_FILE_HANDLE fh, CHAR16 *dirname, CHAR16 *filename, CHAR16 *
if (EFI_ERROR(rc))
return rc;
- EFI_DEVICE_PATH *dph = NULL, *dpf = NULL, *dp = NULL;
+ EFI_DEVICE_PATH *dph = NULL;
+ EFI_DEVICE_PATH *file = NULL;
+ EFI_DEVICE_PATH *full_device_path = NULL;
+ EFI_DEVICE_PATH *dp = NULL;
dph = DevicePathFromHandle(this_image->DeviceHandle);
if (!dph) {
@@ -262,19 +296,31 @@ add_to_boot_list(EFI_FILE_HANDLE fh, CHAR16 *dirname, CHAR16 *filename, CHAR16 *
goto err;
}
- dpf = FileDevicePath(fh, fullpath);
- if (!dpf) {
+ file = FileDevicePath(fh, fullpath);
+ if (!file) {
rc = EFI_OUT_OF_RESOURCES;
goto err;
}
- dp = AppendDevicePath(dph, dpf);
- if (!dp) {
+ full_device_path = AppendDevicePath(dph, file);
+ if (!full_device_path) {
rc = EFI_OUT_OF_RESOURCES;
goto err;
}
+ rc = FindSubDevicePath(full_device_path,
+ MEDIA_DEVICE_PATH, MEDIA_HARDDRIVE_DP, &dp);
+ if (EFI_ERROR(rc)) {
+ if (rc == EFI_NOT_FOUND) {
+ dp = full_device_path;
+ } else {
+ rc = EFI_OUT_OF_RESOURCES;
+ goto err;
+ }
+ }
+
#ifdef DEBUG_FALLBACK
+ {
UINTN s = DevicePathSize(dp);
int i;
UINT8 *dpv = (void *)dp;
@@ -287,20 +333,16 @@ add_to_boot_list(EFI_FILE_HANDLE fh, CHAR16 *dirname, CHAR16 *filename, CHAR16 *
CHAR16 *dps = DevicePathToStr(dp);
Print(L"device path: \"%s\"\n", dps);
-#endif
- if (!first_new_option) {
- CHAR16 *dps = DevicePathToStr(dp);
- Print(L"device path: \"%s\"\n", dps);
- first_new_option = DuplicateDevicePath(dp);
- first_new_option_args = arguments;
- first_new_option_size = StrLen(arguments) * sizeof (CHAR16);
}
+#endif
- add_boot_option(dp, fullpath, label, arguments);
+ add_boot_option(dp, full_device_path, fullpath, label, arguments);
err:
- if (dpf)
- FreePool(dpf);
+ if (file)
+ FreePool(file);
+ if (full_device_path)
+ FreePool(full_device_path);
if (dp)
FreePool(dp);
if (fullpath)
@@ -622,8 +664,19 @@ try_start_first_option(EFI_HANDLE parent_image_handle)
first_new_option, NULL, 0,
&image_handle);
if (EFI_ERROR(rc)) {
- Print(L"LoadImage failed: %d\n", rc);
- uefi_call_wrapper(BS->Stall, 1, 2000000);
+ CHAR16 *dps = DevicePathToStr(first_new_option);
+ UINTN s = DevicePathSize(first_new_option);
+ int i;
+ UINT8 *dpv = (void *)first_new_option;
+ Print(L"LoadImage failed: %d\nDevice path: \"%s\"\n", rc, dps);
+ for (i = 0; i < s; i++) {
+ if (i > 0 && i % 16 == 0)
+ Print(L"\n");
+ Print(L"%02x ", dpv[i]);
+ }
+ Print(L"\n");
+
+ uefi_call_wrapper(BS->Stall, 1, 500000000);
return rc;
}
@@ -637,7 +690,7 @@ try_start_first_option(EFI_HANDLE parent_image_handle)
rc = uefi_call_wrapper(BS->StartImage, 3, image_handle, NULL, NULL);
if (EFI_ERROR(rc)) {
Print(L"StartImage failed: %d\n", rc);
- uefi_call_wrapper(BS->Stall, 1, 2000000);
+ uefi_call_wrapper(BS->Stall, 1, 500000000);
}
return rc;
}
--
1.8.4.5
>From 23ed6291df5dd34789829607a97b3605b739a629 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones(a)redhat.com>
Date: Fri, 31 Jan 2014 10:31:10 -0500
Subject: [PATCH 2/2] Attempt to re-use existing entries when possible.
Some firmwares seem to ignore our boot entries and put their fallback
entries back on top. Right now that results in a lot of boot entries
for our stuff, a la https://bugzilla.redhat.com/show_bug.cgi?id=995834 .
Instead of that happening, if we simply find existing entries that match
the entry we would create and move them to the top of the boot order,
the machine will continue to operate in failure mode (which we can't
avoid), but at least we won't create thousands of extra entries.
Signed-off-by: Peter Jones <pjones(a)redhat.com>
---
fallback.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 98 insertions(+), 1 deletion(-)
diff --git a/fallback.c b/fallback.c
index 7f4201e..044e4ba 100644
--- a/fallback.c
+++ b/fallback.c
@@ -226,6 +226,85 @@ add_boot_option(EFI_DEVICE_PATH *hddp, EFI_DEVICE_PATH *fulldp,
}
EFI_STATUS
+find_boot_option(EFI_DEVICE_PATH *dp, CHAR16 *filename, CHAR16 *label,
+ CHAR16 *arguments, UINT16 *optnum)
+{
+ int size = sizeof(UINT32) + sizeof (UINT16) +
+ StrLen(label)*2 + 2 + DevicePathSize(dp) +
+ StrLen(arguments) * 2 + 2;
+
+ CHAR8 *data = AllocateZeroPool(size);
+ if (!data)
+ return EFI_OUT_OF_RESOURCES;
+ CHAR8 *cursor = data;
+ *(UINT32 *)cursor = LOAD_OPTION_ACTIVE;
+ cursor += sizeof (UINT32);
+ *(UINT16 *)cursor = DevicePathSize(dp);
+ cursor += sizeof (UINT16);
+ StrCpy((CHAR16 *)cursor, label);
+ cursor += StrLen(label)*2 + 2;
+ CopyMem(cursor, dp, DevicePathSize(dp));
+ cursor += DevicePathSize(dp);
+ StrCpy((CHAR16 *)cursor, arguments);
+
+ int i = 0;
+ CHAR16 varname[] = L"Boot0000";
+ CHAR16 hexmap[] = L"0123456789ABCDEF";
+ EFI_GUID global = EFI_GLOBAL_VARIABLE;
+ EFI_STATUS rc;
+
+ CHAR8 *candidate = AllocateZeroPool(size);
+ if (!candidate) {
+ FreePool(data);
+ return EFI_OUT_OF_RESOURCES;
+ }
+
+ for(i = 0; i < nbootorder && i < 0x10000; i++) {
+ varname[4] = hexmap[(bootorder[i] & 0xf000) >> 12];
+ varname[5] = hexmap[(bootorder[i] & 0x0f00) >> 8];
+ varname[6] = hexmap[(bootorder[i] & 0x00f0) >> 4];
+ varname[7] = hexmap[(bootorder[i] & 0x000f) >> 0];
+
+ UINTN candidate_size = size;
+ rc = uefi_call_wrapper(RT->GetVariable, 5, varname, &global,
+ NULL, &candidate_size, candidate);
+ if (EFI_ERROR(rc))
+ continue;
+
+ if (candidate_size != size)
+ continue;
+
+ if (CompareMem(candidate, data, size))
+ continue;
+
+ /* at this point, we have duplicate data. */
+ *optnum = i;
+ FreePool(candidate);
+ FreePool(data);
+ return EFI_SUCCESS;
+ }
+ FreePool(candidate);
+ FreePool(data);
+ return EFI_NOT_FOUND;
+}
+
+EFI_STATUS
+set_boot_order(void)
+{
+ CHAR16 *oldbootorder;
+ UINTN size;
+ EFI_GUID global = EFI_GLOBAL_VARIABLE;
+
+ oldbootorder = LibGetVariableAndSize(L"BootOrder", &global, &size);
+ if (oldbootorder) {
+ nbootorder = size / sizeof (CHAR16);
+ bootorder = oldbootorder;
+ }
+ return EFI_SUCCESS;
+
+}
+
+EFI_STATUS
update_boot_order(void)
{
CHAR16 *oldbootorder;
@@ -336,7 +415,23 @@ add_to_boot_list(EFI_FILE_HANDLE fh, CHAR16 *dirname, CHAR16 *filename, CHAR16 *
}
#endif
- add_boot_option(dp, full_device_path, fullpath, label, arguments);
+ UINT16 option;
+ rc = find_boot_option(dp, fullpath, label, arguments, &option);
+ if (EFI_ERROR(rc)) {
+ add_boot_option(dp, full_device_path, fullpath, label, arguments);
+ } else if (option != 0) {
+ CHAR16 *newbootorder;
+ newbootorder = AllocateZeroPool(sizeof (CHAR16) * nbootorder);
+ if (!newbootorder)
+ return EFI_OUT_OF_RESOURCES;
+
+ newbootorder[0] = bootorder[option];
+ CopyMem(newbootorder + 1, bootorder, sizeof (CHAR16) * option);
+ CopyMem(newbootorder + option + 1, bootorder + option + 1,
+ sizeof (CHAR16) * (nbootorder - option - 1));
+ FreePool(bootorder);
+ bootorder = newbootorder;
+ }
err:
if (file)
@@ -710,6 +805,8 @@ efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
Print(L"System BootOrder not found. Initializing defaults.\n");
+ set_boot_order();
+
rc = find_boot_options(this_image->DeviceHandle);
if (EFI_ERROR(rc)) {
Print(L"Error: could not find boot options: %d\n", rc);
--
1.8.4.5
++++++ shim-fix-uninitialized-variable.patch ++++++
>From ccf21ef9a8868aacf9084400a15d73fcc24a6d39 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones(a)redhat.com>
Date: Fri, 15 Nov 2013 09:21:53 -0500
Subject: [PATCH 1/2] Fix wrong sizeof().
CHAR16* vs CHAR16**, so the result is the same on all platforms.
Detected by coverity.
Signed-off-by: Peter Jones <pjones(a)redhat.com>
---
lib/shell.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/shell.c b/lib/shell.c
index 51de4e0..7337834 100644
--- a/lib/shell.c
+++ b/lib/shell.c
@@ -35,7 +35,7 @@ argsplit(EFI_HANDLE image, int *argc, CHAR16*** ARGV)
(*argc)++; /* we counted spaces, so add one for initial */
- *ARGV = AllocatePool(*argc * sizeof(*ARGV));
+ *ARGV = AllocatePool(*argc * sizeof(**ARGV));
if (!*ARGV) {
return EFI_OUT_OF_RESOURCES;
}
--
1.8.4.5
>From c4277cf343555646dbf0c17679108983af1e8887 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones(a)redhat.com>
Date: Fri, 15 Nov 2013 09:24:01 -0500
Subject: [PATCH 2/2] Initialize entries before we pass it to another function.
Coverity scan noticed that entries is uninitialized when we pass its
location to another function.
Signed-off-by: Peter Jones <pjones(a)redhat.com>
---
lib/simple_file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/simple_file.c b/lib/simple_file.c
index 3af0ec8..d345d87 100644
--- a/lib/simple_file.c
+++ b/lib/simple_file.c
@@ -415,7 +415,7 @@ simple_file_selector(EFI_HANDLE *im, CHAR16 **title, CHAR16 *name,
CHAR16 *filter, CHAR16 **result)
{
EFI_STATUS status;
- CHAR16 **entries;
+ CHAR16 **entries = NULL;
EFI_FILE_INFO *dmp;
int count, select, len;
CHAR16 *newname, *selected;
--
1.8.4.5
++++++ shim-get-variable-check.patch ++++++
>From 293f28d1fe3921c5348c60948b4dedcef5042d5b Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones(a)redhat.com>
Date: Fri, 15 Nov 2013 10:55:37 -0500
Subject: [PATCH] Error check the right thing in get_variable_attr() when
allocating.
Signed-off-by: Peter Jones <pjones(a)redhat.com>
---
lib/variables.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/variables.c b/lib/variables.c
index 81bd34d..3a9735e 100644
--- a/lib/variables.c
+++ b/lib/variables.c
@@ -224,7 +224,7 @@ get_variable_attr(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner,
return efi_status;
*data = AllocateZeroPool(*len);
- if (!data)
+ if (!*data)
return EFI_OUT_OF_RESOURCES;
efi_status = uefi_call_wrapper(RT->GetVariable, 5, var, &owner,
--
1.8.4.5
++++++ shim-install ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -4,14 +4,18 @@
bootdir=
efidir=
install_device=
+efibootdir=
+ca_string=
removable=no
clean=no
sysconfdir="/etc"
libdir="/usr/lib64"
source_dir="$libdir/efi"
grub_probe="`which grub2-probe`"
+grub_mkrelpath="`which grub2-mkrelpath`"
self="`basename $0`"
grub_cfg="/boot/grub2/grub.cfg"
+update_boot=no
# Get GRUB_DISTRIBUTOR.
if test -f "${sysconfdir}/default/grub" ; then
@@ -26,6 +30,14 @@
efi_distributor="$bootloader_id"
bootloader_id="${bootloader_id}-secureboot"
+case "$bootloader_id" in
+ "sle"*)
+ ca_string='SUSE Linux Enterprise Secure Boot CA1';;
+ "opensuse"*)
+ ca_string='openSUSE Secure Boot CA1';;
+ *) ca_string="";;
+esac
+
usage () {
echo "Usage: $self [OPTION] [INSTALL_DEVICE]"
echo
@@ -169,18 +181,32 @@
if test -n "$efidir"; then
efi_file=shim.efi
+ efibootdir="$efidir/EFI/boot"
+ mkdir -p "$efibootdir" || exit 1
efidir="$efidir/EFI/$efi_distributor"
mkdir -p "$efidir" || exit 1
else
exit 1;
fi
+if test -f "$efibootdir/bootx64.efi"; then
+ if test -n "$ca_string" && (grep -q "$ca_string" "$efibootdir/bootx64.efi"); then
+ update_boot=yes
+ fi
+else
+ update_boot=yes
+fi
+
if test "$clean" = "yes"; then
rm -f "${efidir}/shim.efi"
rm -f "${efidir}/MokManager.efi"
rm -f "${efidir}/grub.efi"
rm -f "${efidir}/grub.cfg"
rm -f "${efidir}/boot.csv"
+ if test "$update_boot" = "yes"; then
+ rm -f "${efibootdir}/bootx64.efi"
+ rm -f "${efibootdir}/fallback.efi"
+ fi
efibootmgr="`which efibootmgr`"
if test "$removable" = no && test -n "$bootloader_id" && test -n "$efibootmgr"; then
# Delete old entries from the same distributor.
@@ -196,17 +222,70 @@
cp "${source_dir}/MokManager.efi" "${efidir}"
cp "${source_dir}/grub.efi" "${efidir}"
echo "shim.efi,${bootloader_id}" | iconv -f ascii -t ucs2 > "${efidir}/boot.csv"
+if test "$update_boot" = "yes"; then
+ cp "${source_dir}/shim.efi" "${efibootdir}/bootx64.efi"
+ cp "${source_dir}/fallback.efi" "${efibootdir}"
+fi
+
+
+make_grubcfg () {
grub_cfg_dirname=`dirname $grub_cfg`
grub_cfg_basename=`basename $grub_cfg`
cfg_fs_uuid=`"$grub_probe" --target=fs_uuid "$grub_cfg_dirname"`
+descriptive_config="snapshot_submenu.cfg"
+root_fstype=`$grub_probe -t fs /`
+boot_fstype=`$grub_probe -t fs /boot`
+if [ "x${root_fstype}" != "xbtrfs" ] ||
+ [ "x${boot_fstype}" != "xbtrfs" ]; then
+ echo "/ is not on btrfs" >&2
+ exit 1;
+fi
+
+if test "x$SUSE_BTRFS_SNAPSHOT_BOOTING" = "xtrue" &&
+ test "x$root_fstype" = "xbtrfs" &&
+ test "x$boot_fstype" = "xbtrfs"; then
+
+cat <<EOF
+set btrfs_relative_path="yes"
+set extra_cmdline=""
+btrfs_subvolid=""
+btrfs_subvol="/"
+
+export btrfs_relative_path
+export extra_cmdline
-(cat << EOF
search --fs-uuid --set=root ${cfg_fs_uuid}
-set prefix=(\${root})${grub_cfg_dirname}
+
+set timeout=0
+
+terminal_input console
+terminal_output console
+
+menuentry 'default' {
+ btrfs_subvol=""
+ configfile /boot/grub2/grub.cfg
+ btrfs_subvol="/"
+}
+
+if [ -f "/.snapshots/${descriptive_config}" ]; then
+ source "/.snapshots/${descriptive_config}"
+fi
+
+EOF
+
+else
+
+cat <<EOF
+search --fs-uuid --set=root ${cfg_fs_uuid}
+set prefix=(\${root})`${grub_mkrelpath} ${grub_cfg_dirname}`
+configfile \$prefix/${grub_cfg_basename}
EOF
-echo "configfile \$prefix/${grub_cfg_basename}") \
-> "${efidir}/grub.cfg"
+fi
+
+}
+
+make_grubcfg > "${efidir}/grub.cfg"
efibootmgr="`which efibootmgr`"
if test "$removable" = no && test -n "$bootloader_id" && test -n "$efibootmgr"; then
++++++ shim-mokmanager-delete-bs-var-right.patch ++++++
>From 3c545d630917d76d91a8491f8759927f512e56f2 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 7 Mar 2014 16:56:14 +0800
Subject: [PATCH] MokManager: delete the BS+NV variables the right way
LibDeleteVariable assumes that the variable is RT+NV and it
won't work on a BS+NV variable.
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/MokManager.c b/MokManager.c
index f5ed379..4ea28ef 100644
--- a/MokManager.c
+++ b/MokManager.c
@@ -1112,7 +1112,16 @@ static INTN mok_sb_prompt (void *MokSB, UINTN MokSBSize) {
return -1;
}
} else {
- LibDeleteVariable(L"MokSBState", &shim_lock_guid);
+ efi_status = uefi_call_wrapper(RT->SetVariable,
+ 5, L"MokSBState",
+ &shim_lock_guid,
+ EFI_VARIABLE_NON_VOLATILE |
+ EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ 0, NULL);
+ if (efi_status != EFI_SUCCESS) {
+ console_notify(L"Failed to delete Secure Boot state");
+ return -1;
+ }
}
console_notify(L"The system must now be rebooted");
@@ -1224,7 +1233,16 @@ static INTN mok_db_prompt (void *MokDB, UINTN MokDBSize) {
return -1;
}
} else {
- LibDeleteVariable(L"MokDBState", &shim_lock_guid);
+ efi_status = uefi_call_wrapper(RT->SetVariable, 5,
+ L"MokDBState",
+ &shim_lock_guid,
+ EFI_VARIABLE_NON_VOLATILE |
+ EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ 0, NULL);
+ if (efi_status != EFI_SUCCESS) {
+ console_notify(L"Failed to delete DB state");
+ return -1;
+ }
}
console_notify(L"The system must now be rebooted");
@@ -1261,7 +1279,11 @@ static INTN mok_pw_prompt (void *MokPW, UINTN MokPWSize) {
if (console_yes_no((CHAR16 *[]){L"Clear MOK password?", NULL}) == 0)
return 0;
- LibDeleteVariable(L"MokPWStore", &shim_lock_guid);
+ uefi_call_wrapper(RT->SetVariable, 5, L"MokPWStore",
+ &shim_lock_guid,
+ EFI_VARIABLE_NON_VOLATILE
+ | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ 0, NULL);
LibDeleteVariable(L"MokPW", &shim_lock_guid);
console_notify(L"The system must now be rebooted");
uefi_call_wrapper(RT->ResetSystem, 4, EfiResetWarm, EFI_SUCCESS, 0,
--
1.8.4.5
++++++ shim-mokmanager-support-sha-family.patch ++++++
++++ 627 lines (skipped)
++++++ shim-mokx-support.patch ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -1,10 +1,12 @@
-From 8614cf8c164049e77d702eb234d608d5342e975b Mon Sep 17 00:00:00 2001
+From 58b8e54ef60d488886a9f0d0877b7187eb200d07 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 24 Oct 2013 17:02:08 +0800
-Subject: [PATCH 1/9] Support MOK blacklist
+Subject: [PATCH 01/10] Support MOK blacklist
The new blacklist, MokListX, stores the keys and hashes that are
banned.
+
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 241 +++++++++++++++++++++++++++++++++++++++++++++++++----------
shim.c | 3 +-
@@ -510,7 +512,7 @@
return EFI_SUCCESS;
}
diff --git a/shim.c b/shim.c
-index 9ae1936..c133bb2 100644
+index cf93d65..2c23a2f 100644
--- a/shim.c
+++ b/shim.c
@@ -1510,7 +1510,8 @@ EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
@@ -524,14 +526,15 @@
if (efi_status != EFI_SUCCESS) {
--
-1.8.1.4
+1.8.4.5
-From f36f4093bb72344242949b16b83905cefb93d3cd Mon Sep 17 00:00:00 2001
+From d2980a5cbee887223405a24be44ffd5bb439e3f1 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 24 Oct 2013 17:32:31 +0800
-Subject: [PATCH 2/9] MokManager: show the hash list properly
+Subject: [PATCH 02/10] MokManager: show the hash list properly
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 71 insertions(+), 11 deletions(-)
@@ -675,14 +678,15 @@
for (i=0; menu_strings[i] != NULL; i++)
--
-1.8.1.4
+1.8.4.5
-From f1073a9bc757008d44b5b86cb5002a3654faf2d2 Mon Sep 17 00:00:00 2001
+From 9c4b5d58385c64056adb5386c097219665f2f50d Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 25 Oct 2013 16:54:25 +0800
-Subject: [PATCH 3/9] MokManager: delete the hash properly
+Subject: [PATCH 03/10] MokManager: delete the hash properly
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 114 insertions(+), 10 deletions(-)
@@ -840,14 +844,15 @@
}
--
-1.8.1.4
+1.8.4.5
-From b5cb83a92620b0b41857f3e3a292d1577eb3a3a5 Mon Sep 17 00:00:00 2001
+From 54ce2f9605990c00f9cafae7cab22a1c885828c1 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 25 Oct 2013 17:05:10 +0800
-Subject: [PATCH 4/9] MokManager: Match all hashes in the list
+Subject: [PATCH 04/10] MokManager: Match all hashes in the list
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
@@ -908,15 +913,17 @@
}
}
--
-1.8.1.4
+1.8.4.5
-From 70a4e12d2e6ba37541d0b78ec3c8ed5e8da9a941 Mon Sep 17 00:00:00 2001
+From 4c1912c8521cca4d320a1417abff6f7954809a20 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 25 Oct 2013 18:30:48 +0800
-Subject: [PATCH 5/9] MokManager: Write the hash list properly
+Subject: [PATCH 05/10] MokManager: Write the hash list properly
also return to the previous entry in the list
+
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
MokManager.c | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
@@ -991,20 +998,21 @@
efi_status = uefi_call_wrapper(RT->SetVariable, 5, db_name,
--
-1.8.1.4
+1.8.4.5
-From 225e5fca2f7cf63e365b77243d6e43b1eb9860c8 Mon Sep 17 00:00:00 2001
+From 8b96a93bda39617efbe51f24d1dc606ad8835d26 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 28 Oct 2013 15:08:40 +0800
-Subject: [PATCH 6/9] Copy the MOK blacklist to a RT variable
+Subject: [PATCH 06/10] Copy the MOK blacklist to a RT variable
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
shim.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/shim.c b/shim.c
-index c133bb2..a0383a8 100644
+index 2c23a2f..ccb3071 100644
--- a/shim.c
+++ b/shim.c
@@ -1480,6 +1480,33 @@ EFI_STATUS mirror_mok_list()
@@ -1041,7 +1049,7 @@
* Check if a variable exists
*/
static BOOLEAN check_var(CHAR16 *varname)
-@@ -1795,6 +1822,8 @@ EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
+@@ -1799,6 +1826,8 @@ EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
*/
efi_status = mirror_mok_list();
@@ -1051,20 +1059,21 @@
* Create the runtime MokIgnoreDB variable so the kernel can make
* use of it
--
-1.8.1.4
+1.8.4.5
-From f9db55b719281ce491780ecd4ec269c5286a7251 Mon Sep 17 00:00:00 2001
+From 044d04dbed3ef3f2f3004a770e3751eabc052c2c Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 28 Oct 2013 16:36:34 +0800
-Subject: [PATCH 7/9] No newline for console_notify
+Subject: [PATCH 07/10] No newline for console_notify
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
shim.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/shim.c b/shim.c
-index a0383a8..a2e0862 100644
+index ccb3071..e30a464 100644
--- a/shim.c
+++ b/shim.c
@@ -470,7 +470,7 @@ static BOOLEAN secure_mode (void)
@@ -1086,13 +1095,13 @@
}
--
-1.8.1.4
+1.8.4.5
-From 0bf2da5c7d9442f3249fc977b3fbffab924a374c Mon Sep 17 00:00:00 2001
+From 0e97d1576fcc1924f0f17b7f31baf1dd74a7f83e Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 4 Nov 2013 14:45:33 +0800
-Subject: [PATCH 8/9] Verify the EFI images with MOK blacklist
+Subject: [PATCH 08/10] Verify the EFI images with MOK blacklist
Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
---
@@ -1100,7 +1109,7 @@
1 file changed, 9 insertions(+)
diff --git a/shim.c b/shim.c
-index a2e0862..5f5e9a6 100644
+index e30a464..efd3d85 100644
--- a/shim.c
+++ b/shim.c
@@ -365,6 +365,7 @@ static EFI_STATUS check_blacklist (WIN_CERTIFICATE_EFI_PKCS *cert,
@@ -1127,13 +1136,13 @@
return EFI_SUCCESS;
}
--
-1.8.1.4
+1.8.4.5
-From 20ced27d1785bceaf814c07ca0d5686506a119ad Mon Sep 17 00:00:00 2001
+From a166edaa42ef96eaf5b000d0e4ad71779b745d68 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Mon, 4 Nov 2013 17:51:55 +0800
-Subject: [PATCH 9/9] Exclude ca.crt while signing EFI images
+Subject: [PATCH 09/10] Exclude ca.crt while signing EFI images
If ca.crt was added into the certificate database, ca.crt would be the first
certificate in the signature. Because shim couldn't verify ca.crt with the
@@ -1158,5 +1167,33 @@
certutil -d certdb/ -A -i shim.crt -n shim -t u
--
-1.8.1.4
+1.8.4.5
+
+
+From cce37bfa5298e8e9c12d3509c78592f711699c4f Mon Sep 17 00:00:00 2001
+From: Gary Ching-Pang Lin <glin(a)suse.com>
+Date: Tue, 11 Feb 2014 14:11:15 +0800
+Subject: [PATCH 10/10] Make shim to check MokXAuth for MOKX reset
+
+Signed-off-by: Gary Ching-Pang Lin <glin(a)suse.com>
+---
+ shim.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/shim.c b/shim.c
+index efd3d85..7093c45 100644
+--- a/shim.c
++++ b/shim.c
+@@ -1547,7 +1547,8 @@ EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
+ if (check_var(L"MokNew") || check_var(L"MokSB") ||
+ check_var(L"MokPW") || check_var(L"MokAuth") ||
+ check_var(L"MokDel") || check_var(L"MokDB") ||
+- check_var(L"MokXNew") || check_var(L"MokXDel")) {
++ check_var(L"MokXNew") || check_var(L"MokXDel") ||
++ check_var(L"MokXAuth")) {
+ efi_status = start_image(image_handle, MOK_MANAGER);
+
+ if (efi_status != EFI_SUCCESS) {
+--
+1.8.4.5
++++++ shim-only-os-name.patch ++++++
diff --git a/Makefile b/Makefile
index 91e6bcd..6ed5ba7 100644
--- a/Makefile
+++ b/Makefile
@@ -63,7 +63,7 @@ shim_cert.h: shim.cer
version.c : version.c.in
sed -e "s,@@VERSION@@,$(VERSION)," \
- -e "s,@@UNAME@@,$(shell uname -a)," \
+ -e "s,@@UNAME@@,$(shell uname -o)," \
-e "s,@@COMMIT@@,$(shell if [ -d .git ] ; then git log -1 --pretty=format:%H ; elif [ -f commit ]; then cat commit ; else echo commit id not available; fi)," \
< version.c.in > version.c
++++++ shim-opensuse-cert-prompt.patch ++++++
>From 2082ad15e0b3413845a1ddc10c2953dcd95beb83 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Tue, 18 Feb 2014 17:29:19 +0800
Subject: [PATCH 1/3] Show the build-in certificate prompt
This is an openSUSE-only patch.
Pop up a window to ask if the user is willing to trust the built-in
openSUSE certificate.
If yes, set openSUSE_Verify, a BootService variable, to 1, and shim
won't bother the user afterward.
If no, continue the booting process without using the built-in
certificate to verify the EFI images, and the window will show up
again after reboot.
The state will store in use_openSUSE_cert, a volatile RT variable.
---
shim.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 97 insertions(+), 19 deletions(-)
diff --git a/shim.c b/shim.c
index 0b20191..a483ce3 100644
--- a/shim.c
+++ b/shim.c
@@ -82,6 +82,7 @@ UINT8 *vendor_dbx;
*/
verification_method_t verification_method;
int loader_is_participating;
+BOOLEAN use_builtin_cert;
#define EFI_IMAGE_SECURITY_DATABASE_GUID { 0xd719b2cb, 0x3d3a, 0x4596, { 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f }}
@@ -752,7 +753,7 @@ static EFI_STATUS verify_buffer (char *data, int datasize,
if (status == EFI_SUCCESS)
return status;
- if (cert) {
+ if (cert && use_builtin_cert) {
/*
* Check against the shim build key
*/
@@ -1418,11 +1419,14 @@ EFI_STATUS mirror_mok_list()
if (efi_status != EFI_SUCCESS)
DataSize = 0;
- FullDataSize = DataSize
- + sizeof (*CertList)
- + sizeof (EFI_GUID)
- + vendor_cert_size
- ;
+ FullDataSize = DataSize;
+ if (use_builtin_cert) {
+ FullDataSize += sizeof (*CertList) +
+ sizeof (EFI_GUID) +
+ vendor_cert_size;
+ } else if (DataSize == 0) {
+ return EFI_SUCCESS;
+ }
FullData = AllocatePool(FullDataSize);
if (!FullData) {
Print(L"Failed to allocate space for MokListRT\n");
@@ -1434,21 +1438,24 @@ EFI_STATUS mirror_mok_list()
CopyMem(p, Data, DataSize);
p += DataSize;
}
- CertList = (EFI_SIGNATURE_LIST *)p;
- p += sizeof (*CertList);
- CertData = (EFI_SIGNATURE_DATA *)p;
- p += sizeof (EFI_GUID);
- CertList->SignatureType = EFI_CERT_X509_GUID;
- CertList->SignatureListSize = vendor_cert_size
- + sizeof (*CertList)
- + sizeof (*CertData)
- -1;
- CertList->SignatureHeaderSize = 0;
- CertList->SignatureSize = vendor_cert_size + sizeof (EFI_GUID);
+ if (use_builtin_cert) {
+ CertList = (EFI_SIGNATURE_LIST *)p;
+ p += sizeof (*CertList);
+ CertData = (EFI_SIGNATURE_DATA *)p;
+ p += sizeof (EFI_GUID);
- CertData->SignatureOwner = SHIM_LOCK_GUID;
- CopyMem(p, vendor_cert, vendor_cert_size);
+ CertList->SignatureType = EFI_CERT_X509_GUID;
+ CertList->SignatureListSize = vendor_cert_size
+ + sizeof (*CertList)
+ + sizeof (*CertData)
+ -1;
+ CertList->SignatureHeaderSize = 0;
+ CertList->SignatureSize = vendor_cert_size + sizeof (EFI_GUID);
+
+ CertData->SignatureOwner = SHIM_LOCK_GUID;
+ CopyMem(p, vendor_cert, vendor_cert_size);
+ }
efi_status = uefi_call_wrapper(RT->SetVariable, 5, L"MokListRT",
&shim_lock_guid,
@@ -1767,6 +1774,75 @@ uninstall_shim_protocols(void)
&shim_lock_guid, &shim_lock_interface);
}
+#define VENDOR_VERIFY L"openSUSE_Verify"
+
+/* Show the built-in certificate prompt if necessary */
+static int builtin_cert_prompt(void)
+{
+ EFI_GUID shim_lock_guid = SHIM_LOCK_GUID;
+ EFI_STATUS status;
+ UINT32 attributes;
+ UINTN len = sizeof(UINT8);
+ UINT8 data;
+
+ use_builtin_cert = FALSE;
+
+ if (vendor_cert_size == 0)
+ return 0;
+
+ status = uefi_call_wrapper(RT->GetVariable, 5, VENDOR_VERIFY,
+ &shim_lock_guid, &attributes,
+ &len, &data);
+ if (status != EFI_SUCCESS ||
+ (attributes & EFI_VARIABLE_RUNTIME_ACCESS)) {
+ int choice;
+
+ if (status != EFI_NOT_FOUND)
+ LibDeleteVariable(VENDOR_VERIFY, &shim_lock_guid);
+
+ CHAR16 *str[] = {L"Trust openSUSE Certificate",
+ L"",
+ L"Do you agree to use the built-in openSUSE certificate",
+ L"to verify boot loaders and kernels?",
+ NULL};
+ choice = console_yes_no(str);
+ if (choice != 1) {
+ data = 0;
+ goto done;
+ }
+
+ data = 1;
+ status = uefi_call_wrapper(RT->SetVariable, 5,
+ VENDOR_VERIFY,
+ &shim_lock_guid,
+ EFI_VARIABLE_NON_VOLATILE |
+ EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ sizeof(UINT8), &data);
+ if (status != EFI_SUCCESS) {
+ console_error(L"Failed to set openSUSE_Verify", status);
+ return -1;
+ }
+ }
+
+ use_builtin_cert = TRUE;
+ data = 1;
+
+done:
+ /* Setup a runtime variable to show the current state */
+ status = uefi_call_wrapper(RT->SetVariable, 5,
+ L"use_openSUSE_cert",
+ &shim_lock_guid,
+ EFI_VARIABLE_BOOTSERVICE_ACCESS |
+ EFI_VARIABLE_RUNTIME_ACCESS,
+ sizeof(UINT8), &data);
+ if (status != EFI_SUCCESS) {
+ console_error(L"Failed to set use_openSUSE_cert", status);
+ return -1;
+ }
+
+ return 0;
+}
+
EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
{
EFI_STATUS efi_status;
@@ -1819,6 +1895,8 @@ EFI_STATUS efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *passed_systab)
*/
hook_system_services(systab);
loader_is_participating = 0;
+ if (builtin_cert_prompt() != 0)
+ return EFI_ABORTED;
}
efi_status = install_shim_protocols();
--
1.8.4.5
>From 57b6062bc614d5638e66f8c5ac62106b812c6d1a Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Thu, 20 Feb 2014 16:57:08 +0800
Subject: [PATCH 2/3] Support revoking the openSUSE cert
This is an openSUSE-only patch.
To revoke the openSUSE cert, create ClearVerify, a NV RT variable,
and store the password hash in the variable, and then MokManager
will show up with an additional option to clear openSUSE_Verify
---
MokManager.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
shim.c | 2 +-
2 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/MokManager.c b/MokManager.c
index 71a3137..a03eea4 100644
--- a/MokManager.c
+++ b/MokManager.c
@@ -1570,6 +1570,33 @@ static INTN mok_pw_prompt (void *MokPW, UINTN MokPWSize) {
return -1;
}
+static INTN mok_clear_verify_prompt(void *ClearVerify, UINTN ClearVerifySize) {
+ EFI_GUID shim_lock_guid = SHIM_LOCK_GUID;
+ EFI_STATUS status;
+
+ if (console_yes_no((CHAR16 *[]){L"Do you want to revoke openSUSE certificate?", NULL}) != 1)
+ return 0;
+
+ if (ClearVerifySize == PASSWORD_CRYPT_SIZE) {
+ status = match_password((PASSWORD_CRYPT *)ClearVerify, NULL, 0,
+ NULL, NULL);
+ }
+ if (status != EFI_SUCCESS)
+ return -1;
+
+ status = LibDeleteVariable(L"openSUSE_Verify", &shim_lock_guid);
+ if (status != EFI_SUCCESS) {
+ console_error(L"Failed to delete openSUSE_Verify", status);
+ return -1;
+ }
+
+ console_notify(L"The system must now be rebooted");
+ uefi_call_wrapper(RT->ResetSystem, 4, EfiResetWarm,
+ EFI_SUCCESS, 0, NULL);
+ console_notify(L"Failed to reboot");
+ return -1;
+}
+
static BOOLEAN verify_certificate(void *cert, UINTN size)
{
X509 *X509Cert;
@@ -1903,6 +1930,7 @@ typedef enum {
MOK_CHANGE_SB,
MOK_SET_PW,
MOK_CHANGE_DB,
+ MOK_CLEAR_VERIFY,
MOK_KEY_ENROLL,
MOK_HASH_ENROLL
} mok_menu_item;
@@ -1914,7 +1942,8 @@ static EFI_STATUS enter_mok_menu(EFI_HANDLE image_handle,
void *MokPW, UINTN MokPWSize,
void *MokDB, UINTN MokDBSize,
void *MokXNew, UINTN MokXNewSize,
- void *MokXDel, UINTN MokXDelSize)
+ void *MokXDel, UINTN MokXDelSize,
+ void *ClearVerify, UINTN ClearVerifySize)
{
CHAR16 **menu_strings;
mok_menu_item *menu_item;
@@ -1988,6 +2017,9 @@ static EFI_STATUS enter_mok_menu(EFI_HANDLE image_handle,
if (MokDB)
menucount++;
+ if (ClearVerify)
+ menucount++;
+
menu_strings = AllocateZeroPool(sizeof(CHAR16 *) * (menucount + 1));
if (!menu_strings)
@@ -2057,6 +2089,12 @@ static EFI_STATUS enter_mok_menu(EFI_HANDLE image_handle,
i++;
}
+ if (ClearVerify) {
+ menu_strings[i] = L"Revoke openSUSE certificate";
+ menu_item[i] = MOK_CLEAR_VERIFY;
+ i++;
+ }
+
menu_strings[i] = L"Enroll key from disk";
menu_item[i] = MOK_KEY_ENROLL;
i++;
@@ -2107,6 +2145,9 @@ static EFI_STATUS enter_mok_menu(EFI_HANDLE image_handle,
case MOK_CHANGE_DB:
mok_db_prompt(MokDB, MokDBSize);
break;
+ case MOK_CLEAR_VERIFY:
+ mok_clear_verify_prompt(ClearVerify, ClearVerifySize);
+ break;
case MOK_KEY_ENROLL:
mok_key_enroll();
break;
@@ -2132,6 +2173,7 @@ static EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
EFI_GUID shim_lock_guid = SHIM_LOCK_GUID;
UINTN MokNewSize = 0, MokDelSize = 0, MokSBSize = 0, MokPWSize = 0;
UINTN MokDBSize = 0, MokXNewSize = 0, MokXDelSize = 0;
+ UINTN ClearVerifySize = 0;
void *MokNew = NULL;
void *MokDel = NULL;
void *MokSB = NULL;
@@ -2139,6 +2181,7 @@ static EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
void *MokDB = NULL;
void *MokXNew = NULL;
void *MokXDel = NULL;
+ void *ClearVerify = NULL;
EFI_STATUS status;
status = get_variable(L"MokNew", (UINT8 **)&MokNew, &MokNewSize,
@@ -2211,9 +2254,20 @@ static EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
console_error(L"Could not retrieve MokXDel", status);
}
+ status = get_variable(L"ClearVerify", (UINT8 **)&ClearVerify, &ClearVerifySize,
+ shim_lock_guid);
+ if (status == EFI_SUCCESS) {
+ if (LibDeleteVariable(L"ClearVerify", &shim_lock_guid) != EFI_SUCCESS) {
+ console_notify(L"Failed to delete ClearVerify");
+ }
+ } else if (EFI_ERROR(status) && status != EFI_NOT_FOUND) {
+ console_error(L"Could not retrieve ClearVerify", status);
+ }
+
enter_mok_menu(image_handle, MokNew, MokNewSize, MokDel, MokDelSize,
MokSB, MokSBSize, MokPW, MokPWSize, MokDB, MokDBSize,
- MokXNew, MokXNewSize, MokXDel, MokXDelSize);
+ MokXNew, MokXNewSize, MokXDel, MokXDelSize,
+ ClearVerify, ClearVerifySize);
if (MokNew)
FreePool (MokNew);
@@ -2236,6 +2290,9 @@ static EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
if (MokXDel)
FreePool (MokXDel);
+ if (ClearVerify)
+ FreePool (ClearVerify);
+
LibDeleteVariable(L"MokAuth", &shim_lock_guid);
LibDeleteVariable(L"MokDelAuth", &shim_lock_guid);
LibDeleteVariable(L"MokXAuth", &shim_lock_guid);
diff --git a/shim.c b/shim.c
index a483ce3..3b00e6c 100644
--- a/shim.c
+++ b/shim.c
@@ -1529,7 +1529,7 @@ EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
check_var(L"MokPW") || check_var(L"MokAuth") ||
check_var(L"MokDel") || check_var(L"MokDB") ||
check_var(L"MokXNew") || check_var(L"MokXDel") ||
- check_var(L"MokXAuth")) {
+ check_var(L"MokXAuth") || check_var(L"ClearVerify")) {
efi_status = start_image(image_handle, MOK_MANAGER);
if (efi_status != EFI_SUCCESS) {
--
1.8.4.5
>From 8d1fc876a8117bdfa2d1e8975725e03660eadc7c Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin(a)suse.com>
Date: Fri, 7 Mar 2014 16:17:20 +0800
Subject: [PATCH 3/3] Delete openSUSE_Verify the right way
This is an openSUSE-only patch.
LibDeleteVariable only works on the runtime variables.
---
MokManager.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/MokManager.c b/MokManager.c
index a03eea4..d4f107d 100644
--- a/MokManager.c
+++ b/MokManager.c
@@ -1584,7 +1584,10 @@ static INTN mok_clear_verify_prompt(void *ClearVerify, UINTN ClearVerifySize) {
if (status != EFI_SUCCESS)
return -1;
- status = LibDeleteVariable(L"openSUSE_Verify", &shim_lock_guid);
+ status = uefi_call_wrapper(RT->SetVariable, 5,
+ L"openSUSE_Verify", &shim_lock_guid,
+ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,
+ 0, NULL);
if (status != EFI_SUCCESS) {
console_error(L"Failed to delete openSUSE_Verify", status);
return -1;
--
1.8.4.5
++++++ show_hash.sh ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -9,13 +9,4 @@
exit 1
fi
-nssdir=`mktemp -d`
-cleanup()
-{
- rm -r "$nssdir"
-}
-trap cleanup EXIT
-echo > "$nssdir/pw"
-certutil -f "$nssdir/pw" -d "$nssdir" -N
-
-pesign -n "$nssdir" -h -P -i "$infile"
+pesign -h -P -i "$infile"
++++++ show_signatures.sh ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -9,13 +9,4 @@
exit 1
fi
-nssdir=`mktemp -d`
-cleanup()
-{
- rm -r "$nssdir"
-}
-trap cleanup EXIT
-echo > "$nssdir/pw"
-certutil -f "$nssdir/pw" -d "$nssdir" -N
-
-pesign -n "$nssdir" -S -i "$infile"
+pesign -S -i "$infile"
++++++ signature-opensuse.asc ++++++
hash: 97a8c5ba11d61fefbb5d6a05da4e15ba472dc4c6cd4972fc1a035de321342fe4
# 2013-10-01 08:29:53
timestamp: 524a8801
checksum: d364
-----BEGIN AUTHENTICODE SIGNATURE-----
MIIh8QYJKoZIhvcNAQcCoIIh4jCCId4CAQExDzANBglghkgBZQMEAgEFADBcBgor
BgEEAYI3AgEEoE4wTDAXBgorBgEEAYI3AgEPMAkDAQCgBKICgAAwMTANBglghkgB
ZQMEAgEFAAQgl6jFuhHWH++7XWoF2k4VukctxMbNSXL8GgNd4yE0L+Sgggs8MIIF
JDCCBAygAwIBAgITMwAAAApmQvP0n7c3lgABAAAACjANBgkqhkiG9w0BAQsFADCB
gTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMi
TWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTAeFw0xMzA5MjQxNzU0
MDNaFw0xNDEyMjQxNzU0MDNaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
cnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMTAwLgYDVQQDEydNaWNyb3NvZnQgV2lu
ZG93cyBVRUZJIERyaXZlciBQdWJsaXNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCc2PZRP3t6i2DCLSAuWrFHZKfyD98yckc9yxqqqJACgekdZi4s
ZEN1vYcVfiUhW4hFpdH3kcPah7wf+uqgyQa1hb/9AzDH63JYfaHLWA+Jx0leY0cG
CsIFviaUHrCEgxhkeXdrGfHroDcWArv2yBBvj+zvePVE9/VpDoBK+2nAFxz0oG23
BzE5duVpHIZn96fNyoDKYvCf649VqjM+O5/b5jlDylkMWAIVTvWqE0r/7YnC1Vcc
cgJDQk8IaIWSepRsjrvvf8C8uG3ZSxVjQeuPz7ETAryJIWvYdz240MzVAJD7SazH
SbVJm1LPHfS2FEpx3uUNOuo3IJrrxqeals8FAgMBAAGjggF9MIIBeTAfBgNVHSUE
GDAWBggrBgEFBQcDAwYKKwYBBAGCN1ACATAdBgNVHQ4EFgQU6t49RpSALGo0XSnP
ixuEhp5y0NEwUQYDVR0RBEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUT
KjMxNjE5KzAxMjU1ZjQ2LTc0ZjUtNGZjNC1iYzcxLWU0ZGE5NzM2YmVlZTAfBgNV
HSMEGDAWgBQTrb9DCb2CcJyM1U8xbtUimIob1DBTBgNVHR8ETDBKMEigRqBEhkJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb3JVRUZDQTIw
MTFfMjAxMS0wNi0yNy5jcmwwYAYIKwYBBQUHAQEEVDBSMFAGCCsGAQUFBzAChkRo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvclVFRkNB
MjAxMV8yMDExLTA2LTI3LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUA
A4IBAQAqJ9a9LzTGipmJ7IVkSf5JNK1cBhXsWBlmQ5kFNzeoa+RskUuUeM45NTS3
We7F628BW3BrhT8dK+Uf6YB7F46qng+VWNal2RPFjHSSy60QartzlUJoAaQvNjhC
5gv3LQRmaIZdtdjOLJAclnMETQWrt0wXGsGYwPk3a7kYXsdSO7U+bSwRRkL/v74g
78bCVxwgBhWctw/yxCjpl/bOg79XrZpHxH3szpgwz4YaFWRxxiYAoCYLROKeqObj
PEB8BG83vkpG3K84wBiyT5ab63FtjnbOvD0dGRNO1vIWzC41eEi0mYGW69cya8o+
Ot4bqI6YYSpWmkah9FhW9OLfoCpdMIIGEDCCA/igAwIBAgIKYQjTxAAAAAAABDAN
BgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
dGlvbjE7MDkGA1UEAxMyTWljcm9zb2Z0IENvcnBvcmF0aW9uIFRoaXJkIFBhcnR5
IE1hcmtldHBsYWNlIFJvb3QwHhcNMTEwNjI3MjEyMjQ1WhcNMjYwNjI3MjEzMjQ1
WjCBgTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UE
AxMiTWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKUIbEzHRQlqSwykwId/BnUMQwFUZOAWfwft
kn0LsnO/DArGSkVhoMUWLZbT9Sug+01Jm0GAkDy5VP3mvNGdxKQYin9BilxZg2gy
u4xHye5xvCFPmop8/0Q/jY8ysiZIrnW17slMHkoZfuSCmh14d00MsL32D9MW07z6
K6VROF31+7rbeALb/+wKG5bVg7gZE+m2wHtAe+EfKCfJ+u9WXhzmfpR+wPBEsnk5
5dqyYotNvzhw4mgkFMkzpAg31VhpXtN87cEEUwjnTrAqh2MIYW9jFVnqsit51wxh
Z4pb/V6th3+6hmdPcVgSIgQiIs6L71RxAM5QNVh2lQjuarGiAdUCAwEAAaOCAXYw
ggFyMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFPjBa7d/d1NK
8yU3HU6hJnsPIHCAMB0GA1UdDgQWBBQTrb9DCb2CcJyM1U8xbtUimIob1DAZBgkr
BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
AwEB/zAfBgNVHSMEGDAWgBRFZlJD4X5YEb/WTp4jVQg7OiJqqDBcBgNVHR8EVTBT
MFGgT6BNhktodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
cy9NaWNDb3JUaGlQYXJNYXJSb29fMjAxMC0xMC0wNS5jcmwwYAYIKwYBBQUHAQEE
VDBSMFAGCCsGAQUFBzAChkRodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
cnRzL01pY0NvclRoaVBhck1hclJvb18yMDEwLTEwLTA1LmNydDANBgkqhkiG9w0B
AQsFAAOCAgEANQhC/zDMzvd2DK0QaFg1KUYydid87xJBJ0IbSqptgThIWRNV8+lY
NKYWC4KqXa2C2oCDQQaPtB3yA7nzGl0b8VCQ+bNVhEIoHCC9sq5RFMXArJeVIRyQ
2w/8d56Vc5GIyr29UrkFUA3fV56gYe0N5W0l2UAPF0DIzqNKwk2vmhIdCFSPvce8
uSs9SSsfMvxqIWlPm8h+QjT8NgYXi48gQMCzmiV1J83JA6P2XdHnNlR6uVC10xLR
B7+7dN/cHo+A1e0Y9C8UFmsv3maMsCPlx4TY7erBM4KtVksYLfFolQfNz/By8K67
3YaFmCwhTDMr8A9K8GiHtZJVMnWhaoJqPKMlEaTtrdcErsvYQFmghNGVTGKRIhp0
HYw9Rw5EpuSwmzQ1sfq2U6gsgeykBXHInbi66BtEZuRHVA6OVn+znxaYsobQaD6Q
I7UvXo9QhY3GjYJfQaH0Lg3gmdJsdeS2abUhhvoH0fbiTdHarSx3Ux4lMjfHbFJy
lYaw8TVhahn1sjuBUFamMi3+oon5QoYnGFWhgspam/gwmFQUpkeWJS/IJuRBlBpc
Aj/lluOFWzw+P7tHFnJV4iUisdl75wMGKqP3HpBGwwAN1hmJ4w41J2IDcRWm79An
oKBZN2D4OJS44Hhw+LpMhoeU9uCuAkXuZcK2o35pFnUHkpv1prxZg1gxghYoMIIW
JAIBATCBmTCBgTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEr
MCkGA1UEAxMiTWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMQITMwAA
AApmQvP0n7c3lgABAAAACjANBglghkgBZQMEAgEFAKCCAREwGQYJKoZIhvcNAQkD
MQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJ
KoZIhvcNAQkEMSIEIOBR1lXJ0yMtGJm8ETD6MEFIJCyjBPLlLe2aF6PcGN1xMIGk
BgorBgEEAYI3AgEMMYGVMIGSoF6AXABoAHQAdABwADoALwAvAHcAdwB3AC4AbQBp
AGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAHcAaABkAGMALwBoAGMAbAAvAGQAZQBm
AGEAdQBsAHQALgBtAHMAcAB4oTCALmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93
aGRjL2hjbC9kZWZhdWx0Lm1zcHgwDQYJKoZIhvcNAQEBBQAEggEAVajbL42oQSy1
NUS6HAoCq0L01hhN9fHn8acFrSpXK+GjijNspEcxVWSmJCWUWj4oVgBU7hgB2cFr
YBm7M6VLl0h45tCI0jyHURNs4bYeKhBlywIAKQ1B3sxBi84vrNmVv7tZqtV8eAte
tmX/8X6mOObVtD1YfYRVc2/EAEqv/Dee3BKb2/3MJ8TlUDuPZ1yAjAq4MViGs0J3
m4T63cugiWPuoaZEGJ6eaPiVXPcEKiDDOboCMm6MY1CLADE0moMrQ86dtbmycXIu
N44ImKRkPSSCnRbmNDl/OkITHAicitORyvpet6uciDQtXQEq8xuRHJ7tOrwTmuLs
r+BEVn7BR6GCE0owghNGBgorBgEEAYI3AwMBMYITNjCCEzIGCSqGSIb3DQEHAqCC
EyMwghMfAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggE9BgsqhkiG9w0BCRABBKCCASwE
ggEoMIIBJAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCBfmL3wsdu9
3kovdSnRVAah9huZNZbgGFJ05HSVLqfy9gIGUmk4IyjpGBMyMDEzMTAzMDE5MTY0
My42ODZaMAcCAQGAAgH0oIG5pIG2MIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERT
RSBFU046QzBGNC0zMDg2LURFRjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
YW1wIFNlcnZpY2Wggg7NMIIGcTCCBFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG
9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy
MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
MTAwHhcNMTAwNzAxMjEzNjU1WhcNMjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJV
UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt
ZS1TdGFtcCBQQ0EgMjAxMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AKkdDbx3EYo6IOz8E5f1+n9plGt0VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vw
FVMnBDEfQRsalR3OCROOfGEwWbEwRA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNF
DdDq9UeBzb8kYDJYYEbyWEeGMoQedGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC7
32H8RsEnHSRnEnIaIYqvS2SJUGKxXf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOW
RH7v0Ev9buWayrGo8noqCjHw2k4GkbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJ
k3jN/LzAyURdXhacAQVPIk0CAwEAAaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEA
MB0GA1UdDgQWBBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4K
AFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
GDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRw
Oi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJB
dXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5o
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8y
MDEwLTA2LTIzLmNydDCBoAYDVR0gAQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEw
PQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9D
UFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABv
AGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQAD
ggIBAAfmiFEN4sbgmD+BcQM9naOhIW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/1
5/B4vceoniXj+bzta1RXCCtRgkQS+7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRW
S3TvQhDIr79/xn/yN31aPxzymXlKkVIArzgPF/UveYFl2am1a+THzvbKegBvSzBE
JCI8z+0DpZaPWSm8tv0E4XCfMkon/VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/
3cVKC5Em4jnsGUpxY517IW3DnKOiPPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9
nhquBEKDuLWAmyI4ILUl5WTs9/S/fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5H
moDF0M2n0O99g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv3
3nJ+YWtvd6mBy6cJrDm77MbL2IK0cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI
5pgt6o3gMy4SKfXAL1QnIffIrE7aKLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0
MkvfY3v1mYovG8chr1m1rtxEPJdQcdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0e
GTgvvM9YBS7vDaBQNdrvCScc1bN+NR4Iuto229Nfj950iEkSMIIE2jCCA8KgAwIB
AgITMwAAACiQZ7kEsDxuZgAAAAAAKDANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQG
EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
VGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0xMzAzMjcyMDEzMTNaFw0xNDA2MjcyMDEz
MTNaMIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYD
VQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046QzBGNC0zMDg2LURF
RjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdpUi/akidSiGckmve4C3c5GP4zLmJ
xMcbvee10/vtrs8x/vNmsEQD2plnCFq/dQYiEYnQZ1LM+s+SN0Xo+vG9M9PMc+O4
IaSgFX3LL8QDBdo/lnPTWeWYTQtWhi+dR9HWX52R6ceE2ZVrMky0awBS4EHTPGl0
qM7MfWidUlXmcH8UB6KeZ7CGRPMzP3Ndxij4F19SAS1EL9bteAi45TsvwLnDS8O3
Oy/TprWcsUhK3TIJVqEbS1rTqiYnDBJDYMVq19pADWCYiUG7k3Pdv/7EjFvO+lUn
yk1Nmm99EWyxRyOwTHxsfwahdIIfUngY6QYaFlCawzrdgYH3mydyIX91AgMBAAGj
ggEbMIIBFzAdBgNVHQ4EFgQU3JgInXnRBLKLR8Nx0Izns+awU50wHwYDVR0jBBgw
FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
BgkqhkiG9w0BAQsFAAOCAQEAgiLztz1kfhJL/Cb84OS30MQUTgn+q1aa0VqYpr6M
QR6UtDK+hLS3RXbj72AYJIeoz+m00VQpvMrkyxJ7wPHUDp8xMxsRP3o73d0CqhjK
yjz6luNsu6+7yYQ+x9gMhctyCwEbpPUxERAMRaVaSJl+2r5Fhte6TeSB/9NYCnZl
Blkv9sJCzwTJqxv6YZ3185hJcLFJ0GTEIejuYBdTfusC2miVi/UKPAHbo7WYFFF0
nlPp2nKYZqBfKc+Prx+CnNPr5vFMG1T46DLcwRXDrCpudAUWg+NEmJ/L7+gweX+v
UqU6H99lx43+J9hHGZIItIs0jmknNxoC9pGzlSL/CEgq/qGCA3YwggJeAgEBMIHj
oYG5pIG2MIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0w
CwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046QzBGNC0zMDg2
LURFRjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiJQoB
ATAJBgUrDgMCGgUAAxUA8120HsdfO2ZOZQ7emART9hWnH0SggcIwgb+kgbwwgbkx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1P
UFIxJzAlBgNVBAsTHm5DaXBoZXIgTlRTIEVTTjpCMDI3LUM2RjgtMUQ4ODErMCkG
A1UEAxMiTWljcm9zb2Z0IFRpbWUgU291cmNlIE1hc3RlciBDbG9jazANBgkqhkiG
9w0BAQUFAAIFANYbbXkwIhgPMjAxMzEwMzAxMTM1MjFaGA8yMDEzMTAzMTExMzUy
MVowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA1htteQIBADAHAgEAAgIQxzAHAgEA
AgIYcDAKAgUA1hy++QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMB
oAowCAIBAAIDFuNgoQowCAIBAAIDB6EgMA0GCSqGSIb3DQEBBQUAA4IBAQAxxOL5
p8WZx+WQXwsf9YpPA4dWCU2xk7l1MY2R653keklyM7ks9Md5/7JbBzMPQXMPJ0Ts
SllTUWF+wCUwW84ZAJCG4IUS5MrfbC5yXPkCjYEW6pll2A77OgwC+UG7X5VN67nm
XfRbw+3lyAAcCjpreeEOiMRTNP1UW3Th2x5Lmbgc4AW/6p+6VEj/7QJEuj7oMXVe
KQNp/I+lJn1rBGU42wqteobjNmUI55+i5PN+Wa5uGh7IhkqpDRPIkBM9wqVDQoHb
d727DRVQMwzTAGYdSaOPJjLYti078h71WDJYyM1waA435nrkukJ6ObWdMTNjJqsy
/Tz7rYZPgMPKLjtfMYIC9TCCAvECAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNV
BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
UENBIDIwMTACEzMAAAAokGe5BLA8bmYAAAAAACgwDQYJYIZIAWUDBAIBBQCgggEy
MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgqtHU
/PG7RLWN/Y5UsjD6+lFX/RpWbpbjNV/x7SF3lQwwgeIGCyqGSIb3DQEJEAIMMYHS
MIHPMIHMMIGxBBTzXbQex187Zk5lDt6YBFP2FacfRDCBmDCBgKR+MHwxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29m
dCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAAKJBnuQSwPG5mAAAAAAAoMBYEFLWf
+tQPMIlyzZih4uVtvwa31BWHMA0GCSqGSIb3DQEBCwUABIIBAEJSSeyhVFmVBArn
o02R+f9PxUVjdMsHRqTWdnfA6F4uFU2GGGB2NoGTPHVeHrTTejo2bzXf5Di0jO5r
nIM1KVSUIDmM6xgvcIgxMuo2oM8MxHnYSh9QdWTCnJsqcR+PzIhsdrxaQOLRXNiS
uEyj0MgaJuYATAmhM2oM4BFNmbFavr0Sar3fj54zoZ9/p7ZhROSVm40OKt8tzSDu
7KrU8rr6VikJV2svuvLsmBKP7H6A+ZBWgrSlraQhdOxgjdPci6rhoZ9GG3WzNIcg
c+4KZEXs0hxinuZA2+Z9QhyXcTeLXm1UbKtN+P6hEv6ABEaghtj238dcrBtwijpX
BkfJeJoAAAA=
-----END AUTHENTICODE SIGNATURE-----
++++++ signature-sles.asc ++++++
hash: f31fd461c5e99510403fc97c1da2d8a9cbe270597d32badf8fd66b77495f8d94
# 2069-04-10 06:07:54
timestamp: babababa
checksum: 61c9
-----BEGIN AUTHENTICODE SIGNATURE-----
MIIh9AYJKoZIhvcNAQcCoIIh5TCCIeECAQExDzANBglghkgBZQMEAgEFADBcBgor
BgEEAYI3AgEEoE4wTDAXBgorBgEEAYI3AgEPMAkDAQCgBKICgAAwMTANBglghkgB
ZQMEAgEFAAQg8x/UYcXplRBAP8l8HaLYqcvicFl9Mrrfj9Zrd0lfjZSgggs8MIIF
JDCCBAygAwIBAgITMwAAAApmQvP0n7c3lgABAAAACjANBgkqhkiG9w0BAQsFADCB
gTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMi
TWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTAeFw0xMzA5MjQxNzU0
MDNaFw0xNDEyMjQxNzU0MDNaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
cnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMTAwLgYDVQQDEydNaWNyb3NvZnQgV2lu
ZG93cyBVRUZJIERyaXZlciBQdWJsaXNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCc2PZRP3t6i2DCLSAuWrFHZKfyD98yckc9yxqqqJACgekdZi4s
ZEN1vYcVfiUhW4hFpdH3kcPah7wf+uqgyQa1hb/9AzDH63JYfaHLWA+Jx0leY0cG
CsIFviaUHrCEgxhkeXdrGfHroDcWArv2yBBvj+zvePVE9/VpDoBK+2nAFxz0oG23
BzE5duVpHIZn96fNyoDKYvCf649VqjM+O5/b5jlDylkMWAIVTvWqE0r/7YnC1Vcc
cgJDQk8IaIWSepRsjrvvf8C8uG3ZSxVjQeuPz7ETAryJIWvYdz240MzVAJD7SazH
SbVJm1LPHfS2FEpx3uUNOuo3IJrrxqeals8FAgMBAAGjggF9MIIBeTAfBgNVHSUE
GDAWBggrBgEFBQcDAwYKKwYBBAGCN1ACATAdBgNVHQ4EFgQU6t49RpSALGo0XSnP
ixuEhp5y0NEwUQYDVR0RBEowSKRGMEQxDTALBgNVBAsTBE1PUFIxMzAxBgNVBAUT
KjMxNjE5KzAxMjU1ZjQ2LTc0ZjUtNGZjNC1iYzcxLWU0ZGE5NzM2YmVlZTAfBgNV
HSMEGDAWgBQTrb9DCb2CcJyM1U8xbtUimIob1DBTBgNVHR8ETDBKMEigRqBEhkJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb3JVRUZDQTIw
MTFfMjAxMS0wNi0yNy5jcmwwYAYIKwYBBQUHAQEEVDBSMFAGCCsGAQUFBzAChkRo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvclVFRkNB
MjAxMV8yMDExLTA2LTI3LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUA
A4IBAQAqJ9a9LzTGipmJ7IVkSf5JNK1cBhXsWBlmQ5kFNzeoa+RskUuUeM45NTS3
We7F628BW3BrhT8dK+Uf6YB7F46qng+VWNal2RPFjHSSy60QartzlUJoAaQvNjhC
5gv3LQRmaIZdtdjOLJAclnMETQWrt0wXGsGYwPk3a7kYXsdSO7U+bSwRRkL/v74g
78bCVxwgBhWctw/yxCjpl/bOg79XrZpHxH3szpgwz4YaFWRxxiYAoCYLROKeqObj
PEB8BG83vkpG3K84wBiyT5ab63FtjnbOvD0dGRNO1vIWzC41eEi0mYGW69cya8o+
Ot4bqI6YYSpWmkah9FhW9OLfoCpdMIIGEDCCA/igAwIBAgIKYQjTxAAAAAAABDAN
BgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
dGlvbjE7MDkGA1UEAxMyTWljcm9zb2Z0IENvcnBvcmF0aW9uIFRoaXJkIFBhcnR5
IE1hcmtldHBsYWNlIFJvb3QwHhcNMTEwNjI3MjEyMjQ1WhcNMjYwNjI3MjEzMjQ1
WjCBgTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UE
AxMiTWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKUIbEzHRQlqSwykwId/BnUMQwFUZOAWfwft
kn0LsnO/DArGSkVhoMUWLZbT9Sug+01Jm0GAkDy5VP3mvNGdxKQYin9BilxZg2gy
u4xHye5xvCFPmop8/0Q/jY8ysiZIrnW17slMHkoZfuSCmh14d00MsL32D9MW07z6
K6VROF31+7rbeALb/+wKG5bVg7gZE+m2wHtAe+EfKCfJ+u9WXhzmfpR+wPBEsnk5
5dqyYotNvzhw4mgkFMkzpAg31VhpXtN87cEEUwjnTrAqh2MIYW9jFVnqsit51wxh
Z4pb/V6th3+6hmdPcVgSIgQiIs6L71RxAM5QNVh2lQjuarGiAdUCAwEAAaOCAXYw
ggFyMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFPjBa7d/d1NK
8yU3HU6hJnsPIHCAMB0GA1UdDgQWBBQTrb9DCb2CcJyM1U8xbtUimIob1DAZBgkr
BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
AwEB/zAfBgNVHSMEGDAWgBRFZlJD4X5YEb/WTp4jVQg7OiJqqDBcBgNVHR8EVTBT
MFGgT6BNhktodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
cy9NaWNDb3JUaGlQYXJNYXJSb29fMjAxMC0xMC0wNS5jcmwwYAYIKwYBBQUHAQEE
VDBSMFAGCCsGAQUFBzAChkRodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
cnRzL01pY0NvclRoaVBhck1hclJvb18yMDEwLTEwLTA1LmNydDANBgkqhkiG9w0B
AQsFAAOCAgEANQhC/zDMzvd2DK0QaFg1KUYydid87xJBJ0IbSqptgThIWRNV8+lY
NKYWC4KqXa2C2oCDQQaPtB3yA7nzGl0b8VCQ+bNVhEIoHCC9sq5RFMXArJeVIRyQ
2w/8d56Vc5GIyr29UrkFUA3fV56gYe0N5W0l2UAPF0DIzqNKwk2vmhIdCFSPvce8
uSs9SSsfMvxqIWlPm8h+QjT8NgYXi48gQMCzmiV1J83JA6P2XdHnNlR6uVC10xLR
B7+7dN/cHo+A1e0Y9C8UFmsv3maMsCPlx4TY7erBM4KtVksYLfFolQfNz/By8K67
3YaFmCwhTDMr8A9K8GiHtZJVMnWhaoJqPKMlEaTtrdcErsvYQFmghNGVTGKRIhp0
HYw9Rw5EpuSwmzQ1sfq2U6gsgeykBXHInbi66BtEZuRHVA6OVn+znxaYsobQaD6Q
I7UvXo9QhY3GjYJfQaH0Lg3gmdJsdeS2abUhhvoH0fbiTdHarSx3Ux4lMjfHbFJy
lYaw8TVhahn1sjuBUFamMi3+oon5QoYnGFWhgspam/gwmFQUpkeWJS/IJuRBlBpc
Aj/lluOFWzw+P7tHFnJV4iUisdl75wMGKqP3HpBGwwAN1hmJ4w41J2IDcRWm79An
oKBZN2D4OJS44Hhw+LpMhoeU9uCuAkXuZcK2o35pFnUHkpv1prxZg1gxghYrMIIW
JwIBATCBmTCBgTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEr
MCkGA1UEAxMiTWljcm9zb2Z0IENvcnBvcmF0aW9uIFVFRkkgQ0EgMjAxMQITMwAA
AApmQvP0n7c3lgABAAAACjANBglghkgBZQMEAgEFAKCCAREwGQYJKoZIhvcNAQkD
MQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJ
KoZIhvcNAQkEMSIEIJrzMZcr8o7z/mk2WCbI8fEz7nZbYeVPQtJjL0exXBCxMIGk
BgorBgEEAYI3AgEMMYGVMIGSoF6AXABoAHQAdABwADoALwAvAHcAdwB3AC4AbQBp
AGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAHcAaABkAGMALwBoAGMAbAAvAGQAZQBm
AGEAdQBsAHQALgBtAHMAcAB4oTCALmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93
aGRjL2hjbC9kZWZhdWx0Lm1zcHgwDQYJKoZIhvcNAQEBBQAEggEAjHDQORfm8d8T
eyJMiPDMRPFiO/aBL7UtF4rtDUeYi+c9UU6KDVXHi19Z9DNt3pkRRm4DxFVdDPXU
P1TFD8HWbQPQ7YGGRjDOv1BwxZ+5F6xmNgoxUh0khKisi3l0LPq6Zauee7ebgly3
6A6GQSKlaXH7MXxMsgbvGFdXAQs/KVMb3xzuttby/jcQ9lxoMr4SVcM6Vu6fFZ24
DWhHFtONzHFSvJ3Sf10d8teTvikrIaXg7pzNU+T7+sMXsiyhVhWiFFFtetaaxtT4
vcKDuGHNP797WM1YYxZz+2sMbWyi81h+We6ReHn0V+UUW4b7i4yh0p2Vy3xPrzb6
TgGQIyi536GCE00wghNJBgorBgEEAYI3AwMBMYITOTCCEzUGCSqGSIb3DQEHAqCC
EyYwghMiAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggE9BgsqhkiG9w0BCRABBKCCASwE
ggEoMIIBJAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCAqAR+tIZOx
IQiET4LQ+OsCmH0VlrTUkAPePwl/JtC8pAIGUt6TDOrUGBMyMDE0MDIyNzAxMDcz
My43NzNaMAcCAQGAAgH0oIG5pIG2MIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
IENvcnBvcmF0aW9uMQ0wCwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERT
RSBFU046QzBGNC0zMDg2LURFRjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
YW1wIFNlcnZpY2Wggg7QMIIGcTCCBFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG
9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy
MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
MTAwHhcNMTAwNzAxMjEzNjU1WhcNMjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJV
UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt
ZS1TdGFtcCBQQ0EgMjAxMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AKkdDbx3EYo6IOz8E5f1+n9plGt0VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vw
FVMnBDEfQRsalR3OCROOfGEwWbEwRA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNF
DdDq9UeBzb8kYDJYYEbyWEeGMoQedGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC7
32H8RsEnHSRnEnIaIYqvS2SJUGKxXf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOW
RH7v0Ev9buWayrGo8noqCjHw2k4GkbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJ
k3jN/LzAyURdXhacAQVPIk0CAwEAAaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEA
MB0GA1UdDgQWBBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4K
AFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
GDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRw
Oi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJB
dXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5o
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8y
MDEwLTA2LTIzLmNydDCBoAYDVR0gAQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEw
PQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9D
UFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABv
AGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQAD
ggIBAAfmiFEN4sbgmD+BcQM9naOhIW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/1
5/B4vceoniXj+bzta1RXCCtRgkQS+7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRW
S3TvQhDIr79/xn/yN31aPxzymXlKkVIArzgPF/UveYFl2am1a+THzvbKegBvSzBE
JCI8z+0DpZaPWSm8tv0E4XCfMkon/VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/
3cVKC5Em4jnsGUpxY517IW3DnKOiPPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9
nhquBEKDuLWAmyI4ILUl5WTs9/S/fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5H
moDF0M2n0O99g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv3
3nJ+YWtvd6mBy6cJrDm77MbL2IK0cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI
5pgt6o3gMy4SKfXAL1QnIffIrE7aKLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0
MkvfY3v1mYovG8chr1m1rtxEPJdQcdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0e
GTgvvM9YBS7vDaBQNdrvCScc1bN+NR4Iuto229Nfj950iEkSMIIE2jCCA8KgAwIB
AgITMwAAACiQZ7kEsDxuZgAAAAAAKDANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQG
EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
VGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0xMzAzMjcyMDEzMTNaFw0xNDA2MjcyMDEz
MTNaMIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0wCwYD
VQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046QzBGNC0zMDg2LURF
RjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdpUi/akidSiGckmve4C3c5GP4zLmJ
xMcbvee10/vtrs8x/vNmsEQD2plnCFq/dQYiEYnQZ1LM+s+SN0Xo+vG9M9PMc+O4
IaSgFX3LL8QDBdo/lnPTWeWYTQtWhi+dR9HWX52R6ceE2ZVrMky0awBS4EHTPGl0
qM7MfWidUlXmcH8UB6KeZ7CGRPMzP3Ndxij4F19SAS1EL9bteAi45TsvwLnDS8O3
Oy/TprWcsUhK3TIJVqEbS1rTqiYnDBJDYMVq19pADWCYiUG7k3Pdv/7EjFvO+lUn
yk1Nmm99EWyxRyOwTHxsfwahdIIfUngY6QYaFlCawzrdgYH3mydyIX91AgMBAAGj
ggEbMIIBFzAdBgNVHQ4EFgQU3JgInXnRBLKLR8Nx0Izns+awU50wHwYDVR0jBBgw
FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
BgkqhkiG9w0BAQsFAAOCAQEAgiLztz1kfhJL/Cb84OS30MQUTgn+q1aa0VqYpr6M
QR6UtDK+hLS3RXbj72AYJIeoz+m00VQpvMrkyxJ7wPHUDp8xMxsRP3o73d0CqhjK
yjz6luNsu6+7yYQ+x9gMhctyCwEbpPUxERAMRaVaSJl+2r5Fhte6TeSB/9NYCnZl
Blkv9sJCzwTJqxv6YZ3185hJcLFJ0GTEIejuYBdTfusC2miVi/UKPAHbo7WYFFF0
nlPp2nKYZqBfKc+Prx+CnNPr5vFMG1T46DLcwRXDrCpudAUWg+NEmJ/L7+gweX+v
UqU6H99lx43+J9hHGZIItIs0jmknNxoC9pGzlSL/CEgq/qGCA3kwggJhAgEBMIHj
oYG5pIG2MIGzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQ0w
CwYDVQQLEwRNT1BSMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046QzBGNC0zMDg2
LURFRjgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiJQoB
ATAJBgUrDgMCGgUAAxUA8120HsdfO2ZOZQ7emART9hWnH0SggcIwgb+kgbwwgbkx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1P
UFIxJzAlBgNVBAsTHm5DaXBoZXIgTlRTIEVTTjpCMDI3LUM2RjgtMUQ4ODErMCkG
A1UEAxMiTWljcm9zb2Z0IFRpbWUgU291cmNlIE1hc3RlciBDbG9jazANBgkqhkiG
9w0BAQUFAAIFANa4+LowIhgPMjAxNDAyMjYyMzM1MjJaGA8yMDE0MDIyNzIzMzUy
MlowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA1rj4ugIBADAKAgEAAgIM/AIB/zAH
AgEAAgIV3zAKAgUA1rpKOgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZ
CgMBoAowCAIBAAIDFuNgoQowCAIBAAIDB6EgMA0GCSqGSIb3DQEBBQUAA4IBAQBm
lwBgKM7WFYZn7KoOxHuc0HCwn9KJ7P2+V1ixjuYcd9TJPbpom+P6TqrtdVyqC1qN
P1ika8uTrueq+WIyDkpbBeRjgRPxywB8p6swJXn3a8FQJlYM8wZlX6k4DXOQ5a1I
8Df1MoZedlnFIJFCuailsPek9CZSuawhHvQu6tutrNrCtOJpHGwP/g7QhqDby6MU
9W08fcBbMQ+Q+NN9R+O5914iiyXTxNYply2O6zmRRXVV8Os49n6MAdLMQwlW/Hjf
Qx9xsPgmOpnwA3IVmPCEtJnHbNPnmX23cB3zQ5HQ8Rgzh4a2iGFTUKVLQzP2XbJI
GAt0fd2U/pFkRHTpexsrMYIC9TCCAvECAQEwgZMwfDELMAkGA1UEBhMCVVMxEzAR
BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
Y3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3Rh
bXAgUENBIDIwMTACEzMAAAAokGe5BLA8bmYAAAAAACgwDQYJYIZIAWUDBAIBBQCg
ggEyMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg
igCH0fhbYKLF4fSmxZObvVlmifs8MaWR0dGzScGuExwwgeIGCyqGSIb3DQEJEAIM
MYHSMIHPMIHMMIGxBBTzXbQex187Zk5lDt6YBFP2FacfRDCBmDCBgKR+MHwxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv
c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAAKJBnuQSwPG5mAAAAAAAoMBYE
FP/tXYkB9TLyFTNFAIYorcmDMtYiMA0GCSqGSIb3DQEBCwUABIIBABg8AdKpFO37
Mdc4SKY28D2Sff2uoRuCoLxMZPhC7rR14gC1sXKSBHIoNyMBR32mYJnJsTAgJRwT
YTEmsHYl6l37/tkLAsRS21lt+YuynR9/fdGlwvqxc41HkUHdcTRjvsetVZ7v2HSz
vpCBje4TsAaxblVCsyXiH94CyMR3Aq6brcoG+QJKh14NFLLLIxN2melZYivfcAJR
ES78bXBRGa6hPqsvOIZ6USSC1rAwHodonNcp4Xb1QMPoXKcMPyUAYdzz0q673Mec
hsP7HKqhezXDmpGe6Hg4RrO/In7qyRok6LZ4DH5hsp6dp0Omcgqm3kmcqTTNmtF6
0JelOr7e+os=
-----END AUTHENTICODE SIGNATURE-----
++++++ strip_signature.sh ++++++
--- /var/tmp/diff_new_pack.9HlaKQ/_old 2014-04-20 11:35:08.000000000 +0200
+++ /var/tmp/diff_new_pack.9HlaKQ/_new 2014-04-20 11:35:08.000000000 +0200
@@ -10,13 +10,4 @@
outfile="${infile%.efi}-unsigned.efi"
-nssdir=`mktemp -d`
-cleanup()
-{
- rm -r "$nssdir"
-}
-trap cleanup EXIT
-echo > "$nssdir/pw"
-certutil -f "$nssdir/pw" -d "$nssdir" -N
-
-pesign -n "$nssdir" -r -i "$infile" -o "$outfile"
+pesign -r -i "$infile" -o "$outfile"
--
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 perl-Sys-Virt for openSUSE:Factory checked in at 2014-04-20 11:35:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Sys-Virt (Old)
and /work/SRC/openSUSE:Factory/.perl-Sys-Virt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sys-Virt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Sys-Virt/perl-Sys-Virt.changes 2014-03-04 13:58:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Sys-Virt.new/perl-Sys-Virt.changes 2014-04-20 11:35:02.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Apr 7 12:00:30 MDT 2014 - jfehlig(a)suse.com
+
+- Update to 1.2.3
+ - Add all new APIs and constants in libvirt 1.2.3
+
+-------------------------------------------------------------------
Old:
----
Sys-Virt-1.2.2.tar.gz
New:
----
Sys-Virt-1.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Sys-Virt.spec ++++++
--- /var/tmp/diff_new_pack.pQkyeL/_old 2014-04-20 11:35:03.000000000 +0200
+++ /var/tmp/diff_new_pack.pQkyeL/_new 2014-04-20 11:35:03.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Sys-Virt
-Version: 1.2.2
+Version: 1.2.3
Release: 0
%define cpan_name Sys-Virt
Summary: Represent and manage a libvirt hypervisor connection
++++++ Sys-Virt-1.2.2.tar.gz -> Sys-Virt-1.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/Changes new/Sys-Virt-1.2.3/Changes
--- old/Sys-Virt-1.2.2/Changes 2014-03-03 12:21:53.000000000 +0100
+++ new/Sys-Virt-1.2.3/Changes 2014-04-07 12:35:31.000000000 +0200
@@ -1,5 +1,11 @@
Revision history for perl module Sys::Virt
+1.2.3 2014-04-07
+
+ - Add VIR_FROM_CRYPTO error constant
+ - Add VIR_MIGRATE_AUTO_CONVERGE migration constant
+ - Add virDomainCoreDumpWithFormat and its constants
+
1.2.2 2014-03-03
- Add new domain blk I/O constants
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/META.yml new/Sys-Virt-1.2.3/META.yml
--- old/Sys-Virt-1.2.2/META.yml 2014-03-03 12:22:04.000000000 +0100
+++ new/Sys-Virt-1.2.3/META.yml 2014-04-07 12:50:38.000000000 +0200
@@ -1,7 +1,7 @@
--- #YAML:1.0
name: Sys-Virt
abstract: Extension for the libvirt library
-version: 1.2.2
+version: 1.2.3
author:
- Daniel P. Berrange <dan(a)berrange.com>
license: perl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/MYMETA.json new/Sys-Virt-1.2.3/MYMETA.json
--- old/Sys-Virt-1.2.2/MYMETA.json 2014-03-03 12:21:57.000000000 +0100
+++ new/Sys-Virt-1.2.3/MYMETA.json 2014-04-07 12:50:30.000000000 +0200
@@ -42,5 +42,5 @@
}
},
"release_status" : "stable",
- "version" : "v1.2.2"
+ "version" : "v1.2.3"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/MYMETA.yml new/Sys-Virt-1.2.3/MYMETA.yml
--- old/Sys-Virt-1.2.2/MYMETA.yml 2014-03-03 12:21:57.000000000 +0100
+++ new/Sys-Virt-1.2.3/MYMETA.yml 2014-04-07 12:50:30.000000000 +0200
@@ -24,4 +24,4 @@
Test::Pod::Coverage: 0
Time::HiRes: 0
XML::XPath: 0
-version: v1.2.2
+version: v1.2.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/Makefile.PL new/Sys-Virt-1.2.3/Makefile.PL
--- old/Sys-Virt-1.2.2/Makefile.PL 2014-03-03 12:21:53.000000000 +0100
+++ new/Sys-Virt-1.2.3/Makefile.PL 2014-04-07 12:35:31.000000000 +0200
@@ -3,7 +3,7 @@
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
-my $libvirtver = "1.2.2";
+my $libvirtver = "1.2.3";
my $stat = system "pkg-config --atleast-version=$libvirtver libvirt";
die "cannot run pkg-config to check libvirt version" if $stat == -1;
die "libvirt >= $libvirtver is required\n" unless $stat == 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/README new/Sys-Virt-1.2.3/README
--- old/Sys-Virt-1.2.2/README 2014-03-03 12:21:53.000000000 +0100
+++ new/Sys-Virt-1.2.3/README 2014-04-07 12:35:31.000000000 +0200
@@ -7,6 +7,6 @@
The only pre-requisite for this module is libvirt itself. For
installation instructions, consult the INSTALL file.
-The current minimum required version of libvirt is 1.2.2
+The current minimum required version of libvirt is 1.2.3
-- End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/Virt.xs new/Sys-Virt-1.2.3/Virt.xs
--- old/Sys-Virt-1.2.2/Virt.xs 2014-03-03 12:21:53.000000000 +0100
+++ new/Sys-Virt-1.2.3/Virt.xs 2014-04-07 12:35:31.000000000 +0200
@@ -3125,13 +3125,24 @@
void
core_dump(dom, to, flags=0)
virDomainPtr dom;
- const char *to
+ const char *to;
unsigned int flags;
PPCODE:
if (virDomainCoreDump(dom, to, flags) < 0)
_croak_error();
+void
+core_dump_format(dom, to, format, flags=0)
+ virDomainPtr dom;
+ const char *to;
+ unsigned int format;
+ unsigned int flags;
+ PPCODE:
+ if (virDomainCoreDumpWithFormat(dom, to, format, flags) < 0)
+ _croak_error();
+
+
HV *
get_info(dom)
virDomainPtr dom;
@@ -6761,6 +6772,7 @@
REGISTER_CONSTANT(VIR_MIGRATE_OFFLINE, MIGRATE_OFFLINE);
REGISTER_CONSTANT(VIR_MIGRATE_COMPRESSED, MIGRATE_COMPRESSED);
REGISTER_CONSTANT(VIR_MIGRATE_ABORT_ON_ERROR, MIGRATE_ABORT_ON_ERROR);
+ REGISTER_CONSTANT(VIR_MIGRATE_AUTO_CONVERGE, MIGRATE_AUTO_CONVERGE);
REGISTER_CONSTANT_STR(VIR_MIGRATE_PARAM_BANDWIDTH, MIGRATE_PARAM_BANDWIDTH);
REGISTER_CONSTANT_STR(VIR_MIGRATE_PARAM_DEST_NAME, MIGRATE_PARAM_DEST_NAME);
@@ -7141,6 +7153,10 @@
REGISTER_CONSTANT(VIR_DOMAIN_SEND_KEY_MAX_KEYS, SEND_KEY_MAX_KEYS);
+ REGISTER_CONSTANT(VIR_DOMAIN_CORE_DUMP_FORMAT_RAW, CORE_DUMP_FORMAT_RAW);
+ REGISTER_CONSTANT(VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_LZO, CORE_DUMP_FORMAT_KDUMP_LZO);
+ REGISTER_CONSTANT(VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_SNAPPY, CORE_DUMP_FORMAT_KDUMP_SNAPPY);
+ REGISTER_CONSTANT(VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_ZLIB, CORE_DUMP_FORMAT_KDUMP_ZLIB);
stash = gv_stashpv( "Sys::Virt::DomainSnapshot", TRUE );
REGISTER_CONSTANT(VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN, DELETE_CHILDREN);
@@ -7392,6 +7408,7 @@
REGISTER_CONSTANT(VIR_FROM_ACCESS, FROM_ACCESS);
REGISTER_CONSTANT(VIR_FROM_SYSTEMD, FROM_SYSTEMD);
REGISTER_CONSTANT(VIR_FROM_BHYVE, FROM_BHYVE);
+ REGISTER_CONSTANT(VIR_FROM_CRYPTO, FROM_CRYPTO);
REGISTER_CONSTANT(VIR_ERR_OK, ERR_OK);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/lib/Sys/Virt/Domain.pm new/Sys-Virt-1.2.3/lib/Sys/Virt/Domain.pm
--- old/Sys-Virt-1.2.2/lib/Sys/Virt/Domain.pm 2014-03-03 12:21:53.000000000 +0100
+++ new/Sys-Virt-1.2.3/lib/Sys/Virt/Domain.pm 2014-04-07 12:35:31.000000000 +0200
@@ -227,6 +227,34 @@
The optional C<$flags> flags parameter is currently unused and if
omitted will default to 0.
+=item $dom->core_dump_format($filename, $format, [, $flags])
+
+Trigger a core dump of the guest virtual machine, saving its memory
+image to C<$filename> so it can be analysed by tools such as C<crash>.
+The C<$format> parameter is one of the core dump format constants.
+The optional C<$flags> flags parameter is currently unused and if
+omitted will default to 0.
+
+=over 4
+
+=item Sys::Virt::Domain::CORE_DUMP_FORMAT_RAW
+
+The raw ELF format
+
+=item Sys::Virt::Domain::CORE_DUMP_FORMAT_KDUMP_ZLIB
+
+The zlib compressed ELF format
+
+=item Sys::Virt::Domain::CORE_DUMP_FORMAT_KDUMP_SNAPPY
+
+The snappy compressed ELF format
+
+=item Sys::Virt::Domain::CORE_DUMP_FORMAT_KDUMP_LZO
+
+The lzo compressed ELF format
+
+=back
+
=item $dom->destroy()
Immediately poweroff the machine. This is equivalent to removing the
@@ -1875,6 +1903,11 @@
Abort if an I/O error occurrs on the disk
+=item Sys::Virt::Domain::MIGRATE_AUTO_CONVERGE
+
+Force convergance of the migration operation by
+throttling guest runtime
+
=back
=head2 UNDEFINE CONSTANTS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/lib/Sys/Virt/Error.pm new/Sys-Virt-1.2.3/lib/Sys/Virt/Error.pm
--- old/Sys-Virt-1.2.2/lib/Sys/Virt/Error.pm 2014-03-03 12:21:53.000000000 +0100
+++ new/Sys-Virt-1.2.3/lib/Sys/Virt/Error.pm 2014-04-07 12:35:31.000000000 +0200
@@ -366,6 +366,10 @@
The FreeBSD BHyve driver
+=item Sys::Virt::Error::FROM_CRYPTO
+
+The cryptographic helper APIs.
+
=back
=head2 ERROR CODE CONSTANTS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/lib/Sys/Virt.pm new/Sys-Virt-1.2.3/lib/Sys/Virt.pm
--- old/Sys-Virt-1.2.2/lib/Sys/Virt.pm 2014-03-03 12:21:53.000000000 +0100
+++ new/Sys-Virt-1.2.3/lib/Sys/Virt.pm 2014-04-07 12:35:31.000000000 +0200
@@ -78,7 +78,7 @@
use Sys::Virt::DomainSnapshot;
use Sys::Virt::Stream;
-our $VERSION = '1.2.2';
+our $VERSION = '1.2.3';
require XSLoader;
XSLoader::load('Sys::Virt', $VERSION);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-1.2.2/perl-Sys-Virt.spec new/Sys-Virt-1.2.3/perl-Sys-Virt.spec
--- old/Sys-Virt-1.2.2/perl-Sys-Virt.spec 2014-03-03 12:22:04.000000000 +0100
+++ new/Sys-Virt-1.2.3/perl-Sys-Virt.spec 2014-04-07 12:50:38.000000000 +0200
@@ -1,7 +1,7 @@
# Automatically generated by perl-Sys-Virt.spec.PL
Name: perl-Sys-Virt
-Version: 1.2.2
+Version: 1.2.3
Release: 1%{?dist}%{?extra_release}
Summary: Represent and manage a libvirt hypervisor connection
License: GPLv2+ or Artistic
--
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 libvirt-python for openSUSE:Factory checked in at 2014-04-20 11:34:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt-python (Old)
and /work/SRC/openSUSE:Factory/.libvirt-python.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt-python"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt-python/libvirt-python.changes 2014-03-04 13:45:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt-python.new/libvirt-python.changes 2014-04-20 11:34:58.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Apr 7 11:54:39 MDT 2014 - jfehlig(a)suse.com
+
+- Update to 1.2.3
+ - Add all new APIs and constants in libvirt 1.2.3
+
+-------------------------------------------------------------------
Old:
----
libvirt-python-1.2.2.tar.bz2
New:
----
libvirt-python-1.2.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt-python.spec ++++++
--- /var/tmp/diff_new_pack.vSLO1F/_old 2014-04-20 11:34:59.000000000 +0200
+++ /var/tmp/diff_new_pack.vSLO1F/_new 2014-04-20 11:34:59.000000000 +0200
@@ -18,7 +18,7 @@
Name: libvirt-python
Url: http://libvirt.org/
-Version: 1.2.2
+Version: 1.2.3
Release: 0
Summary: Library providing a simple virtualization API
License: LGPL-2.1+
++++++ libvirt-python-1.2.2.tar.bz2 -> libvirt-python-1.2.3.tar.bz2 ++++++
++++ 1834 lines of diff (skipped)
--
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 libreoffice-templates-de for openSUSE:Factory checked in at 2014-04-18 15:52:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libreoffice-templates-de (Old)
and /work/SRC/openSUSE:Factory/.libreoffice-templates-de.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libreoffice-templates-de"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libreoffice-templates-de/libreoffice-templates-de.changes 2013-01-31 16:45:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libreoffice-templates-de.new/libreoffice-templates-de.changes 2014-04-18 15:52:45.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Apr 18 12:55:31 UTC 2014 - tchvatal(a)suse.com
+
+- Fix build in factory by converting all file names to ascii.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libreoffice-templates-de.spec ++++++
--- /var/tmp/diff_new_pack.RsDLsG/_old 2014-04-18 15:52:46.000000000 +0200
+++ /var/tmp/diff_new_pack.RsDLsG/_new 2014-04-18 15:52:46.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libreoffice-templates-de
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 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
@@ -17,45 +17,25 @@
Name: libreoffice-templates-de
-Provides: locale(OpenOffice_org:de)
-Provides: locale(libreoffice:de)
-# compat stuff
-Provides: OpenOffice_org-templates-de = %version
-Obsoletes: OpenOffice_org-templates-de <= %version
-Provides: OpenOffice_org-de-templates <= 8.2
-Obsoletes: OpenOffice_org-de-templates <= 8.2
Version: 3.3
Release: 0
Summary: German Templates for LibreOffice
License: BSD-4-Clause and LGPL-2.1+
Group: Productivity/Office/Suite
+Url: http://extensions.services.openoffice.org/project/TemplatePackII
Source0: ooo-templates-de-2.0.4.tar.bz2
Source1: ooo-templates-de-suse-2.0.4.tar.bz2
-# http://extensions.services.openoffice.org/project/TemplatePackII
Source2: Sun_ODF_Template_Pack_de-non-layout.tar.bz2
+Provides: locale(OpenOffice_org:de)
+Provides: locale(libreoffice:de)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
A compilation of German templates for LibreOffice.
-
-
-Authors:
---------
- Berthold Gerdes <berthold(a)bgerdes.de>
- Johannes Czerwinski <johannes(a)openoffice.org>
- Olaf Eichborn <oeichhorn(a)openoffice.org>
- Dennis Kielhorn <dkielhorn(a)openoffice.org>
- Harald Schilly <mysteron(a)openoffice.org>
- Karlhanns Spiegel <khs(a)s.netic.de>
- Sven Vermeulen <siboy(a)openoffice.org>
- Helmut Weigel <weigel(a)openoffice.org>
- Frank Welker <gandalfdergraue(a)openoffice.org>
- K. J. Welter <kajo(a)teamstaroffice.org>
-
%prep
-%setup -c -q -b1 -b2
+%setup -q -c -b1 -b2
# update the Sun templates dir
sun_name=Sun_ODF_Template_Pack
sun_dir=${sun_name}_de-non-layout
@@ -74,25 +54,24 @@
%build
%install
-install -m 755 -d $RPM_BUILD_ROOT/usr/share/templates/libreoffice/
-cp -a ooo-templates-de-*/de $RPM_BUILD_ROOT/usr/share/templates/libreoffice/
-cp -a Sun_ODF_Template_Pack_de-non-layout/template/* $RPM_BUILD_ROOT/usr/share/templates/libreoffice/de
-# compat stuff
-install -m 755 -d $RPM_BUILD_ROOT/usr/share/templates/ooo/
-for dir in `find $RPM_BUILD_ROOT/usr/share/templates/libreoffice/ -type d -printf "%%P \n"` ; do
- echo "~$RPM_BUILD_ROOT/usr/share/templates/ooo/$dir~"
- mkdir -p $RPM_BUILD_ROOT/usr/share/templates/ooo/$dir
+install -m 755 -d %{buildroot}%{_datadir}/templates/libreoffice/
+cp -a ooo-templates-de-*/de %{buildroot}%{_datadir}/templates/libreoffice/
+cp -a Sun_ODF_Template_Pack_de-non-layout/template/* %{buildroot}%{_datadir}/templates/libreoffice/de
+# Convert to ascii names
+find %{buildroot}%{_datadir}/templates/libreoffice/ -type f > utf8list
+iconv -f UTF-8 -t ASCII//TRANSLIT utf8list > asciilist
+for file in $(cat utf8list); do
+ newname=$(head -$i asciilist | tail -1 | tr -d '\n')
+ if [ -e $newname ] ; then
+ rm $file
+ else
+ mv $file $newname
+ fi
done
-for file in `find $RPM_BUILD_ROOT/usr/share/templates/libreoffice/ -type f -printf "%%P "` ; do
- ln -sf /usr/share/templates/libreoffice/$file $RPM_BUILD_ROOT/usr/share/templates/ooo/$file
-done
-
-%clean
-rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
%doc ooo-templates-de-*/README*.txt Sun*/{README.*,LICENSE.*}
-/usr/share/templates/
+%{_datadir}/templates/
%changelog
--
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 apparmor for openSUSE:Factory checked in at 2014-04-18 15:52:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apparmor (Old)
and /work/SRC/openSUSE:Factory/.apparmor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apparmor"
Changes:
--------
--- /work/SRC/openSUSE:Factory/apparmor/apparmor.changes 2014-03-23 22:29:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.apparmor.new/apparmor.changes 2014-04-18 15:52:39.000000000 +0200
@@ -1,0 +2,13 @@
+Tue Apr 1 16:06:24 UTC 2014 - lmuelle(a)suse.com
+
+- update usr.sbin.winbindd profile (bnc#870607)
+ - restrict rw access to /var/cache/krb5rcache/ instead /var/tmp/
+
+-------------------------------------------------------------------
+Fri Mar 28 14:24:19 UTC 2014 - lmuelle(a)suse.com
+
+- update usr.sbin.winbindd profile (bnc#870607)
+ - treat passdb.tdb.tmp as passdb.tdb
+ - allow rw access to /var/tmp/
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ usr.sbin.winbindd ++++++
--- /var/tmp/diff_new_pack.SrpGW9/_old 2014-04-18 15:52:40.000000000 +0200
+++ /var/tmp/diff_new_pack.SrpGW9/_new 2014-04-18 15:52:40.000000000 +0200
@@ -11,7 +11,7 @@
capability setuid,
/etc/samba/dhcp.conf r,
- /etc/samba/passdb.tdb rwk,
+ /etc/samba/passdb.tdb{,.tmp} rwk,
/etc/samba/secrets.tdb rwk,
/proc/sys/kernel/core_pattern r,
/tmp/.winbindd/ w,
@@ -21,6 +21,7 @@
/usr/lib*/samba/pdb/*.so mr,
/usr/sbin/winbindd mr,
/usr/share/samba/codepages/{lowcase,upcase,valid}.dat r,
+ /var/cache/krb5rcache/* rw,
/var/cache/samba/*.tdb rwk,
/var/cache/samba/netsamlogon_cache.tdb rw,
--
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 kde4-l10n for openSUSE:Factory checked in at 2014-04-18 15:45:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kde4-l10n (Old)
and /work/SRC/openSUSE:Factory/.kde4-l10n.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde4-l10n"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kde4-l10n/kde4-l10n.changes 2014-02-20 07:59:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde4-l10n.changes 2014-04-18 15:46:07.000000000 +0200
@@ -1,0 +2,41 @@
+Fri Apr 11 17:03:29 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.13.0
+ * KDE 4.13 release
+ * See http://www.kde.org/announcements/4.13/
+
+-------------------------------------------------------------------
+Thu Mar 27 17:42:21 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.12.97
+ * KDE 4.13 RC release
+ * See http://www.kde.org/announcements/announce-4.13-rc.php
+
+-------------------------------------------------------------------
+Thu Mar 20 18:42:09 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.12.95
+ * KDE 4.13 Beta 3 release
+ * See http://www.kde.org/announcements/announce-4.13-beta3.php
+
+-------------------------------------------------------------------
+Thu Mar 13 22:36:13 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.12.90
+ * KDE 4.13 Beta 2 release
+ * See http://www.kde.org/announcements/announce-4.13-beta2.php
+
+-------------------------------------------------------------------
+Fri Mar 7 13:42:46 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.12.3
+ * KDE 4.12.3 release
+ * See http://www.kde.org/announcements/announce-4.12.3.php
+
+-------------------------------------------------------------------
+Mon Mar 3 19:28:02 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Resolve build issue with an "@" in the package name.
+ Package ca@valencia will now be caValencia
+
+-------------------------------------------------------------------
Old:
----
kde-l10n-ar-4.12.2.tar.xz
kde-l10n-bg-4.12.2.tar.xz
kde-l10n-bs-4.12.2.tar.xz
kde-l10n-ca-4.12.2.tar.xz
kde-l10n-ca(a)valencia-4.12.2.tar.xz
kde-l10n-cs-4.12.2.tar.xz
kde-l10n-da-4.12.2.tar.xz
kde-l10n-de-4.12.2.tar.xz
kde-l10n-el-4.12.2.tar.xz
kde-l10n-en_GB-4.12.2.tar.xz
kde-l10n-es-4.12.2.tar.xz
kde-l10n-et-4.12.2.tar.xz
kde-l10n-eu-4.12.2.tar.xz
kde-l10n-fi-4.12.2.tar.xz
kde-l10n-fr-4.12.2.tar.xz
kde-l10n-ga-4.12.2.tar.xz
kde-l10n-gl-4.12.2.tar.xz
kde-l10n-he-4.12.2.tar.xz
kde-l10n-hi-4.12.2.tar.xz
kde-l10n-hr-4.12.2.tar.xz
kde-l10n-hu-4.12.2.tar.xz
kde-l10n-ia-4.12.2.tar.xz
kde-l10n-is-4.12.2.tar.xz
kde-l10n-it-4.12.2.tar.xz
kde-l10n-ja-4.12.2.tar.xz
kde-l10n-kk-4.12.2.tar.xz
kde-l10n-km-4.12.2.tar.xz
kde-l10n-ko-4.12.2.tar.xz
kde-l10n-lt-4.12.2.tar.xz
kde-l10n-lv-4.12.2.tar.xz
kde-l10n-mr-4.12.2.tar.xz
kde-l10n-nb-4.12.2.tar.xz
kde-l10n-nds-4.12.2.tar.xz
kde-l10n-nl-4.12.2.tar.xz
kde-l10n-nn-4.12.2.tar.xz
kde-l10n-pa-4.12.2.tar.xz
kde-l10n-pl-4.12.2.tar.xz
kde-l10n-pt-4.12.2.tar.xz
kde-l10n-pt_BR-4.12.2.tar.xz
kde-l10n-ro-4.12.2.tar.xz
kde-l10n-ru-4.12.2.tar.xz
kde-l10n-sk-4.12.2.tar.xz
kde-l10n-sl-4.12.2.tar.xz
kde-l10n-sr-4.12.2.tar.xz
kde-l10n-sv-4.12.2.tar.xz
kde-l10n-tr-4.12.2.tar.xz
kde-l10n-ug-4.12.2.tar.xz
kde-l10n-uk-4.12.2.tar.xz
kde-l10n-vi-4.12.2.tar.xz
kde-l10n-wa-4.12.2.tar.xz
kde-l10n-zh_CN-4.12.2.tar.xz
kde-l10n-zh_TW-4.12.2.tar.xz
New:
----
kde-l10n-ar-4.13.0.tar.xz
kde-l10n-bg-4.13.0.tar.xz
kde-l10n-bs-4.13.0.tar.xz
kde-l10n-ca-4.13.0.tar.xz
kde-l10n-ca(a)valencia-4.13.0.tar.xz
kde-l10n-cs-4.13.0.tar.xz
kde-l10n-da-4.13.0.tar.xz
kde-l10n-de-4.13.0.tar.xz
kde-l10n-el-4.13.0.tar.xz
kde-l10n-en_GB-4.13.0.tar.xz
kde-l10n-es-4.13.0.tar.xz
kde-l10n-et-4.13.0.tar.xz
kde-l10n-eu-4.13.0.tar.xz
kde-l10n-fi-4.13.0.tar.xz
kde-l10n-fr-4.13.0.tar.xz
kde-l10n-ga-4.13.0.tar.xz
kde-l10n-gl-4.13.0.tar.xz
kde-l10n-he-4.13.0.tar.xz
kde-l10n-hi-4.13.0.tar.xz
kde-l10n-hr-4.13.0.tar.xz
kde-l10n-hu-4.13.0.tar.xz
kde-l10n-ia-4.13.0.tar.xz
kde-l10n-id-4.13.0.tar.xz
kde-l10n-is-4.13.0.tar.xz
kde-l10n-it-4.13.0.tar.xz
kde-l10n-ja-4.13.0.tar.xz
kde-l10n-kk-4.13.0.tar.xz
kde-l10n-km-4.13.0.tar.xz
kde-l10n-ko-4.13.0.tar.xz
kde-l10n-lt-4.13.0.tar.xz
kde-l10n-lv-4.13.0.tar.xz
kde-l10n-mr-4.13.0.tar.xz
kde-l10n-nb-4.13.0.tar.xz
kde-l10n-nds-4.13.0.tar.xz
kde-l10n-nl-4.13.0.tar.xz
kde-l10n-nn-4.13.0.tar.xz
kde-l10n-pa-4.13.0.tar.xz
kde-l10n-pl-4.13.0.tar.xz
kde-l10n-pt-4.13.0.tar.xz
kde-l10n-pt_BR-4.13.0.tar.xz
kde-l10n-ro-4.13.0.tar.xz
kde-l10n-ru-4.13.0.tar.xz
kde-l10n-sk-4.13.0.tar.xz
kde-l10n-sl-4.13.0.tar.xz
kde-l10n-sr-4.13.0.tar.xz
kde-l10n-sv-4.13.0.tar.xz
kde-l10n-tr-4.13.0.tar.xz
kde-l10n-ug-4.13.0.tar.xz
kde-l10n-uk-4.13.0.tar.xz
kde-l10n-vi-4.13.0.tar.xz
kde-l10n-wa-4.13.0.tar.xz
kde-l10n-zh_CN-4.13.0.tar.xz
kde-l10n-zh_TW-4.13.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kde4-l10n.spec ++++++
--- /var/tmp/diff_new_pack.Ij4Wmo/_old 2014-04-18 15:46:14.000000000 +0200
+++ /var/tmp/diff_new_pack.Ij4Wmo/_new 2014-04-18 15:46:14.000000000 +0200
@@ -18,7 +18,7 @@
Name: kde4-l10n
-Version: 4.12.2
+Version: 4.13.0
Release: 0
Summary: KDE translations base package
License: GPL-2.0+
@@ -46,36 +46,37 @@
Source19: kde-l10n-hr-%version.tar.xz
Source20: kde-l10n-hu-%version.tar.xz
Source21: kde-l10n-ia-%version.tar.xz
-Source22: kde-l10n-is-%version.tar.xz
-Source23: kde-l10n-it-%version.tar.xz
-Source24: kde-l10n-ja-%version.tar.xz
-Source25: kde-l10n-kk-%version.tar.xz
-Source26: kde-l10n-km-%version.tar.xz
-Source27: kde-l10n-ko-%version.tar.xz
-Source28: kde-l10n-lt-%version.tar.xz
-Source29: kde-l10n-lv-%version.tar.xz
-Source30: kde-l10n-mr-%version.tar.xz
-Source31: kde-l10n-nb-%version.tar.xz
-Source32: kde-l10n-nds-%version.tar.xz
-Source33: kde-l10n-nl-%version.tar.xz
-Source34: kde-l10n-nn-%version.tar.xz
-Source35: kde-l10n-pa-%version.tar.xz
-Source36: kde-l10n-pl-%version.tar.xz
-Source37: kde-l10n-pt-%version.tar.xz
-Source38: kde-l10n-pt_BR-%version.tar.xz
-Source39: kde-l10n-ro-%version.tar.xz
-Source40: kde-l10n-ru-%version.tar.xz
-Source41: kde-l10n-sk-%version.tar.xz
-Source42: kde-l10n-sl-%version.tar.xz
-Source43: kde-l10n-sr-%version.tar.xz
-Source44: kde-l10n-sv-%version.tar.xz
-Source45: kde-l10n-tr-%version.tar.xz
-Source46: kde-l10n-ug-%version.tar.xz
-Source47: kde-l10n-uk-%version.tar.xz
-Source48: kde-l10n-vi-%version.tar.xz
-Source49: kde-l10n-wa-%version.tar.xz
-Source50: kde-l10n-zh_CN-%version.tar.xz
-Source51: kde-l10n-zh_TW-%version.tar.xz
+Source22: kde-l10n-id-%version.tar.xz
+Source23: kde-l10n-is-%version.tar.xz
+Source24: kde-l10n-it-%version.tar.xz
+Source25: kde-l10n-ja-%version.tar.xz
+Source26: kde-l10n-kk-%version.tar.xz
+Source27: kde-l10n-km-%version.tar.xz
+Source28: kde-l10n-ko-%version.tar.xz
+Source29: kde-l10n-lt-%version.tar.xz
+Source30: kde-l10n-lv-%version.tar.xz
+Source31: kde-l10n-mr-%version.tar.xz
+Source32: kde-l10n-nb-%version.tar.xz
+Source33: kde-l10n-nds-%version.tar.xz
+Source34: kde-l10n-nl-%version.tar.xz
+Source35: kde-l10n-nn-%version.tar.xz
+Source36: kde-l10n-pa-%version.tar.xz
+Source37: kde-l10n-pl-%version.tar.xz
+Source38: kde-l10n-pt-%version.tar.xz
+Source39: kde-l10n-pt_BR-%version.tar.xz
+Source40: kde-l10n-ro-%version.tar.xz
+Source41: kde-l10n-ru-%version.tar.xz
+Source42: kde-l10n-sk-%version.tar.xz
+Source43: kde-l10n-sl-%version.tar.xz
+Source44: kde-l10n-sr-%version.tar.xz
+Source45: kde-l10n-sv-%version.tar.xz
+Source46: kde-l10n-tr-%version.tar.xz
+Source47: kde-l10n-ug-%version.tar.xz
+Source48: kde-l10n-uk-%version.tar.xz
+Source49: kde-l10n-vi-%version.tar.xz
+Source50: kde-l10n-wa-%version.tar.xz
+Source51: kde-l10n-zh_CN-%version.tar.xz
+Source52: kde-l10n-zh_TW-%version.tar.xz
#@SOURCES@
Source1000: COPYING
Source1001: texts
@@ -90,7 +91,7 @@
%define kdepim_version %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
-%define build_languages ar bg bs ca ca@valencia cs da de el en_GB es et eu fi fr ga gl he hi hr hu ia is it ja kk km ko lt lv mr nb nds nl nn pa pl pt pt_BR ro ru sk sl sr sv tr ug uk vi wa zh_CN zh_TW
+%define build_languages ar bg bs ca ca@valencia cs da de el en_GB es et eu fi fr ga gl he hi hr hu ia id is it ja kk km ko lt lv mr nb nds nl nn pa pl pt pt_BR ro ru sk sl sr sv tr ug uk vi wa zh_CN zh_TW
%define split_languages da de en_GB es et fr it nl pl pt_BR ru sv uk
%description
@@ -140,14 +141,14 @@
All the requirements for a KDE desktop in Catalan. This package contains
application translations, help files, and screenshots.
-%package ca@valencia
-Summary: Valencian (ca@valencia) translations for KDE
+%package caValencia
+Summary: summary
Group: System/Localization
-Provides: kde-l10n-ca@valencia
+Provides: kde-l10n-caValencia
Provides: locale(kdelibs4:ca@valencia)
-Supplements: packageand(kdelibs4:kde3-i18n-ca@valencia)
+Supplements: packageand(kdelibs4:kde3-i18n-caValencia)
-%description ca@valencia
+%description caValencia
All the requirements for a KDE desktop in Valencian. This package contains
application translations, help files, and screenshots.
@@ -447,6 +448,17 @@
Auxiliary Language Association). This package contains application
translations, help files, and screenshots.
+%package id
+Summary: Indonesian (id) translations for KDE
+Group: System/Localization
+Provides: kde-l10n-id
+Provides: locale(kdelibs4:id)
+Supplements: packageand(kdelibs4:kde3-i18n-id)
+
+%description id
+All the requirements for a KDE desktop in Indonesian. This package contains
+application translations, help files, and screenshots.
+
%package is
Summary: Icelandic (is) translations for KDE
Group: System/Localization
@@ -973,6 +985,7 @@
turtlelang=$i
autolang=$i
l=$i
+ f=$i
case $i in
de)
turtlelang=de_DE
@@ -995,12 +1008,18 @@
;;
sr@latin)
l=sr
+ f=sr
;;
sr@ijekavian)
l=sr
+ f=sr
;;
sr@ijekavianlatin)
l=sr
+ f=sr
+ ;;
+ ca@valencia)
+ f=caValencia
;;
esac
{
@@ -1032,7 +1051,7 @@
echo "%{_docdir}/kde4-l10n-$l"
- } >> files.$l
+ } >> files.$f
{
echo "%defattr(-,root,root)"
if test -d %{buildroot}%{_kde4_appsdir}/khangman/data/$i; then
@@ -1136,7 +1155,7 @@
if test -d %{buildroot}%{_docdir}/kde4-l10n-$i-data; then
echo "%{_docdir}/kde4-l10n-$i-data"
fi
- } >> files.data.$l
+ } >> files.data.$f
{
echo "%defattr(-,root,root)"
@@ -1147,8 +1166,8 @@
if test -d %{buildroot}%{_docdir}/kde4-l10n-$i-doc ; then
echo "%{_docdir}/kde4-l10n-$i-doc"
fi
- } >> files.doc.$l
- cat files.$l files.data.$l files.doc.$l >files.all.$l
+ } >> files.doc.$f
+ cat files.$f files.data.$f files.doc.$f >files.all.$f
done
%fdupes %{buildroot}
@@ -1161,7 +1180,7 @@
%files bg -f files.all.bg
%files bs -f files.all.bs
%files ca -f files.all.ca
-%files ca@valencia -f files.all.ca@valencia
+%files caValencia -f files.all.caValencia
%files cs -f files.all.cs
%files da -f files.da
%files da-doc -f files.doc.da
@@ -1191,6 +1210,7 @@
%files hr -f files.all.hr
%files hu -f files.all.hu
%files ia -f files.all.ia
+%files id -f files.all.id
%files is -f files.all.is
%files it -f files.it
%files it-doc -f files.doc.it
++++++ kde-l10n-ar-4.12.2.tar.xz -> kde-l10n-ar-4.13.0.tar.xz ++++++
++++ 85957 lines of diff (skipped)
++++++ kde-l10n-bg-4.12.2.tar.xz -> kde-l10n-bg-4.13.0.tar.xz ++++++
++++ 93917 lines of diff (skipped)
++++++ kde-l10n-bs-4.12.2.tar.xz -> kde-l10n-bs-4.13.0.tar.xz ++++++
++++ 129280 lines of diff (skipped)
++++++ kde-l10n-ca-4.12.2.tar.xz -> kde-l10n-ca-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-ca-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-ca-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-ca(a)valencia-4.12.2.tar.xz -> kde-l10n-ca(a)valencia-4.13.0.tar.xz ++++++
++++ 129137 lines of diff (skipped)
++++++ kde-l10n-cs-4.12.2.tar.xz -> kde-l10n-cs-4.13.0.tar.xz ++++++
++++ 102691 lines of diff (skipped)
++++++ kde-l10n-da-4.12.2.tar.xz -> kde-l10n-da-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-da-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-da-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-de-4.12.2.tar.xz -> kde-l10n-de-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-de-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-de-4.13.0.tar.xz differ: char 47, line 1
++++++ kde-l10n-el-4.12.2.tar.xz -> kde-l10n-el-4.13.0.tar.xz ++++++
++++ 121872 lines of diff (skipped)
++++++ kde-l10n-en_GB-4.12.2.tar.xz -> kde-l10n-en_GB-4.13.0.tar.xz ++++++
++++ 101721 lines of diff (skipped)
++++++ kde-l10n-es-4.12.2.tar.xz -> kde-l10n-es-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-es-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-es-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-et-4.12.2.tar.xz -> kde-l10n-et-4.13.0.tar.xz ++++++
++++ 107157 lines of diff (skipped)
++++++ kde-l10n-eu-4.12.2.tar.xz -> kde-l10n-eu-4.13.0.tar.xz ++++++
++++ 129602 lines of diff (skipped)
++++++ kde-l10n-fi-4.12.2.tar.xz -> kde-l10n-fi-4.13.0.tar.xz ++++++
++++ 124372 lines of diff (skipped)
++++++ kde-l10n-fr-4.12.2.tar.xz -> kde-l10n-fr-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-fr-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-fr-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-ga-4.12.2.tar.xz -> kde-l10n-ga-4.13.0.tar.xz ++++++
++++ 100787 lines of diff (skipped)
++++++ kde-l10n-gl-4.12.2.tar.xz -> kde-l10n-gl-4.13.0.tar.xz ++++++
++++ 110770 lines of diff (skipped)
++++++ kde-l10n-he-4.12.2.tar.xz -> kde-l10n-he-4.13.0.tar.xz ++++++
++++ 82966 lines of diff (skipped)
++++++ kde-l10n-hi-4.12.2.tar.xz -> kde-l10n-hi-4.13.0.tar.xz ++++++
++++ 88995 lines of diff (skipped)
++++++ kde-l10n-hr-4.12.2.tar.xz -> kde-l10n-hr-4.13.0.tar.xz ++++++
++++ 8910 lines of diff (skipped)
++++++ kde-l10n-hu-4.12.2.tar.xz -> kde-l10n-hu-4.13.0.tar.xz ++++++
++++ 113214 lines of diff (skipped)
++++++ kde-l10n-ia-4.12.2.tar.xz -> kde-l10n-ia-4.13.0.tar.xz ++++++
++++ 72079 lines of diff (skipped)
++++++ kde-l10n-ia-4.12.2.tar.xz -> kde-l10n-id-4.13.0.tar.xz ++++++
++++ 372988 lines of diff (skipped)
++++++ kde-l10n-is-4.12.2.tar.xz -> kde-l10n-is-4.13.0.tar.xz ++++++
++++ 95147 lines of diff (skipped)
++++++ kde-l10n-it-4.12.2.tar.xz -> kde-l10n-it-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-it-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-it-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-ja-4.12.2.tar.xz -> kde-l10n-ja-4.13.0.tar.xz ++++++
++++ 97778 lines of diff (skipped)
++++++ kde-l10n-kk-4.12.2.tar.xz -> kde-l10n-kk-4.13.0.tar.xz ++++++
++++ 105125 lines of diff (skipped)
++++++ kde-l10n-km-4.12.2.tar.xz -> kde-l10n-km-4.13.0.tar.xz ++++++
++++ 93409 lines of diff (skipped)
++++++ kde-l10n-ko-4.12.2.tar.xz -> kde-l10n-ko-4.13.0.tar.xz ++++++
++++ 158547 lines of diff (skipped)
++++++ kde-l10n-lt-4.12.2.tar.xz -> kde-l10n-lt-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-lt-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-lt-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-lv-4.12.2.tar.xz -> kde-l10n-lv-4.13.0.tar.xz ++++++
++++ 89353 lines of diff (skipped)
++++++ kde-l10n-mr-4.12.2.tar.xz -> kde-l10n-mr-4.13.0.tar.xz ++++++
++++ 99481 lines of diff (skipped)
++++++ kde-l10n-nb-4.12.2.tar.xz -> kde-l10n-nb-4.13.0.tar.xz ++++++
++++ 102278 lines of diff (skipped)
++++++ kde-l10n-nds-4.12.2.tar.xz -> kde-l10n-nds-4.13.0.tar.xz ++++++
++++ 151779 lines of diff (skipped)
++++++ kde-l10n-nl-4.12.2.tar.xz -> kde-l10n-nl-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-nl-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-nl-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-nn-4.12.2.tar.xz -> kde-l10n-nn-4.13.0.tar.xz ++++++
++++ 85453 lines of diff (skipped)
++++++ kde-l10n-pa-4.12.2.tar.xz -> kde-l10n-pa-4.13.0.tar.xz ++++++
++++ 97438 lines of diff (skipped)
++++++ kde-l10n-pl-4.12.2.tar.xz -> kde-l10n-pl-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-pl-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-pl-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-pt-4.12.2.tar.xz -> kde-l10n-pt-4.13.0.tar.xz ++++++
++++ 127265 lines of diff (skipped)
++++++ kde-l10n-pt_BR-4.12.2.tar.xz -> kde-l10n-pt_BR-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-pt_BR-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-pt_BR-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-ro-4.12.2.tar.xz -> kde-l10n-ro-4.13.0.tar.xz ++++++
++++ 107464 lines of diff (skipped)
++++++ kde-l10n-ru-4.12.2.tar.xz -> kde-l10n-ru-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-ru-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-ru-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-sk-4.12.2.tar.xz -> kde-l10n-sk-4.13.0.tar.xz ++++++
++++ 117903 lines of diff (skipped)
++++++ kde-l10n-sl-4.12.2.tar.xz -> kde-l10n-sl-4.13.0.tar.xz ++++++
++++ 105186 lines of diff (skipped)
++++++ kde-l10n-sr-4.12.2.tar.xz -> kde-l10n-sr-4.13.0.tar.xz ++++++
++++ 300150 lines of diff (skipped)
++++++ kde-l10n-sv-4.12.2.tar.xz -> kde-l10n-sv-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-sv-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-sv-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-tr-4.12.2.tar.xz -> kde-l10n-tr-4.13.0.tar.xz ++++++
++++ 101768 lines of diff (skipped)
++++++ kde-l10n-ug-4.12.2.tar.xz -> kde-l10n-ug-4.13.0.tar.xz ++++++
++++ 98345 lines of diff (skipped)
++++++ kde-l10n-uk-4.12.2.tar.xz -> kde-l10n-uk-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kde4-l10n/kde-l10n-uk-4.12.2.tar.xz /work/SRC/openSUSE:Factory/.kde4-l10n.new/kde-l10n-uk-4.13.0.tar.xz differ: char 27, line 1
++++++ kde-l10n-vi-4.12.2.tar.xz -> kde-l10n-vi-4.13.0.tar.xz ++++++
++++ 24231 lines of diff (skipped)
++++++ kde-l10n-wa-4.12.2.tar.xz -> kde-l10n-wa-4.13.0.tar.xz ++++++
++++ 51325 lines of diff (skipped)
++++++ kde-l10n-zh_CN-4.12.2.tar.xz -> kde-l10n-zh_CN-4.13.0.tar.xz ++++++
++++ 108064 lines of diff (skipped)
++++++ kde-l10n-zh_TW-4.12.2.tar.xz -> kde-l10n-zh_TW-4.13.0.tar.xz ++++++
++++ 106317 lines of diff (skipped)
++++++ kde4-l10n.spec.in ++++++
--- /var/tmp/diff_new_pack.Ij4Wmo/_old 2014-04-18 15:47:10.000000000 +0200
+++ /var/tmp/diff_new_pack.Ij4Wmo/_new 2014-04-18 15:47:10.000000000 +0200
@@ -18,7 +18,7 @@
# icecream 0
Name: kde4-l10n
-Version: 4.12.2
+Version: 4.13.0
Release: 0
License: GPL-2.0+
Summary: English translations for KDE
@@ -119,6 +119,7 @@
turtlelang=$i
autolang=$i
l=$i
+ f=$i
case $i in
de)
turtlelang=de_DE
@@ -141,12 +142,18 @@
;;
sr@latin)
l=sr
+ f=sr
;;
sr@ijekavian)
l=sr
+ f=sr
;;
sr@ijekavianlatin)
l=sr
+ f=sr
+ ;;
+ ca@valencia)
+ f=caValencia
;;
esac
{
@@ -178,7 +185,7 @@
echo "%{_docdir}/kde4-l10n-$l"
- } >> files.$l
+ } >> files.$f
{
echo "%defattr(-,root,root)"
if test -d %{buildroot}%{_kde4_appsdir}/khangman/data/$i; then
@@ -282,7 +289,7 @@
if test -d %{buildroot}%{_docdir}/kde4-l10n-$i-data; then
echo "%{_docdir}/kde4-l10n-$i-data"
fi
- } >> files.data.$l
+ } >> files.data.$f
{
echo "%defattr(-,root,root)"
@@ -293,8 +300,8 @@
if test -d %{buildroot}%{_docdir}/kde4-l10n-$i-doc ; then
echo "%{_docdir}/kde4-l10n-$i-doc"
fi
- } >> files.doc.$l
- cat files.$l files.data.$l files.doc.$l >files.all.$l
+ } >> files.doc.$f
+ cat files.$f files.data.$f files.doc.$f >files.all.$f
done
%fdupes %{buildroot}
++++++ pre_checkin.sh ++++++
--- /var/tmp/diff_new_pack.Ij4Wmo/_old 2014-04-18 15:47:10.000000000 +0200
+++ /var/tmp/diff_new_pack.Ij4Wmo/_new 2014-04-18 15:47:10.000000000 +0200
@@ -46,6 +46,9 @@
lang=srLatn
plang=sr
fi
+ if test "$lang" = "ca@valencia"; then
+ lang=caValencia
+ fi
splitpackage=
for sl in $splitlanguages; do
++++++ texts ++++++
--- /var/tmp/diff_new_pack.Ij4Wmo/_old 2014-04-18 15:47:10.000000000 +0200
+++ /var/tmp/diff_new_pack.Ij4Wmo/_new 2014-04-18 15:47:10.000000000 +0200
@@ -32,10 +32,10 @@
application translations, help files, and screenshots.
-description.kde4-l10n-ca
summary.kde4-l10n-ca Catalan (ca) translations for KDE
-+description.kde4-l10n-ca@valencia
++description.kde4-l10n-caValencia
All the requirements for a KDE desktop in Valencian. This package contains
application translations, help files, and screenshots.
--description.kde4-l10n-ca@valencia
+-description.kde4-l10n-caValencia
summary.kde4-l10n-ca@valencia Valencian (ca@valencia) translations for KDE
+description.kde4-l10n-cs
All the requirements for a KDE desktop in Czech. This package contains
--
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 python-M2Crypto for openSUSE:Factory checked in at 2014-04-18 12:33:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-M2Crypto (Old)
and /work/SRC/openSUSE:Factory/.python-M2Crypto.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-M2Crypto"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-M2Crypto/python-M2Crypto.changes 2013-10-25 11:23:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-M2Crypto.new/python-M2Crypto.changes 2014-04-18 12:37:59.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Apr 17 19:49:12 UTC 2014 - hrvoje.senjan(a)gmail.com
+
+- Update to 0.22.3
+ * No changelog provided
+- Demos are no longer included
+
+-------------------------------------------------------------------
Old:
----
M2Crypto-0.21.1.tar.gz
New:
----
M2Crypto-0.22.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-M2Crypto.spec ++++++
--- /var/tmp/diff_new_pack.bgwMlK/_old 2014-04-18 12:38:00.000000000 +0200
+++ /var/tmp/diff_new_pack.bgwMlK/_new 2014-04-18 12:38:00.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-M2Crypto
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 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
@@ -17,7 +17,7 @@
Name: python-M2Crypto
-Version: 0.21.1
+Version: 0.22.3
Release: 0
Url: http://chandlerproject.org/bin/view/Projects/MeTooCrypto
Summary: Crypto and SSL toolkit for Python
@@ -69,12 +69,10 @@
#chmod 0644 demo/{https.howto/get_https,ssl/twistedsslclient,ssl/twistedsslserver,tinderbox/slave,x509/certdata2pem}.py
export DOCDIR=%{buildroot}%{_docdir}/%{name}
-chmod -R -x+X demo
mkdir -p $DOCDIR
-cp -r demo $DOCDIR
%fdupes $DOCDIR
-install -m 644 CHANGES LICENCE README $DOCDIR
+install -m 644 README $DOCDIR
%files
%defattr(-,root,root)
++++++ M2Crypto-0.21.1.tar.gz -> M2Crypto-0.22.3.tar.gz ++++++
++++ 34685 lines of diff (skipped)
--
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 kde4-filesystem for openSUSE:Factory checked in at 2014-04-18 11:35:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kde4-filesystem (Old)
and /work/SRC/openSUSE:Factory/.kde4-filesystem.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde4-filesystem"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kde4-filesystem/kde4-filesystem.changes 2014-03-30 07:50:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kde4-filesystem.new/kde4-filesystem.changes 2014-04-18 12:37:57.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Apr 11 16:39:48 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.13.0
+ * KDE 4.13 release
+ * See http://www.kde.org/announcements/4.13/
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ macros.kde4 ++++++
--- /var/tmp/diff_new_pack.ikqjq8/_old 2014-04-18 12:37:58.000000000 +0200
+++ /var/tmp/diff_new_pack.ikqjq8/_new 2014-04-18 12:37:58.000000000 +0200
@@ -33,9 +33,9 @@
%_kde4_modules %{_kde4_modulesdir}
%_kde4_servicetypes %{_kde4_servicetypesdir}
-%_kde_platform_version 4.12.97
+%_kde_platform_version 4.13
%_kde_platform_minor_version %(echo %{_kde_platform_version} | cut -f 2 -d \.)
-%_kde_pimlibs_version 4.12.97
+%_kde_pimlibs_version 4.13
%_kde_branding_version 4.13
%_kde_akonadi_version 1.12.0
--
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 kdelibs4 for openSUSE:Factory checked in at 2014-04-18 11:35:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdelibs4 (Old)
and /work/SRC/openSUSE:Factory/.kdelibs4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdelibs4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdelibs4/kdelibs4-apidocs.changes 2014-03-30 07:57:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs4-apidocs.changes 2014-04-18 12:37:54.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Apr 11 16:42:45 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.13.0
+ * KDE 4.13 release
+ * See http://www.kde.org/announcements/4.13/
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/kdelibs4/kdelibs4.changes 2014-03-30 07:57:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs4.changes 2014-04-18 12:37:55.000000000 +0200
@@ -1,0 +2,12 @@
+Tue Apr 15 09:32:22 UTC 2014 - sweet_f_a(a)gmx.de
+
+- remove unused and unmaintained ssl certificates (bnc#873680)
+
+-------------------------------------------------------------------
+Fri Apr 11 16:42:45 UTC 2014 - tittiatcoke(a)gmail.com
+
+- Update to 4.13.0
+ * KDE 4.13 release
+ * See http://www.kde.org/announcements/4.13/
+
+-------------------------------------------------------------------
Old:
----
kdelibs-4.12.97.tar.xz
New:
----
kdelibs-4.13.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdelibs4-apidocs.spec ++++++
--- /var/tmp/diff_new_pack.9zFcTX/_old 2014-04-18 12:37:56.000000000 +0200
+++ /var/tmp/diff_new_pack.9zFcTX/_new 2014-04-18 12:37:56.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdelibs4-apidocs
-Version: 4.12.97
+Version: 4.13.0
Release: 0
Summary: KDE 4 API documentation
License: LGPL-2.1+
++++++ kdelibs4.spec ++++++
--- /var/tmp/diff_new_pack.9zFcTX/_old 2014-04-18 12:37:56.000000000 +0200
+++ /var/tmp/diff_new_pack.9zFcTX/_new 2014-04-18 12:37:56.000000000 +0200
@@ -20,7 +20,7 @@
%bcond_with gendoxygen
Name: kdelibs4
-Version: 4.12.97
+Version: 4.13.0
Release: 0
BuildRequires: OpenEXR-devel
BuildRequires: automoc4
@@ -172,6 +172,8 @@
%install
%kde4_makeinstall -C build
chmod +x %{buildroot}%{_kde4_appsdir}/kconf_update/ksslcertificatemanager.upd.sh
+ # these unmaintained certs are probably unused anyway, remove them to be sure
+ rm -f %{buildroot}%{_kde4_appsdir}/kssl/ca-bundle.crt
pushd build
%create_subdir_filelist -d kdecore -v kdecore.devel
%create_subdir_filelist -d kpty -f kdecore -v kdecore.devel
++++++ kdelibs-4.12.97.tar.xz -> kdelibs-4.13.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/kdelibs4/kdelibs-4.12.97.tar.xz /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs-4.13.0.tar.xz differ: char 27, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0