diff --git a/.gitignore b/.gitignore
index 41e5c0cce8..40b3662444 100644
--- a/.gitignore
+++ b/.gitignore
@@ -172,6 +172,11 @@ BuildLog.htm
!/libs/win32/
!/libs/speex/win32/
+
+# 7-Zip extraction tool bootstrap (downloaded/extracted by w32/downloadpackage.task)
+/libs/win32/7za/
+/libs/win32/7z*-extra.7z
+
*.suo
*.sdf
x64/
@@ -245,6 +250,8 @@ libs/libcodec2-*/
libs/libsilk-*/
libs/rabbitmq-c-*/
libs/rabbitmq-c-*.zip
+libs/SharpZipLib.*/
+libs/SharpZipLib.*.nupkg
libs/ffmpeg-*/
libs/sofia-sip*/
libs/sofia-sip*
diff --git a/w32/download_sharpziplib.props b/w32/download_sharpziplib.props
index 7a87d49d37..f24533871e 100644
--- a/w32/download_sharpziplib.props
+++ b/w32/download_sharpziplib.props
@@ -7,6 +7,12 @@
true
+
+ 1.1.0
+ $(BaseDir)libs\SharpZipLib.$(SharpZipLibVersion)
+ $(BaseDir)w32\Setup\CustomActions\Setup.CA.DownloadOpenH264
+
+
+
diff --git a/w32/downloadpackage.task b/w32/downloadpackage.task
index fbcf75ee0f..0223e98cb0 100644
--- a/w32/downloadpackage.task
+++ b/w32/downloadpackage.task
@@ -15,7 +15,8 @@
-
+
+
@@ -57,6 +58,7 @@ using System.Diagnostics;
public string extractto { get; set; }
public string moveafter { get; set; }
public string archivecontains { get; set; }
+ public string arctool { get; set; }
internal static bool FileOrDirectoryExists(string name)
{
@@ -193,26 +195,31 @@ using System.Diagnostics;
private void Extract(string filename, string extracttofolder)
{
- string arctool = Path.Combine(new string[] { basedir, "libs", "win32", "7za1701.exe" });
+ // Use the caller-supplied extraction tool when set (the 7za bootstrap
+ // passes 7zr.exe to unpack the full 7za.exe out of the "extra" package);
+ // otherwise fall back to that bootstrapped 7za.exe for every other package.
+ string tool = (arctool != null && arctool.Trim() != "")
+ ? arctool
+ : Path.Combine(new string[] { basedir, "libs", "win32", "7za", "7za.exe" });
string args = " x \"" + filename + "\" -y -o\"" + extracttofolder + "\"";
Log.LogMessage(MessageImportance.High,
- "arctool : " + arctool);
+ "arctool : " + tool);
Log.LogMessage(MessageImportance.High,
"args : " + args);
Log.LogMessage(MessageImportance.High,
- "WorkingDirectory : " + Path.GetDirectoryName(arctool));
+ "WorkingDirectory : " + Path.GetDirectoryName(tool));
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
- FileName = arctool,
+ FileName = tool,
Arguments = args,
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true,
- WorkingDirectory = Path.GetDirectoryName(arctool)
+ WorkingDirectory = Path.GetDirectoryName(tool)
}
};
@@ -274,15 +281,33 @@ using System.Diagnostics;
-
-
+ 26.02
+ https://github.com/ip7z/7zip/releases/download/$(SevenZipVersion)
+ 7z$(SevenZipVersion.Replace('.',''))-extra
+
+
+
+
+
-
+
+
+
true