Merge branch 'upstream' into tizen 35/306235/2 1.22.0 accepted/tizen/unified/20240304.123054 accepted/tizen/unified/toolchain/20240311.070110 accepted/tizen/unified/x/20240305.021702
authorJoonbum Ko <joonbum.ko@samsung.com>
Mon, 19 Feb 2024 05:15:43 +0000 (14:15 +0900)
committerJoonbum Ko <joonbum.ko@samsung.com>
Mon, 19 Feb 2024 06:15:45 +0000 (15:15 +0900)
 Upgrade wayland version to 1.22.0

Change-Id: Ieeb88b919eb1110eb2b01636c559254ea4cee785

12 files changed:
1  2 
cursor/wayland-cursor.c
meson.build
packaging/wayland.spec
protocol/wayland.xml
src/connection.c
src/scanner.c
src/wayland-client.c
src/wayland-server-core.h
src/wayland-server.c
src/wayland-shm.c
tests/connection-test.c
tests/message-test.c

Simple merge
diff --cc meson.build
Simple merge
index 9046064,0000000..6725a7e
mode 100644,000000..100644
--- /dev/null
@@@ -1,165 -1,0 +1,165 @@@
- Version:      1.21.0
 +%define EGL_PACKAGE 1
 +
 +Name:         wayland
- %doc README
++Version:      1.22.0
 +Release:      0
 +Summary:      Wayland Compositor Infrastructure
 +License:      MIT
 +Group:                Graphics & UI Framework/Wayland Window System
 +URL:          http://wayland.freedesktop.org/
 +
 +#Git-Clone:   git://anongit.freedesktop.org/wayland/wayland
 +#Git-Web:     http://cgit.freedesktop.org/wayland/wayland/
 +Source:               %name-%version.tar.xz
 +Source1001:   %name.manifest
 +BuildRequires:        meson
 +BuildRequires:        autoconf >= 2.64, automake >= 1.11
 +BuildRequires:        libtool >= 2.2
 +BuildRequires:        pkgconfig
 +BuildRequires:  pkgconfig(libffi)
 +BuildRequires:  pkgconfig(dlog)
 +BuildRequires:  expat-devel
 +BuildRequires:  pkgconfig(libxml-2.0)
 +
 +%description
 +Wayland is a protocol for a compositor to talk to its clients as well
 +as a C library implementation of that protocol. The compositor can be
 +a standalone display server running on Linux kernel modesetting and
 +evdev input devices, an X application, or a wayland client itself.
 +The clients can be traditional applications, X servers (rootless or
 +fullscreen) or other display servers.
 +
 +%package -n libwayland-client
 +Group:                Graphics & UI Framework/Wayland Window System
 +Summary:      Wayland core client library
 +
 +%description -n libwayland-client
 +Wayland is a protocol for a compositor to talk to its clients as well
 +as a C library implementation of that protocol. The compositor can be
 +a standalone display server running on Linux kernel modesetting and
 +evdev input devices, an X application, or a wayland client itself.
 +The clients can be traditional applications, X servers (rootless or
 +fullscreen) or other display servers.
 +
 +%package -n libwayland-cursor
 +Group:                Graphics & UI Framework/Wayland Window System
 +Summary:      Wayland cursor library
 +
 +%description -n libwayland-cursor
 +The purpose of this library is to be the equivalent of libXcursor in
 +the X world. This library is compatible with X cursor themes and
 +loads them directly into an shm pool making it easy for the clients
 +to get buffer for each cursor image.
 +
 +%package -n libwayland-server
 +Group:                Graphics & UI Framework/Wayland Window System
 +Summary:      Wayland core server library
 +
 +%description -n libwayland-server
 +Wayland is a protocol for a compositor to talk to its clients as well
 +as a C library implementation of that protocol. The compositor can be
 +a standalone display server running on Linux kernel modesetting and
 +evdev input devices, an X application, or a wayland client itself.
 +The clients can be traditional applications, X servers (rootless or
 +fullscreen) or other display servers.
 +
 +%if "%{EGL_PACKAGE}" == "1"
 +%package -n libwayland-egl
 +Group:                Graphics & UI Framework/Wayland Window System
 +Summary:      Wayland egl library
 +
 +%description -n libwayland-egl
 +The purpose of this library is to support wayland-egl frontend APIs and
 +make the backend for each target.
 +%endif
 +
 +%package devel
 +Summary:      Development files for the Wayland Compositor Infrastructure
 +Group:                Graphics & UI Framework/Development
 +Requires:     libwayland-client = %version
 +Requires:     libwayland-cursor = %version
 +Requires:     libwayland-server = %version
 +%if "%{EGL_PACKAGE}" == "1"
 +Requires:     libwayland-egl = %version
 +%endif
 +
 +%description devel
 +Wayland is a protocol for a compositor to talk to its clients as well
 +as a C library implementation of that protocol. The compositor can be
 +a standalone display server running on Linux kernel modesetting and
 +evdev input devices, an X application, or a wayland client itself.
 +The clients can be traditional applications, X servers (rootless or
 +fullscreen) or other display servers.
 +
 +This package contains all necessary include files and libraries needed
 +to develop applications that require these.
 +
 +%prep
 +%setup -q
 +cp %{SOURCE1001} .
 +
 +%build
 +EGLLIB="no"
 +%if "%{EGL_PACKAGE}" == "1"
 +EGLLIB="yes"
 +%endif
 +meson setup \
 +          --prefix /usr \
 +          --libdir %{_libdir} \
 +          --bindir %{_bindir} \
 +          builddir
 +ninja -C builddir all
 +
 +%install
 +export DESTDIR=%{buildroot}
 +ninja -C builddir install
 +
 +%post -n libwayland-client -p /sbin/ldconfig
 +%postun -n libwayland-client -p /sbin/ldconfig
 +%post -n libwayland-cursor -p /sbin/ldconfig
 +%postun -n libwayland-cursor -p /sbin/ldconfig
 +%post -n libwayland-server -p /sbin/ldconfig
 +%postun -n libwayland-server -p /sbin/ldconfig
 +%if "%{EGL_PACKAGE}" == "1"
 +%post -n libwayland-egl -p /sbin/ldconfig
 +%postun -n libwayland-egl -p /sbin/ldconfig
 +%endif
 +
 +%files -n libwayland-client
 +%manifest %{name}.manifest
 +%license COPYING
 +%defattr(-,root,root)
 +%_libdir/libwayland-client.so.0*
 +
 +%files -n libwayland-cursor
 +%manifest %{name}.manifest
 +%license COPYING
 +%defattr(-,root,root)
 +%_libdir/libwayland-cursor.so.0*
 +
 +%files -n libwayland-server
 +%manifest %{name}.manifest
 +%license COPYING
 +%defattr(-,root,root)
 +%_libdir/libwayland-server.so.0*
 +
 +%if "%{EGL_PACKAGE}" == "1"
 +%files -n libwayland-egl
 +%manifest %{name}.manifest
 +%license COPYING
 +%defattr(-,root,root)
 +%_libdir/libwayland-egl.so.1*
 +%endif
 +
 +%files devel
 +%manifest %{name}.manifest
 +%defattr(-,root,root)
 +%_bindir/wayland-scanner
 +%_includedir/wayland-*.h
 +%_libdir/libwayland-*.so
 +%_libdir/pkgconfig/wayland-*.pc
 +%_datadir/wayland/wayland*
 +%_datadir/aclocal
