Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Windows and Mac bundling #912

Merged
merged 10 commits into from
Sep 5, 2022
Merged

Improve Windows and Mac bundling #912

merged 10 commits into from
Sep 5, 2022

Conversation

Xaymar
Copy link
Contributor

@Xaymar Xaymar commented Sep 4, 2022

Explain the Pull Request

  • Automatically discover all templates.
  • Automatically discover all media.
  • Automatically discover all data.
  • Enforce a minimum MacOSX version of 10.15 for installing and building.
  • Export as a Loadable Bundle on MacOS, see Loadable Bundles are required with OBS Studio 28.0 and beyond #883.
  • Move all platform-specific files into platform-specific folders.
  • Prefer per-user installation instead of system-wide on MacOS.
  • Replace install_name_tool usage with proper @rpath definitions.

Completion Checklist

  • I have added myself to the Copyright and License headers and files.
  • I will maintain this code in the future and have added myself to CODEOWNERS.
  • I have tested this change on the following platforms:
    • MacOS 10.15
    • MacOS 11
    • MacOS 12
    • Ubuntu 20.04
    • Ubuntu 22.04
    • Windows 10
    • Windows 11

@Xaymar Xaymar force-pushed the patch/bundles branch 14 times, most recently from ffe4d21 to a286b47 Compare September 5, 2022 04:36
These files should be ignored as they have the HEADER_FILE_ONLY flag set.
Prevents missing data due to it not being in the PROJECT_DATA variable. Bit of a hacky solution, but you gotta do what you gotta do to fix it.
This removes the additional patch steps after building, and are more stable across architectures.
With OBS Studio 28.0.0 a new requirement was added to MacOS plugin: Loadable Bundles. These bundles are similar to Application Bundles, and have many of the same features, but are designed to be loaded by Applications instead of being the Application. This allows for almost all of the advantages to persist, with some minimal drawbacks.
With OBS Studio 28.0 comes another restriction: Per-User Plugins. This is currently only enforced on ARM64, but may soon be enforced on all architectures. Adjusting the Packages installer to generate the correct files is relatively easy.

Unfortunately the MacOS Package Installer has some problems figuring out if it should show the user the correct step or not, and may even ignore our settings entirely. This bug has been first reported in 2010, and has since then been re-reported in 2016, 2017, 2018, 2019, and 2020 where it was finally turned into a community wiki on StackOverflow.
@Xaymar Xaymar merged commit 0ba2849 into master Sep 5, 2022
@Xaymar Xaymar deleted the patch/bundles branch September 5, 2022 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant