Skip to content

Commit

Permalink
libvorbis_jll build 1.3.6+6
Browse files Browse the repository at this point in the history
  • Loading branch information
jlbuild committed Oct 10, 2020
1 parent 5f09049 commit b3f114c
Show file tree
Hide file tree
Showing 19 changed files with 353 additions and 1,242 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
override/
5 changes: 4 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
name = "libvorbis_jll"
uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a"
version = "1.3.6+5"
version = "1.3.6+6"

[deps]
JLLWrappers = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
Ogg_jll = "e7412a2a-1a6e-54c0-be00-318e2571c051"
Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"

[compat]
JLLWrappers = "1.1.0"
julia = "1.0"
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# `libvorbis_jll.jl` (v1.3.6+5)
# `libvorbis_jll.jl` (v1.3.6+6)

This is an autogenerated package constructed using [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl). The originating [`build_tarballs.jl`](https://github.com/JuliaPackaging/Yggdrasil/blob/9377f3d9ba726cfb50fd5c8f72289222dbe038df/L/libvorbis/build_tarballs.jl) script can be found on [`Yggdrasil`](https://github.com/JuliaPackaging/Yggdrasil/), the community build tree.
This is an autogenerated package constructed using [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl). The originating [`build_tarballs.jl`](https://github.com/JuliaPackaging/Yggdrasil/blob/3cd50f1f9fe8ddf1816141779c427c60af15fe07/L/libvorbis/build_tarballs.jl) script can be found on [`Yggdrasil`](https://github.com/JuliaPackaging/Yggdrasil/), the community build tree. If you have any issue, please report it to the Yggdrasil [bug tracker](https://github.com/JuliaPackaging/Yggdrasil/issues).

For more details about JLL packages and how to use them, see `BinaryBuilder.jl` [documentation](https://juliapackaging.github.io/BinaryBuilder.jl/dev/jll/).

Expand All @@ -9,25 +9,25 @@ For more details about JLL packages and how to use them, see `BinaryBuilder.jl`
The tarballs for `libvorbis_jll.jl` have been built from these sources:

* compressed archive: https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.tar.xz (SHA256 checksum: `af00bb5a784e7c9e69f56823de4637c350643deedaf333d0fa86ecdba6fcb415`)
* files in directory, relative to originating `build_tarballs.jl`: [`./bundled`](https://github.com/JuliaPackaging/Yggdrasil/tree/9377f3d9ba726cfb50fd5c8f72289222dbe038df/L/libvorbis/bundled)
* files in directory, relative to originating `build_tarballs.jl`: [`./bundled`](https://github.com/JuliaPackaging/Yggdrasil/tree/3cd50f1f9fe8ddf1816141779c427c60af15fe07/L/libvorbis/bundled)

## Platforms

`libvorbis_jll.jl` is available for the following platforms:

* `Linux(:aarch64, libc=:glibc)` (`aarch64-linux-gnu`)
* `Linux(:aarch64, libc=:musl)` (`aarch64-linux-musl`)
* `Linux(:armv7l, libc=:glibc, call_abi=:eabihf)` (`armv7l-linux-gnueabihf`)
* `Linux(:armv7l, libc=:musl, call_abi=:eabihf)` (`armv7l-linux-musleabihf`)
* `Linux(:i686, libc=:glibc)` (`i686-linux-gnu`)
* `Linux(:i686, libc=:musl)` (`i686-linux-musl`)
* `Windows(:i686)` (`i686-w64-mingw32`)
* `Linux(:powerpc64le, libc=:glibc)` (`powerpc64le-linux-gnu`)
* `MacOS(:x86_64)` (`x86_64-apple-darwin14`)
* `Linux(:x86_64, libc=:glibc)` (`x86_64-linux-gnu`)
* `Linux(:x86_64, libc=:musl)` (`x86_64-linux-musl`)
* `FreeBSD(:x86_64)` (`x86_64-unknown-freebsd11.1`)
* `Windows(:x86_64)` (`x86_64-w64-mingw32`)
* `Linux aarch64 {libc=glibc}` (`aarch64-linux-gnu`)
* `Linux aarch64 {libc=musl}` (`aarch64-linux-musl`)
* `Linux armv7l {call_abi=eabihf, libc=glibc}` (`armv7l-linux-gnueabihf`)
* `Linux armv7l {call_abi=eabihf, libc=musl}` (`armv7l-linux-musleabihf`)
* `Linux i686 {libc=glibc}` (`i686-linux-gnu`)
* `Linux i686 {libc=musl}` (`i686-linux-musl`)
* `Windows i686` (`i686-w64-mingw32`)
* `Linux powerpc64le {libc=glibc}` (`powerpc64le-linux-gnu`)
* `macOS x86_64` (`x86_64-apple-darwin`)
* `Linux x86_64 {libc=glibc}` (`x86_64-linux-gnu`)
* `Linux x86_64 {libc=musl}` (`x86_64-linux-musl`)
* `FreeBSD x86_64` (`x86_64-unknown-freebsd`)
* `Windows x86_64` (`x86_64-w64-mingw32`)

## Dependencies

Expand Down
64 changes: 8 additions & 56 deletions src/libvorbis_jll.jl
Original file line number Diff line number Diff line change
@@ -1,57 +1,9 @@
module libvorbis_jll

if isdefined(Base, :Experimental) && isdefined(Base.Experimental, Symbol("@optlevel"))
@eval Base.Experimental.@optlevel 0
end

if VERSION < v"1.3.0-rc4"
# We lie a bit in the registry that JLL packages are usable on Julia 1.0-1.2.
# This is to allow packages that might want to support Julia 1.0 to get the
# benefits of a JLL package on 1.3 (requiring them to declare a dependence on
# this JLL package in their Project.toml) but engage in heroic hacks to do
# something other than actually use a JLL package on 1.0-1.2. By allowing
# this package to be installed (but not loaded) on 1.0-1.2, we enable users
# to avoid splitting their package versions into pre-1.3 and post-1.3 branches
# if they are willing to engage in the kinds of hoop-jumping they might need
# to in order to install binaries in a JLL-compatible way on 1.0-1.2. One
# example of this hoop-jumping being to express a dependency on this JLL
# package, then import it within a `VERSION >= v"1.3"` conditional, and use
# the deprecated `build.jl` mechanism to download the binaries through e.g.
# `BinaryProvider.jl`. This should work well for the simplest packages, and
# require greater and greater heroics for more and more complex packages.
error("Unable to import libvorbis_jll on Julia versions older than 1.3!")
end

using Pkg, Pkg.BinaryPlatforms, Pkg.Artifacts, Libdl
import Base: UUID

# We put these inter-JLL-package API values here so that they are always defined, even if there
# is no underlying wrapper held within this JLL package.
const PATH_list = String[]
const LIBPATH_list = String[]

# Load Artifacts.toml file
artifacts_toml = joinpath(@__DIR__, "..", "Artifacts.toml")

# Extract all platforms
artifacts = Pkg.Artifacts.load_artifacts_toml(artifacts_toml; pkg_uuid=UUID("f27f6e37-5d2b-51aa-960f-b287f2bc3b7a"))
platforms = [Pkg.Artifacts.unpack_platform(e, "libvorbis", artifacts_toml) for e in artifacts["libvorbis"]]

# Filter platforms based on what wrappers we've generated on-disk
filter!(p -> isfile(joinpath(@__DIR__, "wrappers", replace(triplet(p), "arm-" => "armv7l-") * ".jl")), platforms)

# From the available options, choose the best platform
best_platform = select_platform(Dict(p => triplet(p) for p in platforms))

# Silently fail if there's no binaries for this platform
if best_platform === nothing
@debug("Unable to load libvorbis; unsupported platform $(triplet(platform_key_abi()))")
else
# Load the appropriate wrapper. Note that on older Julia versions, we still
# say "arm-linux-gnueabihf" instead of the more correct "armv7l-linux-gnueabihf",
# so we manually correct for that here:
best_platform = replace(best_platform, "arm-" => "armv7l-")
include(joinpath(@__DIR__, "wrappers", "$(best_platform).jl"))
end

# Use baremodule to shave off a few KB from the serialized `.ji` file
baremodule libvorbis_jll
using Base
using Base: UUID
import JLLWrappers

JLLWrappers.@generate_main_file_header("libvorbis")
JLLWrappers.@generate_main_file("libvorbis", UUID("f27f6e37-5d2b-51aa-960f-b287f2bc3b7a"))
end # module libvorbis_jll
113 changes: 24 additions & 89 deletions src/wrappers/aarch64-linux-gnu.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,94 +2,29 @@
export libvorbis, libvorbisenc, libvorbisfile

using Ogg_jll
## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"
LIBPATH_default = ""

# Relative path to `libvorbis`
const libvorbis_splitpath = ["lib", "libvorbis.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvorbis_path = ""

# libvorbis-specific global declaration
# This will be filled out by __init__()
libvorbis_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvorbis = "libvorbis.so.0"


# Relative path to `libvorbisenc`
const libvorbisenc_splitpath = ["lib", "libvorbisenc.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvorbisenc_path = ""

# libvorbisenc-specific global declaration
# This will be filled out by __init__()
libvorbisenc_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvorbisenc = "libvorbisenc.so.2"


# Relative path to `libvorbisfile`
const libvorbisfile_splitpath = ["lib", "libvorbisfile.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvorbisfile_path = ""

# libvorbisfile-specific global declaration
# This will be filled out by __init__()
libvorbisfile_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvorbisfile = "libvorbisfile.so.3"


"""
Open all libraries
"""
JLLWrappers.@generate_wrapper_header("libvorbis")
JLLWrappers.@declare_library_product(libvorbis, "libvorbis.so.0")
JLLWrappers.@declare_library_product(libvorbisenc, "libvorbisenc.so.2")
JLLWrappers.@declare_library_product(libvorbisfile, "libvorbisfile.so.3")
function __init__()
global artifact_dir = abspath(artifact"libvorbis")

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
# From the list of our dependencies, generate a tuple of all the PATH and LIBPATH lists,
# then append them to our own.
foreach(p -> append!(PATH_list, p), (Ogg_jll.PATH_list,))
foreach(p -> append!(LIBPATH_list, p), (Ogg_jll.LIBPATH_list,))

global libvorbis_path = normpath(joinpath(artifact_dir, libvorbis_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libvorbis_handle = dlopen(libvorbis_path)
push!(LIBPATH_list, dirname(libvorbis_path))

global libvorbisenc_path = normpath(joinpath(artifact_dir, libvorbisenc_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libvorbisenc_handle = dlopen(libvorbisenc_path)
push!(LIBPATH_list, dirname(libvorbisenc_path))

global libvorbisfile_path = normpath(joinpath(artifact_dir, libvorbisfile_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libvorbisfile_handle = dlopen(libvorbisfile_path)
push!(LIBPATH_list, dirname(libvorbisfile_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(vcat(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)]), ':')


JLLWrappers.@generate_init_header(Ogg_jll)
JLLWrappers.@init_library_product(
libvorbis,
"lib/libvorbis.so",
RTLD_LAZY | RTLD_DEEPBIND,
)

JLLWrappers.@init_library_product(
libvorbisenc,
"lib/libvorbisenc.so",
RTLD_LAZY | RTLD_DEEPBIND,
)

JLLWrappers.@init_library_product(
libvorbisfile,
"lib/libvorbisfile.so",
RTLD_LAZY | RTLD_DEEPBIND,
)

JLLWrappers.@generate_init_footer()
end # __init__()

113 changes: 24 additions & 89 deletions src/wrappers/aarch64-linux-musl.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,94 +2,29 @@
export libvorbis, libvorbisenc, libvorbisfile

using Ogg_jll
## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"
LIBPATH_default = ""

# Relative path to `libvorbis`
const libvorbis_splitpath = ["lib", "libvorbis.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvorbis_path = ""

# libvorbis-specific global declaration
# This will be filled out by __init__()
libvorbis_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvorbis = "libvorbis.so.0"


# Relative path to `libvorbisenc`
const libvorbisenc_splitpath = ["lib", "libvorbisenc.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvorbisenc_path = ""

# libvorbisenc-specific global declaration
# This will be filled out by __init__()
libvorbisenc_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvorbisenc = "libvorbisenc.so.2"


# Relative path to `libvorbisfile`
const libvorbisfile_splitpath = ["lib", "libvorbisfile.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvorbisfile_path = ""

# libvorbisfile-specific global declaration
# This will be filled out by __init__()
libvorbisfile_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvorbisfile = "libvorbisfile.so.3"


"""
Open all libraries
"""
JLLWrappers.@generate_wrapper_header("libvorbis")
JLLWrappers.@declare_library_product(libvorbis, "libvorbis.so.0")
JLLWrappers.@declare_library_product(libvorbisenc, "libvorbisenc.so.2")
JLLWrappers.@declare_library_product(libvorbisfile, "libvorbisfile.so.3")
function __init__()
global artifact_dir = abspath(artifact"libvorbis")

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
# From the list of our dependencies, generate a tuple of all the PATH and LIBPATH lists,
# then append them to our own.
foreach(p -> append!(PATH_list, p), (Ogg_jll.PATH_list,))
foreach(p -> append!(LIBPATH_list, p), (Ogg_jll.LIBPATH_list,))

global libvorbis_path = normpath(joinpath(artifact_dir, libvorbis_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libvorbis_handle = dlopen(libvorbis_path)
push!(LIBPATH_list, dirname(libvorbis_path))

global libvorbisenc_path = normpath(joinpath(artifact_dir, libvorbisenc_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libvorbisenc_handle = dlopen(libvorbisenc_path)
push!(LIBPATH_list, dirname(libvorbisenc_path))

global libvorbisfile_path = normpath(joinpath(artifact_dir, libvorbisfile_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libvorbisfile_handle = dlopen(libvorbisfile_path)
push!(LIBPATH_list, dirname(libvorbisfile_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(vcat(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)]), ':')


JLLWrappers.@generate_init_header(Ogg_jll)
JLLWrappers.@init_library_product(
libvorbis,
"lib/libvorbis.so",
RTLD_LAZY | RTLD_DEEPBIND,
)

JLLWrappers.@init_library_product(
libvorbisenc,
"lib/libvorbisenc.so",
RTLD_LAZY | RTLD_DEEPBIND,
)

JLLWrappers.@init_library_product(
libvorbisfile,
"lib/libvorbisfile.so",
RTLD_LAZY | RTLD_DEEPBIND,
)

JLLWrappers.@generate_init_footer()
end # __init__()

0 comments on commit b3f114c

Please sign in to comment.