VirtualBox

Changeset 98732 in vbox for trunk/src/VBox/Runtime


Ignore:
Timestamp:
Feb 25, 2023 6:26:14 PM (2 years ago)
Author:
vboxsync
Message:

Config.kmk,Runtime: Add support for xz archives using liblzma-5.4.1, bugref:10254

Location:
trunk/src/VBox/Runtime
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/Makefile.kmk

    r98513 r98732  
    342342ifdef IPRT_WITH_LZO
    343343 RuntimeBaseR3_DEFS        += RTZIP_USE_LZO
     344endif
     345ifdef VBOX_WITH_LIBLZMA
     346 RuntimeBaseR3_DEFS        += IPRT_WITH_LZMA
     347 RuntimeBaseR3_SDKS        += VBoxLibLzma
    344348endif
    345349ifn1of ($(KBUILD_TARGET), win)
     
    812816        r3/generic/semspinmutex-r3-generic.cpp \
    813817        r3/xml.cpp \
    814         common/zip/xarvfs.cpp
     818        common/zip/xarvfs.cpp \
     819        common/zip/lzmavfs.cpp \
    815820
    816821
     
    18331838        r3/xml.cpp \
    18341839        common/zip/xarvfs.cpp \
     1840        common/zip/lzmavfs.cpp \
    18351841        common/misc/json.cpp \
    18361842        generic/RTLogWriteStdErr-generic.cpp \
     
    24652471        common/vfs/vfsstdpipe.cpp \
    24662472        common/zip/gzipvfs.cpp \
     2473        common/zip/lzmavfs.cpp \
    24672474        common/zip/tarcmd.cpp \
    24682475        common/zip/tarvfs.cpp \
     
    27072714RuntimeGuestR3_TEMPLATE                 := VBoxGuestR3Lib
    27082715RuntimeGuestR3_EXTENDS                  := RuntimeR3
    2709 RuntimeGuestR3_DEFS                      = $(filter-out RTCRITSECT_STRICT RT_NO_GIP IN_SUP_R3, $(RuntimeR3_DEFS))
     2716RuntimeGuestR3_DEFS                      = $(filter-out RTCRITSECT_STRICT RT_NO_GIP IN_SUP_R3 IPRT_WITH_LZMA, $(RuntimeR3_DEFS))
    27102717RuntimeGuestR3_SOURCES                   = $(filter-out \
    27112718        common/time/timesupref.cpp \
     
    27132720        common/time/timesup.cpp \
    27142721        common/zip/xarvfs.cpp \
     2722        common/zip/lzmavfs.cpp \
    27152723        r3/xml.cpp \
    27162724        generic/RTLogWriteUser-generic.cpp \
     
    27742782 VBoxRT_SDKS                  += VBoxLibCurl
    27752783endif
     2784ifdef VBOX_WITH_LIBLZMA
     2785 VBoxRT_SDKS                  += VBoxLibLzma
     2786endif
    27762787VBoxRT_SDKS                   += VBoxOpenSslStatic
    27772788if1of ($(KBUILD_TARGET_ARCH), $(VBOX_SUPPORTED_HOST_ARCHS))
     
    27942805ifdef VBOX_WITH_LIBCURL
    27952806 VBoxRT_DEFS                  += IPRT_WITH_HTTP
     2807endif
     2808ifdef VBOX_WITH_LIBLZMA
     2809 VBoxRT_DEFS                  += IPRT_WITH_LZMA
    27962810endif
    27972811ifdef RTALLOC_REPLACE_MALLOC
     
    30113025ifdef VBOX_WITH_LIBCURL
    30123026 VBoxRT-x86_SDKS += VBoxLibCurl-x86
     3027endif
     3028ifdef VBOX_WITH_LIBZMA
     3029 VBoxRT-x86_SDKS += VBoxLibLzma-x86
    30133030endif
    30143031VBoxRT-x86_SDKS  += VBoxOpenSslStatic-x86
  • trunk/src/VBox/Runtime/common/zip/tarcmd.cpp

    r98462 r98732  
    126126    /** Whether to handle directories recursively or not. Defaults to \c true. */
    127127    bool            fRecursive;
    128     /** The compressor/decompressor method to employ (0, z or j). */
     128    /** The compressor/decompressor method to employ (0, z or j or J). */
    129129    char            chZipper;
    130130
     
    597597                RTMsgError("Failed to open gzip decompressor: %Rrc", rc);
    598598            break;
     599
     600#ifdef IPRT_WITH_LZMA
     601        /* xz/lzma */
     602        case 'J':
     603            rc = RTZipXzCompressIoStream(hVfsIos, 0 /*fFlags*/, 6, &hVfsIosComp);
     604            if (RT_FAILURE(rc))
     605                RTMsgError("Failed to open xz compressor: %Rrc", rc);
     606            break;
     607#endif
    599608
    600609        /* bunzip2 */
     
    861870            break;
    862871
     872#ifdef IPRT_WITH_LZMA
     873        /* xz/lzma */
     874        case 'J':
     875            rc = RTZipXzDecompressIoStream(hVfsIos, 0 /*fFlags*/, &hVfsIosDecomp);
     876            if (RT_FAILURE(rc))
     877                RTMsgError("Failed to open gzip decompressor: %Rrc", rc);
     878            break;
     879#endif
     880
    863881        /* bunzip2 */
    864882        case 'j':
     
    16681686             "    -z, --gzip, --gunzip, --ungzip        (all)\n"
    16691687             "        Compress/decompress the archive with gzip.\n"
     1688#ifdef IPRT_WITH_LZMA
     1689             "    -J, --xz                              (all)\n"
     1690             "        Compress/decompress the archive using xz/lzma.\n"
     1691#endif
    16701692             "\n");
    16711693    RTPrintf("Misc Options:\n"
     
    17501772        { "--gunzip",               'z',                                RTGETOPT_REQ_NOTHING },
    17511773        { "--ungzip",               'z',                                RTGETOPT_REQ_NOTHING },
     1774#ifdef IPRT_WITH_LZMA
     1775        { "--xz",                   'J',                                RTGETOPT_REQ_NOTHING },
     1776#endif
    17521777
    17531778        /* other options. */
     
    18421867            case 'j':
    18431868            case 'z':
     1869#ifdef IPRT_WITH_LZMA
     1870            case 'J':
     1871#endif
    18441872                if (Opts.chZipper)
    18451873                    return RTMsgErrorExit(RTEXITCODE_SYNTAX, "You may only specify one compressor / decompressor");
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