Help with a simple BinDeps file


#1

I need to read the date metadata from a bunch of videos. I think I want to use mediainfo for this task. I therefore want to add it to my package build.jl file using BinDeps. I managed to create this build.jl file, but it doesn’t seem to work (I’m testing it on a “fresh” Windows laptop, simulating what some of my target users will work with).

I’d really appreciate some guidance…! I chose mediainfo mainly because it seemed easier to install via BinDeps than say exiftool.
Thanks in advance!


#2

Sheesh, I’m hitting a wall here. I got it to download MediaIndo’s dlls and all, but it throws an error, not sure what to do. Let me know if you have an idea:

INFO: Building Associations
INFO: Attempting to Create directory C:\Users\Lisa\.julia\v0.5\Associations\deps\downloads
INFO: Downloading file https://mediaarea.net/download/binary/libmediainfo0/0.7.94/MediaInfo_DLL_0.7.94_Windows_x64_WithoutInstaller.7z
INFO: Done downloading file https://mediaarea.net/download/binary/libmediainfo0/0.7.94/MediaInfo_DLL_0.7.94_Windows_x64_WithoutInstaller.7z
INFO: Attempting to Create directory C:\Users\Lisa\.julia\v0.5\Associations
INFO: Directory C:\Users\Lisa\.julia\v0.5\Associations already created

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Processing archive: C:\Users\Lisa\.julia\v0.5\Associations\deps\downloads\MediaInfo_DLL_0.7.94_Windows_x64_WithoutInstaller.7z

