Project page for the Merged GCC spell project
Contents
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:
- g++ to depend on gcc with CXX
- gcc to be cast
- gcc now installs the gcc and g++ binaries
- 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
