1DOLLY 72PACKAGE xorg-server3REQUIRES HOST runtime@04REQUIRES HOST display@05REQUIRES HOST input@06REQUIRES HOST audio@07REQUIRES HOST touch@08REQUIRES HOST sockets@0910# Xsdl, the X server on Dolly's display: X.Org's kdrive in an SDL window11# (xsdl/), drawn by the sdl2 package into Dolly's display, from X.Org's release12# archive, built by upstream's Meson; with the xkbcomp it runs for its keymap13# and the keyboard descriptions xkbcomp reads. libXfont2 (its built-in and14# bitmap fonts) and libmd's SHA-1 are built by the Makefile below for the15# server alone: libXfont2 with the server's own protocol types, and of libmd16# only the hash the server takes.17FROM /v0.1.5/demos/x11/Dollyfile-x11-build e3804344273d10c938bece7701e0c822dc2c4e3a425b71538b4dfcc460d5705818USE /v0.1.5/demos/tools/Dollyfile-meson 890d47e5587fb00a6ae468c7658415826862536b7390fd7fd1cb26abffa3dac619USE /v0.1.5/demos/zero-ad/Dollyfile-pkgconf 093ecdba243fbc62c20fd1c9c51aef92ed4a8f256f5500944e8011c832a9525820USE /v0.1.5/demos/sdl2/Dollyfile-sdl2 cd864c7c3220d915822ca58199fe4df7c7f2e5fb21d34c77a6aa86f77ed466dc21USE /v0.1.5/demos/x11/Dollyfile-pixman b7f641fe5f27c900c072ff9c11c06e305aead38159fed51e0757d296cd5703a422USE /v0.1.5/demos/x11/Dollyfile-libxkbfile 0d7644c36794c49c84ba8c40d334b29e3749e28a469d5e23feec982930e1438b23USE /v0.1.5/Dollyfile-zlib 0b706df4c643faf419bd9089995b97d13ff7237493d9bb9727f8d3df91cbe03324USE /v0.1.5/demos/tools/Dollyfile-xz 81e23252e1f473a7ea097b4c0cd9fcd460af14ab79499417ce8bdcac5b33061e25USE /v0.1.5/demos/tools/Dollyfile-yacc f429879fa4d066222b705fe1d400cc7fd292256371159555a8a5a62b51301ac826INSTALL /v0.1.5/demos/x11/Dollyfile-xkbcomp ba3d537e64e1f7580bdae98a91e78b61174607409bfae8682ab4ef8ac26ead8427INSTALL /v0.1.5/demos/x11/Dollyfile-xkeyboard-config 11c3ff9693400c1032bfa1ce7a47ee177ae15bece7bb41a234b7d38c804b282b28REQUIRES HEADER sdl229REQUIRES LIB SDL230REQUIRES LIB z31REQUIRES TOOL byacc32REQUIRES TOOL gzip33REQUIRES TOOL meson34REQUIRES TOOL patch35REQUIRES TOOL pkg-config36REQUIRES TOOL xz3738SOURCE /v0.1.5/dist/static/x11/libmd-1.3.0.tar.xz fc0f1eb6b6766470326f2c014693809190e67dba84274a6fbae9d4912d066706 /tmp/xorg/libmd.tar.xz39SOURCE /v0.1.5/dist/static/x11/libXfont2-2.0.9.tar.gz 8564b4df365bc5a6cb0c15900dc688f6e8f47b00a8571c6708c916dfb85066ba /tmp/xorg/libXfont2.tar.gz40SOURCE /v0.1.5/dist/static/x11/xorg-server-21.1.25.tar.gz fdb5ec9b4ab7371745b182b68c7054ed72fc4d13e185fc369cfc45e0c3a174e7 /tmp/xorg/xorg-server.tar.gz41SOURCE /v0.1.5/dist/static/x11/xsdl.tar f0933a4d8392135d00fafd6fb1739494e077db5d3f3b58a28e5adb8f99ca1e6f /tmp/xorg/xsdl.tar42SLOP CWD /tmp/xorg for archive in *.tar.gz; do gzip -dc "$archive" | tar -xf -; done43SLOP CWD /tmp/xorg for archive in *.tar.xz; do xz -dc "$archive" | tar -xf -; done44SLOP tar -xf /tmp/xorg/xsdl.tar -C /45SLOP patch -p1 -d /tmp/xorg/xorg-server-21.1.25 -i /tmp/xorg/xorg-server-xsdl.patch46SLOP patch -p1 -d /tmp/xorg/xorg-server-21.1.25 -i /tmp/xorg/xorg-server-dolly.patch4748# libmd's SHA-1, the one hash the server takes from it (glyph names), and49# libXfont2 with what the server reads: its built-in "fixed" and "cursor"50# fonts and PCF and BDF files, gzipped or not. Not built: FreeType (and so51# libfontenc) and the font server client, which needs TCP.52FILE /tmp/xorg/libs.mk53    .RECIPEPREFIX := >54    .DELETE_ON_ERROR:55    MAKEFLAGS += -r56    S := /tmp/xorg57    B := /tmp/xorg/build58    all: /usr/lib/libmd.a /usr/lib/libXfont2.a /usr/lib/pkgconfig/xfont2.pc59    60    MD := $(S)/libmd-1.3.061    $(B)/md/sha1.o: $(MD)/src/sha1.c62    >mkdir -p $(@D)63    >printf '#define HAVE_EXPLICIT_BZERO 1\n' > $(B)/md/config.h64    >cc -O2 -I$(B)/md -I$(MD)/include -I$(MD)/src -c $< -o $@65    /usr/lib/libmd.a: $(B)/md/sha1.o66    >cp $(MD)/include/sha1.h /usr/include/67    >ar rcs $@ $^68    69    XFONT := $(S)/libXfont2-2.0.970    XFONT_SOURCES := $(wildcard $(addprefix $(XFONT)/src/,stubs/*.c util/*.c fontfile/*.c bitmap/*.c builtins/*.c))71    XFONT_SOURCES := $(filter-out $(addprefix %/,reallocarray.c realpath.c strlcat.c strlcpy.c bunzip2.c),$(XFONT_SOURCES))72    # configure's answers here, and the formats it builds by default. The73    # server calls it with its own 64-bit protocol types (_XSERVER64: XID,74    # Mask and Atom are CARD32), and WebAssembly checks a call's signature.75    XFONT_FLAGS := -D_XSERVER64 -D_GNU_SOURCE -DHAVE_POLL -DHAVE_POLL_H -DHAVE_READLINK -DHAVE_STRLCAT \76      -DHAVE_REALLOCARRAY -DHAVE_REALPATH -DHAVE_STRLCPY -DHAVE_ENDIAN_H -DHAVE_ERR_H -DHAVE_FLOAT_H \77      -DX_GZIP_FONT_COMPRESSION -DXFONT_BUILTINS -DXFONT_PCFFORMAT -DXFONT_BDFFORMAT \78      -DXFONT_SNFFORMAT -DXFONT_BITMAP -DXFONT_FONTFILE -DNO_LOCALE -DXTHREADS -DXUSE_MTSAFE_API79    $(B)/Xfont2/%.o: $(XFONT)/src/%.c80    >mkdir -p $(@D)81    >cc -O2 $(XFONT_FLAGS) -I$(XFONT) -I$(XFONT)/include -c $< -o $@82    /usr/lib/libXfont2.a: $(patsubst $(XFONT)/src/%.c,$(B)/Xfont2/%.o,$(XFONT_SOURCES))83    >cp $(XFONT)/include/X11/fonts/libxfont2.h /usr/include/X11/fonts/84    >ar rcs $@ $^85    /usr/lib/pkgconfig/xfont2.pc: /usr/lib/libXfont2.a86    >printf '%s\n' 'prefix=/usr' 'Name: Xfont2' 'Description: X font Library version 2' 'Version: 2.0.9' \87       'Requires: xproto fontsproto' 'Libs: -L/usr/lib -lXfont2 -lz -lm' 'Cflags: -I/usr/include' > $@88SLOP make -j4 -f /tmp/xorg/libs.mk8990# The server: Xsdl alone, without a GPU, TCP, shared memory or Xorg's91# hardware. epoll_create1 is a stub in libc, which Meson's function check92# would find: __stub_ names it so, as glibc does.93# Its sockets are sockets@0's, which it asks for when it links: set after94# setup, which would link its linker probe with them.95SLOP meson setup /tmp/xorg/build/server /tmp/xorg/xorg-server-21.1.25 --prefix=/usr --libdir=lib \96  --buildtype=release -Dc_args=-D__stub_epoll_create1 \97  -Dxsdl=true -Dxorg=false -Dxephyr=false -Dxnest=false -Dxvfb=false -Dxwin=false -Dxquartz=false \98  -Dglamor=false -Dglx=false -Ddri1=false -Ddri2=false -Ddri3=false -Ddrm=false -Dudev=false \99  -Dudev_kms=false -Dhal=false -Dsystemd_logind=false -Dxdmcp=false -Dxdm-auth-1=false \100  -Dsecure-rpc=false -Dipv6=false -Dinput_thread=false -Dmitshm=false -Dxselinux=false \101  -Dlinux_apm=false -Dlinux_acpi=false -Dpciaccess=false -Dint10=false -Dvgahw=false -Ddga=false \102  -Dxv=false -Dxvmc=false -Ddocs=false -Ddevel-docs=false -Dsha1=libmd -Dlibunwind=false \103  -Ddefault_font_path=built-ins -Dxkb_output_dir=/tmp104SLOP meson configure -Dc_link_args=-ldolly-sockets /tmp/xorg/build/server105SLOP meson compile -C /tmp/xorg/build/server && meson install --no-rebuild -C /tmp/xorg/build/server106SLOP text-page /usr/share/man/man1/Xserver.1107SLOP CWD /tmp/xorg for source in xorg-server-21.1.25 libXfont2-2.0.9 libmd-1.3.0; do mkdir -p /usr/share/licenses/${source%%-[0-9]*} && cp $source/COPYING /usr/share/licenses/${source%%-[0-9]*}/; done108109EXPORTS TOOL Xsdl110FILE /usr/share/man/cat1/Xserver.1111FILE /usr/share/man/cat1/Xsdl.1112    Xsdl: the X server in Dolly's display, kdrive's SDL server with xkbcomp for113    its keymap. One screen; clients connect at /tmp/.X11-unix/XN, not over TCP.114    115      Xsdl :0 -nolock &              starts it as display :0116      DISPLAY=:0 xclock &            a client on it117      Xsdl :0 -screen 1600x900 -nolock    the size of its screen118    119    -nolock is needed: the server makes its lock file with link(), and Dolly's120    filesystem has no hard links, so without it the server ends at once121    ("Linking lock file ... failed: Too many links"). It holds the display, the122    keyboard and the pointer until it ends; kill its process to end it.123    Xserver(1) lists the other options.124FOLDER /usr/share/licenses/xorg-server125FOLDER /usr/share/licenses/libXfont2126FOLDER /usr/share/licenses/libmd127# The two libraries it links statically.128FILE /usr/share/licenses/pixman/COPYING129FILE /usr/share/licenses/libxkbfile/COPYING130