Index: branches/iFabio/Chameleon/package/buildpkg =================================================================== --- branches/iFabio/Chameleon/package/buildpkg (revision 273) +++ branches/iFabio/Chameleon/package/buildpkg (revision 274) @@ -8,6 +8,16 @@ pkgroot="${0%/*}" +COL_BLACK="\x1b[30;01m" +COL_RED="\x1b[31;01m" +COL_GREEN="\x1b[32;01m" #COL_GREEN="\x1b[32;01m" +COL_YELLOW="\x1b[33;01m" +COL_MAGENTA="\x1b[35;01m" +COL_CYAN="\x1b[36;01m" +COL_WHITE="\x1b[37;01m" +COL_BLUE="\x1b[34;01m" +COL_RESET="\x1b[39;49;00m" + #version=$( grep I386BOOT_CHAMELEONVERSION sym/i386/vers.h | awk '{ print $3 }' | tr -d '\"' ) version=$( cat version ) stage=${version##*-} @@ -29,19 +39,18 @@ # clean up the destination path rm -R -f "${1}" - -echo "Building $packagename Install Package v${version%%-*} $stage r$revision $builddate" +echo "" +echo -e $COL_BLACK" Building $packagename Install Package"$COL_RESET +echo "" outline[$((outlinecount++))]="${indent[$xmlindent]}" # build core package - + echo "================= core =================" ((xmlindent++)) packagesidentity="org.chameleon" mkdir -p ${1}/Core/Root/usr/sbin -# mkdir -p ${1}/Core/Root/usr/local/bin mkdir -p ${1}/Core/Root/usr/standalone/i386 -# mkdir -p ${1}/Core/Root/Extra cp -f ${1%/*}/i386/boot ${1}/Core/Root/usr/standalone/i386 cp -f ${1%/*}/i386/boot0 ${1}/Core/Root/usr/standalone/i386 cp -f ${1%/*}/i386/boot0hfs ${1}/Core/Root/usr/standalone/i386 @@ -52,17 +61,14 @@ cp -f ${1%/*}/i386/cdboot ${1}/Core/Root/usr/standalone/i386 cp -f ${1%/*}/i386/chain0 ${1}/Core/Root/usr/standalone/i386 fixperms "${1}/Core/Root/" -# cp -Rf ${pkgroot}/Configuration/Chameleon.prefPane ${1}/Core/Root/Library/PreferencePanes -# cp -f ${pkgroot}/Configuration/smbios.plist ${1}/Core/Root/Extra cp -f ${pkgroot}/fdisk ${1}/Core/Root/usr/sbin cp -f ${1%/*}/i386/bdmesg ${1}/Core/Root/usr/sbin local coresize=$( du -hkc "${1}/Core/Root" | tail -n1 | awk {'print $1'} ) - echo "Building core package" - buildpackage "${1}/Core" "/tmpcham" "0" "start_visible=\"false\" start_selected=\"true\"" -# buildpackage "${1}/Core" "/" "0" "start_visible=\"true\" start_selected=\"true\"" + echo " [BUILD] core " + buildpackage "${1}/Core" "/tmpcham" "0" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1 - # build Chameleon package + echo "================= Chameleon =================" outline[$((outlinecount++))]="${indent[$xmlindent]}\t" choices[$((choicescount++))]="\n\n" @@ -71,8 +77,8 @@ mkdir -p ${1}/Standard/Scripts/Tools cp -f ${pkgroot}/Scripts/Standard/* ${1}/Standard/Scripts ditto --arch i386 `which SetFile` ${1}/Standard/Scripts/Tools/SetFile - echo "Building standard package" - buildpackage "${1}/Standard" "/tmpcham" "${coresize}" "start_enabled=\"true\" start_selected=\"upgrade_allowed()\" selected=\"exclusive(choices['EFI']) && exclusive(choices['noboot'])\"" + echo " [BUILD] standard " + buildpackage "${1}/Standard" "/tmpcham" "${coresize}" "start_enabled=\"true\" start_selected=\"upgrade_allowed()\" selected=\"exclusive(choices['EFI']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1 # End build standard package # build efi package @@ -80,14 +86,14 @@ mkdir -p ${1}/EFI/Scripts/Tools cp -f ${pkgroot}/Scripts/EFI/* ${1}/EFI/Scripts ditto --arch i386 `which SetFile` ${1}/EFI/Scripts/Tools/SetFile - echo "Building efi package" - buildpackage "${1}/EFI" "/tmpcham" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['noboot'])\"" + echo " [BUILD] EFI " + buildpackage "${1}/EFI" "/tmpcham" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1 # End build efi package # build reset choice package mkdir -p ${1}/noboot/Root - echo "Building reset choice package" - buildpackage "${1}/noboot" "/tmpcham" "" "start_visible=\"true\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EFI'])\"" + echo " [BUILD] Reset choice " + buildpackage "${1}/noboot" "/tmpcham" "" "start_visible=\"true\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EFI'])\"" >/dev/null 2>&1 # End build reset choice package ((xmlindent--)) @@ -95,6 +101,7 @@ # End build Chameleon package # build Extras package + echo "================= Extras =================" outline[$((outlinecount++))]="${indent[$xmlindent]}\t" choices[$((choicescount++))]="\n\n" ((xmlindent++)) @@ -108,22 +115,22 @@ # build package for Chameleon PrefPanel mkdir -p "${1}/PrefPanel/Root/" ditto --noextattr --noqtn "${pkgroot}/Configuration/PrefPanel/Chameleon.prefPane" "${1}/PrefPanel/Root" - echo "Building Chameleon Preference Panel package" - buildpackage "${1}/PrefPanel" "/Library/PreferencePanes/Chameleon.prefPane" "" "start_selected=\"false\"" + echo " [BUILD] Chameleon Preference Panel " + buildpackage "${1}/PrefPanel" "/Library/PreferencePanes/Chameleon.prefPane" "" "start_selected=\"false\"" >/dev/null 2>&1 # End build package for Chameleon PrefPanel # build package for SMBIOSDefault mkdir -p "${1}/SMBIOSDefault/Root/" ditto --noextattr --noqtn "${pkgroot}/Configuration/SMBIOSDefault/smbios.plist" "${1}/SMBIOSDefault/Root" - echo "Building SMBIOSDefault package" - buildpackage "${1}/SMBIOSDefault" "/Extra/Example" "" "start_selected=\"false\"" + echo " [BUILD] SMBIOSDefault " + buildpackage "${1}/SMBIOSDefault" "/Extra/Example" "" "start_selected=\"false\"" >/dev/null 2>&1 # End build package for SMBIOSDefault # build package for EFIMounter mkdir -p "${1}/EFIMounter/Root/" ditto --noextattr --noqtn "${pkgroot}/Configuration/EFIMounter/EFI Mounter.app" "${1}/EFIMounter/Root" - echo "Building EFIMounter package" - buildpackage "${1}/EFIMounter" "/Applications/EFI Mounter.app" "" "start_selected=\"false\"" + echo " [BUILD] EFIMounter " + buildpackage "${1}/EFIMounter" "/Applications/EFI Mounter.app" "" "start_selected=\"false\"" >/dev/null 2>&1 # End build package for EFIMounter # build package for Documentation @@ -131,9 +138,8 @@ cp -f ${pkgroot}/doc/BootHelp.txt ${1}/Documentation/Root cp -f ${pkgroot}/doc/README ${1}/Documentation/Root cp -f ${pkgroot}/doc/Users_Guide0.5.pdf ${1}/Documentation/Root - echo "Building Documentation package" - #buildpackage "${1}/Documentation" "/Documentation/Chameleon2RC5" "" "start_selected=\"false\"" - buildpackage "${1}/Documentation" "/Library/Documentation/Chameleon2RC5" "" "start_selected=\"false\"" + echo " [BUILD] Documentation " + buildpackage "${1}/Documentation" "/Library/Documentation/Chameleon2RC5" "" "start_selected=\"false\"" >/dev/null 2>&1 # End build package for Documentation ((xmlindent--)) @@ -141,6 +147,7 @@ # End utility package # build options packages + echo "================= Options =================" outline[$((outlinecount++))]="${indent[$xmlindent]}\t" choices[$((choicescount++))]="\n\n" ((xmlindent++)) @@ -154,12 +161,13 @@ mkdir -p "${1}/${options[$i]##*/}/Root" mkdir -p "${1}/${options[$i]##*/}/Scripts" ditto --noextattr --noqtn "${options[$i]}/postinstall" "${1}/${options[$i]##*/}/Scripts/postinstall" - echo "Building ${options[$i]##*/} package" - buildpackage "${1}/${options[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" + echo " [BUILD] ${options[$i]##*/} " + buildpackage "${1}/${options[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" >/dev/null 2>&1 done # End build base options packages # build resolution packages + echo "================= Res. Options =================" outline[$((outlinecount++))]="${indent[$xmlindent]}\t" choices[$((choicescount++))]="\n\n" ((xmlindent++)) @@ -170,8 +178,8 @@ mkdir -p "${1}/${resolutions[$i]##*/}/Root/" mkdir -p "${1}/${resolutions[$i]##*/}/Scripts/" ditto --noextattr --noqtn "${resolutions[$i]}/postinstall" "${1}/${resolutions[$i]##*/}/Scripts/postinstall" - echo "Building ${resolutions[$i]##*/} package" - buildpackage "${1}/${resolutions[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" + echo " [BUILD] ${resolutions[$i]##*/} " + buildpackage "${1}/${resolutions[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" >/dev/null 2>&1 done ((xmlindent--)) @@ -179,6 +187,7 @@ # End build resolution packages # build Advanced packages + echo "================= Adv. Options =================" outline[$((outlinecount++))]="${indent[$xmlindent]}\t" choices[$((choicescount++))]="\n\n" ((xmlindent++)) @@ -190,8 +199,8 @@ mkdir -p "${1}/${optionsadv[$i]##*/}/Root" mkdir -p "${1}/${optionsadv[$i]##*/}/Scripts" ditto --noextattr --noqtn "${optionsadv[$i]}/postinstall" "${1}/${optionsadv[$i]##*/}/Scripts/postinstall" - echo "Building ${optionsadv[$i]##*/} package" - buildpackage "${1}/${optionsadv[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" + echo " [BUILD] ${optionsadv[$i]##*/} " + buildpackage "${1}/${optionsadv[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" >/dev/null 2>&1 done ((xmlindent--)) @@ -204,6 +213,7 @@ # End build options packages # build theme packages + echo "================= Themes =================" outline[$((outlinecount++))]="${indent[$xmlindent]}\t" choices[$((choicescount++))]="\n\n" ((xmlindent++)) @@ -217,8 +227,8 @@ ditto --noextattr --noqtn "${themes[$i]}" "${1}/${themes[$i]##*/}/Root/${theme}" find "${1}/${themes[$i]##*/}" -name '.DS_Store' -or -name '.svn' -exec rm -R {} \+ find "${1}/${themes[$i]##*/}" -type f -exec chmod 644 {} \+ - echo "Building ${themes[$i]##*/} package" - buildpackage "${1}/${theme}" "/Extra/Themes" "" "start_selected=\"false\"" + echo " [BUILD] ${themes[$i]##*/} " + buildpackage "${1}/${theme}" "/Extra/Themes" "" "start_selected=\"false\"" >/dev/null 2>&1 rm -R -f "${1}/${i##*/}" done @@ -226,7 +236,8 @@ outline[$((outlinecount++))]="${indent[$xmlindent]}\t" # End build theme packages - # build kext packages + # build kext packages + echo "================= Kexts =================" outline[$((outlinecount++))]="${indent[$xmlindent]}\t" choices[$((choicescount++))]="\n\n" ((xmlindent++)) @@ -240,8 +251,8 @@ find "${1}/${filename%.kext}" -name '.DS_Store' -or -name '.svn' -exec rm -R -f {} \; 2>/dev/null fixperms "${1}/${filename%.kext}/Root/" chown 501:20 "${1}/${filename%.kext}/Root/" - echo "Building ${filename%.kext} package" - buildpackage "${1}/${filename%.kext}" "/Extra/Extensions" "" "start_selected=\"false\"" + echo " [BUILD] ${filename%.kext} " + buildpackage "${1}/${filename%.kext}" "/Extra/Extensions" "" "start_selected=\"false\"" >/dev/null 2>&1 rm -R -f "${1}/${filename%.kext}" done ((xmlindent--)) @@ -252,11 +263,13 @@ outline[$((outlinecount++))]="${indent[$xmlindent]}\t" # End build Extras package -# build post install package +# build post install package + echo "================= Post =================" mkdir -p ${1}/Post/Root mkdir -p ${1}/Post/Scripts cp -f ${pkgroot}/Scripts/Post/* ${1}/Post/Scripts - buildpackage "${1}/Post" "/tmpcham" "" "start_visible=\"false\" start_selected=\"true\"" + echo " [BUILD] Post " + buildpackage "${1}/Post" "/tmpcham" "" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1 outline[$((outlinecount++))]="${indent[$xmlindent]}" # build meta package @@ -375,6 +388,7 @@ perl -i -p -e "s/%CHAMELEONVERSION%/${version%%-*}/g" `find "${1}/${packagename}/Resources" -type f` perl -i -p -e "s/%CHAMELEONREVISION%/${revision}/g" `find "${1}/${packagename}/Resources" -type f` + # Adding Package type test (not translated) # perl -i -p -e "s/%PKGTYPE%/TEST/g" `find "${1}/${packagename}/Resources" -type f` # @@ -385,7 +399,7 @@ find "${1}/${packagename}" -name '.DS_Store' -delete pushd "${1}/${packagename}" >/dev/null - xar -c -f "${1%/*}/${packagename// /}-${version}-INSTALLER-r${revision}.pkg" --compression none . + xar -c -f "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" --compression none . popd >/dev/null # Here is the place for assign a Icon to the pkg @@ -393,14 +407,26 @@ # ditto -c -k --sequesterRsrc --keepParent Icon.icns Icon.zip ditto -xk "${pkgroot}/Icon.zip" "${pkgroot}/" DeRez -only icns "${pkgroot}/Icon/Icon.icns" > tempicns.rsrc -Rez -append tempicns.rsrc -o "${1%/*}/${packagename// /}-${version}-INSTALLER-r${revision}.pkg" -SetFile -a C "${1%/*}/${packagename// /}-${version}-INSTALLER-r${revision}.pkg" +Rez -append tempicns.rsrc -o "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" +SetFile -a C "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" rm -f tempicns.rsrc rm -rf "${pkgroot}/Icon" # End - md5=$( md5 "${1%/*}/${packagename// /}-${version}-INSTALLER-r${revision}.pkg" | awk {'print $4'} ) - echo "MD5 (${packagename// /}-${version}-INSTALLER-r${revision}.pkg) = ${md5}" > "${1%/*}/${packagename// /}-${version}-INSTALLER-r${revision}.pkg.md5" + md5=$( md5 "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" | awk {'print $4'} ) + echo "MD5 (${packagename// /}-${version}-r${revision}.pkg) = ${md5}" > "${1%/*}/${packagename// /}-${version}-r${revision}.pkg.md5" + echo "" + echo -e $COL_BLACK" Building process complete!"$COL_RESET + echo "" + echo -e $COL_BLACK" Build info." + echo -e $COL_BLACK" ===========" + echo -e $COL_BLUE" Package name: "$COL_BLACK"$packagename-${version}-r$revision.pkg"$COL_RESET + echo -e $COL_BLUE" MD5: "$COL_BLACK"$md5"$COL_RESET + echo -e $COL_BLUE" Version: "$COL_BLACK"$version"$COL_RESET + echo -e $COL_BLUE" Stage: "$COL_BLACK"$stage"$COL_RESET + echo -e $COL_BLUE" Date/Time: "$COL_BLACK"$builddate"$COL_RESET + echo "" + } main "${1}" "${2}" "${3}" "${4}" "${5}"