[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor-browser-build/master] Bug 40306: Update Windows toolchain to switch to mozilla91
commit d1ed741bff7be58757d8135c4646b3875ab96183
Author: Nicolas Vigier <boklm@xxxxxxxxxxxxxx>
Date: Thu Aug 5 11:47:57 2021 +0200
Bug 40306: Update Windows toolchain to switch to mozilla91
---
projects/binutils/config | 5 -
projects/clang/build | 2 +-
projects/clang/config | 8 -
projects/mingw-w64-clang/build | 28 +-
projects/mingw-w64-clang/config | 7 +-
projects/mingw-w64-clang/mingw-unknown.patch | 46 ++
projects/mingw-w64-clang/mingw-winrt.patch | 1028 +-------------------------
projects/mingw-w64/config | 6 +-
projects/ninja/build | 5 +
projects/node/config | 4 +
projects/rust/config | 2 +-
projects/tor-browser/build | 10 +-
projects/tor-browser/config | 6 +-
projects/tor-browser/pe_checksum_fix.py | 6 +-
rbm.conf | 7 +-
15 files changed, 120 insertions(+), 1050 deletions(-)
diff --git a/projects/binutils/config b/projects/binutils/config
index 86aaf29..7eb4ac6 100644
--- a/projects/binutils/config
+++ b/projects/binutils/config
@@ -7,11 +7,6 @@ var:
use_container: 1
targets:
- # We use the windows-clang target for the binutils we use for building
- # clang during windows builds. See projects/clang/config.
- windows-clang:
- var:
- configure_opt: '--disable-multilib --enable-gold --enable-deterministic-archives --enable-plugins'
windows:
var:
configure_opt: '--target=[% c("arch") %]-w64-mingw32 --disable-multilib --enable-deterministic-archives'
diff --git a/projects/clang/build b/projects/clang/build
index 41669b9..2f31dbf 100644
--- a/projects/clang/build
+++ b/projects/clang/build
@@ -12,7 +12,7 @@ export PATH="/var/tmp/dist/cmake/bin:$PATH"
ln -s gcc /var/tmp/dist/gcc/bin/cc
[% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %]
[% END -%]
-[% IF c("var/linux") || c("var/android") || c("var/windows") -%]
+[% IF c("var/linux") || c("var/android") -%]
tar -C /var/tmp/dist -xf [% c('input_files_by_name/binutils') %]
export PATH="/var/tmp/dist/binutils/bin:$PATH"
[% END -%]
diff --git a/projects/clang/config b/projects/clang/config
index 038a44b..855c200 100644
--- a/projects/clang/config
+++ b/projects/clang/config
@@ -20,14 +20,6 @@ input_files:
- name: binutils
project: binutils
enable: '[% c("var/linux") %] || [% c("var/android") %]'
- # We build our own binutils as the one from buster has a regression:
- # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=953423
- # https://sourceware.org/bugzilla/show_bug.cgi?id=24458
- - name: binutils
- project: binutils
- enable: '[% c("var/windows") %]'
- target_prepend:
- - windows-clang
- project: cmake
name: cmake
- project: clang-source
diff --git a/projects/mingw-w64-clang/build b/projects/mingw-w64-clang/build
index 974d2a9..00b1171 100644
--- a/projects/mingw-w64-clang/build
+++ b/projects/mingw-w64-clang/build
@@ -11,7 +11,7 @@ mkdir -p $builddir
cd $builddir
tar -xf $rootdir/mingw-w64-clang-[% c('version') %].tar.gz
mv mingw-w64-clang-[% c('version') %] mingw-w64-clang
-tar -xf $rootdir/[% c('input_files_by_name/clang-source') %]
+tar -xf $rootdir/[% c('input_files_by_name/llvm-project') %]
tar -xf $rootdir/[% c('input_files_by_name/llvm-mingw') %]
# Adding the wrappers and symlinks we need
@@ -61,6 +61,7 @@ default_win32_winnt=0x601
cd $builddir/mingw-w64-clang
patch -p1 < $rootdir/mingw-winrt.patch
patch -p1 < $rootdir/mingw-dwrite_3.patch
+patch -p1 < $rootdir/mingw-unknown.patch
cd mingw-w64-headers
mkdir build && cd build
@@ -92,7 +93,7 @@ make -j[% c("buildconf/num_procs") %]
make -j[% c("buildconf/num_procs") %] install
# compiler-rt
-cd $builddir/clang-source/projects/compiler-rt
+cd $builddir/clang-source/compiler-rt
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=$CC \
@@ -102,9 +103,9 @@ cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER_WORKS=1 \
-DCMAKE_C_COMPILER_TARGET=$compiler_rt_machine-windows-gnu \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=TRUE \
- $builddir/clang-source/projects/compiler-rt/lib/builtins
+ $builddir/clang-source/compiler-rt/lib/builtins
make -j[% c("buildconf/num_procs") %]
- rtdir=$distdir/lib/clang/[% pc("clang-source", "version") %]/lib/windows
+ rtdir=$distdir/lib/clang/[% pc("llvm-project", "version") %]/lib/windows
mkdir -p $rtdir
cp lib/windows/libclang_rt.builtins-$compiler_rt_machine.a $rtdir/
@@ -130,14 +131,14 @@ cmake -DCMAKE_BUILD_TYPE=Release \
-DLIBUNWIND_ENABLE_THREADS=TRUE \
-DLIBUNWIND_ENABLE_SHARED=FALSE \
-DLIBUNWIND_ENABLE_CROSS_UNWINDING=FALSE \
- -DCMAKE_CXX_FLAGS="-Wno-dll-attribute-on-redeclaration -nostdinc++ -I$builddir/clang-source/projects/libcxx/include -DPSAPI_VERSION=2" \
+ -DCMAKE_CXX_FLAGS="-Wno-dll-attribute-on-redeclaration -nostdinc++ -I$builddir/clang-source/libcxx/include -DPSAPI_VERSION=2" \
-DCMAKE_C_FLAGS="-Wno-dll-attribute-on-redeclaration" \
$builddir/clang-source/libunwind
make -j[% c("buildconf/num_procs") %]
make -j[% c("buildconf/num_procs") %] install
# libcxxabi
-cd $builddir/clang-source/projects/libcxxabi
+cd $builddir/clang-source/libcxxabi
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
@@ -156,19 +157,16 @@ cmake -DCMAKE_BUILD_TYPE=Release \
-DLIBCXXABI_ENABLE_THREADS=ON \
-DLIBCXXABI_TARGET_TRIPLE=[% c("arch") %]-w64-mingw32 \
-DLIBCXXABI_ENABLE_SHARED=OFF \
- -DLIBCXXABI_LIBCXX_INCLUDES=$builddir/clang-source/projects/libcxx/include \
+ -DLIBCXXABI_LIBCXX_INCLUDES=$builddir/clang-source/libcxx/include \
-DLLVM_NO_OLD_LIBSTDCXX=TRUE \
-DCXX_SUPPORTS_CXX11=TRUE \
-DCXX_SUPPORTS_CXX_STD=True \
-DCMAKE_CXX_FLAGS="-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_HAS_THREAD_API_WIN32" \
- $builddir/clang-source/projects/libcxxabi
+ $builddir/clang-source/libcxxabi
make -j[% c("buildconf/num_procs") %] VERBOSE=1
# libcxx
-# the build expects ../llvm to exist so we add a symlink
-# See https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/merge_requests/240#note_2729207
-ln -s /var/tmp/build/clang-source /var/tmp/build/clang-source/projects/llvm
-cd $builddir/clang-source/projects/libcxx
+cd $builddir/clang-source/libcxx
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
@@ -194,10 +192,10 @@ cmake -DCMAKE_BUILD_TYPE=Release \
-DLIBCXX_ENABLE_FILESYSTEM=OFF \
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \
-DLIBCXX_CXX_ABI=libcxxabi \
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$builddir/clang-source/projects/libcxxabi/include \
- -DLIBCXX_CXX_ABI_LIBRARY_PATH=$builddir/clang-source/projects/libcxxabi/build/lib \
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$builddir/clang-source/libcxxabi/include \
+ -DLIBCXX_CXX_ABI_LIBRARY_PATH=$builddir/clang-source/libcxxabi/build/lib \
-DCMAKE_CXX_FLAGS="-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS" \
- $builddir/clang-source/projects/libcxx
+ $builddir/clang-source/libcxx
make -j[% c("buildconf/num_procs") %] VERBOSE=1
make -j[% c("buildconf/num_procs") %] install
diff --git a/projects/mingw-w64-clang/config b/projects/mingw-w64-clang/config
index 080c75b..b589b53 100644
--- a/projects/mingw-w64-clang/config
+++ b/projects/mingw-w64-clang/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
-git_hash: 660e09f3cb20f181b6d6435cb623d65a3922a063
+git_hash: cdb052f1d4056cd510cb83197b55868427b87476
version: '[% c("abbrev") %]'
var:
@@ -18,9 +18,10 @@ input_files:
name: clang
- project: cmake
name: cmake
- - project: clang-source
- name: clang-source
+ - project: llvm-project
+ name: llvm-project
- project: llvm-mingw
name: llvm-mingw
- filename: mingw-winrt.patch
- filename: mingw-dwrite_3.patch
+ - filename: mingw-unknown.patch
diff --git a/projects/mingw-w64-clang/mingw-unknown.patch b/projects/mingw-w64-clang/mingw-unknown.patch
new file mode 100644
index 0000000..cca10e9
--- /dev/null
+++ b/projects/mingw-w64-clang/mingw-unknown.patch
@@ -0,0 +1,46 @@
+From ae5fe7a557873f05a4954f4b3a47e4b41053a406 Mon Sep 17 00:00:00 2001
+From: Tom Ritter <tom@xxxxxxxxx>
+Date: Tue, 29 Jun 2021 23:10:24 -0400
+Subject: [PATCH] Add back the IUnknown_QI functions
+
+---
+ mingw-w64-headers/include/unknwn.h | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/mingw-w64-headers/include/unknwn.h b/mingw-w64-headers/include/unknwn.h
+index d8c309071..968c41d61 100644
+--- a/mingw-w64-headers/include/unknwn.h
++++ b/mingw-w64-headers/include/unknwn.h
+@@ -167,6 +167,29 @@ static FORCEINLINE ULONG IUnknown_Release(IUnknown* This) {
+
+ #endif
+
++HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(
++ IUnknown* This,
++ REFIID riid,
++ void **ppvObject);
++void __RPC_STUB IUnknown_QueryInterface_Stub(
++ IRpcStubBuffer* This,
++ IRpcChannelBuffer* pRpcChannelBuffer,
++ PRPC_MESSAGE pRpcMessage,
++ DWORD* pdwStubPhase);
++ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(
++ IUnknown* This);
++void __RPC_STUB IUnknown_AddRef_Stub(
++ IRpcStubBuffer* This,
++ IRpcChannelBuffer* pRpcChannelBuffer,
++ PRPC_MESSAGE pRpcMessage,
++ DWORD* pdwStubPhase);
++ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(
++ IUnknown* This);
++void __RPC_STUB IUnknown_Release_Stub(
++ IRpcStubBuffer* This,
++ IRpcChannelBuffer* pRpcChannelBuffer,
++ PRPC_MESSAGE pRpcMessage,
++ DWORD* pdwStubPhase);
+
+ #endif /* __IUnknown_INTERFACE_DEFINED__ */
+
+--
+2.25.1
+
diff --git a/projects/mingw-w64-clang/mingw-winrt.patch b/projects/mingw-w64-clang/mingw-winrt.patch
index e7124e1..526844c 100644
--- a/projects/mingw-w64-clang/mingw-winrt.patch
+++ b/projects/mingw-w64-clang/mingw-winrt.patch
@@ -1,995 +1,30 @@
-commit 07fff0900d668fbd75e0ac0a6382a86d486cee88
-Author: Jacek Caban <jacek@xxxxxxxxxxxxxxx>
-Date: Sun Mar 24 21:20:55 2019 +0100
+From 105a640ff423978987112d8f37edfbfc29c014f9 Mon Sep 17 00:00:00 2001
+From: Tom Ritter <tom@xxxxxxxxx>
+Date: Wed, 30 Jun 2021 09:25:45 -0400
+Subject: [PATCH] winrt headers
- winrt headers
+---
+ .../include/windows.foundation.metadata.h | 315 ++
+ .../include/windows.foundation.numerics.h | 204 ++
+ .../include/windows.graphics.directx.h | 343 ++
+ .../include/windows.graphics.effects.h | 184 +
+ .../include/windows.ui.composition.h | 3212 +++++++++++++++++
+ .../include/windows.ui.composition.interop.h | 31 +
+ mingw-w64-headers/include/windows.ui.core.h | 127 +
+ mingw-w64-headers/include/windows.ui.h | 72 +
+ 8 files changed, 4488 insertions(+)
+ create mode 100644 mingw-w64-headers/include/windows.foundation.metadata.h
+ create mode 100644 mingw-w64-headers/include/windows.foundation.numerics.h
+ create mode 100644 mingw-w64-headers/include/windows.graphics.directx.h
+ create mode 100644 mingw-w64-headers/include/windows.graphics.effects.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.composition.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.composition.interop.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.core.h
+ create mode 100644 mingw-w64-headers/include/windows.ui.h
-diff --git a/mingw-w64-headers/include/intsafe.h b/mingw-w64-headers/include/intsafe.h
-index 701d4cef..daaedb83 100644
---- a/mingw-w64-headers/include/intsafe.h
-+++ b/mingw-w64-headers/include/intsafe.h
-@@ -411,5 +411,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongMult, ULONGLONG, mul)
- __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul)
-
- #endif /* __GNUC__ >= 5 */
-+
-+#define SizeTToUInt32 UIntPtrToUInt
-+
- #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
- #endif /* _INTSAFE_H_INCLUDED_ */
-diff --git a/mingw-w64-headers/include/windows.foundation.h b/mingw-w64-headers/include/windows.foundation.h
-index 6c4d3ec8..59797984 100644
---- a/mingw-w64-headers/include/windows.foundation.h
-+++ b/mingw-w64-headers/include/windows.foundation.h
-@@ -1,11 +1,12 @@
--/*** Autogenerated by WIDL 1.5.31 from include/windows.foundation.idl - Do not edit ***/
-+/*** Autogenerated by WIDL 4.4 from windows.foundation.idl - Do not edit ***/
-
-+#ifdef _WIN32
- #ifndef __REQUIRED_RPCNDR_H_VERSION__
- #define __REQUIRED_RPCNDR_H_VERSION__ 475
- #endif
--
- #include <rpc.h>
- #include <rpcndr.h>
-+#endif
-
- #ifndef COM_NO_WINDOWS_H
- #include <windows.h>
-@@ -17,24 +18,18 @@
-
- /* Forward declarations */
-
--#ifndef __IAsyncInfo_FWD_DEFINED__
--#define __IAsyncInfo_FWD_DEFINED__
--typedef interface IAsyncInfo IAsyncInfo;
--#endif
--
--#ifndef __IASyncAction_FWD_DEFINED__
--#define __IASyncAction_FWD_DEFINED__
--typedef interface IASyncAction IASyncAction;
--#endif
--
--#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
--#define __AsyncActionCompletedHandler_FWD_DEFINED__
--typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
--#endif
--
--#ifndef __IAsyncOperation_FWD_DEFINED__
--#define __IAsyncOperation_FWD_DEFINED__
--typedef interface IAsyncOperation IAsyncOperation;
-+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
-+#define ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
-+typedef interface __x_ABI_CWindows_CFoundation_CIStringable __x_ABI_CWindows_CFoundation_CIStringable;
-+#ifdef __cplusplus
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ interface IStringable;
-+ }
-+ }
-+}
-+#endif /* __cplusplus */
- #endif
-
- /* Headers for imported files */
-@@ -45,667 +40,331 @@ typedef interface IAsyncOperation IAsyncOperation;
- extern "C" {
- #endif
-
--#ifndef __IAsyncInfo_FWD_DEFINED__
--#define __IAsyncInfo_FWD_DEFINED__
--typedef interface IAsyncInfo IAsyncInfo;
--#endif
--
--#ifndef __IAsyncAction_FWD_DEFINED__
--#define __IAsyncAction_FWD_DEFINED__
--typedef interface IAsyncAction IAsyncAction;
--#endif
--
--#ifndef __IAsyncOperation_FWD_DEFINED__
--#define __IAsyncOperation_FWD_DEFINED__
--typedef interface IAsyncOperation IAsyncOperation;
--#endif
--
--#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
--#define __AsyncActionCompletedHandler_FWD_DEFINED__
--typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
--#endif
--
--#ifndef __TypedEventHandler_FWD_DEFINED__
--#define __TypedEventHandler_FWD_DEFINED__
--typedef interface TypedEventHandler TypedEventHandler;
--#endif
--
--struct DateTime;
--
--struct EventRegistrationToken;
--
--#ifndef __IVectorView_FWD_DEFINED__
--#define __IVectorView_FWD_DEFINED__
--typedef interface IVectorView IVectorView;
--#endif
--
--#ifndef __IPropertySet_FWD_DEFINED__
--#define __IPropertySet_FWD_DEFINED__
--typedef interface IPropertySet IPropertySet;
--#endif
--
--typedef enum AsyncStatus {
-- Started = 0,
-- Completed = 1,
-- Canceled = 2,
-- Error = 3
--} AsyncStatus;
--typedef struct DateTime {
-- UINT64 UniversalTime;
--} DateTime;
--typedef struct EventRegistrationToken {
-- UINT64 Value;
--} EventRegistrationToken;
--/*****************************************************************************
-- * IAsyncInfo interface
-- */
--#ifndef __IAsyncInfo_INTERFACE_DEFINED__
--#define __IAsyncInfo_INTERFACE_DEFINED__
--
--DEFINE_GUID(IID_IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
--#if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
--IAsyncInfo : public IInspectable
--{
-- virtual HRESULT STDMETHODCALLTYPE get_Id(
-- unsigned int *id) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_Status(
-- AsyncStatus *status) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
-- HRESULT *errorCode) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE Cancel(
-- ) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE Close(
-- ) = 0;
--
--};
--#ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
--#endif
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ enum PropertyType {
-+ PropertyType_Empty = 0,
-+ PropertyType_UInt8 = 1,
-+ PropertyType_Int16 = 2,
-+ PropertyType_UInt16 = 3,
-+ PropertyType_Int32 = 4,
-+ PropertyType_UInt32 = 5,
-+ PropertyType_Int64 = 6,
-+ PropertyType_UInt64 = 7,
-+ PropertyType_Single = 8,
-+ PropertyType_Double = 9,
-+ PropertyType_Char16 = 10,
-+ PropertyType_Boolean = 11,
-+ PropertyType_String = 12,
-+ PropertyType_Inspectable = 13,
-+ PropertyType_DateTime = 14,
-+ PropertyType_TimeSpan = 15,
-+ PropertyType_Guid = 16,
-+ PropertyType_Point = 17,
-+ PropertyType_Size = 18,
-+ PropertyType_Rect = 19,
-+ PropertyType_OtherType = 20,
-+ PropertyType_UInt8Array = 1025,
-+ PropertyType_Int16Array = 1026,
-+ PropertyType_UInt16Array = 1027,
-+ PropertyType_Int32Array = 1028,
-+ PropertyType_UInt32Array = 1029,
-+ PropertyType_Int64Array = 1030,
-+ PropertyType_UInt64Array = 1031,
-+ PropertyType_SingleArray = 1032,
-+ PropertyType_DoubleArray = 1033,
-+ PropertyType_Char16Array = 1034,
-+ PropertyType_BooleanArray = 1035,
-+ PropertyType_StringArray = 1036,
-+ PropertyType_InspectableArray = 1037,
-+ PropertyType_DateTimeArray = 1038,
-+ PropertyType_TimeSpanArray = 1039,
-+ PropertyType_GuidArray = 1040,
-+ PropertyType_PointArray = 1041,
-+ PropertyType_SizeArray = 1042,
-+ PropertyType_RectArray = 1043,
-+ PropertyType_OtherTypeArray = 1044
-+ };
-+ }
-+ }
-+}
-+extern "C" {
- #else
--typedef struct IAsyncInfoVtbl {
-- BEGIN_INTERFACE
--
-- /*** IUnknown methods ***/
-- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- IAsyncInfo* This,
-- REFIID riid,
-- void **ppvObject);
--
-- ULONG (STDMETHODCALLTYPE *AddRef)(
-- IAsyncInfo* This);
--
-- ULONG (STDMETHODCALLTYPE *Release)(
-- IAsyncInfo* This);
--
-- /*** IInspectable methods ***/
-- HRESULT (STDMETHODCALLTYPE *GetIids)(
-- IAsyncInfo* This,
-- ULONG *iidCount,
-- IID **iids);
--
-- HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-- IAsyncInfo* This,
-- HSTRING *className);
--
-- HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-- IAsyncInfo* This,
-- TrustLevel *trustLevel);
--
-- /*** IAsyncInfo methods ***/
-- HRESULT (STDMETHODCALLTYPE *get_Id)(
-- IAsyncInfo* This,
-- unsigned int *id);
--
-- HRESULT (STDMETHODCALLTYPE *get_Status)(
-- IAsyncInfo* This,
-- AsyncStatus *status);
--
-- HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-- IAsyncInfo* This,
-- HRESULT *errorCode);
--
-- HRESULT (STDMETHODCALLTYPE *Cancel)(
-- IAsyncInfo* This);
--
-- HRESULT (STDMETHODCALLTYPE *Close)(
-- IAsyncInfo* This);
--
-- END_INTERFACE
--} IAsyncInfoVtbl;
--interface IAsyncInfo {
-- CONST_VTBL IAsyncInfoVtbl* lpVtbl;
-+enum __x_ABI_CWindows_CFoundation_CPropertyType {
-+ PropertyType_Empty = 0,
-+ PropertyType_UInt8 = 1,
-+ PropertyType_Int16 = 2,
-+ PropertyType_UInt16 = 3,
-+ PropertyType_Int32 = 4,
-+ PropertyType_UInt32 = 5,
-+ PropertyType_Int64 = 6,
-+ PropertyType_UInt64 = 7,
-+ PropertyType_Single = 8,
-+ PropertyType_Double = 9,
-+ PropertyType_Char16 = 10,
-+ PropertyType_Boolean = 11,
-+ PropertyType_String = 12,
-+ PropertyType_Inspectable = 13,
-+ PropertyType_DateTime = 14,
-+ PropertyType_TimeSpan = 15,
-+ PropertyType_Guid = 16,
-+ PropertyType_Point = 17,
-+ PropertyType_Size = 18,
-+ PropertyType_Rect = 19,
-+ PropertyType_OtherType = 20,
-+ PropertyType_UInt8Array = 1025,
-+ PropertyType_Int16Array = 1026,
-+ PropertyType_UInt16Array = 1027,
-+ PropertyType_Int32Array = 1028,
-+ PropertyType_UInt32Array = 1029,
-+ PropertyType_Int64Array = 1030,
-+ PropertyType_UInt64Array = 1031,
-+ PropertyType_SingleArray = 1032,
-+ PropertyType_DoubleArray = 1033,
-+ PropertyType_Char16Array = 1034,
-+ PropertyType_BooleanArray = 1035,
-+ PropertyType_StringArray = 1036,
-+ PropertyType_InspectableArray = 1037,
-+ PropertyType_DateTimeArray = 1038,
-+ PropertyType_TimeSpanArray = 1039,
-+ PropertyType_GuidArray = 1040,
-+ PropertyType_PointArray = 1041,
-+ PropertyType_SizeArray = 1042,
-+ PropertyType_RectArray = 1043,
-+ PropertyType_OtherTypeArray = 1044
- };
--
--#ifdef COBJMACROS
--#ifndef WIDL_C_INLINE_WRAPPERS
--/*** IUnknown methods ***/
--#define IAsyncInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define IAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define IAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
--/*** IInspectable methods ***/
--#define IAsyncInfo_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
--#define IAsyncInfo_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
--#define IAsyncInfo_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
--/*** IAsyncInfo methods ***/
--#define IAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
--#define IAsyncInfo_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
--#define IAsyncInfo_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
--#define IAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
--#define IAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
--#else
--/*** IUnknown methods ***/
--static FORCEINLINE HRESULT IAsyncInfo_QueryInterface(IAsyncInfo* This,REFIID riid,void **ppvObject) {
-- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
--}
--static FORCEINLINE ULONG IAsyncInfo_AddRef(IAsyncInfo* This) {
-- return This->lpVtbl->AddRef(This);
--}
--static FORCEINLINE ULONG IAsyncInfo_Release(IAsyncInfo* This) {
-- return This->lpVtbl->Release(This);
--}
--/*** IInspectable methods ***/
--static FORCEINLINE HRESULT IAsyncInfo_GetIids(IAsyncInfo* This,ULONG *iidCount,IID **iids) {
-- return This->lpVtbl->GetIids(This,iidCount,iids);
--}
--static FORCEINLINE HRESULT IAsyncInfo_GetRuntimeClassName(IAsyncInfo* This,HSTRING *className) {
-- return This->lpVtbl->GetRuntimeClassName(This,className);
--}
--static FORCEINLINE HRESULT IAsyncInfo_GetTrustLevel(IAsyncInfo* This,TrustLevel *trustLevel) {
-- return This->lpVtbl->GetTrustLevel(This,trustLevel);
--}
--/*** IAsyncInfo methods ***/
--static FORCEINLINE HRESULT IAsyncInfo_get_Id(IAsyncInfo* This,unsigned int *id) {
-- return This->lpVtbl->get_Id(This,id);
--}
--static FORCEINLINE HRESULT IAsyncInfo_get_Status(IAsyncInfo* This,AsyncStatus *status) {
-- return This->lpVtbl->get_Status(This,status);
--}
--static FORCEINLINE HRESULT IAsyncInfo_get_ErrorCode(IAsyncInfo* This,HRESULT *errorCode) {
-- return This->lpVtbl->get_ErrorCode(This,errorCode);
--}
--static FORCEINLINE HRESULT IAsyncInfo_Cancel(IAsyncInfo* This) {
-- return This->lpVtbl->Cancel(This);
--}
--static FORCEINLINE HRESULT IAsyncInfo_Close(IAsyncInfo* This) {
-- return This->lpVtbl->Close(This);
--}
- #endif
--#endif
--
--#endif
--
--HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Id_Proxy(
-- IAsyncInfo* This,
-- unsigned int *id);
--void __RPC_STUB IAsyncInfo_get_Id_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Status_Proxy(
-- IAsyncInfo* This,
-- AsyncStatus *status);
--void __RPC_STUB IAsyncInfo_get_Status_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_get_ErrorCode_Proxy(
-- IAsyncInfo* This,
-- HRESULT *errorCode);
--void __RPC_STUB IAsyncInfo_get_ErrorCode_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_Cancel_Proxy(
-- IAsyncInfo* This);
--void __RPC_STUB IAsyncInfo_Cancel_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncInfo_Close_Proxy(
-- IAsyncInfo* This);
--void __RPC_STUB IAsyncInfo_Close_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __IAsyncInfo_INTERFACE_DEFINED__ */
--
--/*****************************************************************************
-- * IASyncAction interface
-- */
--#ifndef __IASyncAction_INTERFACE_DEFINED__
--#define __IASyncAction_INTERFACE_DEFINED__
--
--DEFINE_GUID(IID_IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b);
--#if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
--IASyncAction : public IInspectable
--{
-- virtual HRESULT STDMETHODCALLTYPE put_Completed(
-- AsyncActionCompletedHandler *handler) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_Completed(
-- AsyncActionCompletedHandler **handler) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE GetResults(
-- ) = 0;
-
--};
--#ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b)
--#endif
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct Point {
-+ FLOAT X;
-+ FLOAT Y;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
- #else
--typedef struct IASyncActionVtbl {
-- BEGIN_INTERFACE
--
-- /*** IUnknown methods ***/
-- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- IASyncAction* This,
-- REFIID riid,
-- void **ppvObject);
--
-- ULONG (STDMETHODCALLTYPE *AddRef)(
-- IASyncAction* This);
--
-- ULONG (STDMETHODCALLTYPE *Release)(
-- IASyncAction* This);
--
-- /*** IInspectable methods ***/
-- HRESULT (STDMETHODCALLTYPE *GetIids)(
-- IASyncAction* This,
-- ULONG *iidCount,
-- IID **iids);
--
-- HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-- IASyncAction* This,
-- HSTRING *className);
--
-- HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-- IASyncAction* This,
-- TrustLevel *trustLevel);
--
-- /*** IASyncAction methods ***/
-- HRESULT (STDMETHODCALLTYPE *put_Completed)(
-- IASyncAction* This,
-- AsyncActionCompletedHandler *handler);
--
-- HRESULT (STDMETHODCALLTYPE *get_Completed)(
-- IASyncAction* This,
-- AsyncActionCompletedHandler **handler);
--
-- HRESULT (STDMETHODCALLTYPE *GetResults)(
-- IASyncAction* This);
--
-- END_INTERFACE
--} IASyncActionVtbl;
--interface IASyncAction {
-- CONST_VTBL IASyncActionVtbl* lpVtbl;
-+struct __x_ABI_CWindows_CFoundation_CPoint {
-+ FLOAT X;
-+ FLOAT Y;
- };
--
--#ifdef COBJMACROS
--#ifndef WIDL_C_INLINE_WRAPPERS
--/*** IUnknown methods ***/
--#define IASyncAction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define IASyncAction_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define IASyncAction_Release(This) (This)->lpVtbl->Release(This)
--/*** IInspectable methods ***/
--#define IASyncAction_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
--#define IASyncAction_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
--#define IASyncAction_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
--/*** IASyncAction methods ***/
--#define IASyncAction_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
--#define IASyncAction_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
--#define IASyncAction_GetResults(This) (This)->lpVtbl->GetResults(This)
--#else
--/*** IUnknown methods ***/
--static FORCEINLINE HRESULT IASyncAction_QueryInterface(IASyncAction* This,REFIID riid,void **ppvObject) {
-- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
--}
--static FORCEINLINE ULONG IASyncAction_AddRef(IASyncAction* This) {
-- return This->lpVtbl->AddRef(This);
--}
--static FORCEINLINE ULONG IASyncAction_Release(IASyncAction* This) {
-- return This->lpVtbl->Release(This);
--}
--/*** IInspectable methods ***/
--static FORCEINLINE HRESULT IASyncAction_GetIids(IASyncAction* This,ULONG *iidCount,IID **iids) {
-- return This->lpVtbl->GetIids(This,iidCount,iids);
--}
--static FORCEINLINE HRESULT IASyncAction_GetRuntimeClassName(IASyncAction* This,HSTRING *className) {
-- return This->lpVtbl->GetRuntimeClassName(This,className);
--}
--static FORCEINLINE HRESULT IASyncAction_GetTrustLevel(IASyncAction* This,TrustLevel *trustLevel) {
-- return This->lpVtbl->GetTrustLevel(This,trustLevel);
--}
--/*** IASyncAction methods ***/
--static FORCEINLINE HRESULT IASyncAction_put_Completed(IASyncAction* This,AsyncActionCompletedHandler *handler) {
-- return This->lpVtbl->put_Completed(This,handler);
--}
--static FORCEINLINE HRESULT IASyncAction_get_Completed(IASyncAction* This,AsyncActionCompletedHandler **handler) {
-- return This->lpVtbl->get_Completed(This,handler);
--}
--static FORCEINLINE HRESULT IASyncAction_GetResults(IASyncAction* This) {
-- return This->lpVtbl->GetResults(This);
--}
--#endif
- #endif
-
--#endif
--
--HRESULT STDMETHODCALLTYPE IASyncAction_put_Completed_Proxy(
-- IASyncAction* This,
-- AsyncActionCompletedHandler *handler);
--void __RPC_STUB IASyncAction_put_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IASyncAction_get_Completed_Proxy(
-- IASyncAction* This,
-- AsyncActionCompletedHandler **handler);
--void __RPC_STUB IASyncAction_get_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IASyncAction_GetResults_Proxy(
-- IASyncAction* This);
--void __RPC_STUB IASyncAction_GetResults_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __IASyncAction_INTERFACE_DEFINED__ */
--
--/*****************************************************************************
-- * AsyncActionCompletedHandler interface
-- */
--#ifndef __AsyncActionCompletedHandler_INTERFACE_DEFINED__
--#define __AsyncActionCompletedHandler_INTERFACE_DEFINED__
--
--DEFINE_GUID(IID_AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7);
--#if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7")
--AsyncActionCompletedHandler : public IUnknown
--{
-- virtual HRESULT STDMETHODCALLTYPE Invoke(
-- IInspectable *asyncAction,
-- AsyncStatus status) = 0;
--
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct Size {
-+ FLOAT Width;
-+ FLOAT Height;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CSize {
-+ FLOAT Width;
-+ FLOAT Height;
- };
--#ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7)
- #endif
--#else
--typedef struct AsyncActionCompletedHandlerVtbl {
-- BEGIN_INTERFACE
--
-- /*** IUnknown methods ***/
-- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- AsyncActionCompletedHandler* This,
-- REFIID riid,
-- void **ppvObject);
--
-- ULONG (STDMETHODCALLTYPE *AddRef)(
-- AsyncActionCompletedHandler* This);
--
-- ULONG (STDMETHODCALLTYPE *Release)(
-- AsyncActionCompletedHandler* This);
--
-- /*** AsyncActionCompletedHandler methods ***/
-- HRESULT (STDMETHODCALLTYPE *Invoke)(
-- AsyncActionCompletedHandler* This,
-- IInspectable *asyncAction,
-- AsyncStatus status);
-
-- END_INTERFACE
--} AsyncActionCompletedHandlerVtbl;
--interface AsyncActionCompletedHandler {
-- CONST_VTBL AsyncActionCompletedHandlerVtbl* lpVtbl;
-+#ifdef __cplusplus
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+typedef struct Size Size;
-+ }
-+ }
-+}
-+#endif /* __cplusplus */
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct Rect {
-+ FLOAT X;
-+ FLOAT Y;
-+ FLOAT Width;
-+ FLOAT Height;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CRect {
-+ FLOAT X;
-+ FLOAT Y;
-+ FLOAT Width;
-+ FLOAT Height;
- };
-+#endif
-
--#ifdef COBJMACROS
--#ifndef WIDL_C_INLINE_WRAPPERS
--/*** IUnknown methods ***/
--#define AsyncActionCompletedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define AsyncActionCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define AsyncActionCompletedHandler_Release(This) (This)->lpVtbl->Release(This)
--/*** AsyncActionCompletedHandler methods ***/
--#define AsyncActionCompletedHandler_Invoke(This,asyncAction,status) (This)->lpVtbl->Invoke(This,asyncAction,status)
--#else
--/*** IUnknown methods ***/
--static FORCEINLINE HRESULT AsyncActionCompletedHandler_QueryInterface(AsyncActionCompletedHandler* This,REFIID riid,void **ppvObject) {
-- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
--}
--static FORCEINLINE ULONG AsyncActionCompletedHandler_AddRef(AsyncActionCompletedHandler* This) {
-- return This->lpVtbl->AddRef(This);
--}
--static FORCEINLINE ULONG AsyncActionCompletedHandler_Release(AsyncActionCompletedHandler* This) {
-- return This->lpVtbl->Release(This);
--}
--/*** AsyncActionCompletedHandler methods ***/
--static FORCEINLINE HRESULT AsyncActionCompletedHandler_Invoke(AsyncActionCompletedHandler* This,IInspectable *asyncAction,AsyncStatus status) {
-- return This->lpVtbl->Invoke(This,asyncAction,status);
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct DateTime {
-+ INT64 UniversalTime;
-+ };
-+ }
-+ }
- }
--#endif
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CDateTime {
-+ INT64 UniversalTime;
-+};
- #endif
-
-+#ifdef __cplusplus
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ struct TimeSpan {
-+ INT64 Duration;
-+ };
-+ }
-+ }
-+}
-+extern "C" {
-+#else
-+struct __x_ABI_CWindows_CFoundation_CTimeSpan {
-+ INT64 Duration;
-+};
- #endif
-
--HRESULT STDMETHODCALLTYPE AsyncActionCompletedHandler_Invoke_Proxy(
-- AsyncActionCompletedHandler* This,
-- IInspectable *asyncAction,
-- AsyncStatus status);
--void __RPC_STUB AsyncActionCompletedHandler_Invoke_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __AsyncActionCompletedHandler_INTERFACE_DEFINED__ */
--
- /*****************************************************************************
-- * IAsyncOperation interface
-+ * IStringable interface
- */
--#ifndef __IAsyncOperation_INTERFACE_DEFINED__
--#define __IAsyncOperation_INTERFACE_DEFINED__
-+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
-+#define ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
-
--DEFINE_GUID(IID_IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2);
-+DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3);
- #if defined(__cplusplus) && !defined(CINTERFACE)
--MIDL_INTERFACE("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")
--IAsyncOperation : public IAsyncInfo
--{
-- virtual HRESULT STDMETHODCALLTYPE put_Completed(
-- AsyncActionCompletedHandler *handler) = 0;
--
-- virtual HRESULT STDMETHODCALLTYPE get_Completed(
-- AsyncActionCompletedHandler **handler) = 0;
--
-- virtual IInspectable * STDMETHODCALLTYPE GetResults(
-- ) = 0;
--
--};
-+} /* extern "C" */
-+namespace ABI {
-+ namespace Windows {
-+ namespace Foundation {
-+ MIDL_INTERFACE("96369f54-8eb6-48f0-abce-c1b211e627c3")
-+ IStringable : public IInspectable
-+ {
-+ virtual HRESULT STDMETHODCALLTYPE ToString(
-+ HSTRING *value) = 0;
-+
-+ };
-+ }
-+ }
-+}
-+extern "C" {
- #ifdef __CRT_UUID_DECL
--__CRT_UUID_DECL(IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2)
-+__CRT_UUID_DECL(ABI::Windows::Foundation::IStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3)
- #endif
- #else
--typedef struct IAsyncOperationVtbl {
-+typedef struct __x_ABI_CWindows_CFoundation_CIStringableVtbl {
- BEGIN_INTERFACE
-
- /*** IUnknown methods ***/
- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- REFIID riid,
- void **ppvObject);
-
- ULONG (STDMETHODCALLTYPE *AddRef)(
-- IAsyncOperation* This);
-+ __x_ABI_CWindows_CFoundation_CIStringable *This);
-
- ULONG (STDMETHODCALLTYPE *Release)(
-- IAsyncOperation* This);
-+ __x_ABI_CWindows_CFoundation_CIStringable *This);
-
- /*** IInspectable methods ***/
- HRESULT (STDMETHODCALLTYPE *GetIids)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- ULONG *iidCount,
- IID **iids);
-
- HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- HSTRING *className);
-
- HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-- IAsyncOperation* This,
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
- TrustLevel *trustLevel);
-
-- /*** IAsyncInfo methods ***/
-- HRESULT (STDMETHODCALLTYPE *get_Id)(
-- IAsyncOperation* This,
-- unsigned int *id);
--
-- HRESULT (STDMETHODCALLTYPE *get_Status)(
-- IAsyncOperation* This,
-- AsyncStatus *status);
--
-- HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-- IAsyncOperation* This,
-- HRESULT *errorCode);
--
-- HRESULT (STDMETHODCALLTYPE *Cancel)(
-- IAsyncOperation* This);
--
-- HRESULT (STDMETHODCALLTYPE *Close)(
-- IAsyncOperation* This);
--
-- /*** IAsyncOperation methods ***/
-- HRESULT (STDMETHODCALLTYPE *put_Completed)(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler *handler);
--
-- HRESULT (STDMETHODCALLTYPE *get_Completed)(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler **handler);
--
-- IInspectable * (STDMETHODCALLTYPE *GetResults)(
-- IAsyncOperation* This);
-+ /*** IStringable methods ***/
-+ HRESULT (STDMETHODCALLTYPE *ToString)(
-+ __x_ABI_CWindows_CFoundation_CIStringable *This,
-+ HSTRING *value);
-
- END_INTERFACE
--} IAsyncOperationVtbl;
--interface IAsyncOperation {
-- CONST_VTBL IAsyncOperationVtbl* lpVtbl;
-+} __x_ABI_CWindows_CFoundation_CIStringableVtbl;
-+
-+interface __x_ABI_CWindows_CFoundation_CIStringable {
-+ CONST_VTBL __x_ABI_CWindows_CFoundation_CIStringableVtbl* lpVtbl;
- };
-
- #ifdef COBJMACROS
- #ifndef WIDL_C_INLINE_WRAPPERS
- /*** IUnknown methods ***/
--#define IAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
--#define IAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
--#define IAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_AddRef(This) (This)->lpVtbl->AddRef(This)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_Release(This) (This)->lpVtbl->Release(This)
- /*** IInspectable methods ***/
--#define IAsyncOperation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
--#define IAsyncOperation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
--#define IAsyncOperation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
--/*** IAsyncInfo methods ***/
--#define IAsyncOperation_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
--#define IAsyncOperation_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
--#define IAsyncOperation_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
--#define IAsyncOperation_Cancel(This) (This)->lpVtbl->Cancel(This)
--#define IAsyncOperation_Close(This) (This)->lpVtbl->Close(This)
--/*** IAsyncOperation methods ***/
--#define IAsyncOperation_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
--#define IAsyncOperation_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
--#define IAsyncOperation_GetResults(This) (This)->lpVtbl->GetResults(This)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-+#define __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-+/*** IStringable methods ***/
-+#define __x_ABI_CWindows_CFoundation_CIStringable_ToString(This,value) (This)->lpVtbl->ToString(This,value)
- #else
- /*** IUnknown methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_QueryInterface(IAsyncOperation* This,REFIID riid,void **ppvObject) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(__x_ABI_CWindows_CFoundation_CIStringable* This,REFIID riid,void **ppvObject) {
- return This->lpVtbl->QueryInterface(This,riid,ppvObject);
- }
--static FORCEINLINE ULONG IAsyncOperation_AddRef(IAsyncOperation* This) {
-+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_AddRef(__x_ABI_CWindows_CFoundation_CIStringable* This) {
- return This->lpVtbl->AddRef(This);
- }
--static FORCEINLINE ULONG IAsyncOperation_Release(IAsyncOperation* This) {
-+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_Release(__x_ABI_CWindows_CFoundation_CIStringable* This) {
- return This->lpVtbl->Release(This);
- }
- /*** IInspectable methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_GetIids(IAsyncOperation* This,ULONG *iidCount,IID **iids) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetIids(__x_ABI_CWindows_CFoundation_CIStringable* This,ULONG *iidCount,IID **iids) {
- return This->lpVtbl->GetIids(This,iidCount,iids);
- }
--static FORCEINLINE HRESULT IAsyncOperation_GetRuntimeClassName(IAsyncOperation* This,HSTRING *className) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *className) {
- return This->lpVtbl->GetRuntimeClassName(This,className);
- }
--static FORCEINLINE HRESULT IAsyncOperation_GetTrustLevel(IAsyncOperation* This,TrustLevel *trustLevel) {
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIStringable* This,TrustLevel *trustLevel) {
- return This->lpVtbl->GetTrustLevel(This,trustLevel);
- }
--/*** IAsyncInfo methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_get_Id(IAsyncOperation* This,unsigned int *id) {
-- return This->lpVtbl->get_Id(This,id);
--}
--static FORCEINLINE HRESULT IAsyncOperation_get_Status(IAsyncOperation* This,AsyncStatus *status) {
-- return This->lpVtbl->get_Status(This,status);
--}
--static FORCEINLINE HRESULT IAsyncOperation_get_ErrorCode(IAsyncOperation* This,HRESULT *errorCode) {
-- return This->lpVtbl->get_ErrorCode(This,errorCode);
--}
--static FORCEINLINE HRESULT IAsyncOperation_Cancel(IAsyncOperation* This) {
-- return This->lpVtbl->Cancel(This);
--}
--static FORCEINLINE HRESULT IAsyncOperation_Close(IAsyncOperation* This) {
-- return This->lpVtbl->Close(This);
--}
--/*** IAsyncOperation methods ***/
--static FORCEINLINE HRESULT IAsyncOperation_put_Completed(IAsyncOperation* This,AsyncActionCompletedHandler *handler) {
-- return This->lpVtbl->put_Completed(This,handler);
--}
--static FORCEINLINE HRESULT IAsyncOperation_get_Completed(IAsyncOperation* This,AsyncActionCompletedHandler **handler) {
-- return This->lpVtbl->get_Completed(This,handler);
--}
--static FORCEINLINE IInspectable * IAsyncOperation_GetResults(IAsyncOperation* This) {
-- return This->lpVtbl->GetResults(This);
-+/*** IStringable methods ***/
-+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_ToString(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *value) {
-+ return This->lpVtbl->ToString(This,value);
- }
- #endif
- #endif
-
- #endif
-
--HRESULT STDMETHODCALLTYPE IAsyncOperation_put_Completed_Proxy(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler *handler);
--void __RPC_STUB IAsyncOperation_put_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--HRESULT STDMETHODCALLTYPE IAsyncOperation_get_Completed_Proxy(
-- IAsyncOperation* This,
-- AsyncActionCompletedHandler **handler);
--void __RPC_STUB IAsyncOperation_get_Completed_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--IInspectable * STDMETHODCALLTYPE IAsyncOperation_GetResults_Proxy(
-- IAsyncOperation* This);
--void __RPC_STUB IAsyncOperation_GetResults_Stub(
-- IRpcStubBuffer* This,
-- IRpcChannelBuffer* pRpcChannelBuffer,
-- PRPC_MESSAGE pRpcMessage,
-- DWORD* pdwStubPhase);
--
--#endif /* __IAsyncOperation_INTERFACE_DEFINED__ */
-+#endif /* ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__ */
-
- /* Begin additional prototypes for all interfaces */
-
-+ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *);
-+unsigned char * __RPC_USER HSTRING_UserMarshal (ULONG *, unsigned char *, HSTRING *);
-+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
-+void __RPC_USER HSTRING_UserFree (ULONG *, HSTRING *);
-
- /* End additional prototypes */
-
diff --git a/mingw-w64-headers/include/windows.foundation.metadata.h b/mingw-w64-headers/include/windows.foundation.metadata.h
new file mode 100644
-index 00000000..13262699
+index 000000000..132626999
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.metadata.h
@@ -0,0 +1,315 @@
@@ -1310,7 +345,7 @@ index 00000000..13262699
+#endif /* __windows_foundation_metadata_h__ */
diff --git a/mingw-w64-headers/include/windows.foundation.numerics.h b/mingw-w64-headers/include/windows.foundation.numerics.h
new file mode 100644
-index 00000000..e20017ce
+index 000000000..e20017ce6
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.numerics.h
@@ -0,0 +1,204 @@
@@ -1520,7 +555,7 @@ index 00000000..e20017ce
+#endif /* __windows_foundation_numerics_h__ */
diff --git a/mingw-w64-headers/include/windows.graphics.directx.h b/mingw-w64-headers/include/windows.graphics.directx.h
new file mode 100644
-index 00000000..4bc4cb44
+index 000000000..4bc4cb44b
--- /dev/null
+++ b/mingw-w64-headers/include/windows.graphics.directx.h
@@ -0,0 +1,343 @@
@@ -1869,7 +904,7 @@ index 00000000..4bc4cb44
+#endif /* __windows_graphics_directx_h__ */
diff --git a/mingw-w64-headers/include/windows.graphics.effects.h b/mingw-w64-headers/include/windows.graphics.effects.h
new file mode 100644
-index 00000000..7c6e62a5
+index 000000000..7c6e62a54
--- /dev/null
+++ b/mingw-w64-headers/include/windows.graphics.effects.h
@@ -0,0 +1,184 @@
@@ -2059,7 +1094,7 @@ index 00000000..7c6e62a5
+#endif /* __windows_graphics_effects_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.composition.h b/mingw-w64-headers/include/windows.ui.composition.h
new file mode 100644
-index 00000000..9410a3ce
+index 000000000..9410a3ce6
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.composition.h
@@ -0,0 +1,3212 @@
@@ -5277,7 +4312,7 @@ index 00000000..9410a3ce
+#endif /* __windows_ui_composition_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.composition.interop.h b/mingw-w64-headers/include/windows.ui.composition.interop.h
new file mode 100644
-index 00000000..a82afdf1
+index 000000000..a82afdf1b
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.composition.interop.h
@@ -0,0 +1,31 @@
@@ -5314,7 +4349,7 @@ index 00000000..a82afdf1
+
diff --git a/mingw-w64-headers/include/windows.ui.core.h b/mingw-w64-headers/include/windows.ui.core.h
new file mode 100644
-index 00000000..a3c16ac2
+index 000000000..a3c16ac23
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.core.h
@@ -0,0 +1,127 @@
@@ -5447,7 +4482,7 @@ index 00000000..a3c16ac2
+#endif /* __windows_ui_core_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.h b/mingw-w64-headers/include/windows.ui.h
new file mode 100644
-index 00000000..2e4abd54
+index 000000000..2e4abd547
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.h
@@ -0,0 +1,72 @@
@@ -5523,3 +4558,6 @@ index 00000000..2e4abd54
+#endif
+
+#endif /* __windows_ui_h__ */
+--
+2.25.1
+
diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config
index 6758997..3792a76 100644
--- a/projects/mingw-w64/config
+++ b/projects/mingw-w64/config
@@ -1,12 +1,12 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_url: https://git.code.sf.net/p/mingw-w64/mingw-w64
-git_hash: 660e09f3cb20f181b6d6435cb623d65a3922a063
+git_hash: cdb052f1d4056cd510cb83197b55868427b87476
version: '[% c("abbrev") %]'
var:
container:
use_container: 1
- gcc_version: 9.3.0
+ gcc_version: 10.3.0
deps:
- automake
- build-essential
@@ -30,6 +30,6 @@ targets:
input_files:
- project: container-image
- URL: 'https://ftp.gnu.org/gnu/gcc/gcc-[% c("var/gcc_version") %]/gcc-[% c("var/gcc_version") %].tar.xz'
- sha256sum: 71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1
+ sha256sum: 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
- name: binutils
project: binutils
diff --git a/projects/ninja/build b/projects/ninja/build
index 6500ca7..9fc0eaa 100644
--- a/projects/ninja/build
+++ b/projects/ninja/build
@@ -10,6 +10,11 @@ mkdir /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd /var/tmp/build/[% project %]-[% c('version') %]
+[% IF c("var/windows") -%]
+ # Starting with Debian Bullseye, /usr/bin/python does not exist, so
+ # we need to use python3 explicitly
+ sed -i 's/env python$/env python3/' configure.py
+[% END -%]
./configure.py --bootstrap
mkdir $distdir
diff --git a/projects/node/config b/projects/node/config
index 30fce8d..ce058cf 100644
--- a/projects/node/config
+++ b/projects/node/config
@@ -12,6 +12,10 @@ targets:
var:
node_version: 10.23.1
node_hash: 88aa16f5af79615b183ca55ed81393763169e75d1fb96013cf1831895c6cedfa
+ windows:
+ var:
+ arch_deps:
+ - python2
input_files:
- project: container-image
diff --git a/projects/rust/config b/projects/rust/config
index 01e1843..4995f1c 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -75,7 +75,7 @@ targets:
- libssl-dev
- pkg-config
- zlib1g-dev
- configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=[% c("arch") %]-pc-windows-gnu
+ configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,[% c("arch") %]-pc-windows-gnu
input_files:
- project: container-image
diff --git a/projects/tor-browser/build b/projects/tor-browser/build
index 1d2e35b..6deec70 100644
--- a/projects/tor-browser/build
+++ b/projects/tor-browser/build
@@ -226,14 +226,6 @@ popd
[% IF c("var/windows") %]
- # We need to install a recent version of python-pefile so that it works
- # in a x86_64 container:
- # https://github.com/TheTorProject/tor-messenger-build/pull/10
- tar xf $rootdir/[% c('input_files_by_name/python-pefile') %]
- cd $(echo [% c('input_files_by_name/python-pefile') %] | sed s/\.tar\.gz$//)
- python setup.py install --user
- cd ..
-
tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/nsis') %]
export PATH="/var/tmp/dist/nsis/bin:$PATH"
@@ -288,7 +280,7 @@ cd $distdir
makensis torbrowser.nsi
# Working around NSIS braindamage
mv torbrowser-install.exe torbrowser-install-tmp.exe
- python $rootdir/pe_checksum_fix.py
+ python3 $rootdir/pe_checksum_fix.py
mv torbrowser-install-tmp2.exe torbrowser-install.exe
rm torbrowser-install-tmp.exe
mv torbrowser-install.exe $OUTDIR/torbrowser-install[% IF c("var/windows-x86_64") %]-win64[% END %]-[% c("var/torbrowser_version") %]_${PKG_LOCALE}.exe
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index 09f77b2..a3f21d3 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -35,7 +35,7 @@ targets:
windows:
var:
arch_deps:
- - python-future
+ - python3-pefile
windows-i686:
var:
mar_osname: win32
@@ -98,10 +98,6 @@ input_files:
enable: '[% c("var/windows") %]'
- filename: pe_checksum_fix.py
enable: '[% c("var/windows") %]'
- - name: python-pefile
- URL: https://files.pythonhosted.org/packages/7e/9b/f99171190f04cd23768547dd34533b4016bd582842f53cd9fe9585a74c74/pefile-2017.11.5.tar.gz
- sha256sum: 675c35ee0e1677db9e80d2f48d8a7ff2cf38e6207e8cd5e2a2c6d126db025854
- enable: '[% c("var/windows") %]'
# To generate a new keystore, see how-to-generate-keystore.txt
- filename: android-qa.keystore
enable: '[% c("var/android") %]'
diff --git a/projects/tor-browser/pe_checksum_fix.py b/projects/tor-browser/pe_checksum_fix.py
index 85d8fef..73cd009 100755
--- a/projects/tor-browser/pe_checksum_fix.py
+++ b/projects/tor-browser/pe_checksum_fix.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2015-2017, The Tor Project, Inc.
#
@@ -45,12 +45,12 @@ Thanks to a cypherpunk for this workaround idea.
import pefile;
-f = open('torbrowser-install-tmp.exe')
+f = open('torbrowser-install-tmp.exe', 'rb')
exe = f.read()
f.close()
remainder = len(exe) % 8
if remainder > 0:
- exe += '\0' * (8 - remainder)
+ exe += bytes('\0' * (8 - remainder), 'utf-8')
pef = pefile.PE(data=exe, fast_load=True)
pef.OPTIONAL_HEADER.CheckSum = pef.generate_checksum()
pef.write(filename='torbrowser-install-tmp2.exe')
diff --git a/rbm.conf b/rbm.conf
index b389872..c67fdc9 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -428,9 +428,11 @@ targets:
torbrowser-windows-i686:
- windows-i686
- windows
+ - ff91esr
torbrowser-windows-x86_64:
- windows-x86_64
- windows
+ - ff91esr
windows-x86_64:
arch: x86_64
var:
@@ -451,7 +453,7 @@ targets:
var:
windows: 1
container:
- suite: buster
+ suite: bullseye
arch: amd64
configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]" [% c("var/configure_opt_project") %]'
CFLAGS: '-fstack-protector-strong -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security [% c("var/flag_mwindows") %]'
@@ -464,7 +466,8 @@ targets:
snowflake: '[% c("var/alpha") || c("var/nightly") %]'
deps:
- build-essential
- - python
+ - python3
+ - python3-distutils
- bison
- automake
- libtool
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits