After the bundle building of the previous section, the ./BUILD directory contains a lot more files and subdirectories. In addition to the source packages and source directories, the directory now contains a couple of files related to the bundle itself. It is better to use this set of directories to rebuild packages because using the bundle tarfile will unpack everything again and wipe out any changes made in these directories. The new package directories can be used to rebuild patched packages as shown in the following operation on the package globus_io:
Determine what flavors of globus_io are installed.
bash$ gpt-query 'globus_io-*-rtl' 2 packages were found in /home/mbletzin/install/globus that matched your query: packages found that matched your query globus_io-gcc32-rtl pkg version: 3.3.0 globus_io-gcc32dbg-rtl pkg version: 3.3.0
Remove all of the globus_io packages. You will need to use the -force flag. In most cases this step is not necessary. You can use the -force flag with gpt-build to overwrite an installed packages. However, using gpt-uninstall makes sure that all of the installed files are removed.
bash$ gpt-uninstall -verbose globus_io The following packages fulfill dependencies to other installed packages and so will not be removed globus_io-gcc32-dev is needed by the following packages: globus_ftp_control-gcc32-dev globus_io-gcc32-rtl is needed by the following packages: globus_ftp_control-gcc32-rtl globus_io-gcc32dbg-dev is needed by the following packages: globus_ftp_control-gcc32dbg-dev globus_io-gcc32dbg-rtl is needed by the following packages: globus_ftp_control-gcc32dbg-rtl ERROR: No packages were removed bash$ gpt-uninstall -force globus_io bash$
After making the changes, rebuild the package with the installed flavors:
bash$ cd BUILD/globus_io-3.3 bash$ gpt-build gcc32 gcc32dbg gpt-build ====> CHECKING BUILD DEPENDENCIES FOR globus_io gpt-build ====> Changing to /home/mbletzin/work/doc-bundles/BUILD/globus_io-3.3 gpt-build ====> BUILDING FLAVOR gcc32 gpt-build ====> Changing to /home/mbletzin/install/globus/etc gpt-build ====> REMOVING empty package globus_io-gcc32-pgm gpt-build ====> REMOVING empty package globus_io-gcc32-pgm_static gpt-build ====> Changing to /home/mbletzin/work/doc-bundles/BUILD/globus_io-3.3 gpt-build ====> BUILDING FLAVOR gcc32dbg gpt-build ====> Changing to /home/mbletzin/install/globus/etc gpt-build ====> REMOVING empty package globus_io-gcc32dbg-pgm gpt-build ====> REMOVING empty package globus_io-gcc32dbg-pgm_static gpt-build ====> REMOVING empty package globus_io-noflavor-data gpt-build ====> REMOVING empty package globus_io-noflavor-doc
Rebuilding multiple packages in a bundle is trickier because the packages need to be fed into gpt-build in dependency order. The file packaging_list lists the package names in dependency order so this list can be used to order the package source directories. For those of you who are too lazy to write your own, you can use this script.