{"id":15051206,"url":"https://github.com/crownedgrouse/debbie","last_synced_at":"2025-04-10T02:41:27.656Z","repository":{"id":21226480,"uuid":"24541650","full_name":"crownedgrouse/debbie","owner":"crownedgrouse","description":".DEB Built In Erlang","archived":false,"fork":false,"pushed_at":"2019-06-29T20:03:08.000Z","size":74,"stargazers_count":15,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T04:11:38.113Z","etag":null,"topics":["debian","erlang"],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crownedgrouse.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}},"created_at":"2014-09-27T20:08:51.000Z","updated_at":"2019-06-29T20:03:10.000Z","dependencies_parsed_at":"2022-09-06T00:20:10.356Z","dependency_job_id":null,"html_url":"https://github.com/crownedgrouse/debbie","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crownedgrouse%2Fdebbie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crownedgrouse%2Fdebbie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crownedgrouse%2Fdebbie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crownedgrouse%2Fdebbie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crownedgrouse","download_url":"https://codeload.github.com/crownedgrouse/debbie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248144929,"owners_count":21055009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["debian","erlang"],"created_at":"2024-09-24T21:31:42.009Z","updated_at":"2025-04-10T02:41:27.636Z","avatar_url":"https://github.com/crownedgrouse.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# debbie #\n\n.DEB Built In Erlang.\n\n## Overview ##\n\n``debbie`` is an Erlang module that creates DEBIAN binary or sources packages from an usual DEBIAN package directory structure on disk.\n``debbie`` use [edgar](https://github.com/crownedgrouse/edgar) for Gnu AR format, and [swab](https://github.com/crownedgrouse/swab) for fakeroot or Uid/Gid setting. \n``debbie`` is *FULL* Erlang, and no external command is done, allowing to create DEBIAN packages on any platform where Erlang can run.\nAn Erlang equivalent to ``dpkg-deb -Zgzip --build dir/ ``\n\nNo need of a DEBIAN machine or VM, but obviously, only cross-compiled or multi-platform applications must be used if your local platform is incompatible with your target platform... ``debbie`` is not magic !\n\nNo need to have root privilege, neither ``fakeroot`` command, UID/GID are modified in embedded TAR files.\nSpecific global non-root UID/GID and user/group names can also be set to data packed in data.tar.gz, otherwise default is set to 0/root.\n\nTIP : For easier integration in scripts, please see also [debut](https://github.com/crownedgrouse/debut) , which will also rename the package to valid DEBIAN package name for you ...\n\n## Example ##\n\nConsidere this below *trivial* DEBIAN binary package structure for 'myapp' application :\n\n```\ntree /path/to/my/debian/structure/\n├── DEBIAN\n│   └── control\n├── etc\n│   └── myapp.conf\n└── usr\n    └── bin\n        └── myapp\n```\n\n(note : a valid DEBIAN package should have more files, like copyright, Man pages, etc... See [Debian policy](https://www.debian.org/doc/debian-policy/)).\n\nCreating a .deb package, in a erl shell, is simple as :\n\n```\ndebbie:fy([{root_path, \"/path/to/my/debian/structure/\"}]).\n```\n\nThe file ``debian.deb`` is created in ``/path/to/my/debian/structure/`` directory.\n\n## Demo ##\n\nA Debian structure is ready in ``priv/`` directory, with a simple ``helloworld`` application.\nSimply run in your Erlang Shell :\n\n```\ndebbie:fy([{root_path, \"priv/\"}]).\n```\nThen, under root, you can test the debian package by installing it :\n\n```\n#\u003e dpkg -i priv/debian.deb\n#\u003e helloworld\nHello world !\n```\nThen, removing this dummy package :\n\n```\ndpkg -r helloworld\n\n```\n\n## Limitation ##\n\nOnly few controls are done : presence of ``control`` file and something to pack, i.e. at least another directory than DEBIAN/debian under root path.\nNo attempt is done to check if control files are valid.\nIt's up to you, or another module/application, to create a valid DEBIAN package structure.\n\n## Documentation ##\n\nA complete documentation is available.\n\nSimply run `make docs` and open `doc/index.html` in your favorite browser, this will insure you having the documentation related to your version.\n\n## Quick Start ##\n\n```\ngit clone git://github.com/crownedgrouse/debbie.git\ncd debbie\nmake\nerl -pa `pwd`/ebin -pa `pwd`/deps/edgar/ebin -pa `pwd`/deps/swab/ebin\n```\n\n## Contributing ##\n\nContributions are welcome. Please use pull-requests.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrownedgrouse%2Fdebbie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrownedgrouse%2Fdebbie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrownedgrouse%2Fdebbie/lists"}