OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vlc?expand=0&rev=1d7e87d6e3085599e401b22df1e85bc9
1507 lines
46 KiB
Diff
1507 lines
46 KiB
Diff
From dc95063af0d2d54b36185ca8ef2203b364b568ef Mon Sep 17 00:00:00 2001
|
||
From: Marvin Scholz <epirat07@gmail.com>
|
||
Date: Thu, 4 Nov 2021 18:10:43 +0100
|
||
Subject: [PATCH 01/10] lua: common: do not use deprecated module function
|
||
|
||
---
|
||
share/lua/intf/cli.lua | 2 +-
|
||
share/lua/intf/http.lua | 2 +-
|
||
share/lua/modules/common.lua | 46 +++++++++++++++++++-----------------
|
||
3 files changed, 26 insertions(+), 24 deletions(-)
|
||
|
||
Index: vlc-3.0.17.4/share/lua/intf/cli.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/intf/cli.lua
|
||
+++ vlc-3.0.17.4/share/lua/intf/cli.lua
|
||
@@ -58,7 +58,9 @@ description=
|
||
* flatplaylist: 0 to disable, 1 to enable.
|
||
]============================================================================]
|
||
|
||
-require("common")
|
||
+local common = require("common")
|
||
+local host = require("host")
|
||
+
|
||
skip = common.skip
|
||
skip2 = function(foo) return skip(skip(foo)) end
|
||
setarg = common.setarg
|
||
@@ -794,7 +796,6 @@ function on_write( client )
|
||
end
|
||
|
||
--[[ Setup host ]]
|
||
-require("host")
|
||
h = host.host()
|
||
|
||
h.status_callbacks[host.status.password] = on_password
|
||
Index: vlc-3.0.17.4/share/lua/intf/http.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/intf/http.lua
|
||
+++ vlc-3.0.17.4/share/lua/intf/http.lua
|
||
@@ -30,7 +30,7 @@ Configuration options:
|
||
--]==========================================================================]
|
||
|
||
|
||
-require "common"
|
||
+local common = require "common"
|
||
|
||
vlc.msg.info("Lua HTTP interface")
|
||
|
||
Index: vlc-3.0.17.4/share/lua/modules/common.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/modules/common.lua
|
||
+++ vlc-3.0.17.4/share/lua/modules/common.lua
|
||
@@ -1,9 +1,9 @@
|
||
--[[ This code is public domain (since it really isn't very interesting) ]]--
|
||
|
||
-module("common",package.seeall)
|
||
+local common = {}
|
||
|
||
-- Iterate over a table in the keys' alphabetical order
|
||
-function pairs_sorted(t)
|
||
+function common.pairs_sorted(t)
|
||
local s = {}
|
||
for k,_ in pairs(t) do table.insert(s,k) end
|
||
table.sort(s)
|
||
@@ -12,17 +12,17 @@ function pairs_sorted(t)
|
||
end
|
||
|
||
-- Return a function such as skip(foo)(a,b,c) = foo(b,c)
|
||
-function skip(foo)
|
||
+function common.skip(foo)
|
||
return function(discard,...) return foo(...) end
|
||
end
|
||
|
||
-- Return a function such as setarg(foo,a)(b,c) = foo(a,b,c)
|
||
-function setarg(foo,a)
|
||
+function common.setarg(foo,a)
|
||
return function(...) return foo(a,...) end
|
||
end
|
||
|
||
-- Trigger a hotkey
|
||
-function hotkey(arg)
|
||
+function common.hotkey(arg)
|
||
local id = vlc.misc.action_id( arg )
|
||
if id ~= nil then
|
||
vlc.var.set( vlc.object.libvlc(), "key-action", id )
|
||
@@ -33,14 +33,14 @@ function hotkey(arg)
|
||
end
|
||
|
||
-- Take a video snapshot
|
||
-function snapshot()
|
||
+function common.snapshot()
|
||
local vout = vlc.object.vout()
|
||
if not vout then return end
|
||
vlc.var.set(vout,"video-snapshot",nil)
|
||
end
|
||
|
||
-- Naive (non recursive) table copy
|
||
-function table_copy(t)
|
||
+function common.table_copy(t)
|
||
c = {}
|
||
for i,v in pairs(t) do c[i]=v end
|
||
return c
|
||
@@ -48,7 +48,7 @@ end
|
||
|
||
-- tonumber() for decimals number, using a dot as decimal separator
|
||
-- regardless of the system locale
|
||
-function us_tonumber(str)
|
||
+function common.us_tonumber(str)
|
||
local s, i, d = string.match(str, "^([+-]?)(%d*)%.?(%d*)$")
|
||
if not s or not i or not d then
|
||
return nil
|
||
@@ -70,40 +70,40 @@ end
|
||
|
||
-- tostring() for decimals number, using a dot as decimal separator
|
||
-- regardless of the system locale
|
||
-function us_tostring(n)
|
||
+function common.us_tostring(n)
|
||
s = tostring(n):gsub(",", ".", 1)
|
||
return s
|
||
end
|
||
|
||
-- strip leading and trailing spaces
|
||
-function strip(str)
|
||
+function common.strip(str)
|
||
return string.gsub(str, "^%s*(.-)%s*$", "%1")
|
||
end
|
||
|
||
-- print a table (recursively)
|
||
-function table_print(t,prefix)
|
||
+function common.table_print(t,prefix)
|
||
local prefix = prefix or ""
|
||
if not t then
|
||
print(prefix.."/!\\ nil")
|
||
return
|
||
end
|
||
- for a,b in pairs_sorted(t) do
|
||
+ for a,b in common.pairs_sorted(t) do
|
||
print(prefix..tostring(a),b)
|
||
if type(b)==type({}) then
|
||
- table_print(b,prefix.."\t")
|
||
+ common.table_print(b,prefix.."\t")
|
||
end
|
||
end
|
||
end
|
||
|
||
-- print the list of callbacks registered in lua
|
||
-- useful for debug purposes
|
||
-function print_callbacks()
|
||
+function common.print_callbacks()
|
||
print "callbacks:"
|
||
- table_print(vlc.callbacks)
|
||
+ common.table_print(vlc.callbacks)
|
||
end
|
||
|
||
-- convert a duration (in seconds) to a string
|
||
-function durationtostring(duration)
|
||
+function common.durationtostring(duration)
|
||
return string.format("%02d:%02d:%02d",
|
||
math.floor(duration/3600),
|
||
math.floor(duration/60)%60,
|
||
@@ -113,7 +113,7 @@ end
|
||
-- realpath
|
||
-- this is for URL paths - do not use for file paths as this has
|
||
-- no support for Windows '\' directory separators
|
||
-function realpath(path)
|
||
+function common.realpath(path)
|
||
-- detect URLs to extract and process the path component
|
||
local s, p, qf = string.match(path, "^([a-zA-Z0-9+%-%.]-://[^/]-)(/[^?#]*)(.*)$")
|
||
if not s then
|
||
@@ -149,7 +149,7 @@ end
|
||
|
||
-- parse the time from a string and return the seconds
|
||
-- time format: [+ or -][<int><H or h>:][<int><M or m or '>:][<int><nothing or S or s or ">]
|
||
-function parsetime(timestring)
|
||
+function common.parsetime(timestring)
|
||
local seconds = 0
|
||
local hourspattern = "(%d+)[hH]"
|
||
local minutespattern = "(%d+)[mM']"
|
||
@@ -176,11 +176,11 @@ function parsetime(timestring)
|
||
end
|
||
|
||
-- seek
|
||
-function seek(value)
|
||
+function common.seek(value)
|
||
local input = vlc.object.input()
|
||
if input ~= nil and value ~= nil then
|
||
if string.sub(value,-1) == "%" then
|
||
- local number = us_tonumber(string.sub(value,1,-2))
|
||
+ local number = common.us_tonumber(string.sub(value,1,-2))
|
||
if number ~= nil then
|
||
local posPercent = number/100
|
||
if string.sub(value,1,1) == "+" or string.sub(value,1,1) == "-" then
|
||
@@ -190,7 +190,7 @@ function seek(value)
|
||
end
|
||
end
|
||
else
|
||
- local posTime = parsetime(value)
|
||
+ local posTime = common.parsetime(value)
|
||
if string.sub(value,1,1) == "+" or string.sub(value,1,1) == "-" then
|
||
vlc.var.set(input,"time",vlc.var.get(input,"time") + (posTime * 1000000))
|
||
else
|
||
@@ -200,10 +200,12 @@ function seek(value)
|
||
end
|
||
end
|
||
|
||
-function volume(value)
|
||
+function common.volume(value)
|
||
if type(value)=="string" and string.sub(value,1,1) == "+" or string.sub(value,1,1) == "-" then
|
||
vlc.volume.set(vlc.volume.get()+tonumber(value))
|
||
else
|
||
vlc.volume.set(tostring(value))
|
||
end
|
||
end
|
||
+
|
||
+return common
|
||
Index: vlc-3.0.17.4/share/lua/modules/sandbox.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/modules/sandbox.lua
|
||
+++ vlc-3.0.17.4/share/lua/modules/sandbox.lua
|
||
@@ -21,7 +21,7 @@
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||
--]==========================================================================]
|
||
|
||
-module("sandbox",package.seeall)
|
||
+local sandbox = {}
|
||
|
||
-- See Programming in Lua (second edition) for sandbox examples
|
||
-- See http://lua-users.org/wiki/SandBoxes for a list of SAFE/UNSAFE variables
|
||
@@ -49,7 +49,7 @@ if _VERSION == "Lua 5.1" then
|
||
sandbox_blacklist["loadstring"] = true
|
||
end
|
||
|
||
-function readonly_table_proxy(name,src,blacklist)
|
||
+function sandbox.readonly_table_proxy(name,src,blacklist)
|
||
if type(src)=="nil" then return end
|
||
if type(src)~="table" then error("2nd argument must be a table (or nil)") end
|
||
local name = name
|
||
@@ -77,17 +77,17 @@ end
|
||
-- Of course, all of this is useless if the sandbox calling code has
|
||
-- another reference to one of these tables in his global environement.
|
||
local sandbox_proxy = {
|
||
- coroutine = readonly_table_proxy("coroutine",coroutine),
|
||
- string = readonly_table_proxy("string",string,{"dump"}),
|
||
- table = readonly_table_proxy("table",table),
|
||
- math = readonly_table_proxy("math",math),
|
||
- io = readonly_table_proxy("io",io),
|
||
- os = readonly_table_proxy("os",os,{"exit","getenv","remove",
|
||
- "rename","setlocale"}),
|
||
- sandbox = readonly_table_proxy("sandbox",sandbox),
|
||
+ coroutine = sandbox.readonly_table_proxy("coroutine",coroutine),
|
||
+ string = sandbox.readonly_table_proxy("string",string,{"dump"}),
|
||
+ table = sandbox.readonly_table_proxy("table",table),
|
||
+ math = sandbox.readonly_table_proxy("math",math),
|
||
+ io = sandbox.readonly_table_proxy("io",io),
|
||
+ os = sandbox.readonly_table_proxy("os",os,{"exit","getenv","remove",
|
||
+ "rename","setlocale"}),
|
||
+ sandbox = sandbox.readonly_table_proxy("sandbox",sandbox),
|
||
}
|
||
|
||
-function sandbox(func,override)
|
||
+function sandbox.sandbox(func,override)
|
||
local _G = getfenv(2)
|
||
local override = override or {}
|
||
local sandbox_metatable =
|
||
@@ -121,3 +121,5 @@ function sandbox(func,override)
|
||
return unpack(ret)
|
||
end
|
||
end
|
||
+
|
||
+return sandbox
|
||
Index: vlc-3.0.17.4/share/lua/modules/simplexml.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/modules/simplexml.lua
|
||
+++ vlc-3.0.17.4/share/lua/modules/simplexml.lua
|
||
@@ -21,7 +21,7 @@
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||
--]==========================================================================]
|
||
|
||
-module("simplexml",package.seeall)
|
||
+local simplexml = {}
|
||
|
||
--[[ Returns the xml tree structure
|
||
-- Each node is of one of the following types:
|
||
@@ -86,19 +86,19 @@ local function parsexml(stream, errormsg
|
||
return tree
|
||
end
|
||
|
||
-function parse_url(url)
|
||
+function simplexml.parse_url(url)
|
||
return parsexml(vlc.stream(url))
|
||
end
|
||
|
||
-function parse_stream(stream)
|
||
+function simplexml.parse_stream(stream)
|
||
return parsexml(stream)
|
||
end
|
||
|
||
-function parse_string(str)
|
||
+function simplexml.parse_string(str)
|
||
return parsexml(vlc.memory_stream(str))
|
||
end
|
||
|
||
-function add_name_maps(tree)
|
||
+function simplexml.add_name_maps(tree)
|
||
tree.children_map = {}
|
||
for _, node in pairs(tree.children) do
|
||
if type(node) == "table" then
|
||
@@ -106,8 +106,9 @@ function add_name_maps(tree)
|
||
tree.children_map[node.name] = {}
|
||
end
|
||
table.insert(tree.children_map[node.name], node)
|
||
- add_name_maps(node)
|
||
+ simplexml.add_name_maps(node)
|
||
end
|
||
end
|
||
end
|
||
|
||
+return simplexml
|
||
Index: vlc-3.0.17.4/share/lua/playlist/jamendo.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/playlist/jamendo.lua
|
||
+++ vlc-3.0.17.4/share/lua/playlist/jamendo.lua
|
||
@@ -20,7 +20,7 @@
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||
--]]
|
||
|
||
-require "simplexml"
|
||
+local simplexml = require "simplexml"
|
||
|
||
-- Probe function.
|
||
function probe()
|
||
Index: vlc-3.0.17.4/share/lua/sd/fmc.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/sd/fmc.lua
|
||
+++ vlc-3.0.17.4/share/lua/sd/fmc.lua
|
||
@@ -19,7 +19,7 @@
|
||
along with this program; if not, write to the Free Software
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||
--]]
|
||
-require "simplexml"
|
||
+local simplexml = require "simplexml"
|
||
|
||
function descriptor()
|
||
return { title="Free Music Charts" }
|
||
Index: vlc-3.0.17.4/share/lua/sd/icecast.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/sd/icecast.lua
|
||
+++ vlc-3.0.17.4/share/lua/sd/icecast.lua
|
||
@@ -20,12 +20,13 @@
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||
--]]
|
||
|
||
-lazily_loaded = false
|
||
+local simplexml = nil
|
||
|
||
function lazy_load()
|
||
- if lazily_loaded then return nil end
|
||
- require "simplexml"
|
||
- lazily_loaded = true
|
||
+ if simplexml == nil
|
||
+ then
|
||
+ simplexml = require "simplexml"
|
||
+ end
|
||
end
|
||
|
||
function descriptor()
|
||
Index: vlc-3.0.17.4/share/lua/http/requests/browse.json
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/http/requests/browse.json
|
||
+++ vlc-3.0.17.4/share/lua/http/requests/browse.json
|
||
@@ -27,7 +27,7 @@ vim:syntax=lua
|
||
<?vlc
|
||
|
||
--package.loaded.httprequests = nil --uncomment to debug changes
|
||
-require "httprequests"
|
||
+local httprequests = require "httprequests"
|
||
|
||
httprequests.processcommands()
|
||
|
||
Index: vlc-3.0.17.4/share/lua/http/requests/browse.xml
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/http/requests/browse.xml
|
||
+++ vlc-3.0.17.4/share/lua/http/requests/browse.xml
|
||
@@ -28,7 +28,7 @@ vim:syntax=lua
|
||
<?vlc
|
||
|
||
--package.loaded.httprequests = nil --uncomment to debug changes
|
||
-require "httprequests"
|
||
+local httprequests = require "httprequests"
|
||
|
||
httprequests.processcommands()
|
||
|
||
Index: vlc-3.0.17.4/share/lua/http/requests/playlist.json
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/http/requests/playlist.json
|
||
+++ vlc-3.0.17.4/share/lua/http/requests/playlist.json
|
||
@@ -27,7 +27,7 @@ vim:syntax=lua
|
||
<?vlc
|
||
|
||
--package.loaded.httprequests = nil --uncomment to debug changes
|
||
-require "httprequests"
|
||
+local httprequests = require "httprequests"
|
||
|
||
httprequests.processcommands()
|
||
|
||
Index: vlc-3.0.17.4/share/lua/http/requests/playlist.xml
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/http/requests/playlist.xml
|
||
+++ vlc-3.0.17.4/share/lua/http/requests/playlist.xml
|
||
@@ -29,7 +29,7 @@ vim:syntax=lua
|
||
<?vlc
|
||
|
||
--package.loaded.httprequests = nil --uncomment to debug changes
|
||
-require "httprequests"
|
||
+local httprequests = require "httprequests"
|
||
|
||
local printleaf = function(item)
|
||
print ("\n<leaf")
|
||
@@ -89,4 +89,4 @@ local pt=httprequests.playlisttable()
|
||
printitem(pt)
|
||
|
||
|
||
-?>
|
||
\ No newline at end of file
|
||
+?>
|
||
Index: vlc-3.0.17.4/share/lua/http/requests/status.json
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/http/requests/status.json
|
||
+++ vlc-3.0.17.4/share/lua/http/requests/status.json
|
||
@@ -27,7 +27,7 @@ vim:syntax=lua
|
||
<?vlc
|
||
|
||
--package.loaded.httprequests = nil --uncomment to debug changes
|
||
-require "httprequests"
|
||
+local httprequests = require "httprequests"
|
||
|
||
httprequests.processcommands()
|
||
|
||
Index: vlc-3.0.17.4/share/lua/http/requests/status.xml
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/http/requests/status.xml
|
||
+++ vlc-3.0.17.4/share/lua/http/requests/status.xml
|
||
@@ -29,7 +29,7 @@ vim:syntax=lua
|
||
<?vlc
|
||
|
||
--package.loaded.httprequests = nil --uncomment to debug changes
|
||
-require "httprequests"
|
||
+local httprequests = require "httprequests"
|
||
|
||
httprequests.processcommands()
|
||
|
||
Index: vlc-3.0.17.4/share/lua/intf/modules/httprequests.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/intf/modules/httprequests.lua
|
||
+++ vlc-3.0.17.4/share/lua/intf/modules/httprequests.lua
|
||
@@ -22,7 +22,7 @@
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||
--]==========================================================================]
|
||
|
||
-module("httprequests",package.seeall)
|
||
+local httprequests = {}
|
||
|
||
local common = require ("common")
|
||
local dkjson = require ("dkjson")
|
||
@@ -39,6 +39,7 @@ function round(what, precision)
|
||
end
|
||
return nil
|
||
end
|
||
+httprequests.round = round
|
||
|
||
--split text where it matches the delimiter
|
||
function strsplit(text, delimiter)
|
||
@@ -64,6 +65,7 @@ function strsplit(text, delimiter)
|
||
end
|
||
return list
|
||
end
|
||
+httprequests.strsplit = strsplit
|
||
|
||
--main function to process commands sent with the request
|
||
|
||
@@ -207,6 +209,7 @@ processcommands = function ()
|
||
local val = nil
|
||
|
||
end
|
||
+httprequests.processcommands = processcommands
|
||
|
||
--utilities for formatting output
|
||
|
||
@@ -219,6 +222,7 @@ function xmlString(s)
|
||
return tostring(s)
|
||
end
|
||
end
|
||
+httprequests.xmlString = xmlString
|
||
|
||
--dkjson outputs numbered tables as arrays
|
||
--so we don't need the array indicators
|
||
@@ -238,6 +242,7 @@ function removeArrayIndicators(dict)
|
||
|
||
return newDict
|
||
end
|
||
+httprequests.removeArrayIndicators = removeArrayIndicators
|
||
|
||
printTableAsJson = function (dict)
|
||
dict=removeArrayIndicators(dict)
|
||
@@ -245,6 +250,7 @@ printTableAsJson = function (dict)
|
||
local output=dkjson.encode (dict, { indent = true })
|
||
print(output)
|
||
end
|
||
+httprequests.printTableAsJson = printTableAsJson
|
||
|
||
local printXmlKeyValue = function (k,v,indent)
|
||
print("\n")
|
||
@@ -270,12 +276,14 @@ local printXmlKeyValue = function (k,v,i
|
||
end
|
||
end
|
||
end
|
||
+httprequests.printXmlKeyValue = printXmlKeyValue
|
||
|
||
printTableAsXml = function (dict,indent)
|
||
for k,v in pairs(dict) do
|
||
printXmlKeyValue(k,v,indent)
|
||
end
|
||
end
|
||
+httprequests.printTableAsXml = printTableAsXml
|
||
|
||
--[[
|
||
function logTable(t,pre)
|
||
@@ -310,6 +318,7 @@ getplaylist = function ()
|
||
|
||
return p
|
||
end
|
||
+httprequests.getplaylist = getplaylist
|
||
|
||
parseplaylist = function (item)
|
||
if item.flags.disabled then return end
|
||
@@ -358,6 +367,7 @@ parseplaylist = function (item)
|
||
end
|
||
|
||
end
|
||
+httprequests.parseplaylist = parseplaylist
|
||
|
||
playlisttable = function ()
|
||
|
||
@@ -365,6 +375,7 @@ playlisttable = function ()
|
||
|
||
return parseplaylist(basePlaylist)
|
||
end
|
||
+httprequests.playlisttable = playlisttable
|
||
|
||
getbrowsetable = function ()
|
||
|
||
@@ -442,6 +453,7 @@ getbrowsetable = function ()
|
||
|
||
return result;
|
||
end
|
||
+httprequests.getbrowsetable = getbrowsetable
|
||
|
||
|
||
getstatus = function (includecategories)
|
||
@@ -554,4 +566,5 @@ getstatus = function (includecategories)
|
||
end
|
||
return s
|
||
end
|
||
+httprequests.getstatus = getstatus
|
||
|
||
Index: vlc-3.0.17.4/share/lua/intf/modules/host.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/intf/modules/host.lua
|
||
+++ vlc-3.0.17.4/share/lua/intf/modules/host.lua
|
||
@@ -24,7 +24,7 @@
|
||
--[==========================================================================[
|
||
Example use:
|
||
|
||
- require "host"
|
||
+ local host = require "host"
|
||
h = host.host()
|
||
|
||
-- Bypass any authentication
|
||
@@ -62,8 +62,6 @@ Example use:
|
||
For complete examples see existing VLC Lua interface modules (ie cli.lua)
|
||
--]==========================================================================]
|
||
|
||
-module("host",package.seeall)
|
||
-
|
||
status = { init = 0, read = 1, write = 2, password = 3 }
|
||
client_type = { net = 1, stdio = 2, fifo = 3, telnet = 4 }
|
||
|
||
@@ -366,3 +364,10 @@ function host()
|
||
})
|
||
return h
|
||
end
|
||
+
|
||
+return {
|
||
+ host = host,
|
||
+ status = status,
|
||
+ client_type = client_type,
|
||
+ is_flag_set = is_flag_set,
|
||
+}
|
||
Index: vlc-3.0.17.4/share/lua/http/custom.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/http/custom.lua
|
||
+++ vlc-3.0.17.4/share/lua/http/custom.lua
|
||
@@ -2,7 +2,6 @@
|
||
function gettext(text) print(vlc.gettext._(text)) end
|
||
|
||
local _G = _G
|
||
-module("custom",package.seeall)
|
||
|
||
local dialogs = setmetatable({}, {
|
||
__index = function(self, name)
|
||
Index: vlc-3.0.17.4/share/lua/intf/luac.lua
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/share/lua/intf/luac.lua
|
||
+++ vlc-3.0.17.4/share/lua/intf/luac.lua
|
||
@@ -24,14 +24,11 @@
|
||
usage =
|
||
[[
|
||
To compile a lua script to bytecode (luac) run:
|
||
- vlc -I luaintf --lua-intf --lua-config 'luac={input="file.lua",output="file.luac"}'
|
||
+ vlc -I luaintf --lua-intf luac --lua-config 'luac={input="file.lua",output="file.luac"}'
|
||
Output will be similar to that of the luac command line tool provided with lua with the following arguments:
|
||
luac -o file.luac file.lua
|
||
]]
|
||
|
||
-require "string"
|
||
-require "io"
|
||
-
|
||
function compile()
|
||
vlc.msg.info("About to compile lua file")
|
||
vlc.msg.info(" Input is '"..tostring(config.input).."'")
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Add-EXE_EXT-to-allow-specifying-binary-extension.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Add-EXE_EXT-to-allow-specifying-binary-extension.patch
|
||
@@ -0,0 +1,36 @@
|
||
+From 08522a57a2330ce840a812d75d6ef4adb94f0f4b Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 16:15:53 +0100
|
||
+Subject: [PATCH] Add EXE_EXT to allow specifying binary extension
|
||
+
|
||
+This is needed to make the install step aware that the lua/luac
|
||
+binaries have a .exe suffix for Windows.
|
||
+---
|
||
+ Makefile | 5 ++++-
|
||
+ 1 file changed, 4 insertions(+), 1 deletion(-)
|
||
+
|
||
+diff --git a/Makefile b/Makefile
|
||
+index cae9b35..7913cd2 100644
|
||
+--- a/Makefile
|
||
++++ b/Makefile
|
||
+@@ -34,13 +34,16 @@ INSTALL_DATA= $(INSTALL) -m 0644
|
||
+ MKDIR= mkdir -p
|
||
+ RM= rm -f
|
||
+
|
||
++# File extension used for executables
|
||
++EXE_EXT=
|
||
++
|
||
+ # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
|
||
+
|
||
+ # Convenience platforms targets.
|
||
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
|
||
+
|
||
+ # What to install.
|
||
+-TO_BIN= lua luac
|
||
++TO_BIN= lua$(EXE_EXT) luac$(EXE_EXT)
|
||
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
|
||
+ TO_LIB= liblua5.4.a
|
||
+ TO_MAN= lua.1 luac.1
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Add-a-Makefile-variable-to-override-the-strip-tool.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Add-a-Makefile-variable-to-override-the-strip-tool.patch
|
||
@@ -0,0 +1,33 @@
|
||
+From bedf474c5b2f1c46188ff7774ad3b97c4c028108 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Wed, 10 Nov 2021 12:44:52 +0100
|
||
+Subject: [PATCH] Add a Makefile variable to override the strip tool
|
||
+
|
||
+---
|
||
+ src/Makefile | 3 ++-
|
||
+ 1 file changed, 2 insertions(+), 1 deletion(-)
|
||
+
|
||
+diff --git a/src/Makefile b/src/Makefile
|
||
+index af57fe2..db0a3e2 100644
|
||
+--- a/src/Makefile
|
||
++++ b/src/Makefile
|
||
+@@ -15,6 +15,7 @@ AR= ar rcu
|
||
+ RANLIB= ranlib
|
||
+ RM= rm -f
|
||
+ UNAME= uname
|
||
++STRIP= strip
|
||
+
|
||
+ SYSCFLAGS=
|
||
+ SYSLDFLAGS=
|
||
+@@ -131,7 +132,7 @@ Darwin macos macosx:
|
||
+
|
||
+ mingw:
|
||
+ $(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" "LUA_A_LINK=lua54.lib" \
|
||
+- "AR=$(CC) -shared -Wl,--out-implib,lua54.lib $(LDFLAGS) -o" "RANLIB=strip --strip-unneeded" \
|
||
++ "AR=$(CC) -shared -Wl,--out-implib,lua54.lib $(LDFLAGS) -o" "RANLIB=$(STRIP) --strip-unneeded" \
|
||
+ "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
|
||
+ $(MAKE) "LUAC_T=luac.exe" luac.exe
|
||
+
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Add-version-to-library-name.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Add-version-to-library-name.patch
|
||
@@ -0,0 +1,39 @@
|
||
+From 55bc6b11605b7e35323daf28587990d4d57b5e59 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 13:47:03 +0100
|
||
+Subject: [PATCH] Add version to library name
|
||
+
|
||
+---
|
||
+ Makefile | 2 +-
|
||
+ src/Makefile | 2 +-
|
||
+ 2 files changed, 2 insertions(+), 2 deletions(-)
|
||
+
|
||
+diff --git a/Makefile b/Makefile
|
||
+index fed75b3..29c50a3 100644
|
||
+--- a/Makefile
|
||
++++ b/Makefile
|
||
+@@ -41,7 +41,7 @@ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix
|
||
+ # What to install.
|
||
+ TO_BIN= lua luac
|
||
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
|
||
+-TO_LIB= liblua.a
|
||
++TO_LIB= liblua5.4.a
|
||
+ TO_MAN= lua.1 luac.1
|
||
+
|
||
+ # Lua version and release.
|
||
+diff --git a/src/Makefile b/src/Makefile
|
||
+index 91f2315..af57fe2 100644
|
||
+--- a/src/Makefile
|
||
++++ b/src/Makefile
|
||
+@@ -32,7 +32,7 @@ CMCFLAGS=
|
||
+
|
||
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
|
||
+
|
||
+-LUA_A= liblua.a
|
||
++LUA_A= liblua5.4.a
|
||
+ LUA_A_LINK= $(LUA_A)
|
||
+ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
|
||
+ LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Always-use-the-luac-32-bit-format.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Always-use-the-luac-32-bit-format.patch
|
||
@@ -0,0 +1,161 @@
|
||
+From ba66def0fbcbb4635e62f820ed588bd429b81dc9 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 03:21:58 +0100
|
||
+Subject: [PATCH] Always use the luac 32-bit format
|
||
+MIME-Version: 1.0
|
||
+Content-Type: text/plain; charset=UTF-8
|
||
+Content-Transfer-Encoding: 8bit
|
||
+
|
||
+Based on the previous patch by Rémi Denis-Courmont
|
||
+
|
||
+This forces lua and luac to use 32-bit integers even if it would
|
||
+usually use 64-bit ones, this makes it easier to cross-compile,
|
||
+as the build machine might be 64bit while the host is 32bit.
|
||
+---
|
||
+ src/ldump.c | 4 +--
|
||
+ src/luaconf.h | 68 ++++++++-------------------------------------------
|
||
+ src/lundump.c | 4 +--
|
||
+ 3 files changed, 14 insertions(+), 62 deletions(-)
|
||
+
|
||
+diff --git a/src/ldump.c b/src/ldump.c
|
||
+index f848b66..c66afe5 100644
|
||
+--- a/src/ldump.c
|
||
++++ b/src/ldump.c
|
||
+@@ -56,9 +56,9 @@ static void dumpByte (DumpState *D, int y) {
|
||
+
|
||
+
|
||
+ /* dumpInt Buff Size */
|
||
+-#define DIBS ((sizeof(size_t) * 8 / 7) + 1)
|
||
++#define DIBS ((sizeof(uint32_t) * 8 / 7) + 1)
|
||
+
|
||
+-static void dumpSize (DumpState *D, size_t x) {
|
||
++static void dumpSize (DumpState *D, uint32_t x) {
|
||
+ lu_byte buff[DIBS];
|
||
+ int n = 0;
|
||
+ do {
|
||
+diff --git a/src/luaconf.h b/src/luaconf.h
|
||
+index e64d2ee..0d04694 100644
|
||
+--- a/src/luaconf.h
|
||
++++ b/src/luaconf.h
|
||
+@@ -10,6 +10,8 @@
|
||
+
|
||
+ #include <limits.h>
|
||
+ #include <stddef.h>
|
||
++#include <stdint.h>
|
||
++#include <sys/types.h>
|
||
+
|
||
+
|
||
+ /*
|
||
+@@ -116,7 +118,7 @@
|
||
+ /*
|
||
+ @@ LUA_32BITS enables Lua with 32-bit integers and 32-bit floats.
|
||
+ */
|
||
+-#define LUA_32BITS 0
|
||
++#define LUA_32BITS 1
|
||
+
|
||
+
|
||
+ /*
|
||
+@@ -503,7 +505,7 @@
|
||
+ ** use LUAI_UACINT here to avoid problems with promotions (which
|
||
+ ** can turn a comparison between unsigneds into a signed comparison)
|
||
+ */
|
||
+-#define LUA_UNSIGNED unsigned LUAI_UACINT
|
||
++#define LUA_UNSIGNED uint32_t
|
||
+
|
||
+
|
||
+ #define LUA_UNSIGNEDBITS (sizeof(LUA_UNSIGNED) * CHAR_BIT)
|
||
+@@ -511,66 +513,16 @@
|
||
+
|
||
+ /* now the variable definitions */
|
||
+
|
||
+-#if LUA_INT_TYPE == LUA_INT_INT /* { int */
|
||
+-
|
||
+-#define LUA_INTEGER int
|
||
++#define LUA_INTEGER int32_t
|
||
+ #define LUA_INTEGER_FRMLEN ""
|
||
+
|
||
+-#define LUA_MAXINTEGER INT_MAX
|
||
+-#define LUA_MININTEGER INT_MIN
|
||
+-
|
||
+-#define LUA_MAXUNSIGNED UINT_MAX
|
||
+-
|
||
+-#elif LUA_INT_TYPE == LUA_INT_LONG /* }{ long */
|
||
+-
|
||
+-#define LUA_INTEGER long
|
||
+-#define LUA_INTEGER_FRMLEN "l"
|
||
+-
|
||
+-#define LUA_MAXINTEGER LONG_MAX
|
||
+-#define LUA_MININTEGER LONG_MIN
|
||
+-
|
||
+-#define LUA_MAXUNSIGNED ULONG_MAX
|
||
+-
|
||
+-#elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */
|
||
+-
|
||
+-/* use presence of macro LLONG_MAX as proxy for C99 compliance */
|
||
+-#if defined(LLONG_MAX) /* { */
|
||
+-/* use ISO C99 stuff */
|
||
+-
|
||
+-#define LUA_INTEGER long long
|
||
+-#define LUA_INTEGER_FRMLEN "ll"
|
||
+-
|
||
+-#define LUA_MAXINTEGER LLONG_MAX
|
||
+-#define LUA_MININTEGER LLONG_MIN
|
||
+-
|
||
+-#define LUA_MAXUNSIGNED ULLONG_MAX
|
||
+-
|
||
+-#elif defined(LUA_USE_WINDOWS) /* }{ */
|
||
+-/* in Windows, can use specific Windows types */
|
||
+-
|
||
+-#define LUA_INTEGER __int64
|
||
+-#define LUA_INTEGER_FRMLEN "I64"
|
||
++#define LUA_MAXINTEGER INT32_MAX
|
||
++#define LUA_MININTEGER INT32_MIN
|
||
+
|
||
+-#define LUA_MAXINTEGER _I64_MAX
|
||
+-#define LUA_MININTEGER _I64_MIN
|
||
+-
|
||
+-#define LUA_MAXUNSIGNED _UI64_MAX
|
||
+-
|
||
+-#else /* }{ */
|
||
+-
|
||
+-#error "Compiler does not support 'long long'. Use option '-DLUA_32BITS' \
|
||
+- or '-DLUA_C89_NUMBERS' (see file 'luaconf.h' for details)"
|
||
+-
|
||
+-#endif /* } */
|
||
+-
|
||
+-#else /* }{ */
|
||
+-
|
||
+-#error "numeric integer type not defined"
|
||
+-
|
||
+-#endif /* } */
|
||
+-
|
||
+-/* }================================================================== */
|
||
++#define LUA_MAXUNSIGNED UINT32_MAX
|
||
+
|
||
++#define LUAI_UMEM size_t
|
||
++#define LUAI_MEM ssize_t
|
||
+
|
||
+ /*
|
||
+ ** {==================================================================
|
||
+diff --git a/src/lundump.c b/src/lundump.c
|
||
+index 5aa55c4..54840ee 100644
|
||
+--- a/src/lundump.c
|
||
++++ b/src/lundump.c
|
||
+@@ -81,12 +81,12 @@ static size_t loadUnsigned (LoadState *S, size_t limit) {
|
||
+
|
||
+
|
||
+ static size_t loadSize (LoadState *S) {
|
||
+- return loadUnsigned(S, ~(size_t)0);
|
||
++ return loadUnsigned(S, ~(uint32_t)0);
|
||
+ }
|
||
+
|
||
+
|
||
+ static int loadInt (LoadState *S) {
|
||
+- return cast_int(loadUnsigned(S, INT_MAX));
|
||
++ return cast_int(loadUnsigned(S, INT32_MAX));
|
||
+ }
|
||
+
|
||
+
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Avoid-usage-of-localeconv.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Avoid-usage-of-localeconv.patch
|
||
@@ -0,0 +1,239 @@
|
||
+From 1eb23c5258753ad13b1103909d3637a950cc7d3d Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 04:41:06 +0100
|
||
+Subject: [PATCH] Avoid usage of localeconv
|
||
+
|
||
+In order to properly do this, we need to implement a locale-independent
|
||
+version of strtof and snprintf, else lua will be unable to properly
|
||
+parse floating point numbers on systems that do not use a locale where
|
||
+the dot is the decimal point.
|
||
+---
|
||
+ src/Makefile | 2 +-
|
||
+ src/clocwrappers.c | 159 +++++++++++++++++++++++++++++++++++++++++++++
|
||
+ src/luaconf.h | 9 ++-
|
||
+ 3 files changed, 166 insertions(+), 4 deletions(-)
|
||
+ create mode 100644 src/clocwrappers.c
|
||
+
|
||
+diff --git a/src/Makefile b/src/Makefile
|
||
+index f78c0b8..2f18923 100644
|
||
+--- a/src/Makefile
|
||
++++ b/src/Makefile
|
||
+@@ -23,7 +23,7 @@ SYSLIBS=
|
||
+ MYCFLAGS=
|
||
+ MYLDFLAGS=
|
||
+ MYLIBS=
|
||
+-MYOBJS=
|
||
++MYOBJS= clocwrappers.o
|
||
+
|
||
+ # Special flags for compiler modules; -Os reduces code size.
|
||
+ CMCFLAGS=
|
||
+diff --git a/src/clocwrappers.c b/src/clocwrappers.c
|
||
+new file mode 100644
|
||
+index 0000000..5a9b4cc
|
||
+--- /dev/null
|
||
++++ b/src/clocwrappers.c
|
||
+@@ -0,0 +1,159 @@
|
||
++#include <stdlib.h>
|
||
++#include <stdio.h>
|
||
++#include <stdarg.h>
|
||
++
|
||
++#if defined(__APPLE__)
|
||
++# include <xlocale.h>
|
||
++#elif defined(_WIN32)
|
||
++# include <windows.h>
|
||
++# include <locale.h>
|
||
++#else
|
||
++# define _GNU_SOURCE
|
||
++# include <locale.h>
|
||
++#endif
|
||
++
|
||
++/* A strtof replacement that always uses the C locale to ensure
|
||
++ * it always accepts '.' as decimal point.
|
||
++ */
|
||
++
|
||
++#if defined(__APPLE__)
|
||
++
|
||
++float strtof_c_locale(const char *nptr, char **endptr)
|
||
++{
|
||
++ return strtof_l(nptr, endptr, LC_C_LOCALE);
|
||
++}
|
||
++
|
||
++int snprintf_c_locale(char * restrict str, size_t size, const char * restrict format, ...)
|
||
++{
|
||
++ int res;
|
||
++ va_list args;
|
||
++
|
||
++ va_start(args, format);
|
||
++ res = vsnprintf_l(str, size, LC_C_LOCALE, format, args);
|
||
++ va_end(args);
|
||
++
|
||
++ return res;
|
||
++}
|
||
++
|
||
++#elif defined(_WIN32)
|
||
++
|
||
++float strtof_c_locale(const char *nptr, char **endptr)
|
||
++{
|
||
++ float res;
|
||
++
|
||
++ // Store old threadlocale state
|
||
++ int cfgtlocale_old = _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
|
||
++ char *orig_locale = NULL;
|
||
++ if (cfgtlocale_old != -1) {
|
||
++ // Store current locale
|
||
++ orig_locale = setlocale(LC_NUMERIC, NULL);
|
||
++ setlocale(LC_NUMERIC, "C");
|
||
++ }
|
||
++ res = strtof(nptr, endptr);
|
||
++ if (orig_locale != NULL) {
|
||
++ // Restore the old locale
|
||
++ setlocale(LC_NUMERIC, orig_locale);
|
||
++ }
|
||
++ if (cfgtlocale_old != _ENABLE_PER_THREAD_LOCALE && cfgtlocale_old != -1) {
|
||
++ // Restore the old threadlocale state
|
||
++ _configthreadlocale(cfgtlocale_old);
|
||
++ }
|
||
++
|
||
++ return res;
|
||
++}
|
||
++
|
||
++int snprintf_c_locale(char * restrict str, size_t size, const char * restrict format, ...)
|
||
++{
|
||
++ int res;
|
||
++
|
||
++ // Store old threadlocale state
|
||
++ int cfgtlocale_old = _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
|
||
++ char *orig_locale = NULL;
|
||
++ if (cfgtlocale_old != -1) {
|
||
++ // Store current locale
|
||
++ orig_locale = setlocale(LC_NUMERIC, NULL);
|
||
++ setlocale(LC_NUMERIC, "C");
|
||
++ }
|
||
++
|
||
++ va_list args;
|
||
++ va_start(args, format);
|
||
++ res = vsnprintf(str, size, format, args);
|
||
++ va_end(args);
|
||
++
|
||
++ if (orig_locale != NULL) {
|
||
++ // Restore the old locale
|
||
++ setlocale(LC_NUMERIC, orig_locale);
|
||
++ }
|
||
++ if (cfgtlocale_old != _ENABLE_PER_THREAD_LOCALE && cfgtlocale_old != -1) {
|
||
++ // Restore the old threadlocale state
|
||
++ _configthreadlocale(cfgtlocale_old);
|
||
++ }
|
||
++
|
||
++ return res;
|
||
++}
|
||
++
|
||
++#elif defined(__ANDROID__) && (__ANDROID_API__ < 21)
|
||
++
|
||
++float strtof_c_locale(const char *nptr, char **endptr)
|
||
++{
|
||
++ // Android API level < 21 has no locales support
|
||
++ return strtof(nptr, endptr);
|
||
++}
|
||
++
|
||
++int snprintf_c_locale(char * restrict str, size_t size, const char * restrict format, ...)
|
||
++{
|
||
++ // Android API level < 21 has no locales support
|
||
++ va_list args;
|
||
++ va_start(args, format);
|
||
++ return vsnprintf(str, size, format, args);
|
||
++ va_end(args);
|
||
++}
|
||
++
|
||
++#else // Version for all other OSes
|
||
++
|
||
++float strtof_c_locale(const char *nptr, char **endptr)
|
||
++{
|
||
++ float res;
|
||
++
|
||
++ locale_t orig_locale = (locale_t)0;
|
||
++ locale_t locale = newlocale(LC_NUMERIC_MASK, "C", (locale_t)0);
|
||
++ if (locale != (locale_t)0) {
|
||
++ // Store current locale
|
||
++ orig_locale = uselocale(locale);
|
||
++ }
|
||
++ res = strtof(nptr, endptr);
|
||
++ if (locale != (locale_t)0) {
|
||
++ // Restore old locale
|
||
++ uselocale(orig_locale);
|
||
++ freelocale(locale);
|
||
++ }
|
||
++
|
||
++ return res;
|
||
++}
|
||
++
|
||
++int snprintf_c_locale(char * restrict str, size_t size, const char * restrict format, ...)
|
||
++{
|
||
++ int res;
|
||
++
|
||
++ locale_t orig_locale = (locale_t)0;
|
||
++ locale_t locale = newlocale(LC_NUMERIC_MASK, "C", (locale_t)0);
|
||
++ if (locale != (locale_t)0) {
|
||
++ // Store current locale
|
||
++ orig_locale = uselocale(locale);
|
||
++ }
|
||
++
|
||
++ va_list args;
|
||
++ va_start(args, format);
|
||
++ res = vsnprintf(str, size, format, args);
|
||
++ va_end(args);
|
||
++
|
||
++ if (locale != (locale_t)0) {
|
||
++ // Restore old locale
|
||
++ uselocale(orig_locale);
|
||
++ freelocale(locale);
|
||
++ }
|
||
++
|
||
++ return res;
|
||
++}
|
||
++
|
||
++#endif
|
||
+diff --git a/src/luaconf.h b/src/luaconf.h
|
||
+index 38be08d..4b632ee 100644
|
||
+--- a/src/luaconf.h
|
||
++++ b/src/luaconf.h
|
||
+@@ -12,7 +12,10 @@
|
||
+ #include <stddef.h>
|
||
+ #include <stdint.h>
|
||
+ #include <sys/types.h>
|
||
++#include <locale.h>
|
||
+
|
||
++float strtof_c_locale(const char *nptr, char **endptr);
|
||
++int snprintf_c_locale(char * restrict str, size_t size, const char * restrict format, ...);
|
||
+
|
||
+ /*
|
||
+ ** ===================================================================
|
||
+@@ -437,7 +440,7 @@
|
||
+
|
||
+ #define l_mathop(op) op##f
|
||
+
|
||
+-#define lua_str2number(s,p) strtof((s), (p))
|
||
++#define lua_str2number(s,p) strtof_c_locale((s), (p))
|
||
+
|
||
+
|
||
+ #elif LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE /* }{ long double */
|
||
+@@ -535,7 +538,7 @@
|
||
+ ** (All uses in Lua have only one format item.)
|
||
+ */
|
||
+ #if !defined(LUA_USE_C89)
|
||
+-#define l_sprintf(s,sz,f,i) snprintf(s,sz,f,i)
|
||
++#define l_sprintf(s,sz,f,i) snprintf_c_locale(s,sz,f,i)
|
||
+ #else
|
||
+ #define l_sprintf(s,sz,f,i) ((void)(sz), sprintf(s,f,i))
|
||
+ #endif
|
||
+@@ -609,7 +612,7 @@
|
||
+ ** macro must include the header 'locale.h'.)
|
||
+ */
|
||
+ #if !defined(lua_getlocaledecpoint)
|
||
+-#define lua_getlocaledecpoint() (localeconv()->decimal_point[0])
|
||
++#define lua_getlocaledecpoint() '.'
|
||
+ #endif
|
||
+
|
||
+
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Create-an-import-library-needed-for-lld.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Create-an-import-library-needed-for-lld.patch
|
||
@@ -0,0 +1,48 @@
|
||
+From 536cf8d2acceb47bc5ef823d5553603eaa7fa8b1 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 05:40:43 +0100
|
||
+Subject: [PATCH] Create an import library needed for lld
|
||
+MIME-Version: 1.0
|
||
+Content-Type: text/plain; charset=UTF-8
|
||
+Content-Transfer-Encoding: 8bit
|
||
+
|
||
+Based on the previous patch by Martin Storsjö
|
||
+---
|
||
+ src/Makefile | 7 ++++---
|
||
+ 1 file changed, 4 insertions(+), 3 deletions(-)
|
||
+
|
||
+diff --git a/src/Makefile b/src/Makefile
|
||
+index 2f18923..91f2315 100644
|
||
+--- a/src/Makefile
|
||
++++ b/src/Makefile
|
||
+@@ -33,6 +33,7 @@ CMCFLAGS=
|
||
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
|
||
+
|
||
+ LUA_A= liblua.a
|
||
++LUA_A_LINK= $(LUA_A)
|
||
+ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
|
||
+ LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
|
||
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
|
||
+@@ -61,7 +62,7 @@ $(LUA_A): $(BASE_O)
|
||
+ $(RANLIB) $@
|
||
+
|
||
+ $(LUA_T): $(LUA_O) $(LUA_A)
|
||
+- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
|
||
++ $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A_LINK) $(LIBS)
|
||
+
|
||
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
|
||
+ $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
|
||
+@@ -129,8 +130,8 @@ Darwin macos macosx:
|
||
+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline"
|
||
+
|
||
+ mingw:
|
||
+- $(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" \
|
||
+- "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
|
||
++ $(MAKE) "LUA_A=lua54.dll" "LUA_T=lua.exe" "LUA_A_LINK=lua54.lib" \
|
||
++ "AR=$(CC) -shared -Wl,--out-implib,lua54.lib $(LDFLAGS) -o" "RANLIB=strip --strip-unneeded" \
|
||
+ "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
|
||
+ $(MAKE) "LUAC_T=luac.exe" luac.exe
|
||
+
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Create-and-install-a-.pc-file.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Create-and-install-a-.pc-file.patch
|
||
@@ -0,0 +1,87 @@
|
||
+From 5b1f5e5d94dc380cded9ecf4fa49a2e19daccf0b Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 15:33:41 +0100
|
||
+Subject: [PATCH] Create and install a .pc file
|
||
+
|
||
+---
|
||
+ Makefile | 27 ++++++++++++++++++++++-----
|
||
+ 1 file changed, 22 insertions(+), 5 deletions(-)
|
||
+
|
||
+diff --git a/Makefile b/Makefile
|
||
+index 29c50a3..cae9b35 100644
|
||
+--- a/Makefile
|
||
++++ b/Makefile
|
||
+@@ -14,6 +14,7 @@ INSTALL_TOP= /usr/local
|
||
+ INSTALL_BIN= $(INSTALL_TOP)/bin
|
||
+ INSTALL_INC= $(INSTALL_TOP)/include
|
||
+ INSTALL_LIB= $(INSTALL_TOP)/lib
|
||
++INSTALL_LIB_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
|
||
+ INSTALL_MAN= $(INSTALL_TOP)/man/man1
|
||
+ INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
|
||
+ INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
|
||
+@@ -43,6 +44,7 @@ TO_BIN= lua luac
|
||
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
|
||
+ TO_LIB= liblua5.4.a
|
||
+ TO_MAN= lua.1 luac.1
|
||
++TO_PKGCONFIG= lua.pc
|
||
+
|
||
+ # Lua version and release.
|
||
+ V= 5.4
|
||
+@@ -54,12 +56,17 @@ all: $(PLAT)
|
||
+ $(PLATS) help test clean:
|
||
+ @cd src && $(MAKE) $@
|
||
+
|
||
+-install: dummy
|
||
++lua.pc:
|
||
++ $(MAKE) pc > lua.pc
|
||
++
|
||
++
|
||
++install: dummy $(TO_PKGCONFIG)
|
||
+ cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
|
||
+ cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
|
||
+ cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
|
||
+ cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
|
||
+ cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
|
||
++ $(INSTALL_DATA) $(TO_PKGCONFIG) $(INSTALL_LIB_PKGCONFIG)
|
||
+
|
||
+ uninstall:
|
||
+ cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN)
|
||
+@@ -83,10 +90,12 @@ echo:
|
||
+ @echo "TO_INC= $(TO_INC)"
|
||
+ @echo "TO_LIB= $(TO_LIB)"
|
||
+ @echo "TO_MAN= $(TO_MAN)"
|
||
++ @echo "TO_PKGCONFIG= $(TO_PKGCONFIG)"
|
||
+ @echo "INSTALL_TOP= $(INSTALL_TOP)"
|
||
+ @echo "INSTALL_BIN= $(INSTALL_BIN)"
|
||
+ @echo "INSTALL_INC= $(INSTALL_INC)"
|
||
+ @echo "INSTALL_LIB= $(INSTALL_LIB)"
|
||
++ @echo "INSTALL_LIB_PKGCONFIG= $(INSTALL_LIB_PKGCONFIG)"
|
||
+ @echo "INSTALL_MAN= $(INSTALL_MAN)"
|
||
+ @echo "INSTALL_LMOD= $(INSTALL_LMOD)"
|
||
+ @echo "INSTALL_CMOD= $(INSTALL_CMOD)"
|
||
+@@ -95,10 +104,18 @@ echo:
|
||
+
|
||
+ # Echo pkg-config data.
|
||
+ pc:
|
||
+- @echo "version=$R"
|
||
+- @echo "prefix=$(INSTALL_TOP)"
|
||
+- @echo "libdir=$(INSTALL_LIB)"
|
||
+- @echo "includedir=$(INSTALL_INC)"
|
||
++ @echo 'version=$R'
|
||
++ @echo 'prefix=$(INSTALL_TOP)'
|
||
++ @echo 'libdir=$(INSTALL_LIB)'
|
||
++ @echo 'includedir=$(INSTALL_INC)'
|
||
++ @echo ''
|
||
++ @echo 'Name: lua'
|
||
++ @echo 'Description: the lua programming language'
|
||
++ @echo 'Version: $R'
|
||
++ @echo 'URL: https://www.lua.org'
|
||
++ @echo 'Cflags: -I$${includedir}'
|
||
++ @echo 'Libs: -L$${libdir} -llua5.4'
|
||
++ @echo 'Requires:'
|
||
+
|
||
+ # Targets that do not create files (not all makes understand .PHONY).
|
||
+ .PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Disable-dynamic-library-loading-support.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Disable-dynamic-library-loading-support.patch
|
||
@@ -0,0 +1,44 @@
|
||
+From b299adde28756deebeb9e51b137aeaf6c332e5f1 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 03:30:05 +0100
|
||
+Subject: [PATCH] Disable dynamic library loading support
|
||
+MIME-Version: 1.0
|
||
+Content-Type: text/plain; charset=UTF-8
|
||
+Content-Transfer-Encoding: 8bit
|
||
+
|
||
+Based on the previous patch by Rafaël Carré
|
||
+---
|
||
+ src/luaconf.h | 6 +++---
|
||
+ 1 file changed, 3 insertions(+), 3 deletions(-)
|
||
+
|
||
+diff --git a/src/luaconf.h b/src/luaconf.h
|
||
+index 0d04694..38be08d 100644
|
||
+--- a/src/luaconf.h
|
||
++++ b/src/luaconf.h
|
||
+@@ -55,20 +55,20 @@
|
||
+
|
||
+
|
||
+ #if defined(LUA_USE_WINDOWS)
|
||
+-#define LUA_DL_DLL /* enable support for DLL */
|
||
++//#define LUA_DL_DLL /* enable support for DLL */
|
||
+ #define LUA_USE_C89 /* broadly, Windows is C89 */
|
||
+ #endif
|
||
+
|
||
+
|
||
+ #if defined(LUA_USE_LINUX)
|
||
+ #define LUA_USE_POSIX
|
||
+-#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
|
||
++//#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
|
||
+ #endif
|
||
+
|
||
+
|
||
+ #if defined(LUA_USE_MACOSX)
|
||
+ #define LUA_USE_POSIX
|
||
+-#define LUA_USE_DLOPEN /* MacOS does not need -ldl */
|
||
++//#define LUA_USE_DLOPEN /* MacOS does not need -ldl */
|
||
+ #endif
|
||
+
|
||
+
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Disable-system-and-popen-for-windows-store-builds.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Disable-system-and-popen-for-windows-store-builds.patch
|
||
@@ -0,0 +1,67 @@
|
||
+From 105c0c6fcaa2e3498b52cb1a6e3328a670b64dc6 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Thu, 4 Nov 2021 06:42:04 +0100
|
||
+Subject: [PATCH] Disable system and popen for windows store builds
|
||
+
|
||
+---
|
||
+ src/loslib.c | 4 ++++
|
||
+ src/luaconf.h | 13 +++++++++++++
|
||
+ 2 files changed, 17 insertions(+)
|
||
+
|
||
+diff --git a/src/loslib.c b/src/loslib.c
|
||
+index 3e20d62..d7fdb40 100644
|
||
+--- a/src/loslib.c
|
||
++++ b/src/loslib.c
|
||
+@@ -139,6 +139,7 @@
|
||
+
|
||
+
|
||
+
|
||
++#if !defined(LUA_USE_WINSTORE)
|
||
+ static int os_execute (lua_State *L) {
|
||
+ const char *cmd = luaL_optstring(L, 1, NULL);
|
||
+ int stat;
|
||
+@@ -151,6 +152,7 @@ static int os_execute (lua_State *L) {
|
||
+ return 1;
|
||
+ }
|
||
+ }
|
||
++#endif
|
||
+
|
||
+
|
||
+ static int os_remove (lua_State *L) {
|
||
+@@ -408,7 +410,9 @@ static const luaL_Reg syslib[] = {
|
||
+ {"clock", os_clock},
|
||
+ {"date", os_date},
|
||
+ {"difftime", os_difftime},
|
||
++#if !defined(LUA_USE_WINSTORE)
|
||
+ {"execute", os_execute},
|
||
++#endif
|
||
+ {"exit", os_exit},
|
||
+ {"getenv", os_getenv},
|
||
+ {"remove", os_remove},
|
||
+diff --git a/src/luaconf.h b/src/luaconf.h
|
||
+index 4b632ee..382e70b 100644
|
||
+--- a/src/luaconf.h
|
||
++++ b/src/luaconf.h
|
||
+@@ -54,6 +54,19 @@ int snprintf_c_locale(char * restrict str, size_t size, const char * restrict fo
|
||
+ */
|
||
+ #if !defined(LUA_USE_C89) && defined(_WIN32) && !defined(_WIN32_WCE)
|
||
+ #define LUA_USE_WINDOWS /* enable goodies for regular Windows */
|
||
++
|
||
++#include <winapifamily.h>
|
||
++#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
||
++#define LUA_USE_WINSTORE
|
||
++#endif
|
||
++#endif
|
||
++
|
||
++#if defined(LUA_USE_WINSTORE)
|
||
++#define l_popen(L,c,m) \
|
||
++ ((void)c, (void)m, \
|
||
++ luaL_error(L, "'popen' not supported"), \
|
||
++ (FILE*)0)
|
||
++#define l_pclose(L,file) ((void)L, (void)file, -1)
|
||
+ #endif
|
||
+
|
||
+
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Do-not-use-large-file-offsets-with-too-old-Android-A.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Do-not-use-large-file-offsets-with-too-old-Android-A.patch
|
||
@@ -0,0 +1,30 @@
|
||
+From 02f5f23eb8efac1c1cbca8cffb9f136391639f51 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Fri, 5 Nov 2021 13:50:40 +0100
|
||
+Subject: [PATCH] Do not use large file offsets with too old Android API level
|
||
+
|
||
+---
|
||
+ src/lprefix.h | 7 +++++++
|
||
+ 1 file changed, 7 insertions(+)
|
||
+
|
||
+diff --git a/src/lprefix.h b/src/lprefix.h
|
||
+index 484f2ad..11b2889 100644
|
||
+--- a/src/lprefix.h
|
||
++++ b/src/lprefix.h
|
||
+@@ -8,6 +8,13 @@
|
||
+ #define lprefix_h
|
||
+
|
||
+
|
||
++#if defined(__ANDROID__) && (__ANDROID_API__ < 24)
|
||
++// Android API level < 24 does not support large file
|
||
++// offsets, so define this here to prevent it being
|
||
++// defined to 64 below.
|
||
++#define _FILE_OFFSET_BITS 32
|
||
++#endif
|
||
++
|
||
+ /*
|
||
+ ** Allows POSIX/XSI stuff
|
||
+ */
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/contrib/src/lua/Do-not-use-log2f-with-too-old-Android-API-level.patch
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ vlc-3.0.17.4/contrib/src/lua/Do-not-use-log2f-with-too-old-Android-API-level.patch
|
||
@@ -0,0 +1,25 @@
|
||
+From d8cf6736921895a1f11ef69531e189261f944d53 Mon Sep 17 00:00:00 2001
|
||
+From: Marvin Scholz <epirat07@gmail.com>
|
||
+Date: Fri, 5 Nov 2021 12:09:08 +0100
|
||
+Subject: [PATCH] Do not use log2f with too old Android API level
|
||
+
|
||
+---
|
||
+ src/lmathlib.c | 2 +-
|
||
+ 1 file changed, 1 insertion(+), 1 deletion(-)
|
||
+
|
||
+diff --git a/src/lmathlib.c b/src/lmathlib.c
|
||
+index 5f5983a..7c37c88 100644
|
||
+--- a/src/lmathlib.c
|
||
++++ b/src/lmathlib.c
|
||
+@@ -173,7 +173,7 @@ static int math_log (lua_State *L) {
|
||
+ res = l_mathop(log)(x);
|
||
+ else {
|
||
+ lua_Number base = luaL_checknumber(L, 2);
|
||
+-#if !defined(LUA_USE_C89)
|
||
++#if !defined(LUA_USE_C89) && !(defined(__ANDROID__) && (__ANDROID_API__ < 18))
|
||
+ if (base == l_mathop(2.0))
|
||
+ res = l_mathop(log2)(x);
|
||
+ else
|
||
+--
|
||
+2.33.0
|
||
+
|
||
Index: vlc-3.0.17.4/configure.ac
|
||
===================================================================
|
||
--- vlc-3.0.17.4.orig/configure.ac
|
||
+++ vlc-3.0.17.4/configure.ac
|
||
@@ -1717,7 +1717,7 @@ then
|
||
AS_IF([test "${LUAC}" = "false"], [
|
||
AC_MSG_ERROR([Could not find the LUA byte compiler.])
|
||
])
|
||
- AS_IF([test -d "${CONTRIB_DIR}" -a -f "${CONTRIB_DIR}/lib/liblua.a" -a `echo|${LUAC} -o - -|od -j 8 -N 2 -t x2|head -n 1|tr -s ' '|cut -d' ' -f2` != 0404], [
|
||
+ AS_IF([test -d "${CONTRIB_DIR}" -a -f "${CONTRIB_DIR}/lib/liblua5.4.a" -a `echo|${LUAC} -o - -|od -j 12 -N 2 -t x2|head -n 1|tr -s ' '|cut -d' ' -f2` != 0404], [
|
||
AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
|
||
])
|
||
fi
|