+++ This bug was initially created as a clone of Bug #176123 +++ Description of problem: up2date --channel with no specified package checks for updates on all subscribed channels. It should only check for updates on the specified channel. Version-Release number of selected component (if applicable): up2date-4.4.56-3 How reproducible: always Steps to Reproduce: 1. Install the latest up2date package. 2. Subscribe a system to a base and at least one child channel. 3. Run 'up2date --channel <child channel> -l' Actual results: up2date will check for updates on all subscribed channels Expected results: up2date should only check for updates on the specified child channel Additional info: [root@rlx-3-04 tmp]# up2date -l --channel rhn-tools-rhel-3-as-i386 Fetching Obsoletes list for channel: rhel-i386-as-3... Fetching Obsoletes list for channel: rhn-tools-rhel-3-as-i386...
--channel=foo will now limit the channel universe for any operations, including -u, pkgname, --installall, --showall, --showavailable, and -l. Test plan: 1) install a system, register it to multiple child channels (extras, fastrack, and rhn-tools work rather well) 2) use combinations of --channel=channel_label to see if the output makes sense: 'up2date --channel=foo -l' should list the available updated packages within foo. 'up2date --channel=foo --channel=bar --installall' should install anything within the specified channels Negative tests include: 'up2date --channel=channel_i_dont_have_access_to -u' 'up2date --channel=doesnt_exist --showall' Manpage has been updated to eliminate the --installall tie.
This Bug has been fixed in this release
How does this affect dependencies of packages that are not in the same channel? i.e. you want to install everything in the cluster suite channel. Does it pull in the dependencies from the RHEL channel?
If you only specifiy one --channel, you're limiting the visible package universe. If that package universe is not dependency complete, you'll have a problem. If you were subscribed to 3 channels: A, B, &C, and you wanted to install a package in B, but ignore the contents of C, you would: up2date --channel=B blah If 'blah' has dependencies only met by A, the above operation will fail. The work around would be: up2date --channel=A --channel=B blah I hope this clarifies things.
So this totally breaks a case that I was using regularly. I would be "subscribed" to two channels, RHEL base and RHCS. I wanted to install _everything_ from RHCS, but there are some things it needs to pull into RHEL base to be complete. I use the command line "up2date -f --installall --channel=cluster-version" to accomplish this. How do I accomplish the same thing now?
What if I made it so that --installall required a parameter, like: up2date -f --installall=cluster-version ?
that would work for me
patch committed, will roll pkgs this weekend for testing.
Packages rolled, should be fixed in up2date 4.4.69-15
Package tested: up2date-4.4.69-21 I verified this by subscribing the test client to a bunch of custom channels that contained various rhn-applet and rhn-applet-actions packages. This created a ripe interchannel-dependency environment in which to fully exercise the fix for this bug.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2006-0494.html