Hello community, here is the log from the commit of package gpg-offline for openSUSE:Factory checked in at 2012-12-14 07:37:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gpg-offline (Old) and /work/SRC/openSUSE:Factory/.gpg-offline.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "gpg-offline", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/gpg-offline/gpg-offline.changes 2012-11-30 12:21:09.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.gpg-offline.new/gpg-offline.changes 2012-12-14 07:37:09.000000000 +0100 @@ -1,0 +2,5 @@ +Mon Dec 3 21:31:00 CET 2012 - sbrabec@suse.cz + +- PACKAGING.HOWTO improved. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gpg-offline.PACKAGING.HOWTO ++++++ --- /var/tmp/diff_new_pack.T1TwnY/_old 2012-12-14 07:37:11.000000000 +0100 +++ /var/tmp/diff_new_pack.T1TwnY/_new 2012-12-14 07:37:11.000000000 +0100 @@ -15,6 +15,9 @@ Package review Automatic check Build Service use + Use %if in spec file + Use aggregate package + Use prjconf trick @@ -23,8 +26,31 @@ GPG signature verification expects presence of signer in the web of trust. It is often not true for packaging upstream packages. So you have -to trust them using inferior methods, e. g. time continuity: Signature -downloaded a year ago uses the same signing key as the current one. +to trust them using inferior methods. + +The first time step is very security-sensitive: You define your package +keyring - a list of trusted keys, that can be used by the upstream to +sign the source of your package. Check carefully that you are not adding +a malicious keys there. + +Be paranoid! The %gpg_verify is able to detect hacked source on the +upstream servers (and such bad thing really already happened, see +http://scarybeastsecurity.blogspot.cz/2011/07/alert-vsftpd-download-backdoor... !), +but it is not able to detect maliciously uploaded false signature on the +key servers. + +If the upstream author is in your web of trust, you are on a safe side. +But if he/she is not in your web of trust, you have to use alternative +ways to trust the key: +- If you can mail to the author and verify the key, it is very probably + an authorized signature. +- If the signing key is the same as the one used a year ago, it is + probably an authorized signature. +- If the signing key was used in mailing list many times to sign + developer mails, or at least it was announced there, it is probably an + authorized signature. +- If you can find the public key or footprint on more servers on + different hostings, it is probably an authorized signature. Prepare if I have only a trusted signature @@ -81,6 +107,7 @@ ~/OSC/openSUSE:Factory/apache2> mv apache2.keyring.new apache2.keyring ~/OSC/openSUSE:Factory/apache2> + Common step: create spec file - - - - - - - - - - - - - - - @@ -126,7 +153,7 @@ Signing key was changed in upstream --------------------------------- +----------------------------------- If the signing key changed in upstream (new signature, expiration change etc., please use gpg-offline --refresh command. @@ -188,9 +215,64 @@ Build Service use ----------------- -If you need to build your package for older products and don't want to -mess spec file with %ifs, you can link or aggregate gpg-offline from -devel:tools:building or use following trick with "osc meta prjconf": +If you need to build your package for older products, you have three ways to do it: + +Use %if in spec file +- - - - - - - - - - + +The simplest straightforward way is the use conditional BuildRequires. + +Source1: http://{url_path_to_your_project}/%{name}-%{version}.tar.bz2.sig +Source2: %{name}.keyring +%if 0%{?suse_version} > 1220 +BuildRequires: gpg-offline +%endif + +And %prep section should perform the verification step if the macro is defined: + +%prep +%if 0%{?gpg_verify:1} +%gpg_verify %{S:1} +%endif +%setup -q + + +Use aggregate package +- - - - - - - - - - - + +Aggregate package + +osc aggregatepac devel:tools:building gpg-offline {my_project} + +It is recommended to disable publishing of this helpers, either in the +web interface, or by calling of: + +osc meta pkg {my_project} gpg-offline -e + +and adding publish disabling XML code: + ++ <publish> ++ <disable/> ++ </publish> + </package> + + +If you are using obscure build targets, you may want to use linkpac +instead of aggregatepac. In this case you need to disable the package +build by default and enabling it for all repositories older or equal to +12.2. You should disable publishing as above as well. + + +Use prjconf trick +- - - - - - - - - + +If you don't want to mess spec file with %ifs and don't want to link or +aggregate gpg-offline from devel:tools:building, you can use following +trick. Call following command: + +osc meta prjconf {my_project} -e + +And add to it following code: --- Cut here ---- %if 0%{?suse_version} <= 1220 -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org