Bug 896275 - spacewalk-repo-sync does not exclude all packages
Summary: spacewalk-repo-sync does not exclude all packages
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Spacewalk
Classification: Community
Component: Server
Version: 1.8
Hardware: x86_64
OS: Linux
unspecified
low
Target Milestone: ---
Assignee: Michael Mráka
QA Contact: Red Hat Satellite QA List
URL:
Whiteboard:
Depends On:
Blocks: space27
TreeView+ depends on / blocked
 
Reported: 2013-01-16 22:50 UTC by Dieter Gurkentopf
Modified: 2017-09-28 17:56 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-01-18 18:39:46 UTC
Embargoed:


Attachments (Terms of Use)

Description Dieter Gurkentopf 2013-01-16 22:50:30 UTC
Description of problem:
Tried to exclude certain packages with spacewalk-repo-sync, to minimise disk usage. For instance, I will never use LibreOffice on a CentOS installation.

Version-Release number of selected component (if applicable):
Included with spacewalk 1.8

How reproducible:
Do not know if this is reproducible after restarting Spacewalk, but spacewalk-repo-sync still tries to sync packages after a few tries:

Issued command:
spacewalk-repo-sync --channel=centos6.3-x86_64-updates --exclude=eclipse*,firefox*,libreoffice*,mingw*,texlive*,thunderbird*,xulrunner*

As previously stated, for now I do not think I need these packages on a CentOS installation. To my suprise this happens:
Repo URL: http://mirror.i3d.net/pub/centos/6.3/updates/x86_64
Packages in repo:              1070
Packages passed filter rules:   944
Packages already synced:        930
Packages to sync:                14
1/14 : xulrunner-10.0.8-1.el6.centos-0.x86_64
2/14 : xulrunner-10.0.8-1.el6.centos-0.i686
3/14 : xulrunner-10.0.6-1.el6.centos-0.x86_64
4/14 : xulrunner-10.0.12-1.el6.centos-0.x86_64
5/14 : xulrunner-10.0.10-1.el6.centos-0.x86_64
6/14 : xulrunner-10.0.10-1.el6.centos-0.i686
7/14 : xulrunner-10.0.6-1.el6.centos-0.i686
8/14 : xulrunner-10.0.11-1.el6.centos-0.x86_64
9/14 : xulrunner-10.0.7-1.el6.centos-0.x86_64
failure: Packages/xulrunner-10.0.7-1.el6.centos.x86_64.rpm from centos6.3-x86_64-updates: [Errno 256] No more mirrors to try.
10/14 : xulrunner-10.0.8-2.el6.centos-0.i686
failure: Packages/xulrunner-10.0.8-2.el6.centos.i686.rpm from centos6.3-x86_64-updates: [Errno 256] No more mirrors to try.
11/14 : xulrunner-10.0.8-2.el6.centos-0.x86_64
12/14 : xulrunner-10.0.12-1.el6.centos-0.i686
13/14 : xulrunner-10.0.11-1.el6.centos-0.i686
14/14 : xulrunner-10.0.7-1.el6.centos-0.i686
Repo http://mirror.i3d.net/pub/centos/6.3/updates/x86_64 has 0 errata.
Sync completed.
Total time: 0:23:40

Ok.. I may be blind, but can't seem to find the difference between packages excluded with xulrunner* and the xulrunner packages that are being synced.

Additional info:
Tried it again:
spacewalk-repo-sync --channel=centos6.3-x86_64-updates --exclude=eclipse*,firefox*,libreoffice*,mingw*,texlive*,thunderbird*,xulrunner*
Repo URL: http://mirror.i3d.net/pub/centos/6.3/updates/x86_64
Packages in repo:              1070
Packages passed filter rules:   944
Packages already synced:        942
Packages to sync:                 2
1/2 : xulrunner-10.0.7-1.el6.centos-0.x86_64
2/2 : xulrunner-10.0.8-2.el6.centos-0.i686
Repo http://mirror.i3d.net/pub/centos/6.3/updates/x86_64 has 0 errata.
Sync completed.
Total time: 0:02:31


Please correct me when I have being doing something stupid. I'm just getting the hang of Spacewalk, and unfortunately do not have very much *nix experience, but this looks like an user error or something small.
Before flaming, please tell me to wear my asbestos underwear.

