FedFsUtilsFedoraPackage
From Linux NFS
Chucklever (Talk | contribs) (→Set up) |
Chucklever (Talk | contribs) (→Set up) |
||
Line 56: | Line 56: | ||
Creates a local ~/.fedora and ~/.fedora.cert which can be copied to other systems. | Creates a local ~/.fedora and ~/.fedora.cert which can be copied to other systems. | ||
- | This certificate is valid for six months. | + | This certificate is valid for six months. If any part of the below process fails because your certificate is no longer valid, use: |
$ fedora-cert -v | $ fedora-cert -v |
Revision as of 19:23, 30 December 2013
Contents |
Project: fedfs-utils
[ Project Home | News | Downloads | Docs | Mailing Lists | Source Control | Issues ]
Fedora packaging recipes
Set up
Start here:
https://admin.fedoraproject.org/updates
See also:
https://fedoraproject.org/wiki/ReleaseEngineering/Overview
https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join
and
https://fedoraproject.org/wiki/Using_the_Koji_build_system
Install redhat-rpm-config and fedora-packager:
$ sudo yum install redhat-rpm-config fedora-packager fedora-review $ fedora-packager-setup
It asks for an "Export password." This is to protect the certificate before it is imported into a web browser. Web browser use is not required. Note that I will have to do this step every 6 months because the certificate generated by this step will expire.
Add your user ID to the local system's "mock" group.
# usermod -a -G mock cel
After a new branch is created, you may find you are missing a mock config file for a new Fedora release.
$ fedpkg mock-config > /tmp/mock.cfg $ sudo mv /tmp/mock.cfg /etc/mock/fedora-20-x86_64.cfg
Start up ssh agent. Use the local password.
$ ssh-agent bash $ ssh-add ~/.ssh/fedora/id_rsa
The very first time you need to set up a certificate. This cert will have to be copied to all systems you do any packaging work on. The cert expires every so often, and a new one will need to be generated.
$ fedora-cert -n
Creates a local ~/.fedora and ~/.fedora.cert which can be copied to other systems.
This certificate is valid for six months. If any part of the below process fails because your certificate is no longer valid, use:
$ fedora-cert -v
If the certificate has expired, fedora-cert will generate a fresh certificate. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.
Updating an existing package
Looks like we are following this process:
https://fedoraproject.org/wiki/Package_update_HOWTO
$ fedpkg clone fedfs-utils
If you already have a repository, make sure you start out on the master branch.
$ fedpkg switch-branch master
It turns out "wget" of a gitweb tarball just doesn't work. I always get an XML blob. Clicking on the link works as expected. So I used my local copy of the fedfs-releases repository instead.
$ fedpkg new-sources ~/src/fedfs/fedfs-releases/fedfs-utils-0.9.1.tar.gz
Update the .spec file Version: and Release: tags.
Try out the changes with one or all of these:
$ fedpkg mockbuild $ fedpkg local $ rpmlint fedfs-utils.spec $ fedpkg lint $ fedpkg install; fedpkg verify-files $ fedora-review fedfs-utils
Fix any problems, then commit and push. Copy the commit message from the change log in the .spec file.
$ fedpkg commit -p
Test the commit by recloning the package into /tmp and performing the mockbuild step again. If all is well, request a build:
$ fedpkg build
Check the package build status here:
http://koji.fedoraproject.org/koji/
When are these changes available in rawhide so they can be tested?
When you are happy with the changes and the build is working, switch to appropriate stable branches and apply your change there.
$ git show > /tmp/diff $ fedpkg switch-branch f19 $ patch -p1 -i /tmp/diff $ fedpkg diff $ fedpkg mockbuild $ fedpkg local $ fedpkg install; fedpkg verify-files
After all is well, commit and push, and then build. Copy the commit message from the change log in the .spec file.
$ fedpkg commit -p $ fedpkg build
If this is rawhide, you are done. For non-rawhide branches, you need to notify bodhi of the update to finish the review process and get the change into the stable release branches. Use the Fedora "mrchuck" password.
$ fedpkg update
After a week, if you haven't gained any negative karma, bodhi should let you log into the BUI and push the change to stable, which releases it to the download repositories after a day or two.
Click on the link in the e-mail. It should take you to a page under
https://admin.fedoraproject.org/updates
Be sure to log in (top of the column on the left). Once logged in, you should see a link on the upper right hand side of the page labeled "Mark as stable". Click there.
Setting up a system for Extra Packages for Enterprise Linux (EPEL) package building and testing
External references:
* http://fedoraproject.org/wiki/EPEL/FAQ * https://fedoraproject.org/wiki/EPEL * http://fedoraproject.org/wiki/Packaging:DistTag
* https://fedoraproject.org/wiki/Packaging:SysVInitScript
On Oracle Linux, set up the public yum repo.
# cd /etc/yum.repos.d # wget https://public-yum.oracle.com/public-yum-ol6.repo
# yum update
Next, install "epel-release" on your EL6 system so that you can install packages from the EPEL repository.
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Now, with epel-release installed, you can install redhat-rpm-config and fedora-packager.
# yum install redhat-rpm-config fedora-packager
Start up ssh-agent with the Fedora ssh key. Use the local password.
$ ssh-agent bash $ ssh-add ~/.ssh/fedora/id_rsa
Go into your local Fedora package directory, and bring down a fresh copy of the fedfs-utils package source.
$ fedpkg clone fedfs-utils
Switch to the EPEL branch.
$ fedpkg switch-branch el6
Make your changes and go to the mockbuild step above.
[ these instructions are incomplete ]
As a final step, a packaging review must be requested. See:
https://fedoraproject.org/wiki/Package_Review_Process#Contributor