1*7304104dSAndroid Build Coastguard WorkerThe project home is http://elfutils.org/ 2*7304104dSAndroid Build Coastguard Worker 3*7304104dSAndroid Build Coastguard WorkerThe current elfutils source code can be checked out with 4*7304104dSAndroid Build Coastguard Workergit clone git://sourceware.org/git/elfutils.git 5*7304104dSAndroid Build Coastguard Worker 6*7304104dSAndroid Build Coastguard WorkerThe developer mailinglist to send patches to is 7*7304104dSAndroid Build Coastguard Worker[email protected]. 8*7304104dSAndroid Build Coastguard Workerhttps://sourceware.org/ml/elfutils-devel/ 9*7304104dSAndroid Build Coastguard Worker 10*7304104dSAndroid Build Coastguard WorkerTo subscribe send an email to [email protected] 11*7304104dSAndroid Build Coastguard WorkerOr use the form at https://sourceware.org/mailman/listinfo/elfutils-devel 12*7304104dSAndroid Build Coastguard Worker 13*7304104dSAndroid Build Coastguard WorkerPlease supply patches using git format-patch or using git send-email. 14*7304104dSAndroid Build Coastguard Worker 15*7304104dSAndroid Build Coastguard WorkerSign your work 16*7304104dSAndroid Build Coastguard Worker 17*7304104dSAndroid Build Coastguard WorkerTo facilitate tracking of who did what, we've adopted a "sign-off" 18*7304104dSAndroid Build Coastguard Workerprocedure for patches based on the procedure used by the Linux kernel 19*7304104dSAndroid Build Coastguard Workerproject. 20*7304104dSAndroid Build Coastguard Worker 21*7304104dSAndroid Build Coastguard WorkerThe sign-off is a simple line at the end of the explanation for the 22*7304104dSAndroid Build Coastguard Workerpatch, which certifies that you wrote it or otherwise have the right 23*7304104dSAndroid Build Coastguard Workerto pass it on as a patch under an appropriate license. The rules are 24*7304104dSAndroid Build Coastguard Workerpretty simple: if you can certify the below: 25*7304104dSAndroid Build Coastguard Worker 26*7304104dSAndroid Build Coastguard Worker Developer's Certificate of Origin 27*7304104dSAndroid Build Coastguard Worker 28*7304104dSAndroid Build Coastguard Worker By making a contribution to this project, I certify that: 29*7304104dSAndroid Build Coastguard Worker 30*7304104dSAndroid Build Coastguard Worker (a) The contribution was created in whole or in part by me, 31*7304104dSAndroid Build Coastguard Worker and I have the right to submit the contribution under each 32*7304104dSAndroid Build Coastguard Worker license indicated in, or otherwise designated as being 33*7304104dSAndroid Build Coastguard Worker applicable to, the file. 34*7304104dSAndroid Build Coastguard Worker 35*7304104dSAndroid Build Coastguard Worker (b) The contribution was provided directly to me by some other 36*7304104dSAndroid Build Coastguard Worker person who certified (a), and I have not modified it. 37*7304104dSAndroid Build Coastguard Worker 38*7304104dSAndroid Build Coastguard Worker (c) I understand and agree that the project and the 39*7304104dSAndroid Build Coastguard Worker contribution are public and that a record of the 40*7304104dSAndroid Build Coastguard Worker contribution (including all personal information I submit 41*7304104dSAndroid Build Coastguard Worker with it, including my sign-off) is maintained indefinitely 42*7304104dSAndroid Build Coastguard Worker and may be redistributed. 43*7304104dSAndroid Build Coastguard Worker 44*7304104dSAndroid Build Coastguard Workerthen you just add a line saying 45*7304104dSAndroid Build Coastguard Worker 46*7304104dSAndroid Build Coastguard WorkerSigned-off-by: Random J Developer <[email protected]> 47*7304104dSAndroid Build Coastguard Worker 48*7304104dSAndroid Build Coastguard Workerusing a known identity (sorry, no anonymous contributions.) 49*7304104dSAndroid Build Coastguard WorkerThe name you use as your identity should not be an anonymous id 50*7304104dSAndroid Build Coastguard Workeror false name that misrepresents who you are. 51*7304104dSAndroid Build Coastguard Worker 52*7304104dSAndroid Build Coastguard Workergit commit --signoff will add such a Signed-off-by line at the end of 53*7304104dSAndroid Build Coastguard Workerthe commit log message for you. 54*7304104dSAndroid Build Coastguard Worker 55*7304104dSAndroid Build Coastguard WorkerThe ideal patch contains a ChangeLog entry for the commit message and 56*7304104dSAndroid Build Coastguard Workera test case for the bug fixed or feature added. 57*7304104dSAndroid Build Coastguard Worker 58*7304104dSAndroid Build Coastguard WorkerThe commit message is expected to start with a one line summary of 59*7304104dSAndroid Build Coastguard Workerwhat the patch does, prefixed with the main subdir the patch applies 60*7304104dSAndroid Build Coastguard Workerto. e.g libelf: Rewind the elf_frob function bar definitions. 61*7304104dSAndroid Build Coastguard Worker 62*7304104dSAndroid Build Coastguard WorkerFinally please include an ChangeLog entry explicitly listing the files 63*7304104dSAndroid Build Coastguard Workerand what changed in each of them in the commit message. This will help 64*7304104dSAndroid Build Coastguard Workera reviewer understand which changes are expected (and which might be 65*7304104dSAndroid Build Coastguard Workeraccidential). Try to follow the GNU Change Log style: 66*7304104dSAndroid Build Coastguard Workerhttps://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html 67*7304104dSAndroid Build Coastguard WorkerNote that elfutils previously maintained separate ChangeLog 68*7304104dSAndroid Build Coastguard Workerfiles. These are no longer used. All changes should be documented in 69*7304104dSAndroid Build Coastguard Workerthe git commit message. 70*7304104dSAndroid Build Coastguard Worker 71*7304104dSAndroid Build Coastguard WorkerThe testsuite (make check) is expected to have zero failing tests. 72*7304104dSAndroid Build Coastguard WorkerDo not knowingly add tests that FAIL. If there are architectures or 73*7304104dSAndroid Build Coastguard Workerconfigurations where a tests is not supported make sure they are 74*7304104dSAndroid Build Coastguard Workerskipped instead of failing. Adding "exit 77" in the test shell wrapper 75*7304104dSAndroid Build Coastguard Workerindicates that a test was SKIPPED. 76*7304104dSAndroid Build Coastguard Worker 77*7304104dSAndroid Build Coastguard WorkerWe do allow binaries in the testsuite for tests that only need to 78*7304104dSAndroid Build Coastguard Workerread ELF or DWARF data and if generating the data in the testcase 79*7304104dSAndroid Build Coastguard Workeritself is difficult or would be architecture specific. 80*7304104dSAndroid Build Coastguard WorkerThe binaries should be bzip2 compressed. Add a note in the test 81*7304104dSAndroid Build Coastguard Workerwrapper run-<testcase>.sh script how to regenerate the binary. 82*7304104dSAndroid Build Coastguard Worker 83*7304104dSAndroid Build Coastguard WorkerAfter sending your patch to the mailinglist one of the committers 84*7304104dSAndroid Build Coastguard Workerto the project will review it, give feedback, and if perfect they 85*7304104dSAndroid Build Coastguard Workerwill commit it for you. 86*7304104dSAndroid Build Coastguard Worker 87*7304104dSAndroid Build Coastguard WorkerAll patches sent to the mailing list are tracked at 88*7304104dSAndroid Build Coastguard Workerhttps://patchwork.sourceware.org/project/elfutils/list/ 89*7304104dSAndroid Build Coastguard Worker 90*7304104dSAndroid Build Coastguard WorkerTo use this from the command line you can use git-pw 91*7304104dSAndroid Build Coastguard Workerhttps://patchwork.readthedocs.io/projects/git-pw/en/latest/ 92*7304104dSAndroid Build Coastguard Worker 93*7304104dSAndroid Build Coastguard WorkerFor using it with git-pw use these .git/config settings: 94*7304104dSAndroid Build Coastguard Worker [pw] 95*7304104dSAndroid Build Coastguard Worker server = https://patchwork.sourceware.org/api/1.2/ 96*7304104dSAndroid Build Coastguard Worker project = elfutils 97*7304104dSAndroid Build Coastguard Worker token = <hex-token> 98*7304104dSAndroid Build Coastguard Worker states = committed,accepted,superseded,deferred,rejected,under-review 99*7304104dSAndroid Build Coastguard Worker 100*7304104dSAndroid Build Coastguard WorkerIf you would like to help maintain the pending patch list your 101*7304104dSAndroid Build Coastguard Workerpatchwork account can be added as maintainer for the elfutils project. 102*7304104dSAndroid Build Coastguard Worker 103*7304104dSAndroid Build Coastguard WorkerYou can become a maintainer/committer yourself after you have provided 104*7304104dSAndroid Build Coastguard Workerat least a handful of accepted patches and agree to the guidelines in 105*7304104dSAndroid Build Coastguard Workerthis document for creating, reviewing, accepting and committing patches. 106*7304104dSAndroid Build Coastguard Worker 107*7304104dSAndroid Build Coastguard WorkerTo become a committer you need a sourceware account: 108*7304104dSAndroid Build Coastguard Workerhttps://sourceware.org/cgi-bin/pdw/ps_form.cgi 109*7304104dSAndroid Build Coastguard WorkerUpload a SSH public key and have an existing maintainer sponsor you 110*7304104dSAndroid Build Coastguard Workerfor the elfutils group. 111*7304104dSAndroid Build Coastguard Worker 112*7304104dSAndroid Build Coastguard Workercommitters can push patches through: 113*7304104dSAndroid Build Coastguard Workerssh://<user>@sourceware.org/git/elfutils.git 114*7304104dSAndroid Build Coastguard Worker 115*7304104dSAndroid Build Coastguard WorkerThe current webpages published at https://sourceware.org/elfutils/ 116*7304104dSAndroid Build Coastguard Workercan be checked out with: 117*7304104dSAndroid Build Coastguard Workergit clone ssh://<user>@sourceware.org/git/elfutils-htdocs.git 118*7304104dSAndroid Build Coastguard WorkerPatches should also be posted to the mailinglist. 119*7304104dSAndroid Build Coastguard Worker 120*7304104dSAndroid Build Coastguard WorkerAs a maintainer/committer you should still post patches as described 121*7304104dSAndroid Build Coastguard Workerabove. And ideally they are reviewed and approved as above. If no 122*7304104dSAndroid Build Coastguard Workerother committer has reviewed or objected to your patch for a week 123*7304104dSAndroid Build Coastguard Workeryou may use your own judgement whether you ping your patch or push 124*7304104dSAndroid Build Coastguard Workerit after "self-review". If you do, you should post a message to the 125*7304104dSAndroid Build Coastguard Workermailinglist that the patch has been pushed. 126*7304104dSAndroid Build Coastguard Worker 127*7304104dSAndroid Build Coastguard Workercommitters may also create git branches starting with <nickname>/... 128*7304104dSAndroid Build Coastguard Workerpatches on these branches are works in progress, so might not be perfect 129*7304104dSAndroid Build Coastguard Workeryet, but should follow the above guidelines as much as possible and should 130*7304104dSAndroid Build Coastguard Workerbe aimed at integration into main. For merging a branch into main 131*7304104dSAndroid Build Coastguard Workerthe same process as above should be followed by posting the patches 132*7304104dSAndroid Build Coastguard Workerto the list first. 133*7304104dSAndroid Build Coastguard Worker 134*7304104dSAndroid Build Coastguard WorkerNote that a branch starting with <nickname>/try... will be picked up 135*7304104dSAndroid Build Coastguard Workerby the Sourceware buildbot and can be used to test your patches before 136*7304104dSAndroid Build Coastguard Workermerging into the main branch: 137*7304104dSAndroid Build Coastguard Workerhttps://builder.sourceware.org/buildbot/#/builders?tags=elfutils-try 138*7304104dSAndroid Build Coastguard Worker 139*7304104dSAndroid Build Coastguard Workercommitters/maintainers who repeatedly ignore the above guidelines, 140*7304104dSAndroid Build Coastguard Workerare hostile or offensive towards other committers or contributors, 141*7304104dSAndroid Build Coastguard Workerand don't correct their behavior after being asked by other committers 142*7304104dSAndroid Build Coastguard Workerwill be removed as maintainer/committer. 143