From Fedora Project Wiki

Revision as of 18:46, 15 September 2009 by Toshio (talk | contribs) (prebuilt-binaries done)


Action Items

Status should be one of:

  • ratify -- Change needs be presented to FESCo for objections.
  • followup -- There are questions or concerns that need to be addressed.
  • writeup -- Change needs to be written into the official guidelines.
  • announce -- Change has been written up, but needs to be announced.
Status Task Name Owner Meeting Date Notes
writeup Use the better source mether 2009-09-09 Draft available at https://fedoraproject.org/wiki/PackagingDrafts/Use_Better_Source
writeup Fortran Jussi Lehtola 2009-08-19 PackagingDrafts/Fortran
writeup MPI packaging Jussi Lehtola 2009-08-12 PackagingDrafts/MPI
writeup Environment modules Jussi Lehtola 2009-08-12 PackagingDrafts/EnvironmentModules
writeup Correct ant sample spec Jussi Lehtola 2009-08-12 PackagingDrafts/JavaAntSampleSpec
writeup Update R guidelines pingou 2009-08-12 ProposalUpdateRGuidelines
writeup Drop Scrollkeeper Scriptlets spot 2009-08-12 PackagingDrafts/DropScrollkeeperUpdate
writeup Numpy and pygtk2 spot 2009-08-12 PackagingDrafts/PythonNumpy
writeup dos2unix atorkhov 2009-07-28 PackagingDrafts/Dos2unix
writeup Filtering auto-provides cweyl 2009-07-28 PackagingDrafts/AutoProvidesAndRequiresFiltering
announce Explanation of no bundled libraries abadger1999 2009-07-28 No_Bundled_Libraries
announce pre-built binaries oget 2009-07-28 PackagingDrafts/Removal_of_pre-built_binaries
announce Phase out Buildroot abadger1999 2009-06-02 https://fedoraproject.org/wiki/Phase_out_buildroot_tag_%28draft%29
announce Common Package Names abadger1999 2009-04-14 Common package names packaging guideline draft
writeup Using Alternatives rathann 2009-04-14 PackagingDrafts/UsingAlternatives
announce WordPress plugins Ian Weller 2009-04-14 User:Ianweller/WordPress plugin packaging guidelines (draft)
writeup GConf scriptlets abadger1999 2009-05-12 GConf Scriptlets (draft) Improve GConf scriplet handling.
announce Globus ellert 2009-05-12 PackagingDrafts/Globus Draft packaging guidelines for packages from the Globus Toolkit.

Things to be considered for Packaging Guidelines

Has a Driver
Task Name Owner Target Date Notes
Java User:Akurtakov Discuss (under construction)
JavaScript abadger1999 Discuss JavaScript libraries packaging guideline draft Libraries Packaged. See discussion page for Unresolved Issues
Type Specific Guidelines abadger1999 Discuss User:Toshio/Type_Specific_Guidelines Talking with docs about this idea. Will send mail to packaging-list for input when we have something firmer.
OSGi Packaging Guidelines alcapcom Discuss PackagingDrafts/OSGiGuidelines contains needed modifications and different way to implementing stuff that need to be discussed before writing 'real' guidelines.
Common voice data framework dchen Discuss PackagingDrafts/CommonVoiceData
CMPI Plugin Guideline Matt Domsch Discuss PackagingDrafts/CMPIPlugins
Static Library PICness User:Ajax Next Meeting User:Ajax/Static_Library_PICness_Guidelines
Mark VCS in spec files walters Next Meeting User:Walters/Packaging_VCS_key_proposal
Use %{_isa} to make hardcoded Requires Arch Specific spot Next Meeting PackagingDrafts/ArchSpecificRequires
Perl Packaging Guidelines User:mmaslano Discuss PackagingDraft:Perl
Lua Packaging Guideline User:Salimma Discuss PackagingDrafts/Lua
Container Maintainer Guidelines maxamillion Discuss PackagingDrafts/Containers


