summaryrefslogtreecommitdiff
path: root/image/backends/README.rst
blob: ca510b9238c2145bfbe661ccce5e7a20243fa22c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
======================================================
 README for Project Horizon - Image Creation Backends
======================================================
:Authors:
 * **A. Wilcox**, principal author, project manager
:Status:
 Development
:Copyright:
 © 2020 Adélie Linux.
 Code: AGPL-3.0 license.
 Documentation: CC BY-NC-SA open source license.


Introduction
============

This directory contains the various backends for creating images using
Project Horizon.


License
```````
Development documentation for Project Horizon is licensed under the
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

You should have received a copy of the license along with this
work. If not, see <http://creativecommons.org/licenses/by-nc-sa/4.0/>.

Code is licensed under the Affero GPL (AGPL) 3 license.


Changes
```````
Any changes to this repository must be reviewed before being pushed to the
master branch.



Design
======

Image creation backends shall derive from the Horizon::Image::BasicBackend
class.  Concrete backends can exist in any namespace.  To be used with the
Image Creation utility, the backend must be registered in the ``backends.hh``
file along with a unique Type Code.  This Type Code can then be passed to
the Image Creation utility with the ``-t`` parameter for use.

The Horizon::Image::BasicBackend is an abstract (pure virtual) class that
has a single method that you must implement: ``create()``.  This will be
called on a constructed object of your concrete backend class, with two
parameters: ``std::string ir_dir``, which is the base directory for the
installed system (like ``/target`` during a normal installation), and
``std::string out_path``, which is the user's desired output path and file
name.



Repository Layout
=================

Each backend has its own .cc/.hh file.  The special ``backends.hh`` file
contains the table used by the Image Creation utility for determining
supported types and backends.



Contributing
============

See the CONTIRIBUTING.rst_ file in the roort directory of the Project Horizon
repository more details on how to contribute your own backend.

.. _CONTRIBUTING.rst: https://code.foxkit.us/adelie/horizon/blob/master/CONTRIBUTING.rst



Reporting Issues
================

If you have an issue using Project Horizon, you may view our BTS_.  You may
also `submit an issue`_ directly.

For general discussion, questions, or to submit a patch, please use the
`Horizon mailing list`_.

.. _BTS: https://bts.adelielinux.org/buglist.cgi?product=Horizon&resolution=---
.. _`submit an issue`: https://bts.adelielinux.org/enter_bug.cgi?product=Horizon
.. _`Horizon mailing list`: https://lists.adelielinux.org/postorius/lists/horizon.lists.adelielinux.org/