{ "info": { "author": "Philip Chimento", "author_email": "philip@endlessm.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Build Tools" ], "description": "\n# Flapjack #\n\nFlapjack is a tool that lets you hack on one or more of the components\ninside a flatpak runtime.\nYou can make changes to the components and build a new \"development\nSDK\" with your changed components.\nYou can then test your flatpak apps by running them against the\ndevelopment SDK.\n\n## Setting up your development environment ##\n\nInstall Flapjack with `pip3 install --user flapjack`.\n\nFlapjack requires only Python 3.4 or later, Git, Flatpak, and\nFlatpak-builder.\nIt does not require any other Python modules to run.\nFor installation, it requires pip or setuptools.\n\nIf you want, create a configuration file in `~/.config/flapjack.ini`.\nUse the [`example.flapjack.ini`][1] as a template if you need to.\nOut of the box, Flapjack is configured to work on the core platform\nfrom the GNOME SDK.\nThe example file shows how to configure it for the Endless OS apps SDK.\n\nRun `flapjack setup` to perform one-time setup.\nThis will install the base SDK that you are going to be modifying.\nIt will probably take a while.\n\n## Using Flapjack ##\n\nFlapjack is a command-line tool with several subcommands.\nRun `flapjack --help` to get an overview of the subcommands.\n\nThe most basic thing you can do is to build your development runtime.\nRun `flapjack build` to do that.\nThis builds a runtime without any modified components.\nIt's basically equivalent to the base SDK (although you can add\ndeveloper tools to it; see \"Developer tools\" below.)\n\nNow, `flapjack run` will run a flatpak app against the development SDK\nthat you just built: for example, `flapjack run org.gnome.gedit`.\nSince nothing has changed yet, this will not be very enlightening.\n\n## Developing a component ##\n\nAs a tutorial, we will perform the [well-known trick of running GEdit\nwith all the labels upside-down][2].\nWe'll build a development SDK with a modified GTK that will do this,\nand run GEdit against the development SDK.\n\nFor this, you have to indicate that you want to modify GTK.\nDo this with `flapjack open gtk3`.\nThis will put a git clone of GTK in `~/flapjack/checkout/gtk3`.\n\nFor a list of other modules that are available to modify, do\n`flapjack list`.\nNote that `gtk3` is now shown with an asterisk, indicating that it is\nopen.\n\nLet's now make the change in GTK.\nGo into `~/flapjack/checkout/gtk3/gtk/gtklabel.c`, search for\n`label_props[PROP_ANGLE]`, and change the last `0.0` in that paragraph\nto `180.0` to set the default angle for labels to be upside-down.\nAlso add `priv->angle = 180.0;` to the end of the `gtk_label_init`\nfunction.\n\nThen, save the file and do `flapjack build` to build the development SDK\nagain with our modified copy of GTK.\nYou don't need to make a git commit, Flapjack will build whatever the\ncurrent state of the tree is.\nWhen it's done, `flapjack run org.gnome.gedit` should run GEdit against\nthe development SDK, which now shows labels upside-down!\n\nTo test your modifications, you can also do `flapjack test gtk3` to run\n`make check` while building GTK.\nIf a module's tests don't usually run in a sandbox, then they might not\nwork out of the box.\nThe `flapjack test` command has some extra options in case you need to\ndebug the tests or run distcheck instead.\nUse `flapjack test --help` to see them.\n\nWhen you are done modifying GTK, do `flapjack close gtk3` and open\na different module.\nYou can also have more than one module open at the same time, since it\noften happens that changes in one module have effects on another one.\n\n# Miscellaneous commands #\n\nDoing `flapjack shell` will open a shell inside the sandbox of the\ndevelopment SDK that you have built.\nYou can use this to poke around and see what's installed.\n\nThe `flapjack update` command will make sure you have the latest version\nof the base SDK and do a `git fetch` in all of your checkouts.\n\n# Developer tools #\n\nYou can also include extra developer tools in your development SDK.\nAs an example, here's how to include the [`jq`][3] utility.\n\nAdd this to your `~/.config/flapjack.ini` configuration file:\n```\ndev_tools_manifest = ${workdir}/devtools.json\n```\n\nThen, create a file in `~/flapjack/devtools.json` with the following\ncontents:\n```json\n[\n {\n \"name\": \"jq\",\n \"sources\": [\n {\n \"type\": \"archive\",\n \"url\": \"https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz\",\n \"sha256\": \"c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c\"\n }\n ]\n }\n]\n```\n\nRun `flapjack build`.\nEven though no modules are open for development, the development SDK\nsandbox will still contain the `jq` tool.\nYou can verify this with `flapjack shell`.\n\n## Tab completion ##\n\n### System installation ###\n\nIf you prefer a system-wide installation, clone this repository and\nthen run:\n\n```\nsudo python setup.py install_completions\n```\n\n### User installation ###\n\nDownload the [`flapjack.bash-completion`][4] script.\n\nThen to test out the completion without \"installing\" it, just source\nthe file directly, like so:\n\n```\nsource ~/path/to/flapjack.bash-completion\n```\n\nAfter you do that, tab completion will immediately be made available\nin your current shell. But it won't be available next time you log in.\n\nTo install it, add the line above to your `.bashrc`.\n\n[1]: https://github.com/endlessm/flapjack/blob/master/example.flapjack.ini\n[2]: http://www.youtube.com/watch?v=70Kl9ft5DGA&t=40m4s\n[3]: https://stedolan.github.io/jq/\n[4]: https://github.com/endlessm/flapjack/blob/master/build/flapjack.bash-completion\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/endlessm/flapjack", "keywords": "", "license": "ISC", "maintainer": "", "maintainer_email": "", "name": "flapjack", "package_url": "https://pypi.org/project/flapjack/", "platform": "", "project_url": "https://pypi.org/project/flapjack/", "project_urls": { "Homepage": "https://github.com/endlessm/flapjack" }, "release_url": "https://pypi.org/project/flapjack/0.1.5/", "requires_dist": null, "requires_python": "", "summary": "Tool for developing components inside a flatpak runtime", "version": "0.1.5" }, "last_serial": 4357786, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5e23b2bb5b226f1ef789cee72acd12a2", "sha256": "decdd93f8c738ce7e289423e27285b85eed7d307dfca8ae2a73fe181558f612a" }, "downloads": -1, "filename": "flapjack-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e23b2bb5b226f1ef789cee72acd12a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16482, "upload_time": "2017-11-13T23:47:26", "url": "https://files.pythonhosted.org/packages/02/c8/f8c208862c988e6c1fb7d3a682391fbddf4cc5ec1436c0402e42fee30b70/flapjack-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34fcd8f9c7bde8cc113c836c3f9f723e", "sha256": "7301bbea44bf8e1971b3604e1e715c16391843063840f9fd3874959aa32de415" }, "downloads": -1, "filename": "flapjack-0.0.1.tar.gz", "has_sig": false, "md5_digest": "34fcd8f9c7bde8cc113c836c3f9f723e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20811, "upload_time": "2017-11-13T23:47:30", "url": "https://files.pythonhosted.org/packages/21/1b/7ef1b045e0ff3287c4e43cfb473db64c579f7ac0a3875d311b9edfba79e4/flapjack-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "8b97b64bc433b2573739e9b005f8a09e", "sha256": "df762758e5e546623a32799cc262acba43378c19fee83ea6ab8ad9d29fc3dda2" }, "downloads": -1, "filename": "flapjack-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b97b64bc433b2573739e9b005f8a09e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16489, "upload_time": "2018-01-09T21:41:10", "url": "https://files.pythonhosted.org/packages/cb/5f/0cce387f928afc1901cd1523c92c6737f828acf179f4f03213e4531718fc/flapjack-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14cf14b36757e8e7d1d074605fada877", "sha256": "a7a53cc3da93c31933f83c506e3d7c83b163ed32fb94db62c5877f67f9a31bca" }, "downloads": -1, "filename": "flapjack-0.0.2.tar.gz", "has_sig": false, "md5_digest": "14cf14b36757e8e7d1d074605fada877", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21160, "upload_time": "2018-01-09T21:41:14", "url": "https://files.pythonhosted.org/packages/b0/ec/eeeca8347f3a501e133b1505875c78f3228b38cd11f75f6f2ed40db6c3cb/flapjack-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "b7e20a39092e718fbf2259ec89e5e60c", "sha256": "a90fe97c3e94dec6e50610b48d6d55a629d9de75d76791957e7ad943f86789ee" }, "downloads": -1, "filename": "flapjack-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7e20a39092e718fbf2259ec89e5e60c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16987, "upload_time": "2018-01-26T18:39:35", "url": "https://files.pythonhosted.org/packages/52/90/ef90b47d5cff3ffe9bff42f657d112d7de5fd22c50170441976109f67ad2/flapjack-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "68908dae74f78e1843bdcb54797087aa", "sha256": "3980efcb8e85aa55f06fece499f001705c02dc5e1b30d3135fbf4ef33818aa19" }, "downloads": -1, "filename": "flapjack-0.1.0.tar.gz", "has_sig": false, "md5_digest": "68908dae74f78e1843bdcb54797087aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21648, "upload_time": "2018-01-26T18:39:37", "url": "https://files.pythonhosted.org/packages/d7/e8/beabe6f2d67ce06c5874adf10c3af0745d7fbd0c3282c790c5bd2cd9a1c0/flapjack-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "014cc8139eeff860be757bbe057959c4", "sha256": "1425062cf5b60cd6036efeca8de984d1251fe51e40f2170000f9a2deab44afac" }, "downloads": -1, "filename": "flapjack-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "014cc8139eeff860be757bbe057959c4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17109, "upload_time": "2018-02-20T01:14:23", "url": "https://files.pythonhosted.org/packages/e4/86/781a5bfed5ef2b9b8f1888fc03a394f38a4d561a509919b1c8b78252f183/flapjack-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e75b52a7bd6175224249fef7d655949", "sha256": "9003b6a77e3c8aacabb49bd3eceb12a7dc7657be8a95aad5f12e89434f35d41b" }, "downloads": -1, "filename": "flapjack-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3e75b52a7bd6175224249fef7d655949", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19284, "upload_time": "2018-02-20T01:14:25", "url": "https://files.pythonhosted.org/packages/25/c1/dfcc24bc99b6da7f9b6216bbf4b868b28e3f95f9319929d1cc205046824f/flapjack-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2baf102847e1c827137220aab10b0984", "sha256": "61296e4935c5c6699f593753704169e7f642aec6f749fd49b4153a4f33785449" }, "downloads": -1, "filename": "flapjack-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2baf102847e1c827137220aab10b0984", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18162, "upload_time": "2018-03-02T09:50:27", "url": "https://files.pythonhosted.org/packages/64/a5/af21dfba3137b8915492d2e9057fc075fcf71bc674858c44b64147ea3c4b/flapjack-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62ef8e7ff5531bf630ad49c7ca84369e", "sha256": "e2fee47848c5180f25ea3000eb83c89a2596b284ebb8787b51701384736ee307" }, "downloads": -1, "filename": "flapjack-0.1.2.tar.gz", "has_sig": false, "md5_digest": "62ef8e7ff5531bf630ad49c7ca84369e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23123, "upload_time": "2018-03-02T09:50:29", "url": "https://files.pythonhosted.org/packages/c4/a5/434934f1ed1dae1baa9df921cccee125535c225682495dd3822cf2cd363d/flapjack-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "352079de7482c2ba43f4b403e72eb23b", "sha256": "2b0797e882d80a2a89039341c57b5a8f2d64fcd6ab6d458fc59992d253939a2d" }, "downloads": -1, "filename": "flapjack-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "352079de7482c2ba43f4b403e72eb23b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18299, "upload_time": "2018-03-21T18:16:42", "url": "https://files.pythonhosted.org/packages/16/22/eb7ee4d79b8456f0534a77f0c2e5c958c4b7fbbda766e591c267eeedca19/flapjack-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c04539ee52b0f70c8913776acafe75dd", "sha256": "6fa2698a38f457231fadfb2910d5318eb5c55f0d5be0ca21c11bb7cd2c563ea7" }, "downloads": -1, "filename": "flapjack-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c04539ee52b0f70c8913776acafe75dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23219, "upload_time": "2018-03-21T18:16:44", "url": "https://files.pythonhosted.org/packages/1e/64/3264708b567ba3e01defbab36a7699ca64300cd01d8af92f95d14b6a3a69/flapjack-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "4409f4ee0a93008976c04a89add0102f", "sha256": "3752ec9a15015e15397fd51223a98354ee98ae6eccf5a318b848b5f5fff6da12" }, "downloads": -1, "filename": "flapjack-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4409f4ee0a93008976c04a89add0102f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15473, "upload_time": "2018-06-05T00:25:19", "url": "https://files.pythonhosted.org/packages/33/f3/ae57cc74ed71f0e41a170f16a29832c92febe80600b1ecd15e6ae35937f5/flapjack-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7246463608c7f4682e14acebcbf4b86", "sha256": "deaec46990a0dd9e3ff7daf038b71beb64b809eaa509936db0e6605c66d19d40" }, "downloads": -1, "filename": "flapjack-0.1.4.tar.gz", "has_sig": false, "md5_digest": "c7246463608c7f4682e14acebcbf4b86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23792, "upload_time": "2018-06-05T00:25:21", "url": "https://files.pythonhosted.org/packages/21/e2/f85697f3535cb8be55de57e0bba401e5e07cf263485019e62e892ce711b4/flapjack-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e647e50bf2fa0df26edf5ed860a68578", "sha256": "9534647f6f84d05561d80acdc776762128e5ef7eebb39622efe9b70d09619e81" }, "downloads": -1, "filename": "flapjack-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e647e50bf2fa0df26edf5ed860a68578", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15778, "upload_time": "2018-10-09T22:19:40", "url": "https://files.pythonhosted.org/packages/92/6e/f7362fa02e0a6d5304da21e05da106abf580873a3e9e431eb117990210e3/flapjack-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41448cd56f738b682f6fbc987ffeb7ec", "sha256": "b5e84d0ded6f3f7d6c445c7688417a68a682877abbe3b83395f80fae55da5768" }, "downloads": -1, "filename": "flapjack-0.1.5.tar.gz", "has_sig": false, "md5_digest": "41448cd56f738b682f6fbc987ffeb7ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24084, "upload_time": "2018-10-09T22:19:42", "url": "https://files.pythonhosted.org/packages/13/b1/6bf39ef28fc29b674bf1c09ddbbe7118469e5b5833cdc76832e7dd4181ae/flapjack-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e647e50bf2fa0df26edf5ed860a68578", "sha256": "9534647f6f84d05561d80acdc776762128e5ef7eebb39622efe9b70d09619e81" }, "downloads": -1, "filename": "flapjack-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e647e50bf2fa0df26edf5ed860a68578", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15778, "upload_time": "2018-10-09T22:19:40", "url": "https://files.pythonhosted.org/packages/92/6e/f7362fa02e0a6d5304da21e05da106abf580873a3e9e431eb117990210e3/flapjack-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41448cd56f738b682f6fbc987ffeb7ec", "sha256": "b5e84d0ded6f3f7d6c445c7688417a68a682877abbe3b83395f80fae55da5768" }, "downloads": -1, "filename": "flapjack-0.1.5.tar.gz", "has_sig": false, "md5_digest": "41448cd56f738b682f6fbc987ffeb7ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24084, "upload_time": "2018-10-09T22:19:42", "url": "https://files.pythonhosted.org/packages/13/b1/6bf39ef28fc29b674bf1c09ddbbe7118469e5b5833cdc76832e7dd4181ae/flapjack-0.1.5.tar.gz" } ] }