Queued but Unowned
Task Name Owner Target Date Notes
libexecdir in FHS nobody started, first feedback from FHS' editors, ongoing Get involved in FHS discussions to resurrect libexec in the FHS: Mail thread Is this link correct?
issue moved up to FHS' bugzilla: Bug #101
Python virtual Provides nobody Later Python virtual provides draft Panu has been looking at this as part of rpm itself.
CFlags Prohibition nobody unknown Don't manually set CFLAGS in the spec, %configure should do it for you.
Patch Best Practice nobody unknown Remember that "Patch" is the same as "Patch0". You should consider using Patch0 for the first patch, since it removes any possible confusion as to which patch you're using. This is not required.
Files Generated by Scriptlets nobody unknown Policy on cleaning up things introduced in %post (and not creating files in %post.)
aclocal nobody unknown Should packages that place files under /usr/share/aclocal be required to have a Require: /usr/share/aclocal?
rpmbuild --with/--without nobody unknown Encourage using rpmbuild --with/--without for conditionally build parts of a spec. Discourage using --define 'with/without_xxx 1' and similar custom magic.
scons guidelines nobody unknown In the announcement thread for the cmake guidelines, it was suggested that scons guidelines in the same vein would be useful.
autoconf/automake usage nobody unknown Policy on using autoconf/automake in %setup or %build sections of a spec file and usage of older autoconf/automake releases. PackagingDrafts/AutoConf
Autogenerated doc package size guidelines nobody unknown Autogenerated documentation must be a reasonable size. This varies from package to package, but, as a rule of thumb, the compressed size of the documentation should be no larger than the source rpm.


Tabled (On indefinite hold)
Task Name Owner Target Date Notes
arch specific script packages f13 unknown Packages containing scripts that require programs or features which are not available on all platforms should not be noarch. Example: system-config-boot which requires grub
iconcache RexDieter tabled update icon (cache) handling / policy, PackagingDrafts/ScriptletSnippets/iconcache

Resolved items

