Aurélien Bompard
Email: aurelien at bompard dot org
Jabber: abompard(a)jabber.fr
I'm rarely on IRC, but when I am it's on #fedora and #fedora-extras
GPG Key: 1B4259B3
Location: Paris, France (GMT+1, +2 during summer)
Profession: Sysadmin
Company: CS Communication & Systems
Homepage: http://aurelien.bompard.org (in french)
Mugshot page: http://mugshot.org/person?who=wgDR81qArkWRpJ
Participation in the Fedora Project
Packaging
I'm a packager for Fedora Extras. I maintain around 40 packages in Fedora Extras, of which the most famous are:
- amarok
- awstats
- glest
- gwenview
- psi
- pure-ftpd
- php-adodb
- showimg
- tiger
- ulogd
- xine-lib
QA
I also do as much QA as I can on the new submission request for Extras.
I know a little python and I've written a script to automate these QA checks. You can find it here : http://gauret.free.fr/fichiers/rpms/fedora/fedora-qa
The aim of this script is to test all the MUST items in PackageReviewGuidelines which are not covered by rpmlint.
This script requires python, mock, rpmlint and yum-utils. To use it, follow these steps:
- Create the rpm build directory structure, for example with fedora-buildrpmtree from the fedora-rpmdevtools package.
- cd to a temp dir (ex: ~/tmp) in a terminal.
- run fedora-qa <bugid> or fedora-qa <srpm>
- answer the questions, and a report will be printed. The report and additional files (like binaries, build log, etc...) can be found in the "~/reports/<rpm_name>" directory. The "~/reports" base dir can be configured in ~/.fedora-qa
The script is very likely to give false-positives, so don't take everything it says for granted. The idea is more to show you where to dig.
Here are the tests performed (in this order):
$ fedora-qa -l CheckName : ask the user if the name-version-release is correct CheckSpecDiff : diff the spec files in case of update CheckSources : check upstream sources: returns a list of lines for the report CheckPatches : checks the patches in the srpm CheckBRConsistency : Checks that only one of $RPM_BUILD_ROOT or %{buildroot} is used CheckBuildRoot : Checks that the BuildRoot is the Fedora-preferred one CheckDFU : Checks that the desktop-file-utils is required if desktop-file-install is used CheckBRExceptions : Checks that the package does not have excluded BuildRequires CheckEncoding : Checks that the spec file is in ASCII or UTF-8 CheckSpecName : Checks that the spec filename is %{name}.spec CheckSMPFlags : Checks that the smp flags are set for make CheckQTEnvVars : Checks that the QT environment variables are set CheckRelocatable : Checks that the package is not marked Relocatable CheckClean : Checks that the specfile contains a proper %%clean section CheckBRDuplicates : Checks that the package does not have duplicate BuildRequires CheckRPMMacros : Checks that paths are replaced with RPM macros CheckRequiresPrePost : Checks that the form "Requires(pre,post)" is not used CheckLatestVersion : Checks that the package uses the latest version CheckForbiddenTag : Checks that the package does not contain forbidden tags CheckDownloadableSource : checks if at least one of the source is an URL CheckCleanBRInInstall : Checks that the specfile cleans the BuildRoot in %install CheckFindLangGettext : Checks that gettext is Required if the %find_lang macro is used CheckNoarch : checks if the package is improperly built for noarch CheckMakeInstallMacro : Checks that the %makeinstall macro is not used CheckGhostPyo : checks if the *.pyo files are %%ghost'ed CheckSpec : Just read the spec file CheckDiffTemplate : Diff against the template for relevant packages CheckBuildMock : Builds the RPM with mock CheckRpmlint : unleashes rpmlint at the srpm and the binary rpm if the build is complete CheckFiles : checks files list and ownership CheckDesktopFile : checks the presence of a .desktop file if the package depends on xorg. CheckLicenseFile : checks the presence of a license file. CheckFileListedTwice : checks if a file has been listed multiple times in %%files CheckDefattr : checks if all the %%files sections contain %%defattr() instructions CheckLibtoolArchives : checks the presence of a .la libtool archives CheckDesktopFileProperties : checks if the desktop files are valid CheckScriptletsRequirements : Checks that the usual programs found in the scriptlets are Required CheckLangTag : checks that the translation files are tagged CheckDBUpdate : checks that the package updates the proper database in the scriptlets if it has corresponding files CheckOwnedDirs : checks that the package does not own standard dirs CheckConfigFiles : checks config files list and ownership CheckPkgconfig : checks if the package needs to Require pkgconfig CheckHicolor : checks if the package needs to Require hicolor-icon-theme CheckOptFlags : checks if the rpm honors the compiler flags
Help and Communication
I'm a Fedora Mentor , which means you should feel free to contact me if you think I can help you as regards to packaging or processes. I'm also a Fedora Ambassador for Paris and its surroundings in France. Feel free to contact me if you live in this area and you want information about Fedora. I'll try to attend as many Linux-related events as I can, see you there !