Compare commits

...

237 Commits

Author SHA1 Message Date
6548ba09f6 Update 2026-01-05 08:07:41 +01:00
aa53729584 Free IPA Client 2026-01-05 07:52:53 +01:00
c729bfcb24 Trahs 2025-12-18 08:51:29 +01:00
34549e9737 Added leaf ports 2025-12-18 08:43:17 +01:00
f7aa855c57 SA-Exim seems to be dead (2006) 2025-12-18 04:32:46 +01:00
3df13746aa No more TCP_WRAPPER 2025-12-18 03:32:55 +01:00
19e7e133d1 Radius fix 2025-12-18 03:29:37 +01:00
6c2e867ab0 almost working 2025-12-18 03:09:47 +01:00
3c7cd52344 Eirik works 2025-12-18 02:09:01 +01:00
8544126ef2 Exim original port 2025-12-18 02:01:07 +01:00
1d39ae8491 Pushed into ports 2025-12-11 06:11:17 +01:00
2592c32254 Remove port revision 2025-12-11 05:23:42 +01:00
108cad4157 3.5.25 2025-12-11 05:22:45 +01:00
82fe3b5fcc Remove go version 2025-12-11 05:21:32 +01:00
0ea4fb2088 Initial port 2025-12-11 05:17:48 +01:00
d790b9ed33 gc() + add patch from Markj 2025-11-12 03:13:37 +01:00
f8dbaa22a0 Port is "automaking" itself 2025-09-17 09:56:33 +02:00
fb9bdce10a 0mp port 2025-09-11 11:56:43 +07:00
ba38a2457f Grrr 2025-09-11 11:56:23 +07:00
afc6047814 D52168 2025-09-11 05:14:52 +02:00
7acb408e7d Samba 4.20 -> 4.22 2025-09-11 05:10:10 +02:00
52d3f86b37 Samba420 2025-09-11 05:09:25 +02:00
45d4e085cc Added kati port 2025-08-27 04:25:34 +02:00
0cf431dc97 Try 2025-08-22 16:26:15 +07:00
7bc33a4aa5 Original py-numpy 2025-08-19 10:44:30 +02:00
bc51ad4da5 Fixed sssd2 2025-08-08 04:20:20 +02:00
f8c2133b44 bump 2025-07-24 04:02:26 +02:00
f014c8afd9 Try a new patch 2025-07-24 04:00:59 +02:00
71e43c341a Use PATCHFILES 2025-07-24 03:42:43 +02:00
7cde189318 not neededwq 2025-07-23 13:14:48 +02:00
d7e134245c Fix the port 2025-07-23 13:14:03 +02:00
fbf86c8f34 Update port before poudriere 2025-07-23 07:18:49 +02:00
93f2480ef0 Update patches and add patchs from commits 4297f4e, ff69dad, 55f74e5
(some of them don't applies correctly)
2025-07-18 07:09:53 +02:00
afb8ac49b7 add www/libaprep2 from porttree 2025-07-18 04:25:11 +02:00
8befa9b010 Removed 2025-07-01 16:26:36 +02:00
cff784a9d4 Test original 2025-06-23 16:25:21 +02:00
73d6aff554 foo 2025-06-23 16:10:02 +02:00
f1eb64b7f5 bison as main dep 2025-06-23 16:09:25 +02:00
abd4351249 net/samba420: added bison dependency 2025-06-23 12:06:32 +02:00
ec7155349f Original port 2025-06-23 12:01:09 +02:00
fd4655d957 Fix 2025-06-16 11:40:21 +02:00
6dab8b2f18 PR 863 2025-06-16 11:36:42 +02:00
ee90a418d6 Fix several CVE: CVE-2024-56171, CVE-2025-24928, CVE-2025-32414 2025-06-13 12:30:26 +02:00
66b22f147f Removed pushed ports. Added libxml2 2025-06-13 11:10:43 +02:00
a181190b3f Cleanup 2025-06-04 15:15:02 +02:00
a2e43778b8 Testing py-salt 2025-05-26 09:46:51 +02:00
88e7ad955a Updated patch 2025-05-22 15:20:44 +02:00
e23dca4a8c Try to add GSSAPI patch 2025-05-22 15:17:30 +02:00
b76a177d9f Current openssh-portable 2025-05-22 15:11:17 +02:00
6ee87e0e92 Better before poudriere 2025-03-27 17:06:53 +01:00
384e9cd3fc Fix sample and other things 2025-03-27 16:49:10 +01:00
f75d65c04c LOCALBASE -> PREFIX 2025-03-27 14:48:23 +01:00
f0d8f5a3f2 Update from portsd 2025-03-27 14:40:13 +01:00
d1739433ef Try to fix net/jose 2025-03-24 17:03:38 +01:00
3b54995a82 Doc 2025-03-17 15:29:13 +01:00
a97e82ec24 Pushed into ports 2025-03-13 14:20:24 +01:00
7e00fb2426 Fix 2025-03-12 14:58:54 +01:00
722d8098dd fix 2025-03-12 08:57:52 +01:00
8b359169a1 update 2025-03-11 15:52:47 +01:00
001885d256 Update 2025-03-11 15:51:58 +01:00
4f4c03701f Fix typo 2025-03-11 13:56:09 +01:00
7c2a94c399 Merge branch 'main' of gitea.home.oav.net:kiwi/klara-ports 2025-03-11 13:38:28 +01:00
aa92ca9f89 Fix Makefile 2025-03-11 13:38:06 +01:00
11ade4f850 Try a fix 2025-03-07 09:59:12 +01:00
412201b193 Update 2025-03-06 17:05:37 +01:00
733f329e12 Try sudo@sssd2 ? 2025-03-06 16:56:47 +01:00
1a69951521 Update 2025-02-20 10:28:00 +01:00
705b4240eb up 2025-02-20 10:26:27 +01:00
c5b8b6ec7c update 2025-02-20 10:23:12 +01:00
8810970ff7 fix plist 2025-02-20 10:21:41 +01:00
5b4804de0e Update 2025-02-20 10:15:18 +01:00
51d45e9bae Update 2025-02-20 10:03:29 +01:00
1aad1427a9 Dix 2025-02-19 15:54:14 +01:00
58e703a9d8 Update 2025-02-19 15:52:07 +01:00
666b94afea Grr 2025-02-19 15:51:02 +01:00
466ed70f74 WTF distname 2025-02-19 15:46:25 +01:00
72a4e6ac76 push 2025-02-19 15:33:31 +01:00
cf12c13935 Removed 2025-02-19 15:30:29 +01:00
b2505c34e4 Update port 2025-02-19 15:29:41 +01:00
c22f73c04d Update 2025-02-07 16:43:54 +01:00
f15e5e297f Whatt? 2025-02-07 15:24:23 +01:00
eeb1275958 plop 2025-02-07 14:46:30 +01:00
7fc6c41cc5 Fix 2025-02-07 14:44:56 +01:00
8eb6b8f05f Fix 2025-02-07 14:43:41 +01:00
446f718b13 pet portclippy 2025-02-07 14:29:04 +01:00
acbaa67d26 Inital port 2025-02-07 14:25:21 +01:00
44b23bafc3 Update 2025-02-07 12:08:57 +01:00
617ee90998 LOCALBASE 2025-02-07 12:00:40 +01:00
db7dae0a62 Pet 2025-02-06 17:27:01 +01:00
0dd1bf2e9c Removed 2025-02-05 15:37:44 +01:00
8cc1cef1fd Removed 2025-02-05 15:36:39 +01:00
e2e1446597 Removed all are in the ports 2025-01-31 17:38:28 +01:00
ce038c3bd9 Update plist 2025-01-24 12:17:19 +01:00
1b6da007e3 Added missing stuff 2025-01-24 10:22:11 +01:00
023a0772a8 fix 2025-01-23 17:14:59 +01:00
0094500a45 Fix dependencies 2025-01-23 17:12:34 +01:00
223ecbfc0f Conflicts 2025-01-23 16:46:02 +01:00
773c992991 Update dependencies 2025-01-23 15:46:22 +01:00
163ad31fce ldb29 2025-01-23 15:40:56 +01:00
49540576e3 ldb28 -> ldb29 2025-01-23 15:34:20 +01:00
f0bf0bf427 tevent 0.16.1 2025-01-23 15:29:03 +01:00
71c418eedf Tevent 0.16.0 2025-01-23 15:26:08 +01:00
405e99c4cc Deps 2025-01-23 15:21:01 +01:00
b037aa6f3c 1.4.2 2025-01-23 15:18:48 +01:00
8d28b1406e Talloc 2025-01-23 15:15:44 +01:00
1724567115 Fix 2025-01-23 15:11:50 +01:00
c6964c5ed7 1.4.10 2025-01-23 15:08:00 +01:00
21bb9220c4 Added database/tdb as tdb1410 2025-01-23 15:05:49 +01:00
e9868dc745 update 2025-01-23 15:03:45 +01:00
218354026d Fix 2025-01-22 17:54:05 +01:00
a1d501ba35 Fix port 2025-01-22 17:53:34 +01:00
f6ff52230b Try samba420 2025-01-20 18:42:30 +01:00
c9e958d235 Old makefile 2025-01-08 16:50:21 +01:00
dc9b59ccc0 Removed security/sssd depend 2025-01-08 16:50:02 +01:00
762783c50c Pushed 2025-01-08 16:38:17 +01:00
98a97ad489 Add new port from Allan 2025-01-03 16:53:31 +01:00
6b32dda5a7 Test flavor 2024-12-19 11:38:10 +01:00
31eeafb011 fix 2024-12-17 17:31:07 +01:00
1214291293 test 2024-12-17 17:25:31 +01:00
26a1a2f707 fix2 2024-12-17 16:55:21 +01:00
2c9e0206a0 original 2024-12-17 16:36:57 +01:00
a3ca7ddab7 Fix 2024-12-17 10:22:15 +01:00
337fe33f3a Fix 2024-12-17 09:56:46 +01:00
bbae96f0cd fix 2024-12-17 09:43:32 +01:00
3f8d05a7cb Fix 2024-12-17 09:42:56 +01:00
45b083b50f Fix 2024-12-17 09:42:38 +01:00
cbfe736462 Fix recu 2024-12-17 09:39:38 +01:00
f1d6d84c72 Better FLAVORS 2024-12-16 16:46:41 +01:00
ec7fea8ffb Adding sssd flavor 2024-12-16 13:02:16 +01:00
3010baafd3 Add Flavor 2024-12-16 11:24:15 +01:00
bd64ef4f7b Flavors 2024-12-16 10:28:48 +01:00
17b695b587 Verisign stuff 2024-12-16 09:43:03 +01:00
2b0788e34d Renamed openssh-portable
Added base sudo
2024-11-15 15:24:21 +01:00
15130ca2a3 Commited 2024-10-24 15:03:56 +02:00
dd20e2937d Openssh is back 2024-10-23 15:20:21 +02:00
f3b44ec049 Force 2024-10-23 14:28:37 +02:00
be79208c62 Changes 2024-10-23 14:26:52 +02:00
d19048dda5 Updated Makefile 2024-10-23 13:37:35 +02:00
04351943b1 Fix 2024-10-23 11:27:54 +02:00
da062311d4 Fix 2024-10-23 11:24:19 +02:00
dfe76d00db Try this fix 2024-10-22 16:05:02 +02:00
33a9a96daa Fix ? 2024-10-22 15:34:43 +02:00
ecbde3039c Fix 2024-10-22 11:01:00 +02:00
b41c3ca75c foo 2024-10-22 11:00:42 +02:00
3581eca1c8 Fix 2024-10-22 09:50:33 +02:00
b8246220b5 Update 2024-10-22 09:49:21 +02:00
4361803f50 Fix? 2024-10-21 18:02:53 +02:00
66920fdd49 Fix 2024-10-21 17:03:53 +02:00
7aa22724d4 Fix distinfo 2024-10-21 17:01:15 +02:00
89aa74043f etcd35 2024-10-21 16:14:00 +02:00
c11cceda2f Not needed anymore -> commited 2024-10-17 14:22:50 +02:00
783e621f59 Fix before bugzilla 2024-10-14 10:46:26 +02:00
166635ae5c Ca doit passer 2024-10-14 10:37:51 +02:00
77fa23b088 Trye 2024-10-14 10:36:55 +02:00
051937ad75 Fix 2024-10-14 10:29:44 +02:00
2b5496a20f Fix 2024-10-14 10:27:19 +02:00
acdcb76e31 Try flavors 2024-10-14 10:17:43 +02:00
2fcf94a249 Added NOOPENMP option 2024-10-11 14:37:34 +02:00
6265e3ee84 Added rpm4 original port 2024-10-11 11:20:25 +02:00
7c770cfb90 Fix dep 2024-09-27 17:42:04 +02:00
06b929466d fix semantic version 2024-09-27 16:27:11 +02:00
4447036632 Fix 2024-09-27 16:25:52 +02:00
de01928a4e First port 2024-09-26 15:57:50 +02:00
ca11902c51 Push the original port from 2020Q2 2024-09-26 15:28:26 +02:00
81b70f3a5e Added PR #723 2024-09-09 11:17:40 +02:00
53b60cbc27 Import check_mk_agent from ports 2024-09-09 11:15:45 +02:00
cdfff2f06d Remove relayd + samba416 uncessery ports 2024-09-04 16:26:02 +02:00
f6bac9b95f Removed 2024-09-04 16:25:31 +02:00
490ebed1a2 math/blis: not needed anymore 2024-09-04 16:24:47 +02:00
e9dd66620e PLIST_SUB 2024-09-04 15:14:08 +02:00
71cec86c27 added DISTVERSION 2024-09-04 14:58:36 +02:00
5ecc266da9 da-fuck? 2024-09-04 13:59:58 +02:00
2887b2bc41 fix mython 2024-09-04 13:39:29 +02:00
7b4ab6f642 Fix 2024-09-04 11:35:19 +02:00
8d5a764658 Forgotten 2024-09-04 09:12:46 +02:00
a77f5f743f Forgot 2024-09-04 09:02:42 +02:00
403ae864c8 Missing patch 2024-09-03 16:42:54 +02:00
b15b4cb00e Update freeipa-client 2024-09-03 14:14:10 +02:00
611a04f2fb Fix ptaches 2024-08-26 12:02:49 +02:00
276c36772e Fix 2024-08-26 12:00:42 +02:00
09cce557a8 Bump version 2024-08-26 11:46:30 +02:00
39b1225600 Patch 2024-08-26 11:45:17 +02:00
11d2141e99 Removed 2024-08-26 11:39:35 +02:00
fe885d33af Fix 2024-08-26 11:38:46 +02:00
a324b16114 Sync with port 2024-08-26 11:14:24 +02:00
f9446ae2bc Don't need this patch anymore 2024-08-26 10:50:10 +02:00
89ed0f4b86 sssd2 is now merged 2024-08-26 10:47:57 +02:00
3dbc00e6a9 openssh-portable is update by 0mp 2024-08-26 10:47:29 +02:00
a640d13601 netbox-agent is in the ports 2024-08-26 10:46:42 +02:00
6a8811e740 revert e003ad43ec
Need this
2024-08-26 08:45:36 +00:00
690eb31c22 Remove GH tag 2024-08-22 14:14:21 +02:00
9accb199e5 Fixes 2024-08-22 13:43:17 +02:00
bf9444e0b1 mv net/netbox-agent net-mgmt/netbox-agent 2024-08-22 13:39:03 +02:00
6de0037431 Fix 2024-08-22 12:07:34 +02:00
a9a64115e1 dep 2024-08-21 17:13:57 +02:00
699f92e91a Added deps 2024-08-21 14:55:33 +02:00
39454779ee Fix Depends 2024-08-21 14:38:53 +02:00
17afda2eca fix 2024-08-21 13:37:53 +02:00
d6e4b56d95 Fix 2024-08-21 13:36:04 +02:00
41ef715b17 netbox agent 2024-08-21 13:33:32 +02:00
e003ad43ec Not needed 2024-07-29 09:49:29 +02:00
d6eda6be3c Commited into porttree not needed 2024-06-27 10:34:48 +02:00
365c48dfcf Fix 2024-06-26 09:51:05 +02:00
631009dff7 Update daniel's port 2024-06-26 09:40:02 +02:00
cb90af48a0 Added Daniel initial port 2024-06-26 09:34:14 +02:00
fbac8f4d26 Conflict version with one on the ports 2024-06-25 14:06:25 +02:00
b446e5eae2 Try MarkJ patch 2024-06-25 14:04:13 +02:00
3ec7667371 Test again 2024-06-25 14:01:37 +02:00
016c14dd0a Tmp 2024-06-25 09:57:57 +02:00
b9a8122aad Not needed 2024-06-17 09:42:06 +02:00
734ab5e5e9 Support for hashed mode to poudriere 2024-06-05 15:24:04 +02:00
cdd5fb7b20 Fix 2024-05-31 15:44:20 +02:00
383e9d32ef Not needed anymore 2024-05-31 15:43:28 +02:00
ac8574249e Fix distinfo 2024-05-30 17:38:25 +02:00
6348dc22a1 Merge branch 'main' of gitea.home.oav.net:kiwi/klara-ports 2024-05-30 17:36:49 +02:00
c4ef579e6f Fix distinfo 2024-05-30 17:35:45 +02:00
13d592d371 Fix Python AGAIN 2024-05-30 16:28:01 +02:00
884f8e1f33 update 2024-05-30 13:32:23 +02:00
bc0c00e1be update 2024-05-30 13:29:42 +02:00
c192ddb5c0 Fix ldb25 2024-05-30 11:54:09 +02:00
2f48f28d81 Fix again 2024-05-30 11:53:28 +02:00
b9efabee8a fix 2024-05-30 10:50:23 +02:00
0a6f821569 Fix? 2024-05-30 10:43:40 +02:00
311f8f2bd7 Fix? 2024-05-30 10:36:52 +02:00
aa68c42e99 Update 2024-05-29 09:25:02 +02:00
ea504107f9 Removed : project aborted 2024-05-27 12:02:37 +02:00
056469cb33 Fix openssh portable 2024-05-27 12:01:27 +02:00
4d8fda1abc Pushed into ports 2024-05-27 09:35:30 +02:00
e2fb7adf65 Fix Linux uid 0 2024-05-22 09:30:21 +02:00
d34bff2120 Merge MarkJ patches 2024-05-17 17:28:54 +02:00
79a5671483 bump 2024-05-17 16:46:30 +02:00
90c933683d plop 2024-05-17 16:23:34 +02:00
c2ac356ba8 Try2 2024-05-17 16:23:06 +02:00
ebc1fc94b8 Patch for Mark J 2024-05-17 11:06:31 +02:00
6519deb349 bump 2024-05-06 16:43:29 +02:00
6dbf246d78 Back to pcre2 2024-05-06 16:07:33 +02:00
ce6c4ac196 pcre2 -> pcre 2024-05-06 15:51:27 +02:00
476 changed files with 3563 additions and 81807 deletions

View File

@ -1,208 +0,0 @@
# Created by: Mahdi Mokhtari <mokhi64@gmail.com>
# $FreeBSD: head/databases/mysql80-server/Makefile 553940 2020-11-03 00:56:26Z jbeich $
PORTNAME?= mysqlwsrep
PORTVERSION= 8.0.21
DISTVERSIONPREFIX?= wsrep_
DISTVERSIONSUFFIX?= -26.4
PORTREVISION?= 1
CATEGORIES= databases
MASTER_SITES= https://releases.galeracluster.com/mysql-wsrep-8.0/source/
PKGNAMESUFFIX?= 80-server
DISTNAME= mysql-wsrep-${PORTVERSION}${DISTVERSIONSUFFIX}
MAINTAINER= joneum@FreeBSD.org
COMMENT?= Multithreaded SQL database (server)
LICENSE= GPLv2
WRKSRC= ${WRKDIR}/mysql-wsrep-${PORTVERSION}${DISTVERSIONSUFFIX}
SLAVEDIRS= databases/mysql80-client
USES= bison:build cmake:noninja compiler:c++14-lang cpe \
groff:run libedit localbase ncurses perl5 pkgconfig shebangfix ssl
USE_CXXSTD= c++14
USE_PERL5= run
MY_DBDIR= /var/db/mysql
MY_SECDIR= /var/db/mysql_secure
MY_TMPDIR= /var/db/mysql_tmpdir
LIB_DEPENDS+= libcurl.so:ftp/curl \
libevent.so:devel/libevent \
libicutu.so:devel/icu \
liblz4.so:archivers/liblz4 \
libzstd.so:archivers/zstd \
libprotobuf.so:devel/protobuf \
${LIB_DEPENDS_${ARCH}}
LIB_DEPENDS_aarch64= libunwind.so:devel/libunwind
LIB_DEPENDS_amd64= libunwind.so:devel/libunwind
LIB_DEPENDS_i386= libunwind.so:devel/libunwind
LIB_DEPENDS_powerpc64= libunwind.so:devel/libunwind
LIB_DEPENDS_powerpc64le= libunwind.so:devel/libunwind
BUILD_DEPENDS= liblz4>0:archivers/liblz4 \
${BUILD_DEPENDS_${ARCH}}
BUILD_DEPENDS_aarch64= libunwind>0:devel/libunwind
BUILD_DEPENDS_amd64= libunwind>0:devel/libunwind
BUILD_DEPENDS_i386= libunwind>0:devel/libunwind
BUILD_DEPENDS_powerpc64= libunwind>0:devel/libunwind
BUILD_DEPENDS_powerpc64le= libunwind>0:devel/libunwind
CMAKE_BUILD_TYPE= Release
CFLAGS+= -fPIC
CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \
-DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \
-DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \
-DINSTALL_DOCDIR="share/doc/mysql" \
-DINSTALL_DOCREADMEDIR="share/doc/mysql" \
-DINSTALL_INCLUDEDIR="include/mysql" \
-DINSTALL_INFODIR="${INFO_PATH}" \
-DINSTALL_LIBDIR="lib/mysql" \
-DINSTALL_MANDIR="man" \
-DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \
-DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \
-DINSTALL_MYSQLSHAREDIR="share/mysql" \
-DINSTALL_MYSQLTESTDIR="" \
-DINSTALL_PLUGINDIR="lib/mysql/plugin" \
-DINSTALL_SBINDIR="libexec" \
-DINSTALL_SCRIPTDIR="bin" \
-DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \
-DINSTALL_SHAREDIR="share" \
-DINSTALL_SUPPORTFILESDIR="share/mysql" \
-DMYSQL_KEYRINGDIR="${ETCDIR}/keyring" \
-DWITH_BOOST="${WRKSRC}/boost" \
-DWITH_SYSTEM_LIBS=1 \
-DWITH_EDITLINE=system \
-DWITH_LIBEVENT=system \
-DWITH_LZ4=system \
-DWITH_ICU=system \
-DWITH_CURL=system \
-DWITH_ZLIB=system \
-DWITH_ZSTD=system \
-DWITH_PROTOBUF=system \
-DWITH_SSL=${OPENSSLBASE} \
-DBUILD_BUNDLED_ZLIB=0 \
-DBUILD_BUNDLED_LZ4=0
# The Mroonga, RocksDB, and TokuDB storage engines are disabled.
# Mroonga is only buildable on little endian archs.
# RocksDB is only buildable on little endian archs and requires POSIX timers.
# TokuDB is only buildable on 64-bit little endian archs.
CMAKE_ARGS+= -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITHOUT_ROCKSDB_STORAGE_ENGINE=1 \
-DWITHOUT_TOKUDB_STORAGE_ENGINE=1
SHEBANG_FILES= scripts/*.pl* scripts/*.sh
.ifdef USE_MYSQL
IGNORE= You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again.
.endif
SUB_LIST= MY_DBDIR=${MY_DBDIR} \
MY_SECDIR=${MY_SECDIR} \
MY_TMPDIR=${MY_TMPDIR}
PLIST_SUB= MY_DBDIR=${MY_DBDIR} \
MY_SECDIR=${MY_SECDIR} \
MY_TMPDIR=${MY_TMPDIR} \
MYSQL80_LIBVER=${MYSQL80_LIBVER}
# MySQL-Server part
.if !defined(CLIENT_ONLY)
USES+= mysql:80
CONFLICTS_INSTALL= mysql8[1-9]-server-* \
mysql[0-79][0-9]-server-* \
mysqlwsrep* \
mariadb[0-9][0-9]-server-* \
percona[0-9][0-9]-server-*
USE_RC_SUBR= mysql-server
SUB_FILES= my.cnf.sample pkg-message
USERS= mysql
GROUPS= mysql
USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin
MMAN1= ibd2sdi.1 innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1 \
myisamlog.1 myisampack.1 mysql_secure_installation.1 mysql_ssl_rsa_setup.1 \
mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql.server.1 mysqldumpslow.1 mysqld_multi.1 \
mysqld_safe.1 mysqlrouter_passwd.1 mysqlrouter_plugin_info.1 mysqlrouter.1
MMAN8= mysqld.8
CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON"
CMAKE_ARGS+= -DWITHOUT_CLIENTLIBS="ON"
OPTIONS_GROUP= STORAGE
OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA
OPTIONS_SUB= YES
STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server)
ARCHIVE_DESC= Compile "Archive Storage" statically in server
BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server
EXAMPLE_DESC= Compile "Example Storage" statically in server
FEDERATED_DESC= Compile "Federated Storage" statically in server
INNOBASE_DESC= Compile "InnoDB Storage" statically in server
PARTITION_DESC= Compile "Partitioning support Storage" statically in server
PERFSCHEMA_DESC= Compile "Performance Schema Storage" statically in server
ARCHIVE_CMAKE_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1
BLACKHOLE_CMAKE_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1
EXAMPLE_CMAKE_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1
FEDERATED_CMAKE_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1
INNOBASE_CMAKE_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1
PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1
PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
OPTIONS_GROUP+= FEATURES
OPTIONS_GROUP_FEATURES= PERFSCHM
FEATURES_DESC= Default features knobs
PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage)
OPTIONS_DEFAULT+= PERFSCHM
PERFSCHM_SUB_LIST+= PERFSCHEMRC=""
PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema"
FEDERATED_SUB_LIST+= FEDER="--federated"
FEDERATED_SUB_LIST_OFF+= FEDER=""
.endif
.include <bsd.port.options.mk>
# Since 8.0.20 release innodb engine uses new memory alligned allocator
# which is broken on i386 due to different size of types and caused a
# 'static_assert(alignof(T) <= alignof(std::max_align_t))' error
.if ${ARCH} == i386
CMAKE_ARGS+= -DDISABLE_PSI_MEMORY=1
.endif
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200057
SUB_LIST+= LEGACY_LIMITS="@comment " MODERN_LIMITS=""
.else
SUB_LIST+= LEGACY_LIMITS="" MODERN_LIMITS="@comment "
.endif
.include <bsd.port.pre.mk>
.if ${CHOSEN_COMPILER_TYPE} == clang && ${OPSYS} == FreeBSD && ${OSVERSION} >= 1300109
BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}
CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT}
.endif
post-extract:
@${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h
.if !defined(CLIENT_ONLY)
post-install:
${MKDIR} ${STAGEDIR}${ETCDIR}
${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample
${MKDIR} ${STAGEDIR}${ETCDIR}/keyring
${MKDIR} ${STAGEDIR}${MY_SECDIR}
${MKDIR} ${STAGEDIR}${MY_TMPDIR}
.endif
.include <bsd.port.post.mk>

View File

@ -1,3 +0,0 @@
TIMESTAMP = 1608572785
SHA256 (mysql-wsrep-8.0.21-26.4.tar.gz) = e367b0545dc30aa119a22628e0c3a3f7a469399148800621968dea066c1b33e2
SIZE (mysql-wsrep-8.0.21-26.4.tar.gz) = 285710964

View File

@ -1,12 +0,0 @@
--- config.h.cmake.orig 2014-12-05 16:24:02 UTC
+++ config.h.cmake
@@ -151,7 +151,8 @@
#cmakedefine HAVE_FESETROUND 1
#cmakedefine HAVE_FINITE 1
#cmakedefine HAVE_FP_EXCEPT 1
-#cmakedefine HAVE_FPSETMASK 1
+#cmakedefine HAVE_FPSETMASK 0
+#cmakedefine HAVE_FEDISABLEEXCEPT 1
#cmakedefine HAVE_FSEEKO 1
#cmakedefine HAVE_FSYNC 1
#cmakedefine HAVE_FTIME 1

View File

@ -1,62 +0,0 @@
# $FreeBSD: head/databases/mysql80-server/files/my.cnf.sample.in 469734 2018-05-12 15:35:25Z mmokhi $
[client]
port = 3306
socket = /tmp/mysql.sock
[mysql]
prompt = \u@\h [\d]>\_
no_auto_rehash
[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
bind-address = 127.0.0.1
basedir = %%PREFIX%%
datadir = %%MY_DBDIR%%
tmpdir = %%MY_TMPDIR%%
slave-load-tmpdir = %%MY_TMPDIR%%
secure-file-priv = %%MY_SECDIR%%
log-bin = mysql-bin
log-output = TABLE
master-info-repository = TABLE
relay-log-info-repository = TABLE
relay-log-recovery = 1
slow-query-log = 1
server-id = 1
sync_binlog = 1
sync_relay_log = 1
binlog_cache_size = 16M
expire_logs_days = 30
default_password_lifetime = 0
enforce-gtid-consistency = 1
gtid-mode = ON
safe-user-create = 1
lower_case_table_names = 1
explicit-defaults-for-timestamp = 1
myisam-recover-options = BACKUP,FORCE
open_files_limit = 32768
table_open_cache = 16384
table_definition_cache = 8192
net_retry_count = 16384
key_buffer_size = 256M
max_allowed_packet = 64M
long_query_time = 0.5
innodb_buffer_pool_size = 1G
innodb_data_home_dir = %%MY_DBDIR%%
innodb_log_group_home_dir = %%MY_DBDIR%%
innodb_data_file_path = ibdata1:128M:autoextend
innodb_temp_data_file_path = ibtmp1:128M:autoextend
innodb_flush_method = O_DIRECT
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_autoinc_lock_mode = 2
skip-symbolic-links
[mysqldump]
max_allowed_packet = 256M
quote_names
quick

View File

@ -1,91 +0,0 @@
#!/bin/sh
#
# $FreeBSD: head/databases/mysql80-server/files/mysql-server.in 466508 2018-04-04 21:01:28Z mmokhi $
#
# PROVIDE: mysql
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable mysql:
# mysql_enable (bool): Set to "NO" by default.
# Set it to "YES" to enable MySQL.
%%LEGACY_LIMITS%%# mysql_limits (bool): Set to "NO" by default.
%%LEGACY_LIMITS%%# Set it to yes to run `limits -e -U mysql`
%%LEGACY_LIMITS%%# just before mysql starts.
# mysql_dbdir (str): Default to "%%MY_DBDIR%%"
# Base database directory.
# mysql_confdir (str): Default to "%%ETCDIR%%"
# Base configuration directory.
# mysql_optfile (str): Server-specific option file.
# Set it in the rc.conf or default behaviour of
# `mysqld_safe` itself, will be picking
# ${mysql_confdir}/my.cnf if it exists.
# mysql_pidfile (str): Custum PID file path and name.
# Default to "${mysql_dbdir}/${hostname}.pid".
# mysql_args (str): Custom additional arguments to be passed
# to mysqld_safe (default empty).
#
. /etc/rc.subr
name="mysql"
rcvar=mysql_enable
load_rc_config $name
: ${mysql_enable="NO"}
%%LEGACY_LIMITS%%: ${mysql_limits="NO"}
: ${mysql_dbdir="%%MY_DBDIR%%"}
: ${mysql_confdir="%%ETCDIR%%"}
if [ -f "${mysql_confdir}/my.cnf" ]; then
: ${mysql_optfile="${mysql_confdir}/my.cnf"}
elif [ -f "${mysql_dbdir}/my.cnf" ]; then
: ${mysql_optfile="${mysql_dbdir}/my.cnf"}
fi
if [ ! -z "${mysql_optfile}" ]; then
mysql_extra="--defaults-extra-file=${mysql_optfile}"
fi
mysql_user="mysql"
%%LEGACY_LIMITS%%mysql_limits_args="-e -U ${mysql_user}"
: ${hostname:=`/bin/hostname`}
pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"}
command="/usr/sbin/daemon"
command_args="-c -f %%PREFIX%%/bin/mysqld_safe ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%"
procname="%%PREFIX%%/libexec/mysqld"
start_precmd="${name}_prestart"
start_postcmd="${name}_poststart"
mysqld_init="${procname}"
mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}"
mysql_create_auth_tables()
{
eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null
}
mysql_prestart()
{
if [ ! -d "${mysql_dbdir}/mysql/." ]; then
mysql_create_auth_tables || return 1
fi
%%LEGACY_LIMITS%% if checkyesno mysql_limits; then
%%LEGACY_LIMITS%% eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null
%%LEGACY_LIMITS%% else
%%LEGACY_LIMITS%% return 0
%%LEGACY_LIMITS%% fi
%%MODERN_LIMITS%% return 0
}
mysql_poststart()
{
local timeout=15
while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do
timeout=$(( timeout - 1 ))
sleep 1
done
return 0
}
run_rc_command "$1"

View File

@ -1,76 +0,0 @@
--- CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ CMakeLists.txt
@@ -1417,10 +1417,10 @@ IF(WITH_AUTHENTICATION_LDAP)
ENDIF()
ENDIF()
-# Add system/bundled editline.
-MYSQL_CHECK_EDITLINE()
# Add libevent
-MYSQL_CHECK_LIBEVENT()
+IF(NOT WITHOUT_SERVER)
+ MYSQL_CHECK_LIBEVENT()
+ENDIF()
# Add lz4 library
MYSQL_CHECK_LZ4()
# Add icu library
@@ -1520,7 +1520,9 @@ IF(WITH_UNIT_TESTS)
INCLUDE(googletest)
ENDIF()
-ADD_SUBDIRECTORY(include)
+IF(NOT WITHOUT_CLIENTLIBS)
+ ADD_SUBDIRECTORY(include)
+ENDIF(NOT WITHOUT_CLIENTLIBS)
ADD_SUBDIRECTORY(strings)
ADD_SUBDIRECTORY(vio)
ADD_SUBDIRECTORY(mysys)
@@ -1562,12 +1564,17 @@ IF(WITH_UNIT_TESTS)
ADD_SUBDIRECTORY(unittest/mytap/t)
ENDIF()
-ADD_SUBDIRECTORY(client)
+IF(NOT WITHOUT_TOOLS)
+ # Add system/bundled editline
+ MYSQL_CHECK_EDITLINE()
+ ADD_SUBDIRECTORY(client)
+ENDIF(NOT WITHOUT_TOOLS)
+
ADD_SUBDIRECTORY(utilities)
-ADD_SUBDIRECTORY(share)
ADD_SUBDIRECTORY(libservices)
IF(NOT WITHOUT_SERVER)
+ ADD_SUBDIRECTORY(share)
ADD_SUBDIRECTORY(testclients)
ADD_SUBDIRECTORY(sql)
ENDIF()
@@ -1590,11 +1597,11 @@ ENDIF()
# scripts/mysql_config depends on client and server targets loaded above.
# It is referenced by some of the directories below, so we insert it here.
ADD_SUBDIRECTORY(scripts)
+ADD_SUBDIRECTORY(support-files)
IF(NOT WITHOUT_SERVER)
ADD_SUBDIRECTORY(mysql-test)
ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess)
- ADD_SUBDIRECTORY(support-files)
IF(WITH_INTERNAL)
ADD_SUBDIRECTORY(internal)
ENDIF()
@@ -1703,6 +1710,7 @@ IF(PACK_SEPARATE_COMPONENTS)
SET(CPACK_COMPONENTS_GROUPING IGNORE)
ENDIF()
+IF(FALSE)
IF(UNIX)
INSTALL(FILES
Docs/mysql.info
@@ -1737,6 +1745,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM")
PATTERN "sp-imp-spec.txt" EXCLUDE
PATTERN "README.build" EXCLUDE
)
+ENDIF()
ENDIF()
# Now that we're done with all ADD_SUBDIRECTORY and thus all feature tests,

View File

@ -1,76 +0,0 @@
--- client/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ client/CMakeLists.txt
@@ -23,8 +23,11 @@
## Subdirectory with common client code.
ADD_SUBDIRECTORY(base)
## Subdirectory for mysqlpump code.
+IF(WITHOUT_SERVER)
ADD_SUBDIRECTORY(dump)
+ENDIF()
+IF(NOT WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(mysql
${CMAKE_SOURCE_DIR}/sql-common/net_ns.cc
completion_hash.cc
@@ -33,6 +36,7 @@ MYSQL_ADD_EXECUTABLE(mysql
readline.cc
LINK_LIBRARIES mysqlclient client_base ${EDITLINE_LIBRARY}
)
+ENDIF()
IF(NOT WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysql_upgrade
@@ -48,6 +52,7 @@ IF(SOLARIS_SPARC AND CMAKE_BUILD_TYPE_UPPER STREQUAL "
)
ENDIF()
+IF(NOT WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysqltest
mysqltest.cc
mysqltest/error_names.cc
@@ -63,6 +68,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest
ENABLE_EXPORTS
LINK_LIBRARIES mysqlclient
)
+ENDIF()
+
+IF(WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysqlcheck
check/mysqlcheck.cc
check/mysqlcheck_core.cc
@@ -80,6 +88,7 @@ MYSQL_ADD_EXECUTABLE(mysqlshow
mysqlshow.cc
LINK_LIBRARIES mysqlclient
)
+
MYSQL_ADD_EXECUTABLE(mysqlbinlog
mysqlbinlog.cc
${CMAKE_SOURCE_DIR}/sql/json_binary.cc
@@ -104,7 +113,9 @@ MYSQL_ADD_EXECUTABLE(mysqlbinlog
TARGET_COMPILE_DEFINITIONS(mysqlbinlog PRIVATE DISABLE_PSI_MUTEX)
TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE_SOURCE_DIR}/sql)
+ENDIF()
+IF(WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysqladmin
mysqladmin.cc
LINK_LIBRARIES mysqlclient
@@ -117,6 +128,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor
mysql_config_editor.cc
LINK_LIBRARIES mysqlclient
)
+ENDIF()
+
+IF(NOT WITHOUT_SERVER)
MYSQL_ADD_EXECUTABLE(mysql_secure_installation
mysql_secure_installation.cc
LINK_LIBRARIES mysqlclient
@@ -127,6 +141,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup
path.cc
LINK_LIBRARIES mysys
)
+ENDIF()
# "WIN32" also covers 64 bit. "echo" is used in some files below "mysql-test/".
IF(WIN32)

View File

@ -1,95 +0,0 @@
--- cmake/install_layout.cmake.orig 2019-12-09 19:53:17 UTC
+++ cmake/install_layout.cmake
@@ -41,6 +41,10 @@
# Build with prefix=/usr/local/mysql, create tarball with install prefix="."
# and relative links.
#
+# FREEBSD
+# Build with prefix=/usr/local, create tarball with install prefix="."
+# and relative links.
+#
# To force a directory layout, use -DINSTALL_LAYOUT=<layout>.
#
# The default is STANDALONE.
@@ -80,7 +84,7 @@ IF(NOT INSTALL_LAYOUT)
ENDIF()
SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}"
- CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, RPM, DEB, SVR4"
+ CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, FREEBSD, RPM, DEB, SVR4"
)
IF(UNIX)
@@ -98,7 +102,7 @@ IF(UNIX)
CACHE PATH "install prefix" FORCE)
ENDIF()
SET(VALID_INSTALL_LAYOUTS
- "RPM" "DEB" "SVR4" "TARGZ" "STANDALONE")
+ "RPM" "DEB" "SVR4" "TARGZ" "FREEBSD" "STANDALONE")
LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" ind)
IF(ind EQUAL -1)
MESSAGE(FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT}."
@@ -167,6 +171,32 @@ SET(INSTALL_MYSQLKEYRINGDIR_STANDALONE "keyring")
SET(INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_file_priv_path})
#
+# FREEBSD layout
+#
+SET(INSTALL_BINDIR_FREEBSD "bin")
+SET(INSTALL_SBINDIR_FREEBSD "bin")
+#
+SET(INSTALL_LIBDIR_FREEBSD "lib")
+SET(INSTALL_PRIV_LIBDIR_FREEBSD "lib/private")
+SET(INSTALL_PLUGINDIR_FREEBSD "lib/plugin")
+#
+SET(INSTALL_INCLUDEDIR_FREEBSD "include")
+#
+SET(INSTALL_DOCDIR_FREEBSD "docs")
+SET(INSTALL_DOCREADMEDIR_FREEBSD ".")
+SET(INSTALL_MANDIR_FREEBSD "man")
+SET(INSTALL_INFODIR_FREEBSD "docs")
+#
+SET(INSTALL_SHAREDIR_FREEBSD "share")
+SET(INSTALL_MYSQLSHAREDIR_FREEBSD "share")
+SET(INSTALL_MYSQLTESTDIR_FREEBSD "mysql-test")
+SET(INSTALL_SUPPORTFILESDIR_FREEBSD "support-files")
+#
+SET(INSTALL_MYSQLDATADIR_FREEBSD "data")
+SET(INSTALL_MYSQLKEYRINGDIR_FREEBSD "keyring")
+SET(INSTALL_SECURE_FILE_PRIVDIR_FREEBSD ${secure_file_priv_path})
+
+#
# TARGZ layout
#
SET(INSTALL_BINDIR_TARGZ "bin")
@@ -361,7 +391,7 @@ ENDIF()
SET(ROUTER_INSTALL_LAYOUT "${DEFAULT_ROUTER_INSTALL_LAYOUT}"
CACHE
STRING
- "Installation directory layout. Options are: STANDALONE RPM DEB SVR4 TARGZ")
+ "Installation directory layout. Options are: STANDALONE FREEBSD RPM DEB SVR4 TARGZ")
# If we are shared STANDALONE with the the server, we shouldn't write
# into the server's data/ as that would create a "schemadir" in
@@ -405,6 +435,21 @@ FOREACH(var
)
SET(ROUTER_INSTALL_${var}DIR_TARGZ ${ROUTER_INSTALL_${var}DIR_STANDALONE})
ENDFOREACH()
+
+#
+# FreeBSD layout
+#
+SET(ROUTER_INSTALL_CONFIGDIR_FREEBSD "/usr/local/etc/mysqlrouter")
+SET(ROUTER_INSTALL_DATADIR_FREEBSD "/var/db/mysqlrouter")
+SET(ROUTER_INSTALL_LOGDIR_FREEBSD "/var/log/mysqlrouter")
+SET(ROUTER_INSTALL_RUNTIMEDIR_FREEBSD "/var/run/mysqlrouter")
+
+SET(ROUTER_INSTALL_BINDIR_FREEBSD "bin")
+SET(ROUTER_INSTALL_LIBDIR_FREEBSD "lib/mysql")
+SET(ROUTER_INSTALL_PLUGINDIR_FREEBSD "lib/mysql/mysqlrouter")
+SET(ROUTER_INSTALL_LOGROTATEDIR_FREEBSD "etc/logrotate.d")
+SET(ROUTER_INSTALL_LOGROTATEFILE_FREEBSD "mysqlrouter")
+SET(ROUTER_INSTALL_DOCDIR_FREEBSD "share/mysqlrouter/docs")
FOREACH(var
LOGROTATE

View File

@ -1,27 +0,0 @@
--- cmake/os/DragonFly.cmake.orig 2016-04-14 10:16:17 UTC
+++ cmake/os/DragonFly.cmake
@@ -0,0 +1,24 @@
+INCLUDE(CheckCSourceRuns)
+
+# We require at least GCC 4.4 or Clang 3.3.
+IF(NOT FORCE_UNSUPPORTED_COMPILER)
+ IF(CMAKE_COMPILER_IS_GNUCC)
+ EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion
+ OUTPUT_VARIABLE GCC_VERSION)
+ IF(GCC_VERSION VERSION_LESS 4.4)
+ MESSAGE(FATAL_ERROR "GCC 4.4 or newer is required!")
+ ENDIF()
+ ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang")
+ CHECK_C_SOURCE_RUNS("
+ int main()
+ {
+ return (__clang_major__ < 3) ||
+ (__clang_major__ == 3 && __clang_minor__ < 3);
+ }" HAVE_SUPPORTED_CLANG_VERSION)
+ IF(NOT HAVE_SUPPORTED_CLANG_VERSION)
+ MESSAGE(FATAL_ERROR "Clang 3.3 or newer is required!")
+ ENDIF()
+ ELSE()
+ MESSAGE(FATAL_ERROR "Unsupported compiler!")
+ ENDIF()
+ENDIF()

View File

@ -1,25 +0,0 @@
--- cmake/os/FreeBSD.cmake.orig 2019-09-20 08:30:51 UTC
+++ cmake/os/FreeBSD.cmake
@@ -45,8 +45,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER)
MESSAGE(FATAL_ERROR
"GCC 5.3 or newer is required (-dumpversion says ${GCC_VERSION})")
ENDIF()
- ELSE()
- MESSAGE(FATAL_ERROR "Unsupported compiler!")
+ CHECK_C_SOURCE_RUNS("
+ int main()
+ {
+ return (__clang_major__ >= 4);
+ }" I386_ATOMIC_BUILTINS)
+ IF((CMAKE_SYSTEM_PROCESSOR MATCHES "i386") AND (NOT I386_ATOMIC_BUILTINS))
+ SET(HAVE_GCC_ATOMIC_BUILTINS CACHE INTERNAL "")
+ ENDIF()
+ ELSEIF(CMAKE_COMPILER_IS_GNUCC)
+ EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion
+ OUTPUT_VARIABLE GCC_VERSION)
+ IF(GCC_VERSION VERSION_LESS 4.4)
+ MESSAGE(FATAL_ERROR "GCC 4.4 or newer is required!")
+ ENDIF()
ENDIF()
ENDIF()

View File

@ -1,27 +0,0 @@
--- cmake/plugin.cmake.orig 2019-09-20 08:30:51 UTC
+++ cmake/plugin.cmake
@@ -230,15 +230,15 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
# For testing purposes, we need
# <...>/lib/plugin/debug/authentication_ldap_sasl_client.so
- IF(ARG_CLIENT_ONLY)
- INSTALL_DEBUG_TARGET(${target}
- DESTINATION ${INSTALL_PLUGINDIR}/debug
- COMPONENT Test)
- ELSE()
- INSTALL_DEBUG_TARGET(${target}
- DESTINATION ${INSTALL_PLUGINDIR}/debug
- COMPONENT ${INSTALL_COMPONENT})
- ENDIF()
+# IF(ARG_CLIENT_ONLY)
+# INSTALL_DEBUG_TARGET(${target}
+# DESTINATION ${INSTALL_PLUGINDIR}/debug
+# COMPONENT Test)
+# ELSE()
+# INSTALL_DEBUG_TARGET(${target}
+# DESTINATION ${INSTALL_PLUGINDIR}/debug
+# COMPONENT ${INSTALL_COMPONENT})
+# ENDIF()
ENDIF()
ELSE()
IF(WITHOUT_${plugin})

View File

@ -1,28 +0,0 @@
--- cmake/ssl.cmake.orig 2019-09-20 08:30:51 UTC
+++ cmake/ssl.cmake
@@ -199,7 +199,7 @@ MACRO (MYSQL_CHECK_SSL)
# Encoded as MNNFFPPS: major minor fix patch status
FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h"
OPENSSL_VERSION_NUMBER
- REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
+ REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
)
STRING(REGEX REPLACE
"^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1"
@@ -214,13 +214,14 @@ MACRO (MYSQL_CHECK_SSL)
OPENSSL_FIX_VERSION "${OPENSSL_VERSION_NUMBER}"
)
ENDIF()
- IF("${OPENSSL_MAJOR_VERSION}.${OPENSSL_MINOR_VERSION}.${OPENSSL_FIX_VERSION}" VERSION_GREATER "1.1.0")
+ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION)
+ IF(HAVE_TLS1_3_VERSION)
ADD_DEFINITIONS(-DHAVE_TLSv13)
ENDIF()
IF(OPENSSL_INCLUDE_DIR AND
OPENSSL_LIBRARY AND
CRYPTO_LIBRARY AND
- OPENSSL_MAJOR_VERSION STREQUAL "1"
+ OPENSSL_MAJOR_VERSION VERSION_GREATER_EQUAL "1"
)
SET(OPENSSL_FOUND TRUE)
FIND_PROGRAM(OPENSSL_EXECUTABLE openssl

View File

@ -1,17 +0,0 @@
Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
sql/mysqld.cc:6915:30: error: use of undeclared identifier 'TRUE'
my_getopt_skip_unknown = TRUE;
^
--- sql/mysqld.cc.orig 2020-06-16 16:31:03 UTC
+++ sql/mysqld.cc
@@ -6910,7 +6912,7 @@ int mysqld_main(int argc, char **argv)
if (opt_keyring_migration_source || opt_keyring_migration_destination ||
migrate_connect_options) {
Migrate_keyring mk;
- my_getopt_skip_unknown = TRUE;
+ my_getopt_skip_unknown = true;
if (mk.init(remaining_argc, remaining_argv, opt_keyring_migration_source,
opt_keyring_migration_destination, opt_keyring_migration_user,
opt_keyring_migration_host, opt_keyring_migration_password,

View File

@ -1,176 +0,0 @@
--- include/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ include/CMakeLists.txt
@@ -37,10 +37,173 @@ SET(HEADERS
${CMAKE_CURRENT_BINARY_DIR}/mysql_version.h
${CMAKE_CURRENT_BINARY_DIR}/mysqld_error.h
field_types.h
+ base64.h
+ big_endian.h
+ c_string_less.h
+ crypt_genhash_impl.h
+ decimal.h
+ depth_first_search.h
+ dur_prop.h
+ errmsg.h
+ ft_global.h
+ guard.h
+ heap.h
+ integer_digits.h
+ keycache.h
+ lex_string.h
+ lf.h
+ little_endian.h
+ m_ctype.h
+ m_string.h
+ map_helpers.h
+ mf_wcomp.h
+ mutex_lock.h
+ my_aes.h
+ my_alloc.h
+ my_atomic.h
+ my_base.h
+ my_bit.h
+ my_bitmap.h
+ my_byteorder.h
+ my_check_opt.h
+ my_command.h
+ my_compare.h
+ my_compiler.h
+ my_dbug.h
+ my_default.h
+ my_dir.h
+ my_double2ulonglong.h
+ my_getopt.h
+ my_hash_combine.h
+ my_icp.h
+ my_inttypes.h
+ my_io.h
+ my_list.h
+ my_loglevel.h
+ my_macros.h
+ my_md5.h
+ my_md5_size.h
+ my_murmur3.h
+ my_pointer_arithmetic.h
+ my_psi_config.h
+ my_rapidjson_size_t.h
+ my_rdtsc.h
+ my_rnd.h
+ my_sharedlib.h
+ my_shm_defaults.h
+ my_sqlcommand.h
+ my_stacktrace.h
+ my_sys.h
+ my_systime.h
+ my_table_map.h
+ my_thread.h
+ my_thread_local.h
+ my_thread_os_id.h
+ my_time.h
+ my_timer.h
+ my_tree.h
+ my_uctype.h
+ my_user.h
+ my_xml.h
+ myisam.h
+ myisammrg.h
+ myisampack.h
+ mysql.h
+ mysql.h.pp
+ mysql_com.h
+ mysql_com_server.h
+ mysql_time.h
+ mysql_version.h.in
+ mysys_err.h
+ nullable.h
+ password.h
+ pfs_cond_provider.h
+ pfs_error_provider.h
+ pfs_file_provider.h
+ pfs_idle_provider.h
+ pfs_memory_provider.h
+ pfs_metadata_provider.h
+ pfs_mutex_provider.h
+ pfs_rwlock_provider.h
+ pfs_socket_provider.h
+ pfs_stage_provider.h
+ pfs_statement_provider.h
+ pfs_table_provider.h
+ pfs_thread_provider.h
+ pfs_transaction_provider.h
+ prealloced_array.h
+ print_version.h
+ priority_queue.h
+ rwlock_scoped_lock.h
+ scope_guard.h
+ service_versions.h
+ sha1.h
+ sha2.h
+ sql_chars.h
+ sql_common.h
+ sql_string.h
+ sslopt-case.h
+ sslopt-longopts.h
+ sslopt-vars.h
+ tables_contained_in.h
+ template_utils.h
+ thr_cond.h
+ thr_lock.h
+ thr_mutex.h
+ thr_rwlock.h
+ typelib.h
+ varlen_sort.h
+ violite.h
+ welcome_copyright_notice.h
)
SET(HEADERS_MYSQL_DIR
mysql/client_plugin.h
mysql/plugin_auth_common.h
+ mysql/udf_registration_types.h
+ mysql/client_authentication.h
+ mysql/client_plugin.h.pp
+ mysql/com_data.h
+ mysql/group_replication_priv.h
+ mysql/innodb_priv.h
+ mysql/mysql_lex_string.h
+ mysql/plugin.h
+ mysql/plugin_audit.h
+ mysql/plugin_audit.h.pp
+ mysql/plugin_auth.h
+ mysql/plugin_auth.h.pp
+ mysql/plugin_auth_common.h
+ mysql/plugin_ftparser.h
+ mysql/plugin_ftparser.h.pp
+ mysql/plugin_group_replication.h
+ mysql/plugin_keyring.h
+ mysql/plugin_keyring.h.pp
+ mysql/plugin_query_rewrite.h
+ mysql/plugin_trace.h
+ mysql/plugin_validate_password.h
+ mysql/service_command.h
+ mysql/service_locking.h
+ mysql/service_my_plugin_log.h
+ mysql/service_mysql_alloc.h
+ mysql/service_mysql_keyring.h
+ mysql/service_mysql_password_policy.h
+ mysql/service_mysql_string.h
+ mysql/service_parser.h
+ mysql/service_plugin_registry.h
+ mysql/service_rpl_transaction_ctx.h
+ mysql/service_rpl_transaction_write_set.h
+ mysql/service_rules_table.h
+ mysql/service_security_context.h
+ mysql/service_srv_session.h
+ mysql/service_srv_session_info.h
+ mysql/service_ssl_wrapper.h
+ mysql/service_thd_alloc.h
+ mysql/service_thd_engine_lock.h
+ mysql/service_thd_wait.h
+ mysql/service_thread_scheduler.h
+ mysql/services.h
+ mysql/services.h.pp
+ mysql/thread_pool_priv.h
+ mysql/thread_type.h
mysql/udf_registration_types.h
)

View File

@ -1,11 +0,0 @@
--- include/my_compare.h.orig 2019-09-20 08:30:51 UTC
+++ include/my_compare.h
@@ -49,7 +49,7 @@
But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH.
*/
-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */
+#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */
#define HA_MAX_KEY_SEG 16 /* Max segments for key */
#define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24 + 6 + 6)

View File

@ -1,11 +0,0 @@
--- include/my_stacktrace.h.orig 2020-01-23 19:43:07.769584000 +0100
+++ include/my_stacktrace.h 2020-01-23 19:43:48.684042000 +0100
@@ -43,7 +43,7 @@
HAVE_BACKTRACE - Linux, FreeBSD, OSX, Solaris
_WIN32 - Windows
*/
-#if defined(HAVE_BACKTRACE) || defined(_WIN32)
+#if (defined(HAVE_BACKTRACE) || defined(_WIN32)) && (defined(__aarch64__) || defined(__amd64__) || defined(__i386__))
#define HAVE_STACKTRACE 1
void my_init_stacktrace();
void my_print_stacktrace(uchar *stack_bottom, ulong thread_stack);

View File

@ -1,15 +0,0 @@
--- include/my_thread_os_id.h.orig 2019-09-20 08:30:51 UTC
+++ include/my_thread_os_id.h
@@ -84,8 +84,12 @@ static inline my_thread_os_id_t my_thread_os_id() {
return pthread_getthreadid_np();
#else
#ifdef HAVE_INTEGER_PTHREAD_SELF
+# ifdef __DragonFly__
+ return syscall(SYS_lwp_gettid);
+# else
/* Unknown platform, fallback. */
return pthread_self();
+# endif
#else
/* Feature not available. */
return 0;

View File

@ -1,11 +0,0 @@
--- include/myisam.h.orig 2019-09-20 08:30:51 UTC
+++ include/myisam.h
@@ -59,7 +59,7 @@
The following defines can be increased if necessary.
But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH.
*/
-#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */
+#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */
#define MI_MAX_KEY_SEG 16 /* Max segments for key */
#define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH + MI_MAX_KEY_SEG * 6 + 8 + 8)

View File

@ -1,14 +0,0 @@
--- include/violite.h.orig 2019-09-20 08:30:51 UTC
+++ include/violite.h
@@ -269,9 +269,11 @@ struct st_VioSSLFd *new_VioSSLConnectorFd(
long process_tls_version(const char *tls_version);
+#ifndef LIBRESSL_VERSION_NUMBER
int set_fips_mode(const uint fips_mode, char *err_string);
uint get_fips_mode();
+#endif
struct st_VioSSLFd *new_VioSSLAcceptorFd(
const char *key_file, const char *cert_file, const char *ca_file,

View File

@ -1,69 +0,0 @@
--- libmysql/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ libmysql/CMakeLists.txt
@@ -192,6 +192,11 @@ IF (WIN32 AND OPENSSL_APPLINK_C)
)
ENDIF()
+INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake)
+IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ ADD_COMPILE_FLAGS(${CLIENT_SOURCES} COMPILE_FLAGS "-fPIC")
+ENDIF()
+
#
# Include protocol tracing infrastructure and the test
# trace plugin if enabled by build options.
@@ -242,11 +247,18 @@ IF(WIN32)
LIST(APPEND LIBS_TO_MERGE auth_win_client)
ENDIF()
-# LDAP authentication SASL client plugin
-ADD_SUBDIRECTORY(authentication_ldap)
+IF(WITHOUT_CLIENTLIBS)
+ # Merge several convenience libraries into one big mysqlclient
+ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development SKIP_INSTALL)
+ELSE(WITHOUT_CLIENTLIBS)
+ # LDAP authentication SASL client plugin
+ MESSAGE(STATUS "Creating LDAP authentication SASL client library.")
+ ADD_SUBDIRECTORY(authentication_ldap)
-# Merge several convenience libraries into one big mysqlclient
-MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development)
+ # Merge several convenience libraries into one big mysqlclient
+ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development)
+ENDIF(WITHOUT_CLIENTLIBS)
+
TARGET_LINK_LIBRARIES(mysqlclient PRIVATE ${LIBS_TO_LINK})
# Visual Studio users need debug static library for debug projects
@@ -281,12 +291,22 @@ ENDIF()
# Merge several convenience libraries into one big mysqlclient
# and link them together into shared library.
+IF(WITHOUT_CLIENTLIBS)
MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE}
EXPORTS
${CLIENT_API_FUNCTIONS}
${CLIENT_API_FUNCTIONS_UNDOCUMENTED}
${CLIENT_API_NONBLOCKING_FUNCTIONS}
+ COMPONENT SharedLibraries
+ SKIP_INSTALL )
+ELSE(WITHOUT_CLIENTLIBS)
+MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE}
+ EXPORTS
+ ${CLIENT_API_FUNCTIONS}
+ ${CLIENT_API_FUNCTIONS_UNDOCUMENTED}
+ ${CLIENT_API_NONBLOCKING_FUNCTIONS}
COMPONENT SharedLibraries)
+ENDIF(WITHOUT_CLIENTLIBS)
TARGET_LINK_LIBRARIES(libmysql PRIVATE ${LIBS_TO_LINK})
IF(WIN32)
@@ -300,7 +320,7 @@ ENDIF()
IF(UNIX)
# libtool compatability
- IF(FREEBSD OR APPLE)
+ IF(FREEBSD OR APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD|DragonFly")
SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}")
ELSE()
SET(OS_SHARED_LIB_VERSION

View File

@ -1,12 +0,0 @@
--- libservices/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ libservices/CMakeLists.txt
@@ -45,7 +45,9 @@ SET(MYSQLSERVICES_SOURCES
plugin_registry_service.c)
ADD_LIBRARY(mysqlservices STATIC ${MYSQLSERVICES_SOURCES})
+IF(FALSE)
IF(INSTALL_STATIC_LIBRARIES)
INSTALL(TARGETS mysqlservices
DESTINATION ${INSTALL_LIBDIR} COMPONENT Development)
+ENDIF()
ENDIF()

View File

@ -1,71 +0,0 @@
--- man/CMakeLists.txt.orig 2020-10-20 11:47:42.675974000 +0200
+++ man/CMakeLists.txt 2020-10-20 13:53:03.993879000 +0200
@@ -23,21 +23,10 @@
# Copy man pages
SET(MAN1
comp_err.1
- ibd2sdi.1
- innochecksum.1
lz4_decompress.1
- my_print_defaults.1
- myisam_ftdump.1
- myisamchk.1
- myisamlog.1
- myisampack.1
mysql.1
mysql_config.1
mysql_config_editor.1
- mysql_secure_installation.1
- mysql_ssl_rsa_setup.1
- mysql_tzinfo_to_sql.1
- mysql_upgrade.1
mysqladmin.1
mysqlbinlog.1
mysqlcheck.1
@@ -52,13 +41,23 @@ SET(MAN1
zlib_decompress.1
)
-IF(NOT WITH_SYSTEMD)
- LIST(APPEND MAN1
- mysql.server.1
- mysqld_multi.1
- mysqld_safe.1
+SET(MAN1_TOOLS
+ ibd2sdi.1
+ innochecksum.1
+ my_print_defaults.1
+ myisam_ftdump.1
+ myisamchk.1
+ myisamlog.1
+ myisampack.1
+ mysql.server.1
+ mysql_secure_installation.1
+ mysql_ssl_rsa_setup.1
+ mysql_tzinfo_to_sql.1
+ mysql_upgrade.1
+ mysqldumpslow.1
+ mysqld_multi.1
+ mysqld_safe.1
)
-ENDIF()
SET(MAN1_NDB
ndb-common-options.1
@@ -105,8 +104,14 @@ SET(MAN8_NDB
ndbmtd.8
)
-INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages)
-INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages)
+IF(NOT WITHOUT_CLIENTLIBS)
+ INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages)
+ENDIF()
+
+IF(NOT WITHOUT_SERVER)
+ INSTALL(FILES ${MAN1_TOOLS} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages)
+ INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages)
+ENDIF()
IF(WITH_ROUTER)
INSTALL(FILES ${MAN1_ROUTER}

View File

@ -1,62 +0,0 @@
--- mysys/my_default.cc.orig 2019-09-20 08:30:51 UTC
+++ mysys/my_default.cc
@@ -203,7 +203,7 @@ bool no_defaults = false;
/* Which directories are searched for options (and in which order) */
-#define MAX_DEFAULT_DIRS 6
+#define MAX_DEFAULT_DIRS 7
#define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */
static const char **default_directories = NULL;
@@ -909,6 +909,14 @@ static int search_default_file_with_ext(Process_option
return 1; /* Ignore wrong files */
}
+ if (strstr(name, "/etc") == name)
+ {
+ fprintf(stderr,
+ "error: Config file %s in invalid location, please move to or merge with /usr/local%s\n",
+ name,name);
+ goto err;
+ }
+
while (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) {
line++;
/* Ignore comment and empty lines */
@@ -1228,7 +1236,8 @@ void my_print_default_files(const char *conf_file) {
end[(strlen(end) - 1)] = ' ';
else
strxmov(end, conf_file, *ext, " ", NullS);
- fputs(name, stdout);
+ if (strstr(name, "/etc") != name)
+ fputs(name, stdout);
}
}
}
@@ -1565,14 +1574,9 @@ static const char **init_default_directories(MEM_ROOT
#else
- errors += add_directory(alloc, "/etc/", dirs);
- errors += add_directory(alloc, "/etc/mysql/", dirs);
+ errors += add_directory(alloc, "/usr/local/etc/", dirs);
+ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs);
-#if defined(DEFAULT_SYSCONFDIR)
- if (DEFAULT_SYSCONFDIR[0])
- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs);
-#endif /* DEFAULT_SYSCONFDIR */
-
#endif
if ((env = getenv("MYSQL_HOME"))) errors += add_directory(alloc, env, dirs);
@@ -1635,7 +1639,7 @@ int check_file_permissions(const char *file_name, bool
#if !defined(_WIN32)
MY_STAT stat_info;
- if (!my_stat(file_name, &stat_info, MYF(0))) return 1;
+ if (!my_stat(file_name, &stat_info, MYF(0))) return 0;
/*
Ignore .mylogin.cnf file if not exclusively readable/writable
by current user.

View File

@ -1,12 +0,0 @@
--- mysys/my_md5.cc.orig 2019-09-20 08:30:51 UTC
+++ mysys/my_md5.cc
@@ -56,7 +56,9 @@ static void my_md5_hash(unsigned char *digest, unsigne
int compute_md5_hash(char *digest, const char *buf, int len) {
int retval = 0;
int fips_mode = 0;
+#ifndef LIBRESSL_VERSION_NUMBER
fips_mode = FIPS_mode();
+#endif /* LIBRESSL_VERSION_NUMBER */
/* If fips mode is ON/STRICT restricted method calls will result into abort,
* skipping call. */
if (fips_mode == 0) {

View File

@ -1,31 +0,0 @@
--- plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc
@@ -329,6 +329,7 @@ error:
return 1;
}
+#ifndef LIBRESSL_VERSION_NUMBER
#define OPENSSL_ERROR_LENGTH 512
static int configure_ssl_fips_mode(const uint fips_mode) {
int rc = -1;
@@ -352,6 +353,7 @@ static int configure_ssl_fips_mode(const uint fips_mod
EXIT:
return rc;
}
+#endif
static int configure_ssl_ca(SSL_CTX *ssl_ctx, const char *ca_file,
const char *ca_path) {
@@ -555,10 +557,12 @@ int xcom_init_ssl(const char *server_key_file, const c
int verify_server = SSL_VERIFY_NONE;
int verify_client = SSL_VERIFY_NONE;
+#ifndef LIBRESSL_VERSION_NUMBER
if (configure_ssl_fips_mode(ssl_fips_mode) != 1) {
G_ERROR("Error setting the ssl fips mode");
goto error;
}
+#endif
SSL_library_init();
SSL_load_error_strings();

View File

@ -1,11 +0,0 @@
--- plugin/password_validation/validate_password.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/password_validation/validate_password.cc
@@ -25,6 +25,8 @@
#include <mysql/plugin_validate_password.h>
#include <mysql/service_my_plugin_log.h>
#include <mysql/service_mysql_string.h>
+/* solve clash between libc++ bitset::test() and test macro from my_global.h */
+#undef test
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

View File

@ -1,11 +0,0 @@
--- plugin/x/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/CMakeLists.txt
@@ -77,6 +77,8 @@ INCLUDE_DIRECTORIES(
${MYSQLX_GENERATE_DIR}
${MYSQLX_PROTOCOL_INCLUDE_DIR}
${MYSQLX_CLIENT_INCLUDE_DIR}
+ ${OPENSSL_INCLUDE_DIR}
+ ${BOOST_INCLUDE_DIR}
)
MY_INCLUDE_SYSTEM_DIRECTORIES(PROTOBUF)

View File

@ -1,11 +0,0 @@
--- plugin/x/client/authentication/sha256_scramble_generator.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/client/authentication/sha256_scramble_generator.cc
@@ -97,7 +97,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig
return true;
}
m_ok = EVP_DigestFinal_ex(md_context, m_digest, nullptr);
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
EVP_MD_CTX_cleanup(md_context);
#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
EVP_MD_CTX_reset(md_context);

View File

@ -1,33 +0,0 @@
--- plugin/x/client/xconnection_impl.cc.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/client/xconnection_impl.cc
@@ -520,6 +520,7 @@ XError Connection_impl::get_ssl_error(const int error_
return XError(CR_SSL_CONNECTION_ERROR, buffer);
}
+#ifndef LIBRESSL_VERSION_NUMBER
/**
Set fips mode in openssl library,
When we set fips mode ON/STRICT, it will perform following operations:
@@ -559,6 +560,7 @@ int set_fips_mode(const uint32_t fips_mode,
EXIT:
return rc;
}
+#endif
XError Connection_impl::activate_tls() {
if (nullptr == m_vio) return get_socket_error(SOCKET_ECONNRESET);
@@ -569,12 +571,14 @@ XError Connection_impl::activate_tls() {
if (!m_context->m_ssl_config.is_configured())
return XError{CR_SSL_CONNECTION_ERROR, ER_TEXT_TLS_NOT_CONFIGURATED, true};
+#ifndef LIBRESSL_VERSION_NUMBER
char err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
if (set_fips_mode(
static_cast<uint32_t>(m_context->m_ssl_config.m_ssl_fips_mode),
err_string) != 1) {
return XError{CR_SSL_CONNECTION_ERROR, err_string, true};
}
+#endif
auto ssl_ctx_flags = process_tls_version(
details::null_when_empty(m_context->m_ssl_config.m_tls_version));

View File

@ -1,15 +0,0 @@
--- plugin/x/configure.cmake.orig 2019-09-20 08:30:51 UTC
+++ plugin/x/configure.cmake
@@ -45,6 +45,7 @@ CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx
CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx_version.h.in
${MYSQLX_GENERATE_DIR}/mysqlx_version.h )
+IF(FALSE)
INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_error.h
DESTINATION ${INSTALL_INCLUDEDIR}
COMPONENT Development)
@@ -56,3 +57,4 @@ INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_ername.h
INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_version.h
DESTINATION ${INSTALL_INCLUDEDIR}
COMPONENT Development)
+ENDIF()

View File

@ -1,10 +0,0 @@
--- router/src/harness/include/mysql/harness/net_ts/internet.h.orig 2020-11-09 00:30:01 UTC
+++ router/src/harness/include/mysql/harness/net_ts/internet.h
@@ -43,6 +43,7 @@
#include <arpa/inet.h> // inet_ntop
#include <netdb.h> // getaddrinfo
#include <netinet/in.h> // in_addr_t
+#include <sys/types.h> // u_int32_t
#include <netinet/ip6.h> // in6_addr_t
#include <netinet/tcp.h> // TCP_NODELAY
#include <sys/ioctl.h> // ioctl

View File

@ -1,13 +0,0 @@
--- router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h.orig 2020-09-23 12:37:48 UTC
+++ router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h
@@ -190,8 +190,8 @@
auto secs = std::chrono::duration_cast<std::chrono::seconds>(timeout);
timeout -= secs;
- ts = {secs.count(),
- std::chrono::duration_cast<std::chrono::nanoseconds>(timeout)
+ ts = {(time_t)secs.count(),
+ (time_t)std::chrono::duration_cast<std::chrono::nanoseconds>(timeout)
.count()};
p_ts = &ts;

View File

@ -1,16 +0,0 @@
--- router/src/harness/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ router/src/harness/src/CMakeLists.txt
@@ -205,7 +205,6 @@ IF(NOT WIN32)
INSTALL(TARGETS harness-library
LIBRARY
DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
ELSE()
INSTALL(TARGETS harness-library
@@ -240,5 +239,4 @@ INSTALL(TARGETS harness_stdx
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)

View File

@ -1,26 +0,0 @@
--- router/src/http/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ router/src/http/src/CMakeLists.txt
@@ -62,7 +62,6 @@ INSTALL(TARGETS http_common
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
## split library code from the plugin to use them _passwd and tests
@@ -88,7 +87,6 @@ INSTALL(TARGETS http_auth_backend_lib
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
TARGET_INCLUDE_DIRECTORIES(http_auth_backend_lib PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
@@ -141,7 +139,6 @@ INSTALL(TARGETS http_auth_realm_lib
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
## the rpath for the bundled openssl
ADD_INSTALL_RPATH_FOR_OPENSSL(http_auth_realm_lib)

View File

@ -1,11 +0,0 @@
--- router/src/http/src/tls_client_context.cc.orig 2019-09-20 08:30:51 UTC
+++ router/src/http/src/tls_client_context.cc
@@ -54,7 +54,7 @@ void TlsClientContext::verify(TlsVerify verify) {
void TlsClientContext::cipher_suites(const std::string &ciphers) {
// TLSv1.3 ciphers are controlled via SSL_CTX_set_ciphersuites()
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1)
+#ifdef TLS1_3_VERSION
if (1 != SSL_CTX_set_ciphersuites(ssl_ctx_.get(), ciphers.c_str())) {
throw TlsError("set-cipher-suites");
}

View File

@ -1,44 +0,0 @@
--- router/src/http/src/tls_context.cc.orig 2019-09-20 08:30:51 UTC
+++ router/src/http/src/tls_context.cc
@@ -91,7 +91,7 @@ static constexpr int o11x_version(TlsVersion version)
return TLS1_1_VERSION;
case TlsVersion::TLS_1_2:
return TLS1_2_VERSION;
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1)
+#ifdef TLS1_3_VERSION
case TlsVersion::TLS_1_3:
return TLS1_3_VERSION;
#endif
@@ -121,9 +121,11 @@ void TlsContext::version_range(TlsVersion min_version,
default:
// unknown, leave all disabled
// fallthrough
+#ifdef TLS1_3_VERSION
case TlsVersion::TLS_1_3:
opts |= SSL_OP_NO_TLSv1_2;
// fallthrough
+#endif
case TlsVersion::TLS_1_2:
opts |= SSL_OP_NO_TLSv1_1;
// fallthrough
@@ -170,8 +172,10 @@ TlsVersion TlsContext::min_version() const {
return TlsVersion::TLS_1_1;
case TLS1_2_VERSION:
return TlsVersion::TLS_1_2;
+#ifdef TLS1_3_VERSION
case TLS1_3_VERSION:
return TlsVersion::TLS_1_3;
+#endif
case 0:
return TlsVersion::AUTO;
default:
@@ -230,7 +234,8 @@ TlsContext::InfoCallback TlsContext::info_callback() c
}
int TlsContext::security_level() const {
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0)
+#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \
+ !defined(LIBRESSL_VERSION_NUMBER)
return SSL_CTX_get_security_level(ssl_ctx_.get());
#else
return 0;

View File

@ -1,12 +0,0 @@
--- router/src/http/src/tls_server_context.cc.orig 2019-09-20 08:30:51 UTC
+++ router/src/http/src/tls_server_context.cc
@@ -166,7 +166,8 @@ void TlsServerContext::init_tmp_dh(const std::string &
}
} else {
-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0)
+#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \
+ !defined(LIBRESSL_VERSION_NUMBER)
dh2048.reset(DH_get_2048_256());
#else
/*

View File

@ -1,10 +0,0 @@
--- router/src/io/src/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ router/src/io/src/CMakeLists.txt
@@ -47,7 +47,6 @@ INSTALL(TARGETS io_component
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
GENERATE_EXPORT_HEADER(io_component

View File

@ -1,10 +0,0 @@
--- router/src/router/src/CMakeLists.txt.orig 2019-12-09 19:53:17 UTC
+++ router/src/router/src/CMakeLists.txt
@@ -119,7 +119,6 @@ INSTALL(TARGETS router_lib
RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router
ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router
- NAMELINK_SKIP
)
MYSQL_ADD_EXECUTABLE(mysqlrouter_keyring

View File

@ -1,61 +0,0 @@
--- scripts/CMakeLists.txt.orig 2019-09-20 08:30:51 UTC
+++ scripts/CMakeLists.txt
@@ -330,7 +330,7 @@ MACRO(EXTRACT_LINK_LIBRARIES target var)
LIST(REMOVE_DUPLICATES ${target}_LIB_DEPENDS)
FOREACH(lib ${${target}_LIB_DEPENDS})
# Filter out "general", it is not a library, just CMake hint
- IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} ")
+ IF(NOT lib STREQUAL "general" AND NOT ${var} MATCHES "-l${lib} " AND NOT lib STREQUAL "imported_openssl" AND NOT lib STREQUAL "imported_crypto")
IF (lib MATCHES "^\\-l")
SET(${var} "${${var}} ${lib} ")
ELSEIF (lib MATCHES "^\\-L")
@@ -340,6 +340,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var)
GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE)
STRING(REGEX REPLACE "^lib" "" lib "${lib}")
SET(${var} "${${var}}-l${lib} " )
+ ELSEIF(lib STREQUAL "-pthread")
+ SET(${var} "${${var}}-pthread " )
ELSE()
SET(${var} "${${var}}-l${lib} " )
ENDIF()
@@ -414,7 +416,7 @@ ELSE()
${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE}
ESCAPE_QUOTES @ONLY)
- IF(INSTALL_PKGCONFIGDIR)
+ IF(INSTALL_PKGCONFIGDIR AND NOT WITHOUT_CLIENTLIBS)
MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}")
INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE}
@@ -427,23 +429,28 @@ ELSE()
# mysqld_safe used in mtr even for systemd platforms
IF(WITH_SYSTEMD)
SET(BIN_SCRIPTS
- mysql_config
mysqldumpslow
mysqld_safe
)
ELSE()
SET(BIN_SCRIPTS
- mysql_config
mysqldumpslow
mysqld_multi
mysqld_safe
)
ENDIF()
+ IF(NOT WITHOUT_CLIENTLIBS)
+ SET(BIN_SCRIPTS
+ ${BIN_SCRIPTS}
+ mysql_config
+ )
+ ENDIF(NOT WITHOUT_CLIENTLIBS)
+
FOREACH(file ${BIN_SCRIPTS})
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh
- ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY
+ ${CMAKE_CURRENT_BINARY_DIR}/${file} @ONLY
)
ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in

View File

@ -1,18 +0,0 @@
--- sql-common/client.cc.orig 2020-03-26 13:31:45 UTC
+++ sql-common/client.cc
@@ -7752,6 +7752,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_opt
return 1;
break;
case MYSQL_OPT_SSL_FIPS_MODE: {
+#if !defined(LIBRESSL_VERSION_NUMBER)
char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
ENSURE_EXTENSIONS_PRESENT(&mysql->options);
mysql->options.extension->ssl_fips_mode = *static_cast<const uint *>(arg);
@@ -7763,6 +7764,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_opt
"Set Fips mode ON/STRICT failed, detail: '%s'.", ssl_err_string);
return 1;
}
+#endif
} break;
case MYSQL_OPT_SSL_MODE:
ENSURE_EXTENSIONS_PRESENT(&mysql->options);

View File

@ -1,11 +0,0 @@
--- sql/auth/sha2_password_common.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/auth/sha2_password_common.cc
@@ -101,7 +101,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig
return true;
}
m_ok = EVP_DigestFinal_ex(md_context, m_digest, nullptr);
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
EVP_MD_CTX_cleanup(md_context);
#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
EVP_MD_CTX_reset(md_context);

View File

@ -1,32 +0,0 @@
--- sql/conn_handler/socket_connection.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/conn_handler/socket_connection.cc
@@ -950,9 +950,11 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC
signal(SIGCHLD, SIG_DFL);
request_init(&req, RQ_DAEMON, libwrap_name, RQ_FILE,
mysql_socket_getfd(connect_sock), NULL);
- fromhost(&req);
+ void (*my_fromhost) (void *) = (void (*)(void *)) fromhost;
+ my_fromhost(&req);
- if (!hosts_access(&req)) {
+ int (*my_hosts_access) (void *) = (int (*) (void *)) hosts_access;
+ if (!my_hosts_access(&req)) {
/*
This may be stupid but refuse() includes an exit(0)
which we surely don't want...
@@ -964,12 +966,13 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC
This is unproblematic as TCP-wrapper is unix specific,
anyway.
*/
+ char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client;
syslog(LOG_AUTH | LOG_WARNING, "refused connect from %s",
- eval_client(&req));
+ my_eval_client(&req));
#ifdef HAVE_LIBWRAP_PROTOTYPES
// Some distros have patched tcpd.h to have proper prototypes
- if (req.sink) (req.sink)(req.fd);
+ if (req.sink) ((void (*)(int)) (req.sink))(req.fd);
#else
// Some distros have not patched tcpd.h
if (req.sink) ((void (*)(int))req.sink)(req.fd);

View File

@ -1,26 +0,0 @@
--- sql/mysqld.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/mysqld.cc
@@ -5109,7 +5109,7 @@ static int init_thread_environment() {
static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
#define FILE_LINE_ARGS
#else
#define FILE_LINE_ARGS , const char *, int
@@ -5143,12 +5143,14 @@ static void init_ssl() {
}
static int init_ssl_communication() {
+#ifndef LIBRESSL_VERSION_NUMBER
char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
int ret_fips_mode = set_fips_mode(opt_ssl_fips_mode, ssl_err_string);
if (ret_fips_mode != 1) {
LogErr(ERROR_LEVEL, ER_SSL_FIPS_MODE_ERROR, ssl_err_string);
return 1;
}
+#endif /* LIBRESSL_VERSION_NUMBER */
if (TLS_channel::singleton_init(&mysql_main, mysql_main_channel, opt_use_ssl,
&server_main_callback, opt_initialize))
return 1;

View File

@ -1,70 +0,0 @@
--- sql/sys_vars.cc.orig 2019-09-20 08:30:51 UTC
+++ sql/sys_vars.cc
@@ -1875,7 +1875,7 @@ static Sys_var_ulong Sys_connect_timeout(
"The number of seconds the mysqld server is waiting for a connect "
"packet before responding with 'Bad handshake'",
GLOBAL_VAR(connect_timeout), CMD_LINE(REQUIRED_ARG),
- VALID_RANGE(2, LONG_TIMEOUT), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1));
+ VALID_RANGE(2, INT_MAX32 / 1000), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1));
static Sys_var_ulong Sys_information_schema_stats_expiry(
"information_schema_stats_expiry",
@@ -2929,7 +2929,7 @@ static Sys_var_ulong Sys_net_read_timeout(
"Number of seconds to wait for more data from a connection before "
"aborting the read",
SESSION_VAR(net_read_timeout), CMD_LINE(REQUIRED_ARG),
- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1),
+ VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1),
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(nullptr),
ON_UPDATE(fix_net_read_timeout));
@@ -2950,7 +2950,7 @@ static Sys_var_ulong Sys_net_write_timeout(
"Number of seconds to wait for a block to be written to a connection "
"before aborting the write",
SESSION_VAR(net_write_timeout), CMD_LINE(REQUIRED_ARG),
- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1),
+ VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1),
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(nullptr),
ON_UPDATE(fix_net_write_timeout));
@@ -4459,6 +4459,7 @@ static Sys_var_ulong Sys_max_execution_time(
HINT_UPDATEABLE SESSION_VAR(max_execution_time), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, ULONG_MAX), DEFAULT(0), BLOCK_SIZE(1));
+#ifndef LIBRESSL_VERSION_NUMBER
static bool update_fips_mode(sys_var *, THD *, enum_var_type) {
char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
if (set_fips_mode(opt_ssl_fips_mode, ssl_err_string) != 1) {
@@ -4470,14 +4471,30 @@ static bool update_fips_mode(sys_var *, THD *, enum_va
}
}
+#endif
+
+#if defined(LIBRESSL_VERSION_NUMBER)
+static const char *ssl_fips_mode_names[] = {"OFF", 0};
+#else
static const char *ssl_fips_mode_names[] = {"OFF", "ON", "STRICT", nullptr};
+#endif
static Sys_var_enum Sys_ssl_fips_mode(
"ssl_fips_mode",
"SSL FIPS mode (applies only for OpenSSL); "
- "permitted values are: OFF, ON, STRICT",
+#ifndef LIBRESSL_VERSION_NUMBER
+ "permitted values are: OFF, ON, STRICT",
+#else
+ "permitted values are: OFF",
+#endif
GLOBAL_VAR(opt_ssl_fips_mode), CMD_LINE(REQUIRED_ARG, OPT_SSL_FIPS_MODE),
ssl_fips_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG,
- ON_CHECK(nullptr), ON_UPDATE(update_fips_mode), nullptr);
+ ON_CHECK(NULL),
+#ifndef LIBRESSL_VERSION_NUMBER
+ ON_UPDATE(update_fips_mode),
+#else
+ ON_UPDATE(NULL),
+#endif
+ NULL);
static Sys_var_bool Sys_auto_generate_certs(
"auto_generate_certs",

View File

@ -1,13 +0,0 @@
--- storage/innobase/include/srv0mon.h.orig 2019-09-20 08:30:51 UTC
+++ storage/innobase/include/srv0mon.h
@@ -40,6 +40,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
/* Required for FreeBSD so that INT64_MAX is defined. */
#define __STDC_LIMIT_MACROS
#endif /* __STDC_LIMIT_MACROS */
+#ifdef __DragonFly__
+/* The hack above doen't work for dragonfly, stdint.h already imported */
+#include <machine/int_limits.h>
+#endif
#include <stdint.h>

View File

@ -1,22 +0,0 @@
--- storage/myisam/mi_dynrec.cc.orig 2019-09-20 08:30:51 UTC
+++ storage/myisam/mi_dynrec.cc
@@ -85,17 +85,12 @@ bool mi_dynmap_file(MI_INFO *info, my_off_t size) {
return true;
}
/*
- I wonder if it is good to use MAP_NORESERVE. From the Linux man page:
- MAP_NORESERVE
- Do not reserve swap space for this mapping. When swap space is
- reserved, one has the guarantee that it is possible to modify the
- mapping. When swap space is not reserved one might get SIGSEGV
- upon a write if no physical memory is available.
+ MAP_NORESERVE is unimplemented in FreeBSD
*/
info->s->file_map = (uchar *)my_mmap(
nullptr, (size_t)size,
info->s->mode == O_RDONLY ? PROT_READ : PROT_READ | PROT_WRITE,
- MAP_SHARED | MAP_NORESERVE, info->dfile, 0L);
+ MAP_SHARED, info->dfile, 0L);
if (info->s->file_map == (uchar *)MAP_FAILED) {
info->s->file_map = nullptr;
return true;

View File

@ -1,17 +0,0 @@
--- storage/temptable/include/temptable/lock_free_type.h.orig 2020-06-16 16:31:03 UTC
+++ storage/temptable/include/temptable/lock_free_type.h
@@ -31,6 +31,14 @@ Lock-free type (selection) implementation. */
#include "storage/temptable/include/temptable/constants.h"
+#if defined(__i386__) //&& defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)
+/* Fix for clang setting __GCC_ATOMIC_LLONG_LOCK_FREE incorrectly for x86
+ * https://llvm.org/bugs/show_bug.cgi?id=19355
+ */
+#undef ATOMIC_LLONG_LOCK_FREE
+#define ATOMIC_LLONG_LOCK_FREE 2
+#endif
+
namespace temptable {
/** Enum class describing alignment-requirements. */

View File

@ -1,39 +0,0 @@
--- support-files/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ support-files/CMakeLists.txt
@@ -24,8 +24,9 @@ IF(NOT UNIX)
RETURN()
ENDIF()
-INSTALL(FILES mysql.m4
- DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
+IF(NOT WITHOUT_CLIENTLIBS)
+ INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
+ENDIF(NOT WITHOUT_CLIENTLIBS)
SET(localstatedir "${MYSQL_DATADIR}")
@@ -43,7 +44,7 @@ ENDIF()
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql-log-rotate.in
${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate @ONLY)
-IF(NOT WITH_SYSTEMD)
+IF(NOT WITHOUT_SERVER)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql.server.sh
${CMAKE_CURRENT_BINARY_DIR}/mysql.server @ONLY
)
@@ -59,6 +60,7 @@ IF(NOT WITH_SYSTEMD)
)
ENDIF()
+IF(NOT WITHOUT_SERVER)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate
COMPONENT Server_Scripts
DESTINATION ${INSTALL_SUPPORTFILESDIR}
@@ -66,6 +68,7 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-ro
OWNER_READ OWNER_WRITE
GROUP_READ WORLD_READ
)
+ENDIF()
IF(WITH_ROUTER)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysqlrouter-log-rotate.in

