mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-28 19:53:01 +02:00
79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
Package Override
|
|
================
|
|
|
|
This guide demonstrates how the `local.mk` file is utilized to override
|
|
a Buildroot package, which can be very useful when fixing bugs, adding
|
|
features, or evaluating new releases of packages. As an example we use
|
|
`tcpdump` to illustrate this process.
|
|
|
|
> [!TIP]
|
|
> For a comprehensive guide to utilizing Buildroot during development,
|
|
> including the `<pkg>_OVERRIDE_SRCDIR` mechanism, shown below, please
|
|
> see [Using Buildroot during development][1] in the official docs.
|
|
|
|
|
|
Setup
|
|
-----
|
|
|
|
Since the `output/` directory is often wiped for rebuilds, make sure you
|
|
keep the file `local.mk` in the top directory and only symlink it to your
|
|
build directory:
|
|
|
|
~$ cd infix/
|
|
~/infix(main)$ touch local.mk
|
|
~/infix/output(main)$ ln -s ../local.mk .
|
|
~/infix/output(main)$ cd ..
|
|
|
|
|
|
Override
|
|
--------
|
|
|
|
Now edit the file:
|
|
|
|
~/infix(main)$ editor local.mk
|
|
|
|
Add an override for `tcpdump`. The file is a Makefile snippet so you
|
|
can add a lot of things. Comment out lines with the UNIX comment `#`
|
|
character if needed:
|
|
|
|
```
|
|
TCPDUMP_OVERRIDE_SRCDIR = /path/to/tcpdump/repo
|
|
```
|
|
|
|
Building
|
|
--------
|
|
|
|
The execution of `make tcpdump-rebuild all` triggers a process where
|
|
Buildroot synchronizes the tcpdump source code from the specified
|
|
override directory to `output/build/tcpdump-custom`, followed by the
|
|
rebuilding of the entire project.
|
|
|
|
```
|
|
~/infix$(main)$ make tcpdump-rebuild all
|
|
```
|
|
|
|
Buildroot follows a process of downloading and processing tarballs:
|
|
extraction, configuration, compilation, and installation. The source
|
|
for each package is extracted to a temporary build directory:
|
|
|
|
output/build/<package>-<version> # e.g., tcpdump-4.99.4
|
|
|
|
Let's have a look at what we got:
|
|
|
|
```
|
|
~/infix$(main)$ ll /output/build/ | grep tcpdump
|
|
drwxr-xr-x 7 group user 20480 Nov 10 18:26 tcpdump-4.99.4/
|
|
drwxr-xr-x 7 group user 12288 Nov 10 18:28 tcpdump-custom/
|
|
```
|
|
|
|
As long as your local override is in place, Buildroot will use your
|
|
custom version.
|
|
|
|
> [!NOTE]
|
|
> Remember, the build directory is ephemeral, so be careful to change
|
|
> any of the files therein. It can be useful though during debugging,
|
|
> but just make sure to learn the difference between the various
|
|
> Buildroot commands to build, clean, reconfigure, etc.
|
|
|
|
[1]: https://buildroot.org/downloads/manual/manual.html#_using_buildroot_during_development
|