{"id":19269416,"url":"https://github.com/atsushieno/cerbero","last_synced_at":"2026-06-11T01:31:49.187Z","repository":{"id":66679116,"uuid":"47049503","full_name":"atsushieno/cerbero","owner":"atsushieno","description":"clone of gstreamer/cerbero with extra fluidsynth build. \u003cdel\u003eThis repository will be eventually deleted now that there is official? mirror on github https://github.com/GStreamer/cerbero and I fork from it.\u003c/del\u003eIt is still in use.","archived":false,"fork":false,"pushed_at":"2021-05-23T13:57:18.000Z","size":8461,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"fluidsynth-build","last_synced_at":"2025-02-23T20:12:43.567Z","etag":null,"topics":["external","fluidsynth-midi-service"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atsushieno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.LGPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-29T04:12:26.000Z","updated_at":"2019-10-27T17:08:19.000Z","dependencies_parsed_at":"2023-04-13T04:55:07.601Z","dependency_job_id":null,"html_url":"https://github.com/atsushieno/cerbero","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/atsushieno/cerbero","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fcerbero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fcerbero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fcerbero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fcerbero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atsushieno","download_url":"https://codeload.github.com/atsushieno/cerbero/tar.gz/refs/heads/fluidsynth-build","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushieno%2Fcerbero/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34178819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["external","fluidsynth-midi-service"],"created_at":"2024-11-09T20:19:46.327Z","updated_at":"2026-06-11T01:31:49.167Z","avatar_url":"https://github.com/atsushieno.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Description\n\nCerbero is a cross-platform build aggregator for Open Source projects that builds\nand creates native packages for different platforms, architectures and distributions.\nIt supports both native compilation and cross compilation and can run on macOS,\nLinux, and Windows.\n\nProjects are defined using recipe files (.recipe), which provide a description\nof the project being built such as name, version, licenses, sources and the way\nit's built. It also provide listing of files, which is later used for the packaging.\n\nPackages are defined using package files (.package), describing the package name,\nversion, license, maintainer and other fields used to create the packages. A\npackage wraps a list of recipes, from which the list of files belonging to the\npackage will be extracted.\n\n# Minimum Requirements\n\nCerbero provides bootstrapping facilities for all platforms, but it still needs a\nminimum base to bootstrap on top of.\n\n### Linux Setup\n\nOn Linux, you will only need a distribution with python \u003e= 3.5. Cerbero will\nuse your package manager to install all other required packages during\n[bootstrap](#Bootstrap).\n\n### macOS Setup\n\nOn macOS you will need to have install the following software:\n\n * XCode\n * Python 3.5+ https://www.python.org/downloads/\n\nCerbero will build all other required packages during [bootstrap](#Bootstrap).\n\n### Windows Setup\n\nThe initial setup on Windows is somewhat longer since the required packages\nmust be installed manually. Detailed steps on what you need to install are\n**[at the bottom of the page](#installing-minimum-requirements-on-windows)**.\n\n# Running Cerbero\n\nDespite the presence of `setup.py` this tool does not need installation. It is invoked via the\ncerbero-uninstalled script, which should be invoked as `./cerbero-uninstalled`, or you can add\nthe cerbero directory in your path and invoke it as `cerbero-uninstalled`.\n\nOn Windows it should be invoked as \"python ./cerbero-uninstalled\".\n\n### Bootstrap\n\nBefore using cerbero for the first time, you will need to run the bootstrap\ncommand.  This command installs the missing parts of the build system using the\npackages manager when available, and also downloads the necessary toolchains\nwhen building for Windows or Android.\n\nNote that this will take a while (a couple hours or even more on Windows).\n\n```sh\n$ ./cerbero-uninstalled bootstrap\n```\n\n### Command Reference\n\n```shell\n# Help\n$ ./cerbero-uninstalled --help\n\n# Command-specific help\n$ ./cerbero-uninstalled \u003ccommand\u003e --help\n\n# List available recipes\n$ ./cerbero-uninstalled list\n\n# Build a recipe\n$ ./cerbero-uninstalled build glib\n\n# Force-rebuild a single recipe\n$ ./cerbero-uninstalled buildone glib\n\n# Create a package (this automatically builds all recipes in the package)\n$ ./cerbero-uninstalled package gstreamer-1.0\n```\n\n## Cross Compilation\n\nIf you're using Cerbero to cross-compile to iOS, Android, or Cross-MinGW, you\nmust select the appropriate config file and pass it to all steps: bootstrap,\nbuild, package, etc.\n\nFor example if you're on Linux and you want to build for Android Universal, you\nmust run:\n\n```sh\n# Bootstrap for Android Universal on Linux\n$ ./cerbero-uninstalled -c config/cross-android-universal.cbc bootstrap\n\n# Build everything and package for Android Universal\n$ ./cerbero-uninstalled -c config/cross-android-universal.cbc package gstreamer-1.0\n```\n\nHere's a list of config files for each target machine:\n\n#### Linux Targets\n\nTarget            | Config file\n:-----------------|:-----------\nMinGW 32-bit      | `cross-win32.cbc`\nMinGW 64-bit      | `cross-win64.cbc`\nAndroid Universal | `cross-android-universal.cbc`\nAndroid ARM64     | `cross-android-arm64.cbc`\nAndroid ARMv7     | `cross-android-armv7.cbc`\nAndroid x86       | `cross-android-x86.cbc`\nAndroid x86_64    | `cross-android-x86-64.cbc`\n\n#### macOS Targets\n\nTarget                 | Config file\n:----------------------|:-----------\nmacOS System Framework | `osx-x86-64.cbc`\niOS Universal          | `cross-ios-universal.cbc`\niOS ARM64              | `cross-ios-arm64.cbc`\niOS ARMv7              | `cross-ios-armv7.cbc`\niOS x86                | `cross-ios-x86.cbc`\niOS x86_64              | `cross-ios-x86-64.cbc`\n\n#### Windows Targets\n\nTarget                     | Config file\n:--------------------------|:-----------\nMinGW 32-bit System Prefix | `win32.cbc`\nMinGW 64-bit System Prefix | `win64.cbc`\n\nCurrently no cross targets are supported on Windows.\n\n\n# Enabling Optional Features with Variants\n\nCerbero controls optional and platform-specific features with `variants`. You\ncan see a full list of available variants by running:\n\n```sh\n$ ./cerbero-uninstalled --list-variants\n```\n\nSome variants are enabled by default while others are not. You can enable\na particular variant by doing one of the following:\n\n* Either invoke `cerbero-uninstalled` with the `-v` argument, for example:\n\n```sh\n$ cerbero-uninstalled -v variantname [-c ...] package gstreamer-1.0\n```\n\n* Or, edit `~/.cerbero/cerbero.cbc` and add `variants = ['variantname']` at the\n  bottom. Create the file if it doesn't exist.\n\nMultiple variants can either be separated by a comma or with multiple `-v`\narguments, for example the following are equivalent:\n\n```sh\n$ cerbero-uninstalled -v variantname1,variantname2 [-c ...] package gstreamer-1.0\n$ cerbero-uninstalled -v variantname1 -v variantname2 [-c ...] package gstreamer-1.0\n```\n\nTo explicitly disable a variant, use `novariantname` instead.\n\nIn the case of multiple enabling/disable of the same variant, then the last\ncondition on the command line will take effect.  e.g. if novariantname is last\nthen variantname is disabled.\n\n## Enabling Qt5 Support\n\nStarting with version 1.15.2, Cerbero has built-in support for building the Qt5\nQML GStreamer plugin. You can toggle that on by\n[enabling the `qt5` variant](#enabling-optional-features-with-variants).\n\nYou must also tell Cerbero where your Qt5 installation prefix is. You can do it\nby setting the `QMAKE` environment variable to point to the `qmake` that you\nwant to use, f.ex. `/path/to/Qt5.12.0/5.12.0/ios/bin/qmake`\n\nWhen building for Android Universal, instead of `QMAKE`, you **must** set the\n`QT5_PREFIX` environment variable pointed to the directory inside your prefix\nwhich contains all the android targets, f.ex. `/path/to/Qt5.12.0/5.12.0`.\n\nNext, run `package`:\n\n```sh\n$ export QMAKE='/path/to/Qt5.12.0/5.12.0/\u003ctarget\u003e/bin/qmake'\n$ ./cerbero-uninstalled -v qt5 [-c ...] package gstreamer-1.0\n```\n\nThis will try to build the Qt5 QML plugin and error out if Qt5 could not be\nfound or if the plugin could not be built. The plugin will be automatically\nadded to the package outputted.\n\n**NOTE:** The package outputted will not contain a copy of the Qt5 libraries in\nit. You must link to them while building your app yourself.\n\n## Enabling Hardware Codec Support\n\nStarting with version 1.15.2, Cerbero has built-in support for building and\npackaging hardware codecs for Intel and Nvidia. If the appropriate variant is\nenabled, the plugin will either be built or Cerbero will error out if that's\nnot possible.\n\n### Intel Hardware Codecs\n\nFor Intel, the [variant to enable](#enabling-optional-features-with-variants)\nis `intelmsdk` which will build the `msdk` plugin.\n\nYou must set the `INTELMEDIASDKROOT` env var to point to your [Intel Media\nSDK](https://software.intel.com/en-us/media-sdk) prefix, or you must have the\nSDK's pkgconfig prefix in `PKG_CONFIG_PATH`\n\nOn Windows, `INTELMEDIASDKROOT` automatically set by the installer. On Linux,\nif you need to set this, you must set it to point to the directory that\ncontains the mediasdk `include` and `lib64` dirs.\n\n### Nvidia Hardware Codecs\n\nFor Nvidia, the [variant to enable](#enabling-optional-features-with-variants)\nis `nvcodec` which will build the `nvcodec` plugin.\n\nIf CUDA is not installed into the system prefix, You need to set `CUDA_PATH` to\npoint to your [CUDA SDK](https://developer.nvidia.com/cuda-downloads) prefix.\nOn Windows, this is done automatically by the installer.\n\n## Enabling Visual Studio Support\n\nStarting with version 1.15.2, Cerbero supports building all GStreamer recipes,\nall mandatory dependencies (such as glib, libffi, zlib, etc), and some external\ndependencies with Visual Studio. You must explicitly opt-in to this by [enabling\nthe `visualstudio` variant](#enabling-optional-features-with-variants):\n\n```sh\n$ python ./cerbero-uninstalled -v visualstudio package gstreamer-1.0\n```\n\nIf you already have a Cerbero build, it is highly recommended to run the `wipe`\ncommand before switching to building with Visual Studio.\n\n[Some plugins that require external dependencies will be automatically\ndisabled](https://gitlab.freedesktop.org/gstreamer/cerbero/issues/121) when\nrunning in this mode.\n\nCurrently, most recipes that use Meson (`btype = BuildType.MESON`) and those\nthat have the `can_msvc` recipe property set to `True` are built with Visual\nStudio.\n\n\n# Installing Minimum Requirements on Windows\n\nThese steps are necessary for using Cerbero on Windows.\n\n#### Install Python 3.5 or newer (either 32-bit or 64-bit)\n\nDownload the [Windows executable installer](https://www.python.org/downloads/) and run it.\n\n* On the first page of the installer, select the following:\n\n![Enable Add Python to PATH, then click Customize Installation](/data/images/py-installer-page1.png)\n\n* On the second page, the defaults are fine\n\n* Third page, you must select the following options:\n\n![Enable Install for all users, associate files with Python, add Python to environment variables, and customize the install location to not have any spaces in it](/data/images/py-installer-page3.png)\n\n#### Install Git for Windows\n\nDownload the [Git for Windows installer](https://gitforwindows.org/) and run it.\n\n* First page is the license\n\n* Next page is `Select Components`, the defaults are fine, enable whatever else you prefer\n\n* Next `Choosing the default editor used by Git`, select whatever you prefer\n\n* Next `Adjusting your PATH environment`, you *must* select as shown in the screenshot\n\n![Select \"Git from the command line and also from 3rd-party software\"](/data/images/git-installer-PATH.png)\n\n* Next `Choosing HTTPS transport backend`, default is fine\n\n* Next `Configuring the line ending conversions`, you *must* select as shown in the screenshot\n\n![Select \"Git from the command line and also from 3rd-party software\"](/data/images/git-installer-line-endings.png)\n\n* Next `Configuring the terminal emulator`, default is fine\n\n* Next `Configuring extra options`, defaults are fine\n\nGit will be installed at `C:\\Program Files\\Git`.\n\n#### Install MSYS/MinGW\n\nDownload the [`mingw-get-setup` executable installer](http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download) and run it.\n\n* First page, keep all the options as-is\n\n* Second page will download the latest package catalogue and base packages\n\n* Once done, the MinGW Installation Manager will open, select the following\n  packages under Basic Setup:\n\n![Under Basic Setup, select mingw-developer-toolkit, mingw32-base, and msys-base](/data/images/msys-install-packages.png)\n\nThen, click on the `Installation` menu and select `Apply Changes`. MSYS will be\ninstalled at `C:\\MinGW`.\n\n**IMPORTANT:** After installation, you must create a shortcut on the desktop to\n`C:\\MinGW\\msys\\1.0\\msys.bat` which will run the MinGW shell. **You must run\nCerbero from inside that**.\n\n**NOTE**: Cerbero does not use the MinGW compiler toolchain shipped with MSYS.\nWe download our own custom GCC toolchain during [bootstrap](#Bootstrap).\n\n**NOTE**: MSYS is not the same as [MSYS2](https://www.msys2.org/), and the\nGStreamer project does not support running Cerbero inside the MSYS2\nenvironment. Things may work or they may break, and you get to keep the pieces.\n\n#### Install Visual Studio 2015 or newer\n\nThis is needed for correctly generating import libraries for recipes built with\nMinGW. Both the Community build and the Professional build are supported.\n\nYou must install the latest Windows 10 SDK when installing Visual Studio as\nshown below. You do not need any older Windows SDKs.\n\n![Select the Desktop development with C++ workload](/data/images/vs2017-installer-workloads.png)\n\nYou can find all versions of Visual Studio at:\nhttps://visualstudio.microsoft.com/vs/older-downloads/\n\n#### Install other tools\n\n* CMake: http://www.cmake.org/cmake/resources/software.html\n\n* WiX 3.11.1 installer: https://github.com/wixtoolset/wix3/releases/tag/wix3111rtm\n\n#### Important Windows-specific Notes\n\nYou should add the cerbero git directory to the list of excluded folders in your\nanti-virus, or you will get random build failures when Autotools does file\noperations such as renames and deletions. It will also slow your build by\nabout 3-4x.\n\nCerbero must be run in the MingGW shell, which is accessible from the main menu\nor desktop. If it is not, create a shortcut on the desktop to `C:\\MinGW\\msys\\1.0\\msys.bat`\n\nThe path to your `$HOME` must not contain spaces. If your Windows username\ncontains spaces, you can create a new directory in `/home` and execute:\n\n```cmd\n$ echo 'export HOME=/home/newdir' \u003e ~/.profile\n```\n\nThen restart your shell and type `cd` to go to the new home directory.\n\nNote that inside the shell, `/` is mapped to `C:\\Mingw\\msys\\1.0\\`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsushieno%2Fcerbero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatsushieno%2Fcerbero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsushieno%2Fcerbero/lists"}