View File

@ -1,79 +0,0 @@
--- utilities/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC
+++ utilities/CMakeLists.txt
@@ -23,13 +23,19 @@
ADD_WSHADOW_WARNING()
DISABLE_MISSING_PROFILE_WARNING()
-IF(NOT CMAKE_CROSSCOMPILING)
+IF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(comp_err
comp_err.cc
COMPONENT Test
LINK_LIBRARIES mysys
+ SKIP_INSTALL)
+ELSE(WITHOUT_CLIENTLIBS)
+ MYSQL_ADD_EXECUTABLE(comp_err
+ comp_err.cc
+ COMPONENT Test
+ LINK_LIBRARIES mysys
)
-ENDIF()
+ENDIF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(comp_client_err
comp_client_err.cc
@@ -112,10 +118,30 @@ MYSQL_ADD_EXECUTABLE(static_thread_local_test
EXCLUDE_FROM_ALL
)
+IF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(my_print_defaults
my_print_defaults.cc
COMPONENT Server
LINK_LIBRARIES mysys
+ SKIP_INSTALL )
+MYSQL_ADD_EXECUTABLE(perror
+ perror.cc
+ COMPONENT Server
+ DEPENDENCIES GenError
+ LINK_LIBRARIES mysys
+ SKIP_INSTALL )
+IF(BUILD_BUNDLED_LZ4)
+ MYSQL_ADD_EXECUTABLE(lz4_decompress
+ lz4_decompress.cc
+ COMPONENT Server
+ LINK_LIBRARIES ${LZ4_LIBRARY} mysys
+ SKIP_INSTALL )
+ENDIF()
+ELSE(WITHOUT_CLIENTLIBS)
+MYSQL_ADD_EXECUTABLE(my_print_defaults
+ my_print_defaults.cc
+ COMPONENT Server
+ LINK_LIBRARIES mysys
)
MYSQL_ADD_EXECUTABLE(perror
perror.cc
@@ -130,12 +156,23 @@ IF(BUILD_BUNDLED_LZ4)
LINK_LIBRARIES ${LZ4_LIBRARY} mysys
)
ENDIF()
+ENDIF(WITHOUT_CLIENTLIBS)
+IF(WITHOUT_CLIENTLIBS)
MYSQL_ADD_EXECUTABLE(zlib_decompress
zlib_decompress.cc
COMPONENT Server
LINK_LIBRARIES ${ZLIB_LIBRARY} mysys
+ SKIP_INSTALL )
+ELSE(WITHOUT_CLIENTLIBS)
+IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB)
+ MYSQL_ADD_EXECUTABLE(zlib_decompress
+ zlib_decompress.cc
+ COMPONENT Server
+ LINK_LIBRARIES ${ZLIB_LIBRARY} mysys
)
+ENDIF()
+ENDIF(WITHOUT_CLIENTLIBS)
# All targets below belong to COMPONENT Server and depend on InnoDB.
IF(WITHOUT_SERVER)

