Browse Source

proof-of-concept weston/wayland packaging

Waldemar Brodkorb 3 years ago
parent
commit
9879794a9b

+ 1 - 1
package/libXrandr/Makefile

@@ -9,7 +9,7 @@ PKG_RELEASE:=		1
 PKG_HASH:=		2baa7fb3eca78fe7e11a09b373ba898b717f7eeba4a4bfd68187e04b4789b0d3
 PKG_DESCR:=		xrandr library
 PKG_SECTION:=		x11/libs
-PKG_BUILDDEP:=		randrproto libXrender
+PKG_BUILDDEP:=		randrproto libXrender libXext
 PKG_SITES:=		http://www.x.org/releases/individual/lib/
 PKG_LIBNAME:=		libxrandr
 PKG_OPTS:=		dev

+ 4 - 5
package/libepoxy/Makefile

@@ -4,23 +4,22 @@
 include $(ADK_TOPDIR)/rules.mk
 
 PKG_NAME:=		libepoxy
-PKG_VERSION:=		1.2
+PKG_VERSION:=		1.3.1
 PKG_RELEASE:=		1
-PKG_HASH:=		42c328440f60a5795835c5ec4bdfc1329e75bba16b6e22b3a87ed17e9679e8f6
+PKG_HASH:=		1d8668b0a259c709899e1c4bab62d756d9002d546ce4f59c9665e2fc5f001a64
 PKG_DESCR:=		opengl function pointer management
 PKG_SECTION:=		libs/misc
+PKG_DEPENDS:=		mesa
 PKG_BUILDDEP:=		util-macros-host mesa
 PKG_SITES:=		http://crux.nu/files/
 PKG_OPTS:=		dev
 
-DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.bz2
 
 include $(ADK_TOPDIR)/mk/package.mk
 
 $(eval $(call PKG_template,LIBEPOXY,libepoxy,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
 
-AUTOTOOL_STYLE:=	autogen
-
 libepoxy-install:
 	$(INSTALL_DIR) $(IDIR_LIBEPOXY)/usr/lib
 	$(CP) $(WRKINST)/usr/lib/libepoxy*.so* \

+ 25 - 0
package/libevdev/Makefile

@@ -0,0 +1,25 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		libevdev
+PKG_VERSION:=		1.12.0
+PKG_RELEASE:=		1
+PKG_HASH:=		2f729e3480695791f9482e8388bd723402b89f0eaf118057bbdea3cecee9b237
+PKG_DESCR:=		wrapper library for evdev devices
+PKG_SECTION:=		libs/misc
+PKG_URL:=		add project url
+PKG_SITES:=		https://www.freedesktop.org/software/libevdev/
+PKG_OPTS:=		dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBEVDEV,libevdev,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libevdev-install:
+	$(INSTALL_DIR) $(IDIR_LIBEVDEV)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libevdev*.so* \
+		$(IDIR_LIBEVDEV)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 39 - 0
package/libinput/Makefile

@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		libinput
+PKG_VERSION:=		1.19.2
+PKG_RELEASE:=		1
+PKG_HASH:=		0fc39f0af3ee1a77c60c34bc45391a4d0879169f7c0f7bbbeb5eef590b98b883
+PKG_DESCR:=		input library
+PKG_DEPENDS:=		mtdev libevdev
+PKG_BUILDDEP:=		mtdev libevdev
+PKG_SECTION:=		libs/misc
+PKG_SITES:=		https://www.freedesktop.org/software/libinput/
+PKG_OPTS:=		dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBINPUT,libinput,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+MESON_FLAGS+=		-Dlibwacom=false \
+			-Dtests=false \
+			-Ddebug-gui=false
+
+WRKBUILD=               $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:=		meson
+BUILD_STYLE:=		meson
+INSTALL_STYLE:=		meson
+
+libinput-install:
+	$(INSTALL_DIR) $(IDIR_LIBINPUT)/usr/share/libinput
+	$(CP) $(WRKINST)/usr/share/libinput/* \
+		$(IDIR_LIBINPUT)/usr/share/libinput/
+	$(INSTALL_DIR) $(IDIR_LIBINPUT)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libinput*.so* \
+		$(IDIR_LIBINPUT)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 33 - 0
package/libxkbcommon/Makefile

@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		libxkbcommon
+PKG_VERSION:=		1.3.1
+PKG_RELEASE:=		1
+PKG_HASH:=		b3c710d27a2630054e1e1399c85b7f330ef03359b460f0c1b3b587fd01fe9234
+PKG_DESCR:=		library for handling of keyboard descriptions
+PKG_SECTION:=		libs/misc
+PKG_URL:=		add project url
+PKG_SITES:=		https://xkbcommon.org/download/
+PKG_OPTS:=		dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBXKBCOMMON,libxkbcommon,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+MESON_FLAGS+=		-Denable-docs=false
+
+WRKBUILD=               $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:=		meson
+BUILD_STYLE:=		meson
+INSTALL_STYLE:=		meson
+
+libxkbcommon-install:
+	$(INSTALL_DIR) $(IDIR_LIBXKBCOMMON)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libxkbcommon*.so* \
+		$(IDIR_LIBXKBCOMMON)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 3 - 1
package/mesa/Makefile

@@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk
 
 PKG_NAME:=		mesa
 PKG_VERSION:=		18.3.6
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_HASH:=		aaf17638dcf5a90b93b6389e152fdc9ef147768b09598f24d2c5cf482fcfc705
 PKG_DESCR:=		3d graphics library
 PKG_SECTION:=		libs/video
@@ -48,6 +48,8 @@ mesa-install:
 		$(IDIR_MESA)/usr/lib
 	$(CP) $(WRKINST)/usr/lib/libglapi.so* \
 		$(IDIR_MESA)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libgbm.so* \
+		$(IDIR_MESA)/usr/lib
 	${CP} $(WRKINST)/usr/lib/dri/*.so \
 		${IDIR_MESA}/usr/lib/dri/
 

+ 26 - 0
package/mtdev/Makefile

@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		mtdev
+PKG_VERSION:=		1.1.6
+PKG_RELEASE:=		1
+PKG_HASH:=		1325f389a2f25cd5f5a8ea4d29aad24aa7c3ec30401d679400dd79eb9c0a8dbb
+PKG_DESCR:=		library which transforms all variants of kernel MT events
+PKG_SECTION:=		libs/misc
+PKG_SITES:=		https://bitmath.org/code/mtdev/
+PKG_OPTS:=		dev
+
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,MTDEV,mtdev,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+mtdev-install:
+	$(INSTALL_DIR) $(IDIR_MTDEV)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libmtdev*.so* \
+		$(IDIR_MTDEV)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 33 - 0
package/wayland-protocols/Makefile

@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		wayland-protocols
+PKG_VERSION:=		1.23
+PKG_RELEASE:=		1
+PKG_HASH:=		6c0af1915f96f615927a6270d025bd973ff1c58e521e4ca1fc9abfc914633f76
+PKG_DESCR:=		wayland protocols
+PKG_SECTION:=		x11/libs
+PKG_BUILDDEP:=		meson-host wayland-host
+PKG_SITES:=		https://wayland.freedesktop.org/releases/
+PKG_OPTS:=		dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,WAYLAND_PROTOCOLS,wayland-protocols,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+WRKBUILD=               $(WRKDIR)/$(PKG_NAME)-obj
+
+MESON_FLAGS+=		-Dtests=false
+
+CONFIG_STYLE:=		meson
+BUILD_STYLE:=		meson
+INSTALL_STYLE:=		meson
+
+wayland-protocols-install:
+	$(INSTALL_DIR) $(IDIR_WAYLAND_PROTOCOLS)/usr/share/wayland-protocols
+	$(CP) $(WRKINST)/usr/share/wayland-protocols/* \
+		$(IDIR_WAYLAND_PROTOCOLS)/usr/share/wayland-protocols/
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 11 - 0
package/wayland-protocols/patches/patch-meson_build

@@ -0,0 +1,11 @@
+--- wayland-protocols-1.23.orig/meson.build	2021-09-15 14:52:03.136998200 +0200
++++ wayland-protocols-1.23/meson.build	2021-11-14 04:45:19.472983046 +0100
+@@ -93,7 +93,7 @@ pkgconfig_configuration.set('abs_top_src
+ pkgconfig_configuration.set('PACKAGE', 'wayland-protocols')
+ pkgconfig_configuration.set('WAYLAND_PROTOCOLS_VERSION', wayland_protocols_version)
+ 
+-pkg_install_dir = join_paths(get_option('datadir'), 'pkgconfig')
++pkg_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
+ configure_file(
+ 	input: 'wayland-protocols.pc.in',
+ 	output: 'wayland-protocols.pc',

+ 10 - 0
package/wayland-protocols/patches/patch-wayland-protocols_pc_in

@@ -0,0 +1,10 @@
+--- wayland-protocols-1.23.orig/wayland-protocols.pc.in	2021-09-15 14:52:03.145998200 +0200
++++ wayland-protocols-1.23/wayland-protocols.pc.in	2021-11-14 04:59:17.121707638 +0100
+@@ -1,6 +1,6 @@
+ prefix=@prefix@
+ datarootdir=@datarootdir@
+-pkgdatadir=${pc_sysrootdir}${datarootdir}/@PACKAGE@
++pkgdatadir=${datarootdir}/@PACKAGE@
+ 
+ Name: Wayland Protocols
+ Description: Wayland protocol files

+ 39 - 0
package/wayland/Makefile

@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		wayland
+PKG_VERSION:=		1.19.0
+PKG_RELEASE:=		1
+PKG_HASH:=		baccd902300d354581cd5ad3cc49daa4921d55fb416a5883e218750fef166d15
+PKG_DESCR:=		wayland
+PKG_SECTION:=		x11/libs
+PKG_BUILDDEP:=		wayland-host meson-host
+HOST_BUILDDEP:=		expat-host libxml2-host
+PKG_SITES:=		https://wayland.freedesktop.org/releases/
+PKG_OPTS:=		dev
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,WAYLAND,wayland,$(PKG_VERSION)-${PKG_RELEASE}))
+$(eval $(call PKG_template,WAYLAND,wayland,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+HOST_CONFIGURE_ARGS+=	--disable-documentation
+MESON_FLAGS+=		-Ddocumentation=false \
+			-Dscanner=false
+
+WRKBUILD=               $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:=		meson
+BUILD_STYLE:=		meson
+INSTALL_STYLE:=		meson
+
+wayland-install:
+	$(INSTALL_DIR) $(IDIR_WAYLAND)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libwayland*.so* \
+		$(IDIR_WAYLAND)/usr/lib
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 8 - 0
package/wayland/patches/patch-src_wayland-client_pc_in

@@ -0,0 +1,8 @@
+--- wayland-1.19.0.orig/src/wayland-client.pc.in	2021-01-27 17:49:04.000000000 +0100
++++ wayland-1.19.0/src/wayland-client.pc.in	2021-11-14 05:40:27.300530861 +0100
+@@ -9,4 +9,4 @@ Name: Wayland Client
+ Description: Wayland client side library
+ Version: @WAYLAND_VERSION@
+ Cflags: -I${includedir}
+-Libs: -L${libdir} -lwayland-client
++Libs: -L${libdir} -lwayland-client -lffi

+ 60 - 0
package/weston/Makefile

@@ -0,0 +1,60 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		weston
+PKG_VERSION:=		9.0.0
+PKG_RELEASE:=		1
+PKG_HASH:=		82b17ab1766f13557fc620c21e3c89165342d3a3ead79ba01181b4f7d2144487
+PKG_DESCR:=		wayland compositor
+PKG_SECTION:=		x11/drivers
+PKG_DEPENDS:=		wayland libxkbcommon libinput libpng libjpeg-turbo
+PKG_DEPENDS+=		libwebp pam libxcursor libudev xkeyboard-config cairo
+PKG_BUILDDEP:=		wayland libxkbcommon libinput libpng libjpeg-turbo
+PKG_BUILDDEP+=		libwebp pam libXcursor eudev cairo
+PKG_SITES:=		https://github.com/wayland-project/weston/archive/refs/tags/
+
+PKG_CFLINE_WESTON:=	select ADK_PACKAGE_CAIRO_WITH_PNG@
+
+DISTFILES:=             $(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,WESTON,weston,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+MESON_FLAGS+=		-Dlauncher-logind=false \
+			-Dsystemd=false \
+			-Dbackend-drm-screencast-vaapi=false \
+			-Dbackend-rdp=false \
+			-Dcolor-management-lcms=false \
+			-Dcolor-management-colord=false \
+			-Dremoting=false \
+			-Dpipewire=false \
+			-Ddemo-clients=false 
+
+WRKBUILD=               $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:=		meson
+BUILD_STYLE:=		meson
+INSTALL_STYLE:=		meson
+
+weston-install:
+	$(INSTALL_DIR) $(IDIR_WESTON)/usr/share
+	$(CP) $(WRKINST)/usr/share/* \
+		$(IDIR_WESTON)/usr/share/
+	$(INSTALL_DIR) $(IDIR_WESTON)/usr/libexec
+	$(CP) $(WRKINST)/usr/libexec/* \
+		$(IDIR_WESTON)/usr/libexec/
+	$(INSTALL_DIR) $(IDIR_WESTON)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/weston \
+		$(IDIR_WESTON)/usr/lib/
+	$(CP) $(WRKINST)/usr/lib/libweston-9 \
+		$(IDIR_WESTON)/usr/lib/
+	$(CP) $(WRKINST)/usr/lib/libweston*so* \
+		$(IDIR_WESTON)/usr/lib/
+	$(INSTALL_DIR) $(IDIR_WESTON)/usr/bin
+	$(INSTALL_BIN) $(WRKINST)/usr/bin/weston \
+		$(IDIR_WESTON)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 39 - 0
package/xwayland/Makefile

@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		xwayland
+PKG_VERSION:=		21.1.3
+PKG_RELEASE:=		1
+PKG_HASH:=		ebc2757f39fd4c7db1654fd86591589c211aa20172d43a54f77ae567cedbf8a2
+PKG_DESCR:=		wayland server
+PKG_SECTION:=		x11/drivers
+PKG_DEPENDS:=		wayland wayland-protocols libepoxy libtirpc
+PKG_DEPENDS+=		pixman libxkbfile libxfont2 font-util libressl
+PKG_DEPENDS+=		libxdmcp libxshmfence libx11 libxcb libxext
+PKG_DEPENDS+=		libxau libfreetype libfontenc
+PKG_BUILDDEP:=		wayland wayland-protocols libepoxy libtirpc
+PKG_BUILDDEP+=		pixman xorgproto libxkbfile libXfont2 font-util
+PKG_BUILDDEP+=		libressl libXdmcp libxshmfence libX11 libxcb
+PKG_BUILDDEP+=		libXext libXau freetype libfontenc
+PKG_URL:=		https://xorg.freedesktop.org/
+PKG_SITES:=		https://www.x.org/releases/individual/xserver/
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,XWAYLAND,xwayland,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+WRKBUILD=               $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:=		meson
+BUILD_STYLE:=		meson
+INSTALL_STYLE:=		meson
+
+
+xwayland-install:
+	$(INSTALL_DIR) $(IDIR_XWAYLAND)/usr/bin
+	$(INSTALL_BIN) $(WRKINST)/usr/bin/Xwayland \
+		$(IDIR_XWAYLAND)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 12 - 0
package/xwayland/patches/patch-hw_xwayland_xwayland-glx_c

@@ -0,0 +1,12 @@
+--- xwayland-21.1.3.orig/hw/xwayland/xwayland-glx.c	2021-11-08 11:37:14.863922600 +0100
++++ xwayland-21.1.3/hw/xwayland/xwayland-glx.c	2021-11-14 05:31:50.673075155 +0100
+@@ -45,6 +45,9 @@
+ 
+ #include "xwayland-screen.h"
+ 
++#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
++#define EGL_COLOR_COMPONENT_TYPE_EXT      0x3339
++
+ /* Can't get these from <GL/glx.h> since it pulls in client headers */
+ #define GLX_RGBA_BIT		0x00000001
+ #define GLX_WINDOW_BIT		0x00000001

+ 51 - 0
package/xwayland/patches/patch-include_misc_h

@@ -0,0 +1,51 @@
+--- xwayland-21.1.3.orig/include/misc.h	2021-11-08 11:37:14.869922600 +0100
++++ xwayland-21.1.3/include/misc.h	2021-11-14 05:17:02.367154956 +0100
+@@ -298,34 +298,12 @@ __builtin_constant_p(int x)
+ }
+ #endif
+ 
+-static inline uint64_t
+-bswap_64(uint64_t x)
+-{
+-    return (((x & 0xFF00000000000000ull) >> 56) |
+-            ((x & 0x00FF000000000000ull) >> 40) |
+-            ((x & 0x0000FF0000000000ull) >> 24) |
+-            ((x & 0x000000FF00000000ull) >>  8) |
+-            ((x & 0x00000000FF000000ull) <<  8) |
+-            ((x & 0x0000000000FF0000ull) << 24) |
+-            ((x & 0x000000000000FF00ull) << 40) |
+-            ((x & 0x00000000000000FFull) << 56));
+-}
+-
+ #define swapll(x) do { \
+ 		if (sizeof(*(x)) != 8) \
+ 			wrong_size(); \
+ 		*(x) = bswap_64(*(x));          \
+ 	} while (0)
+ 
+-static inline uint32_t
+-bswap_32(uint32_t x)
+-{
+-    return (((x & 0xFF000000) >> 24) |
+-            ((x & 0x00FF0000) >> 8) |
+-            ((x & 0x0000FF00) << 8) |
+-            ((x & 0x000000FF) << 24));
+-}
+-
+ static inline Bool
+ checked_int64_add(int64_t *out, int64_t a, int64_t b)
+ {
+@@ -361,13 +339,6 @@ checked_int64_subtract(int64_t *out, int
+ 		*(x) = bswap_32(*(x)); \
+ 	} while (0)
+ 
+-static inline uint16_t
+-bswap_16(uint16_t x)
+-{
+-    return (((x & 0xFF00) >> 8) |
+-            ((x & 0x00FF) << 8));
+-}
+-
+ #define swaps(x) do { \
+ 		if (sizeof(*(x)) != 2) \
+ 			wrong_size(); \