Evolving standards for unpacked sources

Peter Jones pjones at redhat.com
Wed May 30 13:33:06 UTC 2012


On 05/29/2012 05:58 PM, Richard W.M. Jones wrote:
> On Tue, May 29, 2012 at 09:57:46PM +0200, Hans Ulrich Niedermann wrote:
>> On 29/05/12 18:46, Richard W.M. Jones wrote:
>>
>>> Has anyone written any tools for converting git repos into patches?
>>> Currently I use 'git format-patch' and then I copy the patches.
>>>
>>> Should we have a naming convention for patches?  I proposed to use
>>> the 000*-*.patch files directly from git format-patch without
>>> renaming them.
>>
>>> How should we comment the spec files for packages maintained this way?
>>
>> For Fedora's "erlang" package, Peter Lemenkov and I have been doing
>> something similar. This is probably not suitable for large scale
>> emulation, but it more or less works for us.
>>
>> We both maintain a fork of upstream's Erlang/OTP git repository in our
>> respective github accounts. The RPMs are built from upstream's release
>> tarballs plus Fedora specific patch files. Whoever does the new Fedora
>> package, creates a fedora specific branch (re)based on that release's
>> git tag and commits the patches for the RPM to that branch (doing
>> cherry-pick, rebase, or whatever).
>>
>> The otp-get-patches.sh script extracts the commits on that fedora
>> specific branch as patch files, hooks those into the spec file and also
>> changes the git index to account for old patch files removed and new
>> ones added. Specific lines from the commit messages are copied into the
>> spec files as comments, and as RPM %if... conditionals.
>>
>> See the source in erlang.spec and otp-get-patches.sh for details.
>
> Thanks, I will have a look.
>
> Here is the change (simplification, really) I made to ocaml.spec:
>
> http://pkgs.fedoraproject.org/gitweb/?p=ocaml.git;a=commitdiff;h=a07112286bf310652eb2d719e64bf4936a045bc1

Just glancing at what you've got - have you considered something like:

diff --git a/ocaml.spec b/ocaml.spec
index bbf2669..2ab0ecc 100644
--- a/ocaml.spec
+++ b/ocaml.spec
@@ -233,9 +233,13 @@ man pages and info files.
  git init
  git config user.email "noone at example.com"
  git config user.name "no one"
+git config sendemail.to "%{name}-owner at fedoraproject.org"
  git add .
  git commit -a -q -m "%{version} baseline"
  git am %{patches}
+git config --unset user.email
+git config --unset user.name
+echo "Use 'git config user.email \"foo at example.com\" to set an address for patc

  cp %{SOURCE2} refman.pdf

as well? (Props for using "git am %{patches}" to avoid missing %patchXX
statements)

-- 
         Peter

The Shuttle is now going five times the sound of speed.
		-- Dan Rather, first landing of Columbia


More information about the devel mailing list