View File

@ -1,30 +0,0 @@
--- vio/viossl.cc.orig 2019-09-20 08:30:51 UTC
+++ vio/viossl.cc
@@ -45,7 +45,8 @@
BIO_set_callback_ex was added in openSSL 1.1.1
For older openSSL, use the deprecated BIO_set_callback.
*/
-#if OPENSSL_VERSION_NUMBER >= 0x10101000L
+#if OPENSSL_VERSION_NUMBER >= 0x10101000L && \
+ !defined(LIBRESSL_VERSION_NUMBER)
#define HAVE_BIO_SET_CALLBACK_EX
#endif
@@ -635,7 +636,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l
#if !defined(DBUG_OFF)
{
STACK_OF(SSL_COMP) *ssl_comp_methods = nullptr;
- ssl_comp_methods = SSL_COMP_get_compression_methods();
+ ssl_comp_methods = (STACK_OF(SSL_COMP) *)SSL_COMP_get_compression_methods();
n = sk_SSL_COMP_num(ssl_comp_methods);
DBUG_PRINT("info", ("Available compression methods:\n"));
if (n == 0)
@@ -643,7 +644,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l
else
for (j = 0; j < n; j++) {
SSL_COMP *c = sk_SSL_COMP_value(ssl_comp_methods, j);
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
DBUG_PRINT("info", (" %d: %s\n", c->id, c->name));
#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
DBUG_PRINT("info",

View File

@ -1,26 +0,0 @@
--- vio/viosslfactories.cc.orig 2019-09-20 08:30:51 UTC
+++ vio/viosslfactories.cc
@@ -38,6 +38,7 @@
#ifdef HAVE_OPENSSL
#include <openssl/dh.h>
+#include <openssl/crypto.h>
#define TLS_VERSION_OPTION_SIZE 256
#define SSL_CIPHER_LIST_SIZE 4096
@@ -420,6 +421,7 @@ void ssl_start() {
}
}
+#ifndef LIBRESSL_VERSION_NUMBER
/**
Set fips mode in openssl library,
When we set fips mode ON/STRICT, it will perform following operations:
@@ -473,6 +475,7 @@ EXIT:
@returns openssl current fips mode
*/
uint get_fips_mode() { return FIPS_mode(); }
+#endif
long process_tls_version(const char *tls_version) {
const char *separator = ",";

View File

@ -1,21 +0,0 @@
[
{ type: install
message: <<EOM
There is no initial password for first time use of MySQL.
Keep in mind to reset it to a secure password.
MySQL80 has a default %%ETCDIR%%/my.cnf,
remember to replace it with your own
or set `mysql_optfile="$YOUR_CNF_FILE` in rc.conf.
EOM
}
{ type: upgrade
message: <<EOM
As of MySQL 8.0.16, the MySQL server performs the upgrade tasks previously
handled by mysql_upgrade. Consequently, mysql_upgrade is unneeded and is
deprecated as of that version, and will be removed in a future MySQL version.
Because mysql_upgrade no longer performs upgrade tasks,
it exits with status 0 unconditionally.
EOM
}
]

View File

@ -1,15 +0,0 @@
MySQL is a very fast, multi-threaded, multi-user and robust SQL
(Structured Query Language) database server.
The new features in MySQL 8.0. In addition to Data Dictionnary and CTEs are:
Move to utf8(mb4) as MySQL's default character set
Language specific case insensitive collation for 21 languages (utf8)
Invisible index
Descending indexes
Improve usability of UUID and IPV6 manipulations
SQL roles - SET PERSIST for global variable values
Performance Schema, instrumenting data locks
Performance Schema, instrumenting error messages
Improved cost model with histograms
WWW: https://www.mysql.com/

View File

@ -1,238 +0,0 @@
LICENSE.router
README.router
bin/ibd2sdi
bin/innochecksum
bin/myisam_ftdump
bin/myisamchk
bin/myisamlog
bin/myisampack
bin/mysqldumpslow
bin/mysql_client_test
bin/mysql_secure_installation
bin/mysql_ssl_rsa_setup
bin/mysql_tzinfo_to_sql
bin/mysql_upgrade
bin/mysqld_multi
bin/mysqld_safe
bin/mysqlrouter
bin/mysqlrouter_keyring
bin/mysqlrouter_passwd
bin/mysqlrouter_plugin_info
bin/mysqltest
bin/mysqltest_safe_process
bin/mysqlxtest
etc/logrotate.d/mysqlrouter
lib/mysql/libmysqlharness.so
lib/mysql/libmysqlharness.so.1
lib/mysql/libmysqlharness_stdx.so
lib/mysql/libmysqlharness_stdx.so.1
lib/mysql/libmysqlrouter.so
lib/mysql/libmysqlrouter.so.1
lib/mysql/libmysqlrouter_http.so
lib/mysql/libmysqlrouter_http.so.1
lib/mysql/libmysqlrouter_http_auth_backend.so
lib/mysql/libmysqlrouter_http_auth_backend.so.1
lib/mysql/libmysqlrouter_http_auth_realm.so
lib/mysql/libmysqlrouter_http_auth_realm.so.1
lib/mysql/libmysqlrouter_io_component.so
lib/mysql/libmysqlrouter_io_component.so.1
lib/mysql/mysqlrouter/http_auth_backend.so
lib/mysql/mysqlrouter/http_auth_realm.so
lib/mysql/mysqlrouter/http_server.so
lib/mysql/mysqlrouter/io.so
lib/mysql/mysqlrouter/keepalive.so
lib/mysql/mysqlrouter/metadata_cache.so
lib/mysql/mysqlrouter/mysql_protocol.so
lib/mysql/mysqlrouter/rest_api.so
lib/mysql/mysqlrouter/rest_metadata_cache.so
lib/mysql/mysqlrouter/rest_router.so
lib/mysql/mysqlrouter/rest_routing.so
lib/mysql/mysqlrouter/router_protobuf.so
lib/mysql/mysqlrouter/routing.so
lib/mysql/plugin/adt_null.so
lib/mysql/plugin/auth.so
lib/mysql/plugin/auth_test_plugin.so
lib/mysql/plugin/component_audit_api_message_emit.so
lib/mysql/plugin/component_example_component1.so
lib/mysql/plugin/component_example_component2.so
lib/mysql/plugin/component_example_component3.so
lib/mysql/plugin/component_log_filter_dragnet.so
lib/mysql/plugin/component_log_sink_json.so
lib/mysql/plugin/component_log_sink_syseventlog.so
lib/mysql/plugin/component_log_sink_test.so
lib/mysql/plugin/component_mysqlbackup.so
lib/mysql/plugin/component_mysqlx_global_reset.so
lib/mysql/plugin/component_pfs_example.so
lib/mysql/plugin/component_pfs_example_component_population.so
lib/mysql/plugin/component_test_audit_api_message.so
lib/mysql/plugin/component_test_backup_lock_service.so
lib/mysql/plugin/component_test_component_deinit.so
lib/mysql/plugin/component_test_host_application_signal.so
lib/mysql/plugin/component_test_mysql_current_thread_reader.so
lib/mysql/plugin/component_test_mysql_runtime_error.so
lib/mysql/plugin/component_test_pfs_notification.so
lib/mysql/plugin/component_test_pfs_resource_group.so
lib/mysql/plugin/component_test_status_var_service.so
lib/mysql/plugin/component_test_status_var_service_int.so
lib/mysql/plugin/component_test_status_var_service_reg_only.so
lib/mysql/plugin/component_test_status_var_service_str.so
lib/mysql/plugin/component_test_status_var_service_unreg_only.so
lib/mysql/plugin/component_test_string_service.so
lib/mysql/plugin/component_test_string_service_charset.so
lib/mysql/plugin/component_test_string_service_long.so
lib/mysql/plugin/component_test_sys_var_service.so
lib/mysql/plugin/component_test_sys_var_service_int.so
lib/mysql/plugin/component_test_sys_var_service_same.so
lib/mysql/plugin/component_test_sys_var_service_str.so
lib/mysql/plugin/component_test_system_variable_source.so
lib/mysql/plugin/component_test_udf_registration.so
@comment lib/mysql/plugin/component_test_udf_services.so
lib/mysql/plugin/component_udf_reg_3_func.so
lib/mysql/plugin/component_udf_reg_avg_func.so
lib/mysql/plugin/component_udf_reg_int_func.so
lib/mysql/plugin/component_udf_reg_int_same_func.so
lib/mysql/plugin/component_udf_reg_only_3_func.so
lib/mysql/plugin/component_udf_reg_real_func.so
lib/mysql/plugin/component_udf_unreg_3_func.so
lib/mysql/plugin/component_udf_unreg_int_func.so
lib/mysql/plugin/component_udf_unreg_real_func.so
lib/mysql/plugin/component_validate_password.so
lib/mysql/plugin/connection_control.so
lib/mysql/plugin/daemon_example.ini
lib/mysql/plugin/ddl_rewriter.so
lib/mysql/plugin/group_replication.so
%%NO_EXAMPLE%%lib/mysql/plugin/ha_example.so
lib/mysql/plugin/ha_mock.so
lib/mysql/plugin/component_test_udf_services.so
lib/mysql/plugin/keyring_file.so
lib/mysql/plugin/libdaemon_example.so
lib/mysql/plugin/libtest_framework.so
lib/mysql/plugin/libtest_services.so
lib/mysql/plugin/libtest_services_threaded.so
lib/mysql/plugin/libtest_session_attach.so
lib/mysql/plugin/libtest_session_detach.so
lib/mysql/plugin/libtest_session_in_thd.so
lib/mysql/plugin/libtest_session_info.so
lib/mysql/plugin/libtest_sql_2_sessions.so
lib/mysql/plugin/libtest_sql_all_col_types.so
lib/mysql/plugin/libtest_sql_cmds_1.so
lib/mysql/plugin/libtest_sql_commit.so
lib/mysql/plugin/libtest_sql_complex.so
lib/mysql/plugin/libtest_sql_errors.so
lib/mysql/plugin/libtest_sql_lock.so
lib/mysql/plugin/libtest_sql_processlist.so
lib/mysql/plugin/libtest_sql_replication.so
lib/mysql/plugin/libtest_sql_reset_connection.so
lib/mysql/plugin/libtest_sql_shutdown.so
lib/mysql/plugin/libtest_sql_sqlmode.so
lib/mysql/plugin/libtest_sql_stmt.so
lib/mysql/plugin/libtest_sql_stored_procedures_functions.so
lib/mysql/plugin/libtest_sql_views_triggers.so
lib/mysql/plugin/libtest_x_sessions_deinit.so
lib/mysql/plugin/libtest_x_sessions_init.so
lib/mysql/plugin/locking_service.so
lib/mysql/plugin/mypluglib.so
lib/mysql/plugin/mysql_clone.so
lib/mysql/plugin/mysql_no_login.so
lib/mysql/plugin/pfs_example_plugin_employee.so
lib/mysql/plugin/qa_auth_client.so
lib/mysql/plugin/qa_auth_interface.so
lib/mysql/plugin/qa_auth_server.so
lib/mysql/plugin/replication_observers_example_plugin.so
lib/mysql/plugin/rewrite_example.so
lib/mysql/plugin/rewriter.so
lib/mysql/plugin/semisync_master.so
lib/mysql/plugin/semisync_slave.so
lib/mysql/plugin/test_security_context.so
lib/mysql/plugin/test_services_host_application_signal.so
lib/mysql/plugin/test_services_plugin_registry.so
lib/mysql/plugin/udf_example.so
lib/mysql/plugin/keyring_udf.so
lib/mysql/plugin/test_udf_services.so
lib/mysql/plugin/validate_password.so
lib/mysql/plugin/version_token.so
libexec/mysqld
man/man1/ibd2sdi.1.gz
man/man1/innochecksum.1.gz
man/man1/my_print_defaults.1.gz
man/man1/myisam_ftdump.1.gz
man/man1/myisamchk.1.gz
man/man1/myisamlog.1.gz
man/man1/myisampack.1.gz
man/man1/mysql_secure_installation.1.gz
man/man1/mysql_ssl_rsa_setup.1.gz
man/man1/mysql_tzinfo_to_sql.1.gz
man/man1/mysql_upgrade.1.gz
man/man1/mysql.server.1.gz
man/man1/mysqld_multi.1.gz
man/man1/mysqld_safe.1.gz
man/man1/mysqldumpslow.1.gz
man/man1/mysqlrouter_passwd.1.gz
man/man1/mysqlrouter_plugin_info.1.gz
man/man1/mysqlrouter.1.gz
man/man8/mysqld.8.gz
%%DATADIR%%/bulgarian/errmsg.sys
%%DATADIR%%/charsets/Index.xml
%%DATADIR%%/charsets/README
%%DATADIR%%/charsets/armscii8.xml
%%DATADIR%%/charsets/ascii.xml
%%DATADIR%%/charsets/cp1250.xml
%%DATADIR%%/charsets/cp1251.xml
%%DATADIR%%/charsets/cp1256.xml
%%DATADIR%%/charsets/cp1257.xml
%%DATADIR%%/charsets/cp850.xml
%%DATADIR%%/charsets/cp852.xml
%%DATADIR%%/charsets/cp866.xml
%%DATADIR%%/charsets/dec8.xml
%%DATADIR%%/charsets/geostd8.xml
%%DATADIR%%/charsets/greek.xml
%%DATADIR%%/charsets/hebrew.xml
%%DATADIR%%/charsets/hp8.xml
%%DATADIR%%/charsets/keybcs2.xml
%%DATADIR%%/charsets/koi8r.xml
%%DATADIR%%/charsets/koi8u.xml
%%DATADIR%%/charsets/latin1.xml
%%DATADIR%%/charsets/latin2.xml
%%DATADIR%%/charsets/latin5.xml
%%DATADIR%%/charsets/latin7.xml
%%DATADIR%%/charsets/macce.xml
%%DATADIR%%/charsets/macroman.xml
%%DATADIR%%/charsets/swe7.xml
%%DATADIR%%/czech/errmsg.sys
%%DATADIR%%/danish/errmsg.sys
%%DATADIR%%/dictionary.txt
%%DATADIR%%/dutch/errmsg.sys
%%DATADIR%%/english/errmsg.sys
%%DATADIR%%/estonian/errmsg.sys
%%DATADIR%%/french/errmsg.sys
%%DATADIR%%/german/errmsg.sys
%%DATADIR%%/greek/errmsg.sys
%%DATADIR%%/hungarian/errmsg.sys
%%DATADIR%%/install_rewriter.sql
%%DATADIR%%/italian/errmsg.sys
%%DATADIR%%/japanese/errmsg.sys
%%DATADIR%%/korean/errmsg.sys
%%DATADIR%%/messages_to_clients.txt
%%DATADIR%%/messages_to_error_log.txt
%%DATADIR%%/mysql-log-rotate
%%DATADIR%%/mysql.server
%%DATADIR%%/mysqld_multi.server
%%DATADIR%%/norwegian-ny/errmsg.sys
%%DATADIR%%/norwegian/errmsg.sys
%%DATADIR%%/polish/errmsg.sys
%%DATADIR%%/portuguese/errmsg.sys
%%DATADIR%%/romanian/errmsg.sys
%%DATADIR%%/russian/errmsg.sys
%%DATADIR%%/serbian/errmsg.sys
%%DATADIR%%/slovak/errmsg.sys
%%DATADIR%%/spanish/errmsg.sys
%%DATADIR%%/swedish/errmsg.sys
%%DATADIR%%/ukrainian/errmsg.sys
%%DATADIR%%/uninstall_rewriter.sql
%%DATADIR%%router/docs/sample_mysqlrouter.conf
@dir lib/mysql/plugin/debug
@dir %%DATADIR%%router/docs
@sample(root,wheel,0644) %%ETCDIR%%/my.cnf.sample
@dir(mysql,mysql,0750) %%ETCDIR%%/keyring
@dir(mysql,mysql,0750) %%MY_SECDIR%%
@dir(mysql,mysql,0750) %%MY_TMPDIR%%

29
devel/gmake3/Makefile Normal file
View File

@ -0,0 +1,29 @@
PORTNAME= make
DISTVERSION= 3.81
CATEGORIES= devel
MASTER_SITES= GNU
PKGNAMEPREFIX= g
PKGNAMESUFFIX= 3
# note: before committing to this port, contact portmgr to arrange for an
# experimental ports run. Untested commits may be backed out at portmgr's
# discretion.
MAINTAINER= allanjude@FreeBSD.org
COMMENT= Last GPLv2 version of GNU 'make' utility
WWW= https://www.gnu.org/software/make/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
USES= cpe tar:bz2
CPE_VENDOR= gnu
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
CONFIGURE_ARGS= --program-prefix=g \
--program-suffix=3 \
--disable-nls \
--disable-info \
--without-guile
.include <bsd.port.mk>

3
devel/gmake3/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1747413857
SHA256 (make-3.81.tar.bz2) = f3e69023771e23908f5d5592954d8271d3d6af09693cecfd29cee6fde8550dc8
SIZE (make-3.81.tar.bz2) = 1151445

4
devel/gmake3/pkg-descr Normal file
View File

@ -0,0 +1,4 @@
This is the last GPLv2 licensed version of GNU make.
GNU make is a tool that controls the generation of executables and other
non-source files from source files. Its purpose is the same as that
of the utility make(1).

2
devel/gmake3/pkg-plist Normal file
View File

@ -0,0 +1,2 @@
bin/gmake3
share/man/man1/gmake3.1.gz

38
devel/kati/Makefile Normal file
View File

@ -0,0 +1,38 @@
PORTNAME= kati
MASTER_SITES= http://yhm1.klara.systems/kati/
PORTVERSION= 0.1
CATEGORIES= devel
MAINTAINER= allanjude@FreeBSD.org
COMMENT= Apache licensed replacement for GNU make
WWW= https://github.com/google/kati
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
#Kati is pretending to be gmake, so we can't USES gmake here
##USES= gmake
BUILD_DEPENDS+= gmake>=4.4.1:devel/gmake
CONFIGURE_ENV+= MAKE=gmake
MAKE_CMD= gmake
CONFLICTS_INSTALL= gmake
# PROJECT TOKEN:
# Name: kati-port-ci
# Token: glpat-m9-NUmzPFAWfDFhur99s
# Scopes: read_repository
#USE_GITLAB= yes
#GL_SITE= https://gitlab.klara.systems
#GL_SITE= https://xavier.beaudouin\@klarasystems.com:xMwy3nX7PTwUudg@gitlab.klara.systems
#GL_ACCOUNT= prettybsd
#GL_PROJECT= kati
#GL_TAGNAME= 1dc6868c0a4a6d17bf5527e06a5cb23cac5a6043
NO_CHECKSUM= yes
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/ckati ${STAGEDIR}${PREFIX}/bin/gmake
.include <bsd.port.mk>

1
devel/kati/pkg-descr Normal file
View File

@ -0,0 +1 @@
Kati is an apache licensed replacement for GNU make

1
devel/kati/pkg-plist Normal file
View File

@ -0,0 +1 @@
bin/gmake

6
mail/exim-ldap2/Makefile Normal file
View File

@ -0,0 +1,6 @@
PKGNAMESUFFIX= -ldap2
MASTERDIR= ${.CURDIR}/../exim
OPTIONS_SLAVE= OPENLDAP
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,15 @@
PKGNAMESUFFIX= -monitor
COMMENT= The Exim monitor for the Exim MTA
MASTERDIR= ${.CURDIR}/../exim
EXIMON_ONLY= yes
OPTIONS_SLAVE= EXIMON
# This dependency is disabled, because it prevents package users from
# using the exim-monitor package with any of the exim slave packages.
#
#RUN_DEPENDS= ${LOCALBASE}/sbin/exim:mail/exim
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,12 @@
--- OS/Makefile-Base.orig Wed Aug 15 13:09:05 2001
+++ OS/Makefile-Base Mon Aug 27 14:59:04 2001
@@ -19,7 +19,8 @@
# up-to-date. Then the os-specific source files and the C configuration file
# are set up, and finally it goes to the main Exim target.
-all: $(EDITME) checklocalmake Makefile os.h os.c config.h allexim
+all: $(EDITME) checklocalmake Makefile os.h os.c config.h buildpcre \
+ eximon.bin
checklocalmake:
@if $(SHELL) $(SCRIPTS)/newer $(EDITME)-$(OSTYPE) $(EDITME) || \

View File

@ -0,0 +1,10 @@
--- OS/Makefile-FreeBSD.orig Mon Jun 11 12:04:05 2001
+++ OS/Makefile-FreeBSD Mon Jun 11 12:04:33 2001
@@ -5,6 +5,7 @@
PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout
CHOWN_COMMAND=/usr/sbin/chown
+STRIP_COMMAND=/usr/bin/strip
HAVE_SA_LEN=YES

View File

@ -0,0 +1,55 @@
--- src/EDITME.orig Mon Aug 27 14:35:47 2001
+++ src/EDITME Mon Aug 27 14:37:31 2001
@@ -98,7 +98,7 @@
# /usr/local/sbin. The installation script will try to create this directory,
# and any superior directories, if they do not exist.
-BIN_DIRECTORY=/usr/exim/bin
+BIN_DIRECTORY=XX_PREFIX_XX/sbin
#------------------------------------------------------------------------------
@@ -113,7 +113,7 @@
# directories if they don't exist. It will also install a default run time
# configuration if this file does not exist.
-CONFIGURE_FILE=/usr/exim/configure
+CONFIGURE_FILE=XX_PREFIX_XX/etc/exim/configure
#------------------------------------------------------------------------------
@@ -126,14 +126,14 @@
# owner of a local mailbox.) Specifying these values as root is very strongly
# discouraged. These values are compiled into the binary.
-EXIM_USER=
+EXIM_USER=mailnull
# If the setting of EXIM_USER is numeric (e.g. EXIM_USER=42), there must
# also be a setting of EXIM_GROUP. If, on the other hand, you use a name
# for EXIM_USER (e.g. EXIM_USER=exim), you don't need to set EXIM_GROUP unless
# you want to use a group other than the default group for the given user.
-# EXIM_GROUP=
+EXIM_GROUP=mail
# Many sites define a user called "exim", with an appropriate default group,
# and use
@@ -371,7 +373,7 @@
# %s. This will be replaced by one of the strings "main", "panic", or "reject"
# to form the final file names. Some installations may want something like this:
-# LOG_FILE_PATH=/var/log/exim_%slog
+LOG_FILE_PATH=/var/log/exim/%slog
# which results in files with names /var/log/exim_mainlog, etc. The directory
# in which the log files are placed must exist; Exim does not try to create
@@ -695,7 +705,7 @@
# (process id) to a file so that it can easily be identified. The path of the
# file can be specified here. Some installations may want something like this:
-# PID_FILE_PATH=/var/lock/exim.pid
+PID_FILE_PATH=/var/run/exim.pid
# If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
# using the name "exim-daemon.pid".

View File

@ -0,0 +1,7 @@
The Exim monitor (eximon) is a graphical user interface for the Exim
mail transfer agent for Unix systems. Eximon is distributed as part
of the standard Exim distribution, but its dependency on XFree86
annoys many administrators.
For this reason, it is available as its own package to allow
administrators to easily install Exim without installing XFree86.

View File

@ -0,0 +1,14 @@
[
{ type: install
message: <<EOM
Although the Exim monitor has been correctly installed, please note
that it is useless without the Exim MTA. Install one of the Exim
packages available, which include documentation for the Exim monitor:
exim
exim-ldap2
exim-mysql
exim-postgresql
EOM
}
]

6
mail/exim-mysql/Makefile Normal file
View File

@ -0,0 +1,6 @@
PKGNAMESUFFIX= -mysql
MASTERDIR= ${.CURDIR}/../exim
OPTIONS_SLAVE= MYSQL
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,7 @@
PORTREVISION= 1
PKGNAMESUFFIX= -postgresql
MASTERDIR= ${.CURDIR}/../exim
OPTIONS_SLAVE= PGSQL
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,7 @@
PORTREVISION= 1
PKGNAMESUFFIX= -sqlite
MASTERDIR= ${.CURDIR}/../exim
OPTIONS_SLAVE= SQLITE
.include "${MASTERDIR}/Makefile"

648
mail/exim/Makefile Normal file
View File

@ -0,0 +1,648 @@
PORTNAME= exim
PORTVERSION?= ${EXIM_VERSION}
PORTREVISION?= 0
CATEGORIES= mail
MASTER_SITES= EXIM:exim
MASTER_SITE_SUBDIR= /exim4/:exim \
/exim4/fixes/:exim \
/exim4/old/:exim
DISTNAME= ${PORTNAME}-${EXIM_VERSION}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:exim
DIST_SUBDIR= exim
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= fluffy@FreeBSD.org
COMMENT?= High performance MTA for Unix systems on the Internet
WWW= https://www.exim.org/
LICENSE= GPLv2
BUILD_DEPENDS= p5-File-FcntlLock>0:devel/p5-File-FcntlLock
RUN_DEPENDS= p5-File-FcntlLock>0:devel/p5-File-FcntlLock
USES= compiler cpe tar:bzip2 perl5
USE_CSTD= c99
# Exim build system is job unsafe atm
MAKE_JOBS_UNSAFE= yes
# One can tune the following "hidden" knobs:
# - EXIM_USER: user exim is running as;
# - EXIM_GROUP: ditto for the group;
# - LOGDIR: where Exim logs will be put;
# - LOG_FILE_PATH: path where '%s' will be substituted with
# the target name (main, reject, etc);
# - CONFIG_FILE_PATH: path to the default configuration file;
# - ALT_CONFIG_PREFIX: path to the default prefix for all
# configuration files, excluding the main one;
# will be effective only when WITH_ALT_CONFIG_PREFIX
# will be set via OPTIONS.
.if make(makesum) && !defined(FETCH_ALL)
.error "You forgot to define FETCH_ALL to create the sane distinfo"
.endif
.include "options"
OPTIONS_SUB= yes
AUTH_SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
BDB_USES= bdb
DMARC_LIB_DEPENDS= libopendmarc.so:mail/opendmarc
EXIMON_USES= xorg
EXIMON_USE= xorg=x11,xaw,xext,xmu,xt
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
ICONV_USES= iconv:lib,build
INTERNATIONAL_LIB_DEPENDS= libidn.so:dns/libidn libidn2.so:dns/libidn2
LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb
MYSQL_USES= mysql
OPENLDAP_USES= ldap
PGSQL_LIB_DEPENDS= libicudata.so:devel/icu
PGSQL_USES= pgsql pkgconfig
REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis
SASLAUTHD_RUN_DEPENDS= ${LOCALBASE}/sbin/saslauthd:security/cyrus-sasl2-saslauthd
SA_EXIM_RUN_DEPENDS= ${LOCALBASE}/bin/spamc:mail/spamassassin
SPF_LIB_DEPENDS= libspf2.so:mail/libspf2
SQLITE_LIB_DEPENDS= libicudata.so:devel/icu
SQLITE_USES= pkgconfig sqlite
#DEBIAN_PATCHES_PREFIX= ${FILESDIR}/debian/75
#EXTRA_PATCHES= \
# ${DEBIAN_PATCHES_PREFIX}_01-Fix-exit-on-attempt-to-rewrite-a-malformed-address.-.patch:-p1 \
# ${DEBIAN_PATCHES_PREFIX}_05-SPF-fix-memory-accounting-for-error-case.patch:-p1
.include <bsd.port.options.mk>
# OCSP is supported for openssl only
.if ${PORT_OPTIONS:MOCSP}
.if ! ${PORT_OPTIONS:MTLS}
IGNORE= you cannot enable OCSP stapling without TLS support
.elif ${PORT_OPTIONS:MGNUTLS}
IGNORE= you cannot enable OCSP stapling with gnutls
.endif
.endif
# DMARC implies SPF and DKIM
.if ${PORT_OPTIONS:MDMARC}
.if ! ${PORT_OPTIONS:MSPF} || ! ${PORT_OPTIONS:MDKIM}
IGNORE= you cannot enable DMARC without SPF and DKIM support
.endif
.endif
# ARC implies SPF and DKIM
.if ${PORT_OPTIONS:MARC}
.if ! ${PORT_OPTIONS:MSPF} || ! ${PORT_OPTIONS:MDKIM}
IGNORE= you cannot enable ARC without SPF and DKIM support
.endif
.endif
# DANE implies DNSSEC
.if ${PORT_OPTIONS:MDANE}
.if ! ${PORT_OPTIONS:MDNSSEC} || ! ${PORT_OPTIONS:MTLS}
IGNORE= you cannot enable DANE without DNSSEC support or without TLS support
.endif
.endif
.if ${PORT_OPTIONS:MSA_EXIM} || defined(FETCH_ALL)
BROKEN= Unmaintained extension
MASTER_SITES+= http://marc.merlins.org/linux/exim/files/:sa_exim \
SF/sa-exim/sa-exim/${SA_EXIM_VERSION}:sa_exim
DISTFILES+= sa-exim-${SA_EXIM_VERSION}.tar.gz:sa_exim
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-Local-sa-exim.c
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-Local-sa-exim.conf
.endif
EXIM_VERSION= 4.99.1
SA_EXIM_VERSION=4.2.1
EXIM_INSTALL_ARG+= "-no_chown" "-no_symlink"
EXTRA_PATCHES+= `${FIND} ${PATCHDIR} -name '74_*.patch'|${SORT} -h`
.if !defined(EXIMON_ONLY)
PLIST_SUB+= EXIM=""
.if defined(PKGNAMESUFFIX)
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-4.*
.endif
.for suffix in -ldap2 -mysql -postgresql -sa-exim -sqlite
.if !defined(PKGNAMESUFFIX) || ${PKGNAMESUFFIX} != ${suffix}
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}${suffix}-4.*
.endif
.endfor
.if ${PORT_OPTIONS:MEXIMON}
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-monitor-4.*
.endif
PKGMESSAGE= ${WRKDIR}/POST-INSTALL-NOTES
.else # !EXIMON_ONLY
PLIST_SUB+= EXIM="@comment "
PORT_OPTIONS+= EXIMON
PKGMESSAGE= ${WRKDIR}/pkg-message
EXIM_INSTALL_ARG+= "eximon" "eximon.bin"
.endif # !EXIMON_ONLY
PORTDOC_BASE= ACKNOWLEDGMENTS NOTICE README.UPDATING
PORTDOC_FILES= ChangeLog NewStuff DANE-draft-notes \
OptionLists.txt README README.SIEVE dbm.discuss.txt \
experimental-spec.txt filter.txt spec.txt
PORT_EXAMPLES= transport-filter.pl
DAILY_SCRIPTS= 150.exim-tidydb 460.exim-mail-rejects
MAKE_ENV+= OSTYPE="${OPSYS}" ARCHTYPE="${ARCH}" DUMMY_LDFLAGS="${DUMMY_LDFLAGS}" STRIP_COMMAND="${STRIP_CMD}"
EXIM_USER?= mailnull
EXIM_GROUP?= mail
# Default user/group are system ones, so we don't want to check them
.if ${EXIM_USER} != "mailnull"
USERS= ${EXIM_USER}
.endif
.if ${EXIM_GROUP} != "mail"
GROUPS= ${EXIM_GROUP}
.endif
LOGDIR?= /var/log/exim
LOG_FILE_PATH?= ${LOGDIR}/%slog
CONFIG_FILE_PATH?= ${PREFIX}/etc/exim/configure
ALT_CONFIG_PREFIX?= ${PREFIX}/etc/exim/
EXIM_DYNAMIC_LDFLAGS= -fPIC -rdynamic -Wl,--export-dynamic
SED_SCRIPT= -e 's,%%PREFIX%%,${PREFIX},g' \
-e 's,%%DOCSDIR%%,${DOCSDIR},g' \
-e 's,%%EXAMPLESDIR%%,${EXAMPLESDIR},g' \
-e 's,%%EXIM_USER%%,${EXIM_USER},g' \
-e 's,%%EXIM_GROUP%%,${EXIM_GROUP},g' \
-e 's,%%LOGDIR%%,${LOGDIR},g'
SEDLIST+= -e 's,XX_CFLAGS_XX,${CFLAGS:S/,/\\,/g},' \
-e 's,XX_PREFIX_XX,${PREFIX:S/,/\\,/g},' \
-e 's,XX_LOCALBASE_XX,${LOCALBASE:S/,/\\,/g},' \
-e 's,XX_LOG_FILE_PATH_XX,${LOG_FILE_PATH:S/,/\\,/g},' \
-e 's,XX_CONFIG_FILE_PATH_XX,${CONFIG_FILE_PATH:S/,/\\,/g},' \
-e 's,XX_ALT_CONFIG_PREFIX_XX,${ALT_CONFIG_PREFIX:S/,/\\,/g},' \
-e 's,XX_EXIM_USER_XX,${EXIM_USER:S/,/\\,/g},' \
-e 's,XX_EXIM_GROUP_XX,${EXIM_GROUP:S/,/\\,/g},' \
-e 's,XX_DEFAULT_CHARSET_XX,${WITH_DEFAULT_CHARSET:S/,/\\,/g},' \
-e 's,XX_DYNAMIC_LDFLAGS_XX,${EXIM_DYNAMIC_LDFLAGS:S/,/\\,/g},'
PLIST_SUB+= EXIM_VERSION="${EXIM_VERSION}-${PORTREVISION}" \
EXIM_USER=${EXIM_USER} \
EXIM_GROUP=${EXIM_GROUP} \
LOGDIR="${LOGDIR:S/^\///}"
# Exim refuses to run local deliveries as root by default. You can
# add other users to this colon-separated list that cannot be
# overridden at runtime below, but are advised not to remove "root".
#WITH_FIXED_NEVER_USERS= root:daemon:bin
# When Exim is decoding MIME "words" in header lines it converts any foreign
# character sets to the one that is set in the headers_charset option.
# The default setting is defined by this setting:
WITH_DEFAULT_CHARSET?= ISO-8859-1
# You should not need to fiddle with anything below this point.
LIB_DEPENDS+= libpcre2-posix.so:devel/pcre2
.if ! ${PORT_OPTIONS:MDKIM}
SEDLIST+= -e 's,^\# (DISABLE_DKIM=),\1,'
.endif
.if ${PORT_OPTIONS:MLISTMATCH_RHS}
SEDLIST+= -e 's,^\# (EXPAND_LISTMATCH_RHS=),\1,'
.endif
.if ${PORT_OPTIONS:MDCC}
SEDLIST+= -e 's,^\# (EXPERIMENTAL_DCC=),\1,'
.endif
.if ${PORT_OPTIONS:MPROXY}
SEDLIST+= -e 's,^\# (SUPPORT_PROXY=),\1,'
.endif
.if ${PORT_OPTIONS:MCERTNAMES}
SEDLIST+= -e 's,^\# (EXPERIMENTAL_CERTNAMES=),\1,'
.endif
.if ${PORT_OPTIONS:MDSN}
SEDLIST+= -e 's,^\# (EXPERIMENTAL_DSN=),\1,'
.endif
.if !${PORT_OPTIONS:MDANE}
SEDLIST+= -e 's,^(SUPPORT_DANE=),\#\1,'
.endif
.if ${PORT_OPTIONS:MARC}
SEDLIST+= -e 's,^\# (EXPERIMENTAL_ARC=),\1,'
.endif
.if !${PORT_OPTIONS:MEVENT}
SEDLIST+= -e 's,^\# (DISABLE_EVENT=),\1,'
.endif
.if ${PORT_OPTIONS:MINTERNATIONAL}
SEDLIST+= -e 's,^\# (SUPPORT_I18N=),\1,' \
-e 's,^\# (SUPPORT_I18N_2008=),\1,' \
-e 's,XX_IDN_LIBS_XX,-L${LOCALBASE}/lib -lidn -lidn2,'
.else
SEDLIST+= -e 's,XX_IDN_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MSOCKS}
SEDLIST+= -e 's,^\# (SUPPORT_SOCKS=),\1,'
.endif
.if !${PORT_OPTIONS:MPRDR}
SEDLIST+= -e 's,^\# (DISABLE_PRDR=),\1,'
.endif
.if !${PORT_OPTIONS:MOCSP}
SEDLIST+= -e 's,^\# (DISABLE_OCSP=),\1,'
.endif
.if !${PORT_OPTIONS:MDNSSEC}
SEDLIST+= -e 's,^\# (DISABLE_DNSSEC=),\1,'
.endif
.if ${PORT_OPTIONS:MDMARC}
SEDLIST+= -e 's,XX_DMARC_LIBS_XX,-L${LOCALBASE}/lib -lopendmarc,' \
-e 's,^\# (SUPPORT_DMARC=),\1,'
.else
SEDLIST+= -e 's,XX_DMARC_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MWISHLIST}
EXTRA_PATCHES+= `${FIND} ${PATCHDIR} -name 'wishlist-*.patch'`
.endif
.if ${PORT_OPTIONS:MFIXED_NEVER_USERS}
SEDLIST+= -e 's,^(FIXED_NEVER_USERS=).*,\1${WITH_FIXED_NEVER_USERS:S/,/\\,/g},'
.endif
.if ${PORT_OPTIONS:MEXIMON}
SEDLIST+= -e 's,^\# (EXIM_MONITOR=),\1,'
.endif
.if ${PORT_OPTIONS:MTLS}
.if ! ${PORT_OPTIONS:MGNUTLS}
USES+= ssl
SEDLIST+= -e 's,^\# (USE_OPENSSL=),\1,'
SEDLIST+= -e 's,^\# (TLS_LIBS=.*-lssl[[:space:]]),\1,'
BROKEN_SSL= openssl31
BROKEN_SSL_REASON= error: token is not a valid binary operator in a preprocessor subexpression
.else
SEDLIST+= -e 's,^\# (USE_GNUTLS=),\1,'
SEDLIST+= -e 's,^\# (TLS_LIBS=.*-lgnutls[[:space:]]),\1,'
.endif
.else # TLS support
SEDLIST+= -e 's,^\# (DISABLE_TLS=),\1,'
.endif
.if ${PORT_OPTIONS:MEMBEDDED_PERL}
SEDLIST+= -e 's,^\# (EXIM_PERL=),\1,'
.endif
.if ${PORT_OPTIONS:MICONV}
SEDLIST+= -e 's,XX_ICONV_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib ${ICONV_LIB},' \
-e 's,^\# (HAVE_ICONV=),\1,'
.else
SEDLIST+= -e 's,XX_ICONV_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MOPENLDAP}
LDAP_LIB_TYPE= OPENLDAP2
SEDLIST+= -e 's,XX_LDAP_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -llber -lldap,' \
-e 's,XX_LDAP_INCLUDE_XX,-I${LOCALBASE:S/,/\\,/g}/include,' \
-e 's,XX_LDAP_TYPE_XX,${LDAP_LIB_TYPE:S/,/\\,/g},' \
-e 's,^\# (LOOKUP_LDAP=),\1,'
.else
SEDLIST+= -e 's,XX_LDAP_[^ ]*_XX,,' \
-e 's,^(LDAP_LIB_TYPE=),\# \1,'
.endif
.if ${PORT_OPTIONS:MBDB}
INVALID_BDB_VER= 2 3 6 18
DB_LIBS= -L${BDB_LIB_DIR} -l${BDB_LIB_NAME}
DB_INCLUDES= -I${BDB_INCLUDE_DIR}
.else
DB_LIBS=
DB_INCLUDES=
SEDLIST+= -e 's,^(DBMLIB=),\# \1,'
.endif
SEDLIST+= -e 's,XX_DB_LIBS_XX,${DB_LIBS:S/,/\\,/g},' \
-e 's,XX_DB_INCLUDES_XX,${DB_INCLUDES:S/,/\\,/g},'
.if ${PORT_OPTIONS:MLMDB}
_LMDB_LIBS= -L${LOCALBASE}/lib -llmdb
_LMDB_INCLUDES= -I${LOCALBASE}/include
SEDLIST+= -e 's,^\# (EXPERIMENTAL_LMDB=),\1,'
.else
_LMDB_LIBS=
_LMDB_INCLUDES=
.endif
SEDLIST+= -e 's,XX_LMDB_LIBS_XX,${_LMDB_LIBS:S/,/\\,/g},' \
-e 's,XX_LMDB_INCLUDES_XX,${_LMDB_INCLUDES:S/,/\\,/g},'
.if ${PORT_OPTIONS:MMYSQL}
SEDLIST+= -e 's,XX_MYSQL_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib/mysql -l${_MYSQL_SHLIB:S/lib//},' \
-e 's,XX_MYSQL_INCLUDE_XX,-I${LOCALBASE:S/,/\\,/g}/include/mysql,' \
-e 's,^\# (LOOKUP_MYSQL=),\1,'
.else
SEDLIST+= -e 's,XX_MYSQL_[^ ]*_XX,,'
.endif
.if ${PORT_OPTIONS:MSASLAUTHD}
SASLAUTHD_SOCKET?= /var/run/saslauthd/mux
SEDLIST+= -e 's,^\# (CYRUS_SASLAUTHD_SOCKET=).*,\1${SASLAUTHD_SOCKET:S/,/\\,/g},'
.endif
.if ${PORT_OPTIONS:MPAM}
SEDLIST+= -e 's,XX_PAM_LIBS_XX,-lpam,' \
-e 's,^\# (SUPPORT_PAM=),\1,'
.else
SEDLIST+= -e 's,XX_PAM_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MAUTH_CRAM_MD5}
SEDLIST+= -e 's,^\# (AUTH_CRAM_MD5=),\1,'
.endif
.if ${PORT_OPTIONS:MAUTH_PLAINTEXT}
SEDLIST+= -e 's,^\# (AUTH_PLAINTEXT=),\1,'
.endif
.if ${PORT_OPTIONS:MAUTH_DOVECOT}
SEDLIST+= -e 's,^\# (AUTH_DOVECOT=),\1,'
.endif
.if ${PORT_OPTIONS:MAUTH_SPA}
SEDLIST+= -e 's,^\# (AUTH_SPA=),\1,'
.endif
.if ${PORT_OPTIONS:MAUTH_SASL}
SEDLIST+= -e 's,^\# (AUTH_CYRUS_SASL=),\1,' \
-e 's,^\# (AUTH_LIBS=.*-lsasl2),\1,'
.endif
.if ${PORT_OPTIONS:MAUTH_TLS}
SEDLIST+= -e 's,^\# (AUTH_TLS=),\1,'
.endif
.if ${PORT_OPTIONS:MAUTH_RADIUS}
WITH_RADIUS_TYPE?= RADLIB
.if ${WITH_RADIUS_TYPE:tl} == radlib
SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,-lradius,' \
-e 's,^\# (RADIUS_CONFIG_FILE=).*,\1/etc/radius.conf,' \
-e 's,^\# (RADIUS_LIB_TYPE=).*,\1RADLIB,'
.elif ${WITH_RADIUS_TYPE:tl} == radiusclient
LIB_DEPENDS+= libfreeradius-client.so:net/freeradius-client
SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -lfreeradius-client,' \
-e 's,^\# (RADIUS_CONFIG_FILE=).*,\1${LOCALBASE:S/,/\\,/g}/etc/radiusclient/radiusclient.conf,' \
-e 's,^\# (RADIUS_LIB_TYPE=).*,\1RADIUSCLIENTNEW,'
.else
IGNORE= the variable WITH_RADIUS_TYPE must be either RADLIB or RADIUSCLIENT
.endif
.else
SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MPGSQL}
SEDLIST+= -e 's,XX_PGSQL_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -lpq,' \
-e 's,XX_PGSQL_INCLUDE_XX,-I${LOCALBASE:S/,/\\,/g}/include/pgsql,' \
-e 's,^\# (LOOKUP_PGSQL=),\1,'
.else
SEDLIST+= -e 's,XX_PGSQL_[^ ]*_XX,,'
.endif
.if ! ${PORT_OPTIONS:MPGSQL} && ! ${PORT_OPTIONS:MMYSQL} && !defined(LDAP_LIB_TYPE) && \
! ${PORT_OPTIONS:MBDB} && ! ${PORT_OPTIONS:MLMDB}
SEDLIST+= -e 's,^(LOOKUP_LIBS=),\# \1,' \
-e 's,^(LOOKUP_INCLUDE=),\# \1,'
.endif
.if ! ${PORT_OPTIONS:MDNSDB}
SEDLIST+= -e 's,^(LOOKUP_DNSDB=),\# \1,'
.endif
.if ${PORT_OPTIONS:MMAILDIR}
SEDLIST+= -e 's,^\# (SUPPORT_MAILDIR=),\1,'
.endif
.if ${PORT_OPTIONS:MMAILSTORE}
SEDLIST+= -e 's,^\# (SUPPORT_MAILSTORE=),\1,'
.endif
.if ${PORT_OPTIONS:MMBX}
SEDLIST+= -e 's,^\# (SUPPORT_MBX=),\1,'
.endif
.if ${PORT_OPTIONS:MCDB}
SEDLIST+= -e 's,^\# (LOOKUP_CDB=),\1,'
.endif
.if ${PORT_OPTIONS:MDSEARCH}
SEDLIST+= -e 's,^\# (LOOKUP_DSEARCH=),\1,'
.endif
.if ! ${PORT_OPTIONS:MLSEARCH}
SEDLIST+= -e 's,^(LOOKUP_LSEARCH=),\# \1,'
.endif
.if ${PORT_OPTIONS:MNIS}
SEDLIST+= -e 's,^\# (LOOKUP_NIS=),\1,'
.endif
.if ${PORT_OPTIONS:MPASSWD}
SEDLIST+= -e 's,^\# (LOOKUP_PASSWD=),\1,'
.endif
.if ${PORT_OPTIONS:MSQLITE}
SEDLIST+= -e 's,XX_SQLITE_LIBS_XX,`pkg-config --static --libs sqlite3`,' \
-e 's,XX_SQLITE_FLAGS_XX,`pkg-config --cflags sqlite3`,' \
-e 's,^\# (LOOKUP_SQLITE=),\1,'
.else
SEDLIST+= -e 's,XX_SQLITE_LIBS_XX,,' \
-e 's,XX_SQLITE_FLAGS_XX,,'
.endif
.if ${PORT_OPTIONS:MREDIS}
SEDLIST+= -e 's,XX_REDIS_LIBS_XX,-L${LOCALBASE}/lib -lhiredis,' \
-e 's,^\# (LOOKUP_REDIS=),\1,' \
-e 's,^\# (REDIS=),\1,'
.else
SEDLIST+= -e 's,XX_REDIS_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MLMTP}
SEDLIST+= -e 's,^\# (TRANSPORT_LMTP=),\1,'
.endif
.if ! ${PORT_OPTIONS:MALT_CONFIG_PREFIX}
SEDLIST+= -e 's,^(ALT_CONFIG_PREFIX=),\# \1,'
.endif
.if ${PORT_OPTIONS:MSPF}
SEDLIST+= -e 's,XX_SPF_FLAGS_XX,-DSPF,' \
-e 's,XX_SPF_LIBS_XX,-L${LOCALBASE}/lib -lspf2 -lpthread,' \
-e 's,^\# (SUPPORT_SPF=),\1,'
.else
SEDLIST+= -e 's,XX_SPF_FLAGS_XX,,' \
-e 's,XX_SPF_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MSRS}
SEDLIST+= -e 's,XX_SRS_FLAGS_XX,-DSUPPORT_SRS,' \
-e 's,XX_SRS_LIBS_XX,,'
.elif ${PORT_OPTIONS:MOLD_SRS}
LIB_DEPENDS+= libsrs_alt.so:mail/libsrs_alt
SEDLIST+= -e 's,XX_SRS_FLAGS_XX,-DEXPERIMENTAL_SRS_ALT,' \
-e 's,XX_SRS_LIBS_XX,-L${LOCALBASE}/lib -lsrs_alt,'
.else
SEDLIST+= -e 's,XX_SRS_FLAGS_XX,,' \
-e 's,XX_SRS_LIBS_XX,,'
.endif
.if ${PORT_OPTIONS:MREADLINE}
SEDLIST+= -e 's,^\# (USE_READLINE=),\1,'
.endif
.if ${PORT_OPTIONS:MCONTENT_SCAN}
SEDLIST+= -e 's,^\# (WITH_CONTENT_SCAN=),\1,'
.endif
.if !defined(EXIMON_ONLY) && ${PORT_OPTIONS:MDAEMON}
USE_RC_SUBR= exim
PLIST_SUB+= EXIMDAEMON=""
SUB_LIST+= LOGDIR="${LOGDIR}"
.else
PLIST_SUB+= EXIMDAEMON="@comment "
.endif
.if ${PORT_OPTIONS:MIPV6}
SEDLIST+= -e 's,^\# (HAVE_IPV6=),\1,'
.endif
.if ${PORT_OPTIONS:MDISABLE_D_OPT}
SEDLIST+= -e 's,^\# (DISABLE_D_OPTION=),\1,'
.else
.if defined(WHITELIST_D_MACROS)
SEDLIST+= -e 's,^\# (WHITELIST_D_MACROS=).*$$,\1${WHITELIST_D_MACROS:S/,/\\,/g},'
.endif
.endif
.if defined(TRUSTED_CONFIG_LIST)
SEDLIST+= -e 's,^\# (TRUSTED_CONFIG_LIST=).*$$,\1${TRUSTED_CONFIG_LIST:S/,/\\,/g},'
.endif
.if ${PORT_OPTIONS:MQUEUEFILE}
SEDLIST+= -e 's,^\# (EXPERIMENTAL_QUEUEFILE=),\1,'
.endif
MAKE_ENV+= INSTALL_ARG="${EXIM_INSTALL_ARG}"
DUMMY_LDFLAGS!= ${ECHO_CMD} ${LDFLAGS} | ${SED} -e 's|-Wl,-rpath|-Wl,-DUMMYrpath|g; s|-rpath|-Wl,-rpath|g; s|-DUMMYrpath|-rpath|g'
pre-everything::
@${ECHO} 'Exim now drops privileges when alternate configuration'
@${ECHO} 'files are used. You can set make variable TRUSTED_CONFIG_LIST'
@${ECHO} 'to specify the list of configuration files for which'
@${ECHO} 'root privileges will be retained.'
@${ECHO} ''
@${ECHO} 'You can whitelist some macros using the make variable'
@${ECHO} 'WHITELIST_D_MACROS. This is useful if you are running'
@${ECHO} 'with DISABLE_D_OPT set, but macros whitelisting will be'
@${ECHO} 'removed in some future Exim release, so it is better'
@${ECHO} 'to use TRUSTED_CONFIG_LIST to set the list of trusted'
@${ECHO} 'configuration files.'
.if empty(.MAKEFLAGS:M-s) && ${PORT_OPTIONS:MWISHLIST}
@${ECHO} ''
@${ECHO} 'Included extra patches:'
@${FIND} ${PATCHDIR} -name 'wishlist-*.patch' \
-exec ${SED} -ne 's,^# , ,p' {} \;
@${ECHO} ''
.endif
post-extract:
.if ${PORT_OPTIONS:MSA_EXIM}
@cd ${WRKDIR} && ${TAR} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/sa-exim-${SA_EXIM_VERSION}.tar.gz ${EXTRACT_AFTER_ARGS}
@@${CP} ${WRKDIR}/sa-exim-${SA_EXIM_VERSION}/sa-exim.c ${WRKSRC}/Local
@@${CP} ${WRKDIR}/sa-exim-${SA_EXIM_VERSION}/sa-exim.conf ${WRKSRC}/Local
.endif
do-configure:
@${MKDIR} ${WRKSRC}/Local
@${SED} -E ${SEDLIST} ${WRKSRC}/src/EDITME > ${WRKSRC}/Local/Makefile
.if ${PORT_OPTIONS:MEXIMON}
@${CP} ${WRKSRC}/exim_monitor/EDITME ${WRKSRC}/Local/eximon.conf
.endif
@${REINPLACE_CMD} -E ${SEDLIST} ${WRKSRC}/src/configure.default
@${REINPLACE_CMD} -e 's!$$(LDFLAGS)!$$(DUMMY_LDFLAGS) -L$${LOCALBASE}/lib!' ${WRKSRC}/OS/Makefile-Base
@${REINPLACE_CMD} -e 's/"(Exim $$version_number)\\n\\t"/"(Exim $$version_number (${OPSYS}))\\n\\t"/' \
${WRKSRC}/src/globals.c
@${REINPLACE_CMD} -e 's/Exim version %s \(#%s \)\{0,1\}/&(${OPSYS} ${OSREL}) /' ${WRKSRC}/src/exim.c
@${REINPLACE_CMD} -e 's/^#include "cnumber\.h"$$/${PORTREVISION}/' ${WRKSRC}/src/version.c
@${REINPLACE_CMD} -E -e 's/^(PERL_COMMAND=).*/\1${PERL:S,/,\/,g}/' \
-e 's/^(CC=).*/\1${CC:S,/,\/,g}/' ${WRKSRC}/OS/Makefile-Default
.if ${PORT_OPTIONS:MSA_EXIM}
@${REINPLACE_CMD} -E -e 's/^\# (HAVE_LOCAL_SCAN=).*/\1yes/' \
${WRKSRC}/OS/Makefile-Default
@${REINPLACE_CMD} -E -e 's/^(LOCAL_SCAN_SOURCE=).*/\1Local\/sa-exim.c/' \
${WRKSRC}/OS/Makefile-Default
@{ \
${ECHO_CMD} "char *version=\"${SA_EXIM_VERSION}\";"; \
${ECHO_CMD} "#define SPAMC_LOCATION \"${LOCALBASE}/bin/spamc\""; \
${ECHO_CMD} "#define SPAMASSASSIN_CONF \"${PREFIX}/etc/exim/sa-exim.conf\""; \
} > ${WRKSRC}/Local/sa-exim.h
@${REINPLACE_CMD} -e 's,/usr/bin/spamc,${LOCALBASE}/bin/spamc,' \
${WRKSRC}/Local/sa-exim.conf
.endif
@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} configure)
post-build:
.for script in ${DAILY_SCRIPTS}
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script}.sh > ${WRKDIR}/${script}.sh
.endfor
@${SED} ${SED_SCRIPT} ${FILESDIR}/POST-INSTALL-NOTES > \
${WRKDIR}/POST-INSTALL-NOTES
@${SED} ${SED_SCRIPT} ${FILESDIR}/POST-INSTALL-NOTES.clamd > ${WRKDIR}/POST-INSTALL-NOTES.clamd
@${SED} ${SED_SCRIPT} ${FILESDIR}/POST-INSTALL-NOTES > ${WRKDIR}/POST-INSTALL-NOTES
@[ ! -f ${PKGDIR}/pkg-message ] || ${SED} ${SED_SCRIPT} ${PKGDIR}/pkg-message > ${WRKDIR}/pkg-message
.if !defined(EXIMON_ONLY)
post-install:
.if ${PORT_OPTIONS:MDAEMON}
${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily
.for script in ${DAILY_SCRIPTS}
${INSTALL_SCRIPT} ${WRKDIR}/${script}.sh ${STAGEDIR}${PREFIX}/etc/periodic/daily/${script}
.endfor
.endif
@${MKDIR} -m 750 ${STAGEDIR}${LOGDIR}
${INSTALL_MAN} ${WRKSRC}/doc/exim.8 ${STAGEDIR}${PREFIX}/share/man/man8
.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKDIR}/POST-INSTALL-NOTES ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKDIR}/POST-INSTALL-NOTES.clamd ${STAGEDIR}${DOCSDIR}
.for docfile in ${PORTDOC_BASE}
${INSTALL_DATA} ${WRKSRC}/${docfile} ${STAGEDIR}${DOCSDIR}
.endfor
.for docfile in ${PORTDOC_FILES}
${INSTALL_DATA} ${WRKSRC}/doc/${docfile} ${STAGEDIR}${DOCSDIR}
.endfor
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
.for example in ${PORT_EXAMPLES}
${INSTALL_SCRIPT} ${WRKSRC}/build-${OPSYS}-${ARCH}/${example} ${STAGEDIR}${EXAMPLESDIR}
.endfor
.endif
.if ${PORT_OPTIONS:MSA_EXIM}
${INSTALL_DATA} ${WRKSRC}/Local/sa-exim.conf \
${STAGEDIR}${PREFIX}/etc/exim/sa-exim.conf.sample
.endif
.endif # ! defined(EXIMON_ONLY)
.include <bsd.port.pre.mk>
# If using clang, avoid too many warnings due to Exim code style
.if ${CHOSEN_COMPILER_TYPE} == "clang"
EXIM_WARN_FLAGS?= -Wno-logical-op-parentheses -Wno-macro-redefined -Wno-parentheses -Wno-dangling-else
.endif
CFLAGS+= ${EXIM_WARN_FLAGS}
.include <bsd.port.post.mk>

