[Fedora-packaging] Running installation shell script

Tom Callaway tcallawa at redhat.com
Tue May 1 15:40:45 UTC 2012


On 05/01/2012 10:47 AM, Kamal Ahmed wrote:
> what about, lets say:
> 
> Requires(post): openssl >= 0.9.7f-4, /bin/cat
> 
> i would like to package openssl in the rpm , is that possible ?
> or the standard way, is that if openssl is not installed, i just get an
> error, and have to manually install it?
> 
> I am taking example of openssh, so when i do yum -y install openssh , it
> installs the openssh-server and openssh-client and also executes/runs 
> the binary.

I'm having a lot of trouble wrapping my head around what you're trying
to do here.

If you're packaging openssh, in the openssh.spec file, you'd want to have:

BuildRequires: openssl >= 0.9.7f

When the openssh SRPM is built, it will link to openssl, and a shared
library dependency will be added to the resulting openssh binary rpms.

If this openssh SRPM generates three binary RPMs (openssh,
openssh-server, openssh-client), you can add explicit Requires to
openssh for openssh-server and openssh-client. This will ensure that yum
install openssh pulls all three packages in to resolve dependencies. If
you want the daemon/service to start immediately after install, you can
enable and start the systemd (or old sysvinit) service in %post, as
documented here:

https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd

You should never ever be building code in %post (it should happen in the
%build section). You should never ever be calling rpm or yum within the
spec file.

hth,

~tom

==
Fedora Project


More information about the packaging mailing list