Extracting  Developers\Example.ogg
Extracting  Developers\Doc\bc_s.png
Extracting  Developers\Doc\bdwn.png
Extracting  Developers\Doc\closed.png
Extracting  Developers\Doc\doxygen.png
Extracting  Developers\Doc\ftv2blank.png
Extracting  Developers\Doc\ftv2cl.png
Extracting  Developers\Doc\ftv2doc.png
Extracting  Developers\Doc\ftv2folderclosed.png
Extracting  Developers\Doc\ftv2folderopen.png
Extracting  Developers\Doc\ftv2lastnode.png
Extracting  Developers\Doc\ftv2link.png
Extracting  Developers\Doc\ftv2mlastnode.png
Extracting  Developers\Doc\ftv2mnode.png
Extracting  Developers\Doc\ftv2mo.png
Extracting  Developers\Doc\ftv2node.png
Extracting  Developers\Doc\ftv2ns.png
Extracting  Developers\Doc\ftv2plastnode.png
Extracting  Developers\Doc\ftv2pnode.png
Extracting  Developers\Doc\ftv2splitbar.png
Extracting  Developers\Doc\ftv2vertline.png
Extracting  Developers\Doc\nav_f.png
Extracting  Developers\Doc\nav_g.png
Extracting  Developers\Doc\nav_h.png
Extracting  Developers\Doc\open.png
Extracting  Developers\Doc\sync_off.png
Extracting  Developers\Doc\sync_on.png
Extracting  Developers\Doc\tab_a.png
Extracting  Developers\Doc\tab_b.png
Extracting  Developers\Doc\tab_h.png
Extracting  Developers\Doc\tab_s.png
Extracting  Developers\Project\MSCS2008\Example\App.ico
Extracting  Developers\Project\MSCS2010\Example\App.ico
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.h
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL_Static.h
Extracting  Developers\Source\Example\HowToUse_Dll.cpp
Extracting  Developers\Source\Example\HowToUse_Dll.JNA.java
Extracting  Developers\Project\NetBeans\Example.JNA\src\HowToUse_Dll.JNA.java
Extracting  Developers\Source\Example\HowToUse_Dll.JNative.java
Extracting  Developers\Project\NetBeans\Example.JNative\src\HowToUse_Dll.JNative.java
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.JNA.java
Extracting  Developers\Project\NetBeans\Example.JNA\src\MediaInfoDLL.JNA.java
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.JNative.java
Extracting  Developers\Project\NetBeans\Example.JNative\src\MediaInfoDLL.JNative.java
Extracting  Developers\Project\MSCS2008\asp_net_web_application\Properties\AssemblyInfo.cs
Extracting  Developers\Project\MSCS2008\Example\AssemblyInfo.cs
Extracting  Developers\Project\MSCS2010\asp_net_web_application\Properties\AssemblyInfo.cs
Extracting  Developers\Project\MSCS2010\Example\AssemblyInfo.cs
Extracting  Developers\Project\MSCS2008\asp_net_web_application\Default.aspx.cs
Extracting  Developers\Project\MSCS2010\asp_net_web_application\Default.aspx.cs
Extracting  Developers\Project\MSCS2008\asp_net_web_application\Default.aspx.designer.cs
Extracting  Developers\Project\MSCS2010\asp_net_web_application\Default.aspx.designer.cs
Extracting  Developers\Source\Example\HowToUse_Dll.cs
Extracting  Developers\Project\MSCS2008\Example\HowToUse_Dll.cs
Extracting  Developers\Project\MSCS2010\Example\HowToUse_Dll.cs
Extracting  Developers\Source\Example\HowToUse_Dll_CLI.cs
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.cs
Extracting  Developers\Project\MSCS2008\asp_net_web_application\MediaInfoDLL.cs
Extracting  Developers\Project\MSCS2008\Example\MediaInfoDLL.cs
Extracting  Developers\Project\MSCS2010\asp_net_web_application\MediaInfoDLL.cs
Extracting  Developers\Project\MSCS2010\Example\MediaInfoDLL.cs
Extracting  Developers\Project\Delphi\Example\HowToUse_Dll_.pas
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.pas
Extracting  Developers\Project\MSVB\Example\My Project\Application.Designer.vb
Extracting  Developers\Project\MSVB\Example\My Project\AssemblyInfo.vb
Extracting  Developers\Project\MSVB\Example\HowToUse_Dll.Designer.vb
Extracting  Developers\Project\MSVB\Example\HowToUse_Dll.vb
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.vb
Extracting  Developers\Project\MSVB\Example\MediaInfoDLL.vb
Extracting  Developers\Project\MSVB\Example\My Project\Resources.Designer.vb
Extracting  Developers\Project\MSVB\Example\My Project\Settings.Designer.vb
Extracting  Developers\Project\MSVB\Example VB6\HowToUse_Dll.frm
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.def
Extracting  Developers\Project\MSCS2008\asp_net_web_application\asp_net_web_application.csproj
Extracting  Developers\Project\MSCS2010\asp_net_web_application\asp_net_web_application.csproj
Extracting  Developers\Project\MSCS2008\Example\HowToUse_Dll.csproj
Extracting  Developers\Project\MSCS2010\Example\HowToUse_Dll.csproj
Extracting  Developers\Project\MSVC2015\MediaInfoLib.sln
Extracting  Developers\Project\MSVC2013\MediaInfoLib.sln
Extracting  Developers\Project\MSCS2008\MediaInfoLib_MSCS.sln
Extracting  Developers\Project\MSCS2010\MediaInfoLib_MSCS.sln
Extracting  Developers\Project\MSJS\MediaInfoLib_MSJS.sln
Extracting  Developers\Project\MSVB\MediaInfoLib_MSVB.sln
Extracting  Developers\Project\Java\Example.JNA\Compile.bat
Extracting  Developers\Project\Java\Example.JNative\Compile.bat
Extracting  Developers\Project\Java\Example.JNA\MakeJavaDoc.bat
Extracting  Developers\Project\Java\Example.JNative\MakeJavaDoc.bat
Extracting  MediaInfo_InfoTip_Register.bat
Extracting  MediaInfo_InfoTip_UnRegister.bat
Extracting  Developers\Project\Java\Example.JNA\Run.bat
Extracting  Developers\Project\Java\Example.JNative\Run.bat
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject\build-impl.xml
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject\build-impl.xml
Extracting  Developers\Project\NetBeans\Example.JNative\build.xml
Extracting  Developers\Project\NetBeans\Example.JNA\build.xml
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject\private\private.xml
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject\private\private.xml
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject\project.xml
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject\project.xml
Extracting  Developers\Doc\annotated.html
Extracting  Developers\Doc\classes.html
Extracting  Developers\Doc\class_media_info_lib_1_1_media_info-members.html
Extracting  Developers\Doc\class_media_info_lib_1_1_media_info.html
Extracting  Developers\Doc\class_media_info_lib_1_1_media_info_list-members.html
Extracting  Developers\Doc\class_media_info_lib_1_1_media_info_list.html
Extracting  Developers\Doc\dir_04ac3ca04e7df05c28b97e8a54b78cec.html
Extracting  Developers\Doc\dir_1948383ebc858d7498bcb23a8a53c434.html
Extracting  Developers\Documentation.html
Extracting  Developers\Doc\files.html
Extracting  Developers\Doc\functions.html
Extracting  Developers\Doc\functions_func.html
Extracting  Developers\Doc\index.html
Extracting  Developers\License.html
Extracting  Developers\Doc\namespacemembers.html
Extracting  Developers\Doc\namespacemembers_enum.html
Extracting  Developers\Doc\namespacemembers_eval.html
Extracting  Developers\Doc\namespacemembers_type.html
Extracting  Developers\Doc\namespaces.html
Extracting  Developers\Doc\namespace_media_info_lib.html
Extracting  Developers\Doc\_media_info_8h_source.html
Extracting  Developers\Doc\_media_info_d_l_l_8h_source.html
Extracting  Developers\Doc\_media_info_list_8h_source.html
Extracting  Developers\Doc\_media_info___const_8h_source.html
Extracting  Developers\Project\MSCS2008\asp_net_web_application\Default.aspx
Extracting  Developers\Project\MSCS2010\asp_net_web_application\Default.aspx
Extracting  Developers\Doc\doxygen.css
Extracting  Developers\Doc\tabs.css
Extracting  Developers\Doc\dynsections.js
Extracting  Developers\Doc\jquery.js
Extracting  Developers\Source\Example\HowToUse_Dll.py
Extracting  Developers\Source\Example\HowToUse_Dll3.py
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.py
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL3.py
Extracting  Developers\Project\Java\Example.JNative\Compile.sh
Extracting  Developers\Project\Java\Example.JNA\Compile.sh
Extracting  Developers\Project\Java\Example.JNA\MakeJavaDoc.sh
Extracting  Developers\Project\Java\Example.JNative\MakeJavaDoc.sh
Extracting  Developers\Project\Java\Example.JNA\Run.sh
Extracting  Developers\Project\Java\Example.JNative\Run.sh
Extracting  Developers\Changes.txt
Extracting  Developers\History.txt
Extracting  ReadMe.txt
Extracting  Developers\Project\Java\Example.JNative\ReadMe.txt
Extracting  Developers\Project\Java\Example.JNA\ReadMe.txt
Extracting  Developers\Project\MSVB\Example VB6\ReadMe.txt
Extracting  Developers\Project\NetBeans\Example.JNative\ReadMe.txt
Extracting  Developers\Project\MSVC2015\x64\Release\MediaInfo.lib
Extracting  Developers\Source\Example\HowToUse_Dll.au3
Extracting  Developers\Project\Delphi\Example\HowToUse_Dll.bdsproj
Extracting  Developers\Project\CodeBlocks\Example\HowToUse_CLI.cbp
Extracting  Developers\Project\MSCS2008\asp_net_web_application\Web.config
Extracting  Developers\Project\MSCS2010\asp_net_web_application\Web.config
Extracting  Developers\List_Of_Parameters\Audio.csv
Extracting  Developers\List_Of_Parameters\General.csv
Extracting  Developers\List_Of_Parameters\General_Info_About_Levels.csv
Extracting  Developers\List_Of_Parameters\Generic.csv
Extracting  Developers\List_Of_Parameters\Image.csv
Extracting  Developers\List_Of_Parameters\Menu.csv
Extracting  Developers\List_Of_Parameters\Other.csv
Extracting  Developers\List_Of_Parameters\Text.csv
Extracting  Developers\List_Of_Parameters\Video.csv
Extracting  Developers\Project\Delphi\Example\HowToUse_Dll_.dfm
Extracting  Developers\Project\Delphi\Example\HowToUse_Dll.dpr
Extracting  Developers\Project\MSVC2013\Example\HowToUse_Dll.vcxproj.filters
Extracting  Developers\Project\MSVC2015\Example\HowToUse_Dll.vcxproj.filters
Extracting  Developers\Project\MSVB\Example VB6\HowToUse_Dll.frx
Extracting  Developers\Project\MSJS\Example\AssemblyInfo.jsl
Extracting  Developers\Project\MSJS\Example\HowToUse_Dll.jsl
Extracting  Developers\Source\MediaInfoDLL\MediaInfoDLL.jsl
Extracting  Developers\Project\MSJS\Example\MediaInfoDLL.jsl
Extracting  Developers\Project\NetBeans\Example.JNA\manifest.mf
Extracting  Developers\Project\NetBeans\Example.JNative\manifest.mf
Extracting  Developers\Project\MSVB\Example\My Project\Application.myapp
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject\genfiles.properties
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject\genfiles.properties
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject\private\private.properties
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject\private\private.properties
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject\project.properties
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject\project.properties
Extracting  Developers\Project\BCB\Example\HowToUse_CLI.res
Extracting  Developers\Project\Delphi\Example\HowToUse_Dll.res
Extracting  Developers\Project\MSJS\Example\HowToUse_Dll.resx
Extracting  Developers\Project\MSVB\Example\HowToUse_Dll.resx
Extracting  Developers\Project\MSVB\Example\My Project\Resources.resx
Extracting  Developers\Project\MSVB\Example\My Project\Settings.settings
Extracting  Developers\Project\MSVB\Example VB6\HowToUse_Dll.vbp
Extracting  Developers\Project\MSVB\Example\HowToUse_Dll.vbproj
Extracting  Developers\Project\MSVC2015\Example\HowToUse_Dll.vcxproj
Extracting  Developers\Project\MSVC2013\Example\HowToUse_Dll.vcxproj
Extracting  Developers\Project\MSJS\Example\HowToUse_Dll.vjsproj
Extracting  MediaInfo.dll
Extracting  MediaInfo_InfoTip.dll
Extracting  Developers\Source\MediaInfoDLL
Extracting  Developers\Source\Example
Extracting  Developers\Source
Extracting  Developers\Project\NetBeans\Example.JNative\src
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject\private
Extracting  Developers\Project\NetBeans\Example.JNative\nbproject
Extracting  Developers\Project\NetBeans\Example.JNative
Extracting  Developers\Project\NetBeans\Example.JNA\src
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject\private
Extracting  Developers\Project\NetBeans\Example.JNA\nbproject
Extracting  Developers\Project\NetBeans\Example.JNA
Extracting  Developers\Project\NetBeans
Extracting  Developers\Project\MSVC2015\x64\Release
Extracting  Developers\Project\MSVC2015\x64
Extracting  Developers\Project\MSVC2015\Example
Extracting  Developers\Project\MSVC2015
Extracting  Developers\Project\MSVC2013\Example
Extracting  Developers\Project\MSVC2013
Extracting  Developers\Project\MSVB\Example\My Project
Extracting  Developers\Project\MSVB\Example VB6
Extracting  Developers\Project\MSVB\Example
Extracting  Developers\Project\MSVB
Extracting  Developers\Project\MSJS\Example
Extracting  Developers\Project\MSJS
Extracting  Developers\Project\MSCS2010\Example
Extracting  Developers\Project\MSCS2010\asp_net_web_application\Properties
Extracting  Developers\Project\MSCS2010\asp_net_web_application
Extracting  Developers\Project\MSCS2010
Extracting  Developers\Project\MSCS2008\Example
Extracting  Developers\Project\MSCS2008\asp_net_web_application\Properties
Extracting  Developers\Project\MSCS2008\asp_net_web_application
Extracting  Developers\Project\MSCS2008
Extracting  Developers\Project\Java\Example.JNative
Extracting  Developers\Project\Java\Example.JNA
Extracting  Developers\Project\Java
Extracting  Developers\Project\Delphi\Example
Extracting  Developers\Project\Delphi
Extracting  Developers\Project\CodeBlocks\Example
Extracting  Developers\Project\CodeBlocks
Extracting  Developers\Project\BCB\Example
Extracting  Developers\Project\BCB
Extracting  Developers\Project
Extracting  Developers\List_Of_Parameters
Extracting  Developers\Doc
Extracting  Developers