Task Name Owner Resolution Date Notes
Drop special provision for when Red Hat is upstream mether 2009-08-20 https://fedoraproject.org/wiki/No_more_exception_where_we_are_upstream%28draft%29 FESCo decided to drop this requirement.
Guidelines for Pre-Review abadger1999 2009-05-12 Pre-review Guidelines (draft) Approved by FPC, given to FESCo, not put into guidelines because it is a one-off.
Embedded Desktop Files spot 2009-04-14 PackagingDrafts/EmbeddedDesktopFiles
Explicit Requires spot 2009-04-14 PackagingDrafts/ExplicitRequires
Symlinks spot 2009-04-14 PackagingDrafts/Symlinks
global preferred over define abadger1999 2009-04-14 PackagingDrafts/global_preferred_over_define
Use of Epoch tag spot 2009-04-14 PackagingDrafts/Epoch
Duplicate Files update User:Toshio 2009-04-14 PackagingDrafts/Duplicate Files
Source URL Update abadger1999 2009-04-14 Troublesome source URL packaging guideline draft. Section on dealing with URLs that can't go into the Source: line.
Documentation Naming spot 2009-04-14 PackagingDrafts/DocumentationNaming
Updated Haskell Guidelines spot 2009-04-14 PackagingDrafts/Haskell
PHP channel User:Remi 2009-04-14 PackagingDrafts/PHP
Icon Cache update User:Toshio 2009-02-17 PackagingDrafts/Icon_Cache
FontSpecTemplate outside of Packaging abadger1999 2009-03-02 Packaging:FontsSpecTemplate redirected to a page outside of Packaging. The redirect was dropped.
Update Desktop File Install Usage to Drop Vendor spot 2009-01-20 TomCallaway/DesktopFileVendor
Font Packaging Naming Guidelines Nicolas Mailhot 2009-01-20 PackagingDrafts/Font_package_naming_(2009-01-13)
Font package splitting rules (guidelines change) Nicolas Mailhot 2009-01-20 PackagingDrafts/Font package splitting rules (2008-12-21)
Make adherence to the FHS a MUST, with the added exception of /usr/<target> for cross toolchains. spot 2008-01-20 https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00074.html "with exceptions for libexecdir (specified in the GNU Coding Standards) and /usr/target for crosscompilers"
Updates to the Eclipse plugin guidelines overholt 2009-01-20 Was previously discussed here. Only difference from that diff is the addition of Fedora 9 notes as requested here. http://overholt.fedorapeople.org/EclipsePlugins.diff
RubyGem with C code mtasaka 2009-01-20 PackagingDrafts/RubyGem with C code
Font packaging automation Nicolas Mailhot 2008-01-20 PackagingDrafts/Fonts_packaging_automation Refactoring of Fedora fonts packaging guidelines and template
MinGW RichardJones 2008-11-18 PackagingDrafts/MinGW - As of 2008-09-22 these are in a good state for discussion.
Unowned Directories abadger1999 2008-10-30 PackagingDrafts/UnownedDirectories Clarification only
PatchUpstreamStatus walters 2008-09-16 PackagingDrafts/PatchUpstreamStatus
DesktopVerify caillon 2008-09-16 PackagingDrafts/DesktopVerify
Haskell spot 2008-09-16 Packaging/Haskell
Lisp spot 2008-09-16 Packaging/Lisp
Font Bundles spot 2008-09-16 TomCallaway/Packaging_Font_Bundles2
Avoid Font Bundling spot 2008-09-16 TomCallaway/No_bundling_of_fonts_in_other_packages2 (Fonts policy amendment)
Withdraw the JPackage Naming Exception spot 2008-05-20 ["Packaging/JPackagePolicy"]
Sugar Activities DennisGilmore 2008-04-22 ["Packaging/SugarActivityGuidelines"]
Update Static Lib Policies TomCallaway 2008-04-22 ["PackagingDrafts/StaticLibraryPolicy"]
No packages may own files or dirs in /srv spot 2008-04-08 ["PackagingDrafts/NoBitsInSrv"]
Build GCJ AOT bits conditionally LubomirKundrak 2008-04-08 ["PackagingDrafts/ConditionalGCJ"]
SysV-style initscript guidelines spot 2008-04-01 ["Packaging/SysVInitScript"]
Java package guidelines AndrewOverholt 2008-04-01 ["Packaging/Java"]
Eclipse plugin guidelines spot 2008-04-01 ["Packaging/EclipsePlugins"]
GCJGuidelines spot 2008-04-01 ["Packaging/GCJGuidelines"]
Tcl packaging guidelines MichaelThomas 2008-03-11 ["Packaging/Tcl"]
Updated OCaml packaging guidelines RichardJones 2008-03-11 ["PackagingDrafts/OCaml"]
ASCII Naming Guidelines spot 2008-03-25 ["PackagingDrafts/ASCIINaming"]
Perl Guidelines spot 2008-03-25 ["PackagingDrafts/Perl"]
Self:OpenOffice.org extensions guidelines CaolanMcNamara 2008-03-25 ["Packaging/OpenOffice.orgExtensions"]
Fonts SIG packaging policies NicolasMailhot 2007-11-20 general fonts packaging policy
Fonts SIG packaging policies NicolasMailhot 2007-11-20 fonts spec template (only general case for now can be extended later)
Python Eggs ToshioKuratomi 2007-09-18 Python modules need to be able to provide multiple versions. Eggs allow this. Work out how to modify the guidelines for eggs. ["PackagingDrafts/PythonEggs"]
R packaging Guidelines spot 2007-09-11 ["PackagingDrafts/R"]
Emacsen Packaging Guidelines and templates spot 2007-09-11 PackagingDrafts/EmacsenAddOns
PHP Guidelines spot 2007-09-11 PEAR Packages, PECL Packages, Macros and Scriplets: ["PackagingDrafts/PHP"]
Handling dynamic UID/GID in packages VilleSkyttä 2007-08-13 ["PackagingDrafts/UsersAndGroups"]
License Tag Guidelines spot 2007-07-31 ["PackagingDrafts/LicenseTag"]
writeup Relax Package Naming for Dual Versions ToshioKuratomi 2007-07-10 With multiple versions of a library it does not matter which of them is versioned and which versionless
Directory Ownership Improvement [wiki:Self:TomCallaway spot] 2007-06-26 PackagingDrafts/DirectoryOwnershipImprovement
Static Library Update ToshioKuratomi 2007-06-19
Scriptlet snippets fixes VilleSkyttä 2007-06-19 Scriptlet snippets fail safety fixes/clarifications
OCaml ToshioKuratomi 2007-06-12 Guidelines for libraries and programs written in OCaml
cmake RexDieter 2007-03-20 PackagingDrafts/cmake
Ruby gems [wiki:Self:DavidLutterkort lutter] 2007-05-01 Packaging of Ruby GEMS
Static Libraries ToshioKuratomi 2007-05-22 http://fedoraproject.org/wiki/PackagingDrafts/StaticLibraryChanges
Extra DistTag Conditional Macros [wiki:Self:TomCallaway spot] 2007-05-21 PackagingDrafts/ExtraDistTagConditionalMacros
PHP: Versioned BuildRequires in Macros Section [wiki:Self:TomCallaway spot] 2007-05-21 PackagingDrafts/PHP
PHP: PECL Extensions [wiki:Self:TomCallaway spot] 2007-05-21 PackagingDrafts/PHP
Conflicts [wiki:Self:TomCallaway spot] 2007-05-07 PackagingDrafts/Conflicts
extras-list references tibbs 2007-04-13 PackagingDrafts/FixMailingListRefs
Responsibilities ToshioKuratomi 2007-04-10 http://fedoraproject.org/wiki/PackagingDrafts/OverallReviewGoals
UTF8 Filenames ToshioKuratomi 2007-03-27 PackagingDrafts/Utf8Filenames
Post Release Packages [wiki:Self:TomCallaway spot] 2007-03-27 PackagingDrafts/PostRelease
Firmware Guidelines [wiki:Self:TomCallaway spot] 2007-03-06 https://www.redhat.com/archives/fedora-packaging/2007-February/msg00292.html
PackagingDrafts/BuildRootHandling [wiki:Self:TomCallaway spot] 2007-03-13 Require that BuildRoot be deleted immediately at the beginning of %install
Static linkage RalfCorsepius 2006-10-31 Static linkage should be "strongly discouraged" [1]
PackagingDrafts/SciptletsWriteDirs AxelThimm 2007-03-13 Only allow writing in %buildroot during %install
Init scripts JesseKeating 2007-02-27 PackagingDrafts/InitScripts
Disallow %config files in /usr AxelThimm 2007-03-06 PackagingDrafts/UsrConfigs
Buildroot AxelThimm 2007-02-27 PackagingDrafts/BuildRoot
package builds allowed to write in certain filesystem areas AxelThimm 2006-10-12 Build scripts of packages (%prep, %build, %install and %check) may only alter files (create, modify, delete) under %{buildroot}, %{_builddir} and valid temporary locations like /tmp, /var/tmp (or $TMPDIR or %{_tmppath} as set by the rpmbuild process). Further clarification: That should hold true irrespective of the builder's uid
Source URL Requirement abadger1999 2007-02-20 http://www.fedoraproject.org/wiki/PackagingDrafts/SourceUrl
File dependencies ToshioKuratomi 2007-02-20 Limit file deps to certain directories.
http://www.fedoraproject.org/wiki/PackagingDrafts/FileDeps
spec file naming clarification abadger1999 2007-02-13 PackagingDrafts/SpecFileNaming
jpackage naming [wiki:Self:TomCallaway spot] 2007-02-13 Packaging/JPackagePolicy
.desktop files RexDieter 2007-01-30 PackagingDrafts/DesktopFiles
non-pear PHP extension paths [wiki:Self:TomCallaway spot] 2007-01-30 Non-pear PHP extensions should put their Class files in /usr/share/php
MakeInstall Clarification [wiki:Self:TomCallaway spot] 2007-01-30 Clarify %makeinstall section, on why it should not be used [wiki:Self:PackagingDrafts/MakeInstall PackagingDrafts/MakeInstall]
BuildRoot is mandatory [wiki:Self:TomCallaway spot] 2007-01-30 Suggested buildroot is now mandatory
All binaries must be built from source [wiki:Self:TomCallaway spot] 2007-01-30 See: [wiki:Self:PackagingDrafts/SourceRequirement PackagingDrafts/SourceRequirement]
BuildRequires Clarification [wiki:Self:TomCallaway spot] 2007-01-30 Clarify BuildRequires tools, see [wiki:Self:PackagingDrafts/BuildRequires PackagingDrafts/BuildRequires]
Debuginfo packages VilleSkyttä 2007-02-09 Add pointer to [wiki:Self:Packaging/Debuginfo sanity checking of debuginfo packages] to guidelines, require explanation in specfile if disabled .
Requires vs PreReq [wiki:Self:TomCallaway spot] 2006-10-31 Use "Requires" not "PreReq". rpm.org explanation
Provides/obsoletes clarifications VilleSkyttä 2007-01-22 Naming guidelines improvements on Provides/Obsoletes use when renaming/replacing packages.
Failsafe scriptlets VilleSkyttä 2006-12-14 Make : (or other scriptlet failure preventation measures) more prominent in ["Packaging/ScriptletSnippets"]
Directory ownership JasonTibbitts 2006-11-07 "Packages must not own files or directories already owned by other packages that they depend on. Exceptions to this rule are: perl...." Add specific wording on when and how Perl packages are excluded from this.
Translations RexDieter 2006-10-31 If the package has any translations, add BuildRequires: gettext. If you don't, your package could fail to generate translation files in the buildroot.
bumping release num after the dist tag spot 2006-10-16 Added to Packaging/NamingGuidelines
GConf configure flag abadger1999 2006-10-12 Update the ScriptletSnippet for alternate GConf disabling "GConf schema installation can be prevented at build time by using GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL.... alternatively, %configure --disable-schemas works for some packages."
Ruby library provides DavidLutterkort 2006-10-12 Current ruby packaging guidelines say that ruby library packages must provide 'ruby(LIBRARY)'; this should be changed to include a version, i.e. 'ruby(LIBRARY) = VERSION' where VERSION is the upstream version of the library as long as upstream follows a reasonable versioning process (which most ruby projects do)
desktop-file-install --vendor RexDieter 2006-10-05 clarify --vendor=... usage. proposal: PackagingDrafts/DesktopFiles
pkgconfig RexDieter 2006-09-14 PackagingDrafts/pkgconfig
libexecdir (completed) abadger1999 2006-06-29 The packaging guidelines follow the FHS. An exception should be made for %{_libexecdir} which is useful for binaries intended for running by other programs. This is especially true on multilib systems. Packaging list discussion . (Note by Axel: Maybe get involved in FHS discussions to resurrect libexec in the FHS?)
mono abadger1999 2006-06-29 The current ["Packaging/Mono"] Guidelines contain misinformation and poor practices. We need to separate the good practices from the ones that were done because an upstream package made it convenient. There have been several mailing list discussions: 1 2 3 My (hopefully accurate) summary
ruby lutter 2006-06-29 The Ruby packaging guidelines need to be discussed/blessed so that Ruby review requests can move forward
Drafts Hierarchy abadger1999 2006-07-06 The problems with the Mono Guidelines and the change in permissions on the ["Packaging"] hierarchy shows we need a separate area to propose draft documents and changes. This area 1) should not be taken as official by packagers, 2) should allow packagers to write in comments, 3) serve as a staging area where future guidelines can be discussed. I'd like to bless ["PackagingDrafts"] for this. Currently used for ["PackagingDrafts/RubyGems"] and ["PackagingDrafts/Mono"]
Perl tweaks JasonTibbitts easyfix No changes to the guidelines. Perl template was commented to tell the packager to remove OPTIMIZE and other lines for noarch packages.
PHP guidelines JasonTibbitts 2006-07-27 Decide whether the PHP guidelines (Packaging/PHP) are good as is, or if they need more work.
ScriptletSnippets abadger1999 2006-07-27 Ratify the ScriptletSnippets as official guide.
changelog format spot 2006-07-06 We decided to adopt ["PackagingDrafts/Changelog"] . Adopted as a Must
Python:Include %ghost files abadger1999 2006-08-10 After recent discussion on fed-extras, %ghost'ing of .pyo files is seen as harmful. We should just include them in %files.
Reword %makeinstall guideline abadger1999 2006-08-24 Discussed and voted on the mailing list: Fedora's RPM includes a %makeinstall macro but it must NOT be used when make install DESTDIR=%{buildroot} will work. %makeinstall is a kludge that can work with Makefiles that don't make use of the DESTDIR variable but it has the following potential issues:
$RPM_OPT_FLAGS VilleSkyttä 2006-08-?? A section about [wiki:Self:Packaging/Guidelines#CompilerFlags compiler flags] has been added to the packaging guidelines
Reword ldconfig guideline abadger1999 2006-08-17 MUST: Every binary RPM package which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun.
CommitID JasonTibbitts 2007-06-26 Allow upstream VCS commit ID to appear in alphatag


Rejected Items
Task Name Owner Resolution Date Notes
Games mether 2009-09-09 https://fedoraproject.org/w/index.php?title=SIGs/Games/Packaging is not a set of guidelines, just strong recommendations from the Games SIG. As is, it is not appropriate as Guidelines. If the Games SIG wishes to make them required guidelines, they can resubmit them for inclusion.
Prohibit /usr/bin/env in shebang abadger1999 2009-08-19 Script_Interpreters_(draft) This was rejected as a MUST, a SHOULD might be acceptable however.
filesystem subpackages s4504kr 2009-08-12 PackagingDrafts/CreatingFilesystemSubpackages Instead of mandating many smaller -filesystem packages, it is preferred to improve the base system filesystem package to own common directories. Maintainers can still create -filesystem/-common packages as appropriate.
Guidelines for MAN pages hubbitus 2009-05-12 MAN pages which exists in_other places(draft) This draft conflicts with the general practice that Fedora packagers should be working to send improvements directly to upstream. Anyone who feels motivated to dig in other distributions for patches or improvements should feel free to do so, but it is not something that the FPC felt should be codified into the guidelines.
Compiler Flags abadger1999 2009-04-28 Compiler_Flags_(draft) A more thorough document on how to ensure optflags are being used should be generated in the open Packagers/ namespace, then please request that FPC add a link to that package from the relevant section of the Packaging Guidelines.
Check for fonts in review Nicolas Mailhot 2009-02-17 PackagingDrafts/ReviewGuideline_for_fonts_(2009-01-22) Packagers and reviewers should follow the Font Guidelines, but FPC is looking to phase out ReviewGuidelines, not to add to it.
User Creation abadger1999 2009-02-17 Packaging/UserCreation was never passed, and has been removed.
Avoid packing junk in CMake/CPack dchen 2008-11-18 PackagingDrafts/CmakeCpack isn't relevant for a Fedora Packaging guideline
Package Names should be all lowercase abadger1999 2008-04-08 ["PackagingDrafts/ASCIINamingLowercase"]
RPMGroups [wiki:Self:TomCallaway spot] 2006-11-28 Revisit Making Group optional at some point, when RPM is ready.
ipv6 in Fedora [wiki:Self:TomCallaway spot] 2006-07-13 ipv6 initiatives should be a Fedora SIG, not a Packaging Committee decision.
Hardcoding Dist Tags spot 2006-07-13 Allow packages to write Release: 1.fc5 literally instead of Release: 1%{?dist}
Python Submodule Naming abadger1999 2006-08-24 Should a python submodule named paste.deploy be named python-paste-deploy or python-pastedeploy. List discussion decided to leave this at maintainers discretion (status quo)
kernel modules AxelThimm 2006-08-23 Review the kernel module packaging guide mail on fedora-extras own page
disttags for rawhide/test AxelThimm 2006-08-31 What disttags should Rawhide use to ensure proper upgrade paths and automated rebuilds (e.g. .fc6.89 vs .fc7).
disttags for FL AxelThimm withdrawn What disttags should Fedora Legacy (for RHL7.3 and RHL9) use to ensure proper upgrade paths.
libfoo<soname> or compat AxelThimm withdrawn Guidelines for creating compatibility packages possibly already in advance mail on fedora-extras
Secure BuildRoot LubomirKundrak failed vote ["PackagingDrafts/SecureBuildRoot"] idea is sound, but should be handled in rpm.
Register VirtualProvides PatriceDumas failed vote ["PackagingDrafts/ProvidesList"] idea is sound, but should be automatically generated.