Bug 1123813

Summary: Reduce dependencies
Product: [Fedora] Fedora Reporter: Vít Ondruch <vondruch>
Component: rsyncAssignee: Pavel Šimerda (pavlix) <psimerda>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: chrisw, extras-qa, jbowes, mluscon, ooprala, psimerda, pstodulk, ssorce, tmz, vonsch
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rsync-3.1.1-5.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1121646 Environment:
Last Closed: 2014-08-13 19:48:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1121646    
Bug Blocks:    

Description Vít Ondruch 2014-07-28 10:21:10 UTC
+++ This bug was initially created as a clone of Bug #1121646 +++

Description of problem:
Installing git pulls in several packages, including systemd for example:

Nainstalováno:
  git.x86_64 0:2.0.1-1.fc22                                                     

Nainstalované závislosti:
  acl.x86_64 0:2.2.52-6.fc22                                                    
  cryptsetup-libs.x86_64 0:1.6.5-2.fc22                                         
  dbus.x86_64 1:1.8.6-2.fc22                                                    
  dbus-libs.x86_64 1:1.8.6-2.fc22                                               
  device-mapper.x86_64 0:1.02.86-2.fc22                                         
  device-mapper-libs.x86_64 0:1.02.86-2.fc22                                    
  fipscheck.x86_64 0:1.4.1-6.fc22                                               
  fipscheck-lib.x86_64 0:1.4.1-6.fc22                                           
  kmod.x86_64 0:18-2.fc22                                                       
  kmod-libs.x86_64 0:18-2.fc22                                                  
  less.x86_64 0:458-12.fc22                                                     
  libedit.x86_64 0:3.1-7.20140213cvs.fc22                                       
  libgnome-keyring.x86_64 0:3.12.0-2.fc21                                       
  libseccomp.x86_64 0:2.1.1-2.fc21                                              
  openssh.x86_64 0:6.6.1p1-4.fc22                                               
  openssh-clients.x86_64 0:6.6.1p1-4.fc22                                       
  perl-Error.noarch 1:0.17022-2.fc21                                            
  perl-Git.noarch 0:2.0.1-1.fc22                                                
  perl-TermReadKey.x86_64 0:2.32-2.fc21                                         
  qrencode-libs.x86_64 0:3.4.2-2.fc21                                           
  rsync.x86_64 0:3.1.1-1.fc21                                                   
  systemd.x86_64 0:215-4.fc22                                                   

Aktualizované závislosti:
  systemd-libs.x86_64 0:215-4.fc22                 

Why would git need systemd is not obvious for me. Please reduce the dependencies.

Version-Release number of selected component (if applicable):
# rpm -q git
git-2.0.1-1.fc22.x86_64


How reproducible:
Always

Steps to Reproduce:
1. $ mock -r fedora-rawhide-x86_64 --install git
2.
3.

Actual results:
Myriad of dependencies is installed.

Expected results:
Only relevant dependencies are installed (and systemd should not be amongst them IMO)

Additional info:

--- Additional comment from Ondrej Oprala on 2014-07-21 15:39:43 CEST ---

Git requires rsync, which seems to pull in systemd as well :/

--- Additional comment from Vít Ondruch on 2014-07-21 16:00:15 CEST ---

Come on, if this is problem or RSync, then it should be reassigned to RSync. If it is problem of git as well as RSync, then please fix the issue on your side and pursue the same fix for RSync.

I don't mind opening bug for RSync, but it seems you know better about this dependency.

Thank you.

--- Additional comment from Ondrej Oprala on 2014-07-22 14:28:19 CEST ---

Unfortunately Rsync is not the only dependency that pulls in systemd. There's libcurl -> nss -> nss-sysinit -> coreutils -> util-linux -> systemd as well (and I absolutely cannot kick out libcurl :) ).

Now, rsync requires systemd-units because of rsyncd.{socket,service} files it installs.

Removing systemd as a dependency of util-linux however, would be a bit more difficult.

