Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package bcmatroska2 for openSUSE:Factory 
checked in at 2023-01-04 17:53:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bcmatroska2 (Old)
 and      /work/SRC/openSUSE:Factory/.bcmatroska2.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bcmatroska2"

Wed Jan  4 17:53:30 2023 rev:6 rq:1055876 version:5.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/bcmatroska2/bcmatroska2.changes  2022-08-29 
11:59:40.570255773 +0200
+++ /work/SRC/openSUSE:Factory/.bcmatroska2.new.1563/bcmatroska2.changes        
2023-01-04 17:53:45.294589076 +0100
@@ -1,0 +2,8 @@
+Wed Jan  4 11:41:13 UTC 2023 - Paolo Stivanin <[email protected]>
+
+- Update to 5.2.1 (no changelog).
+- Add fix-cmakelist-version.patch
+- Add remove-file.patch
+- Add fix-libmatroska-cmake.patch
+
+-------------------------------------------------------------------

Old:
----
  _service
  _servicedata
  bcmatroska2-0.23+git.20210209.tar.xz

New:
----
  bcmatroska2-5.2.1.tar.bz2
  fix-cmakelist-version.patch
  fix-libmatroska-cmake.patch
  remove-file.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bcmatroska2.spec ++++++
--- /var/tmp/diff_new_pack.lnXRUy/_old  2023-01-04 17:53:46.470596009 +0100
+++ /var/tmp/diff_new_pack.lnXRUy/_new  2023-01-04 17:53:46.474596032 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package bcmatroska2
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,17 +18,21 @@
 
 %define sover   0
 Name:           bcmatroska2
-Version:        0.23+git.20210209
+Version:        5.2.1
 Release:        0
 Summary:        C Library to Deal with Matroska Files
 License:        BSD-3-Clause AND Zlib AND GPL-2.0-or-later
 Group:          Development/Libraries/C and C++
 URL:            https://gitlab.linphone.org/BC/public/bcmatroska2
-Source:         bcmatroska2-%{version}.tar.xz
+Source:         
https://gitlab.linphone.org/BC/public/bcmatroska2/-/archive/%{version}/%{name}-%{version}.tar.bz2
 Source1:        baselibs.conf
 Patch0:         bcmatroska2-include-subdir.patch
+Patch1:         fix-cmakelist-version.patch
+Patch2:         remove-file.patch
+Patch3:         fix-libmatroska-cmake.patch
 BuildRequires:  chrpath
 BuildRequires:  cmake
+BuildRequires:  pkgconfig(bctoolbox) >= 5.2.0
 
 %description
 Bcmatroska2 is a C library to parse Matroska files (.mkv and .mka).
@@ -46,20 +50,18 @@
 Requires:       lib%{name}-%{sover} = %{version}
 # Needed by mediastreamer2. This is a fake minor version because upstream 
didn't release
 # a '.1', therefore we've gotta use this workaround.
-Provides:       %{name}-devel = 0.23.1
+Provides:       %{name}-devel = 5.2.1
 
 %description devel
 This package includes the files necessary for compiling and linking
 applications which will use libbcmatroska2.
 
 %prep
-%setup -q
-%patch0 -p1
+%autosetup -p1
 
 %build
 %cmake \
-  -DENABLE_STATIC=OFF \
-  -DENABLE_STRICT=OFF
+  -DENABLE_STATIC=OFF
 %cmake_build
 
 %install

++++++ bcmatroska2-0.23+git.20210209.tar.xz -> bcmatroska2-5.2.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bcmatroska2-0.23+git.20210209/CMakeLists.txt 
new/bcmatroska2-5.2.1/CMakeLists.txt
--- old/bcmatroska2-0.23+git.20210209/CMakeLists.txt    2021-02-09 
21:29:18.000000000 +0100
+++ new/bcmatroska2-5.2.1/CMakeLists.txt        2022-11-29 11:25:07.000000000 
+0100
@@ -45,6 +45,8 @@
 
 configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
 
+find_package(bctoolbox REQUIRED CONFIG)
+
 include_directories(
        ${CMAKE_BINARY_DIR}
        corec
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bcmatroska2-0.23+git.20210209/build/rpm/bcmatroska2.spec.cmake 
new/bcmatroska2-5.2.1/build/rpm/bcmatroska2.spec.cmake
--- old/bcmatroska2-0.23+git.20210209/build/rpm/bcmatroska2.spec.cmake  
2021-02-09 21:29:18.000000000 +0100
+++ new/bcmatroska2-5.2.1/build/rpm/bcmatroska2.spec.cmake      2022-11-29 
11:25:07.000000000 +0100
@@ -21,6 +21,8 @@
 Source0:        %{name}-%{version}.tar.gz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 
+Requires:      %{pkg_prefix}bctoolbox
+
 %description
 A libary to parse Matroska files (.mkv and .mka).
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bcmatroska2-0.23+git.20210209/corec/corec/CMakeLists.txt 
new/bcmatroska2-5.2.1/corec/corec/CMakeLists.txt
--- old/bcmatroska2-0.23+git.20210209/corec/corec/CMakeLists.txt        
2021-02-09 21:29:18.000000000 +0100
+++ new/bcmatroska2-5.2.1/corec/corec/CMakeLists.txt    2022-11-29 
11:25:07.000000000 +0100
@@ -44,7 +44,7 @@
        list(APPEND COREC_SOURCES
                helpers/charconvert/charconvert_win32.c
                helpers/date/date_win32.c
-               helpers/file/file_win32.c
+               helpers/file/file_bctbx_win32.c
                helpers/system/ccsystem_win32.c
                multithread/multithread_win32.c
                str/str_win32.c
@@ -53,6 +53,7 @@
        list(APPEND COREC_SOURCES
                helpers/date/date_libc.c
                helpers/file/file_libc.c
+               helpers/file/file_bctbx.c
                multithread/multithread_pthread.c
        )
        if (NOT IOS) 
@@ -91,6 +92,8 @@
 
 add_library(corec-objects OBJECT ${COREC_SOURCES})
 set_target_properties(corec-objects PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
+target_include_directories(corec-objects PRIVATE
+                $<TARGET_PROPERTY:bctoolbox,INTERFACE_INCLUDE_DIRECTORIES>)
 
 install(FILES
        banned.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bcmatroska2-0.23+git.20210209/corec/corec/helpers/file/file.proj 
new/bcmatroska2-5.2.1/corec/corec/helpers/file/file.proj
--- old/bcmatroska2-0.23+git.20210209/corec/corec/helpers/file/file.proj        
2021-02-09 21:29:18.000000000 +0100
+++ new/bcmatroska2-5.2.1/corec/corec/helpers/file/file.proj    2022-11-29 
11:25:07.000000000 +0100
@@ -11,13 +11,13 @@
   SOURCE streams.c {class Streams_Class:1}
   SOURCE tools.c
 
-  SOURCE(TARGET_LINUX || TARGET_OSX || TARGET_ANDROID) file_libc.c {class 
File_Class:1}
+  SOURCE(TARGET_LINUX || TARGET_OSX || TARGET_ANDROID) file_bctbx.c {class 
File_Class:1}
   SOURCE(TARGET_PALMOS) file_palmos.c {class File_Class:1}
   SOURCE(TARGET_PALMOS) filedb_palmos.c {class FileDb_Class:1}
   SOURCE(TARGET_PALMOS) filevfs_palmos.c {class VFS_Class:1}
   SOURCE(TARGET_PS2SDK) file_ps2sdk.c {class File_Class:1 reg FileXio:2}
   SOURCE(TARGET_SYMBIAN) file_symbian.cpp {class File_Class:1}
-  SOURCE(TARGET_WIN) file_win32.c {class File_Class:1}
+  SOURCE(TARGET_WIN) file_bctbx_win32.c {class File_Class:1}
   SOURCE(CONFIG_STDIO && !TARGET_PALMOS) stream_stdio.c {class Stdio_Class:2}
 
   USE(TARGET_PS2SDK) ps2sdk_filexio
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bcmatroska2-0.23+git.20210209/corec/corec/helpers/file/file_bctbx.c 
new/bcmatroska2-5.2.1/corec/corec/helpers/file/file_bctbx.c
--- old/bcmatroska2-0.23+git.20210209/corec/corec/helpers/file/file_bctbx.c     
1970-01-01 01:00:00.000000000 +0100
+++ new/bcmatroska2-5.2.1/corec/corec/helpers/file/file_bctbx.c 2022-11-29 
11:25:07.000000000 +0100
@@ -0,0 +1,417 @@
+/*****************************************************************************
+ *
+ * Copyright (c) 2008-2010, CoreCodec, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of CoreCodec, Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CoreCodec, Inc. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL CoreCodec, Inc. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 
THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+#include "config.h"
+
+#ifdef CONFIG_FILEPOS_64
+#define __USE_FILE_OFFSET64
+#endif
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <errno.h>
+
+#define bool_t bctbx_bool_t
+#include <bctoolbox/vfs.h>
+#undef bool_t
+
+// Do not move. Define TARGET_*.
+#include "file.h"
+
+#if defined(TARGET_OSX)
+#include <sys/mount.h>
+#elif defined(TARGET_QNX)
+#include <sys/statvfs.h>
+#else
+#include <sys/vfs.h>
+#endif
+
+#if defined(O_ACCMODE)
+#define _RW_ACCESS_FILE  (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
+#define _RW_ACCESS_DIR  (S_IRWXU|S_IRWXG|S_IRWXO)
+#elif defined(S_IREAD) && defined(S_IWRITE)
+#define _RW_ACCESS_FILE  (S_IREAD|S_IWRITE)
+#define _RW_ACCESS_DIR  (S_IREAD|S_IWRITE|S_IEXEC)
+#endif
+
+typedef struct filestream
+{
+       stream Stream;
+       bctbx_vfs_file_t *fp;
+       tchar_t URL[MAXPATH]; // TODO: turn into a dynamic data
+       filepos_t Length;
+       int Flags;
+
+       tchar_t DirPath[MAXPATH]; // TODO: turn into a dynamic data
+       DIR *FindDir;
+
+} filestream;
+
+static err_t Open(filestream* p, const tchar_t* URL, int Flags)
+{
+       if (p->fp != -1)
+               bctbx_file_close(p->fp);
+
+       p->Length = INVALID_FILEPOS_T;
+       p->fp = NULL;
+
+       if (URL && URL[0])
+       {
+               struct stat file_stats;
+               int mode = 0;
+
+               if (Flags & SFLAG_WRONLY && !(Flags & SFLAG_RDONLY))
+                       mode = O_WRONLY;
+               else if (Flags & SFLAG_RDONLY && !(Flags & SFLAG_WRONLY))
+                       mode = O_RDONLY;
+               else
+                       mode = O_RDWR;
+
+               if (Flags & SFLAG_CREATE)
+                       mode |= O_CREAT|O_TRUNC;
+
+               //TODO: verify it works with Unicode files too
+               p->fp = bctbx_file_open2(bctbx_vfs_get_default(), URL, mode);
+               if (p->fp == NULL)
+               {
+                       if ((Flags & (SFLAG_REOPEN|SFLAG_SILENT))==0)
+                               
NodeReportError(p,NULL,ERR_ID,ERR_FILE_NOT_FOUND,URL);
+                       return ERR_FILE_NOT_FOUND;
+               }
+
+               tcscpy_s(p->URL,TSIZEOF(p->URL),URL);
+
+               if (stat(URL, &file_stats) == 0)
+                       p->Length = file_stats.st_size;
+
+       }
+       return ERR_NONE;
+}
+
+static err_t Read(filestream* p,void* Data,size_t Size,size_t* Readed)
+{
+       err_t Err;
+       int n = bctbx_file_read2(p->fp, Data, (unsigned int)Size);
+       if (n<0)
+       {
+               n=0;
+               Err = ERR_READ;
+       }
+       else
+               Err = ((size_t)n != Size) ? ERR_END_OF_FILE:ERR_NONE;
+
+       if (Readed)
+               *Readed = n;
+       return Err;
+}
+
+static err_t ReadBlock(filestream* p,block* Block,size_t Ofs,size_t 
Size,size_t* Readed)
+{
+       return Read(p,(void*)(Block->Ptr+Ofs),Size,Readed);
+}
+
+static err_t Write(filestream* p,const void* Data,size_t Size,size_t* Written)
+{
+       err_t Err;
+       int n = bctbx_file_write2(p->fp, Data, (unsigned int)Size);
+
+       if (n<0)
+       {
+               n=0;
+               Err = ERR_WRITE;
+       }
+       else
+               Err = (n != Size) ? ERR_WRITE:ERR_NONE;
+
+       if (Written)
+               *Written = n;
+       return Err;
+}
+
+static filepos_t Seek(filestream* p,filepos_t Pos,int SeekMode)
+{
+       off_t NewPos = bctbx_file_seek(p->fp, Pos, SeekMode);
+       if (NewPos<0)
+               return INVALID_FILEPOS_T;
+       return NewPos;
+}
+
+static err_t SetLength(filestream* p,dataid Id,const filepos_t* Data,size_t 
Size)
+{
+       if (Size != sizeof(filepos_t))
+               return ERR_INVALID_DATA;
+
+       if (bctbx_file_truncate(p->fp, *Data)!=0)
+               return ERR_BUFFER_FULL;
+
+       return ERR_NONE;
+}
+
+static err_t OpenDir(filestream* p,const tchar_t* Path,int UNUSED_PARAM(Flags))
+{
+       if (p->FindDir)
+               closedir(p->FindDir);
+
+       if (Path[0]==0)
+               Path = T("/");
+
+       p->FindDir = opendir(Path);
+       if (!p->FindDir)
+       {
+               if (errno == ENOTDIR)
+                       return ERR_NOT_DIRECTORY;
+               else
+                       return ERR_FILE_NOT_FOUND;
+       }
+
+       tcscpy_s(p->DirPath,TSIZEOF(p->DirPath),Path);
+       AddPathDelimiter(p->DirPath,TSIZEOF(p->DirPath));
+       return ERR_NONE;
+}
+
+extern datetime_t LinuxToDateTime(time_t);
+
+static err_t EnumDir(filestream* p,const tchar_t* Exts,bool_t 
ExtFilter,streamdir* Item)
+{
+       struct dirent *Dirent;
+
+       if (!p->FindDir)
+               return ERR_END_OF_FILE;
+
+       Item->FileName[0] = 0;
+       Item->Size = INVALID_FILEPOS_T;
+
+       while (!Item->FileName[0] && (Dirent = readdir(p->FindDir)) != NULL)
+       {
+               tchar_t FilePath[MAXPATH];
+               struct stat file_stats;
+
+               if (Dirent->d_name[0]=='.') // skip hidden files and current 
directory
+                       continue;
+
+               tcscpy_s(FilePath, TSIZEOF(FilePath), p->DirPath);
+               tcscat_s(FilePath, TSIZEOF(FilePath), Dirent->d_name);
+               tcscpy_s(Item->FileName,TSIZEOF(Item->FileName), 
Dirent->d_name);
+
+               stat(FilePath, &file_stats);
+
+               Item->ModifiedDate = LinuxToDateTime(file_stats.st_mtime);
+               if (S_ISDIR(file_stats.st_mode))
+               {
+                       Item->Type = FTYPE_DIR;
+                       Item->Size = INVALID_FILEPOS_T;
+               }
+               else
+               {
+                       Item->Size = file_stats.st_size;
+                       Item->Type = CheckExts(Item->FileName,Exts);
+
+                       if (!Item->Type && ExtFilter)
+                               Item->FileName[0] = 0; // skip
+               }
+       }
+
+       if (!Item->FileName[0])
+       {
+               closedir(p->FindDir);
+               p->FindDir = NULL;
+               return ERR_END_OF_FILE;
+       }
+
+       return ERR_NONE;
+}
+
+static void Delete(filestream* p)
+{
+       if (p->fp != NULL)
+       {
+               bctbx_file_close(p->fp);
+               p->fp = NULL;
+       }
+       if (p->FindDir)
+               closedir(p->FindDir);
+}
+
+META_START(File_Class,FILE_CLASS)
+META_CLASS(SIZE,sizeof(filestream))
+META_CLASS(PRIORITY,PRI_MINIMUM)
+META_CLASS(DELETE,Delete)
+META_VMT(TYPE_FUNC,stream_vmt,Open,Open)
+META_VMT(TYPE_FUNC,stream_vmt,Read,Read)
+META_VMT(TYPE_FUNC,stream_vmt,ReadBlock,ReadBlock)
+META_VMT(TYPE_FUNC,stream_vmt,Write,Write)
+META_VMT(TYPE_FUNC,stream_vmt,Seek,Seek)
+META_VMT(TYPE_FUNC,stream_vmt,OpenDir,OpenDir)
+META_VMT(TYPE_FUNC,stream_vmt,EnumDir,EnumDir)
+META_CONST(TYPE_INT,filestream,fp,NULL)
+META_DATA_RDONLY(TYPE_INT,STREAM_FLAGS,filestream,Flags)
+META_DATA_RDONLY(TYPE_STRING,STREAM_URL,filestream,URL)
+META_DATA_RDONLY(TYPE_STRING,STREAM_ENUM_BASE,filestream,DirPath)
+META_PARAM(SET,STREAM_LENGTH,SetLength)
+META_DATA(TYPE_FILEPOS,STREAM_LENGTH,filestream,Length)
+META_PARAM(STRING,NODE_PROTOCOL,T("file"))
+META_END(STREAM_CLASS)
+
+bool_t FileExists(nodecontext *p,const tchar_t* Path)
+{
+       struct stat file_stats;
+       return stat(Path, &file_stats) == 0;
+}
+
+bool_t FileErase(nodecontext *p,const tchar_t* Path, bool_t Force, bool_t Safe)
+{
+       if (Force)
+       {
+               struct stat file_stats;
+               if (stat(Path, &file_stats) == 0)
+               {
+                       if ((file_stats.st_mode & S_IWUSR)==0)
+                       {
+                               file_stats.st_mode |= S_IWUSR;
+                               chmod(Path,file_stats.st_mode);
+                       }
+               }
+       }
+       return unlink(Path) == 0;
+}
+
+bool_t FolderErase(nodecontext *p,const tchar_t* Path, bool_t Force, bool_t 
Safe)
+{
+       if (Force)
+       {
+               struct stat file_stats;
+               if (stat(Path, &file_stats) == 0)
+               {
+                       if ((file_stats.st_mode & S_IWUSR)==0)
+                       {
+                               file_stats.st_mode |= S_IWUSR;
+                               chmod(Path,file_stats.st_mode);
+                       }
+               }
+       }
+       return rmdir(Path) == 0;
+}
+
+bool_t PathIsFolder(nodecontext *p,const tchar_t* Path)
+{
+       struct stat file_stats;
+       if (stat(Path, &file_stats) == 0)
+       {
+               return (file_stats.st_mode & S_IFDIR) == S_IFDIR;
+       }
+       return 0;
+}
+
+datetime_t FileDateTime(nodecontext *p,const tchar_t* Path)
+{
+       datetime_t Date = INVALID_DATETIME_T;
+       struct stat file_stats;
+       if (stat(Path, &file_stats) == 0)
+               Date = LinuxToDateTime(file_stats.st_mtime);
+       return Date;
+}
+
+bool_t FileMove(nodecontext *p,const tchar_t* In,const tchar_t* Out)
+{
+       return rename(In,Out) == 0;
+}
+
+bool_t FolderCreate(nodecontext *p,const tchar_t* Path)
+{
+       return mkdir(Path,_RW_ACCESS_DIR) == 0;
+}
+
+void FindFiles(nodecontext *p,const tchar_t* Path, const tchar_t* 
Mask,void(*Process)(const tchar_t*,void*),void* Param)
+{
+       DIR* Directory;
+       struct dirent* DirectoryInfo;
+       tchar_t TPathToFile[MAXPATH];
+
+       Directory = opendir(Path);
+       if (Directory)
+       {
+               while ( (DirectoryInfo = readdir(Directory)) != NULL )
+               {
+                       char* FileExtension = 0;
+                       FileExtension = strrchr(DirectoryInfo->d_name, '.');
+                       if(FileExtension)
+                       {
+                               if (strcmp(Mask, FileExtension ) == 0 )
+                               {
+                                       tcscpy_s(TPathToFile, 
TSIZEOF(TPathToFile), Path);
+                                       tcscat_s(TPathToFile, 
TSIZEOF(TPathToFile), DirectoryInfo->d_name);
+                                       Process(TPathToFile, Param);
+                               }
+                       }
+               }
+
+               closedir(Directory);
+       }
+
+}
+
+stream *FileTemp(anynode *Any)
+{
+#ifndef TODO
+       assert(NULL); // not supported yet
+#endif
+       return NULL;
+}
+
+bool_t FileTempName(anynode *Any,tchar_t *Out, size_t OutLen)
+{
+#ifndef TODO
+       assert(NULL); // not supported yet
+#endif
+       return 0;
+}
+
+int64_t GetPathFreeSpace(nodecontext* UNUSED_PARAM(p), const tchar_t* Path)
+{
+#ifndef TODO
+       // need to an include (see at includes)
+#if defined(TARGET_QNX)
+       struct statvfs st;
+       if (statvfs(Path, &st) < 0)
+#else
+       struct statfs st;
+       if (statfs(Path, &st) < 0)
+#endif
+               return -1;
+       return (int64_t)st.f_bsize * (int64_t)st.f_bavail;
+#else
+       return -1;
+#endif
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/bcmatroska2-0.23+git.20210209/corec/corec/helpers/file/file_bctbx_win32.c 
new/bcmatroska2-5.2.1/corec/corec/helpers/file/file_bctbx_win32.c
--- 
old/bcmatroska2-0.23+git.20210209/corec/corec/helpers/file/file_bctbx_win32.c   
    1970-01-01 01:00:00.000000000 +0100
+++ new/bcmatroska2-5.2.1/corec/corec/helpers/file/file_bctbx_win32.c   
2022-11-29 11:25:07.000000000 +0100
@@ -0,0 +1,553 @@
+/*****************************************************************************
+ *
+ * Copyright (c) 2008-2010, CoreCodec, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of CoreCodec, Inc. nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CoreCodec, Inc. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL CoreCodec, Inc. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 
THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+#include "file.h"
+
+#define bool_t bctbx_bool_t
+#include <bctoolbox/vfs.h>
+#undef bool_t
+
+#if defined(TARGET_WIN)
+
+#define FILE_FUNC_ID  FOURCC('F','L','I','D')
+
+#ifndef STRICT
+#define STRICT
+#endif
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <shellapi.h>
+#include <fileapi.h>
+
+#ifndef FO_DELETE
+#define FO_DELETE   3
+#endif
+#ifndef FOF_NO_UI
+#define FOF_NO_UI (0x04|0x10|0x400|0x200)
+#endif
+
+#if defined(TARGET_WINCE)
+static HMODULE CEShellDLL = NULL;
+#endif
+#ifdef WINDOWS_DESKTOP
+static int (WINAPI* FuncSHFileOperation)(SHFILEOPSTRUCT*) = NULL;
+#else
+static void *FuncSHFileOperation = NULL;
+#endif
+
+#ifndef ERROR_INVALID_DRIVE_OBJECT
+#define ERROR_INVALID_DRIVE_OBJECT             4321L
+#endif
+
+#ifndef ERROR_DEVICE_NOT_AVAILABLE
+#define ERROR_DEVICE_NOT_AVAILABLE             4319L
+#endif
+
+#ifndef ERROR_DEVICE_REMOVED
+#define ERROR_DEVICE_REMOVED            1617L
+#endif
+
+#ifndef INVALID_SET_FILE_POINTER
+#define INVALID_SET_FILE_POINTER        ((DWORD)-1)
+#endif
+
+typedef struct filestream
+{
+       stream Stream;
+       tchar_t URL[MAXPATH];
+       bctbx_vfs_file_t *fp;
+       filepos_t Length;
+       filepos_t Pos;
+       int Flags;
+
+       void* Find;
+       WIN32_FIND_DATA FindData;
+    int DriveNo;
+
+} filestream;
+
+static err_t Open(filestream* p, const tchar_t* URL, int Flags)
+{
+  if (p->fp != -1)
+               bctbx_file_close(p->fp);
+
+       p->Length = INVALID_FILEPOS_T;
+       p->fp = NULL;
+
+       if (URL && URL[0])
+       {
+               struct stat file_stats;
+               int mode = 0;
+#ifdef UNICODE
+               char url_buffer[1024];
+               memset(url_buffer, 0, sizeof(url_buffer));
+#ifdef _WIN32
+               if(WideCharToMultiByte(CP_ACP, 0, URL, -1, url_buffer, 
sizeof(url_buffer), 0, 0) == 0) {
+#else
+               if (wcstombs_s(&return_length, url_buffer, sizeof(url_buffer), 
URL, sizeof(url_buffer) - 1) != 0) {
+#endif
+                       NodeReportError(p, NULL, ERR_ID, ERR_INVALID_PARAM, 
URL);
+                       return ERR_INVALID_PARAM;
+               }
+#else
+               const char* url_buffer = URL;
+#endif
+
+               if (Flags & SFLAG_WRONLY && !(Flags & SFLAG_RDONLY))
+                       mode = O_WRONLY;
+               else if (Flags & SFLAG_RDONLY && !(Flags & SFLAG_WRONLY))
+                       mode = O_RDONLY;
+               else
+                       mode = O_RDWR;
+
+               if (Flags & SFLAG_CREATE)
+                       mode |= O_CREAT|O_TRUNC;
+
+               p->fp = bctbx_file_open2(bctbx_vfs_get_default(), url_buffer, 
mode);
+               if (p->fp == NULL)
+               {
+                       if ((Flags & (SFLAG_REOPEN|SFLAG_SILENT))==0)
+                               
NodeReportError(p,NULL,ERR_ID,ERR_FILE_NOT_FOUND, url_buffer);
+                       return ERR_FILE_NOT_FOUND;
+               }
+
+               tcscpy_s(p->URL,TSIZEOF(p->URL),URL);
+               if (stat(url_buffer, &file_stats) == 0)
+                       p->Length = file_stats.st_size;
+       }
+       return ERR_NONE;
+}
+
+static err_t Read(filestream* p,void* Data,size_t Size,size_t* Readed)
+{
+       err_t Err;
+       int n = bctbx_file_read2(p->fp, Data, (unsigned int)Size);
+       if (n<0)
+       {
+               n=0;
+               Err = ERR_READ;
+       }
+       else
+               Err = ((size_t)n != Size) ? ERR_END_OF_FILE:ERR_NONE;
+
+       if (Readed)
+               *Readed = n;
+       return Err;
+}
+
+static err_t ReadBlock(filestream* p,block* Block,size_t Ofs,size_t 
Size,size_t* Readed)
+{
+       return Read(p,(void*)(Block->Ptr+Ofs),Size,Readed);
+}
+
+static err_t Write(filestream* p,const void* Data,size_t Size,size_t* Written)
+{
+       err_t Err;
+       int n = bctbx_file_write2(p->fp, Data, (unsigned int)Size);
+
+       if (n<0)
+       {
+               n=0;
+               Err = ERR_WRITE;
+       }
+       else
+               Err = (n != Size) ? ERR_WRITE:ERR_NONE;
+
+       if (Written)
+               *Written = n;
+       return Err;
+}
+
+static filepos_t Seek(filestream* p,filepos_t Pos,int SeekMode)
+{
+       off_t NewPos = bctbx_file_seek(p->fp, Pos, SeekMode);
+       if (NewPos<0)
+               return INVALID_FILEPOS_T;
+       return NewPos;
+}
+
+static err_t SetLength(filestream* p,dataid Id,const filepos_t* Data,size_t 
Size)
+{
+       if (Size != sizeof(filepos_t))
+               return ERR_INVALID_DATA;
+
+       if (bctbx_file_truncate(p->fp, *Data)!=0)
+               return ERR_BUFFER_FULL;
+
+       return ERR_NONE;
+}
+
+static err_t OpenDir(filestream* p,const tchar_t* URL,int UNUSED_PARAM(Flags))
+{
+#ifndef WINDOWS_DESKTOP
+       WIN32_FILE_ATTRIBUTE_DATA attr_data;
+#else
+       DWORD Attrib;
+#endif
+       tchar_t Path[MAXPATHFULL];
+
+       if (p->Find != INVALID_HANDLE_VALUE)
+       {
+               FindClose(p->Find);
+               p->Find = INVALID_HANDLE_VALUE;
+       }
+    p->DriveNo = -1;
+
+#if !defined(TARGET_WINCE)
+    if (!URL[0])
+    {
+        p->DriveNo = 0;
+    }
+    else
+#endif
+    {
+#ifndef WINDOWS_DESKTOP
+               if (GetFileAttributesEx(URL, GetFileExInfoStandard, &attr_data) 
== 0)
+                       return ERR_FILE_NOT_FOUND;
+
+               if (!(attr_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
+                       return ERR_NOT_DIRECTORY;
+#else
+               Attrib = GetFileAttributes(URL);
+               if (Attrib == (DWORD)-1)
+                       return ERR_FILE_NOT_FOUND;
+
+               if (!(Attrib & FILE_ATTRIBUTE_DIRECTORY))
+                       return ERR_NOT_DIRECTORY;
+#endif
+
+        tcscpy_s(Path,TSIZEOF(Path),URL);
+        AddPathDelimiter(Path,TSIZEOF(Path));
+        tcscat_s(Path,TSIZEOF(Path),T("*.*"));
+#ifndef WINDOWS_DESKTOP
+               WIN32_FIND_DATA FileData;
+               p->Find = FindFirstFileEx(Path, FindExInfoStandard, &FileData, 
FindExSearchNameMatch, NULL, 0);
+#else
+               p->Find = FindFirstFile(Path, &p->FindData);
+#endif
+    }
+
+    return ERR_NONE;
+}
+
+extern datetime_t FileTimeToRel(FILETIME*);
+
+static err_t EnumDir(filestream* p,const tchar_t* Exts,bool_t 
ExtFilter,streamdir* Item)
+{
+       Item->FileName[0] = 0;
+       Item->DisplayName[0] = 0;
+
+#if !defined(TARGET_WINCE) && defined(WINDOWS_DESKTOP)
+    if (p->DriveNo>=0)
+    {
+        size_t n = GetLogicalDriveStrings(0,NULL);
+        tchar_t* Drives = alloca((n+1)*sizeof(tchar_t));
+        if (GetLogicalDriveStrings((DWORD)n,Drives))
+        {
+            int No = p->DriveNo++;
+
+            while (Drives[0] && --No>=0)
+                Drives += tcslen(Drives)+1;
+
+            if (Drives[0])
+            {
+                size_t n = tcslen(Drives);
+                if (Drives[n-1] == '\\')
+                    Drives[n-1] = 0;
+                tcscpy_s(Item->FileName,TSIZEOF(Item->FileName),Drives);
+                Item->ModifiedDate = INVALID_DATETIME_T;
+                Item->Size = INVALID_FILEPOS_T;
+                Item->Type = FTYPE_DIR;
+            }
+        }
+    }
+    else
+#endif
+    {
+           while (!Item->FileName[0] && p->Find != INVALID_HANDLE_VALUE)
+           {
+                   if (p->FindData.cFileName[0]!='.' && // skip unix/mac 
hidden files and . .. directory entries
+                !(p->FindData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN))
+                   {
+                           
tcscpy_s(Item->FileName,TSIZEOF(Item->FileName),p->FindData.cFileName);
+
+                Item->ModifiedDate = 
FileTimeToRel(&p->FindData.ftLastWriteTime);
+
+                           if (p->FindData.dwFileAttributes & 
FILE_ATTRIBUTE_DIRECTORY)
+                {
+                                   Item->Size = INVALID_FILEPOS_T;
+                    Item->Type = FTYPE_DIR;
+                }
+                           else
+                           {
+                                   Item->Size = 
(filepos_t)(((int64_t)p->FindData.nFileSizeHigh << 32) | 
p->FindData.nFileSizeLow);
+                                   Item->Type = CheckExts(Item->FileName,Exts);
+
+                                   if (!Item->Type && ExtFilter)
+                                           Item->FileName[0] = 0; // skip
+                           }
+                   }
+
+                   if (!FindNextFile(p->Find,&p->FindData))
+                   {
+                           FindClose(p->Find);
+                           p->Find = INVALID_HANDLE_VALUE;
+                   }
+           }
+    }
+
+       if (!Item->FileName[0])
+       {
+               if (p->Find != INVALID_HANDLE_VALUE)
+               {
+                       FindClose(p->Find);
+                       p->Find = INVALID_HANDLE_VALUE;
+               }
+        p->DriveNo = -1;
+               return ERR_END_OF_FILE;
+       }
+
+       return ERR_NONE;
+}
+
+static void Delete(filestream* p)
+{
+       Open(p,NULL,0);
+       if (p->Find != INVALID_HANDLE_VALUE)
+               FindClose(p->Find);
+}
+
+static err_t CreateFunc(node* UNUSED_PARAM(p))
+{
+#if defined(TARGET_WINCE)
+       CEShellDLL = LoadLibrary(T("ceshell.dll"));
+       if (CEShellDLL)
+               *(FARPROC*)(void*)&FuncSHFileOperation = 
GetProcAddress(CEShellDLL,MAKEINTRESOURCE(14));
+#elif defined(ENABLE_MICROSOFT_STORE_APP)
+    FuncSHFileOperation = NULL;
+#elif defined(WINDOWS_DESKTOP)
+    FuncSHFileOperation = SHFileOperation;
+#endif
+
+    return ERR_NONE;
+}
+
+static void DeleteFunc(node* UNUSED_PARAM(p))
+{
+#if defined(TARGET_WINCE)
+       if (CEShellDLL) FreeLibrary(CEShellDLL);
+#endif
+}
+
+META_START(File_Class,FILE_CLASS)
+META_CLASS(SIZE,sizeof(filestream))
+META_CLASS(PRIORITY,PRI_MINIMUM)
+META_CLASS(DELETE,Delete)
+META_VMT(TYPE_FUNC,stream_vmt,Open,Open)
+META_VMT(TYPE_FUNC,stream_vmt,Read,Read)
+META_VMT(TYPE_FUNC,stream_vmt,ReadBlock,ReadBlock)
+META_VMT(TYPE_FUNC,stream_vmt,Write,Write)
+META_VMT(TYPE_FUNC,stream_vmt,Seek,Seek)
+META_VMT(TYPE_FUNC,stream_vmt,OpenDir,OpenDir)
+META_VMT(TYPE_FUNC,stream_vmt,EnumDir,EnumDir)
+META_CONST(TYPE_PTR,filestream,Find,INVALID_HANDLE_VALUE)
+META_DATA_RDONLY(TYPE_INT,STREAM_FLAGS,filestream,Flags)
+META_DATA_RDONLY(TYPE_STRING,STREAM_URL,filestream,URL)
+META_PARAM(SET,STREAM_LENGTH,SetLength)
+META_DATA(TYPE_FILEPOS,STREAM_LENGTH,filestream,Length)
+META_PARAM(STRING,NODE_PROTOCOL,T("file"))
+META_END_CONTINUE(STREAM_CLASS)
+
+META_START_CONTINUE(FILE_FUNC_ID)
+META_CLASS(FLAGS,CFLAG_SINGLETON)
+META_CLASS(CREATE,CreateFunc)
+META_CLASS(DELETE,DeleteFunc)
+META_END(NODE_CLASS)
+
+bool_t FolderCreate(nodecontext* UNUSED_PARAM(p),const tchar_t* Path)
+{
+       return CreateDirectory(Path,NULL) != FALSE;
+}
+
+bool_t FileExists(nodecontext* UNUSED_PARAM(p),const tchar_t* Path)
+{
+#ifndef WINDOWS_DESKTOP
+       WIN32_FILE_ATTRIBUTE_DATA attr_data;
+       return GetFileAttributesEx(Path, GetFileExInfoStandard, &attr_data) != 
0;
+#else
+       return GetFileAttributes(Path) != (DWORD)-1;
+#endif
+}
+
+#ifdef WINDOWS_DESKTOP
+static bool_t FileRecycle(const tchar_t* Path)
+{
+    tchar_t PathEnded[MAXPATHFULL];
+    SHFILEOPSTRUCT DelStruct;
+    int Ret;
+    size_t l;
+
+    memset(&DelStruct,0,sizeof(DelStruct));
+    DelStruct.wFunc = FO_DELETE;
+    l = min(tcslen(Path)+1,TSIZEOF(PathEnded)-1);
+    tcscpy_s(PathEnded,TSIZEOF(PathEnded),Path);
+    PathEnded[l]=0;
+    DelStruct.pFrom = PathEnded;
+    DelStruct.fFlags = FOF_ALLOWUNDO|FOF_NO_UI;
+    Ret = FuncSHFileOperation(&DelStruct);
+    return Ret == 0;
+}
+#endif
+
+bool_t FileErase(nodecontext* UNUSED_PARAM(p),const tchar_t* Path, bool_t 
Force, bool_t Safe)
+{
+    if (Force)
+    {
+#ifndef WINDOWS_DESKTOP
+               WIN32_FILE_ATTRIBUTE_DATA attr_data;
+               if ((GetFileAttributesEx(Path, GetFileExInfoStandard, 
&attr_data) != 0) && (attr_data.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
+                       attr_data.dwFileAttributes ^= FILE_ATTRIBUTE_READONLY;
+                       SetFileAttributes(Path, attr_data.dwFileAttributes);
+               }
+#else
+               DWORD attr = GetFileAttributes(Path);
+        if ((attr != (DWORD)-1) && (attr & FILE_ATTRIBUTE_READONLY))
+        {
+            attr ^= FILE_ATTRIBUTE_READONLY;
+            SetFileAttributes(Path,attr);
+        }
+#endif
+    }
+
+#ifndef WINDOWS_DESKTOP
+       return DeleteFile(Path) != FALSE;
+#else
+    if (!Safe || !FuncSHFileOperation)
+       return DeleteFile(Path) != FALSE;
+    else
+        return FileRecycle(Path);
+#endif
+}
+
+bool_t FolderErase(nodecontext* UNUSED_PARAM(p),const tchar_t* Path, bool_t 
Force, bool_t Safe)
+{
+    if (Force)
+    {
+#ifndef WINDOWS_DESKTOP
+               WIN32_FILE_ATTRIBUTE_DATA attr_data;
+               if ((GetFileAttributesEx(Path, GetFileExInfoStandard, 
&attr_data) != 0) && (attr_data.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
+                       attr_data.dwFileAttributes ^= FILE_ATTRIBUTE_READONLY;
+                       SetFileAttributes(Path, attr_data.dwFileAttributes);
+               }
+#else
+        DWORD attr = GetFileAttributes(Path);
+        if ((attr != (DWORD)-1) && (attr & FILE_ATTRIBUTE_READONLY))
+        {
+            attr ^= FILE_ATTRIBUTE_READONLY;
+            SetFileAttributes(Path,attr);
+        }
+#endif
+    }
+
+#ifndef WINDOWS_DESKTOP
+       return RemoveDirectory(Path) != FALSE;
+#else
+    if (!Safe || !FuncSHFileOperation)
+       return RemoveDirectory(Path) != FALSE;
+    else
+        return FileRecycle(Path);
+#endif
+}
+
+bool_t PathIsFolder(nodecontext* UNUSED_PARAM(p),const tchar_t* Path)
+{
+#ifndef WINDOWS_DESKTOP
+       WIN32_FILE_ATTRIBUTE_DATA attr_data;
+       return (GetFileAttributesEx(Path, GetFileExInfoStandard, &attr_data) != 
0) && ((attr_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 
FILE_ATTRIBUTE_DIRECTORY);
+#else
+       DWORD attr = GetFileAttributes(Path);
+       return (attr != (DWORD)-1) && (attr & FILE_ATTRIBUTE_DIRECTORY) == 
FILE_ATTRIBUTE_DIRECTORY;
+#endif
+}
+
+datetime_t FileDateTime(nodecontext* UNUSED_PARAM(p),const tchar_t* Path)
+{
+       datetime_t Date = INVALID_DATETIME_T;
+       HANDLE Find;
+       WIN32_FIND_DATA FindData;
+
+#ifndef WINDOWS_DESKTOP
+       WIN32_FIND_DATA FileData;
+       Find = FindFirstFileEx(Path, FindExInfoStandard, &FileData, 
FindExSearchNameMatch, NULL, 0);
+#else
+       Find = FindFirstFile(Path, &FindData);
+#endif
+       if (Find != INVALID_HANDLE_VALUE)
+       {
+               Date = FileTimeToRel(&FindData.ftLastWriteTime);
+               FindClose(Find);
+       }
+       return Date;
+}
+
+bool_t FileMove(nodecontext* UNUSED_PARAM(p),const tchar_t* In,const tchar_t* 
Out)
+{
+#ifndef WINDOWS_DESKTOP
+       return MoveFileEx(In, Out, 0);
+#else
+    return MoveFile(In,Out) != 0;
+#endif
+}
+
+stream *FileTemp(anynode* UNUSED_PARAM(Any))
+{
+#ifndef TODO
+    assert(NULL); // not supported yet
+#endif
+    return NULL;
+}
+
+bool_t FileTempName(anynode* UNUSED_PARAM(Any),tchar_t* UNUSED_PARAM(Out), 
size_t UNUSED_PARAM(OutLen))
+{
+#ifndef TODO
+    assert(NULL); // not supported yet
+#endif
+    return 0;
+}
+
+FILE_DLL int64_t GetPathFreeSpace(nodecontext* UNUSED_PARAM(p), const tchar_t* 
Path)
+{
+    ULARGE_INTEGER lpFreeBytesAvailable;
+    ULARGE_INTEGER lpTotal;
+
+    if (!GetDiskFreeSpaceEx(Path, &lpFreeBytesAvailable, &lpTotal, NULL))
+        return -1;
+    return (int64_t)lpFreeBytesAvailable.QuadPart;
+}
+#endif

++++++ bcmatroska2-include-subdir.patch ++++++
--- /var/tmp/diff_new_pack.lnXRUy/_old  2023-01-04 17:53:46.918598649 +0100
+++ /var/tmp/diff_new_pack.lnXRUy/_new  2023-01-04 17:53:46.922598673 +0100
@@ -1,7 +1,8 @@
-diff -ru a/BcMatroska2Config.cmake.in b/BcMatroska2Config.cmake.in
---- a/BcMatroska2Config.cmake.in       2021-07-14 11:19:44.426789310 +0200
-+++ b/BcMatroska2Config.cmake.in       2021-07-14 11:21:50.035321221 +0200
-@@ -39,6 +39,6 @@
+Index: bcmatroska2-5.2.1/BcMatroska2Config.cmake.in
+===================================================================
+--- bcmatroska2-5.2.1.orig/BcMatroska2Config.cmake.in
++++ bcmatroska2-5.2.1/BcMatroska2Config.cmake.in
+@@ -39,6 +39,6 @@ else()
        get_target_property(BCMATROSKA2_LIBRARIES ${BCMATROSKA2_TARGETNAME} 
LOCATION)
  endif()
  
@@ -9,10 +10,11 @@
 +set(BCMATROSKA2_INCLUDE_DIRS "@CMAKE_INSTALL_FULL_INCLUDEDIR@/bcmatroska2")
  
  set(BCMATROSKA2_FOUND 1)
-diff -ru a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt   2021-07-14 11:19:44.426789310 +0200
-+++ b/CMakeLists.txt   2021-07-14 11:21:14.463170591 +0200
-@@ -73,7 +73,7 @@
+Index: bcmatroska2-5.2.1/CMakeLists.txt
+===================================================================
+--- bcmatroska2-5.2.1.orig/CMakeLists.txt
++++ bcmatroska2-5.2.1/CMakeLists.txt
+@@ -75,7 +75,7 @@ add_subdirectory(libebml2)
  add_subdirectory(libmatroska2)
  
  install(FILES ${CMAKE_BINARY_DIR}/config.h
@@ -21,10 +23,11 @@
  )
  
  include(CMakePackageConfigHelpers)
-diff -ru a/corec/corec/CMakeLists.txt b/corec/corec/CMakeLists.txt
---- a/corec/corec/CMakeLists.txt       2021-07-14 11:19:44.426789310 +0200
-+++ b/corec/corec/CMakeLists.txt       2021-07-14 11:22:56.323601950 +0200
-@@ -101,18 +101,18 @@
+Index: bcmatroska2-5.2.1/corec/corec/CMakeLists.txt
+===================================================================
+--- bcmatroska2-5.2.1.orig/corec/corec/CMakeLists.txt
++++ bcmatroska2-5.2.1/corec/corec/CMakeLists.txt
+@@ -104,18 +104,18 @@ install(FILES
        memalloc.h
        memheap.h
        portab.h
@@ -49,7 +52,7 @@
  install(FILES
        helpers/parser/buffer.h
        helpers/parser/dataheap.h
-@@ -122,16 +122,16 @@
+@@ -125,16 +125,16 @@ install(FILES
        helpers/parser/strtab.h
        helpers/parser/strtypes.h
        helpers/parser/urlpart.h
@@ -71,21 +74,22 @@
  )
 -install(FILES str/str.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/corec/str)
 +install(FILES str/str.h DESTINATION 
${CMAKE_INSTALL_INCLUDEDIR}/bcmatroska2/corec/str)
-Binary files a/.git/index and b/.git/index differ
-diff -ru a/libebml2/CMakeLists.txt b/libebml2/CMakeLists.txt
---- a/libebml2/CMakeLists.txt  2021-07-14 11:19:44.442789377 +0200
-+++ b/libebml2/CMakeLists.txt  2021-07-14 11:20:29.858981710 +0200
-@@ -34,5 +34,5 @@
+Index: bcmatroska2-5.2.1/libebml2/CMakeLists.txt
+===================================================================
+--- bcmatroska2-5.2.1.orig/libebml2/CMakeLists.txt
++++ bcmatroska2-5.2.1/libebml2/CMakeLists.txt
+@@ -34,5 +34,5 @@ add_library(ebml2-objects OBJECT
  set_target_properties(ebml2-objects PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
  
  install(DIRECTORY ebml
 -      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
 +      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bcmatroska2
  )
-diff -ru a/libmatroska2/CMakeLists.txt b/libmatroska2/CMakeLists.txt
---- a/libmatroska2/CMakeLists.txt      2021-07-14 11:19:44.442789377 +0200
-+++ b/libmatroska2/CMakeLists.txt      2021-07-14 11:20:08.898892951 +0200
-@@ -76,5 +76,5 @@
+Index: bcmatroska2-5.2.1/libmatroska2/CMakeLists.txt
+===================================================================
+--- bcmatroska2-5.2.1.orig/libmatroska2/CMakeLists.txt
++++ bcmatroska2-5.2.1/libmatroska2/CMakeLists.txt
+@@ -76,5 +76,5 @@ if(ENABLE_SHARED)
  endif()
  
  install(DIRECTORY matroska

++++++ fix-cmakelist-version.patch ++++++
--- bcmatroska2-5.2.1/CMakeLists.txt.orig       2023-01-04 12:40:40.042374227 
+0100
+++ bcmatroska2-5.2.1/CMakeLists.txt    2023-01-04 12:40:46.822409717 +0100
@@ -23,7 +23,7 @@
 cmake_minimum_required(VERSION 3.1)
 
 project(bcmatroska2
-       VERSION 0.23
+       VERSION 5.2.1
        LANGUAGES C
 )
 

++++++ fix-libmatroska-cmake.patch ++++++
--- bcmatroska2-5.2.1/libmatroska2/CMakeLists.txt.orig  2023-01-04 
14:22:06.937952129 +0100
+++ bcmatroska2-5.2.1/libmatroska2/CMakeLists.txt       2023-01-04 
14:22:37.018106870 +0100
@@ -49,7 +49,7 @@
        )
 endif()
 if(ENABLE_SHARED)
-       add_library(bcmatroska2 SHARED $<TARGET_OBJECTS:corec-objects> 
$<TARGET_OBJECTS:ebml2-objects> ${MATROSKA2_SOURCE_FILES})
+       add_library(bcmatroska2 SHARED $<TARGET_OBJECTS:corec-objects> 
$<TARGET_OBJECTS:ebml2-objects> $<TARGET_OBJECTS:bctoolbox> 
${MATROSKA2_SOURCE_FILES})
        set_target_properties(bcmatroska2 PROPERTIES VERSION 0.0.0 SOVERSION 0)
        set_target_properties(bcmatroska2 PROPERTIES POSITION_INDEPENDENT_CODE 
TRUE)
        if(NOT "${LINK_FLAGS_STR}" STREQUAL "")

++++++ remove-file.patch ++++++
--- bcmatroska2/corec/corec/CMakeLists.txt.orig 2023-01-04 14:08:11.653653391 
+0100
+++ bcmatroska2/corec/corec/CMakeLists.txt      2023-01-04 14:08:24.565720225 
+0100
@@ -52,7 +52,6 @@
 else()
        list(APPEND COREC_SOURCES
                helpers/date/date_libc.c
-               helpers/file/file_libc.c
                helpers/file/file_bctbx.c
                multithread/multithread_pthread.c
        )

Reply via email to