commit:     9dacace1698884a65a9cd45bc8b59af1b76f7fcd
Author:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Wed Nov  9 01:20:27 2016 +0000
Commit:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Wed Nov  9 01:21:50 2016 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=9dacace1

dev-libs/weston: Add Latest

1.11.0 in both weston and wayland added a lot of musl incompatibilities for no
reason -- the patch removes use of error.h, which musl doesn't have.

 dev-libs/weston/Manifest                |   5 +
 dev-libs/weston/files/1.11.0-musl.patch | 265 ++++++++++++++++++++++++++++++++
 dev-libs/weston/files/README.gentoo     |   9 ++
 dev-libs/weston/metadata.xml            |  26 ++++
 dev-libs/weston/weston-1.11.0.ebuild    | 158 +++++++++++++++++++
 5 files changed, 463 insertions(+)

diff --git a/dev-libs/weston/Manifest b/dev-libs/weston/Manifest
new file mode 100644
index 0000000..08a2abf
--- /dev/null
+++ b/dev-libs/weston/Manifest
@@ -0,0 +1,5 @@
+AUX 1.11.0-musl.patch 6945 SHA256 
c328fffeeb5e5c8ad1b5198c62ba0da415fb0c0ac003070d83c11cde5057b5dc SHA512 
6c798b7dad8f81c1cd550b9aa30e11729881dff09141cd811d90e2ad06da7f756542d8844b1a2a2948b247935cd4261d46aa9b991aaaeada226c418512734b2f
 WHIRLPOOL 
719cf3a43ee54c4ab2fd3f3500560a3c10bb974d897cd07c501afe85ee37ab1235ffc5583bbfd3015ecfbe7d9745e6350f9ef9cf78913346bb9f8e4659a0108c
+AUX README.gentoo 383 SHA256 
ded85eb05b14162aceb7ba67e49be207bbe15591fa519743478618def88cee85 SHA512 
e4d8f8e0edeb6773dd7ef6329074d1e40b694b9e7e10b6a429d8c5dd4fe1170594f447a42eb41446ec2355829a1da1606bf6c544434551c5c931b0794422e786
 WHIRLPOOL 
8bc2485d91a399eb9d283ec3363546852be9a1a3e69214b3c7cc9a6427c4e10355dc8732de0d8b688f9df8a4bc03df25c3ce7b33c19773b7a47616c93f82bd81
+DIST weston-1.11.0.tar.xz 1242244 SHA256 
05e086e9f186a06843b9f7a5e1abf19347b1a6e4be26d7e74927abc17b6b7125 SHA512 
30c43058aeca2d90d8c57ee3beb824aa42474eb2d0fa942622949b49c7771eb5d8d9c452d496a13950baabffef3c343d7386821778ae931939039fab2f782ad5
 WHIRLPOOL 
5e76484c1413ddc14c426c80845790e6b636bb2d827188563ca9b41f23ca4afd6cf20c8a743c0ff1b6c09d371c3e6988d0e9765333660aeb8723ddf62208b876
+EBUILD weston-1.11.0.ebuild 3671 SHA256 
1961ced3c29cdae326f21323f8404ca56ac4880c791bfc35bb781a239bd21a13 SHA512 
88de8968e3ca286cbea8df932225619cb000cbfadf591174b8f687fe67831b8e17ca2c4a1c9a0b3d200ebd6b18fdb08789115a914e1df284ce534a4139c24be0
 WHIRLPOOL 
a7a68946e418bbfe6e32a65512e5b5a9fcaecb6ea1b5abe0072767f736b3c77f6be33f4ea681612e081681ba636041fafb694d6ae95939571dd2f72eccfea624
+MISC metadata.xml 1346 SHA256 
2710b274618784eb36f2c67fa8778b95c49ff2eeb3b52757bca963a363f455e4 SHA512 
27e5e3fde5db5d9e04138b1abdeb77a09a3a0c726c28b1ba63db4aec44c1be8804cfc171893573ac2b4365dc94c725129843267cb0ab938bc5599aa186f26094
 WHIRLPOOL 