The default installation of git along with it's necessary subpackages doesn't require systemd directly, only the "standalone" git-daemon package does that.

Comment 1 Vít Ondruch 2014-07-28 12:28:46 UTC
This are the reduced dependencies just for rsync:


Installed:
  rsync.x86_64 0:3.1.1-1.fc21                                                   

Dependency Installed:
  acl.x86_64 0:2.2.52-6.fc22                                                    
  cryptsetup-libs.x86_64 0:1.6.5-2.fc22                                         
  dbus.x86_64 1:1.8.6-2.fc22                                                    
  dbus-libs.x86_64 1:1.8.6-2.fc22                                               
  device-mapper.x86_64 0:1.02.87-1.fc22                                         
  device-mapper-libs.x86_64 0:1.02.87-1.fc22                                    
  fipscheck.x86_64 0:1.4.1-6.fc22                                               
  fipscheck-lib.x86_64 0:1.4.1-6.fc22                                           
  kmod.x86_64 0:18-2.fc22                                                       
  kmod-libs.x86_64 0:18-2.fc22                                                  
  libseccomp.x86_64 0:2.1.1-2.fc21                                              
  qrencode-libs.x86_64 0:3.4.2-2.fc21                                           
  systemd.x86_64 0:215-7.fc22

Comment 2 Michal Luscon 2014-07-29 14:23:58 UTC
I think the split up of package into client and systemd/server part is reasonable.

Comment 3 Vít Ondruch 2014-07-30 08:51:49 UTC
Great! Thanks. Looking forward to it.

Comment 4 Pavel Šimerda (pavlix) 2014-08-07 10:44:28 UTC
Why is it a problem depending on systemd in Fedora? On the other hand, why should such dependency be explicit in packages when systemd is part of the base system?

Comment 5 Vít Ondruch 2014-08-07 12:11:30 UTC
systemd-libs is part of minimal installation, that is true, but not systemd. Every possibly unnecessary dependency is bloating disk space, slow downs installation, etc.

Comment 6 Pavel Šimerda (pavlix) 2014-08-07 13:09:53 UTC
(In reply to Vít Ondruch from comment #5)
> systemd-libs is part of minimal installation, that is true, but not systemd.
> Every possibly unnecessary dependency is bloating disk space, slow downs
> installation, etc.

Can a system without systemd have packages carrying systemd services installed? How would the mechanics around systemd preset work? Is the minimal install expected to work without any such services? Is there any relevant documentation?

Comment 7 Vít Ondruch 2014-08-07 15:07:08 UTC
I am not systemd expert, but I see no reason, why the service file could not be in its own subpackage, which in turn would depend on systemd. How to package service files is documented here [1].

[1] https://fedoraproject.org/wiki/Packaging:Systemd

Comment 8 Pavel Šimerda (pavlix) 2014-08-12 09:09:21 UTC
(In reply to Vít Ondruch from comment #7)
> why the service file could not be in its own subpackage

I guess you advocate this idea specifically for rsync and other tools that are more often used as user commands than listening services. A subpackage called
rsync-server carrying everything that only a listening server needs (even if it was only a service file in this case) would work for you then.

Comment 9 Vít Ondruch 2014-08-12 09:37:17 UTC
(In reply to Pavel Šimerda (pavlix) from comment #8)

Exactly :)

Comment 10 Pavel Šimerda (pavlix) 2014-08-13 07:09:43 UTC
Please check if the rawhide build works as expected.

Comment 11 Vít Ondruch 2014-08-13 13:49:50 UTC
Awesome, there are no dependencies installed now:

Installed:
  rsync.x86_64 0:3.1.1-3.fc22                                                   

BTW, shouldn't be the -daemon package noarch?

Comment 12 Pavel Šimerda (pavlix) 2014-08-13 19:48:10 UTC
(In reply to Vít Ondruch from comment #11)
> BTW, shouldn't be the -daemon package noarch?

Fixed.