VirtualBox

Changeset 68813 in vbox


Ignore:
Timestamp:
Sep 21, 2017 7:53:07 PM (7 years ago)
Author:
vboxsync
Message:

IPRT: Added ISO maker tool frontend (will use for building later). Started documenting its usage. Implemented a couple of compatibility options.

Location:
trunk
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/fsisomaker.h

    r68147 r68813  
    8888 */
    8989RTDECL(int) RTFsIsoMakerSetIso9660Level(RTFSISOMAKER hIsoMaker, uint8_t uIsoLevel);
     90
     91/**
     92 * Gets the ISO-9660 level.
     93 *
     94 * @returns The level, UINT8_MAX if invalid handle.
     95 * @param   hIsoMaker           The ISO maker handle.
     96 */
     97RTDECL(uint8_t) RTFsIsoMakerGetIso9660Level(RTFSISOMAKER hIsoMaker);
    9098
    9199/**
  • trunk/include/iprt/mangling.h

    r68317 r68813  
    929929# define RTFsIsoMakerBootCatSetSectionHeaderEntry       RT_MANGLER(RTFsIsoMakerBootCatSetSectionHeaderEntry)
    930930# define RTFsIsoMakerQueryObjIdxForBootCatalog          RT_MANGLER(RTFsIsoMakerQueryObjIdxForBootCatalog)
     931# define RTFsIsoMakerGetIso9660Level                    RT_MANGLER(RTFsIsoMakerGetIso9660Level)
    931932# define RTFsIsoMakerSetIso9660Level                    RT_MANGLER(RTFsIsoMakerSetIso9660Level)
    932933# define RTFsIsoMakerSetJolietUcs2Level                 RT_MANGLER(RTFsIsoMakerSetJolietUcs2Level)
  • trunk/src/VBox/Runtime/common/fs/isomaker.cpp

    r68506 r68813  
    11821182    pThis->PrimaryIso.uLevel = uIsoLevel;
    11831183    return VINF_SUCCESS;
     1184}
     1185
     1186
     1187/**
     1188 * Gets the ISO-9660 level.
     1189 *
     1190 * @returns The level, UINT8_MAX if invalid handle.
     1191 * @param   hIsoMaker           The ISO maker handle.
     1192 */
     1193RTDECL(uint8_t) RTFsIsoMakerGetIso9660Level(RTFSISOMAKER hIsoMaker)
     1194{
     1195    PRTFSISOMAKERINT pThis = hIsoMaker;
     1196    RTFSISOMAKER_ASSERT_VALID_HANDLE_RET_EX(pThis, UINT8_MAX);
     1197    return pThis->PrimaryIso.uLevel;
    11841198}
    11851199
  • trunk/src/VBox/Runtime/common/fs/isomakercmd.cpp

    r68147 r68813  
    498498    DD("-sysid",                        RTFSISOMAKERCMD_OPT_SYSTEM_ID,                      RTGETOPT_REQ_STRING  ),
    499499    { "--volume-id",                    RTFSISOMAKERCMD_OPT_VOLUME_ID,                      RTGETOPT_REQ_STRING  }, /* should've been '-V' */
     500    DD("-volid-id",                     RTFSISOMAKERCMD_OPT_VOLUME_ID,                      RTGETOPT_REQ_STRING  ),
    500501    DD("-volset",                       RTFSISOMAKERCMD_OPT_VOLUME_SET_ID,                  RTGETOPT_REQ_STRING  ),
    501502
     
    504505    DD("-dir-mode",                     RTFSISOMAKERCMD_OPT_DIR_MODE,                       RTGETOPT_REQ_UINT32 | RTGETOPT_FLAG_OCT ),
    505506    DD("-new-dir-mode",                 RTFSISOMAKERCMD_OPT_NEW_DIR_MODE,                   RTGETOPT_REQ_UINT32 | RTGETOPT_FLAG_OCT ),
     507    DD("-graft-points",                 RTFSISOMAKERCMD_OPT_GRAFT_POINTS,                   RTGETOPT_REQ_NOTHING ),
     508    DD("--iso-level",                   RTFSISOMAKERCMD_OPT_ISO_LEVEL,                      RTGETOPT_REQ_UINT8   ),
     509    { "--long-names",                   'l',                                                RTGETOPT_REQ_NOTHING },
    506510
    507511    /*
     
    533537    DD("-gid",                          RTFSISOMAKERCMD_OPT_GID,                            RTGETOPT_REQ_UINT32  ),
    534538    DD("-gui",                          RTFSISOMAKERCMD_OPT_GUI,                            RTGETOPT_REQ_NOTHING ),
    535     DD("-graft-points",                 RTFSISOMAKERCMD_OPT_GRAFT_POINTS,                   RTGETOPT_REQ_NOTHING ),
    536539    DD("-hide",                         RTFSISOMAKERCMD_OPT_HIDE,                           RTGETOPT_REQ_STRING  ),
    537540    DD("-hide-list",                    RTFSISOMAKERCMD_OPT_HIDE_LIST,                      RTGETOPT_REQ_STRING  ),
     
    544547    DD("-input-charset",                RTFSISOMAKERCMD_OPT_INPUT_CHARSET,                  RTGETOPT_REQ_STRING  ),
    545548    DD("-output-charset",               RTFSISOMAKERCMD_OPT_OUTPUT_CHARSET,                 RTGETOPT_REQ_STRING  ),
    546     { "--iso-level",                    RTFSISOMAKERCMD_OPT_ISO_LEVEL,                      RTGETOPT_REQ_UINT8   },
    547549    { "--joliet",                       'J',                                                RTGETOPT_REQ_NOTHING },
    548550    DD("-joliet-long",                  RTFSISOMAKERCMD_OPT_JOLIET_LONG,                    RTGETOPT_REQ_NOTHING ),
    549551    DD("-jcharset",                     RTFSISOMAKERCMD_OPT_JOLIET_CHARSET,                 RTGETOPT_REQ_STRING  ),
    550     { "--long-names",                   'l',                                                RTGETOPT_REQ_NOTHING },
    551552    { "--leading-dot",                  'L',                                                RTGETOPT_REQ_NOTHING },
    552553    DD("-jigdo-jigdo",                  RTFSISOMAKERCMD_OPT_JIGDO_JIGDO,                    RTGETOPT_REQ_STRING  ),
     
    781782
    782783
     784/**
     785 * Print the usage.
     786 *
     787 * @param   pOpts               Options for print metho.
     788 * @param   pszProgName         The program name.
     789 */
    783790static void rtFsIsoMakerCmdUsage(PRTFSISOMAKERCMDOPTS pOpts, const char *pszProgName)
    784791{
    785     rtFsIsoMakerPrintf(pOpts, "usage: %s [options] <file>=<cdfile>\n", pszProgName);
     792    rtFsIsoMakerPrintf(pOpts,
     793                       "Usage: %s [options] [@commands.rsp] <filespec1> [filespec2 [..]]\n"
     794                       "\n"
     795                       "File specifications and --name-setup:\n"
     796                       "\n"
     797                       "    All non-options that does not start with '@' are taken to indicate a file,\n"
     798                       "    directory, or similar that is should be added to the ISO image.  Directories\n"
     799                       "    are added recursively and content is subject to filtering options.\n"
     800                       "\n"
     801                       "    Since there can be up to six different namespaces on an ISO, it is handy\n"
     802                       "    to be able to control the names used in each and be able to exclude an\n"
     803                       "    object from one or more namespaces.  The --name-setup option specifies the\n"
     804                       "    file specification format to use forthwith.\n"
     805                       "\n"
     806                       "    The default setup is:\n"
     807                       "\n"
     808                       "        --name-setup iso+joliet+udf+hfs\n"
     809                       "\n"
     810                       "    Which means you specify one on-ISO name for all namespaces followed by '='\n"
     811                       "    and the source file system name.  Only specifying the source file system\n"
     812                       "    will add the file/dir/whatever to the root of the ISO image.\n"
     813                       "\n"
     814                       "    Lets look at the following two examples:\n"
     815                       "\n"
     816                       "        /docs/readme.txt=/home/user/Documents/product-x-readme.txt\n"
     817                       "        /home/user/Documents/product-x-readme.txt\n"
     818                       "\n"
     819                       "    In the first case the file '/home/user/Documents/product-x-readme.txt' is\n"
     820                       "    added to the ISO image as '/docs/readme.txt' in all enabled namespaces.\n"
     821                       "    In the primary ISO 9660 namespace, the filename will by default be converted\n"
     822                       "    to upper case because it's required by the spec.\n"
     823                       "\n"
     824                       "    In the second case the file is added to the root under the name\n"
     825                       "    'product-x-readme.txt' in all namespaces.  Though, in the primary ISO 9660\n"
     826                       "    namespace the name will be transformed to apply with the current ISO level,\n"
     827                       "    probably uppercased, possibly truncated too.\n"
     828                       "\n"
     829                       "    Given  --name-setup iso,joliet,udf  you can specify the name individually\n"
     830                       "    for each of the three namespace, if you like.  If you omit any, they will\n"
     831                       "    use last name given.  Any names left blank (==) will be considered omitted.\n"
     832                       "\n"
     833                       "        A different name in each namespace:\n"
     834                       "            /ISO.TXT=/Joliet.TxT=/UDF.txt=/tmp/iso/real.txt\n"
     835                       "        Specific name in the ISO 9660 namespace, same in the rest:\n"
     836                       "            /ISO.TXT=/OtherNamespaces.TxT=/tmp/iso/real.txt\n"
     837                       "        Omit the file from the ISO 9660 namespace:\n"
     838                       "            =/OtherNamespaces.TxT=/tmp/iso/real.txt\n"
     839                       "        Omit the file from the joliet namespace:\n"
     840                       "            /ISO.TXT==/UDF.TxT=/tmp/iso/real.txt\n"
     841                       "        Use the same filename as the source everywhere:\n"
     842                       "            /tmp/iso/real.txt\n"
     843                       "\n"
     844                       "    Using for instance  --name-setup udf  you can add a files/dirs/whatever to\n"
     845                       "    select namespace(s) without the more complicated empty name syntax above.\n"
     846                       "\n"
     847                       "    When adding directories, you can only control the naming and omitting of the\n"
     848                       "    directory itself, not any recursively added files and directories below it.\n"
     849                       "\n"
     850                       "\n"
     851                       "Options:\n"
     852                       "\n"
     853                       "    --name-setup <spec>\n"
     854                       "        Configures active namespaces and how file specifications are to be\n"
     855                       "        interpreted.  The specification is a comma separated list.  Each element\n"
     856                       "        in the list is a sub-list separated by space, '+' or '|' giving the\n"
     857                       "        namespaces that elements controls.  Namespaces are divied into two major\n"
     858                       "        and minor ones, you cannot specifying a minor before the major it\n"
     859                       "        belongs to.\n"
     860                       "        Major namespaces and aliases in parentheses:\n"
     861                       "            - iso (primary, iso9660, iso-9660, primary-iso, iso-primary)\n"
     862                       "            - joliet\n"
     863                       "            - udf\n"
     864                       "            - hfs (hfs-plus)\n"
     865                       "        Minor namespaces:\n"
     866                       "            - rock:        rock ridge on previous major namespace (iso / joliet)\n"
     867                       "            - iso-rock:    rock ridge extensions on primary ISO 9660 namespace\n"
     868                       "            - joliet-rock: rock ridge on joliet namespace (just for fun)\n"
     869                       "            - trans-tbl:   translation table file on previous major namespace\n"
     870                       "            - iso-trans-tbl\n"
     871                       "            - joliet-trans-tbl\n"
     872                       "            - udf-trans-tbl\n"
     873                       "            - hfs-trans-tbl\n"
     874                       "\n"
     875                       "    --iso-level <0|1|2|3>\n"
     876                       "        Sets the ISO level:\n"
     877                       "            - 0: Disable primary ISO namespace.\n"
     878                       "            - 1: ISO level 1: Filenames 8.3 format and limited to 4GB - 1.\n"
     879                       "            - 2: ISO level 2: 31 char long names and limited to 4GB - 1.\n"
     880                       "            - 3: ISO level 3: 31 char long names and support for >=4GB files.\n"
     881                       "            - 4: Fictive level used by other tools. Not yet implemented.\n"
     882                       "        Default: 3\n"
     883                       "\n"
     884                       "    --no-joliet\n"
     885                       "        Disable the joliet namespace entirely.  This option must be specified\n"
     886                       "        before any file specifications\n"
     887                       "\n"
     888                       "    --push-iso <iso-file>\n"
     889                       "    --push-iso-no-joliet <iso-file>\n"
     890                       "    --push-iso-no-rock <iso-file>\n"
     891                       "    --push-iso-no-rock-no-joliet <iso-file>\n"
     892                       "        Open the specified ISO file and use it as source file system until the\n"
     893                       "        corresponding --pop options is encountered.  The variations are for\n"
     894                       "        selecting which namespace on the ISO to (not) access.  These options\n"
     895                       "        are handy for copying files/directories/stuff from an ISO without\n"
     896                       "        having to extract them first or using the :iprtvfs: syntax.\n"
     897                       "\n"
     898                       "    --pop\n"
     899                       "        Pops a --push-iso of the source file system stack.\n"
     900                       "\n"
     901                       "    --import-iso <iso-file>\n"
     902                       "        Imports everything on the given ISO file. You can use --name-setup to\n"
     903                       "        omit namespaces.\n"
     904                       "\n"
     905                       "    --file-mode <mode>\n"
     906                       "    --no-file-mode\n"
     907                       "        Controls the forced file mode mask.\n"
     908                       "\n"
     909                       "    --dir-mode <mode>\n"
     910                       "    --no-dir-mode\n"
     911                       "        Controls the forced directory mode mask.\n"
     912                       "\n"
     913                       "    --new-dir-mode <mode>\n"
     914                       "        Controls the default mode mask for directories that are created "
     915                       "        implicitly.  The --dir-mode option overrides this.\n"
     916                       "\n"
     917                       "\n"
     918                       "Options - Booting:\n"
     919                       "\n"
     920                       "    --eltorito-new-entry\n"
     921                       "    --eltorito-alt-boot\n"
     922                       "        Starts a new El Torito boot entry.\n"
     923                       "\n"
     924                       "    --eltorito-add-image <filespec>\n"
     925                       "        File specification of a file that should be added to the image and used\n"
     926                       "        as the El Torito boot image of the current boot entry.\n"
     927                       "\n"
     928                       "    -b <on-ISO-file>\n"
     929                       "    --eltorito-boot <on-ISO-file>\n"
     930                       "        Specifies a file on the ISO as the El Torito boot image for the current\n"
     931                       "        boot entry.\n"
     932                       "\n"
     933                       "    --eltorito-floppy-12\n"
     934                       "    --eltorito-floppy-144\n"
     935                       "    --eltorito-floppy-288\n"
     936                       "    --no-emulation-boot\n"
     937                       "    --hard-disk-boot\n"
     938                       "        Sets the boot image emulation type of the current El Torito boot entry.\n"
     939                       "\n"
     940                       "    --boot-load-seg <seg>\n"
     941                       "        Specify the image load segment for the current El Torito boot entry.\n"
     942                       "        Default: 0x7c0\n"
     943                       "\n"
     944                       "    --boot-load-size <seg>\n"
     945                       "        Specify the image load size in emulated sectors for the current El Torito\n"
     946                       "        boot entry.  Default: 4 (sectors of 512 bytes)\n"
     947                       "\n"
     948                       "    --no-boot\n"
     949                       "        Indicates that the current El Torito boot entry isn't bootable. (The\n"
     950                       "        BIOS will allegedly configure the emulation, but not attempt booting.)\n"
     951                       "\n"
     952                       "    --boot-info-table\n"
     953                       "        Write a isolinux/syslinux boot info table into the boot image for the\n"
     954                       "        current El Torito boot entry.\n"
     955                       "\n"
     956                       "    --eltorito-platform-id <id>\n"
     957                       "        Set the El Torito platform ID of the current entry, a new entry of the\n"
     958                       "        verification entry depending on when it's used.  The ID must be one\n"
     959                       "        of: x86, PPC, Mac, efi\n"
     960                       "\n"
     961                       "    -c <namespec>\n"
     962                       "    --boot-catalog <namespec>\n"
     963                       "        Enters the El Torito boot catalog into the namespaces as a file.  The\n"
     964                       "        'namespec' uses the same format as a 'filespec', but omits the final\n"
     965                       "        source file system name component.\n"
     966                       "\n"
     967                       "    -G <file>\n"
     968                       "    --generic-boot <file>\n"
     969                       "        Specifies a file that should be loaded at offset 0 in the ISO image.\n"
     970                       "        The file must not be larger than 32KB.  When creating a hybrid image,\n"
     971                       "        parts of this may be regenerated by partition tables and such.\n"
     972                       "\n"
     973                       "\n"
     974                       "Options - String properties:\n"
     975                       "\n"
     976                       "    --abstract <file-id>\n"
     977                       "        The name of the abstract file in the root dir.\n"
     978                       "\n"
     979                       "    -A <text|_file-id>\n"
     980                       "    --application-id <text|_file-id>\n"
     981                       "        Application ID string or root file name.  The latter must be prefixed\n"
     982                       "        with an underscore.\n"
     983                       "\n"
     984                       "    --biblio <file-id>\n"
     985                       "        The name of the bibliographic file in the root dir.\n"
     986                       "\n"
     987                       "    --copyright <file-id>\n"
     988                       "        The name of the copyright file in the root dir.\n"
     989                       "\n"
     990                       "    -P <text|_file-id>\n"
     991                       "    --publisher <text|_file-id>\n"
     992                       "        Publisher ID string or root file name.  The latter must be prefixed\n"
     993                       "        with an underscore.\n"
     994                       "\n"
     995                       "    -p <text|_file-id>\n"
     996                       "    --preparer <text|_file-id>\n"
     997                       "        Data preparer ID string or root file name.  The latter must be prefixed\n"
     998                       "        with an underscore.\n"
     999                       "\n"
     1000                       "    --sysid <text>\n"
     1001                       "        System ID string.\n"
     1002                       "\n"
     1003                       "    --volid <text>\n"
     1004                       "    --volume-id <text>\n"
     1005                       "        Volume ID string.\n"
     1006                       "\n"
     1007                       "    --volset <text>\n"
     1008                       "        Volume set ID string.\n"
     1009                       "\n"
     1010                       "\n"
     1011                       "Options - Compatibility:\n"
     1012                       "\n"
     1013                       "    --graft-points\n"
     1014                       "        Alias for --name-setup iso+joliet+udf+hfs.\n"
     1015                       "\n"
     1016                       "    -l\n"
     1017                       "    --long-names\n"
     1018                       "        Allow 31 charater filenames.  Just ensure ISO level >= 2 here.\n"
     1019                       "\n"
     1020                       "Options - VISO specific:\n"
     1021                       "\n"
     1022                       "    --iprt-iso-maker-file-marker <UUID>\n"
     1023                       "    --iprt-iso-maker-file-marker-bourne <UUID>\n"
     1024                       "    --iprt-iso-maker-file-marker-bourne-sh <UUID>\n"
     1025                       "        Used as first option in a VISO file to specify the file UUID and that\n"
     1026                       "        it is formatted using bourne-shell argument quoting & escaping style.\n"
     1027                       "\n"
     1028                       "    --iprt-iso-maker-file-marker-ms <UUID>\n"
     1029                       "    --iprt-iso-maker-file-marker-ms-sh <UUID>\n"
     1030                       "        Used as first option in a VISO file to specify the file UUID and that\n"
     1031                       "        it is formatted using microsoft CRT argument quoting & escaping style.\n"
     1032                       "\n"
     1033                       "\n"
     1034                       "Options - Testing:\n"
     1035                       "\n"
     1036                       "    --output-buffer-size <bytes>\n"
     1037                       "        Selects a specific output buffer size for testing virtual image reads.\n"
     1038                       "\n"
     1039                       "    --random-output-buffer-size\n"
     1040                       "        Enables randomized buffer size for each virtual image read, using the\n"
     1041                       "        current output buffer size (--output-buffer-size) as maximum.\n"
     1042                       "\n"
     1043                       "    --random-order-verification <size>\n"
     1044                       "        Enables verification pass of the image that compares blocks of the given\n"
     1045                       "        size in random order from the virtual and output images\n"
     1046                       "\n"
     1047                       , RTPathFilename(pszProgName));
     1048
     1049
    7861050}
    7871051
     
    27703034 *
    27713035 * @returns IPRT status code.
     3036 * @retval  VINF_CALLBACK_RETURN if exit successfully (help, version).
    27723037 * @param   pOpts               The ISO maker command instance.
    27733038 * @param   cArgs               Number of arguments in papszArgs.
     
    29913256                break;
    29923257
     3258            case RTFSISOMAKERCMD_OPT_GRAFT_POINTS:
     3259                rc = rtFsIsoMakerCmdOptNameSetup(pOpts, "iso+joliet+udf+hfs");
     3260                break;
     3261
     3262            case 'l':
     3263                if (RTFsIsoMakerGetIso9660Level(pOpts->hIsoMaker) >= 2)
     3264                    break;
     3265                ValueUnion.u8 = 2;
     3266                /* fall thru */
     3267            case RTFSISOMAKERCMD_OPT_ISO_LEVEL:
     3268                rc = RTFsIsoMakerSetIso9660Level(pOpts->hIsoMaker, ValueUnion.u8);
     3269                if (RT_FAILURE(rc))
     3270                    rc = rtFsIsoMakerCmdErrorRc(pOpts, rc, "Failed to set ISO level to %d: %Rrc", ValueUnion.u8, rc);
     3271                break;
     3272
    29933273
    29943274            /*
     
    29973277            case 'h':
    29983278                rtFsIsoMakerCmdUsage(pOpts, papszArgs[0]);
    2999                 return pOpts->fVirtualImageMaker ? VERR_NOT_FOUND : VINF_SUCCESS;
     3279                return pOpts->fVirtualImageMaker ? VERR_NOT_FOUND : VINF_CALLBACK_RETURN;
    30003280
    30013281            case 'V':
    30023282                rtFsIsoMakerPrintf(pOpts, "%sr%d\n", RTBldCfgVersion(), RTBldCfgRevision());
    3003                 return pOpts->fVirtualImageMaker ? VERR_NOT_FOUND : VINF_SUCCESS;
     3283                return pOpts->fVirtualImageMaker ? VERR_NOT_FOUND : VINF_CALLBACK_RETURN;
    30043284
    30053285            default:
     
    30663346     */
    30673347    rc = rtFsIsoMakerCmdParse(&Opts, cArgs, papszArgs, 0);
    3068     if (RT_SUCCESS(rc))
     3348    if (RT_SUCCESS(rc) && rc != VINF_CALLBACK_RETURN)
    30693349    {
    30703350        if (!Opts.cItemsAdded)
     
    30723352        else if (!Opts.pszOutFile && !Opts.fVirtualImageMaker)
    30733353            rc = rtFsIsoMakerCmdErrorRc(&Opts, VERR_INVALID_PARAMETER, "No output file specified (--output <file>)");
    3074     }
    3075 
    3076     /*
    3077      * Final actions.
    3078      */
    3079     if (RT_SUCCESS(rc))
    3080         rc = rtFsIsoMakerCmdOptEltoritoCommitBootCatalog(&Opts);
    3081     if (RT_SUCCESS(rc))
    3082     {
     3354
    30833355        /*
    3084          * Finalize the image and get the virtual file.
     3356         * Final actions.
    30853357         */
    3086         rc = RTFsIsoMakerFinalize(Opts.hIsoMaker);
     3358        if (RT_SUCCESS(rc))
     3359            rc = rtFsIsoMakerCmdOptEltoritoCommitBootCatalog(&Opts);
    30873360        if (RT_SUCCESS(rc))
    30883361        {
    3089             RTVFSFILE hVfsFile;
    3090             rc = RTFsIsoMakerCreateVfsOutputFile(Opts.hIsoMaker, &hVfsFile);
     3362            /*
     3363             * Finalize the image and get the virtual file.
     3364             */
     3365            rc = RTFsIsoMakerFinalize(Opts.hIsoMaker);
    30913366            if (RT_SUCCESS(rc))
    30923367            {
    3093                 /*
    3094                  * We're done now if we're only setting up a virtual image.
    3095                  */
    3096                 if (Opts.fVirtualImageMaker)
    3097                     *phVfsFile = hVfsFile;
     3368                RTVFSFILE hVfsFile;
     3369                rc = RTFsIsoMakerCreateVfsOutputFile(Opts.hIsoMaker, &hVfsFile);
     3370                if (RT_SUCCESS(rc))
     3371                {
     3372                    /*
     3373                     * We're done now if we're only setting up a virtual image.
     3374                     */
     3375                    if (Opts.fVirtualImageMaker)
     3376                        *phVfsFile = hVfsFile;
     3377                    else
     3378                    {
     3379                        rc = rtFsIsoMakerCmdWriteImage(&Opts, hVfsFile);
     3380                        RTVfsFileRelease(hVfsFile);
     3381                    }
     3382                }
    30983383                else
    3099                 {
    3100                     rc = rtFsIsoMakerCmdWriteImage(&Opts, hVfsFile);
    3101                     RTVfsFileRelease(hVfsFile);
    3102                 }
     3384                    rc = rtFsIsoMakerCmdErrorRc(&Opts, rc, "RTFsIsoMakerCreateVfsOutputFile failed: %Rrc", rc);
    31033385            }
    31043386            else
    3105                 rc = rtFsIsoMakerCmdErrorRc(&Opts, rc, "RTFsIsoMakerCreateVfsOutputFile failed: %Rrc", rc);
     3387                rc = rtFsIsoMakerCmdErrorRc(&Opts, rc, "RTFsIsoMakerFinalize failed: %Rrc", rc);
    31063388        }
    3107         else
    3108             rc = rtFsIsoMakerCmdErrorRc(&Opts, rc, "RTFsIsoMakerFinalize failed: %Rrc", rc);
    31093389    }
    31103390
  • trunk/src/VBox/Runtime/tools/Makefile.kmk

    r67317 r68813  
    2929
    3030
     31# RTIsoMaker - ISO image maker - build version.
     32BLDPROGS += bldRTIsoMaker
     33bldRTIsoMaker_TEMPLATE = VBoxAdvBldProg
     34bldRTIsoMaker_SOURCES = \
     35        RTIsoMaker.cpp \
     36       ../common/misc/buildconfig.cpp
     37bldRTIsoMaker_DEFS = \
     38        IPRT_BLDCFG_SCM_REV=$(if $(VBOX_SVN_REV_FALLBACK),$(VBOX_SVN_REV_FALLBACK),$(VBOX_SVN_REV)) \
     39        IPRT_BLDCFG_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \
     40        IPRT_BLDCFG_VERSION_MAJOR=$(VBOX_VERSION_MAJOR) \
     41        IPRT_BLDCFG_VERSION_MINOR=$(VBOX_VERSION_MINOR) \
     42        IPRT_BLDCFG_VERSION_BUILD=$(VBOX_VERSION_BUILD) \
     43        IPRT_BLDCFG_TARGET=\"$(KBUILD_TARGET)\" \
     44        IPRT_BLDCFG_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\" \
     45        IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\"
     46bldRTIsoMaker_INCS = ../include
     47
    3148# RTManifest is a tool for creating and verifying manifest files - build version.
    3249BLDPROGS += bldRTManifest
     
    4966 RTCat_TEMPLATE = VBoxR3Tool
    5067 RTCat_SOURCES = RTCat.cpp
     68
     69 # RTIsoMaker - ISO image maker - build version.
     70 PROGRAMS += RTIsoMaker
     71 RTIsoMaker_TEMPLATE = VBoxR3Tool
     72 RTIsoMaker_SOURCES = RTIsoMaker.cpp
    5173
    5274 # RTLs is a tool for listing file information.
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette