5 // This file and its contents are supplied under the terms of the
6 // Common Development and Distribution License ("CDDL"), version 1.0.
7 // You may only use this file in accordance with the terms of version
10 // A full copy of the text of the CDDL should have accompanied this
11 // source. A copy of the CDDL is also available via the Internet at
12 // http://www.illumos.org/license/CDDL.
15 // Copyright 2021 by Jim Klimov
18 <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
19 <service_bundle type='manifest' name='ccache-update-symlinks'>
21 name='system/ccache-update-symlinks'
25 <create_default_instance enabled='true' />
30 Wait for all local filesystems to be mounted.
32 <dependency name='filesystem-local'
33 grouping='require_all'
37 value='svc:/system/filesystem/local:default'/>
40 <exec_method type='method'
42 exec='/lib/svc/method/ccache-update-symlinks.sh'
46 <exec_method type='method'
52 <exec_method type='method'
54 exec='/lib/svc/method/ccache-update-symlinks.sh'
58 <property_group name='startd' type='framework'>
59 <propval name='duration' type='astring' value='transient' />
62 <property_group name='ccache-update-symlinks' type='application'>
63 <stability value='Evolving' />
64 <!-- By default the method script only adds symlinks, to avoid
65 surprises for developers on their systems customized manually
66 (and/or before this service was introduced). After they make
67 sure all symlinks are what they intend to have and nothing
68 unexpected is queued to be deleted (as can be seen in log)
69 then can toggle this flag to "true" in their deployment.
70 Probably customizing PATH_ADD and/or TOOLS_ADD will be
71 critical for those developers for whom it really matters.
73 <propval type='boolean' name='ALLOW_DELETE' value='false' />
74 <!-- The PATH_ADD contents are added to the PATH set by SMF, which
75 includes /usr/bin (with most of the packaged compilers) already.
76 Default PATH_ADD below can help find compilers in locations
77 typical for local customizations of OpenIndiana deployments.
78 The "/opt/gcc/4.4.4/bin" refers to illumos-gcc (gcc-4.4.4-il)
79 to speed up rebuilds of illumos-gate; a symlink to it was
80 previously hardcoded in ccache package delivery.
82 <propval type='astring' name='PATH_ADD' value='/usr/local/bin:/usr/gnu/bin:/opt/gcc/4.4.4/bin' />
83 <!-- If a developer's system has further filenames for compilers
84 that ccache is compatible with, list the (version-less)
85 names here. For example, "icc" listed here would match
86 and symlink to ccache both "icc" and "icc-123" but neither
87 "icc-style" nor "icc-cpp" nor "icc++" if such names are
88 installed and in PATH (list all relevant prefixes for that
89 tool chain's C and C++ compilers, and CPP preprocessor,
90 separated by whitespaces).
92 <propval type='astring' name='TOOLS_ADD' value='' />
95 <stability value='Evolving' />
99 <loctext xml:lang='C'>ccache-update-symlinks - keep ccache symlinks in sync with installed compatible compilers</loctext>