openssl: bump to 1.1.1j
[librecmc/librecmc.git] / docs / ccs.md
1 # CCS (Complete Corresponding Source) Requirements
2
3 As a Free Software project, libreCMC works to go above and beyond its license
4 obligations to be a good neighbor and to promote the ideals of Free
5 Software. The project was founded on the idea that everyone should have the
6 *freedom* to control the hardware they own, which means being able to fully
7 control what it does and what runs on it. To ensure that everyone who uses
8 libreCMC continues to have this freedom, a mechanism was added to the build
9 system [1] to generate a CCS disk which OEMs and others would be able to
10 distribute with devices shipping libreCMC. This was done to ease compliance and
11 to push the idea that sources should be provided with a device at the time of
12 sale. Shipping a CCS disk ensures that second hand sales of the device can be
13 compliant if the disk is handed off with the device.
14
15
16 ## `make ccsdisk`
17
18 A new target was created to build a CCS disk based upon the option of using an
19 external repository or to use a local checkout. As it stands, this includes
20 everything except for u-boot sources for a given target. In the near future, the
21 libreCMC project will start including versions of u-boot for all officially
22 supported targets and, going forward, make this a requirement for official
23 hardware in libreCMC.
24
25
26 ## How to use
27
28 There are two ways to use CCS disk : enable "Build the libreCMC CCS Disk" during
29 image configuration or run `make ccsdisk` after all desired firmware images have
30 been built. Since u-boot for a given target most likely is missing, it's
31 important that the sources for u-boot be packaged and included on the disk. To
32 do this, make sure they are included in `target/ccsdisk/files` with proper
33 documentation. To make things a little bit easier, enabling the toolchain option
34 during image configuration and using the toolchain to build u-boot will make
35 things go much easier if it can be done.
36
37
38
39 [1] libreCMC is a fork of OpenWrt, which both use a fork of
40 [Buildroot](https://buildroot.org). Buildroot is a build system which helps to
41 make it easier to create firmware images for "embedded" devices.
42