Everything is Ok

Folders: 45
Files: 192
Size:       7172261
Compressed: 1523758
================================================[ ERROR: Associations ]=================================================

LoadError: Path C:\Users\Lisa\.julia\v0.5\Associations\deps\usr was not created successfully (Tried to run `7z x 'C:\Users\Lisa\.julia\v0.5\Associations\deps\downloads\MediaInfo_DLL_0.7.94_Windows_x64_WithoutInstaller.7z' -y '-oC:\Users\Lisa\.julia\v0.5\Associations\deps'` )
while loading C:\Users\Lisa\.julia\v0.5\Associations\deps\build.jl, in expression starting on line 26

========================================================================================================================

====================================================[ BUILD ERRORS ]====================================================

WARNING: Associations had build errors.

 - packages with build errors remain installed in C:\Users\Lisa\.julia\v0.5
 - build the package(s) and all dependencies with `Pkg.build("Associations")`
 - build a single package by running its `deps/build.jl` script

========================================================================================================================

#3

OK, I decided it will be a lot easier to just download the executable for exiftool
So, my build.jl file should download an executable from a specific url depending on the current platform (unix, win, osx), and then name it in such a way that I can use it like this:

name = "path_to_executable" 
run(`$name videofile.mp4`)` 

I tried doing just that using BinDeps.jl, but can’t make it work. Any help would be greatly appreciated!


#4

OK… I got it to work, but only by putting the following in a try block (you can see the build.jl file here)…

try
    @BinDeps.install Dict(:exiftool => :exiftool)
end

#5

I managed to use this.