This page will try to give pointers to good documentation to git submodules, to explain how are they used in freepto and give you practical advice about this
- 1 Git Submodules
Usage in freepto¶
In freepto, some packages are used as submodules. They all reside inside
A part of
auto/build is devoted to building every directory it finds inside of
pkgs. For each directory, you have 3 options (they will surely increase in the future):
- be a normal debian package (so that debuild will be used)
- providing an executable make_deb script, that will generate a .deb file
- providing a
debfile; it is assumed to be the
When you clone
freepto-lb, it will NOT fetch the content of the submodules. This means that
ls pkgs/*/ will show no file.
They can be fetched running
git submodule init git submodule update
Add a submodule¶
If you can, please create your repository in avana-bbs and add it as submodule.
Otherwise, we need to change it at some point, which is boring.
(If you are not a core developer, and thus you don’t have access to avana-bbs, then don’t worry, and create it where you prefer)
git submodule add https://github.com/avana-bbs/whateva pkgs/whateva git commit -m "add whateva"
Upgrade a submodule to a more recent version¶
Suppose you have a
whateva submodule which is outdated, and you want to fetch the latest upstream version
cd pkgs/whateva git pull origin master cd ../../ git add pkgs/whateva git commit -m "upgrade whateva to latest upstream version"
Please note: it is VERY important that you do NOT do
git add pkgs/whateva/ (with the trailing slash). You always need to do it without the trailing slash. See also nice tutorial
Removing a submodule¶
TODO (should you really??)