diff --git a/headers/os/package/hpkg/PackageWriter.h b/headers/os/package/hpkg/PackageWriter.h index 92e3ce1b55..6b3a9be5fc 100644 --- a/headers/os/package/hpkg/PackageWriter.h +++ b/headers/os/package/hpkg/PackageWriter.h @@ -48,6 +48,7 @@ public: ~BPackageWriter(); status_t Init(const char* fileName, uint32 flags = 0); + void SetCheckLicenses(bool checkLicenses); status_t AddEntry(const char* fileName, int fd = -1); status_t Finish(); diff --git a/headers/private/package/hpkg/PackageWriterImpl.h b/headers/private/package/hpkg/PackageWriterImpl.h index 298a159121..2a24b6638c 100644 --- a/headers/private/package/hpkg/PackageWriterImpl.h +++ b/headers/private/package/hpkg/PackageWriterImpl.h @@ -43,6 +43,7 @@ public: ~PackageWriterImpl(); status_t Init(const char* fileName, uint32 flags); + void SetCheckLicenses(bool checkLicenses); status_t AddEntry(const char* fileName, int fd = -1); status_t Finish(); @@ -147,6 +148,7 @@ private: StringCache fStringCache; BPackageInfo fPackageInfo; + bool fCheckLicenses; }; diff --git a/src/kits/package/hpkg/PackageWriter.cpp b/src/kits/package/hpkg/PackageWriter.cpp index 67304d0dcc..dd548087ac 100644 --- a/src/kits/package/hpkg/PackageWriter.cpp +++ b/src/kits/package/hpkg/PackageWriter.cpp @@ -39,6 +39,14 @@ BPackageWriter::Init(const char* fileName, uint32 flags) } +void +BPackageWriter::SetCheckLicenses(bool checkLicenses) +{ + if (fImpl != NULL) + fImpl->SetCheckLicenses(checkLicenses); +} + + status_t BPackageWriter::AddEntry(const char* fileName, int fd) { diff --git a/src/kits/package/hpkg/PackageWriterImpl.cpp b/src/kits/package/hpkg/PackageWriterImpl.cpp index 7ce51700a8..db8a9b7ce8 100644 --- a/src/kits/package/hpkg/PackageWriterImpl.cpp +++ b/src/kits/package/hpkg/PackageWriterImpl.cpp @@ -455,7 +455,8 @@ PackageWriterImpl::PackageWriterImpl(BPackageWriterListener* listener) fDataBufferSize(2 * B_HPKG_DEFAULT_DATA_CHUNK_SIZE_ZLIB), fRootEntry(NULL), fRootAttribute(NULL), - fTopAttribute(NULL) + fTopAttribute(NULL), + fCheckLicenses(true) { } @@ -484,6 +485,13 @@ PackageWriterImpl::Init(const char* fileName, uint32 flags) } +void +PackageWriterImpl::SetCheckLicenses(bool checkLicenses) +{ + fCheckLicenses = checkLicenses; +} + + status_t PackageWriterImpl::AddEntry(const char* fileName, int fd) { @@ -569,9 +577,11 @@ PackageWriterImpl::Finish() RegisterPackageInfo(PackageAttributes(), fPackageInfo); - status_t result = _CheckLicenses(); - if (result != B_OK) - return result; + if (fCheckLicenses) { + status_t result = _CheckLicenses(); + if (result != B_OK) + return result; + } if ((Flags() & B_HPKG_WRITER_UPDATE_PACKAGE) != 0) _CompactHeap();