Here is the latest set of changes to the Fedora Packaging Guidelines:
---
In Fedora, you can assume that the default shell (/bin/sh) is bash. Thus, all scriptlets can safely assume that if they are running in shell code, they are running within bash.
https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Default_Shell
---
A bundling exception was granted for calibre to bundle their forked version of pyPdf.
https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_grant...
---
A new set of MinGW guidelines are in place for Fedora 17+. These guidelines reflect the existence of mingw32 and mingw64.
https://fedoraproject.org/wiki/Packaging:MinGW
Older guidelines remain in place for older versions of Fedora (and RHEL 6 or older):
https://fedoraproject.org/wiki/Packaging:MinGW_Old
---
A section of the Ruby Guidelines concerning the appropriate place to copy C extensions in the spec file template has been clarified and enhanced:
https://fedoraproject.org/wiki/Packaging:Ruby#Building_gems
---
Guidelines for usage of tmpfiles.d have been updated to better reflect the current stage of Fedora and other Fedora guidelines. In summary:
* Dropped the irrelevant talk of "both systemd and upstart" * Prefer talking of /run everywhere instead of /var/run * Ship the packaged files in %{_prefix}/lib/tmpfiles.d/, not %{_sysconfdir}/tmpfiles.d/. * Do not mark the files as %config and add an explanation why. * Use the more usual 'd' specifier instead of 'D'. * Nudge packagers into thinking about the permission mode of their directories, rather than copying the "0710" dogmatically.
https://fedoraproject.org/wiki/Packaging:Tmpfiles.d
--- The systemd guidelines have been update to reflect the fact that unit files should avoid using StandardOutput= or StandardError=. The default is the right choice for almost all cases, and using the default allows users to change global defaults in /etc/systemd/system.conf.
Also, all references to "After=syslog.target" have been dropped, as that is no longer correct or relevant in current versions of Fedora.
https://fedoraproject.org/wiki/Packaging:Systemd
---
The packaging guidelines now mention that the %make_install macro (*not* to be confused with %makeinstall) may be used instead of "make DESTDIR=%{buildroot}".
http://fedoraproject.org/wiki/Packaging:Guidelines#Why_the_.25makeinstall_ma...
---
A new section was added to the guidelines to indicate that Fedora uses gcc as the compiler (for all languages that gcc supports). Packages may only build with an alternative compiler to gcc if upstream does not support gcc.
https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler
---
These guidelines (and changes) were approved by the Fedora Packaging Committee (FPC).
Many thanks to Kevin Fenzi, Hans de Goede, Vít Ondruch, Erik van Pienbroek, Petr Pisar, Lennart Poettering, Michal Schmidt, Rahul Sundaram, and all of the members of the FPC, for assisting in drafting, refining, and passing these guidelines.
As a reminder: The Fedora Packaging Guidelines are living documents! If you find something missing, incorrect, or in need of revision, you can suggest a draft change. The procedure for this is documented here: https://fedoraproject.org/wiki/Packaging/Committee#GuidelineChangeProcedure
Thanks,
~tom
On Wed, 2012-06-06 at 14:03 -0400, Tom Callaway wrote:
Here is the latest set of changes to the Fedora Packaging Guidelines:
In Fedora, you can assume that the default shell (/bin/sh) is bash. Thus, all scriptlets can safely assume that if they are running in shell code, they are running within bash.
https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Default_Shell
I'd rather see this rephrased to refer only to scriptlets. It's not impossible that we might want to switch to an alternative /bin/sh in the future (such as dash) for scripts and it would be best if we were ensuring that scripts are packaged to rely on /bin/bash if they use bash-specific functions.
As far as scriptlets, in general I'd personally rather we either limit our support to pure Bourne Shell. Allowing people to assume bash extensions implicitly is a recipe for future trouble.
On 06/06/2012 03:59 PM, Stephen Gallagher wrote:
As far as scriptlets, in general I'd personally rather we either limit our support to pure Bourne Shell. Allowing people to assume bash extensions implicitly is a recipe for future trouble.
Lets worry about future trouble if it ever happens. I can't foresee a universe in which we'd switch /bin/sh to anything without bash compatibility, just because of the sheer impact of it across the board.
~tom
== Fedora Project
Tom Callaway tcallawa@redhat.com writes:
Also, all references to "After=syslog.target" have been dropped, as that is no longer correct or relevant in current versions of Fedora.
Strange, I still see a lot of that there ...
regards, tom lane
On 06/06/2012 10:35 PM, Tom Lane wrote:
Tom Callaway tcallawa@redhat.com writes:
Also, all references to "After=syslog.target" have been dropped, as that is no longer correct or relevant in current versions of Fedora.
Strange, I still see a lot of that there ...
Really? I don't see any... oh wait. :/
I think I've got them all now. Reload and let me know if I missed any.
~tom
== Fedora Project
packaging@lists.fedoraproject.org