Project page for the Merged GCC spell project

Goal

Make sure the merged gcc spell is ready for stable usage.

Tasks

  • Passes all test cases detailed here
  • Upgrades from prior stable grimoire successfully without breakage
  • Spells are appropriately sub-dependended instead of depending on hard g++/objc/etc spells

Information

The work is being done in the git branch devel-gcc-merged. It will be merged with the normal test grimoire when the goal is accomplished.

Test Cases

Circular Dependency gcc -> gmp -> g++ -> gcc

Have gmp installed with g++ dependency enabled

PATCH_LEVEL++ for gcc, gmp and g++

cast gcc gmp g++

This should

  • run without error
  • upgrade gcc, gmp and g++
  • leave gmp with g++ dependency enabled once it's all done
  • have gcc/g++ compiled against the updated gmp
  • have gmp compiled against the updated g++

Circular Dependency gcc -> mpfr -> gmp -> g++ -> gcc

Have gmp installed with g++ dependency enabled

PATCH_LEVEL++ for gcc, mpfr, gmp and g++

cast gcc mpfr gmp g++

This should

  • run without error
  • upgrade gcc, mpfr, gmp and g++
  • leave gmp with g++ dependency enabled once it's all done
  • have gcc/g++ compiled against the updated gmp and mpfr
  • have gmp compiled against the updated g++
  • have mpfr compiled against the updated gmp

Update from individual component gcc spells

Given: any combination of the gcc spells installed (gcc, g++, fortran, ada, objc, gcj)

When: the merged gcc spell is cast

Then: the system should result with the same executables installed. For example: if g++ and fortran are installed, then when the merged spell is cast it should select the fortran and g++ features to be installed. The system should also have the individual spells removed, so that they no longer exist on the system. CONFLICTS should ensure this.

FIXED: Updating from stand-alone gcc/g++ 4.4.3 in test-0.48 to merged gcc/g++ 4.4.3

$ gaze version gcc g++
Grimoire  Section  Spell  Grimoire Version  Installed Version
--------  -------  -----  ----------------  -----------------
test      gnu      gcc    4.4.3             4.4.3
test      gnu      g++    4.4.3             4.4.3

Recasting g++ causes the following:

  1. g++ to depend on gcc with CXX
  2. gcc to be cast
    1. gcc now installs the gcc and g++ binaries
  3. g++ is now cast, removing the g++ binary

Fixed with:

commit f9604fab09f0bef7b2bec9fe987b61bf9515373f
Author: Eric Sandall <sandalle@sourcemage.org>
Date:   Mon Aug 16 17:05:10 2010 -0700

    gcc: Auto-conflict with ada, fortran, g++, gcj, and objc
    This will remove the old stand-alone files before the combined
    gcc installs them.
    
    Should fix this test case:
        Recasting g++ causes the following:
        1. g++ to depend on gcc with CXX
        2. gcc to be cast
                a. gcc now installs the gcc and g++ binaries
        3. g++ is now cast, removing the g++ binary

nfs-utils fails to find a C preprocessor (cpp)

All 100 packages installed from a minimal ISO install passed a sorcery rebuild except for nfs-utils:

# cast nfs-utils
Computing previously installed dependencies...
nfs-utils preparing environment...
nfs-utils running configuration...
[[ Enable NFSv3 support? -> y ]]
[[ Enable NFSv4 support? -> y ]]
Please note that you need only one of the init scripts:
nfs - full NFS support (for clients/servers [NFSv3/4])
nfsidmap - user <-> id mapping (for clients [NFSv4])
nfslock - only locking services (for clients [NFSv3/4])
Install init script nfslock? [y] 
Enable init script nfslock? [y] Install init script nfs? [n] 
Install init script nfsidmap? [y] 
Enable init script nfsidmap? [y] 
nfs-utils checking dependencies...
nfs-utils has a dependency on gcc
nfs-utils has a dependency on gnupg
nfs-utils has a dependency on some PORT-MAPPER.
No providers of PORT-MAPPER  can be found!
nfs-utils has an optional dependency on tcp_wrappers (for TCP wrapper based access control)
Do you want to use tcp_wrappers? [y]
nfs-utils has a dependency on libevent
nfs-utils has a dependency on libnfsidmap
...
Making all in export
make[2]: Entering directory `/usr/src/nfs-utils-1.1.6/support/export'
test -f mount_clnt.c && rm -rf mount_clnt.c || true
/usr/bin/rpcgen -l -o mount_clnt.c mount.x
cannot find any C preprocessor (cpp)
/usr/bin/rpcgen: C preprocessor failed with exit code 1
make[2]: Leaving directory `/usr/src/nfs-utils-1.1.6/support/export'
make[1]: Leaving directory `/usr/src/nfs-utils-1.1.6/support'
make[2]: *** [mount_clnt.c] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1


CategoryGrimoire

Grimoire/MergingGCC (last edited 2010-08-19 18:18:07 by EricSandall)