I thought I would take the time to remind forum members about the requirements and obligations of the GPL. I'm doing this since over the last few months I have seen people posting binary images (in some cases heavily customized) without source code or build scripts and also making reference to selling routers without supplying the source code.
OpenWrt buildroot and the OpenWrt scripts are licensed under the GPL. When you distribute a binary image, OpenWrt's GPLv2 License compells you to release the "scripts used to control compilation and installation of the executable".
If you have not modified the actual source code, providing a link to the github source is fine, but you should still release your scripts used to control the compilation and installation. At minimum, this would be the config file if everything else remains standard.
The exact text of the relevant section of the license follows
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If you are including custom source code of your own, you may or may not need to release your source code. If, for example, you have shell scripts which source or use OpenWrt shell functions, then these would be classed as derivative works and you're required to release your source code.
In many cases, binary code compiled from C source would also need to be accompanied by source code, since you're linking to libraries which are GPL and therefore the work constitutes a derivative work (unless the only library you link to uses the LGPL or uses a more permissive license).
A concrete example of a case where you do not need to release your C source code would be if you link only to the musl (MIT license) or the uclibc (LGPL) or glibc (LGPL) library. If your application links to another library that is GPL, then you would need to release the source.
If your shell scripts do not include any OpenWrt shell code (/etc/rc.common, /lib/functions.sh etc.) then you don't need to release your code.
If you are releasing a binary and if in doubt, post a question and I'm sure many would be prepared to help.