Bug 238673

Summary: yast2-storage is needed by yast2 but not needed for a minimal system
Product: [openSUSE] openSUSE 10.3 Reporter: Andreas Jaeger <aj>
Component: YaST2Assignee: Lukas Ocilka <locilka>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: locilka, lslezak, mvidner, snwint
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 238668    
Attachments: add-on.pot

Description Andreas Jaeger 2007-01-25 12:03:49 UTC
The yast2-storage module should not be part of a minimal system but cannot be removed right now: 

# rpm -e yast2-storage
error: Failed dependencies:
        yast2-storage is needed by (installed) yast2-packager-2.15.3-2.x86_64
        yast2-storage is needed by (installed) yast2-update-2.15.1-6.x86_64
        yast2-storage is needed by (installed) yast2-installation-2.15.5-2.noarch
        yast2-storage is needed by (installed) yast2-bootloader-2.15.4-2.x86_64
Comment 1 Stefan Hundhammer 2007-01-25 15:26:09 UTC
yast2-update is not really required in a minimal system (we recommend booting from the new media anyway), but yast2-packager you will probably want to keep: yast2 -i and yast2 online_update need it. You will get a _very_ minimalistic system if you remove them all.

OTOH I am not quite sure why yast2-packager requires yast2-storage; it might be a bogus dependency that is only valid during initial installation to check for sufficient disk space. This might not be necessary in the installed system.
Comment 2 Stefan Hundhammer 2007-01-25 15:30:56 UTC
[sh @ snell] .../packager/src 7 % grep -i Storage `find -name "*.ycp"`
./modules/SpaceCalculation.ycp:     * Storage::GetTargetMap() ) into a list(map) with information about partitions
./modules/SpaceCalculation.ycp: import "Storage";
./modules/SpaceCalculation.ycp: map<string, map> targets = Storage::GetTargetMap();
./modules/SpaceCalculation.ycp:     * from Storage module
./modules/PackageSelectionIO.ycp:    import "StorageDevices";
./modules/PackageSelectionIO.ycp:               if ( WFM::Execute (.local.mount, [StorageDevices::FloppyDevice, floppy_path]) == true)
./modules/PackageSelectionIO.ycp:                       SCR::Execute (.target.bash, "/sbin/mkdosfs " + StorageDevices::FloppyDevice);
./modules/PackageSelectionIO.ycp:                   if ( WFM::Execute (.local.mount, [StorageDevices::FloppyDevice, floppy_path]) == true)
./modules/Packages.ycp: import "Storage";
./modules/Packages.ycp:                                      Storage::AddPackageList());
./include/storage_include.ycp: * File:  include/packager/storage_include.ycp
./include/storage_include.ycp: * Summary:       Storage calls
./include/storage_include.ycp:    import "Storage";
./include/storage_include.ycp:      y2milestone ("Calling Storage::RemoveDmMapsTo(%1)", install_src_partition);
./include/storage_include.ycp:      Storage::RemoveDmMapsTo (install_src_partition);
./clients/inst_rpmcopy.ycp:    include "packager/storage_include.ycp";
./clients/software_proposal.ycp:    import "Storage";
./clients/software_proposal.ycp:        if ( Packages::timestamp != Storage::GetTargetChangeTime() )
./clients/software_proposal.ycp:        Packages::timestamp = Storage::GetTargetChangeTime();
./clients/inst_source.ycp:      // store in the persistent libzypp storage
./clients/inst_source.ycp:    // [2]: using SourceManager and not just PersistentStorage in inst_source
./clients/inst_packages.ycp:    import "StorageDevices";
./clients/inst_packages.ycp:                      `PackageSelector(`id(`packages ), StorageDevices::FloppyDevice ) :
./clients/inst_packages.ycp:                      `PackageSelector(`id(`packages ), `opt(mode), StorageDevices::FloppyDevice )
Comment 3 Stefan Hundhammer 2007-01-25 15:36:19 UTC
All references to floppy stuff above are obsolete by now; that parameter is no longer used by the package selector UI. It's still there in the API, but we might as well pass an empty string or remove it from the API completely.

Everything from "software_proposal.ycp" only applies to the installation; a dependency "yast2-installation-stage1 requires yast2-storage" would be sufficient there.

AFAICS in the source code the disk space calculation is also only needed during installation. It's part of the Packages.ycp module, though, so some workaround will be needed to be able to byte-compile Packages.ycp if yast2-storage (thus Storage.ycp) is not available.

In any case, that package will need BuildRequires: yast2-storage if we remove the direct requirement.
Comment 4 Ladislav Slezák 2007-01-25 16:50:28 UTC
PackageSelectionIO.ycp is obsoleted, package selection is saved in the package selector widget.

The other dependencies are valid only in installation.
Comment 5 Andreas Jaeger 2007-01-26 07:35:38 UTC
Ad comment #1: See my comments on #238668.
Comment 6 Martin Vidner 2007-01-29 16:25:13 UTC
("bug 238668" instead of "#238668" creates a hyperlink)
Comment 7 Stefan Hundhammer 2007-02-07 13:23:20 UTC
-> lslezak for the first step (remove requirement of yast2-storage from yast2-packager)
Comment 8 Ladislav Slezák 2007-02-09 14:46:04 UTC
Fixed in yast2-packager-2.15.9

Lukas, now it's your turn...
Comment 9 Lukas Ocilka 2007-02-15 16:58:53 UTC
I have moved the dependency of yast2-installation on yast2-storage by moving `yast2 vendor` to the yast2-update. Actually it was worse than now :) yast2-update is not needed by yast2-installation now.

If we want to drop the dependency of yast2-update on yast2-storage, we need to move vendor.ycp somewhere else.
Comment 10 Lukas Ocilka 2007-02-16 16:38:08 UTC
OK, I've created a new package yast2-add-on which contains Add-On and Vendor features. Split from yast2-installation. (openSUSE 10.3)

KE: some strings have changed their textdomain from installation to add-on, there is no need to have them translated again. Should I do something more?

SNWINT: Please, add yast2-add-on as a required package to the inst-sys, Thanks.
Comment 11 Lukas Ocilka 2007-02-19 08:37:11 UTC
Steffen, please, add yast2-add-on to the inst-sys and reassign this bug to me again to close it. Thanks.

AJ: Please, accept the package yast2-add-on which is waiting for the build :) Thanks.
Comment 12 Karl Eichwalder 2007-02-19 08:51:32 UTC
Please, send me a preliminary add-on.pot.  so I could do a dedicated merging.
Comment 13 Karl Eichwalder 2007-02-19 08:53:02 UTC
Lukas, you vanished from the Cc list ;)  Let me repeat comment 12:

Please, send me a preliminary add-on.pot.  so I could do a dedicated merging.
Comment 14 Karl Eichwalder 2007-02-19 08:54:09 UTC
Lukas, you vanished from the Cc list ;)  Let me repeat comment 12 - next try...

Please, send me a preliminary add-on.pot.  so I could do a dedicated merging.
Comment 15 Lukas Ocilka 2007-02-19 09:07:36 UTC
Created attachment 119851 [details]
add-on.pot
Comment 16 Steffen Winterfeldt 2007-02-19 10:30:02 UTC
added yast2-add-on
Comment 17 Lukas Ocilka 2007-02-19 10:36:55 UTC
So bug is fixed in:
  * yast2-installation-2.15.9 (not in build yet)
  * yast2-add-on-2.15.0
Comment 18 Steffen Winterfeldt 2007-02-22 13:33:48 UTC
What did happen to yast2-add-on? It still does not exists!
Comment 19 Lukas Ocilka 2007-02-22 13:39:49 UTC
They refused to build it for some missing description, which I have hopefully already correctly added. My plan is to submit a new yast2-add-on-2.15.1 but it would still fail because it needs new yast2-core-2.15.4 and yast2-pkg-bindings which still haven't been sent to autobuild yet.