70f1a3c35da4948698ab39fc95d3b433d50b9170090050a0b8f4f1c2669011f2bd0d0f177414ae4744fcebdf7728174339578666b26d1508c56720cdb530fbfe

diff --git a/dev-libs/weston/files/1.11.0-musl.patch 
b/dev-libs/weston/files/1.11.0-musl.patch
new file mode 100644
index 0000000..b568b47
--- /dev/null
+++ b/dev-libs/weston/files/1.11.0-musl.patch
@@ -0,0 +1,265 @@
+diff -Naur weston-1.11.0.orig/shared/xalloc.h weston-1.11.0/shared/xalloc.h
+--- weston-1.11.0.orig/shared/xalloc.h 2016-06-21 10:44:19.589264446 -0700
++++ weston-1.11.0/shared/xalloc.h      2016-06-21 10:44:32.790394210 -0700
+@@ -30,6 +30,7 @@
+ extern "C" {
+ #endif
+ 
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ 
+diff -Naur weston-1.11.0.orig/src/weston-launch.c 
weston-1.11.0/src/weston-launch.c
+--- weston-1.11.0.orig/src/weston-launch.c     2016-06-21 10:44:19.613264682 
-0700
++++ weston-1.11.0/src/weston-launch.c  2016-06-21 10:54:33.890366803 -0700
+@@ -33,7 +33,7 @@
+ #include <poll.h>
+ #include <errno.h>
+ 
+-#include <error.h>
++#include <err.h>
+ #include <getopt.h>
+ 
+ #include <sys/types.h>
+@@ -225,11 +225,15 @@
+ static int
+ setup_launcher_socket(struct weston_launch *wl)
+ {
+-      if (socketpair(AF_LOCAL, SOCK_SEQPACKET, 0, wl->sock) < 0)
+-              error(1, errno, "socketpair failed");
++      if (socketpair(AF_LOCAL, SOCK_SEQPACKET, 0, wl->sock) < 0) {
++              err(errno, "socketpair failed");
++              exit(1);
++      }
+ 
+-      if (fcntl(wl->sock[0], F_SETFD, FD_CLOEXEC) < 0)
+-              error(1, errno, "fcntl failed");
++      if (fcntl(wl->sock[0], F_SETFD, FD_CLOEXEC) < 0) {
++              err(errno, "fcntl failed");
++              exit(1);
++      }
+ 
+       return 0;
+ }
+@@ -464,7 +468,7 @@
+       int pid, status, ret;
+ 
+       if (read(wl->signalfd, &sig, sizeof sig) != sizeof sig) {
+-              error(0, errno, "reading signalfd failed");
++              err(errno, "reading signalfd failed");
+               return -1;
+       }
+ 
+@@ -530,49 +534,69 @@
+               int tty0 = open("/dev/tty0", O_WRONLY | O_CLOEXEC);
+               char filename[16];
+ 
+-              if (tty0 < 0)
+-                      error(1, errno, "could not open tty0");
++              if (tty0 < 0) {
++                      err(errno, "could not open tty0");
++                      exit(1);
++              }
+ 
+-              if (ioctl(tty0, VT_OPENQRY, &wl->ttynr) < 0 || wl->ttynr == -1)
+-                      error(1, errno, "failed to find non-opened console");
++              if (ioctl(tty0, VT_OPENQRY, &wl->ttynr) < 0 || wl->ttynr == -1) 
{
++                      err(errno, "failed to find non-opened console");
++                      exit(1);
++              }
+ 
+               snprintf(filename, sizeof filename, "/dev/tty%d", wl->ttynr);
+               wl->tty = open(filename, O_RDWR | O_NOCTTY);
+               close(tty0);
+       }
+ 
+-      if (wl->tty < 0)
+-              error(1, errno, "failed to open tty");
++      if (wl->tty < 0) {
++              err(errno, "failed to open tty");
++              exit(1);
++      }
+ 
+       if (fstat(wl->tty, &buf) == -1 ||
+-          major(buf.st_rdev) != TTY_MAJOR || minor(buf.st_rdev) == 0)
+-              error(1, 0, "weston-launch must be run from a virtual 
terminal");
++          major(buf.st_rdev) != TTY_MAJOR || minor(buf.st_rdev) == 0) {
++              err(0, "weston-launch must be run from a virtual terminal");
++              exit(1);
++      }
+ 
+       if (tty) {
+-              if (fstat(wl->tty, &buf) < 0)
+-                      error(1, errno, "stat %s failed", tty);
++              if (fstat(wl->tty, &buf) < 0) {
++                      err(errno, "stat %s failed", tty);
++                      exit(1);
++              }
+ 
+-              if (major(buf.st_rdev) != TTY_MAJOR)
+-                      error(1, 0, "invalid tty device: %s", tty);
++              if (major(buf.st_rdev) != TTY_MAJOR) {
++                      err(0, "invalid tty device: %s", tty);
++                      exit(1);
++              }
+ 
+               wl->ttynr = minor(buf.st_rdev);
+       }
+ 
+-      if (ioctl(wl->tty, KDGKBMODE, &wl->kb_mode))
+-              error(1, errno, "failed to get current keyboard mode: %m\n");
++      if (ioctl(wl->tty, KDGKBMODE, &wl->kb_mode)) {
++              err(errno, "failed to get current keyboard mode: %m\n");
++              exit(1);
++      }
+ 
+       if (ioctl(wl->tty, KDSKBMUTE, 1) &&
+-          ioctl(wl->tty, KDSKBMODE, K_OFF))
+-              error(1, errno, "failed to set K_OFF keyboard mode: %m\n");
++          ioctl(wl->tty, KDSKBMODE, K_OFF)) {
++              err(errno, "failed to set K_OFF keyboard mode: %m\n");
++              exit(1);
++      }
+ 
+-      if (ioctl(wl->tty, KDSETMODE, KD_GRAPHICS))
+-              error(1, errno, "failed to set KD_GRAPHICS mode on tty: %m\n");
++      if (ioctl(wl->tty, KDSETMODE, KD_GRAPHICS)) {
++              err(errno, "failed to set KD_GRAPHICS mode on tty: %m\n");
++              exit(1);
++      }
+ 
+       mode.mode = VT_PROCESS;
+       mode.relsig = SIGUSR1;
+       mode.acqsig = SIGUSR2;
+-      if (ioctl(wl->tty, VT_SETMODE, &mode) < 0)
+-              error(1, errno, "failed to take control of vt handling\n");
++      if (ioctl(wl->tty, VT_SETMODE, &mode) < 0) {
++              err(errno, "failed to take control of vt handling\n");
++              exit(1);
++      }
+ 
+       return 0;
+ }
+@@ -585,10 +609,14 @@
+       int i;
+ 
+       if (wl->tty != STDIN_FILENO) {
+-              if (setsid() < 0)
+-                      error(1, errno, "setsid failed");
+-              if (ioctl(wl->tty, TIOCSCTTY, 0) < 0)
+-                      error(1, errno, "TIOCSCTTY failed - tty is in use");
++              if (setsid() < 0) {
++                      err(errno, "setsid failed");
++                      exit(1);
++              }
++              if (ioctl(wl->tty, TIOCSCTTY, 0) < 0) {
++                      err(errno, "TIOCSCTTY failed - tty is in use");
++                      exit(1);
++              }
+       }
+ 
+       term = getenv("TERM");
+@@ -604,7 +632,7 @@
+       if (env) {
+               for (i = 0; env[i]; ++i) {
+                       if (putenv(env[i]) != 0)
+-                              error(0, 0, "putenv %s failed", env[i]);
++                              err(0, "putenv %s failed", env[i]);
+               }
+               free(env);
+       }
+@@ -617,8 +645,10 @@
+ #ifdef HAVE_INITGROUPS
+           initgroups(wl->pw->pw_name, wl->pw->pw_gid) < 0 ||
+ #endif
+-          setuid(wl->pw->pw_uid) < 0)
+-              error(1, errno, "dropping privileges failed");
++          setuid(wl->pw->pw_uid) < 0) {
++              err(errno, "dropping privileges failed");
++              exit(1);
++      }
+ }
+ 
+ static void
+@@ -658,7 +688,8 @@
+       child_argv[5 + i] = NULL;
+ 
+       execv(child_argv[0], child_argv);
+-      error(1, errno, "exec failed");
++      err(errno, "exec failed");
++      exit(1);
+ }
+ 
+ static void
+@@ -691,8 +722,10 @@
+               switch (c) {
+               case 'u':
+                       wl.new_user = optarg;
+-                      if (getuid() != 0)
+-                              error(1, 0, "Permission denied. -u allowed for 
root only");
++                      if (getuid() != 0) {
++                              err(0, "Permission denied. -u allowed for root 
only");
++                              exit(1);
++                      }
+                       break;
+               case 't':
+                       tty = optarg;
+@@ -706,24 +739,30 @@
+               }
+       }
+ 
+-      if ((argc - optind) > (MAX_ARGV_SIZE - 6))
+-              error(1, E2BIG, "Too many arguments to pass to weston");
++      if ((argc - optind) > (MAX_ARGV_SIZE - 6)) {
++              err(E2BIG, "Too many arguments to pass to weston");
++              exit(1);
++      }
+ 
+       if (wl.new_user)
+               wl.pw = getpwnam(wl.new_user);
+       else
+               wl.pw = getpwuid(getuid());
+-      if (wl.pw == NULL)
+-              error(1, errno, "failed to get username");
++      if (wl.pw == NULL) {
++              err(errno, "failed to get username");
++              exit(1);
++      }
+ 
+-      if (!weston_launch_allowed(&wl))
+-              error(1, 0, "Permission denied. You should either:\n"
++      if (!weston_launch_allowed(&wl)) {
++              err(0, "Permission denied. You should either:\n"
+ #ifdef HAVE_SYSTEMD_LOGIN
+                     " - run from an active and local (systemd) session.\n"
+ #else
+                     " - enable systemd session support for weston-launch.\n"
+ #endif
+                     " - or add yourself to the 'weston-launch' group.");
++              exit(1);
++      }
+ 
+       if (setup_tty(&wl, tty) < 0)
+               exit(EXIT_FAILURE);
+@@ -738,8 +777,10 @@
+               exit(EXIT_FAILURE);
+ 
+       wl.child = fork();
+-      if (wl.child == -1)
+-              error(EXIT_FAILURE, errno, "fork failed");
++      if (wl.child == -1) {
++              err(errno, "fork failed");
++              exit(EXIT_FAILURE);
++      }
+ 
+       if (wl.child == 0)
+               launch_compositor(&wl, argc - optind, argv + optind);
+@@ -759,7 +800,7 @@
+ 
+               n = poll(fds, 2, -1);
+               if (n < 0)
+-                      error(0, errno, "poll failed");
++                      err(errno, "poll failed");
+               if (fds[0].revents & POLLIN)
+                       handle_socket_msg(&wl);
+               if (fds[1].revents)

diff --git a/dev-libs/weston/files/README.gentoo 
b/dev-libs/weston/files/README.gentoo
new file mode 100644
index 0000000..ed8c5c3
--- /dev/null
+++ b/dev-libs/weston/files/README.gentoo
@@ -0,0 +1,9 @@
+For running Weston you need to have $XDG_RUNTIME_DIR in your environment,
+directory must exist and have correct permissions. If you are not using 
systemd,
+it will not be created automatically, you can create it using your shell,
+add these lines to ~/.bash_profile:
+
+# wayland
+export XDG_RUNTIME_DIR=/tmp/.runtime-${USER}
+mkdir -p "${XDG_RUNTIME_DIR}"
+chmod 0700 "${XDG_RUNTIME_DIR}"

diff --git a/dev-libs/weston/metadata.xml b/dev-libs/weston/metadata.xml
new file mode 100644
index 0000000..54c4041
--- /dev/null
+++ b/dev-libs/weston/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="project">
+       <email>x...@gentoo.org</email>
+       <name>X11</name>
+</maintainer>
+<use>
+       <flag name="colord">Allow setting color managment</flag>
+       <flag name="drm">Enable drm compositor support</flag>
+       <flag name="editor">Install wayland-editor example application</flag>
+       <flag name="fbdev">Enable fbdev compositor support</flag>
+       <flag name="gles2">Use GLESv2 cairo instead of full GL</flag>
+       <flag name="headless">Headless backend and a noop renderer, mainly for 
testing purposes</flag>
+       <flag name="ivi">Enable the IVI shell</flag>
+       <flag name="launch">Install weston-launch utility</flag>
+       <flag name="rdp">Enable Remote Desktop Protocol compositor 
support</flag>
+       <flag name="resize-optimization">Increase performance, allocate more 
RAM. Recommended to disable on Raspberry Pi</flag>
+       <flag name="rpi">Raspberry Pi GPU support</flag>
+       <flag name="screen-sharing">Enable screen-sharing through RDP</flag>
+       <flag name="unwind">Enable libunwind usage for backtraces</flag>
+       <flag name="wayland-compositor">Enable Wayland compositor support</flag>
+       <flag name="webp">Add support for the WebP image format</flag>
+       <flag name="xwayland">Enable ability support native X11 
applications</flag>
+</use>
+</pkgmetadata>

diff --git a/dev-libs/weston/weston-1.11.0.ebuild 
b/dev-libs/weston/weston-1.11.0.ebuild
new file mode 100644
index 0000000..8af796a
--- /dev/null
+++ b/dev-libs/weston/weston-1.11.0.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+if [[ ${PV} = 9999* ]]; then
+       EGIT_REPO_URI="git://anongit.freedesktop.org/git/wayland/${PN}"
+       GIT_ECLASS="git-r3"
+       EXPERIMENTAL="true"
+fi
+VIRTUALX_REQUIRED="test"
+RESTRICT="test"
+
+inherit autotools readme.gentoo-r1 toolchain-funcs virtualx $GIT_ECLASS
+
+DESCRIPTION="Wayland reference compositor"
+HOMEPAGE="https://wayland.freedesktop.org/";
+
+if [[ $PV = 9999* ]]; then
+       SRC_URI="${SRC_PATCHES}"
+       KEYWORDS="amd64 arm x86"
+else
+       SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz";
+       KEYWORDS="amd64 arm x86 ~arm-linux"
+fi
+
+LICENSE="MIT CC-BY-SA-3.0"
+SLOT="0"
+
+IUSE_VIDEO_CARDS="video_cards_intel video_cards_v4l"
+IUSE="colord dbus +drm editor examples fbdev +gles2 headless ivi jpeg lcms rdp 
+resize-optimization rpi +launch screen-sharing static-libs +suid systemd test 
unwind wayland-compositor webp +X xwayland ${IUSE_VIDEO_CARDS}"
+
+REQUIRED_USE="
+       drm? ( gles2 )
+       screen-sharing? ( rdp )
+       systemd? ( dbus )
+       test? ( X )
+       wayland-compositor? ( gles2 )
+"
+
+RDEPEND="
+       >=dev-libs/libinput-0.8.0
+       >=dev-libs/wayland-1.10.0
+       >=dev-libs/wayland-protocols-1.2
+       lcms? ( media-libs/lcms:2 )
+       media-libs/libpng:0=
+       webp? ( media-libs/libwebp:0= )
+       jpeg? ( virtual/jpeg:0= )
+       >=x11-libs/cairo-1.11.3
+       >=x11-libs/libdrm-2.4.30
+       x11-libs/libxkbcommon
+       x11-libs/pixman
+       x11-misc/xkeyboard-config
+       fbdev? (
+               >=sys-libs/mtdev-1.1.0
+               >=virtual/udev-136
+       )
+       colord? ( >=x11-misc/colord-0.1.27 )
+       dbus? ( sys-apps/dbus )
+       drm? (
+               media-libs/mesa[gbm]
+               >=sys-libs/mtdev-1.1.0
+               >=virtual/udev-136
+       )
+       editor? ( x11-libs/pango )
+       gles2? (
+               media-libs/mesa[gles2,wayland]
+       )
+       rdp? ( >=net-misc/freerdp-1.1.0_beta1_p20130710 )
+       rpi? (
+               >=sys-libs/mtdev-1.1.0
+               >=virtual/udev-136
+       )
+       systemd? (
+               sys-auth/pambase[systemd]
+               sys-apps/systemd[pam]
+       )
+       launch? ( sys-auth/pambase )
+       unwind? ( sys-libs/libunwind )
+       X? (
+               x11-libs/libxcb
+               x11-libs/libX11
+       )
+       xwayland? (
+               x11-base/xorg-server[wayland]
+               x11-libs/cairo[xcb]
+               x11-libs/libxcb
+               x11-libs/libXcursor
+       )
+"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}/${PV}-musl.patch" )
+
+src_prepare() {
+       if [[ ${PV} = 9999* ]]; then
+               eautoreconf
+       fi
+       epatch "${PATCHES[@]}"
+}
+
+src_configure() {
+       local myconf
+       if use examples || use test; then
+               myconf="--enable-simple-clients"
+       else
+               myconf="--disable-simple-clients"
+       fi
+
+       myconf+=" --with-cairo=image --disable-simple-egl-clients"
+
+       econf \
+               $(use_enable examples demo-clients-install) \
+               $(use_enable fbdev fbdev-compositor) \
+               $(use_enable dbus) \
+               $(use_enable drm drm-compositor) \
+               $(use_enable headless headless-compositor) \
+               $(use_enable ivi ivi-shell) \
+               $(use_enable lcms) \
+               $(use_enable rdp rdp-compositor) \
+               $(use_enable rpi rpi-compositor) \
+               $(use_enable wayland-compositor) \
+               $(use_enable X x11-compositor) \
+               $(use_enable launch weston-launch) \
+               $(use_enable colord) \
+               $(use_enable gles2 egl) \
+               $(use_enable unwind libunwind) \
+               $(use_enable resize-optimization) \
+               $(use_enable screen-sharing) \
+               $(use_enable suid setuid-install) \
+               $(use_enable systemd systemd-login) \
+               $(use_enable systemd systemd-notify) \
+               $(use_enable xwayland) \
+               $(use_enable xwayland xwayland-test) \
+               $(use_enable video_cards_intel simple-dmabuf-intel-client) \
+               $(use_enable video_cards_v4l simple-dmabuf-v4l-client) \
+               $(use_with jpeg) \
+               $(use_with webp) \
+               ${myconf}
+}
+
+src_test() {
+       export XDG_RUNTIME_DIR="${T}/runtime-dir"
+       mkdir "${XDG_RUNTIME_DIR}" || die
+       chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+       cd "${BUILD_DIR}" || die
+       Xemake check
+}
+
+src_install() {
+       default
+
+       readme.gentoo_create_doc
+}

Reply via email to