Bug 559644

Summary: RFE: remove liveinst dependencies on perl
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: anacondaAssignee: Ales Kozumplik <akozumpl>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: davidz, dcantrell, jonathan, jzeleny, mads, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-03-01 08:02:14 UTC Type: ---
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:    
Bug Blocks: 544136, 558617    

Description Peter Robinson 2010-01-28 16:33:17 UTC
Anaconda uses two perl based script utilities within the syslinux package. For live CDs this pulls in about 40Mb of perl dependencies which is quite large on an average livecd.

AFAICT The first is a tiny 34 line script called md5pass which I think can be moved to its python equivalent.

The second is isohybrid which AFAICT isn't used as part of a liveinst install to disk.

I'm not sure the best way to handle it but I'm not sure if liveinst can be split out to a subpackage so that the perl utils in syslinux can be moved to a perl sub package and hence remove the dependency on perl

Comment 1 Chris Lumens 2010-01-28 17:04:31 UTC
I don't see md5pass being used anywhere in anaconda, so I don't see why it might be getting included in the livecd image.  isohybrid is required to build ISO images that can be bootable both from CDs and USB.  But again, that's used as part of the image building process and therefore should not be included in the live CD image itself.

Comment 2 Peter Robinson 2010-01-28 17:39:52 UTC
Just a simple grep on the perl tools in syslinux gave me

[perobinson@neo anaconda-13.21]$ grep -R md5pass *
booty/x86.py:            args.append("--md5pass=%s" %(self.password))
kickstart.py:            if self.md5pass:
kickstart.py:                anaconda.id.bootloader.setPassword(self.md5pass)
[perobinson@neo anaconda-13.21]$ 

But the problem is because anaconda depends on syslinux, syslinux pulls in perl. The anaconda stuff is one large package so if you only need the liveinst component for a live CD you still need all of anaconda and hence the dependency.

Comment 3 Peter Robinson 2010-02-03 10:14:29 UTC
Not sure why this was changed to the LiveCD component as it is about liveinst which is part of anaconda

Comment 4 Chris Lumens 2010-02-04 15:19:22 UTC
Of course, those references to "md5pass" are an internal variable, and don't have anything to do with md5pass the program.

Ales - can you figure out what to do with this bug?

Comment 5 Ales Kozumplik 2010-02-16 13:36:19 UTC
Hi Peter,

'md5pass' in the anaconda code is simply a string, in this case used in kickstart to supply an encrypted bootloader password.

isohybrid is needed when anaconda builds images but, as Chris mentioned, this actually is not needed for the LiveCD install.

I would guess that when LiveCD is built you pull in the anaconda rpm and all its dependencies with it, even those that are needed solely for image building (hard to blame you). The real problem here is that the anaconda installer and the image building scripts are currently inseparable in one package. So for the time 
being we either need to live with the extra 40 megabytes or force omission of the syslinux dependency during LiveCD compose.

Then there's the Lorax project going on:
https://fedorahosted.org/lorax/
Lorax is a rewrite of the image building process into a separate package. Once Anaconda adopts this we will get rid of the syslinux dependency.

Let me know if you have further questions, otherwise I will close this as can't fix.

Ales

Comment 6 Peter Robinson 2010-03-08 20:34:17 UTC
> being we either need to live with the extra 40 megabytes or force omission of
> the syslinux dependency during LiveCD compose.

That is unfortunately correct. Releases prior to F-12 suppressed the perl requirement in the syslinux package. The other alternative would be to re-write the isohybrid script in something other than perl. I've not got the ability to do that but it seems its not that big.

> Then there's the Lorax project going on:
> https://fedorahosted.org/lorax/
> Lorax is a rewrite of the image building process into a separate package. Once
> Anaconda adopts this we will get rid of the syslinux dependency.

Is there a timeframe for this replacing the image building that's currently in anaconda

> Let me know if you have further questions, otherwise I will close this as can't
> fix.

Sorry about my delay in response.

Comment 7 Ales Kozumplik 2010-03-09 07:49:22 UTC
(In reply to comment #6)
> Is there a timeframe for this replacing the image building that's currently in
> anaconda
> 

No, unfortunately not.

Ales