You are here

64-bit FC5

Project ID: 
Current stage: 

Description: Develop a 64-bit version of the DICE FC5 platform.


This project will be delivered in several stages :-

  1. An LCFG managed version of 64-bit FC5 running against DICE authentication
    and name services (anonymously), and ideally AFS file services. Probably for servers only.
  2. A 64-bit DICE desktop, suitable for research use only.
  3. A full 64-bit DICE desktop, suitable for commodity and research use.

The plan below describes stage 1 only.


Customer: In the first instance a number of research groups from CSTR,HCRC/ICCS,ANC and LFCS.

Case statement:

The current 32-bit version of DICE has an architectural limit of 3Gb addressable memory space per process. This limitation is having an impact on an increasing number of research groups within the School.

Most current PCs are now capable of running in 64-bit mode, but to do this requires a 64-bit version of the base operating system. FC5 and FC3 are both available in 64-bit form. This
project would involve porting LCFG (and DICE) to the 64-bit version of FC5.

At some point in the medium(?) future it is likely that 64-bit will be the norm with 32-bit being considered legacy.



Initial 64 bit work has been undertaken by Stephen who has found few issues. Updaterpms and the LCFG compiler require some modifications; Alastair is currently working on the changes to updaterpms. Next stage is to refine plan re deliverables and work required.
Adding support for multiple archs to updaterpms has proved very hacky due to the need to continue support for wildcard archs. Alastair has shipped this hacky version as the lack of updaterpms was blocking progress. Now that it has been agreed that we can deprecate the wildcard arch support, Alastair will reimplement; this should lead to cleaner code.
plan for stage 1 firmed up with time estimates
Stage 5 completed, most work on stage 6 now complete but it turns out we need to port the kerberos and afs components (or at least the PAM parts) before we start using the PAM component. Stage 7 probably complete.
Stages 6 to 9, and 11, now complete bar dns. Work on stage 10 has been started.
Stage 8 complete. Stage 10 implemented and working, but more testing to be done and some tidying up of header files.
Feb 07
All stages now complete

Awaiting users requesting 64 bit servers to be installed. A 64 bit compute server, torridon, is already available for use.


Priority: This project does not have an explicit delivery deadline. However, there is growing pressure from an increasing number of institutes for this provision.

Time: For stage 1, assuming appropriate experience as listed in Resources section above, an estimate of 23 to 26 man days for delivery. This assumes minimal 32-bit to 64-bit porting problems.




For stage1, experience of porting LCFG to a new platform would dramatically cut the effort required. Strong C and Perl skills are potentially required to deal with any 32-bit to 64-bit porting issues.

For stage2 and stage3, various skills would be required - needs to be expanded....


  1. port and test LCFG core: (3 days Stephen)
    • lcfg-authorize
    • lcfg-buildtools
    • lcfg-client
    • lcfg-file
    • lcfg-ngeneric
    • lcfg-om
    • lcfg-utils
  2. port and test updaterpms (3 days Alastair)
    • port and test updaterpms code
    • until package specs mods done to server, use prefixed arch specs (ie i386/glibc-1.0-1) - need to modify updaterpms component to do simple sed translation to real new style
  3. create repository (0.5 day Alastair)
    • no space on pezenas. Simplest plan is to split off SRPMs onto a different volume. We don't want to depend on the RPM repository having moved to AFS
    • although we think we can merge i386 and x86_64 repositories, we reckon safer to leave this until developing next DICE platform. For now keep separate.
  4. create package lists (1 day Alastair)
    • adding /noarch - easily automated?
  5. create necessary LCFG level headers (2.5 days Alastair/Stephen)
    • plan to create LCFG level instantiation to simply porting (1 day Alastair)
    • review required changes to existing headers (1 day Stephen)
    • need to create an arch macro for headers (profile resource) (Stephen)
    • add arch resource to lcfg-updaterpms component (0.5 day Alastair)
  6. port and test components required to keep a machine LCFG managed (2 days Stephen)
    • lcfg-auth
    • lcfg-boot
    • lcfg-cron
    • lcfg-init
    • lcfg-nsswitch
    • lcfg-pam (needs kerberos and afs pam settings sorted first
    • lcfg-syslog (???)
    • lcfg-tcpwrappers
  7. port miscellaneous RPMs (0.5 days Stephen)
    • lcfg-defetc-fc5
    • lcfg-release-fc5
  8. port or create simple client components for: (3 days)
    • kerberos
    • openldap
    • openssh
    • ntp
    • dns
  9. port components required to install new machine via LCFG (2 - 5 days)
    • lcfg-fstab and lcfg-hackparts (hackparts may have 64 bit issues hence 5 days)
    • lcfg-grub
    • lcfg-hardware
    • lcfg-kernel
    • lcfg-network
  10. port installroot (2 days)
    • creating installroot and installbase package lists and profiles
    • buildinstallroot
  11. build AFS kernel module (1 day)
    • lcfg-afs component
  12. author documentation to aid COs building 64 bit packages (1 day)
  13. Deploy first end-user server
  • Things to be done later
    • modify to deal with multiarch package specs
      • rpmcache
      • mkxprof
    • add arch resource to rpmcache component

Dependencies: No known dependencies.



  • 64-bit FC5 might not be sufficiently stable, despite favourable reports. A fallback would be to use RHEL.
  • We uncover some issues with 32-bit to 64-bit porting of LCFG/DICE code. The risk here is that the work will take longer than estimated.
  • Not doing this work would probably result in
    us being obliged to hand-manage a number of 64 bit machines.


Proposed date Achieved date Name Description
2006-09-12 2006-08-15 work list Produce list of work required
2006-10-10 2006-10-04 Stage 1 Port and test LCFG core
2006-11-01 2006-10-04 Stage 2 Port and test updaterpms
2006-11-01 2006-10-04 Stage 3 Create repository
2006-11-01 2006-10-04 Stage 4 Create package lists
2006-11-03 2006-10-04 Stage 5 Create necessary LCFG level headers
2006-12-13 2006-11-01 Stage 6 Port and test components required to keep a machine LCFG managed
2006-12-13 2006-11-01 Stage 7 Port misc RPMs
2007-01-04 2007-01-10 Stage 8 Create simple client components
2006-12-13 2006-11-01 Stage 9 Port components required to install new machine via LCFG
2007-01-22 2007-01-10 Stage 10 Port installroot
2006-12-13 2006-11-01 Stage 11 Build AFS kernel module
2007-01-31 2007-01-10 Stage 12 Author documentation to aid COs building 64 bit packages
2007-03-07 2007-02-14 Deploy Deploy first end-user server