summaryrefslogtreecommitdiffstats
path: root/TOOLS/osxbundle.py
Commit message (Collapse)AuthorAgeFilesLines
* osxbundle: use arg list instead of a string for signing subprocess callder richter3 days1-6/+3
| | | | Fixes #13872
* osxbundle: avoid running `codesign` with deprecated `--deep` argumentDavid Knaack2024-03-071-1/+7
| | | | | | | | | `--deep` is deprecated as of macos 13.0. It is also not supported by alternative `codesign` implementations like [sigtool](https://github.com/thefloweringash/sigtool). Related: https://github.com/NixOS/nixpkgs/pull/270691
* osxbundle: use dylib script directly instead of in a subprocessder richter2024-02-241-1/+2
| | | | | | | | | | | | before errors and outputs where ignored from the subscript and the main script didn't fail nor did it output anything. with this change the script properly outputs everything to stdout and stderr. in the case the dylib script fails the whole script fails now. the main function in dylib_unhell was kept since it can still be used individually without the oscbundle script. the script had to be renamed with an underscore to make it importable.
* various: make mentions of macOS consistentder richter2024-02-211-1/+1
| | | | | change all mentions and variations of OSX, OS X, MacOSX, MacOS X, etc consistent. use the official naming macOS.
* osxbundle: add optional source path argumentder richter2024-02-201-9/+11
|
* osxbundle: remove old version retrieval fallbackder richter2024-02-201-4/+3
|
* osxbundle: sign bundle with ad-hoc pseudo identityder richter2023-11-151-0/+6
| | | | | | | | | without a developer license and the corresponding certificate we can't sign our app bundle properly. instead use the ad-hoc pseudo identity. there. i am not sure what restrictions we have because of that, but it's the only way we can pseudo sign the app bundle. Fixes #12116
* osxbundle: remove mpv-bundle symlink to allow code signingDaniel Brookman2023-11-151-6/+0
| | | | | | | | | | | | | | | | | | | Apps on Apple silicon have to be codesigned to run, but you can't codesign bundles that have a symlink for the main executable. The "mpv-bundle" symlink was used as the bundle's main executable because it makes the execution name of the binary different. Launch Services runs the CFBundleExecutable key from Info.plist when launching a bundle, so by comparing the execution name to the name of the symlink, you can check if that's how the binary was launched. This replaces that detection method by moving the MPVBUNDLE environmental variable into Info.plist. Launch Services will set anything in LSEnvironment as environmental variables before launching the bundle, so we're able to check for it instead of needing to differentiate the execution name of the binary. Fixes #12116
* osxbundle: use python3Kiracus2021-07-171-2/+1
|
* *.py: cosmetic changesjnozsc2020-02-271-2/+2
|
* osxbundle: print the output of the dylib-unhell callder richter2019-07-211-2/+2
|
* osx: fix bundle on macOS High Sierra (10.13)Akemi2017-10-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | Apple slightly changed the App bundle mechanism which broke wrapper scripts that invoke the actual binary. it caused the bundle to always open a new instance of mpv instead of reusing the currently running one. just removing the wrapper script would lead to several regressions, so it was replaced with a symlink to the bundle binary. detection if mpv was started from the bundle was replaced by comparing the execution name of the binary, eg the name of the symlink "mpv-bundle". additionally, because we load a standard config from the Resources folder of the bundle again, we prevent that config from being loaded if mpv wasn't started via the bundle. the psn argument has to be removed manually again. the ability of loading your standard shell environment has been removed with the wrapper. a substitution will be added with another commit. as a side effect this fixes an issues when zsh was used with common NodeJS configuration scripts. Fixes #4926 #4866
* bundle: remove git sha from the Info.plist versionStefano Pigozzi2016-01-051-1/+10
| | | | Fixes #2677
* TOOLS: unbreak osxbundle.pyChrisK22015-07-211-1/+1
| | | | broekn by 739d345d6cf0ead2b25f03ca83123a081b506267
* osxbundle: don't use sed but pure pythonMihai Moldovan2014-12-131-1/+3
| | | | | | | | GNU sed and BSD sed don't share the same options for editing files in-place, so a workaround is needed. The most simple way is to use a pure python implementation of applying the changes.
* osxbundle: split and optimize bundling scriptStefano Pigozzi2014-05-091-66/+1
| | | | | | | | | | | Move the code that copies the dylib's to the bundle to a new script (dylib-unhell.py) which is called by osxbundle.py. dylib-unhell is about 20x faster than the previous implementation. This is accomplished by removing superflous shell-out operations which are kept track of using an in memory tree of all the needed dependencies. Moreover the shell-outs have been further optimized by not requiring a complete shell for every operation and just using subprocess.call (which is equivalent to Popen).
* osxbundle: use mpv's version.sh instead of osxbundle'sChrisK22013-12-091-1/+1
|
* switch the build system to wafStefano Pigozzi2013-11-211-8/+12
| | | | | | | | | | | | | | | | | | | | | | | This commit adds a new build system based on waf. configure and Makefile are deprecated effective immediately and someday in the future they will be removed (they are still available by running ./old-configure). You can find how the choice for waf came to be in `DOCS/waf-buildsystem.rst`. TL;DR: we couldn't get the same level of abstraction and customization with other build systems we tried (CMake and autotools). For guidance on how to build the software now, take a look at README.md and the cross compilation guide. CREDITS: This is a squash of ~250 commits. Some of them are not by me, so here is the deserved attribution: - @wm4 contributed some Windows fixes, renamed configure to old-configure and contributed to the bootstrap script. Also, GNU/Linux testing. - @lachs0r contributed some Windows fixes and the bootstrap script. - @Nikoli contributed a lot of testing and discovered many bugs. - @CrimsonVoid contributed changes to the bootstrap script.
* osxbundle: suggest some ways to correct missing dependenciesStefano Pigozzi2013-06-301-2/+11
| | | | | Hopefully this can give some more clues to users about what broke if they find themselves in this situation.
* make: add osxbundle-skip-depsStefano Pigozzi2013-04-081-21/+50
| | | | | | | This adds a way to generate a Mac OS X application bundle without the bundled dependencies. fixes #57
* osxbundle: print meaningful error when a dylib is missingStefano Pigozzi2012-12-161-1/+7
| | | | | | If one of the bundled libraries is pointing to a missing dylib stop the bundling and exit with an error. This can happen if the user uninstalled a dependency after he built the binary/libraries.
* osxbundle: run install_name_tool -id only on direct dependenciesStefano Pigozzi2012-11-061-15/+14
| | | | | | | It looks like that only `install_name_tool -change` must be applied recursively. This allows to bundle up all our stuff without thinkering with the Mach-O headerpad size (which could even be impossible for libraries we don't compile and link ourselves).
* TOOLS: add script for osx bundle generationStefano Pigozzi2012-10-161-0/+89
Add a make task and python script to create a Mac OS X Application Bundle to be used when compiling with the --enable-macosx-finder and --enable-macosx-bundle configure flags. The main svg icon was created by me and heavily inspired by Apple's iTunes and AppStore icon designs. We are still looking for something better. For the audio, movie and subtitles icons I added the main logo to MPlayer OSX Extended icons. Use with `make osxbundle` after running configure and make.