{"id":22767429,"url":"https://github.com/thomastrapp/bb-depends-dot","last_synced_at":"2026-04-07T19:31:13.311Z","repository":{"id":148175219,"uuid":"384482237","full_name":"thomastrapp/bb-depends-dot","owner":"thomastrapp","description":"List recipes from BitBake's task-depends.dot and the dependencies between these recipes","archived":false,"fork":false,"pushed_at":"2022-04-03T16:43:05.000Z","size":29,"stargazers_count":23,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-13T05:12:25.171Z","etag":null,"topics":["bitbake","oe-depends-dot","open-embedded","poky","recipes","yocto"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thomastrapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-07-09T15:41:55.000Z","updated_at":"2025-03-06T14:08:59.000Z","dependencies_parsed_at":"2023-05-19T09:00:35.915Z","dependency_job_id":null,"html_url":"https://github.com/thomastrapp/bb-depends-dot","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/thomastrapp/bb-depends-dot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomastrapp%2Fbb-depends-dot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomastrapp%2Fbb-depends-dot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomastrapp%2Fbb-depends-dot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomastrapp%2Fbb-depends-dot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomastrapp","download_url":"https://codeload.github.com/thomastrapp/bb-depends-dot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomastrapp%2Fbb-depends-dot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31526665,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bitbake","oe-depends-dot","open-embedded","poky","recipes","yocto"],"created_at":"2024-12-11T13:30:26.363Z","updated_at":"2026-04-07T19:31:13.296Z","avatar_url":"https://github.com/thomastrapp.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"bb-depends-dot\n==============\n\nInspect recipes from Bitbake's `task-depends.dot` and the dependencies between these recipes.\n\n[Yocto/Poky](https://github.com/yoctoproject/poky) ships the script [oe-depends-dot](https://github.com/yoctoproject/poky/blob/cd369a732e17e57794a89519de6bab3847330630/scripts/oe-depends-dot) which has stopped working some years ago when the output of `bitbake -g` changed. The same is true for [oe-depends-dot](https://github.com/openembedded/openembedded-core/blob/0441b53d55a919b5ac42e997f4092053b017b553/scripts/oe-depends-dot) from [openembedded-core](https://github.com/openembedded/openembedded-core).  \n`bb-depends-dot` is a replacement.\n\n\nExample:\n\n```shell\n# generate `task-depends.dot`\nbitbake -g foo\n\n# list recipes with at least one task that recipe \"curl\" depends on directly\nbb-depends-dot task-depends.dot curl\n\n# list recipes that have at least one task that directly depends on a task\n# from recipe \"curl\":\nbb-depends-dot task-depends.dot -r curl\n\n# list recipes that have at least one task that transitively depends on a task\n# from recipe \"curl\":\nbb-depends-dot task-depends.dot -tr curl\n\n# list recipes with at least one task that recipe \"curl\" depends on, and list\n# all their dependencies\nbb-depends-dot task-depends.dot -t curl\n```\n\nOptions:\n\n```\n./bb-depends-dot - List dependencies between BitBake recipes.\n\nUsage:\n  ./bb-depends-dot [options] \u003ctask-depends.dot\u003e\n      List all recipes\n\n  ./bb-depends-dot [options] \u003ctask-depends.dot\u003e \u003crecipe_name\u003e\n      List dependencies of a specific recipe\n\nOptions:\n  --task-depends-dot \u003cfile\u003e The task-depends.dot file generated by `bitbake -g`\n  --recipe \u003crecipe_name\u003e    Select a recipe\n  -d [ --depends ]          List dependencies of recipe (default if recipe \n                            given)\n  -r [ --rdepends ]         List reverse dependencies of recipe\n  -t [ --transitive ]       List all transitive dependencies of the given \n                            recipe\n  -h [ --help ]             Print this help message\n  -V [ --version ]          Print version\n```\n\n## Install\n\nNavigate to [bb-depends-dot's latest release](https://github.com/thomastrapp/bb-depends-dot/releases/latest) and download `bb-depends-dot-static-linux-x86_64-*.zip`.\n\n```shell\nunzip bb-depends-dot-static-linux-x86_64-*.zip\nchmod +x bb-depends-dot\n# move this binary to somewhere on your $PATH, e.g.:\nmv -i bb-depends-dot ~/.local/bin/\n```\n\nThis binary runs on any Linux (x86-64) with GLIBC≥2.14, which was released back in the year 2011.\n\n## Build from source:\n\nDependencies:\n\n* A compiler with `C++17` support, such as `g++` ≥7 or  `clang++` ≥5\n* `cmake` ≥3.10\n* `libboost-dev`\n* `libboost-graph-dev`\n* `libboost-program-options-dev`\n\n```\ncd build\ncmake ..\nmake\nmake install\n```\n\n## How it works:\n\n* `bitbake -g` generates a file called `task-depends.dot` containing a graph described with the [DOT language](https://en.wikipedia.org/wiki/DOT_(graph_description_language)).\n* This graph contains an edge for each dependency between [tasks](https://docs.yoctoproject.org/ref-manual/tasks.html) of the [recipes](https://docs.yoctoproject.org/dev-manual/common-tasks.html#writing-a-new-recipe) contained in a build.\n* `bb-depends-dot` [parses](https://github.com/thomastrapp/bb-depends-dot/blob/master/ragel/dot-machine.rl) the `taks-depends.dot` file to build a [graph](https://github.com/thomastrapp/bb-depends-dot/blob/master/bbrd/bbrd/DependencyGraph.h) of the [dependencies](https://github.com/thomastrapp/bb-depends-dot/blob/master/bbrd/bbrd/Dependencies.h) between recipes.\n* Transitive dependencies are resolved by using a breadth first search while recording the vertices (i.e. recipes).\n* Direct dependencies are resolved by simply recording the adjacent vertices of the directed graph.\n* The option `--rdepends` transforms the graph with [boost::reverse\\_graph](https://www.boost.org/doc/libs/1_77_0/libs/graph/doc/reverse_graph.html).\n* Note that `bb-depends-dot` cannot parse arbitrary DOT. Only the output file of `bitbake -g` is supported.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomastrapp%2Fbb-depends-dot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomastrapp%2Fbb-depends-dot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomastrapp%2Fbb-depends-dot/lists"}