Git Submodules¶
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
General help¶
Usage in freepto¶
In freepto, some packages are used as submodules. They all reside inside pkgs
.
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
deb
file; it is assumed to be theequivs-build
object
Practical advice¶
Get submodules¶
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??)