Comment 1 Dieter Gurkentopf 2013-01-16 23:03:30 UTC
After removing and deleting a xulrunner package and restarting spacewalk, the same command is syncing the xulrunner package again.

Comment 2 Michael Mráka 2013-01-17 09:44:44 UTC
spacewalk-repo-sync solves package dependencies before downloading (so you won't end with packages which can't be installed due to missing libs etc.).

Checking which packages need xulrunner on my test machine gives me:
# rpm -e --test xulrunner --allmatches
error: Failed dependencies:
        gecko-libs >= 10.0 is needed by (installed) yelp-2.28.1-13.el6_2.x86_64
        libmozalloc.so()(64bit) is needed by (installed) firefox-10.0.12-1.el6_3.x86_64
        libxpcom.so()(64bit) is needed by (installed) firefox-10.0.12-1.el6_3.x86_64
        libxul.so()(64bit) is needed by (installed) firefox-10.0.12-1.el6_3.x86_64
        xulrunner >= 1.9 is needed by (installed) eclipse-swt-1:3.6.1-6.13.el6.x86_64
        xulrunner >= 10.0.12-1 is needed by (installed) firefox-10.0.12-1.el6_3.x86_64

so I guess you have add yelp to exclude to get rid of xulrunner.

Comment 3 Dieter Gurkentopf 2013-01-18 10:50:16 UTC
Oops, mea culpa!

I did not have xulrunner installed, so your command does not work. With a xulrunner package I can use rpm to find some dependencies.
Repoquery works 'better', I can see all packages that depend on xulrunner:
repoquery -q --whatrequires --alldeps xulrunner

spacewalk-repo-sync --channel=centos6.3-x86_64-base --exclude=eclipse*,esc*,firefox*,libproxy-mozjs*,libreoffice*,mingw*,texlive*,thunderbird*,xulrunner*,yelp*,spice-xpi*,system-config-date-docs*,system-config-kdump*,system-config-services-docs*,system-config-users-docs*,svnkit*

This works, and now I also know why it still syncs a few texlive packages. What is still confusing me is this: It also syncs system-config-users-docs, system-config-services-docs and system-config-date-docs. Ok, this is needed because of system-config-users , system-config-services and system-config-date.
When not excluding these packages and using this command:

spacewalk-repo-sync --channel=centos6.3-x86_64-base --exclude=eclipse*,esc*,firefox*,libproxy-mozjs*,libreoffice*,mingw*,texlive*,thunderbird*,xulrunner*,yelp*,spice-xpi*,system-config-kdump*,svnkit*

It is syncing yelp again.
repoquery -q --whatrequires --alldeps yelp
shows that system-config-users-docs depends on yelp.

Apparently spacewalk-repo-sync only solves dependencies to a certain level, otherwise it would also sync yelp with the first command, correct?

Anyway, thank you for your help. Should I close this ticket myself, and classify it as an user error?

Comment 4 Michael Mráka 2013-01-18 18:39:46 UTC
(In reply to comment #3)
> Apparently spacewalk-repo-sync only solves dependencies to a certain level,
> otherwise it would also sync yelp with the first command, correct?

No, it does full dependency solving. 

# repoquery -q --whatrequires --alldeps yelp 
yelp-0:2.28.1-13.el6_2.x86_64
yelp-0:2.28.1-13.el6_2.i686
system-config-date-docs-0:1.0.9-1.el6.noarch
system-config-date-docs-0:1.0.11-1.el6.noarch
system-config-kdump-0:2.0.2.2-2.el6.noarch
system-config-kdump-0:2.0.5-11.el6.noarch
system-config-services-docs-0:1.1.8-1.el6.noarch
system-config-users-docs-0:1.0.8-1.el6.noarch

As command above shows yelp is required only by system-config-*-docs and system-config-kdump so in the first example you excluded all packages which requires yelp (except itself) and it isn't dowloaded.

In the second example system-config-*-docs packages (not excluded so they are by default in the transaction) pulls yelp back.

> Anyway, thank you for your help. Should I close this ticket myself, and
> classify it as an user error?

Ok, I'm closing it now. Thanks.

Comment 5 Eric Herget 2017-09-28 17:56:00 UTC
This BZ closed some time during 2.5, 2.6 or 2.7.  Adding to 2.7 tracking bug.


Note You need to log in before you can comment on or make changes to this bug.