diff --git a/CMakeLists.txt b/CMakeLists.txt
index b856958..72b5663 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@ list(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR})
include(CheckCSourceCompiles)
include(LwsCheckRequirements)
-if (CMAKE_HOST_SYSTEM_NAME MATCHES "NetBSD")
+if (CMAKE_HOST_SYSTEM_NAME MATCHES "NetBSD" OR CMAKE_HOST_SYSTEM_NAME MATCHES "SunOS")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
else()
set(CMAKE_SKIP_RPATH 1)
@@ -148,7 +148,7 @@ if (requirements)
if (SAI_BUILDER)
add_subdirectory(src/builder)
add_subdirectory(src/resource)
- if (NOT MSVC AND NOT WIN32)
+ if (NOT MSVC AND NOT WIN32 AND NOT (${CMAKE_SYSTEM_NAME} MATCHES "SunOS"))
add_subdirectory(src/device)
add_subdirectory(src/expect)
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
diff --git a/READMEs/README-systemd-nspawn.md b/READMEs/README-systemd-nspawn.md
index 45f4e56..86cedbb 100644
--- a/READMEs/README-systemd-nspawn.md
+++ b/READMEs/README-systemd-nspawn.md
@@ -336,7 +336,8 @@ Container # cd libwebsockets && mkdir build && cd build && \
cmake .. -DLWS_WITH_JOSE=1 -DLWS_UNIX_SOCK=1 -DLWS_WITH_STRUCT_JSON=1 \
-DLWS_WITH_STRUCT_SQLITE3=1 -DLWS_WITH_GENCRYPTO=1 -DLWS_WITH_SPAWN=1 \
-DLWS_WITH_SECURE_STREAMS=1 -DLWS_WITH_THREADPOOL=1 \
- -DLWS_WITH_PLUGINS_BUILTIN=1 -DLWS_WITHOUT_DAEMONIZE=0
+ -DLWS_WITH_PLUGINS_BUILTIN=1 -DLWS_WITHOUT_DAEMONIZE=0 \
+ -DLWS_WITH_SYS_METRICS=1
Container # make -j && make -j install && ldconfig
```
@@ -354,6 +355,18 @@ cmake .. -DLWS_OPENSSL_INCLUDE_DIRS=/opt/homebrew/Cellar/openssl@1.1/1.1.1h/incl
-DLWS_WITH_PLUGINS_BUILTIN=1
```
+### Solaris loader paths
+
+Solaris goes its own way to define well-known loader paths, the magic to cover
+default builds of lws and libgit2 is
+
+```
+# crle -c /var/ld/ld.config -l /lib:/usr/lib:/usr/local/lib:/opt/csw/lib
+```
+
+You also need to build libgit2 similar to as shown below, since it's not
+packaged.
+
### Windows: build libgit2
For Windows, after following the way to build lws in
@@ -461,6 +474,21 @@ That's it, he should be running in the background. To stop him
% sudo launchctl stop com.warmcat.sai-builder
```
+### Solaris service
+
+Solaris uses its own service manager called SMF. Build sai and then do the
+following to create and enable the service, which will also start it at
+subsequent boots.
+
+```
+# mkdir -p /usr/local/svc/method
+# cp scripts/usr-local-svc-method-sai_builder-Solaris /usr/local/svc/method/sai_builder
+# cp scripts/var-svc-manifest-site-sai_builder.xml-Solaris /var/svc/manifest/site/sai_builder.xml
+# svccfg import /var/svc/manifest/site/sai_builder.xml
+# svcadm restart svc:/system/manifest-import
+# svcadm enable sai_builder
+```
+
### Make the container start at boot
Let's leave the container and go back to the host
diff --git a/assets/linux-ubuntu-xenial-amd64.svg b/assets/linux-ubuntu-xenial-amd64.svg
deleted file mode 100644
index f4387a7..0000000
--- a/assets/linux-ubuntu-xenial-amd64.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3.886 3.886" height="14.687" width="14.687"><defs><style>@font-face{font-family:"PT Sans Narrow";src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff"); font-weight:normal;font-style:normal;}</style></defs><circle cx="1.943" cy="1.943" r="1.943" fill="#f9f9f9" fill-opacity=".522"/><g transform="matrix(1.48833 0 0 1.48833 901.016 169.1453)"><circle r="1.126" cy="-112.35" cx="-604.071" fill="#fff" paint-order="markers fill stroke"/><path d="M-604.277-111.167c-.26-.05-.475-.16-.662-.354a1.14 1.14 0 0 1-.283-.478 1.2 1.2 0 0 1 .794-1.496c.418-.127.868-.02 1.18.282.2.193.31.405.355.678.09.54-.21 1.075-.723 1.293a1.35 1.35 0 0 1-.661.08zm.715-.347c.08-.07.08-.174 0-.247-.05-.05-.14-.06-.2-.02-.08.05-.103.15-.05.227.03.05.08.08.147.08.05 0 .06 0 .1-.04zm-.37-.145c.03-.01.05-.02.07-.08.04-.09.1-.12.206-.117.08 0 .08 0 .118-.05.08-.1.16-.29.16-.386v-.03h-.24v.04c-.01.06-.05.142-.09.2a.48.48 0 0 1-.5.159c-.04-.01-.07-.01-.07-.01l-.06.103-.05.09.03.02c.09.05.33.08.434.05zm-.467-.207l.06-.1-.06-.06c-.03-.03-.08-.09-.1-.135-.03-.06-.03-.09-.03-.188s0-.125.03-.185c.02-.04.06-.1.09-.136l.06-.07-.06-.1c-.03-.05-.06-.1-.07-.1s-.1.07-.144.123c-.05.06-.117.17-.135.234-.01.05-.01.06.01.08.08.08.07.212 0 .302-.02.03-.01.07.05.185.04.07.19.237.22.237.01 0 .04-.04.07-.1zm-.424-.334c.09-.04.12-.174.05-.252s-.18-.09-.253 0c-.03.03-.04.05-.04.1 0 .13.12.21.237.154zm1.448-.214c0-.1-.06-.26-.148-.37l-.05-.06h-.09c-.08 0-.09 0-.137-.04-.03-.02-.06-.05-.07-.09-.03-.07-.04-.07-.218-.07-.108 0-.15 0-.215.03-.04.02-.09.03-.09.04a1.45 1.45 0 0 0 .109.207l.08-.02a.46.46 0 0 1 .439.114.54.54 0 0 1 .135.246v.05h.12c.117 0 .12 0 .12-.03zm-.18-.526c.106-.1.05-.267-.1-.28-.133-.01-.22.113-.164.234.02.05.04.06.1.08s.12 0 .164-.04z" fill="#ff7f2a"/></g><text xml:space="preserve" x="-618.107" y="-109.781" font-size="1.839" font-family="PT Sans Narrow" letter-spacing="0" word-spacing="0" writing-mode="lr-tb" direction="ltr" dominant-baseline="auto" baseline-shift="baseline"><tspan x="1.362" y="2.509" font-weight="600" font-family="A-OTF Shin Go Pro">x</tspan></text></svg>
\ No newline at end of file
diff --git a/assets/linux-ubuntu-xenial.svg b/assets/linux-ubuntu-xenial.svg
new file mode 100644
index 0000000..f4387a7
--- /dev/null
+++ b/assets/linux-ubuntu-xenial.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3.886 3.886" height="14.687" width="14.687"><defs><style>@font-face{font-family:"PT Sans Narrow";src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff"); font-weight:normal;font-style:normal;}</style></defs><circle cx="1.943" cy="1.943" r="1.943" fill="#f9f9f9" fill-opacity=".522"/><g transform="matrix(1.48833 0 0 1.48833 901.016 169.1453)"><circle r="1.126" cy="-112.35" cx="-604.071" fill="#fff" paint-order="markers fill stroke"/><path d="M-604.277-111.167c-.26-.05-.475-.16-.662-.354a1.14 1.14 0 0 1-.283-.478 1.2 1.2 0 0 1 .794-1.496c.418-.127.868-.02 1.18.282.2.193.31.405.355.678.09.54-.21 1.075-.723 1.293a1.35 1.35 0 0 1-.661.08zm.715-.347c.08-.07.08-.174 0-.247-.05-.05-.14-.06-.2-.02-.08.05-.103.15-.05.227.03.05.08.08.147.08.05 0 .06 0 .1-.04zm-.37-.145c.03-.01.05-.02.07-.08.04-.09.1-.12.206-.117.08 0 .08 0 .118-.05.08-.1.16-.29.16-.386v-.03h-.24v.04c-.01.06-.05.142-.09.2a.48.48 0 0 1-.5.159c-.04-.01-.07-.01-.07-.01l-.06.103-.05.09.03.02c.09.05.33.08.434.05zm-.467-.207l.06-.1-.06-.06c-.03-.03-.08-.09-.1-.135-.03-.06-.03-.09-.03-.188s0-.125.03-.185c.02-.04.06-.1.09-.136l.06-.07-.06-.1c-.03-.05-.06-.1-.07-.1s-.1.07-.144.123c-.05.06-.117.17-.135.234-.01.05-.01.06.01.08.08.08.07.212 0 .302-.02.03-.01.07.05.185.04.07.19.237.22.237.01 0 .04-.04.07-.1zm-.424-.334c.09-.04.12-.174.05-.252s-.18-.09-.253 0c-.03.03-.04.05-.04.1 0 .13.12.21.237.154zm1.448-.214c0-.1-.06-.26-.148-.37l-.05-.06h-.09c-.08 0-.09 0-.137-.04-.03-.02-.06-.05-.07-.09-.03-.07-.04-.07-.218-.07-.108 0-.15 0-.215.03-.04.02-.09.03-.09.04a1.45 1.45 0 0 0 .109.207l.08-.02a.46.46 0 0 1 .439.114.54.54 0 0 1 .135.246v.05h.12c.117 0 .12 0 .12-.03zm-.18-.526c.106-.1.05-.267-.1-.28-.133-.01-.22.113-.164.234.02.05.04.06.1.08s.12 0 .164-.04z" fill="#ff7f2a"/></g><text xml:space="preserve" x="-618.107" y="-109.781" font-size="1.839" font-family="PT Sans Narrow" letter-spacing="0" word-spacing="0" writing-mode="lr-tb" direction="ltr" dominant-baseline="auto" baseline-shift="baseline"><tspan x="1.362" y="2.509" font-weight="600" font-family="A-OTF Shin Go Pro">x</tspan></text></svg>
\ No newline at end of file
diff --git a/assets/solaris-11.svg b/assets/solaris-11.svg
new file mode 100644
index 0000000..1c13b5e
--- /dev/null
+++ b/assets/solaris-11.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="3.8163mm"
+ height="3.8163mm"
+ viewBox="0 0 3.8163 3.8163"
+ version="1.1"
+ id="svg8387"
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
+ sodipodi:docname="solaris-11.svg">
+<defs
+ id="defs8381" />
+<sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="-67.0734"
+ inkscape:cy="-38.5027"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ inkscape:document-rotation="0"
+ showgrid="false"
+ inkscape:window-width="3840"
+ inkscape:window-height="2109"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1" />
+<metadata
+ id="metadata8384">
+<rdf:RDF>
+<cc:Work
+ rdf:about="">
+<dc:format>image/svg+xml</dc:format>
+<dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+<dc:title></dc:title>
+</cc:Work>
+</rdf:RDF>
+</metadata>
+<g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-123.58,-158.354)">
+<g
+ id="g8366"
+ style="display:inline"
+ transform="translate(664.639,291.995)">
+<circle
+ inkscape:export-ydpi="209.15"
+ inkscape:export-xdpi="209.15"
+ inkscape:export-filename="/projects/sai/assets/windows-10.png"
+ r="1.90815"
+ cy="-131.733"
+ cx="-539.151"
+ id="path2695-6-36-3-8-7-3-6-6-2-0-9-5-9-8-1-9-3675-6"
+ style="display:inline;opacity:0.420955;fill:#ffffff;stroke:none;stroke-width:0.068301;stroke-linecap:round" />
+<path
+ style="fill:#e8892f;stroke-width:0.01594"
+ d="m -540.187,-131.925 c -0.06,-0.01 -0.101,-0.05 -0.163,-0.142 -0.08,-0.113 -0.157,-0.157 -0.24,-0.134 -0.09,0.03 -0.08,0 0.01,-0.04 0.112,-0.05 0.162,-0.05 0.312,0 0.1,0.04 0.142,0.05 0.206,0.04 h 0.08 l -0.04,0.09 c -0.02,0.05 -0.05,0.112 -0.06,0.141 -0.02,0.05 -0.04,0.06 -0.104,0.04 z m 2.064,-0.02 c 0,-0.01 -0.03,-0.07 -0.06,-0.137 -0.05,-0.112 -0.06,-0.12 -0.03,-0.149 0.04,-0.05 0.117,-0.06 0.276,-0.06 0.147,0 0.148,0 0.19,-0.05 0.02,-0.03 0.05,-0.06 0.06,-0.08 0.03,-0.05 0,0.05 -0.04,0.148 -0.03,0.07 -0.05,0.09 -0.141,0.131 -0.111,0.05 -0.209,0.13 -0.224,0.178 -0.01,0.03 -0.04,0.04 -0.04,0.01 z m -1.86,-0.348 c -0.05,-0.03 -0.09,-0.104 -0.118,-0.222 -0.02,-0.104 -0.08,-0.171 -0.164,-0.197 l -0.07,-0.02 h 0.09 c 0.12,0 0.194,0.02 0.259,0.09 0.09,0.09 0.119,0.118 0.2,0.145 l 0.08,0.03 -0.112,0.107 -0.113,0.107 z m 1.584,-0.08 c -0.08,-0.08 -0.107,-0.115 -0.1,-0.139 0.02,-0.05 0.101,-0.11 0.213,-0.143 0.128,-0.04 0.191,-0.09 0.206,-0.186 0,-0.06 0.01,-0.06 0.02,-0.02 0.03,0.115 0,0.225 -0.08,0.311 -0.07,0.08 -0.122,0.153 -0.14,0.222 l -0.02,0.06 z m -0.227,-0.167 c -0.03,-0.02 -0.09,-0.04 -0.143,-0.06 -0.1,-0.03 -0.1,-0.04 -0.09,-0.09 0,-0.07 0.05,-0.133 0.146,-0.206 0.09,-0.07 0.121,-0.128 0.109,-0.217 -0.01,-0.08 0.01,-0.07 0.05,0.02 0.04,0.09 0.04,0.161 0,0.287 -0.04,0.112 -0.05,0.189 -0.03,0.255 0,0.02 0.01,0.04 0.01,0.04 0,0 -0.03,-0.01 -0.05,-0.03 z m -1.055,-0.03 c -0.02,-0.04 -0.03,-0.07 -0.02,-0.226 v -0.182 l -0.07,-0.06 c -0.06,-0.06 -0.06,-0.06 -0.02,-0.05 0.121,0.03 0.17,0.07 0.245,0.221 0.05,0.103 0.09,0.154 0.131,0.183 0.03,0.02 0.06,0.05 0.06,0.05 0,0 -0.02,0.01 -0.05,0.02 -0.03,0 -0.09,0.03 -0.138,0.05 -0.106,0.05 -0.106,0.05 -0.14,0 z m 0.404,-0.109 c -0.02,-0.06 0,-0.143 0.05,-0.269 0.07,-0.147 0.07,-0.194 0.01,-0.272 -0.04,-0.05 -0.02,-0.05 0.05,0 0.09,0.07 0.1,0.1 0.112,0.275 0.01,0.13 0.02,0.168 0.05,0.219 l 0.04,0.06 h -0.158 c -0.129,0 -0.16,0 -0.168,-0.03 z"
+ id="path8299"
+ sodipodi:nodetypes="sssssscsssssssssssssssscssscccsssssssscssssssssssssscssssssssssssssscss" />
+</g>
+</g>
+</svg>
diff --git a/scripts/usr-local-svc-method-sai_builder-Solaris b/scripts/usr-local-svc-method-sai_builder-Solaris
new file mode 100644
index 0000000..a7f518e
--- /dev/null
+++ b/scripts/usr-local-svc-method-sai_builder-Solaris
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+case "$1" in
+'start')
+ mkdir -p /var/run/com.warmcat.com.saib.resproxy /var/run/com.warmcat.com.saib.logproxy
+ chown 883 /var/run/com.warmcat.com.saib.resproxy /var/run/com.warmcat.com.saib.logproxy
+ /usr/local/bin/sai-builder 2>> /var/log/sai &
+ ;;
+
+'stop')
+ /usr/bin/pkill -x -u 883 sai-builder
+ ;;
+
+*)
+ echo "Usage: $0 { start | stop }"
+ ;;
+esac
+exit 0
+
diff --git a/scripts/var-svc-manifest-site-sai_builder.xml-Solaris b/scripts/var-svc-manifest-site-sai_builder.xml-Solaris
new file mode 100644
index 0000000..a79e538
--- /dev/null
+++ b/scripts/var-svc-manifest-site-sai_builder.xml-Solaris
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+
+<service_bundle type='manifest' name='sai_builder'>
+<!--
+ pragma ident "@(#)sai_builder.xml 1.2 03/08/21 SMI"
+-->
+<service
+ name='site/sai_builder'
+ type='service'
+ version='1'>
+
+ <single_instance/>
+ <dependency
+ name='usr'
+ type='service'
+ grouping='require_all'
+ restart_on='none'>
+ <service_fmri value='svc:/system/filesystem/local'/>
+ </dependency>
+ <!--
+ <dependency
+ name='network'
+ grouping='require_all'
+ type='service'
+ restart_on='none'>
+ <service_fmri value='svc:/milestone/network/default'/>
+ </dependency>
+ -->
+ <exec_method
+ type='method'
+ name='start'
+ exec='/usr/local/svc/method/sai_builder start'
+ timeout_seconds='30' />
+
+ <exec_method
+ type='method'
+ name='stop'
+ exec='/usr/local/svc/method/sai_builder stop'
+ timeout_seconds='30' />
+
+ <property_group name='startd' type='framework'>
+ <propval name='duration' type='astring' value='transient' />
+ </property_group>
+
+ <instance name='default' enabled='true' />
+
+ <stability value='Unstable' />
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Sai Builder
+ </loctext>
+ </common_name>
+ </template>
+</service>
+
+</service_bundle>
+
diff --git a/src/builder/b-sai.c b/src/builder/b-sai.c
index 9b8a66b..35d51c3 100644
--- a/src/builder/b-sai.c
+++ b/src/builder/b-sai.c
@@ -479,10 +479,12 @@ int main(int argc, const char **argv)
return 1;
}
-#if defined(__APPLE__)
+#if !defined(__linux__) && !defined(WIN32)
/* we are still root */
mkdir(UDS_PATHNAME_LOGPROXY, 0700);
chown(UDS_PATHNAME_LOGPROXY, sb.st_uid, sb.st_gid);
+ mkdir(UDS_PATHNAME_RESPROXY, 0700);
+ chown(UDS_PATHNAME_RESPROXY, sb.st_uid, sb.st_gid);
#endif
/* if we don't do this, libgit2 looks in /root/.gitconfig */
diff --git a/src/web/CMakeLists.txt b/src/web/CMakeLists.txt
index 5e0c4a1..91a9db3 100644
--- a/src/web/CMakeLists.txt
+++ b/src/web/CMakeLists.txt
@@ -114,7 +114,7 @@ if (requirements)
../../assets/linux-gentoo.svg
../../assets/linux-ubuntu-1804.svg
../../assets/linux-ubuntu-2004.svg
- ../../assets/linux-ubuntu-xenial-amd64.svg
+ ../../assets/linux-ubuntu-xenial.svg
../../assets/netbsd-iOS.svg
../../assets/netbsd-OSX-catalina.svg
../../assets/sai-event.svg