Line 32: | Line 32: | ||
(Contributions are welcome.) | (Contributions are welcome.) | ||
Packages: | |||
See [https://admin.fedoraproject.org/pkgdb/packager/pavlix/ Fedora Package Database]. | See [https://admin.fedoraproject.org/pkgdb/packager/pavlix/ Fedora Package Database]. |
Revision as of 17:11, 24 October 2016
Mail: psimerda AT redhat DOT com, pavlix AT pavlix DOT net
Jabber: pavlix AT pavlix DOT net
IRC Freenode: pavlix (#nm, #gentoo, ...)
Phone: +420 775 996 256
Timezone: Europe/Prague (CET), sometimes available through later hours
About
After learning a bit of programming, I was attracted by the networking world. I got from petty Pascal/C++ projects through web development using PHP and later Python, to years of freelancing work with most of the projects in server administration, network equipment configuration and a bit of programming. I was active in the community, wrote articles and spoke at conferences which finally led to my joining Red Hat in May 2012 to work on NetworkManager. I was already a Fedora user and package maintainer at that time. Since August 2013 I'm working on various network related packages and projects.
Projects
Fedora projects:
- User space networking test suite (owner)
- Non-blocking network name resolution library and tools (owner)
- Gentoo ebuilds for Fedora development (owner)
- DNSSEC in Fedora (contributor)
- IPv6 and dual-stack networking (contributor)
- NetworkManager development (contributor, former developer
Fedora wiki documentation:
- Networking – A starting point for information related to networking.
- Tools/NetworkManager – NetworkManager information page.
- QA/Networking – Dual-stack networking issues in Fedora.
(Contributions are welcome.)
Packages:
Features
Ideas
- Networking/Ideas/ServiceOrdering
- Networking/Ideas/NameResolution
- Networking/Ideas/NetworkManagerMethods
- Networking/Ideas/NetworkManagerRuntimeConfiguration
- Networking/Ideas/ConfigurationService
- Networking/Ideas/AutomaticConfiguration
- Networking/Ideas/NetworkNameResolution
- Networking/Ideas/NetworkManagerBugReporting
- Networking/Ideas/NetworkManagerOnServers
Fedora notes
Simple maintainance tasks
Make a fix and a build
bug=123456 message="do something" # ... add/modify files ... rpmdev-bumpspec *.spec -c "Resolves: #$bug - $message" fedpkg commit -c # ... check using gitk ... fedpkg push && fedpkg build
Make a scratch build from locally generated SRPM
fedpkg build --scratch --srpm
Bump a rawhide package to a newer version
In the package git directory:
version=... # Prepare a commit fedpkg switch-branch master rpmdev-bumpspec --new="$version" --comment="new version $version" *.spec spectool -g *.spec && fedpkg new-sources `spectool -l *.spec | grep / | sed 's/.*\///'` fedpkg commit -c # Test it fedpkg build --scratch --srpm # Create a public build fedpkg push && fedpkg build
Requires development version, see:
Prepare rawhide to replace branches
Warning: This method discards changes in all branches and should only be used after all of the important changes are incorporated into master. Also, it is only suitable for packages where it's practical to maintain the same version in branches as in rawhide.
branches="f20 f19" # Fake-merge all branches into master: for branch in $branches; do fedpkg switch-branch master git merge -s ours $branch done # Build a new release rpmdev-bumpspec fedpkg commit -c fedpkg push fedpkg build
Update branches to match rawhide and build them
Use the above technique to prepare rawhide if branches can't be fast forwarded to rawhide.
branches="f21 f20" # Fast-forward all branches to master HEAD: for branch in $branches; do fedpkg switch-branch $branch git merge --ff-only master fedpkg push fedpkg build --nowait done # Switch back to master fedpkg switch-branch master
Issue updates
branches="f21 f20" type=bugfix bugs= comment="Bug fix update." # Create updates for all branches for branch in $branches; do fedpkg switch-branch $branch bodhi --new --type="$type" --bugs="$bugs" --notes="$comment" --close-bugs `fedpkg verrel` done # Switch back to master fedpkg switch-branch master
Resources:
Patchwork
Using vim
Open three panes containing (1) patch to be edited, (2) patched file and (3) rejected hunks.
package=... version=... patch=... file=... vim -O $patch $package-$version/$file{,.rej}
Using git
Warning: Untested. I used a similar command but lost it.
package=... version=... dir=/path/to/upstream/workdir (echo cd $dir; for patch in `awk '/^Patch[0-9]*: / { print $2 }' *.spec`; do echo -n "git apply --index "; realpath $patch; echo git commit -m $patch; done) | sh
New package
Create a local Git repository
package=... editor=... git init $package cd $package $editor $package.spec git add $package.spec fedpkg new-sources `spectool -l *.spec | grep / | sed 's/.*\///'` rpmdev-bumpspec $package.spec -m 'initial build' fedpkg commit -c
Create a review request
rawhide=f22 fedpkg --dist $rawhide srpm fedora-create-review --no-scratch-build *.spec *.src.rpm
Update a review request
rawhide=f22 message="incorporated review feedback" rpmdev-bumpspec *.spec -m "$message" fedpkg commit -c fedpkg --dist $rawhide srpm fedora-create-review --amend --no-scratch-build *.spec *.src.rpm
Requires:
Review a new package
System configuration:
yum install @fedora-packager fedora-review ln -s /etc/mock/fedora-devel-x86_64.cfg /etc/mock/default.cfg mockuser=... usermod -a -G mock $mockuser
Review local files:
name=... fedora-review -n $name
Review bugzilla:
bz=... fedora-review -b $bz
Fedora tools on Gentoo
emerge -av layman echo source /var/lib/layman/make.conf > /etc/portage.make.conf layman -a ixit mkdir -p /etc/portage/sets cat > /etc/portage/sets/fedora-packaging <<EOF dev-util/fedora-packager dev-util/quilt EOF emerge -av @fedora-packaging