What is the usage of an empty RPM ?

Reindl Harald h.reindl at thelounge.net
Tue Feb 4 18:02:15 UTC 2014


example of how to build meta packages

some obsoletes/provides are hacks to get rid of useless
dependencies or workarounds for UsrMove-bugs

the really relevant is "Requires:"
they do not need to privide files
they only ned to provide dependencies

[builduser at buildserver:~]$ cat /rpmbuild/SPECS/lounge-base.spec
Summary:   metapackage for thelounge.net default packages
Name:      lounge-base
Version:   19.0
Release:   1%{?dist}
BuildArch: noarch
Group:     System Environment/Libraries
URL:       http://www.thelounge.net/
License:   GPL

Obsoletes: php-interbase
Obsoletes: php-pear
Obsoletes: php-pear-Auth-SASL
Obsoletes: php-pear-Mail-Mime
Obsoletes: php-pear-Mail-mimeDecode
Obsoletes: php-pear-Net-IDNA2
Obsoletes: php-pear-Net-SMTP
Obsoletes: php-pear-Net-Socket
Obsoletes: php-php-gettext
Obsoletes: php-snmp
Provides:  %{_bindir}/pear
Provides:  %{_bindir}/pecl
Provides:  %{_bindir}/perl
Provides:  php-pear
Provides:  php-pear-Auth-SASL
Provides:  php-pear-Mail-Mime
Provides:  php-pear-Mail-mimeDecode
Provides:  php-pear-Net-IDNA2
Provides:  php-pear-Net-SMTP
Provides:  php-pear-Net-Socket
Provides:  php-php-gettext
Provides:  %{_sbindir}/ldconfig

Obsoletes: mod_nss
Provides:  mod_nss
Obsoletes: mod_fcgid
Provides:  mod_fcgid

Requires:  attr
Requires:  authconfig
Requires:  bash-completion
Requires:  bzip2
Requires:  checksec
Requires:  chkrootkit
Requires:  dash
Requires:  diffutils
Requires:  dstat
Requires:  ethtool
Requires:  file
Requires:  grub2
Requires:  haveged
Requires:  hostname
Requires:  htop
Requires:  iftop
Requires:  iptables-services
Requires:  kbd
Requires:  less
Requires:  logwatch
Requires:  lsscsi
Requires:  lynis
Requires:  mlocate
Requires:  nano
Requires:  net-tools
Requires:  ntp
Requires:  openssh-clients
Requires:  openssh-server
Requires:  pciutils
Requires:  php-cli
Requires:  php-mysqlnd
Requires:  pigz
Requires:  postfix
Requires:  procmail
Requires:  procps-ng
Requires:  psmisc
Requires:  pyliblzma
Requires:  rkhunter
Requires:  rootfiles
Requires:  rpl
Requires:  rsync
Requires:  rsyslog
Requires:  rsyslog-mysql
Requires:  screen
Requires:  symlinks
Requires:  tar
Requires:  unhide
Requires:  vim-minimal
Requires:  vnstat
Requires:  xz
Requires:  yum-plugin-protectbase
Requires:  yum-plugin-tsflags
Requires:  yum-utils

%description
metapackage for thelounge.net default packages

%files

%changelog
* Tue Mar 27 2012 Reindl Harald <h.reindl at thelounge.net>
- initial build
[builduser at buildserver:~]$


Am 04.02.2014 18:46, schrieb Kevin Wilson:
> Thanks to Adam and Daniel for the quick answer.
> 
> I am not an expert about RPMs. I just wonder where are these
> dependencies defined for libvirt (and in general for other RPMs),
> since the libvirt RPM file itself is an empty file ?
> 
> Regards,
> Kevin
> 
> 
> On Tue, Feb 4, 2014 at 7:37 PM, Adam Miller
> <maxamillion at fedoraproject.org> wrote:
>>
>>
>>
>> On Tue, Feb 4, 2014 at 11:30 AM, Kevin Wilson <wkevils at gmail.com> wrote:
>>>
>>> Hi,
>>> What is the usage of an empty RPM ? What it is for ?
>>> For example, on Fedora 20:
>>>
>>>  rpm -qpl  libvirt-1.1.3.3-2.fc20.x86_64.rpm
>>> shows:
>>> (contains no files)
>>
>>
>> It's effectively a meta-package that pulls in dependencies.
>>
>> # yum deplist libvirt
>> package: libvirt.x86_64 1.2.1-2.fc21
>>   dependency: /bin/sh
>>    provider: bash.x86_64 4.2.45-6.fc21
>>   dependency: libvirt-client = 1.2.1-2.fc21
>>    provider: libvirt-client.x86_64 1.2.1-2.fc21
>>    provider: libvirt-client.i686 1.2.1-2.fc21
>>   dependency: libvirt-daemon = 1.2.1-2.fc21
>>    provider: libvirt-daemon.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-config-network = 1.2.1-2.fc21
>>    provider: libvirt-daemon-config-network.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-config-nwfilter = 1.2.1-2.fc21
>>    provider: libvirt-daemon-config-nwfilter.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-interface = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-interface.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-libxl = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-libxl.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-lxc = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-lxc.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-network = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-network.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-nodedev = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-nodedev.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-nwfilter = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-nwfilter.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-qemu = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-qemu.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-secret = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-secret.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-storage = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-storage.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-uml = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-uml.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-vbox = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-vbox.x86_64 1.2.1-2.fc21
>>   dependency: libvirt-daemon-driver-xen = 1.2.1-2.fc21
>>    provider: libvirt-daemon-driver-xen.x86_64 1.2.1-2.fc21

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 246 bytes
Desc: OpenPGP digital signature
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20140204/c1b37b96/attachment.sig>


More information about the devel mailing list