summaryrefslogtreecommitdiffstats
path: root/chromium/docs/website/site/chromium-os/developer-guide/upstreaming-drm-patches/index.md
blob: 2626c020be7ed235bb4d27a6d02390bae2a46155 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
breadcrumbs:
- - /chromium-os
  - Chromium OS
- - /chromium-os/developer-guide
  - Chromium OS Developer Guide
page_name: upstreaming-drm-patches
title: Upstreaming drm patches
---

## Pre-requisites

*   [Subscribe to dri-devel mailing
            list](https://lists.freedesktop.org/mailman/listinfo/dri-devel)
*   Setup git send-email to work with your email (@chromium, @android,
            @google) ([Check out the Examples
            section](https://www.kernel.org/pub/software/scm/git/docs/git-send-email.html))
    *   This requires the git-email package (sudo apt-get install
                git-email)

## Sending the patch

*   Add the upstream repo as a remote in your git tree
    *   For kernel patches, consult the MAINTAINERS file or
                scripts/get_maintainer.pl to find the remote git tree location
    *   For libdrm patches, the tree is located at
                git://anongit.freedesktop.org/mesa/drm

> > `; git remote add -f upstream <remote_addr>`
> > `; git fetch upstream`

*   Create a new branch which tracks upstream
    *   For kernel, the branch will depend on how the maintainer has
                setup their tree. Ask on IRC if you're unsure.
    *   For libdrm, use the master branch

> > `; git branch -t for_upstream upstream/<upstream_branch>`

*   Apply the patch to your for_upstream branch (resolving any
            conflicts) and test the patch still works
*   Generate a patch file for upstream, it will be saved as
            0001-&lt;my-commit-subject&gt;.patch
    *   For libdrm, add --subject-prefix 'PATCH libdrm' to the command
    *   If you have not added a Signed-off-by: line to your commit
                message, add --signoff to the command

> > `; git format-patch <optional parameters> HEAD^..`

*   Open the patch file and strip out all of the Google-specific kruft
            (Bug, Test, Change-Id, etc). Once again, ensure you have a
            Signed-off-by: line in the commit message
    *   If this is a v2/v3/vN patch, add vX to the subject after PATCH
                (ie: \[PATCH vX\] my commit subject)

*   Send the patch to the list
    *   For kernel patches:
        *   Run the patch through scripts/checkpatch.pl to ensure it
                    conforms with kernel style guide
        *   Run the patch through scripts/get_maintainer.pl to generate
                    a list of people/lists who should be cc'd
    *   Make sure you cc anyone who provided you with a downstream
                review, as well as people who can help with upstream review
                (seanpaul@, marcheu@, etc)
        *   Use the --cc argument to git send-email
    *   To reply to an email with a patch (ex: after code review), add
                the --in-reply-to=&lt;Message-Id&gt; argument. You can get
                &lt;Message-Id&gt; from mail headers
    *   If you want ONE MORE chance to ensure that everything is right
                for the patch, add the --annotate flag to send-email, it'll let
                you review the message before sending
    *   If this is a series of patches, add a cover letter to explain
                the series with the --cover-letter

> > `; git send-email --to=dri-devel@lists.freedesktop.org`