Marcel Telka
2024-04-05 cf51021cfb143a919a6c673ecd9fcc8b9172b7d7
commit | author | age
467c5d 1 # Current tasks
AP 2
3 oi-userland is subject to constant improvement.
4
cd4d69 5 Whenever you modify or update a component, please review the list of tasks, below, and apply any of the improvements that are relevant to the component you have modified.  Theses are organized with the easiest changes at the beginning of the list and the more complicated changes near the end:
467c5d 6
cd4d69 7 1.  Use `$(WS_MAKE_RULES)` when including `prep.mk`, `configure.mk`, `ips.mk`, etc., instead of `../make-rules` or `$(WS_TOP)/make-rules`.
467c5d 8
cd4d69 9     Example: Change occurrences of
TM 10     ```Makefile
11     include ../../make-rules/prep.mk
12     include ../../make-rules/configure.mk
13     include ../../make-rules/ips.mk
14     ```
15     or
16     ```Makefile
17     include $(WS_TOP)/make-rules/prep.mk
18     include $(WS_TOP)/make-rules/configure.mk
19     include $(WS_TOP)/make-rules/ips.mk
20     ```
21     to:
22     ```Makefile
23     include $(WS_MAKE_RULES)/prep.mk
24     include $(WS_MAKE_RULES)/configure.mk
25     include $(WS_MAKE_RULES)/ips.mk
26     ```
467c5d 27
cd4d69 28     **Note:** This does not apply to the initial `include` for `shared-macros.mk`.  That file sets up many of the macros that can be used later, including `$(WS_MAKE_RULES)`, so it cannot be referenced via `$(WS_MAKE_RULES)`.
TM 29     
30 2.  Remove `COMPONENT_BUGDB`, if present.
467c5d 31
cd4d69 32     If the component's `Makefile` includes a line for `COMPONENT_BUGDB`, remove it.  That setting was used by Sun/Oracle and is not relevant to OpenIndiana.
467c5d 33
cd4d69 34 3.  Use `PATH=$(PATH.gnu)` instead of `PATH=/usr/gnu/bin:/usr/bin` in `Makefile`.
TM 35
36     If the component's `Makefile` overrides `PATH` to have `/usr/gnu/bin` at the beginning, the PATH should be set  via the `$(PATH.gnu)` macro.
37     
38     Example: Change occurrences of
39     ```Makefile
40     PATH=/usr/gnu/bin:/usr/bin
41     ```
42     to:
43     ```Makefile
44     PATH=$(PATH.gnu)
45     ```
46
47 4.  If there are missing build dependencies, add them in a separate list before the auto-generated runtime dependencies in the `Makefile`.
48
49     You should always run `gmake env-prep` before attempting to build each component, to install all listed dependencies.  If the component fails to build because of e.g a missing header file, it may mean that there are additional build dependencies for the component. You can use `pkg search -r` to identify which component provides the missing file(s).
50     
51     For software that uses `configure`, you could also check `configure.ac` for software that might be a build dependency.
52     
53     Once you've identified the missing build dependency, it should be added to the `Makefile`, just before the auto-generated runtime dependencies.
54     
55     Example: The pkgconfig files `pygtk-2.0.pc` and `pygobject-2.0.pc` are needed to build `image/gimp` but are not needed at runtime, so `gmake REQUIRED_PACKGES` does not detect the dependency.  The components containing them should be added to the Makefile, just before the auto-generated dependencies:
56     ```Makefile
57     # Build dependencies
58     REQUIRED_PACKAGES += library/python/pygobject
59     REQUIRED_PACKAGES += library/python/pygtk2
60
61     # Auto-generated dependencies
62     ```
63
64 5.  For component depending on JPEG libraries switch dependency to libjpeg8-turbo.
65
66 6.  Doxygen update:
467c5d 67
AP 68     After updating to 1.8.13 the HTML documentation is generated differently.
69
cd4d69 70 7.  Move binaries to 64-bit only:
467c5d 71
cd4d69 72     Libraries should still be delivered as 32- and 64-bit, but binaries are converted to 64-bit only.
467c5d 73
AP 74     For autotools-based components set:
cd4d69 75     ```
467c5d 76     PREFERRED_BITS=64
cd4d69 77     ```
467c5d 78
AP 79 Feel free to ask for help on the IRC or developer mailing-list.