5
mail/exim/distinfo Normal file
View File

@ -0,0 +1,5 @@
TIMESTAMP = 1765991031
SHA256 (exim/exim-4.99.1.tar.bz2) = 9152a6e8a76103b33ea3fef255d8b296f368c9b0f710cd4ef4fd54fca6a742ae
SIZE (exim/exim-4.99.1.tar.bz2) = 2135201
SHA256 (exim/sa-exim-4.2.1.tar.gz) = 24d4bf7b0fdddaea11f132981cebb6a86a4ab20ef54111a8ebd481b421c6e2c1
SIZE (exim/sa-exim-4.2.1.tar.gz) = 68933

View File

@ -0,0 +1,49 @@
#!/bin/sh
#
# Exim hints database maintenance
#
# contributed by: Oliver Eikemeier <eikemeier@fillmore-labs.com>
#
# If there is a global system configuration file, suck it in.
#
if [ -r /etc/defaults/periodic.conf ]; then
. /etc/defaults/periodic.conf
source_periodic_confs
fi
: ${exim_tidydb_enable="YES"}
: ${exim_tidydb="%%PREFIX%%/sbin/exim_tidydb"}
# Set this to arbitrary shell command to filter
# the output from this periodic script, for example,
# exim_tidydb_filter="| tail -100".
: ${exim_tidydb_filter=""}
: ${exim_dbdir="/var/spool/exim"}
tidy () {
for db in "$exim_dbdir"/db/*.lockfile; do
[ "$db" = "$exim_dbdir/db/*.lockfile" ] && continue
echo
db_name=`basename "$db" .lockfile`
if [ -e "${exim_dbdir}/db/${db_name}.db" ]; then
"$exim_tidydb" "$exim_dbdir" "$db_name"
fi
done
}
case "$exim_tidydb_enable" in
[Yy][Ee][Ss])
echo ""
echo "Tidying Exim hints databases:"
eval tidy "$exim_tidydb_filter"
if [ $? = 0 ]; then
rc=0
else
rc=1
fi
;;
*) rc=0;;
esac
exit $rc

View File

@ -0,0 +1,66 @@
#!/bin/sh
#
# Check for rejected mail
# Log lines that end with ' : IGNORE' will not be reported
#
# contributed by: Oliver Eikemeier <eikemeier@fillmore-labs.com>
#
# If there is a global system configuration file, suck it in.
#
if [ -r /etc/defaults/periodic.conf ]
then
. /etc/defaults/periodic.conf
source_periodic_confs
fi
: ${exim_status_mail_rejects_enable="YES"}
: ${exim_status_mail_rejects_logs=2}
: ${exim_rejectlog="%%LOGDIR%%/rejectlog"}
case "$exim_status_mail_rejects_enable" in
[Yy][Ee][Ss])
if [ ! -d `dirname "$exim_rejectlog"` ]
then
echo '$exim_status_mail_rejects_enable is set but' \
"`dirname "$exim_rejectlog"` doesn't exist"
rc=2
elif [ "$exim_status_mail_rejects_logs" -le 0 ]
then
echo '$exim_status_mail_rejects_enable is set but' \
'$exim_status_mail_rejects_logs is not greater than zero'
rc=2
else
echo
echo "Checking for rejected mail:"
start=`date -v-1d '+%Y-%m-%d'`
n=$(($exim_status_mail_rejects_logs - 2))
rc=$({
while [ $n -ge 0 ]
do
if [ -f "$exim_rejectlog.$n" ]
then
cat "$exim_rejectlog.$n"
elif [ -f "$exim_rejectlog.$n.gz" ]
then
zcat -fc "$exim_rejectlog.$n.gz"
elif [ -f "$exim_rejectlog.$n.bz2" ]
then
bzcat -fc "$exim_rejectlog.$n.bz2"
fi
n=$(($n - 1))
done
if [ -f "$exim_rejectlog" ]
then
cat "$exim_rejectlog"
fi
} |
grep -e "^$start" | grep -v ' : IGNORE$' | tee /dev/stderr | wc -l)
[ $rc -gt 0 ] && rc=1
fi;;
*) rc=0;;
esac
exit $rc

View File

@ -0,0 +1,48 @@
[
{ type: install
message: <<EOM
The following documentation has been installed:
man exim -> Exim options (command line)
%%DOCSDIR%%/spec.txt -> Exim Specification (User Guide)
%%DOCSDIR%%/filter.txt -> Exim Filter Specification (for end-users)
Postscript, PDF, HTML and texinfo versions of these documents can be
installed via one of the mail/exim-doc-* ports.
An online version as well as a comprehensive FAQ and a mailing list
archive is available at:
http://www.exim.org/
Descriptions of new features not available it the manual, and a listing
of all changes, including bug fixes are documented in:
%%DOCSDIR%%/NewStuff
%%DOCSDIR%%/ChangeLog
To use Exim instead of sendmail on startup:
*) Clear the sendmail queue and stop the sendmail daemon.
*) Adjust mailer.conf(5) as appropriate.
*) Set the 'sendmail_enable' rc.conf(5) variable to 'NONE'.
*) Set the 'daily_status_include_submit_mailq' and
'daily_clean_hoststat_enable' periodic.conf(5)
variables to 'NO'.
*) Consider setting 'daily_queuerun_enable' and
'daily_submit_queuerun' to "NO" in periodic.conf(5),
if you intend to manage queue runners / deliveries closely.
*) Set the 'exim_enable' rc.conf(5) variable to 'YES'.
*) Start exim with '%%PREFIX%%/etc/rc.d/exim start'.
You may also want to configure newsyslog(8) to rotate Exim log files:
%%LOGDIR%%/mainlog mailnull:mail 640 7 * @T00 ZN
%%LOGDIR%%/rejectlog mailnull:mail 640 7 * @T00 ZN
Additional scripts to help upgrading are installed in:
%%EXAMPLESDIR%%
EOM
}
]

View File

@ -0,0 +1,52 @@
[
{ type: install
message: <<EOM
The following steps will enable clamd malware scanning using exiscan ACLs.
It is important to follow them in sequence.
* Install security/clamav from the ports tree.
* Confirm that user clamav was added to the mail group in /etc/group.
* Confirm that /var/log/clamav and /var/run/clamav exist and are owned
by clamav:clamav.
* In Exim's configure file, set av_scanner=clamd:/var/run/clamav/clamd
* Adjust the exiscan ACLs in Exim's configure file. Make sure you use
the demime option with the malware check, e.g.:
deny message = This message contains malware ($malware_name)
demime = *
malware = *
* Edit clamav.conf as follows:
LogFile /var/log/clamav/clamd.log
PidFile /var/run/clamav/clamd.pid
LocalSocket /var/run/clamav/clamd
User clamav
AllowSupplementaryGroups
ScanArchive
ScanMail
You may wish to make other changes as well.
* Make sure clamd_enable="YES" has been added to /etc/rc.conf; this is
required by the clamav port's startup script,
%%RC_DIR%%/clamd%%RC_SUFX%% .
* Run freshclam.
* Add a cron job that runs freshclam --daemon-notify --quiet at least
once a day.
* Start clamd with %%RC_DIR%%/clamd%%RC_SUFX%% start .
* Start Exim with %%RC_DIR%%/exim%%RC_SUFX%% start .
Sheldon Hearn <sheldonh@FreeBSD.org>
EOM
}
]

60
mail/exim/files/exim.in Normal file
View File

@ -0,0 +1,60 @@
#!/bin/sh
# PROVIDE: mail
# REQUIRE: LOGIN
# KEYWORD: shutdown
# we make mail start late, so that things like .forward's are not
# processed until the system is fully operational
#
# Add the following lines to /etc/rc.conf to enable exim:
#
#exim_enable="YES"
#
# See exim(8) for flags
#
. /etc/rc.subr
name=exim
rcvar=exim_enable
command=%%PREFIX%%/sbin/exim
pidfile=/var/run/exim.pid
required_dirs=%%LOGDIR%%
required_files=%%PREFIX%%/etc/exim/configure
start_precmd=start_precmd
stop_postcmd=stop_postcmd
extra_commands="reload"
start_precmd()
{
case $sendmail_enable in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
warn "sendmail_enable should be set to NONE"
;;
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
case $sendmail_submit_enable in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
warn "sendmail_submit_enable should be set to NO"
;;
esac
;;
[Nn][Oo][Nn][Ee])
;;
esac
}
stop_postcmd()
{
rm -f $pidfile
}
# read settings, set default values
load_rc_config $name
: ${exim_enable="NO"}
: ${exim_flags="-bd -q30m"}
run_rc_command "$1"

View File

@ -0,0 +1,225 @@
--- Local/sa-exim.c.orig 2025-12-18 04:08:13.593344000 +0100
+++ Local/sa-exim.c 2025-12-18 04:10:17.527828000 +0100
@@ -29,10 +29,7 @@
#include "sa-exim.h"
/* Exim includes */
-#include "local_scan.h"
-extern FILE *smtp_out; /* Exim's incoming SMTP output file */
-extern int body_linecount; /* Line count in body */
-extern uschar *primary_hostname;
+#include <local_scan.h>
#ifdef DLOPEN_LOCAL_SCAN
@@ -409,6 +406,11 @@
if (buffer[strlen(buffer)-1] == '\n')
{
buffer[strlen(buffer)-1]=0;
+ /* and any carriage return */
+ if (buffer[strlen(buffer)-1] == '\r')
+ {
+ buffer[strlen(buffer)-1]=0;
+ }
}
if (SAEximDebug > 5)
{
@@ -515,6 +517,7 @@
int pid;
int writefd[2];
int readfd[2];
+ char *spamc_argv[10];
int i;
/* These are the only values that we want working after the longjmp
* The automatic ones can be clobbered, but we don't really care */
@@ -536,8 +539,8 @@
time_t beforescan;
time_t afterscan;
time_t afterwait;
- time_t scantime=0;
- time_t fulltime=0;
+ int scantime=0;
+ int fulltime=0;
struct stat stbuf;
uschar *expand;
@@ -550,8 +553,9 @@
static char *SAspamcpath=SPAMC_LOCATION;
static char *SAsafemesgidchars=SAFEMESGIDCHARS
static char *SAspamcSockPath=NULL;
- static char *SAspamcPort="783";
- static char *SAspamcHost="127.0.0.1";
+ static char *SAspamcPort=NULL;
+ static char *SAspamcHost=NULL;
+ static char *SAspamcUser=NULL;
static char *SAEximRunCond="0";
static char *SAEximRejCond="1";
static int SAmaxbody=250*1024;
@@ -602,6 +606,10 @@
/* Do not put a %s in there, or you'll segfault */
static char *SAmsgerror="Temporary local error while processing message, please contact postmaster";
+ /* This needs to be retrieved through expand_string in order
+ not to violate the API. */
+ uschar *primary_hostname=expand_string("$primary_hostname");
+
/* New values we read from spamassassin */
char *xspamstatus=NULL;
char *xspamflag=NULL;
@@ -712,6 +720,7 @@
M_CHECKFORSTR(SAspamcSockPath);
M_CHECKFORSTR(SAspamcPort);
M_CHECKFORSTR(SAspamcHost);
+ M_CHECKFORSTR(SAspamcUser);
M_CHECKFORSTR(SAEximRunCond);
M_CHECKFORSTR(SAEximRejCond);
M_CHECKFORVAR(SAmaxbody, "%d");
@@ -914,6 +923,22 @@
ret=dup2(readfd[1],2);
CHECKERR(ret,"dup2 stderr",__LINE__);
+ i = 0;
+ spamc_argv[i++] = "spamc";
+ if (SAspamcUser && SAspamcUser[0])
+ {
+ expand=expand_string(SAspamcUser);
+ if (expand == NULL)
+ {
+ log_write(0, LOG_MAIN | LOG_PANIC, "SA: SAspamcUser expansion failure on %s, will run as Exim user instead.", SAspamcUser);
+ }
+ else if (expand[0] != '\0')
+ {
+ spamc_argv[i++] = "-u";
+ spamc_argv[i++] = expand;
+ }
+ }
+
/*
* I could implement the spamc protocol and talk to spamd directly
* instead of forking spamc, but considering the overhead spent
@@ -924,17 +949,30 @@
/* Ok, we cheat, spamc cares about how big the whole message is and
* we only know about the body size, so I'll give an extra 16K
* to account for any headers that can accompany the message */
+
+ spamc_argv[i++] = "-s";
+ spamc_argv[i++] = string_sprintf("%d", SAmaxbody+16384);
+
if(SAspamcSockPath)
{
- ret=execl(SAspamcpath, "spamc", "-s", string_sprintf("%d", SAmaxbody+16384), "-U", SAspamcSockPath, NULL);
- CHECKERR(ret,string_sprintf("exec %s", SAspamcpath),__LINE__);
+ spamc_argv[i++] = "-U";
+ spamc_argv[i++] = SAspamcSockPath;
}
else
{
- ret=execl(SAspamcpath, "spamc", "-s", string_sprintf("%d", SAmaxbody+16384), "-d", SAspamcHost, "-p", SAspamcPort, NULL);
- CHECKERR(ret,string_sprintf("exec %s", SAspamcpath),__LINE__);
+ if (SAspamcHost) {
+ spamc_argv[i++] = "-d";
+ spamc_argv[i++] = SAspamcHost;
+ }
+ if (SAspamcPort) {
+ spamc_argv[i++] = "-p";
+ spamc_argv[i++] = SAspamcPort;
+ }
}
-
+ spamc_argv[i++] = NULL;
+
+ ret=execv(SAspamcpath, spamc_argv);
+ CHECKERR(ret,string_sprintf("exec %s", SAspamcpath),__LINE__);
}
if (SAEximDebug > 8)
@@ -1045,6 +1083,11 @@
if (buffer[strlen(buffer)-1] == '\n')
{
buffer[strlen(buffer)-1]=0;
+ /* and any carriage return */
+ if (buffer[strlen(buffer)-1] == '\r')
+ {
+ buffer[strlen(buffer)-1]=0;
+ }
}
restart:
if (SAEximDebug > 5)
@@ -1154,7 +1197,7 @@
{
if (SAEximDebug > 5)
{
- log_write(0, LOG_MAIN, "SA: Debug6: spamc read got newline, end of headers", buffer);
+ log_write(0, LOG_MAIN, "SA: Debug6: spamc read got newline, end of headers");
}
goto exit;
}
@@ -1214,11 +1257,11 @@
{
if (SAEximDebug > 8)
{
- log_write(0, LOG_MAIN, "SA: Debug9: Read body from SA; line %d (read %d)", line, strlen(buffer));
+ log_write(0, LOG_MAIN, "SA: Debug9: Read body from SA; line %d (read %zd)", line, strlen(buffer));
}
stret=write(fd, buffer, strlen(buffer));
- CHECKERR(stret,string_sprintf("SA body write to msg"),__LINE__);
+ CHECKERR(stret,string_sprintf("%s", "SA body write to msg"),__LINE__);
if (SAEximDebug > 8)
{
log_write(0, LOG_MAIN, "SA: Debug9: Wrote to msg; line %d (wrote %d)", line, ret);
@@ -1229,18 +1272,20 @@
}
}
+
if (SAEximDebug > 1)
{
log_write(0, LOG_MAIN, "SA: Debug2: body_linecount before SA: %d", body_linecount);
}
/* update global variable $body_linecount to reflect the new body size*/
- body_linecount = (line - 1);
+ if (body_linecount > 0) body_linecount = (line - 1); // Not updating if zero, indicating spool_wireformat
if (SAEximDebug > 1)
{
log_write(0, LOG_MAIN, "SA: Debug2: body_linecount after SA: %d", body_linecount);
}
+
}
fclose((FILE *)readfh);
@@ -1331,6 +1376,9 @@
if (dorej && doteergrube)
{
+ char *teergrubewaitstr;
+ teergrubewaitstr=string_sprintf(SAmsgteergrubewait, spamstatus);
+
/* By default, we'll only save temp bounces by message ID so
* that when the same message is submitted several times, we
* overwrite the same file on disk and not create a brand new
@@ -1353,20 +1401,8 @@
for (i=0;i<SAteergrubetime/10;i++)
{
- char *str;
-
- /* Unfortunately, we can't use exim's smtp_printf because it
- * doesn't return an error code if the write gets an EPIPE.
- * So, we write ourselves, but this won't work if you have a
- * TLS connection opened (that said, if you are teergrubing
- * a TLS connection, it's probably a relay host, not a
- * spammer, and in this case you should not teergrube a
- * friendly relay, so basically we should be ok).
- * If you do teergrube an SSL connection with the current
- * code, you will break it, but that's acceptable */
- str=string_sprintf(string_sprintf("451- %s\r\n",SAmsgteergrubewait), spamstatus);
- fprintf(smtp_out, str);
- ret=fflush(smtp_out);
+ smtp_printf("451-%s\r\n", FALSE, teergrubewaitstr);
+ ret=smtp_fflush(TRUE);
if (ret != 0)
{
log_write(0, LOG_MAIN | LOG_REJECT, "SA: Action: teergrubed sender for %d secs until it closed the connection: %s (scanned in %d/%d secs | Message-Id: %s). %s", i*10, spamstatus, scantime, fulltime, safemesgid, mailinfo);

View File

@ -0,0 +1,24 @@
--- Local/sa-exim.conf.orig 2005-03-08 20:35:43 UTC
+++ Local/sa-exim.conf
@@ -49,11 +49,17 @@ SAspamcpath: /usr/bin/spamc
# you set it, it will override the two TCP connect options below
#SAspamcSockPath: /var/run/spamd.sock
-# SAspamcHost / SAspamcPort: TCP socket where your spamd is listening
-# Shown below are the defaults:
-SAspamcHost: 127.0.0.1
-SAspamcPort: 783
+# SAspamcHost / SAspamcPort: TCP socket where your spamd is listening.
+# Default is to let spamc use any settings in spamc.conf.
+#SAspamcHost: 127.0.0.1
+#SAspamcPort: 783
+# SAspamcUser: The username passed to spamc. Some tricks are needed to
+# decide on one user when there are many recipients. This string is of
+# course expanded. If unset or empty, spamc will use the user Exim
+# runs as. We suggest that you decide what username to use in the ACLs
+# and set an ACL variable.
+#SAspamcUser: $acl_m2
# Exim configuration string to run before running SA against the message
# This decides whether SA gets run against the message or not. This

View File

@ -0,0 +1,11 @@
--- Makefile.orig 2025-12-17 18:05:41.764604000 +0100
+++ Makefile 2025-12-17 18:08:15.055964000 +0100
@@ -70,7 +70,7 @@
# Configure-Makefile script. This does its own dependency checking because of
# the optional files.
-configure: checks build-directory \
+configure: build-directory \
scripts/lookups-Makefile scripts/drivers-Makefile
@cd build-$(buildname); \
build=$(build) $(SHELL) ../scripts/Configure-Makefile

View File

@ -0,0 +1,13 @@
--- OS/Makefile-FreeBSD.orig 2023-04-09 09:45:04.226201000 +0200
+++ OS/Makefile-FreeBSD 2023-04-09 09:48:01.819463000 +0200
@@ -18,8 +18,8 @@
# Dynamically loaded modules need to be built with -fPIC
CFLAGS_DYNAMIC=-shared -rdynamic -fPIC
-# FreeBSD always ships with Berkeley DB
-USE_DB=yes
+# FreeBSD ships with Berkeley DB until 13.1, but ndbm is always included
+USE_NDBM=yes
# This code for building outside ports suggested by Richard Clayton
.ifdef X11BASE

View File

@ -0,0 +1,11 @@
--- exim_monitor/em_hdr.h.orig 2019-12-08 12:53:48 UTC
+++ exim_monitor/em_hdr.h
@@ -95,6 +95,8 @@ this interface so that this kind of kludge isn't neede
#endif
typedef void hctx;
+typedef unsigned long ulong;
+
#include "local_scan.h"
#include "macros.h"
#include "structs.h"

View File

@ -0,0 +1,111 @@
--- scripts/exim_install.orig 2016-12-18 14:02:28.000000000 +0000
+++ scripts/exim_install 2017-01-02 11:48:46.939703000 +0000
@@ -29,6 +29,7 @@
do_chown=yes
do_symlink=yes
+do_info=yes
while [ $# -gt 0 ] ; do
case "$1" in
@@ -51,6 +52,10 @@
do_symlink=no
;;
+ -no_info)
+ do_info=no
+ ;;
+
*)
break
;;
@@ -117,9 +122,7 @@
CONFIGURE_FILE=${DESTDIR}${CONFIGURE_FILE}
SYSTEM_ALIASES_FILE=${DESTDIR}${SYSTEM_ALIASES_FILE}
-if [ "${INFO_DIRECTORY}" != "" ] ; then
- INFO_DIRECTORY=${DESTDIR}${INFO_DIRECTORY}
-fi
+INFO_DIRECTORY=${DESTDIR}${INFO_DIRECTORY}
# Overrides of other things
case "$inst_uid" in ?*) INST_UID="$inst_uid";; esac
@@ -218,8 +221,7 @@
if [ $name = exim${EXE} ]; then
exim="./exim -bV -C /dev/null"
- version=exim-`$exim 2>/dev/null | \
- awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
+ version=exim
if [ "${version}" = "exim-${EXE}" ]; then
echo $com ""
@@ -384,9 +386,8 @@
echo $com ' ' ${CONFIGURE_FILE}
echo $com Therefore, skipping automatic installation.
-elif [ ! -f ${CONFIGURE_FILE} ]; then
- echo $com Installing default configuration in ${CONFIGURE_FILE}
- echo $com because there is no existing configuration file.
+else
+ echo $com Installing default configuration in ${CONFIGURE_FILE}.sample
if [ "${SYSTEM_ALIASES_FILE}" = "" ] ; then
SYSTEM_ALIASES_FILE=/etc/aliases
echo $com This configuration has system aliases in ${SYSTEM_ALIASES_FILE}.
@@ -396,8 +397,8 @@
${real} ${MKDIR} -p `${DIRNAME} ${CONFIGURE_FILE}`
echo sed -e '\\'
- echo " \"/SYSTEM_ALIASES_FILE/ s'SYSTEM_ALIASES_FILE'${ACTUAL_SYSTEM_ALIASES_FILE}'\"" '\\'
- echo " ../src/configure.default > \${CONFIGURE_FILE}"
+ echo " \"/SYSTEM_ALIASES_FILE/ s'SYSTEM_ALIASES_FILE'/etc/aliases'\"" '\\'
+ echo " ../src/configure.default > \${CONFIGURE_FILE}.sample"
# I can't find a way of writing this using the ${real} feature because
# it seems that the output redirection always happens, even when -n was
@@ -405,8 +406,8 @@
if [ "$real" = "" ] ; then
sed -e \
- "/SYSTEM_ALIASES_FILE/ s'SYSTEM_ALIASES_FILE'${ACTUAL_SYSTEM_ALIASES_FILE}'" \
- ../src/configure.default > ${CONFIGURE_FILE}
+ "/SYSTEM_ALIASES_FILE/ s'SYSTEM_ALIASES_FILE'/etc/aliases'" \
+ ../src/configure.default > ${CONFIGURE_FILE}.sample
else
true
fi
@@ -416,24 +417,22 @@
echo $com "*** Exim installation ${ver}failed ***"
exit 1
fi
- if [ ! -f ${SYSTEM_ALIASES_FILE} ]; then
- echo $com '****'
- echo $com Installing a dummy ${SYSTEM_ALIASES_FILE} file because you do not have
- echo $com one, and the default configuration requires it. You should
- echo $com edit ${SYSTEM_ALIASES_FILE} and at least create an alias for postmaster.
- echo $com '***'
- echo ${CP} ../src/aliases.default ${SYSTEM_ALIASES_FILE}
- ${real} ${CP} ../src/aliases.default ${SYSTEM_ALIASES_FILE}
- fi
+# if [ ! -f ${SYSTEM_ALIASES_FILE} ]; then
+# echo $com '****'
+# echo $com Installing a dummy ${SYSTEM_ALIASES_FILE} file because you do not have
+# echo $com one, and the default configuration requires it. You should
+# echo $com edit ${SYSTEM_ALIASES_FILE} and at least create an alias for postmaster.
+# echo $com '***'
+# echo ${CP} ../src/aliases.default ${SYSTEM_ALIASES_FILE}
+# ${real} ${CP} ../src/aliases.default ${SYSTEM_ALIASES_FILE}
+# fi
-else
- echo $com Configuration file ${CONFIGURE_FILE} already exists
fi
# Install info files if the directory is defined and the Texinfo
# source documentation is present.
-if [ "${INFO_DIRECTORY}" != "" -a -f ../doc/spec.texinfo ] ; then
+if [ "$do_info" != "no" -a -f ../doc/spec.texinfo ] ; then
echo $com ""
if [ ! -d "${INFO_DIRECTORY}" ] ; then
echo mkdir -p ${INFO_DIRECTORY}

View File

@ -0,0 +1,10 @@
--- src/lookups/mysql.c.orig 2017-03-05 00:21:35.000000000 +0300
+++ src/lookups/mysql.c 2017-08-15 01:12:26.508519000 +0300
@@ -13,6 +13,7 @@
#include "lf_functions.h"
#include <mysql.h> /* The system header */
+#include <mysql_version.h>
/* Structure and anchor for caching connections. */

View File

@ -0,0 +1,146 @@
--- src/EDITME.orig 2025-12-14 13:38:51.000000000 +0100
+++ src/EDITME 2025-12-18 03:31:28.070641000 +0100
@@ -104,7 +104,7 @@
# /usr/local/sbin. The installation script will try to create this directory,
# and any superior directories, if they do not exist.
-BIN_DIRECTORY=/usr/exim/bin
+BIN_DIRECTORY=XX_PREFIX_XX/sbin
#------------------------------------------------------------------------------
@@ -120,7 +120,7 @@
# don't exist. It will also install a default runtime configuration if this
# file does not exist.
-CONFIGURE_FILE=/usr/exim/configure
+CONFIGURE_FILE=XX_CONFIG_FILE_PATH_XX
# It is possible to specify a colon-separated list of files for CONFIGURE_FILE.
# In this case, Exim will use the first of them that exists when it is run.
@@ -137,7 +137,7 @@
# deliveries. (Local deliveries run as various non-root users, typically as the
# owner of a local mailbox.) Specifying these values as root is not supported.
-EXIM_USER=
+EXIM_USER=ref:XX_EXIM_USER_XX
# If you specify EXIM_USER as a name, this is looked up at build time, and the
# uid number is built into the binary. However, you can specify that this
@@ -158,7 +158,7 @@
# for EXIM_USER (e.g. EXIM_USER=exim), you don't need to set EXIM_GROUP unless
# you want to use a group other than the default group for the given user.
-# EXIM_GROUP=
+EXIM_GROUP=ref:XX_EXIM_GROUP_XX
# Many sites define a user called "exim", with an appropriate default group,
# and use
@@ -476,6 +476,7 @@
# LDAP_LIB_TYPE=OPENLDAP2
# LDAP_LIB_TYPE=NETSCAPE
# LDAP_LIB_TYPE=SOLARIS
+LDAP_LIB_TYPE=XX_LDAP_TYPE_XX
# If you don't set any of these, Exim assumes the original University of
# Michigan (OpenLDAP 1) library.
@@ -524,9 +525,10 @@
# LSEARCH, DSEARCH & CDB have no external library needs.
# DNSDB needs the resolver library which the core uses anyway.
-# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
-# LOOKUP_INCLUDE +=-I /usr/local/include
-# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3 -llmdb
+INCLUDE=-IXX_LOCALBASE_XX/include XX_DB_INCLUDES_XX XX_LMDB_INCLUDES_XX
+LOOKUP_INCLUDE=XX_MYSQL_INCLUDE_XX XX_PGSQL_INCLUDE_XX XX_LDAP_INCLUDE_XX
+LOOKUP_LIBS=XX_MYSQL_LIBS_XX XX_PGSQL_LIBS_XX XX_LDAP_LIBS_XX XX_LMDB_LIBS_XX
+DBMLIB=XX_DB_LIBS_XX
# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber
# Some platforms may need this for LOOKUP_NIS:
@@ -715,6 +717,7 @@
# Uncomment the following line to add XCLIENT support
# EXPERIMENTAL_XCLIENT=yes
+# EXPERIMENTAL_DCC=yes
###############################################################################
# THESE ARE THINGS YOU MIGHT WANT TO SPECIFY #
###############################################################################
@@ -809,6 +812,7 @@
# ALT_CONFIG_PREFIX=/some/directory/
# ALT_CONFIG_PREFIX=/some/directory/exim.conf-
+ALT_CONFIG_PREFIX=XX_ALT_CONFIG_PREFIX_XX
#------------------------------------------------------------------------------
@@ -917,7 +921,7 @@
# one that is set in the headers_charset option. The default setting is
# defined by this setting:
-HEADERS_CHARSET="ISO-8859-1"
+HEADERS_CHARSET="XX_DEFAULT_CHARSET_XX"
# If you are going to make use of $header_xxx expansions in your configuration
# file, or if your users are going to use them in filter files, and the normal
@@ -950,6 +954,8 @@
#
# but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM
# as well.
+CFLAGS=XX_CFLAGS_XX XX_SPF_FLAGS_XX XX_SRS_FLAGS_XX XX_SQLITE_FLAGS_XX
+EXTRALIBS=XX_PAM_LIBS_XX XX_ICONV_LIBS_XX XX_SPF_LIBS_XX XX_SRS_LIBS_XX XX_RADIUS_LIBS_XX XX_SQLITE_LIBS_XX XX_DMARC_LIBS_XX XX_REDIS_LIBS_XX XX_DYNAMIC_LDFLAGS_XX XX_IDN_LIBS_XX
#
# nb: FreeBSD as of 4.89 defines LIBICONV_PLUG to pick up the system iconv
# more reliably. If you explicitly want the libiconv Port then as well
@@ -1013,7 +1019,7 @@
# Once you have done this, "make install" will build the info files and
# install them in the directory you have defined.
-# INFO_DIRECTORY=/usr/share/info
+INFO_DIRECTORY=XX_PREFIX_XX/share/info
#------------------------------------------------------------------------------
@@ -1026,7 +1032,7 @@
# %s. This will be replaced by one of the strings "main", "panic", or "reject"
# to form the final file names. Some installations may want something like this:
-# LOG_FILE_PATH=/var/log/exim_%slog
+LOG_FILE_PATH=XX_LOG_FILE_PATH_XX
# which results in files with names /var/log/exim_mainlog, etc. The directory
# in which the log files are placed must exist; Exim does not try to create
@@ -1114,7 +1120,7 @@
# that the local_scan API is made available by the linker. You may also need
# to add -ldl to EXTRALIBS so that dlopen() is available to Exim.
-# EXPAND_DLFUNC=yes
+EXPAND_DLFUNC=yes
#------------------------------------------------------------------------------
@@ -1180,7 +1186,15 @@
# CFLAGS += -I/usr/local/include
# LDFLAGS += -lspf2
+# IPv6 is coming. Exim has experimental support that has been tried out on
+# one or two OS. See the file README.IPV6 for the current status of this
+# support. Do not set this option unless you are working on IPv6 and know
+# what you are doing.
+# HAVE_IPV6=YES
+
+
+
#------------------------------------------------------------------------------
# Support for authentication via Radius is also available. The Exim support,
# which is intended for use in conjunction with the SMTP AUTH facilities,
@@ -1534,7 +1548,7 @@
# (process id) to a file so that it can easily be identified. The path of the
# file can be specified here. Some installations may want something like this:
-# PID_FILE_PATH=/var/lock/exim.pid
+PID_FILE_PATH=/var/run/exim.pid
# If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
# using the name "exim-daemon.pid".

View File

@ -0,0 +1,42 @@
--- src/configure.default.orig Wed May 5 12:08:35 2004
+++ src/configure.default Wed May 5 15:09:40 2004
@@ -153,6 +153,8 @@
# as if it were a normal user. This isn't usually a problem, as most sites have
# an alias for root that redirects such mail to a human administrator.
+exim_user = XX_EXIM_USER_XX
+exim_group = XX_EXIM_GROUP_XX
never_users = root
@@ -412,7 +414,8 @@
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{SYSTEM_ALIASES_FILE}}
-# user = exim
+ user = XX_EXIM_USER_XX
+ group = XX_EXIM_GROUP_XX
file_transport = address_file
pipe_transport = address_pipe
@@ -454,6 +457,7 @@
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
+ condition = ${if exists{$home/.forward} {yes} {no} }
# This router matches local user mailboxes. If the router fails, the error
@@ -506,8 +510,10 @@
delivery_date_add
envelope_to_add
return_path_add
-# group = mail
-# mode = 0660
+ group = XX_EXIM_GROUP_XX
+ user = $local_part
+ mode = 0660
+ no_mode_fail_narrower
# This transport is used for handling pipe deliveries generated by alias or

View File

@ -0,0 +1,92 @@
--- src/miscmods/radius.c.orig 2025-12-18 03:23:48.333630000 +0100
+++ src/miscmods/radius.c 2025-12-18 03:28:22.528909000 +0100
@@ -104,37 +104,37 @@
#ifdef RADIUS_LIB_RADIUSCLIENT
if (rc_read_config(RADIUS_CONFIG_FILE) != 0)
- *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
+ *errptr = string_sprintf("%s","RADIUS: can't open %s", RADIUS_CONFIG_FILE);
else if (rc_read_dictionary(rc_conf_str("dictionary")) != 0)
- *errptr = US"RADIUS: can't read dictionary";
+ *errptr = string_sprintf("%","RADIUS: can't read dictionary");
else if (!rc_avpair_add(&send, PW_USER_NAME, user, 0))
- *errptr = US"RADIUS: add user name failed";
+ *errptr = string_sprintf("%","RADIUS: add user name failed");
else if (!rc_avpair_add(&send, PW_USER_PASSWORD, CS radius_args, 0))
- *errptr = US"RADIUS: add password failed");
+ *errptr = string_sprintf("%","RADIUS: add password failed");
else if (!rc_avpair_add(&send, PW_SERVICE_TYPE, &service, 0))
- *errptr = US"RADIUS: add service type failed";
+ *errptr = string_sprintf("%","RADIUS: add service type failed");
#else /* RADIUS_LIB_RADIUSCLIENT unset => RADIUS_LIB_RADIUSCLIENT2 */
if (!(h = rc_read_config(RADIUS_CONFIG_FILE)))
- *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
+ *errptr = string_sprintf("%","RADIUS: can't open %s", RADIUS_CONFIG_FILE);
else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0)
- *errptr = US"RADIUS: can't read dictionary";
+ *errptr = string_sprintf("%","RADIUS: can't read dictionary");
else if (!rc_avpair_add(h, &send, PW_USER_NAME, user, Ustrlen(user), 0))
- *errptr = US"RADIUS: add user name failed";
+ *errptr = string_sprintf("%","RADIUS: add user name failed");
else if (!rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args,
Ustrlen(radius_args), 0))
- *errptr = US"RADIUS: add password failed";
+ *errptr = string_sprintf("%","RADIUS: add password failed");
else if (!rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0))
- *errptr = US"RADIUS: add service type failed";
+ *errptr = string_sprintf("%","RADIUS: add service type failed");
#endif /* RADIUS_LIB_RADIUSCLIENT */
@@ -167,7 +167,7 @@
case BADRESP_RC:
default:
- *errptr = string_sprintf("RADIUS: unexpected response (%d)", result);
+ *errptr = string_sprintf("%s","RADIUS: unexpected response (%d)", result);
return ERROR;
}
@@ -177,7 +177,7 @@
if (!(h = rad_auth_open()))
{
- *errptr = string_sprintf("RADIUS: can't initialise libradius");
+ *errptr = string_sprintf("%s","RADIUS: can't initialise libradius");
return ERROR;
}
if (rad_config(h, RADIUS_CONFIG_FILE) != 0 ||
@@ -187,7 +187,7 @@
rad_put_int(h, RAD_SERVICE_TYPE, RAD_AUTHENTICATE_ONLY) != 0 ||
rad_put_string(h, RAD_NAS_IDENTIFIER, CS primary_hostname) != 0)
{
- *errptr = string_sprintf("RADIUS: %s", rad_strerror(h));
+ *errptr = string_sprintf("%s","RADIUS: %s", rad_strerror(h));
result = ERROR;
}
else
@@ -202,12 +202,12 @@
break;
case -1:
- *errptr = string_sprintf("RADIUS: %s", rad_strerror(h));
+ *errptr = string_sprintf("%s","RADIUS: %s", rad_strerror(h));
result = ERROR;
break;
default:
- *errptr = string_sprintf("RADIUS: unexpected response (%d)", result);
+ *errptr = string_sprintf("%s","RADIUS: unexpected response (%d)", result);
result= ERROR;
break;
}

View File

@ -0,0 +1,20 @@
--- src/exim.h.orig 2017-02-14 19:13:41.381402389 +0200
+++ src/exim.h 2017-02-14 19:13:53.330916377 +0200
@@ -129,7 +129,6 @@
#endif
#include <sys/types.h>
-#include <sys/file.h>
#include <dirent.h>
#include <netdb.h>
#ifndef NO_POLL_H
--- src/exim_lock.c.orig 2017-02-14 19:21:09.709389008 +0200
+++ src/exim_lock.c 2017-02-14 19:21:23.994407794 +0200
@@ -27,7 +27,6 @@
#include <utime.h>
#include <sys/utsname.h>
#include <sys/stat.h>
-#include <sys/file.h>
#include <pwd.h>
/* Not all systems have flock() available. Those that do must define LOCK_SH

132
mail/exim/options Normal file
View File

@ -0,0 +1,132 @@
OPTIONS_DEFINE+= ALT_CONFIG_PREFIX \
CONTENT_SCAN \
DAEMON \
DANE \
DEBUG \
DISABLE_D_OPT \
DKIM \
SPF \
DNSSEC \
DOCS \
EMBEDDED_PERL \
EXIMON \
ICONV \
IPV6 \
LISTMATCH_RHS \
LMTP \
OCSP \
PRDR \
READLINE \
SUID \
WISHLIST \
EVENT \
PROXY \
SOCKS \
INTERNATIONAL
OPTIONS_DEFAULT+= AUTH_CRAM_MD5 \
AUTH_DOVECOT \
AUTH_PLAINTEXT \
AUTH_SPA \
CDB \
CONTENT_SCAN \
DAEMON \
DISABLE_D_OPT \
DKIM \
DMARC \
DNSDB \
DNSSEC \
DSEARCH \
EMBEDDED_PERL \
EVENT \
ICONV \
INTERNATIONAL \
LMTP \
LSEARCH \
MAILDIR \
MAILSTORE \
MBX \
OCSP \
PAM \
PASSWD \
PRDR \
SPF \
SUID \
TLS
OPTIONS_RADIO_TLS= TLS GNUTLS
TLS_DESC= TLS support
OPTIONS_RADIO_LS= SA_EXIM
LS_DESC= Local scan patch
OPTIONS_RADIO_SRSR= SRS OLD_SRS
SRSR_DESC= Sender Rewriting Scheme
OLD_SRS_DESC= Enable Alternative Sender Rewriting Scheme
OPTIONS_RADIO= TLS LS SRSR
OPTIONS_GROUP_AUTH= AUTH_CRAM_MD5 AUTH_DOVECOT AUTH_PLAINTEXT AUTH_RADIUS AUTH_SASL AUTH_SPA AUTH_TLS SASLAUTHD PAM PASSWD
AUTH_DESC= SMTP Authorization
OPTIONS_GROUP_LOOKUP= CDB BDB DNSDB DSEARCH LSEARCH MYSQL NIS OPENLDAP PGSQL REDIS SQLITE
LOOKUP_DESC= Lookup support
OPTIONS_GROUP_STORAGE= MAILDIR MAILSTORE MBX
STORAGE_DESC= Supported storage formats
OPTIONS_GROUP_EXPERIMENTAL= CERTNAMES DCC DMARC DSN ARC LMDB QUEUEFILE
EXPERIMENTAL_DESC= Experimental options
OPTIONS_GROUP= AUTH LOOKUP STORAGE EXPERIMENTAL
ALT_CONFIG_PREFIX_DESC= Restrict the set of configuration files
ARC_DESC= Enable experimental ARC support
AUTH_CRAM_MD5_DESC= Enable CRAM-MD5 authentication mechanisms
AUTH_DOVECOT_DESC= Enable Dovecot authentication mechanisms
AUTH_PLAINTEXT_DESC= Enable plaintext authentication
AUTH_RADIUS_DESC= Enable radius (RFC 2865) authentication
AUTH_SASL_DESC= Enable use of Cyrus SASL auth library
AUTH_SPA_DESC= Enable Secure Password Authentication
AUTH_TLS_DESC= Enable TLS client certificate authentication
CERTNAMES_DESC= Check certiticates ownership
BDB_DESC= Enable Berkeley DB lookups
CDB_DESC= Enable CDB-style lookups
CONTENT_SCAN_DESC= Enable exiscan email content scanner
DAEMON_DESC= Install scripts to run as a daemon
DANE_DESC= Enable experimental DANE support
DCC_DESC= Enable DCC at ACL support via dccifd
DISABLE_D_OPT_DESC= Disable macros overrides using option -D
DKIM_DESC= Enable support for DKIM
DMARC_DESC= Enable DMARC support
DNSDB_DESC= Enable DNS-style lookups
DNSSEC_DESC= Enable DNSSEC validation
DSEARCH_DESC= Enable directory-list lookups
DSN_DESC= Enable Delivery Status Notifications
EMBEDDED_PERL_DESC= Enable embedded Perl interpreter
EVENT_DESC= Messages events support (TPDA namely)
EXIMON_DESC= Build eximon monitor (requires X libraries)
ICONV_DESC= Enable header charset conversion
INTERNATIONAL_DESC= Enable support for the transmission of UTF-8 envelope addresses
LISTMATCH_RHS_DESC= Enable pre-4.77 behaviour for match_*
LMDB_DESC= Enable LMDB lookups
LMTP_DESC= RFC2033 SMTP over command pipe transport
LSEARCH_DESC= Enable wildcarded-file lookups
MAILDIR_DESC= Enable Maildir mailbox format
MAILSTORE_DESC= Enable Mailstore mailbox format
MBX_DESC= Enable MBX mailbox format
MYSQL_DESC= Enable mysql lookups
NIS_DESC= Enable NIS-style lookups
OPENLDAP_DESC= Enable LDAP lookups
OCSP_DESC= Enable OCSP stapling
QUEUEFILE_DESC= Enable queuefile transport
PAM_DESC= Enable PAM authentication mechanisms
PASSWD_DESC= Enable /etc/passwd lookups
PGSQL_DESC= Enable postgresql lookups
PRDR_DESC= Enable Per-Recipient-Data-Response support
PROXY_DESC= Enable Experimental Proxy Protocol
READLINE_DESC= Enable readline(3) library
REDIS_DESC= Enable redis lookups
SASLAUTHD_DESC= Enable use of Cyrus SASL auth daemon
SA_EXIM_DESC= Build with Spamassassin local scan (BROKEN)
SOCKS_DESC= Enable smtp transport via socks5 proxies
SPF_DESC= Enable Sender Policy Framework checking
SQLITE_DESC= Enable SQLite lookups
SRS_DESC= Enable Sender Rewriting Scheme
SUID_DESC= Install the exim binary suid root
TAINTWARN_DESC= Allow insecure tainted data (pre-4.93 config style, deprecated)
GNUTLS_DESC= Use GnuTLS instead of OpenSSL for TLS
WISHLIST_DESC= Include the unsupported patches

7
mail/exim/pkg-descr Normal file
View File

@ -0,0 +1,7 @@
Exim is a mail transfer agent for Unix systems connected to the Internet.
It is a monolithic MTA designed to be a command line compatible drop-in
replacement for Sendmail.
Exim is an excellent mailer for an ISP, as its control and flexibility
are very good and its requeueing and retry algorithms are very powerful.
Exim's configuration syntax is well documented.

57
mail/exim/pkg-message Normal file
View File

@ -0,0 +1,57 @@
[
{ type: install
message: <<EOM
All installations having Exim set-uid root and using 'perl_startup' are
vulnerable to a local privilege escalation. Any user who can start an
instance of Exim (and this is normally *any* user) can gain root
privileges. If you do not use 'perl_startup' you *should* be safe.
New options
-----------
We had to introduce two new configuration options:
keep_environment =
add_environment =
Both options are empty per default. That is, Exim cleans the complete
environment on startup. This affects Exim itself and any subprocesses,
as transports, that may call other programs via some alias mechanisms,
as routers (queryprogram), lookups, and so on. This may affect used
libraries (e.g. LDAP).
** THIS MAY BREAK your existing installation **
New behaviour
-------------
Now Exim changes it's working directory to / right after startup,
even before reading it's configuration. (Later Exim changes it's working
directory to $spool_directory, as usual.)
Exim only accepts an absolute configuration file path now, when using
the -C option.
EOM
}
{ type: upgrade
maximum_version: 4.80
message: <<EOM
Upgrades to Exim 4.80
=====================
Exim 4.80 contains some backward-incompatible changes.
OpenSSL default options have changed to be more secure, including
disabling of SSLv2 by default (and adding support for TLSv1.1 and
TLSv1.2 if using OpenSSL 1.0.1 or newer); GnuTLS has been updated to use
a new API and stop honouring some options starting gnutls_*; users of
LDAP can now distinguish "comma in data" from "multi-valued attribute".
There are more details, covering more changes, in README.UPDATING.
We now enable accept_8bitmime by default, as the Exim maintainers agree
with Dan Bernstein about the best way to deal with the 8BITMIME
extension.
EOM
}
]

43
mail/exim/pkg-plist Normal file
View File

@ -0,0 +1,43 @@
%%SUID%%@mode 4755
%%EXIM%%sbin/exim
%%SUID%%@mode
%%EXIM%%sbin/exim_checkaccess
%%EXIM%%sbin/exim_dbmbuild
%%EXIM%%sbin/exim_dumpdb
%%EXIM%%sbin/exim_fixdb
%%EXIM%%sbin/exim_id_update
%%EXIM%%sbin/exim_lock
%%EXIM%%sbin/exim_msgdate
%%EXIM%%sbin/exim_tidydb
%%EXIM%%sbin/exicyclog
%%EXIM%%sbin/exigrep
%%EXIM%%sbin/eximstats
%%EXIM%%sbin/exinext
%%EXIM%%sbin/exipick
%%EXIM%%sbin/exiqgrep
%%EXIM%%sbin/exiqsumm
%%EXIM%%sbin/exiwhat
%%EXIM%%share/man/man8/exim.8.gz
%%EXIMON%%sbin/eximon
%%EXIMON%%sbin/eximon.bin
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/ACKNOWLEDGMENTS
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/NOTICE
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/README.UPDATING
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/ChangeLog
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/DANE-draft-notes
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/NewStuff
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/OptionLists.txt
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/POST-INSTALL-NOTES
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/POST-INSTALL-NOTES.clamd
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/README
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/README.SIEVE
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/dbm.discuss.txt
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/experimental-spec.txt
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/filter.txt
%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/spec.txt
%%EXIM%%%%PORTDOCS%%%%EXAMPLESDIR%%/transport-filter.pl
%%EXIMDAEMON%%etc/periodic/daily/150.exim-tidydb
%%EXIMDAEMON%%etc/periodic/daily/460.exim-mail-rejects
@sample %%ETCDIR%%/configure.sample
%%SA_EXIM%%@sample %%ETCDIR%%/sa-exim.conf.sample
%%EXIM%%@dir(%%EXIM_USER%%,%%EXIM_GROUP%%,) /%%LOGDIR%%

View File

@ -1,74 +0,0 @@
PORTNAME= blis
PORTVERSION= 0.9.0
PORTREVISION= 3
CATEGORIES= math
PKGNAMEPREFIX= ${PYHON_PKGNAMEPREFIX}
MAINTAINER= jmd@FreeBSD.org
COMMENT= Software framework for high-performance BLAS-like libraries
WWW= https://github.com/flame/blis
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= bash:shells/bash
USES= compiler gmake perl5 python shebangfix
USE_PYTHON= flavors
USE_GITHUB= yes
GH_ACCOUNT= flame
USE_LDCONFIG= yes
USE_PERL5= build
SHEBANG_FILES= build/flatten-headers.py
OPTIONS_DEFINE= PARA CBLAS
PARA_DESC= use pthread parallelization
CBLAS_DESC= build the CBLAS compatibility layer
OPTIONS_DEFAULT= PARA CBLAS
OPTIONS_SUB= yes
CFLAGS_riscv64= -mno-relax
HAS_CONFIGURE= yes
TEST_TARGET= test
.include <bsd.port.options.mk>
# enable BLAS and static/shared libs by default
CONFIGURE_ARGS+= --enable-blas \
--prefix=${PREFIX} \
--enable-shared \
--enable-static
#--prefix=PREFIX
.if ${PORT_OPTIONS:MPARA}
CONFIGURE_ARGS+= -t pthreads
.endif
.if ${PORT_OPTIONS:MCBLAS}
CONFIGURE_ARGS+= --enable-cblas
.endif
.if ${ARCH} == amd64
CONFIGURE_ARGS+= x86_64
PLIST_SUB+= ARCH="x86_64"
.elif ${ARCH:Mpowerpc64*}
CONFIGURE_ARGS+= power9
PLIST_SUB+= ARCH="power9"
USE_GCC= yes
.else
CONFIGURE_ARGS+= generic
PLIST_SUB+= ARCH="generic"
.endif
.include <bsd.port.pre.mk>
.if ${CHOSEN_COMPILER_TYPE} == gcc
USE_GCC= yes
.endif
post-install:
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libblis.so.4.0.0
.include <bsd.port.post.mk>

View File

@ -1,3 +0,0 @@
TIMESTAMP = 1672884949
SHA256 (flame-blis-0.9.0_GH0.tar.gz) = 1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308
SIZE (flame-blis-0.9.0_GH0.tar.gz) = 15078619

View File

@ -1,7 +0,0 @@
software framework for high-performance BLAS-like libraries
BLIS is a portable software framework for instantiating high-performance
BLAS-like dense linear algebra libraries. The framework was designed
to isolate essential kernels of computation that, when optimized,
immediately enable optimized implementations of most of its commonly
used and computationally intensive operations.

View File

@ -1,10 +0,0 @@
include/blis/blis.h
%%CBLAS%%include/blis/cblas.h
lib/libblis.a
lib/libblis.so
lib/libblis.so.4
lib/libblis.so.4.0.0
share/pkgconfig/blis.pc
%%DATADIR%%/common.mk
%%DATADIR%%/config.mk
%%DATADIR%%/config/%%ARCH%%/make_defs.mk

View File

@ -0,0 +1,54 @@
PORTNAME= freeipa-client
DISTVERSION= 4.13.0
CATEGORIES= net
MASTER_SITES= https://releases.pagure.org/freeipa/
DISTNAME= freeipa-${DISTVERSION}
MAINTAINER= kiwi@FreeBSD.org
COMMENT= FreeIPA Client tools
WWW= https://www.freeipa.org/
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR}
LIB_DEPENDS= libcmocka.so:sysutils/cmocka \
libcurl.so:ftp/curl \
libini_config.so:devel/ding-libs \
libjansson.so:devel/jansson \
libnspr4.so:devel/nspr \
libnss3.so:security/nss \
libpopt.so:devel/popt \
libpwquality.so:security/libpwquality \
libsasl2.so:security/cyrus-sasl2 \
libxmlrpc.so:net/xmlrpc-c
USES= autoreconf gettext gmake gssapi:mit ldap libtool \
localbase:ldflags pkgconfig python
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
CONFIGURE_ARGS= --disable-dependency-tracking \
--disable-server \
--with-ipaplatform=freebsd \
--without-ipatests \
--without-server
# Don't bytecode python files
MAKE_ENV= PYTHONDONTWRITEBYTECODE=1
# Remove all systemd dependant things
EXTRACT_AFTER_ARGS= --exclude client/systemd --exclude daemons/dnssec \
--exclude daemons/ipa-otpd --exclude \
daemons/ipa-slapi-plugins --exclude init/systemd \
--exclude init/tmpfilesd
PLIST_SUB= DISTVERSION=${DISTVERSION}
# Make sample configuration file
post-install:
@${MV} ${STAGEDIR}${PREFIX}/etc/ipa/epn.conf ${STAGEDIR}${PREFIX}/etc/ipa/epn.conf.sample
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1767596852
SHA256 (freeipa-4.13.0.tar.gz) = e2fe3bec07d258ae25a558c23d4c12e7a47874f269850856f9217e8fd9b19080
SIZE (freeipa-4.13.0.tar.gz) = 41442218

Some files were not shown because too many files have changed in this diff Show More