From Fedora Project Wiki

No edit summary
No edit summary
Line 11: Line 11:
1. Make sure that your clones of the upstream GNU Binutils is up to date, on the right branch and clean.  If there any problems or uncommitted changes, resolve them before continuing.
1. Make sure that your clones of the upstream GNU Binutils is up to date, on the right branch and clean.  If there any problems or uncommitted changes, resolve them before continuing.


    <pre>
     cd <upstream-binutils>
     cd <upstream-binutils>
     git switch HEAD
     git switch HEAD
     git pull
     git pull
     git status
     git status
    </pre>


  2. Delete any old release tarballs and then create a source tarball from the upstream sources:
2. Delete any old release tarballs and then create a source tarball from the upstream sources:


     <pre>
     <pre>
Line 23: Line 25:
     </pre>
     </pre>


  3. Go to your clone of the fedora binutils package and make sure that it is clean and up to date:
3. Go to your clone of the fedora binutils package and make sure that it is clean and up to date:


     <pre>
     <pre>
Line 32: Line 34:
     </pre>
     </pre>


  4. Delete the current source tarball and then copy in the source tarball created in step 2 into the fedora sources, replacing the version number with a commit id:  
4. Delete the current source tarball and then copy in the source tarball created in step 2 into the fedora sources, replacing the version number with a commit id:  


     <pre>
     <pre>
Line 39: Line 41:
     </pre>
     </pre>


  5. Edit the ''binutils.spec'' file and change the ''Source:'' field to reference the new tarball:
5. Edit the ''binutils.spec'' file and change the ''Source:'' field to reference the new tarball:


     <pre>
     <pre>
     sed -e "s/Source:.*/Source: `ls *.tar.z`/" binutils.spec > binutils.spec.new
     sed -e "s/Source:.*/Source: `ls *.tar.z`/" binutils.spec > binutils.spec.new
     </pre>
     </pre>

Revision as of 17:30, 20 February 2024

Rawhide synchronization for the GNU Binutils

  • THIS PAGE IS UNDER DEVELOPMENT AND SHOULD NOT BE CONSIDERED READY FOR USE*

This page documents the process by which the rawhide binutils package is synced with the upstream GNU Binutils project. The aim of this process is to make syncing simple and easy so that it can be performed on a regular basis. Due to the fact that the binutils is an important component in the toolchain used to build many of the packages in rawhide however, it is important to extensively test a new binutils before putting it into the buildroot. This does make the syncing process more time consuming and complicated.

This process is based upon a similar process for the GNU C Library (GlibcRawhideSync), but tweaked to fit the binutils package.

Follow these steps:

1. Make sure that your clones of the upstream GNU Binutils is up to date, on the right branch and clean. If there any problems or uncommitted changes, resolve them before continuing.

     cd <upstream-binutils>
     git switch HEAD
     git pull
     git status
     

2. Delete any old release tarballs and then create a source tarball from the upstream sources:

     rm -f *.xz
     ./src-release -x binutils
     

3. Go to your clone of the fedora binutils package and make sure that it is clean and up to date:

     cd <rawhide-binutils>
     git switch rawhide
     git pull
     git status
     

4. Delete the current source tarball and then copy in the source tarball created in step 2 into the fedora sources, replacing the version number with a commit id:

     rm -f *.tar.xz
     cp <upstream-binutils>/binutils*.tar.xz binutils-`git rev-parse HEAD`.tar.xz
     

5. Edit the binutils.spec file and change the Source: field to reference the new tarball:

     sed -e "s/Source:.*/Source: `ls *.tar.z`/" binutils.spec > binutils.spec.new