FedFsUtilsFedoraPackage
From Linux NFS
Chucklever (Talk | contribs) (Created page with " Set up Start here: https://admin.fedoraproject.org/updates See also: https://fedoraproject.org/wiki/ReleaseEngineering/Overview https://fedoraproject.org/wiki/Join_th...") |
Chucklever (Talk | contribs) (→Updating an existing package) |
||
(8 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
+ | == Project: fedfs-utils == | ||
+ | [ | ||
+ | [[FedFsUtilsProject|Project Home]] | | ||
+ | [[FedFsUtilsNews|News]] | | ||
+ | [[FedFsUtilsDownloads|Downloads]] | | ||
+ | [[FedFsUtilsDocs|Docs]] | | ||
+ | [[FedFsUtilsMailingLists|Mailing Lists]] | | ||
+ | [[FedFsUtilsSourceControl|Source Control]] | | ||
+ | [[FedFsUtilsIssues|Issues]] | ||
+ | ] | ||
+ | ---- | ||
- | Set up | + | == Fedora packaging recipes == |
+ | |||
+ | ==== Set up ==== | ||
Start here: | Start here: | ||
Line 32: | Line 45: | ||
$ sudo mv /tmp/mock.cfg /etc/mock/fedora-20-x86_64.cfg | $ sudo mv /tmp/mock.cfg /etc/mock/fedora-20-x86_64.cfg | ||
- | Start up ssh agent. | + | Start up ssh agent. If id_rsa is password-protected, enter the appropriate password. |
$ ssh-agent bash | $ ssh-agent bash | ||
$ ssh-add ~/.ssh/fedora/id_rsa | $ 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 | $ fedora-cert -n | ||
- | Creates a local ~/.fedora and ~/.fedora.cert | + | 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: | ||
- | Updating an existing package | + | $ 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: | Looks like we are following this process: | ||
Line 58: | Line 78: | ||
$ fedpkg new-sources ~/src/fedfs/fedfs-releases/fedfs-utils-0.9.1.tar.gz | $ fedpkg new-sources ~/src/fedfs/fedfs-releases/fedfs-utils-0.9.1.tar.gz | ||
- | Update the .spec file Version: and Release: tags. | + | Update the .spec file Version: and Release: tags. When updating a non-master branch, heed the instructions [http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Minor_release_bumps_for_old_branches here] when updating the Release: tag. |
Try out the changes with one or all of these: | Try out the changes with one or all of these: | ||
Line 81: | Line 101: | ||
http://koji.fedoraproject.org/koji/ | http://koji.fedoraproject.org/koji/ | ||
- | When are these changes available in rawhide so they can be tested? | + | ''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. | When you are happy with the changes and the build is working, switch to appropriate stable branches and apply your change there. | ||
Line 98: | Line 118: | ||
$ fedpkg build | $ fedpkg build | ||
- | + | If this is rawhide, you are done. Note that branches that are still in alpha may also behave like rawhide in that no fedpkg update step is required (the branch isn't using bodhi yet). Check bodhi to see if the branch is listed. | |
- | + | For branches controlled by bodhi, notify bodhi of the update to get the change into the stable release branches. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process. | |
- | + | $ 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. | 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. | ||
Line 112: | Line 132: | ||
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. | 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 | + | ==== Setting up a system for Extra Packages for Enterprise Linux (EPEL) package building and testing ==== |
External references: | External references: |
Latest revision as of 16:50, 17 July 2014
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. If id_rsa is password-protected, enter the appropriate 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. When updating a non-master branch, heed the instructions here when updating the Release: tag.
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. Note that branches that are still in alpha may also behave like rawhide in that no fedpkg update step is required (the branch isn't using bodhi yet). Check bodhi to see if the branch is listed.
For branches controlled by bodhi, notify bodhi of the update to get the change into the stable release branches. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.
$ 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