1 |
commit: 540b57daa55d5d65fce313c2113be914c968246d |
2 |
Author: Aric Belsito <lluixhi <AT> gmail <DOT> com> |
3 |
AuthorDate: Wed Apr 5 02:32:42 2017 +0000 |
4 |
Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com> |
5 |
CommitDate: Wed Apr 5 02:32:42 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=540b57da |
7 |
|
8 |
app-admin/rsyslog: sync with tree/clean up patches |
9 |
|
10 |
The alpine patch was out of date (only GLOB_BRACE needs to be defined) |
11 |
Also remove the queue.h patch and instead depend on sys-libs/queue. |
12 |
Add latest stable version. |
13 |
|
14 |
app-admin/rsyslog/Manifest | 10 +- |
15 |
.../8-stable/50-rsyslog-8.18.0-musl-fix.patch | 11 +- |
16 |
.../50-rsyslog-8.18.0-musl-imptcp-queue.patch | 594 --------------------- |
17 |
app-admin/rsyslog/files/8-stable/rsyslog.initd-r1 | 1 - |
18 |
...g-8.25.0-r2.ebuild => rsyslog-8.24.0-r2.ebuild} | 8 +- |
19 |
app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild | 2 +- |
20 |
6 files changed, 14 insertions(+), 612 deletions(-) |
21 |
|
22 |
diff --git a/app-admin/rsyslog/Manifest b/app-admin/rsyslog/Manifest |
23 |
index e8088c6..b496a5c 100644 |
24 |
--- a/app-admin/rsyslog/Manifest |
25 |
+++ b/app-admin/rsyslog/Manifest |
26 |
@@ -1,13 +1,15 @@ |
27 |
AUX 8-stable/50-default.conf 1701 SHA256 61c1dd1450f574a21a8d8375faaf3e42f9856df91011150ff13c0cfddc86ed41 SHA512 33e4e63239b9112fec1a37115ac80ab8dbd6e7189d9d29b1bc743c433e0124ea0d1a4cf6f7ada9e5b92e9b0025b6617a1a16f4c491e743bbf4327a5f376a1ea9 WHIRLPOOL d33b83bb690e78b5e5f7cfc090d21da03615c891a287b1f3a92a51514dcad1f5dfe8d2ceed867b3007768d47f48d207fac43a1ff33a85b24c21a5531cdf9d311 |
28 |
-AUX 8-stable/50-rsyslog-8.18.0-musl-fix.patch 300 SHA256 5b8420570bef57aeba55965bbbddb29f966b60a33ef9e7fc5f921820274080b0 SHA512 20967235e8233588210071a7157a81fe02a1e88d7c7f55855fcc2fe34295269a6e3e3bfccb3d4dd83a6a48da28948c92d6ce47a0c5d817f6b6a4030635f4f896 WHIRLPOOL e8a07737f7e282905bf92112b2d94303605cb2f8da0d5c0598f41bdb8d060a18f5d6f2b70a8f5f3feec5cb0a24109fdf4f2e1ebd0517e8063d72c763e345501f |
29 |
-AUX 8-stable/50-rsyslog-8.18.0-musl-imptcp-queue.patch 20588 SHA256 8d6dda439c79dffac2a5d17e3d9a28355cfb8fc264175a871e27304ace259daa SHA512 de8b82781af2dfef67b2215782721cca2ee5db9d08ed3260f4e3390353a59bf4bd76701df682c4bf537ce817eabf79b062c4b2a3e20e4175e7d77ca08c5a700f WHIRLPOOL cf1d3c2e434c7843e9874b8138ecb3777cc4e384477b2c3936b9d5c10e13e2493461c433c58760a35ba20638c5acd1e03c7fae718f5d2a6b0017ea34e66b0a67 |
30 |
+AUX 8-stable/50-rsyslog-8.18.0-musl-fix.patch 168 SHA256 5806738195b8155bbb19e3fb0db84f59668f5cf0c303d0f3c1e15a4ac31f8997 SHA512 8ab680645e59392ce164e8b46b3c6b64def1fa08f83fca3feb1065d0f1a663f5cf34600aec86190edcd06d364399efaa04b372310f76f263d11cb179e3a840fa WHIRLPOOL e70fededf8f540d77628d26b9d28512ee7b1b6ca6bd0e13b644c6f7665c2a91c85a6602e7b22e5a404e758caf6a71393d0abfff3b2a6e98519ffa2399c1ec778 |
31 |
AUX 8-stable/README.gentoo 1126 SHA256 29b4c68f521f2f1f138f44c4635da1a270fed9cbd4a780569754080987aa777c SHA512 46fdf3350e2005d3ef588d50dfc6d474a1b5d3010329b656879a43cbbd7be0cd91944b88d3838f45f69c830fc28c42e7fac2cd52e0a4b24bb6780562d59ae384 WHIRLPOOL a1a3ec8b887110a01e8c1c1320f25493dd8ff343e4b08780c30c9bc3bb842afa0ef79db08195db876697c1a69807f49a8b3793609d25f78559fa534507fc195e |
32 |
AUX 8-stable/rsyslog-8.24.0-fix-tcpflood-without-librelp-r1.patch 4660 SHA256 f50685f76004298a8a77ee6eb88868ff0f8fb8eb7ca5ce0f6809c4db9c42474d SHA512 231030532a126dade0fa2c98d9bd8ef610d3059210cabfc6b0a51adfb610b61eb57b7926a2a51f01f196d196a9134b4c1db7105aeedc4d35eb70abac97301378 WHIRLPOOL 88a9ebe6e3dbeca7b55e16192e6be6d862241a17402c2abf0bcdad4f16fed5fa11f7c140ac0de1655a52d43ad18eaa493b3e2426e1b3c80d1be119dffdc9cd15 |
33 |
AUX 8-stable/rsyslog.conf 1562 SHA256 fc70a94213b5eb519febf9aa7d758ee9526433bcc5683bcb7451d16e65a2f5b0 SHA512 1720174fab020e2de590f3d6bbb03784aca1928fe05f7e75e02fb4597cb8b2ee755e6deb8e8f989060511044ae483f791f496f24e0eecaf27eb9e0b5e20a2c7a WHIRLPOOL 97cf3fdee62a9339b412ebe93b71b2d6804df60aad9cb7e71779fcaddb01d489e38bbb353557864ea38aba384e664e6da636812c3c078ed9e22e261ed7b78cba |
34 |
AUX 8-stable/rsyslog.confd-r1 1145 SHA256 0be3575df8010523de6b37e98c417192e8ec481292ca9fb47c8d2211795e03a6 SHA512 a7f8621bdd490596b09f9a7583dd0c992006c55335b2e6e687bef4141bb18cd4bb43e23f590a138e9c8d5a3cbac0cc46c3b01c7d3ff9f9dd3c53418b13b0dd4a WHIRLPOOL 05079ab1a55aca9b68c81c8b7da66ff029f72c7168bd15faebf7d7172dddc69f6ffb2864e1fcd8c1f2dbb51416bea89fab3667a34ed7295b3abafc6a93883d3e |
35 |
-AUX 8-stable/rsyslog.initd-r1 1765 SHA256 2c8800c31b8411899b49036bd51ed58a625ee8b7bd523b18d6ad8b7399da0324 SHA512 07a73ddd6e50b9d4ae7d9633c71b6e96e86f3348e242506d9f6a86a0f367e6bc671bed559f9d69232096e7dce7a062be7107794fc2564829d53f42d4d30d8daf WHIRLPOOL 734780723ae73f573c3104c35460e8ef9e5915433012c1a2ca987bea7de37a3a423315ca6f1da06dbf0af6fabc14051c89f7e682592d6ccaa1e39432d5648477 |
36 |
+AUX 8-stable/rsyslog.initd-r1 1758 SHA256 93044cc5fc344cd90d17cbb5cebee3c60ebf674e53c8b9efc6e758d53912d343 SHA512 0ddd385e77759370344032f52f945b1e90d4961140db63e2562e4be78dfc2bae16ac9439d40fe078110593999b5c5efd7680b402fc0771b1261ff28b1725e265 WHIRLPOOL 14918404976219e379f80d67fe47a0f6e9d51938061c9f5d205bbcd7cedbda96825f75fd64f2fcc446d96292710a5ea375e117f621c33c9df7352e27286c91ae |
37 |
AUX 8-stable/rsyslog.logrotate 682 SHA256 89cc8f13c1f7a3ae446b40da7b31cdf471e2c9e2d3d5b8f48e524f7a82fbff89 SHA512 6c58abd2f02157177a61695f53eccbf201c514821b0c551a4812621e8d3dd2da9b5cd651d93860cb51ebdbdc7056d0ef0dde99c2a57ac3c43aa968a141805912 WHIRLPOOL 9d29c2c9351252887c3dad78962df942bb1cd7387eb44e3c98764319f82d90c42d255a5642c55bb37811fb903e1c5314ca536bc9d32ccfd0535f0579f4e25ff0 |
38 |
+DIST rsyslog-8.24.0.tar.gz 2374240 SHA256 37f32ce33e32a88e1bea0511e8e557d90b7378b81520e3236a9af5ba6ea993d7 SHA512 b25b8ae72133376f732f54863c97aea3c8dfbf37c62c6a61840932996913c9d4e63155a24ffc577db48a18514f3e35b6fb109b1864380ba93ddf3fa6d84d728d WHIRLPOOL c5895d50143c21d446d760f5179b47fdae4ec34867711c942cd671b88789588e7244fb8511745efdb701954f7bc390403d30736a1e54af13dca4876f989928df |
39 |
DIST rsyslog-8.25.0.tar.gz 2386720 SHA256 c756f16a083e5d4081fb9bfb236303a839cdca0a2c00017bd770b2e2e9677427 SHA512 0e97db84cc8fe9fd6e3ffb5a78b32fd213e22833c6ed605329c579132d127b7d65b3f66c64e6bddeb1967aa9ed90645a7c24b9d5e643f95bdaf48ed9fc82cb5f WHIRLPOOL 2c4925fda01e49f95ed3d2f43898cdf8f6d679ace5c2a1d1d330dfc422936ae7751cfefa480359b26d2cb782a8217865336f5e04e65e81ffce565b3388c2ff01 |
40 |
+DIST rsyslog-docs-8.24.0.tar.gz 4344877 SHA256 f5e3c27c5b65abdd600b8ad8d99d1f2fe9f0ffca02d6af3c12db5fc10dd889b2 SHA512 b55cde1485a7baec6d4c4928107c22a078cf412a2994c0dfcbb12c47b49c3b263af8a64011b1329567cf86e04927b9e383581dc868eaea81d554adada6b3786b WHIRLPOOL e8b2d10b0de3c33189f859f08db58e319730e709e5a5008909f2166a061952290b0bf96163cdf6e0b3829896916f712ba5d8a2a98f02d796e9174d8919190f8d |
41 |
DIST rsyslog-docs-8.25.0.tar.gz 4359583 SHA256 3fa96f85ca31b09b16dcc4b184f9beeb5fb06ba463b0ced7046ec2a471b7d3ad SHA512 e0068ec00bbda2d1cf7f14105ad83e82bea9291ed5d5fda3ffcff2db32747b65e7b6d65743a3221aeca03be9c6efcee1db7f03c2da115a3aed60848556befa71 WHIRLPOOL 8c2ae0afe5fb1f81b33ecb83df420a7bbc8c147eac5854a57ba1c5341bb42d9dd4a3976a472445d19a45eb09258bc3be1b9065d79fd679095cbf24cbfddb1756 |
42 |
-EBUILD rsyslog-8.25.0-r2.ebuild 12699 SHA256 fda57ebf418514858933efbee7fd118fc94d300ce0aa4a96c5011fd34c09ace5 SHA512 4c8d2e377d9627b665308c7dd5d9e361d3f15859913dfda436528e32f009ad405b8d75797e651007b0bbd488b6b7776c3081877c4d9ae7f1ebee13cd472725e6 WHIRLPOOL f249eddf6183791e6dd6597e57d759c67fc21b65ab7f0ab0fcfa0008606ba949d378c73c9415724b73e84826409405b02b6a318a2e90a5af9a79effb14f6b091 |
43 |
+EBUILD rsyslog-8.24.0-r2.ebuild 12575 SHA256 7725f8cf5aed2092ecc4d7534d4491dd6a28ec84c3e3a3d60b9dd0e87cf395c3 SHA512 de77eaa59232ad924fdc059ee287448196e0a750a92e783ecc7fe29656f09a1110e4e47c78b8ebfff085b34838d1f23a5fccd79aaea50998a5c33497a9220e7a WHIRLPOOL 53d1532b60e73032df6938873ce43ffbf692f42abbd39bc3e3b9596360dd6c9dd0a6d030251ceabec20493a282ee153a036c1481537394e601ad9dd7c83c54cb |
44 |
+EBUILD rsyslog-8.25.0-r2.ebuild 12666 SHA256 20574ebc2e7ed7a5ad65118f6b6611a4f43e21f6b221aa9daef67fb77f798011 SHA512 cacf7a2ef497e15b42158a32acd6d638b6d377f441c5b2e6e6bb40c7a9e1eefb0d9cb57e70067afd9d80e8182469f18c272474109bc3595c63b37bcbe69e7f47 WHIRLPOOL 41308e20598e5b962e5f961d9afaafb0c00397ce9b52e9e4984f9898c18ec9a7035b0060193882a67c710230c3d8071307d23851c39331d117fccf91fe173742 |
45 |
MISC metadata.xml 3329 SHA256 c757c77e3d9c766d901ac9737ea16ecd4bc836585df84c745d9ab2b160baebce SHA512 a128d327fdd7e46e9fc22605589d0a05462dce15870e3a9371a83d47e2616eb0ea4e54c6f813eb7c87d24ad8cc456883a145c73425e6bd9483f4dfd82c4377cd WHIRLPOOL 921eb979cdf8efdf2bb0fab33e6b4d774a870a86e243af21b73a127376d843bf1400007d1f72026713f344ce1ee67456d5a7d1f182d8f5ef59679debc178a357 |
46 |
|
47 |
diff --git a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.18.0-musl-fix.patch b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.18.0-musl-fix.patch |
48 |
index bfd20b5..3c5681d 100644 |
49 |
--- a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.18.0-musl-fix.patch |
50 |
+++ b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.18.0-musl-fix.patch |
51 |
@@ -1,13 +1,10 @@ |
52 |
---- rsyslog-8.16.0/runtime/rsyslog.h |
53 |
-+++ rsyslog-8.16.0-musl/runtime/rsyslog.h |
54 |
-@@ -643,3 +643,10 @@ |
55 |
+--- a/runtime/rsyslog.h |
56 |
++++ b/runtime/rsyslog.h |
57 |
+@@ -643,3 +643,7 @@ |
58 |
#endif |
59 |
|
60 |
#endif /* multi-include protection */ |
61 |
+ |
62 |
-+/* musl patches for alpine */ |
63 |
-+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) |
64 |
++#ifndef GLOB_BRACE |
65 |
+#define GLOB_BRACE 0 |
66 |
-+#ifndef WAIT_ANY |
67 |
-+#define WAIT_ANY (-1) |
68 |
+#endif |
69 |
|
70 |
diff --git a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.18.0-musl-imptcp-queue.patch b/app-admin/rsyslog/files/8-stable/50-rsyslog-8.18.0-musl-imptcp-queue.patch |
71 |
deleted file mode 100644 |
72 |
index 863fbd2..0000000 |
73 |
--- a/app-admin/rsyslog/files/8-stable/50-rsyslog-8.18.0-musl-imptcp-queue.patch |
74 |
+++ /dev/null |
75 |
@@ -1,594 +0,0 @@ |
76 |
---- rsyslog-8.18.0/plugins/imptcp/imptcp.c |
77 |
-+++ rsyslog-8.18.0-b/plugins/imptcp/imptcp.c |
78 |
-@@ -50,13 +50,13 @@ |
79 |
- #include <sys/socket.h> |
80 |
- #include <sys/un.h> |
81 |
- #include <sys/epoll.h> |
82 |
--#include <sys/queue.h> |
83 |
- #include <netinet/tcp.h> |
84 |
- #include <stdint.h> |
85 |
- #include <zlib.h> |
86 |
- #if HAVE_FCNTL_H |
87 |
- #include <fcntl.h> |
88 |
- #endif |
89 |
-+#include "queue.h" |
90 |
- #include "rsyslog.h" |
91 |
- #include "cfsysline.h" |
92 |
- #include "prop.h" |
93 |
---- /dev/null |
94 |
-+++ rsyslog-8.18.0-b/plugins/imptcp/queue.h |
95 |
-@@ -0,0 +1,574 @@ |
96 |
-+/* |
97 |
-+ * Copyright (c) 1991, 1993 |
98 |
-+ * The Regents of the University of California. All rights reserved. |
99 |
-+ * |
100 |
-+ * Redistribution and use in source and binary forms, with or without |
101 |
-+ * modification, are permitted provided that the following conditions |
102 |
-+ * are met: |
103 |
-+ * 1. Redistributions of source code must retain the above copyright |
104 |
-+ * notice, this list of conditions and the following disclaimer. |
105 |
-+ * 2. Redistributions in binary form must reproduce the above copyright |
106 |
-+ * notice, this list of conditions and the following disclaimer in the |
107 |
-+ * documentation and/or other materials provided with the distribution. |
108 |
-+ * 3. Neither the name of the University nor the names of its contributors |
109 |
-+ * may be used to endorse or promote products derived from this software |
110 |
-+ * without specific prior written permission. |
111 |
-+ * |
112 |
-+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
113 |
-+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
114 |
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
115 |
-+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
116 |
-+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
117 |
-+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
118 |
-+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
119 |
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
120 |
-+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
121 |
-+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
122 |
-+ * SUCH DAMAGE. |
123 |
-+ * |
124 |
-+ * @(#)queue.h 8.5 (Berkeley) 8/20/94 |
125 |
-+ */ |
126 |
-+ |
127 |
-+#ifndef _SYS_QUEUE_H_ |
128 |
-+#define _SYS_QUEUE_H_ |
129 |
-+ |
130 |
-+/* |
131 |
-+ * This file defines five types of data structures: singly-linked lists, |
132 |
-+ * lists, simple queues, tail queues, and circular queues. |
133 |
-+ * |
134 |
-+ * A singly-linked list is headed by a single forward pointer. The |
135 |
-+ * elements are singly linked for minimum space and pointer manipulation |
136 |
-+ * overhead at the expense of O(n) removal for arbitrary elements. New |
137 |
-+ * elements can be added to the list after an existing element or at the |
138 |
-+ * head of the list. Elements being removed from the head of the list |
139 |
-+ * should use the explicit macro for this purpose for optimum |
140 |
-+ * efficiency. A singly-linked list may only be traversed in the forward |
141 |
-+ * direction. Singly-linked lists are ideal for applications with large |
142 |
-+ * datasets and few or no removals or for implementing a LIFO queue. |
143 |
-+ * |
144 |
-+ * A list is headed by a single forward pointer (or an array of forward |
145 |
-+ * pointers for a hash table header). The elements are doubly linked |
146 |
-+ * so that an arbitrary element can be removed without a need to |
147 |
-+ * traverse the list. New elements can be added to the list before |
148 |
-+ * or after an existing element or at the head of the list. A list |
149 |
-+ * may only be traversed in the forward direction. |
150 |
-+ * |
151 |
-+ * A simple queue is headed by a pair of pointers, one the head of the |
152 |
-+ * list and the other to the tail of the list. The elements are singly |
153 |
-+ * linked to save space, so elements can only be removed from the |
154 |
-+ * head of the list. New elements can be added to the list after |
155 |
-+ * an existing element, at the head of the list, or at the end of the |
156 |
-+ * list. A simple queue may only be traversed in the forward direction. |
157 |
-+ * |
158 |
-+ * A tail queue is headed by a pair of pointers, one to the head of the |
159 |
-+ * list and the other to the tail of the list. The elements are doubly |
160 |
-+ * linked so that an arbitrary element can be removed without a need to |
161 |
-+ * traverse the list. New elements can be added to the list before or |
162 |
-+ * after an existing element, at the head of the list, or at the end of |
163 |
-+ * the list. A tail queue may be traversed in either direction. |
164 |
-+ * |
165 |
-+ * A circle queue is headed by a pair of pointers, one to the head of the |
166 |
-+ * list and the other to the tail of the list. The elements are doubly |
167 |
-+ * linked so that an arbitrary element can be removed without a need to |
168 |
-+ * traverse the list. New elements can be added to the list before or after |
169 |
-+ * an existing element, at the head of the list, or at the end of the list. |
170 |
-+ * A circle queue may be traversed in either direction, but has a more |
171 |
-+ * complex end of list detection. |
172 |
-+ * |
173 |
-+ * For details on the use of these macros, see the queue(3) manual page. |
174 |
-+ */ |
175 |
-+ |
176 |
-+/* |
177 |
-+ * List definitions. |
178 |
-+ */ |
179 |
-+#define LIST_HEAD(name, type) \ |
180 |
-+struct name { \ |
181 |
-+ struct type *lh_first; /* first element */ \ |
182 |
-+} |
183 |
-+ |
184 |
-+#define LIST_HEAD_INITIALIZER(head) \ |
185 |
-+ { NULL } |
186 |
-+ |
187 |
-+#define LIST_ENTRY(type) \ |
188 |
-+struct { \ |
189 |
-+ struct type *le_next; /* next element */ \ |
190 |
-+ struct type **le_prev; /* address of previous next element */ \ |
191 |
-+} |
192 |
-+ |
193 |
-+/* |
194 |
-+ * List functions. |
195 |
-+ */ |
196 |
-+#define LIST_INIT(head) do { \ |
197 |
-+ (head)->lh_first = NULL; \ |
198 |
-+} while (/*CONSTCOND*/0) |
199 |
-+ |
200 |
-+#define LIST_INSERT_AFTER(listelm, elm, field) do { \ |
201 |
-+ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ |
202 |
-+ (listelm)->field.le_next->field.le_prev = \ |
203 |
-+ &(elm)->field.le_next; \ |
204 |
-+ (listelm)->field.le_next = (elm); \ |
205 |
-+ (elm)->field.le_prev = &(listelm)->field.le_next; \ |
206 |
-+} while (/*CONSTCOND*/0) |
207 |
-+ |
208 |
-+#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ |
209 |
-+ (elm)->field.le_prev = (listelm)->field.le_prev; \ |
210 |
-+ (elm)->field.le_next = (listelm); \ |
211 |
-+ *(listelm)->field.le_prev = (elm); \ |
212 |
-+ (listelm)->field.le_prev = &(elm)->field.le_next; \ |
213 |
-+} while (/*CONSTCOND*/0) |
214 |
-+ |
215 |
-+#define LIST_INSERT_HEAD(head, elm, field) do { \ |
216 |
-+ if (((elm)->field.le_next = (head)->lh_first) != NULL) \ |
217 |
-+ (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ |
218 |
-+ (head)->lh_first = (elm); \ |
219 |
-+ (elm)->field.le_prev = &(head)->lh_first; \ |
220 |
-+} while (/*CONSTCOND*/0) |
221 |
-+ |
222 |
-+#define LIST_REMOVE(elm, field) do { \ |
223 |
-+ if ((elm)->field.le_next != NULL) \ |
224 |
-+ (elm)->field.le_next->field.le_prev = \ |
225 |
-+ (elm)->field.le_prev; \ |
226 |
-+ *(elm)->field.le_prev = (elm)->field.le_next; \ |
227 |
-+} while (/*CONSTCOND*/0) |
228 |
-+ |
229 |
-+#define LIST_FOREACH(var, head, field) \ |
230 |
-+ for ((var) = ((head)->lh_first); \ |
231 |
-+ (var); \ |
232 |
-+ (var) = ((var)->field.le_next)) |
233 |
-+ |
234 |
-+/* |
235 |
-+ * List access methods. |
236 |
-+ */ |
237 |
-+#define LIST_EMPTY(head) ((head)->lh_first == NULL) |
238 |
-+#define LIST_FIRST(head) ((head)->lh_first) |
239 |
-+#define LIST_NEXT(elm, field) ((elm)->field.le_next) |
240 |
-+ |
241 |
-+ |
242 |
-+/* |
243 |
-+ * Singly-linked List definitions. |
244 |
-+ */ |
245 |
-+#define SLIST_HEAD(name, type) \ |
246 |
-+struct name { \ |
247 |
-+ struct type *slh_first; /* first element */ \ |
248 |
-+} |
249 |
-+ |
250 |
-+#define SLIST_HEAD_INITIALIZER(head) \ |
251 |
-+ { NULL } |
252 |
-+ |
253 |
-+#define SLIST_ENTRY(type) \ |
254 |
-+struct { \ |
255 |
-+ struct type *sle_next; /* next element */ \ |
256 |
-+} |
257 |
-+ |
258 |
-+/* |
259 |
-+ * Singly-linked List functions. |
260 |
-+ */ |
261 |
-+#define SLIST_INIT(head) do { \ |
262 |
-+ (head)->slh_first = NULL; \ |
263 |
-+} while (/*CONSTCOND*/0) |
264 |
-+ |
265 |
-+#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ |
266 |
-+ (elm)->field.sle_next = (slistelm)->field.sle_next; \ |
267 |
-+ (slistelm)->field.sle_next = (elm); \ |
268 |
-+} while (/*CONSTCOND*/0) |
269 |
-+ |
270 |
-+#define SLIST_INSERT_HEAD(head, elm, field) do { \ |
271 |
-+ (elm)->field.sle_next = (head)->slh_first; \ |
272 |
-+ (head)->slh_first = (elm); \ |
273 |
-+} while (/*CONSTCOND*/0) |
274 |
-+ |
275 |
-+#define SLIST_REMOVE_HEAD(head, field) do { \ |
276 |
-+ (head)->slh_first = (head)->slh_first->field.sle_next; \ |
277 |
-+} while (/*CONSTCOND*/0) |
278 |
-+ |
279 |
-+#define SLIST_REMOVE(head, elm, type, field) do { \ |
280 |
-+ if ((head)->slh_first == (elm)) { \ |
281 |
-+ SLIST_REMOVE_HEAD((head), field); \ |
282 |
-+ } \ |
283 |
-+ else { \ |
284 |
-+ struct type *curelm = (head)->slh_first; \ |
285 |
-+ while(curelm->field.sle_next != (elm)) \ |
286 |
-+ curelm = curelm->field.sle_next; \ |
287 |
-+ curelm->field.sle_next = \ |
288 |
-+ curelm->field.sle_next->field.sle_next; \ |
289 |
-+ } \ |
290 |
-+} while (/*CONSTCOND*/0) |
291 |
-+ |
292 |
-+#define SLIST_FOREACH(var, head, field) \ |
293 |
-+ for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next) |
294 |
-+ |
295 |
-+/* |
296 |
-+ * Singly-linked List access methods. |
297 |
-+ */ |
298 |
-+#define SLIST_EMPTY(head) ((head)->slh_first == NULL) |
299 |
-+#define SLIST_FIRST(head) ((head)->slh_first) |
300 |
-+#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) |
301 |
-+ |
302 |
-+ |
303 |
-+/* |
304 |
-+ * Singly-linked Tail queue declarations. |
305 |
-+ */ |
306 |
-+#define STAILQ_HEAD(name, type) \ |
307 |
-+struct name { \ |
308 |
-+ struct type *stqh_first; /* first element */ \ |
309 |
-+ struct type **stqh_last; /* addr of last next element */ \ |
310 |
-+} |
311 |
-+ |
312 |
-+#define STAILQ_HEAD_INITIALIZER(head) \ |
313 |
-+ { NULL, &(head).stqh_first } |
314 |
-+ |
315 |
-+#define STAILQ_ENTRY(type) \ |
316 |
-+struct { \ |
317 |
-+ struct type *stqe_next; /* next element */ \ |
318 |
-+} |
319 |
-+ |
320 |
-+/* |
321 |
-+ * Singly-linked Tail queue functions. |
322 |
-+ */ |
323 |
-+#define STAILQ_INIT(head) do { \ |
324 |
-+ (head)->stqh_first = NULL; \ |
325 |
-+ (head)->stqh_last = &(head)->stqh_first; \ |
326 |
-+} while (/*CONSTCOND*/0) |
327 |
-+ |
328 |
-+#define STAILQ_INSERT_HEAD(head, elm, field) do { \ |
329 |
-+ if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \ |
330 |
-+ (head)->stqh_last = &(elm)->field.stqe_next; \ |
331 |
-+ (head)->stqh_first = (elm); \ |
332 |
-+} while (/*CONSTCOND*/0) |
333 |
-+ |
334 |
-+#define STAILQ_INSERT_TAIL(head, elm, field) do { \ |
335 |
-+ (elm)->field.stqe_next = NULL; \ |
336 |
-+ *(head)->stqh_last = (elm); \ |
337 |
-+ (head)->stqh_last = &(elm)->field.stqe_next; \ |
338 |
-+} while (/*CONSTCOND*/0) |
339 |
-+ |
340 |
-+#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ |
341 |
-+ if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ |
342 |
-+ (head)->stqh_last = &(elm)->field.stqe_next; \ |
343 |
-+ (listelm)->field.stqe_next = (elm); \ |
344 |
-+} while (/*CONSTCOND*/0) |
345 |
-+ |
346 |
-+#define STAILQ_REMOVE_HEAD(head, field) do { \ |
347 |
-+ if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \ |
348 |
-+ (head)->stqh_last = &(head)->stqh_first; \ |
349 |
-+} while (/*CONSTCOND*/0) |
350 |
-+ |
351 |
-+#define STAILQ_REMOVE(head, elm, type, field) do { \ |
352 |
-+ if ((head)->stqh_first == (elm)) { \ |
353 |
-+ STAILQ_REMOVE_HEAD((head), field); \ |
354 |
-+ } else { \ |
355 |
-+ struct type *curelm = (head)->stqh_first; \ |
356 |
-+ while (curelm->field.stqe_next != (elm)) \ |
357 |
-+ curelm = curelm->field.stqe_next; \ |
358 |
-+ if ((curelm->field.stqe_next = \ |
359 |
-+ curelm->field.stqe_next->field.stqe_next) == NULL) \ |
360 |
-+ (head)->stqh_last = &(curelm)->field.stqe_next; \ |
361 |
-+ } \ |
362 |
-+} while (/*CONSTCOND*/0) |
363 |
-+ |
364 |
-+#define STAILQ_FOREACH(var, head, field) \ |
365 |
-+ for ((var) = ((head)->stqh_first); \ |
366 |
-+ (var); \ |
367 |
-+ (var) = ((var)->field.stqe_next)) |
368 |
-+ |
369 |
-+#define STAILQ_CONCAT(head1, head2) do { \ |
370 |
-+ if (!STAILQ_EMPTY((head2))) { \ |
371 |
-+ *(head1)->stqh_last = (head2)->stqh_first; \ |
372 |
-+ (head1)->stqh_last = (head2)->stqh_last; \ |
373 |
-+ STAILQ_INIT((head2)); \ |
374 |
-+ } \ |
375 |
-+} while (/*CONSTCOND*/0) |
376 |
-+ |
377 |
-+/* |
378 |
-+ * Singly-linked Tail queue access methods. |
379 |
-+ */ |
380 |
-+#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) |
381 |
-+#define STAILQ_FIRST(head) ((head)->stqh_first) |
382 |
-+#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) |
383 |
-+ |
384 |
-+ |
385 |
-+/* |
386 |
-+ * Simple queue definitions. |
387 |
-+ */ |
388 |
-+#define SIMPLEQ_HEAD(name, type) \ |
389 |
-+struct name { \ |
390 |
-+ struct type *sqh_first; /* first element */ \ |
391 |
-+ struct type **sqh_last; /* addr of last next element */ \ |
392 |
-+} |
393 |
-+ |
394 |
-+#define SIMPLEQ_HEAD_INITIALIZER(head) \ |
395 |
-+ { NULL, &(head).sqh_first } |
396 |
-+ |
397 |
-+#define SIMPLEQ_ENTRY(type) \ |
398 |
-+struct { \ |
399 |
-+ struct type *sqe_next; /* next element */ \ |
400 |
-+} |
401 |
-+ |
402 |
-+/* |
403 |
-+ * Simple queue functions. |
404 |
-+ */ |
405 |
-+#define SIMPLEQ_INIT(head) do { \ |
406 |
-+ (head)->sqh_first = NULL; \ |
407 |
-+ (head)->sqh_last = &(head)->sqh_first; \ |
408 |
-+} while (/*CONSTCOND*/0) |
409 |
-+ |
410 |
-+#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ |
411 |
-+ if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \ |
412 |
-+ (head)->sqh_last = &(elm)->field.sqe_next; \ |
413 |
-+ (head)->sqh_first = (elm); \ |
414 |
-+} while (/*CONSTCOND*/0) |
415 |
-+ |
416 |
-+#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ |
417 |
-+ (elm)->field.sqe_next = NULL; \ |
418 |
-+ *(head)->sqh_last = (elm); \ |
419 |
-+ (head)->sqh_last = &(elm)->field.sqe_next; \ |
420 |
-+} while (/*CONSTCOND*/0) |
421 |
-+ |
422 |
-+#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ |
423 |
-+ if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\ |
424 |
-+ (head)->sqh_last = &(elm)->field.sqe_next; \ |
425 |
-+ (listelm)->field.sqe_next = (elm); \ |
426 |
-+} while (/*CONSTCOND*/0) |
427 |
-+ |
428 |
-+#define SIMPLEQ_REMOVE_HEAD(head, field) do { \ |
429 |
-+ if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \ |
430 |
-+ (head)->sqh_last = &(head)->sqh_first; \ |
431 |
-+} while (/*CONSTCOND*/0) |
432 |
-+ |
433 |
-+#define SIMPLEQ_REMOVE(head, elm, type, field) do { \ |
434 |
-+ if ((head)->sqh_first == (elm)) { \ |
435 |
-+ SIMPLEQ_REMOVE_HEAD((head), field); \ |
436 |
-+ } else { \ |
437 |
-+ struct type *curelm = (head)->sqh_first; \ |
438 |
-+ while (curelm->field.sqe_next != (elm)) \ |
439 |
-+ curelm = curelm->field.sqe_next; \ |
440 |
-+ if ((curelm->field.sqe_next = \ |
441 |
-+ curelm->field.sqe_next->field.sqe_next) == NULL) \ |
442 |
-+ (head)->sqh_last = &(curelm)->field.sqe_next; \ |
443 |
-+ } \ |
444 |
-+} while (/*CONSTCOND*/0) |
445 |
-+ |
446 |
-+#define SIMPLEQ_FOREACH(var, head, field) \ |
447 |
-+ for ((var) = ((head)->sqh_first); \ |
448 |
-+ (var); \ |
449 |
-+ (var) = ((var)->field.sqe_next)) |
450 |
-+ |
451 |
-+/* |
452 |
-+ * Simple queue access methods. |
453 |
-+ */ |
454 |
-+#define SIMPLEQ_EMPTY(head) ((head)->sqh_first == NULL) |
455 |
-+#define SIMPLEQ_FIRST(head) ((head)->sqh_first) |
456 |
-+#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) |
457 |
-+ |
458 |
-+ |
459 |
-+/* |
460 |
-+ * Tail queue definitions. |
461 |
-+ */ |
462 |
-+#define _TAILQ_HEAD(name, type, qual) \ |
463 |
-+struct name { \ |
464 |
-+ qual type *tqh_first; /* first element */ \ |
465 |
-+ qual type *qual *tqh_last; /* addr of last next element */ \ |
466 |
-+} |
467 |
-+#define TAILQ_HEAD(name, type) _TAILQ_HEAD(name, struct type,) |
468 |
-+ |
469 |
-+#define TAILQ_HEAD_INITIALIZER(head) \ |
470 |
-+ { NULL, &(head).tqh_first } |
471 |
-+ |
472 |
-+#define _TAILQ_ENTRY(type, qual) \ |
473 |
-+struct { \ |
474 |
-+ qual type *tqe_next; /* next element */ \ |
475 |
-+ qual type *qual *tqe_prev; /* address of previous next element */\ |
476 |
-+} |
477 |
-+#define TAILQ_ENTRY(type) _TAILQ_ENTRY(struct type,) |
478 |
-+ |
479 |
-+/* |
480 |
-+ * Tail queue functions. |
481 |
-+ */ |
482 |
-+#define TAILQ_INIT(head) do { \ |
483 |
-+ (head)->tqh_first = NULL; \ |
484 |
-+ (head)->tqh_last = &(head)->tqh_first; \ |
485 |
-+} while (/*CONSTCOND*/0) |
486 |
-+ |
487 |
-+#define TAILQ_INSERT_HEAD(head, elm, field) do { \ |
488 |
-+ if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ |
489 |
-+ (head)->tqh_first->field.tqe_prev = \ |
490 |
-+ &(elm)->field.tqe_next; \ |
491 |
-+ else \ |
492 |
-+ (head)->tqh_last = &(elm)->field.tqe_next; \ |
493 |
-+ (head)->tqh_first = (elm); \ |
494 |
-+ (elm)->field.tqe_prev = &(head)->tqh_first; \ |
495 |
-+} while (/*CONSTCOND*/0) |
496 |
-+ |
497 |
-+#define TAILQ_INSERT_TAIL(head, elm, field) do { \ |
498 |
-+ (elm)->field.tqe_next = NULL; \ |
499 |
-+ (elm)->field.tqe_prev = (head)->tqh_last; \ |
500 |
-+ *(head)->tqh_last = (elm); \ |
501 |
-+ (head)->tqh_last = &(elm)->field.tqe_next; \ |
502 |
-+} while (/*CONSTCOND*/0) |
503 |
-+ |
504 |
-+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ |
505 |
-+ if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ |
506 |
-+ (elm)->field.tqe_next->field.tqe_prev = \ |
507 |
-+ &(elm)->field.tqe_next; \ |
508 |
-+ else \ |
509 |
-+ (head)->tqh_last = &(elm)->field.tqe_next; \ |
510 |
-+ (listelm)->field.tqe_next = (elm); \ |
511 |
-+ (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ |
512 |
-+} while (/*CONSTCOND*/0) |
513 |
-+ |
514 |
-+#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ |
515 |
-+ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ |
516 |
-+ (elm)->field.tqe_next = (listelm); \ |
517 |
-+ *(listelm)->field.tqe_prev = (elm); \ |
518 |
-+ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ |
519 |
-+} while (/*CONSTCOND*/0) |
520 |
-+ |
521 |
-+#define TAILQ_REMOVE(head, elm, field) do { \ |
522 |
-+ if (((elm)->field.tqe_next) != NULL) \ |
523 |
-+ (elm)->field.tqe_next->field.tqe_prev = \ |
524 |
-+ (elm)->field.tqe_prev; \ |
525 |
-+ else \ |
526 |
-+ (head)->tqh_last = (elm)->field.tqe_prev; \ |
527 |
-+ *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ |
528 |
-+} while (/*CONSTCOND*/0) |
529 |
-+ |
530 |
-+#define TAILQ_FOREACH(var, head, field) \ |
531 |
-+ for ((var) = ((head)->tqh_first); \ |
532 |
-+ (var); \ |
533 |
-+ (var) = ((var)->field.tqe_next)) |
534 |
-+ |
535 |
-+#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ |
536 |
-+ for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ |
537 |
-+ (var); \ |
538 |
-+ (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last))) |
539 |
-+ |
540 |
-+#define TAILQ_CONCAT(head1, head2, field) do { \ |
541 |
-+ if (!TAILQ_EMPTY(head2)) { \ |
542 |
-+ *(head1)->tqh_last = (head2)->tqh_first; \ |
543 |
-+ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ |
544 |
-+ (head1)->tqh_last = (head2)->tqh_last; \ |
545 |
-+ TAILQ_INIT((head2)); \ |
546 |
-+ } \ |
547 |
-+} while (/*CONSTCOND*/0) |
548 |
-+ |
549 |
-+/* |
550 |
-+ * Tail queue access methods. |
551 |
-+ */ |
552 |
-+#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) |
553 |
-+#define TAILQ_FIRST(head) ((head)->tqh_first) |
554 |
-+#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) |
555 |
-+ |
556 |
-+#define TAILQ_LAST(head, headname) \ |
557 |
-+ (*(((struct headname *)((head)->tqh_last))->tqh_last)) |
558 |
-+#define TAILQ_PREV(elm, headname, field) \ |
559 |
-+ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) |
560 |
-+ |
561 |
-+ |
562 |
-+/* |
563 |
-+ * Circular queue definitions. |
564 |
-+ */ |
565 |
-+#define CIRCLEQ_HEAD(name, type) \ |
566 |
-+struct name { \ |
567 |
-+ struct type *cqh_first; /* first element */ \ |
568 |
-+ struct type *cqh_last; /* last element */ \ |
569 |
-+} |
570 |
-+ |
571 |
-+#define CIRCLEQ_HEAD_INITIALIZER(head) \ |
572 |
-+ { (void *)&head, (void *)&head } |
573 |
-+ |
574 |
-+#define CIRCLEQ_ENTRY(type) \ |
575 |
-+struct { \ |
576 |
-+ struct type *cqe_next; /* next element */ \ |
577 |
-+ struct type *cqe_prev; /* previous element */ \ |
578 |
-+} |
579 |
-+ |
580 |
-+/* |
581 |
-+ * Circular queue functions. |
582 |
-+ */ |
583 |
-+#define CIRCLEQ_INIT(head) do { \ |
584 |
-+ (head)->cqh_first = (void *)(head); \ |
585 |
-+ (head)->cqh_last = (void *)(head); \ |
586 |
-+} while (/*CONSTCOND*/0) |
587 |
-+ |
588 |
-+#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ |
589 |
-+ (elm)->field.cqe_next = (listelm)->field.cqe_next; \ |
590 |
-+ (elm)->field.cqe_prev = (listelm); \ |
591 |
-+ if ((listelm)->field.cqe_next == (void *)(head)) \ |
592 |
-+ (head)->cqh_last = (elm); \ |
593 |
-+ else \ |
594 |
-+ (listelm)->field.cqe_next->field.cqe_prev = (elm); \ |
595 |
-+ (listelm)->field.cqe_next = (elm); \ |
596 |
-+} while (/*CONSTCOND*/0) |
597 |
-+ |
598 |
-+#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ |
599 |
-+ (elm)->field.cqe_next = (listelm); \ |
600 |
-+ (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ |
601 |
-+ if ((listelm)->field.cqe_prev == (void *)(head)) \ |
602 |
-+ (head)->cqh_first = (elm); \ |
603 |
-+ else \ |
604 |
-+ (listelm)->field.cqe_prev->field.cqe_next = (elm); \ |
605 |
-+ (listelm)->field.cqe_prev = (elm); \ |
606 |
-+} while (/*CONSTCOND*/0) |
607 |
-+ |
608 |
-+#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ |
609 |
-+ (elm)->field.cqe_next = (head)->cqh_first; \ |
610 |
-+ (elm)->field.cqe_prev = (void *)(head); \ |
611 |
-+ if ((head)->cqh_last == (void *)(head)) \ |
612 |
-+ (head)->cqh_last = (elm); \ |
613 |
-+ else \ |
614 |
-+ (head)->cqh_first->field.cqe_prev = (elm); \ |
615 |
-+ (head)->cqh_first = (elm); \ |
616 |
-+} while (/*CONSTCOND*/0) |
617 |
-+ |
618 |
-+#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ |
619 |
-+ (elm)->field.cqe_next = (void *)(head); \ |
620 |
-+ (elm)->field.cqe_prev = (head)->cqh_last; \ |
621 |
-+ if ((head)->cqh_first == (void *)(head)) \ |
622 |
-+ (head)->cqh_first = (elm); \ |
623 |
-+ else \ |
624 |
-+ (head)->cqh_last->field.cqe_next = (elm); \ |
625 |
-+ (head)->cqh_last = (elm); \ |
626 |
-+} while (/*CONSTCOND*/0) |
627 |
-+ |
628 |
-+#define CIRCLEQ_REMOVE(head, elm, field) do { \ |
629 |
-+ if ((elm)->field.cqe_next == (void *)(head)) \ |
630 |
-+ (head)->cqh_last = (elm)->field.cqe_prev; \ |
631 |
-+ else \ |
632 |
-+ (elm)->field.cqe_next->field.cqe_prev = \ |
633 |
-+ (elm)->field.cqe_prev; \ |
634 |
-+ if ((elm)->field.cqe_prev == (void *)(head)) \ |
635 |
-+ (head)->cqh_first = (elm)->field.cqe_next; \ |
636 |
-+ else \ |
637 |
-+ (elm)->field.cqe_prev->field.cqe_next = \ |
638 |
-+ (elm)->field.cqe_next; \ |
639 |
-+} while (/*CONSTCOND*/0) |
640 |
-+ |
641 |
-+#define CIRCLEQ_FOREACH(var, head, field) \ |
642 |
-+ for ((var) = ((head)->cqh_first); \ |
643 |
-+ (var) != (const void *)(head); \ |
644 |
-+ (var) = ((var)->field.cqe_next)) |
645 |
-+ |
646 |
-+#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ |
647 |
-+ for ((var) = ((head)->cqh_last); \ |
648 |
-+ (var) != (const void *)(head); \ |
649 |
-+ (var) = ((var)->field.cqe_prev)) |
650 |
-+ |
651 |
-+/* |
652 |
-+ * Circular queue access methods. |
653 |
-+ */ |
654 |
-+#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head)) |
655 |
-+#define CIRCLEQ_FIRST(head) ((head)->cqh_first) |
656 |
-+#define CIRCLEQ_LAST(head) ((head)->cqh_last) |
657 |
-+#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) |
658 |
-+#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) |
659 |
-+ |
660 |
-+#define CIRCLEQ_LOOP_NEXT(head, elm, field) \ |
661 |
-+ (((elm)->field.cqe_next == (void *)(head)) \ |
662 |
-+ ? ((head)->cqh_first) \ |
663 |
-+ : (elm->field.cqe_next)) |
664 |
-+#define CIRCLEQ_LOOP_PREV(head, elm, field) \ |
665 |
-+ (((elm)->field.cqe_prev == (void *)(head)) \ |
666 |
-+ ? ((head)->cqh_last) \ |
667 |
-+ : (elm->field.cqe_prev)) |
668 |
-+ |
669 |
-+#endif /* sys/queue.h */ |
670 |
|
671 |
diff --git a/app-admin/rsyslog/files/8-stable/rsyslog.initd-r1 b/app-admin/rsyslog/files/8-stable/rsyslog.initd-r1 |
672 |
index b0355cf..7d7aa4b 100644 |
673 |
--- a/app-admin/rsyslog/files/8-stable/rsyslog.initd-r1 |
674 |
+++ b/app-admin/rsyslog/files/8-stable/rsyslog.initd-r1 |
675 |
@@ -1,7 +1,6 @@ |
676 |
#!/sbin/openrc-run |
677 |
# Copyright 1999-2015 Gentoo Foundation |
678 |
# Distributed under the terms of the GNU General Public License v2 |
679 |
-# $Id$ |
680 |
|
681 |
RSYSLOG_CONFIGFILE=${RSYSLOG_CONFIGFILE:-"/etc/rsyslog.conf"} |
682 |
RSYSLOG_PIDFILE=${RSYSLOG_PIDFILE:-"/run/rsyslogd.pid"} |
683 |
|
684 |
diff --git a/app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild b/app-admin/rsyslog/rsyslog-8.24.0-r2.ebuild |
685 |
similarity index 98% |
686 |
copy from app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild |
687 |
copy to app-admin/rsyslog/rsyslog-8.24.0-r2.ebuild |
688 |
index 1a86c82..e1c37f8 100644 |
689 |
--- a/app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild |
690 |
+++ b/app-admin/rsyslog/rsyslog-8.24.0-r2.ebuild |
691 |
@@ -45,7 +45,7 @@ else |
692 |
unset _tmp_last_index |
693 |
unset _tmp_suffix |
694 |
else |
695 |
- KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~x86" |
696 |
+ KEYWORDS="amd64 arm ~arm64 hppa x86" |
697 |
fi |
698 |
|
699 |
SRC_URI=" |
700 |
@@ -56,13 +56,12 @@ else |
701 |
PATCHES=( |
702 |
"${FILESDIR}/8-stable/${PN}-8.24.0-fix-tcpflood-without-librelp-r1.patch" |
703 |
"${FILESDIR}/8-stable/50-${PN}-8.18.0-musl-fix.patch" |
704 |
- "${FILESDIR}/8-stable/50-${PN}-8.18.0-musl-imptcp-queue.patch" |
705 |
) |
706 |
fi |
707 |
|
708 |
LICENSE="GPL-3 LGPL-3 Apache-2.0" |
709 |
SLOT="0" |
710 |
-IUSE="dbi debug doc elasticsearch +gcrypt grok jemalloc kafka kerberos libressl mdblookup mongodb mysql normalize omhttpfs" |
711 |
+IUSE="dbi debug doc elasticsearch +gcrypt grok jemalloc kafka kerberos libressl mongodb mysql normalize omhttpfs" |
712 |
IUSE+=" omudpspoof postgres rabbitmq redis relp rfc3195 rfc5424hmac snmp ssl systemd test usertools +uuid zeromq" |
713 |
|
714 |
RDEPEND=" |
715 |
@@ -77,7 +76,6 @@ RDEPEND=" |
716 |
jemalloc? ( >=dev-libs/jemalloc-3.3.1:= ) |
717 |
kafka? ( >=dev-libs/librdkafka-0.9.0.99:= ) |
718 |
kerberos? ( virtual/krb5 ) |
719 |
- mdblookup? ( dev-libs/libmaxminddb:= ) |
720 |
mongodb? ( >=dev-libs/libmongo-client-0.1.4 ) |
721 |
mysql? ( virtual/mysql ) |
722 |
normalize? ( |
723 |
@@ -106,6 +104,7 @@ RDEPEND=" |
724 |
DEPEND="${RDEPEND} |
725 |
>=sys-devel/autoconf-archive-2015.02.24 |
726 |
virtual/pkgconfig |
727 |
+ elibc_musl? ( sys-libs/queue ) |
728 |
test? ( sys-libs/libfaketime )" |
729 |
|
730 |
if [[ ${PV} == "9999" ]]; then |
731 |
@@ -224,7 +223,6 @@ src_configure() { |
732 |
$(use_enable kafka omkafka) |
733 |
$(use_enable kerberos gssapi-krb5) |
734 |
$(use_enable normalize mmnormalize) |
735 |
- $(use_enable mdblookup mmdblookup) |
736 |
$(use_enable grok mmgrok) |
737 |
$(use_enable omhttpfs) |
738 |
$(use_enable omudpspoof) |
739 |
|
740 |
diff --git a/app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild b/app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild |
741 |
index 1a86c82..3187176 100644 |
742 |
--- a/app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild |
743 |
+++ b/app-admin/rsyslog/rsyslog-8.25.0-r2.ebuild |
744 |
@@ -56,7 +56,6 @@ else |
745 |
PATCHES=( |
746 |
"${FILESDIR}/8-stable/${PN}-8.24.0-fix-tcpflood-without-librelp-r1.patch" |
747 |
"${FILESDIR}/8-stable/50-${PN}-8.18.0-musl-fix.patch" |
748 |
- "${FILESDIR}/8-stable/50-${PN}-8.18.0-musl-imptcp-queue.patch" |
749 |
) |
750 |
fi |
751 |
|
752 |
@@ -106,6 +105,7 @@ RDEPEND=" |
753 |
DEPEND="${RDEPEND} |
754 |
>=sys-devel/autoconf-archive-2015.02.24 |
755 |
virtual/pkgconfig |
756 |
+ elibc_musl? ( sys-libs/queue ) |
757 |
test? ( sys-libs/libfaketime )" |
758 |
|
759 |
if [[ ${PV} == "9999" ]]; then |