From Fedora Project Wiki

Revision as of 15:31, 14 January 2009 by Spot (talk | contribs) (→‎Action Items)


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.
Status Task Name Owner Meeting Date Notes
ratify RubyGem with C code mtasaka 2008-12-09 PackagingDrafts/RubyGem with C code
ratify Font packaging automation Nicolas Mailhot 2008-12-09 PackagingDrafts/Fonts_packaging_automation Refactoring of Fedora fonts packaging guidelines and template
ratify Updates to the Eclipse plugin guidelines overholt 2008-12-09 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
ratify Make adherence to the FHS a MUST, with the added exception of /usr/<target> for cross toolchains. spot 2008-12-09 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"
ratify Font Packaging Naming Guidelines Nicolas Mailhot 2009-01-14 PackagingDrafts/Font_package_naming_(2009-01-13)

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
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
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.