summaryrefslogtreecommitdiff
path: root/x11-plugins
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-03-15 00:19:47 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-03-15 00:19:47 +0000
commit1f048d9b860b8c7b69ac8dd085edc9ee3191b2d5 (patch)
treeaffee530d130802d01350609c1e0705a3902e46d /x11-plugins
parent9ecdcfa46d8257a208dac1edc65aea2ccf11a799 (diff)
gentoo auto-resync : 15:03:2023 - 00:19:47
Diffstat (limited to 'x11-plugins')
-rw-r--r--x11-plugins/Manifest.gzbin27205 -> 27205 bytes
-rw-r--r--x11-plugins/wmappl/Manifest2
-rw-r--r--x11-plugins/wmappl/wmappl-0.71-r1.ebuild1
-rw-r--r--x11-plugins/wmpinboard/Manifest4
-rw-r--r--x11-plugins/wmpinboard/files/wmpinboard-1.0.1-memcmp.patch443
-rw-r--r--x11-plugins/wmpinboard/metadata.xml12
-rw-r--r--x11-plugins/wmpinboard/wmpinboard-1.0.1-r1.ebuild28
7 files changed, 483 insertions, 7 deletions
diff --git a/x11-plugins/Manifest.gz b/x11-plugins/Manifest.gz
index 7b9a82b2b7d4..70ee347e3060 100644
--- a/x11-plugins/Manifest.gz
+++ b/x11-plugins/Manifest.gz
Binary files differ
diff --git a/x11-plugins/wmappl/Manifest b/x11-plugins/wmappl/Manifest
index 046735e173f6..e9c49a8dc3ed 100644
--- a/x11-plugins/wmappl/Manifest
+++ b/x11-plugins/wmappl/Manifest
@@ -1,3 +1,3 @@
DIST wmappl-0.71.tar.gz 139219 BLAKE2B 0c28182608e446f1d65441ba57a86105a745b374b9e54c84d52bee58876097b83520a33a7413358ccf0d687696cee11541cbf6536c42442f85b64aae6e70b451 SHA512 dbcf1441960fd22b5436515c28c6870ff8400cfbe0b2aa4129ff1eaad6faeb5e0a3500b4c6f19b6ce3ea3dc8b52bc38a6fc591b93e6cb12e13d8447c3eb371d2
-EBUILD wmappl-0.71-r1.ebuild 510 BLAKE2B 06c883c1f82c32daefe0a30ed49d966bf124ec168ee774f9e2ec812d8ae7f6ef78089f8471640ac93e4c0c2a1c845b2fec523df26cc9da2b1b49aef61f7ef1f6 SHA512 03f11f386a282f25fbe4ab427d52ba468a778eed952d73295c8daf7cf29897b6bdc7be13fccc07bdf876f30f42e73d0130561a6c8387aa213e1fe057901630dd
+EBUILD wmappl-0.71-r1.ebuild 542 BLAKE2B f8b133a2157e78753adfd6be9a578185f9577ca5e554105375e9c8d2732e9575364fe61e344057dec0a195c28ab709799e38baac558061197ead37ffd77e91bb SHA512 4833427d2daf72e6d59f2c1e938d63b9d077146548d5c9ff796d72d2a746da08c522f8ce45a68e4f7c099879ca2402c0329ee4b8ff733998700a16e7b625a65b
MISC metadata.xml 329 BLAKE2B eff7003642a06249f536a9fdb9a839197ade97fb49313a294f4a4b99c1d356d8eb0afd91d859e52e92b4d2cab1ac47810921f1b24b5d63b179e5236bd203a207 SHA512 7afc7a92c30314360259664a747355d7773a94925f78855138d1345a0ecc5b2b485458e38992001388e4aa048d91e7dd3c6844dae968f3337171de9c84aded0a
diff --git a/x11-plugins/wmappl/wmappl-0.71-r1.ebuild b/x11-plugins/wmappl/wmappl-0.71-r1.ebuild
index 185a037c7024..895a0e04a33f 100644
--- a/x11-plugins/wmappl/wmappl-0.71-r1.ebuild
+++ b/x11-plugins/wmappl/wmappl-0.71-r1.ebuild
@@ -21,6 +21,7 @@ SLOT="0"
KEYWORDS="amd64 ppc ~sparc x86"
src_prepare() {
+ rm -rf "${S}"/icons/CVS || die
default
eautoreconf
}
diff --git a/x11-plugins/wmpinboard/Manifest b/x11-plugins/wmpinboard/Manifest
index 8f0c097985ac..f2299d7b5977 100644
--- a/x11-plugins/wmpinboard/Manifest
+++ b/x11-plugins/wmpinboard/Manifest
@@ -1,3 +1,5 @@
+AUX wmpinboard-1.0.1-memcmp.patch 11571 BLAKE2B ab72d384141eda621febddc5c848af2c5b80ca8f477ff0cefd38bc0d92ac78411b95d816d45c47d144f94a4ffe7a8e5950bf7a109e8723324fda09fa50226837 SHA512 269c185a90d5a16cff613bd74d182169f69341504c57c6a243fc93a332b4b91ed9ce5b8bb7f02b003442357a51da08643b03b261a0fdb33c379047cfbe6c2607
DIST wmpinboard-1.0.1.tar.gz 195782 BLAKE2B f88368b61645c91958d81161e9f5e8523d09b7ef825476afebb2b4318c8cf04f11319b3eaf9b152fe97a4dea2dac6147e9b70eb70cd9cddbc1f45960df6529e5 SHA512 5728aa8a040ba81a814a0851f5bed2d5fbf933b400bdafd2b92deef8eb35d62a050293bdb98d71c6a8db058223e5ae64de932dcf971fd244aea8f48f8832aa36
+EBUILD wmpinboard-1.0.1-r1.ebuild 600 BLAKE2B aec059221d8f219837a002faa9b7006aafd45cec0a692ee7e27daf72a6a7da47e65d60d38e12cd8fbc17dd8e141c44a089ffca82230e2132ce5b13babb7f4881 SHA512 1370aa9d8a36055385092fd0e34c5179682de3a2f003c5ade537e705809db73a1cee83cc717788877f1631c29e761242d1da6e297e42fe8ed15fab5d3dc68771
EBUILD wmpinboard-1.0.1.ebuild 492 BLAKE2B 4cbca4b74d1163b64e7468f9cd24f381299a79b331ad457a8a6aac7cd262b4ad80d95a6713ca817893f3206c796b3119f3688fe129533818ce4e9ac1e5459184 SHA512 e045c2a3690c54501e99cf485f069b88b9665cfebed69a7878a7d4148e3f31f9356f91a2834ffbb1b0977d4db48b26907ae948aa67ffecc8475d6ec576095485
-MISC metadata.xml 250 BLAKE2B 3d69a837b82fe334630573d6bf123718a3eac254377bc2ca86a2268f210cbcef9922db631e91954bceacc28828b54ad567d0568a4df655545ac56a4a54151d76 SHA512 ee587c14474743ca118c5468d1cd04ce5e3533ea29550ae74a7d517f092c895fa18c7edc7e9ffe7757b62c214dda7abf5352ee838a6dbd7d1079d60d2762732f
+MISC metadata.xml 338 BLAKE2B 64f0c4c7843a63bbe8409a246bda04cb5262de6dd47bbf06bf872cec79be64c73b9d1fc704ba14c8170793b01312b753ddece776f4fe19e474a8a43d32595138 SHA512 0c8cd91f038d9a1bb52d7745747235341daf1cfa856eecbf9bbcc67bc04bf2ee0d1d081aaf5c4d9595b57780cdd81085b8b7d912a2eb20ad4d606b2a71639065
diff --git a/x11-plugins/wmpinboard/files/wmpinboard-1.0.1-memcmp.patch b/x11-plugins/wmpinboard/files/wmpinboard-1.0.1-memcmp.patch
new file mode 100644
index 000000000000..616b4b8ddc59
--- /dev/null
+++ b/x11-plugins/wmpinboard/files/wmpinboard-1.0.1-memcmp.patch
@@ -0,0 +1,443 @@
+diff -Naur wmpinboard-1.0.1.orig/src/Makefile.am wmpinboard-1.0.1/src/Makefile.am
+--- wmpinboard-1.0.1.orig/src/Makefile.am 2015-05-25 02:30:37.000000000 +0200
++++ wmpinboard-1.0.1/src/Makefile.am 2023-03-14 20:57:29.415810929 +0100
+@@ -5,7 +5,7 @@
+
+ bin_PROGRAMS = wmpinboard
+
+-wmpinboard_SOURCES = memcmp.c \
++wmpinboard_SOURCES = \
+ misc.c misc.h \
+ notes.c notes.h \
+ wmpinboard.c wmpinboard.h \
+@@ -13,6 +13,5 @@
+ wmpinboard_CFLAGS = -g
+
+ EXTRA_wmpinboard_SOURCES = \
+- getopt.c getopt1.c getopt.h \
+- memcmp.c memcmp.h
++ getopt.c getopt1.c getopt.h
+
+diff -Naur wmpinboard-1.0.1.orig/src/memcmp.c wmpinboard-1.0.1/src/memcmp.c
+--- wmpinboard-1.0.1.orig/src/memcmp.c 2015-05-25 02:30:37.000000000 +0200
++++ wmpinboard-1.0.1/src/memcmp.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,394 +0,0 @@
+-/* Copyright (C) 1991, 1993, 1995, 1997, 1998 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+- Contributed by Torbjorn Granlund (tege@sics.se).
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Library General Public License as
+- published by the Free Software Foundation; either version 2 of the
+- License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Library General Public License for more details.
+-
+- You should have received a copy of the GNU Library General Public
+- License along with the GNU C Library; see the file COPYING.LIB. If not,
+- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#undef __ptr_t
+-#if defined __cplusplus || (defined __STDC__ && __STDC__)
+-# define __ptr_t void *
+-#else /* Not C++ or ANSI C. */
+-# undef const
+-# define const
+-# define __ptr_t char *
+-#endif /* C++ or ANSI C. */
+-
+-#ifndef __P
+-# if defined __GNUC__ || (defined __STDC__ && __STDC__)
+-# define __P(args) args
+-# else
+-# define __P(args) ()
+-# endif /* GCC. */
+-#endif /* Not __P. */
+-
+-#if defined HAVE_STRING_H || defined _LIBC
+-# include <string.h>
+-#endif
+-
+-#undef memcmp
+-
+-#ifdef _LIBC
+-
+-# include <memcopy.h>
+-# include <endian.h>
+-
+-# if __BYTE_ORDER == __BIG_ENDIAN
+-# define WORDS_BIGENDIAN
+-# endif
+-
+-#else /* Not in the GNU C library. */
+-
+-# include <sys/types.h>
+-
+-/* Type to use for aligned memory operations.
+- This should normally be the biggest type supported by a single load
+- and store. Must be an unsigned type. */
+-# define op_t unsigned long int
+-# define OPSIZ (sizeof(op_t))
+-
+-/* Threshold value for when to enter the unrolled loops. */
+-# define OP_T_THRES 16
+-
+-/* Type to use for unaligned operations. */
+-typedef unsigned char byte;
+-
+-# ifndef WORDS_BIGENDIAN
+-# define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
+-# else
+-# define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
+-# endif
+-
+-#endif /* In the GNU C library. */
+-
+-#ifdef WORDS_BIGENDIAN
+-# define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
+-#else
+-# define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b))
+-#endif
+-
+-/* BE VERY CAREFUL IF YOU CHANGE THIS CODE! */
+-
+-/* The strategy of this memcmp is:
+-
+- 1. Compare bytes until one of the block pointers is aligned.
+-
+- 2. Compare using memcmp_common_alignment or
+- memcmp_not_common_alignment, regarding the alignment of the other
+- block after the initial byte operations. The maximum number of
+- full words (of type op_t) are compared in this way.
+-
+- 3. Compare the few remaining bytes. */
+-
+-#ifndef WORDS_BIGENDIAN
+-/* memcmp_bytes -- Compare A and B bytewise in the byte order of the machine.
+- A and B are known to be different.
+- This is needed only on little-endian machines. */
+-
+-static int memcmp_bytes __P((op_t, op_t));
+-
+-# ifdef __GNUC__
+-__inline
+-# endif
+-static int
+-memcmp_bytes (a, b)
+- op_t a, b;
+-{
+- long int srcp1 = (long int) &a;
+- long int srcp2 = (long int) &b;
+- op_t a0, b0;
+-
+- do
+- {
+- a0 = ((byte *) srcp1)[0];
+- b0 = ((byte *) srcp2)[0];
+- srcp1 += 1;
+- srcp2 += 1;
+- }
+- while (a0 == b0);
+- return a0 - b0;
+-}
+-#endif
+-
+-static int memcmp_common_alignment __P((long, long, size_t));
+-
+-/* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
+- objects (not LEN bytes!). Both SRCP1 and SRCP2 should be aligned for
+- memory operations on `op_t's. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static int
+-memcmp_common_alignment (srcp1, srcp2, len)
+- long int srcp1;
+- long int srcp2;
+- size_t len;
+-{
+- op_t a0, a1;
+- op_t b0, b1;
+-
+- switch (len % 4)
+- {
+- default: /* Avoid warning about uninitialized local variables. */
+- case 2:
+- a0 = ((op_t *) srcp1)[0];
+- b0 = ((op_t *) srcp2)[0];
+- srcp1 -= 2 * OPSIZ;
+- srcp2 -= 2 * OPSIZ;
+- len += 2;
+- goto do1;
+- case 3:
+- a1 = ((op_t *) srcp1)[0];
+- b1 = ((op_t *) srcp2)[0];
+- srcp1 -= OPSIZ;
+- srcp2 -= OPSIZ;
+- len += 1;
+- goto do2;
+- case 0:
+- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+- return 0;
+- a0 = ((op_t *) srcp1)[0];
+- b0 = ((op_t *) srcp2)[0];
+- goto do3;
+- case 1:
+- a1 = ((op_t *) srcp1)[0];
+- b1 = ((op_t *) srcp2)[0];
+- srcp1 += OPSIZ;
+- srcp2 += OPSIZ;
+- len -= 1;
+- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+- goto do0;
+- /* Fall through. */
+- }
+-
+- do
+- {
+- a0 = ((op_t *) srcp1)[0];
+- b0 = ((op_t *) srcp2)[0];
+- if (a1 != b1)
+- return CMP_LT_OR_GT (a1, b1);
+-
+- do3:
+- a1 = ((op_t *) srcp1)[1];
+- b1 = ((op_t *) srcp2)[1];
+- if (a0 != b0)
+- return CMP_LT_OR_GT (a0, b0);
+-
+- do2:
+- a0 = ((op_t *) srcp1)[2];
+- b0 = ((op_t *) srcp2)[2];
+- if (a1 != b1)
+- return CMP_LT_OR_GT (a1, b1);
+-
+- do1:
+- a1 = ((op_t *) srcp1)[3];
+- b1 = ((op_t *) srcp2)[3];
+- if (a0 != b0)
+- return CMP_LT_OR_GT (a0, b0);
+-
+- srcp1 += 4 * OPSIZ;
+- srcp2 += 4 * OPSIZ;
+- len -= 4;
+- }
+- while (len != 0);
+-
+- /* This is the right position for do0. Please don't move
+- it into the loop. */
+- do0:
+- if (a1 != b1)
+- return CMP_LT_OR_GT (a1, b1);
+- return 0;
+-}
+-
+-static int memcmp_not_common_alignment __P((long, long, size_t));
+-
+-/* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
+- `op_t' objects (not LEN bytes!). SRCP2 should be aligned for memory
+- operations on `op_t', but SRCP1 *should be unaligned*. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static int
+-memcmp_not_common_alignment (srcp1, srcp2, len)
+- long int srcp1;
+- long int srcp2;
+- size_t len;
+-{
+- op_t a0, a1, a2, a3;
+- op_t b0, b1, b2, b3;
+- op_t x;
+- int shl, shr;
+-
+- /* Calculate how to shift a word read at the memory operation
+- aligned srcp1 to make it aligned for comparison. */
+-
+- shl = 8 * (srcp1 % OPSIZ);
+- shr = 8 * OPSIZ - shl;
+-
+- /* Make SRCP1 aligned by rounding it down to the beginning of the `op_t'
+- it points in the middle of. */
+- srcp1 &= -OPSIZ;
+-
+- switch (len % 4)
+- {
+- default: /* Avoid warning about uninitialized local variables. */
+- case 2:
+- a1 = ((op_t *) srcp1)[0];
+- a2 = ((op_t *) srcp1)[1];
+- b2 = ((op_t *) srcp2)[0];
+- srcp1 -= 1 * OPSIZ;
+- srcp2 -= 2 * OPSIZ;
+- len += 2;
+- goto do1;
+- case 3:
+- a0 = ((op_t *) srcp1)[0];
+- a1 = ((op_t *) srcp1)[1];
+- b1 = ((op_t *) srcp2)[0];
+- srcp2 -= 1 * OPSIZ;
+- len += 1;
+- goto do2;
+- case 0:
+- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+- return 0;
+- a3 = ((op_t *) srcp1)[0];
+- a0 = ((op_t *) srcp1)[1];
+- b0 = ((op_t *) srcp2)[0];
+- srcp1 += 1 * OPSIZ;
+- goto do3;
+- case 1:
+- a2 = ((op_t *) srcp1)[0];
+- a3 = ((op_t *) srcp1)[1];
+- b3 = ((op_t *) srcp2)[0];
+- srcp1 += 2 * OPSIZ;
+- srcp2 += 1 * OPSIZ;
+- len -= 1;
+- if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+- goto do0;
+- /* Fall through. */
+- }
+-
+- do
+- {
+- a0 = ((op_t *) srcp1)[0];
+- b0 = ((op_t *) srcp2)[0];
+- x = MERGE(a2, shl, a3, shr);
+- if (x != b3)
+- return CMP_LT_OR_GT (x, b3);
+-
+- do3:
+- a1 = ((op_t *) srcp1)[1];
+- b1 = ((op_t *) srcp2)[1];
+- x = MERGE(a3, shl, a0, shr);
+- if (x != b0)
+- return CMP_LT_OR_GT (x, b0);
+-
+- do2:
+- a2 = ((op_t *) srcp1)[2];
+- b2 = ((op_t *) srcp2)[2];
+- x = MERGE(a0, shl, a1, shr);
+- if (x != b1)
+- return CMP_LT_OR_GT (x, b1);
+-
+- do1:
+- a3 = ((op_t *) srcp1)[3];
+- b3 = ((op_t *) srcp2)[3];
+- x = MERGE(a1, shl, a2, shr);
+- if (x != b2)
+- return CMP_LT_OR_GT (x, b2);
+-
+- srcp1 += 4 * OPSIZ;
+- srcp2 += 4 * OPSIZ;
+- len -= 4;
+- }
+- while (len != 0);
+-
+- /* This is the right position for do0. Please don't move
+- it into the loop. */
+- do0:
+- x = MERGE(a2, shl, a3, shr);
+- if (x != b3)
+- return CMP_LT_OR_GT (x, b3);
+- return 0;
+-}
+-
+-int
+-memcmp (s1, s2, len)
+- const __ptr_t s1;
+- const __ptr_t s2;
+- size_t len;
+-{
+- op_t a0;
+- op_t b0;
+- long int srcp1 = (long int) s1;
+- long int srcp2 = (long int) s2;
+- op_t res;
+-
+- if (len >= OP_T_THRES)
+- {
+- /* There are at least some bytes to compare. No need to test
+- for LEN == 0 in this alignment loop. */
+- while (srcp2 % OPSIZ != 0)
+- {
+- a0 = ((byte *) srcp1)[0];
+- b0 = ((byte *) srcp2)[0];
+- srcp1 += 1;
+- srcp2 += 1;
+- res = a0 - b0;
+- if (res != 0)
+- return res;
+- len -= 1;
+- }
+-
+- /* SRCP2 is now aligned for memory operations on `op_t'.
+- SRCP1 alignment determines if we can do a simple,
+- aligned compare or need to shuffle bits. */
+-
+- if (srcp1 % OPSIZ == 0)
+- res = memcmp_common_alignment (srcp1, srcp2, len / OPSIZ);
+- else
+- res = memcmp_not_common_alignment (srcp1, srcp2, len / OPSIZ);
+- if (res != 0)
+- return res;
+-
+- /* Number of bytes remaining in the interval [0..OPSIZ-1]. */
+- srcp1 += len & -OPSIZ;
+- srcp2 += len & -OPSIZ;
+- len %= OPSIZ;
+- }
+-
+- /* There are just a few bytes to compare. Use byte memory operations. */
+- while (len != 0)
+- {
+- a0 = ((byte *) srcp1)[0];
+- b0 = ((byte *) srcp2)[0];
+- srcp1 += 1;
+- srcp2 += 1;
+- res = a0 - b0;
+- if (res != 0)
+- return res;
+- len -= 1;
+- }
+-
+- return 0;
+-}
+-
+-#ifdef weak_alias
+-# undef bcmp
+-weak_alias (memcmp, bcmp)
+-#endif
+diff -Naur wmpinboard-1.0.1.orig/src/memcmp.h wmpinboard-1.0.1/src/memcmp.h
+--- wmpinboard-1.0.1.orig/src/memcmp.h 2015-05-25 02:30:37.000000000 +0200
++++ wmpinboard-1.0.1/src/memcmp.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,8 +0,0 @@
+-#ifndef MEMCMP_H_INCLUDED
+-#define MEMCMP_H_INCLUDED
+-
+-extern int memcmp __P ((__const __ptr_t __s1, __const __ptr_t __s2,
+- size_t __n));
+-
+-#endif /* MEMCMP_H_INCLUDED */
+-
+diff -Naur wmpinboard-1.0.1.orig/src/notes.c wmpinboard-1.0.1/src/notes.c
+--- wmpinboard-1.0.1.orig/src/notes.c 2015-05-25 02:30:37.000000000 +0200
++++ wmpinboard-1.0.1/src/notes.c 2023-03-14 20:58:50.523898242 +0100
+@@ -20,9 +20,6 @@
+ #ifdef HAVE_STRING_H
+ #include <string.h>
+ #endif
+-#ifndef HAVE_MEMCMP
+-#include "memcmp.h"
+-#endif
+
+ /* a list of the upper left corners of the separate areas of the alarm panel,
+ numbered from left to right and from top to bottom (double digits followed
diff --git a/x11-plugins/wmpinboard/metadata.xml b/x11-plugins/wmpinboard/metadata.xml
index 0cd5b9db476b..c54db44b0063 100644
--- a/x11-plugins/wmpinboard/metadata.xml
+++ b/x11-plugins/wmpinboard/metadata.xml
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>voyageur@gentoo.org</email>
- <name>Bernard Cafarelli</name>
-</maintainer>
-
+ <maintainer type="person">
+ <email>voyageur@gentoo.org</email>
+ <name>Bernard Cafarelli</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">bbidulock/wmpinboard</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/x11-plugins/wmpinboard/wmpinboard-1.0.1-r1.ebuild b/x11-plugins/wmpinboard/wmpinboard-1.0.1-r1.ebuild
new file mode 100644
index 000000000000..c7278245a254
--- /dev/null
+++ b/x11-plugins/wmpinboard/wmpinboard-1.0.1-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Window Maker dock applet resembling a miniature pinboard"
+HOMEPAGE="https://github.com/bbidulock/wmpinboard"
+SRC_URI="https://github.com/bbidulock/${PN}/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+
+RDEPEND="x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXpm"
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto"
+
+PATCHES=( "${FILESDIR}"/${P}-memcmp.patch )
+
+src_prepare() {
+ default
+ eautoreconf
+}