[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