++%doc README.md
 +
 +%changelog
Simple merge
Simple merge
diff --cc src/scanner.c
Simple merge
Simple merge
Simple merge
@@@ -1107,12 -929,11 +1146,15 @@@ wl_client_destroy(struct wl_client *cli
        wl_map_release(&client->objects);
        wl_event_source_remove(client->source);
        close(wl_connection_destroy(client->connection));
+       wl_priv_signal_final_emit(&client->destroy_late_signal, client);
        wl_list_remove(&client->link);
        wl_list_remove(&client->resource_created_signal.listener_list);
 +//TIZEN_ONLY(20230518) : Add mutex for wl_client's resources
 +      pthread_mutex_destroy(&client->objects_mutex);
 +      pthread_mutex_destroy(&client->connection_mutex);
 +//TIZEN_ONLY : END
        free(client);
  }
  
@@@ -1329,11 -1139,7 +1371,11 @@@ wl_display_create(void
        wl_priv_signal_init(&display->destroy_signal);
        wl_priv_signal_init(&display->create_client_signal);
  
-       display->id = 1;
 +//TIZEN_ONLY(20230726) : protect the client_list for thread safety
 +      pthread_mutex_init(&display->client_list_mutex, NULL);
 +//TIZEN_ONLY : END
 +
+       display->next_global_name = 1;
        display->serial = 0;
  
        display->global_filter = NULL;
Simple merge
Simple merge
Simple merge