ports/118791: [patch] dns/sqldjbdns unbreak fix build with GCC 4.2
Pietro Cerutti
gahr at gahr.ch
Mon Dec 17 20:50:02 UTC 2007
>Number: 118791
>Category: ports
>Synopsis: [patch] dns/sqldjbdns unbreak fix build with GCC 4.2
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Dec 17 20:50:01 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator: Pietro Cerutti
>Release: FreeBSD 8.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD 8.0-CURRENT #17: Thu Dec 13 11:23:40 CET 2007
root at gahrtop.localhost:/usr/obj/usr/src/sys/MSI1034
>Description:
Unbreak with GCC 4.2
>How-To-Repeat:
>Fix:
--- _sqldjbdns.diff begins here ---
--- Makefile.orig 2007-12-17 21:02:09.000000000 +0100
+++ Makefile 2007-12-17 21:38:39.000000000 +0100
@@ -27,7 +27,7 @@
share/examples/${PORTNAME}/create.sql
PLIST_DIRS= share/examples/${PORTNAME}
-pre-build:
+post-patch:
${CP} -R ${DJ_SRC} ${WRKSRC}/djbdns-1.05
${PATCH} < ${WRKSRC}/djbdns-1.05.patch -d ${WRKSRC}/djbdns-1.05
${MV} ${WRKSRC}/sqldns-schema.html ${WRKSRC}/pgsqldns-schema.html
@@ -42,10 +42,4 @@
.endfor
.endif
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} >= 700042
-BROKEN= Does not compile with GCC 4.2
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
--- /dev/null 2007-12-17 21:37:53.000000000 +0100
+++ files/patch-djbdns-1.05.patch 2007-12-17 21:35:12.000000000 +0100
@@ -0,0 +1,240 @@
+--- djbdns-1.05.patch.orig 2007-08-26 15:08:50.000000000 +0200
++++ djbdns-1.05.patch 2007-12-17 21:34:49.000000000 +0100
+@@ -1757,8 +1757,8 @@
+ {
+
+ === modified file 'query.c'
+---- query.c 2004-07-08 11:45:45 +0000
+-+++ query.c 2007-08-23 21:11:49 +0000
++--- query.c.orig 2007-12-17 21:14:09.000000000 +0100
+++++ query.c 2007-12-17 21:33:24.000000000 +0100
+ @@ -12,6 +12,15 @@
+ #include "alloc.h"
+ #include "response.h"
+@@ -1775,7 +1775,7 @@
+
+ static int flagforwardonly = 0;
+
+-@@ -20,10 +29,32 @@
++@@ -20,10 +29,31 @@
+ flagforwardonly = 1;
+ }
+
+@@ -1790,12 +1790,11 @@
+ +#ifdef SQLCACHE
+ +unsigned int db_reinsert_interval = 1*60*60;
+ +unsigned int db_insert_minttl = 10*60;
+-+extern unsigned int save_ok;
+ +#endif
+++static unsigned int save_ok;
+ +
+ +char save_buf[8192];
+ +unsigned int save_len;
+-+static unsigned int save_ok;
+ +
+ static void cachegeneric(const char type[2],const char *d,const char *data,unsigned int datalen,uint32 ttl)
+ {
+@@ -1808,7 +1807,7 @@
+
+ len = dns_domain_length(d);
+ if (len > 255) return;
+-@@ -32,13 +63,26 @@
++@@ -32,13 +62,26 @@
+ byte_copy(key + 2,len,d);
+ case_lowerb(key + 2,len);
+
+@@ -1839,7 +1838,7 @@
+ static void save_start(void)
+ {
+ save_len = 0;
+-@@ -193,6 +237,7 @@
++@@ -193,6 +236,7 @@
+ int k;
+ int p;
+ int q;
+@@ -1847,7 +1846,7 @@
+
+ errno = error_io;
+ if (state == 1) goto HAVEPACKET;
+-@@ -236,7 +281,9 @@
++@@ -236,7 +280,9 @@
+ response_rfinish(RESPONSE_ANSWER);
+ }
+ cleanup(z);
+@@ -1857,7 +1856,7 @@
+ return 1;
+ }
+
+-@@ -246,7 +293,10 @@
++@@ -246,7 +292,10 @@
+ case_lowerb(key + 2,dlen);
+ cached = cache_get(key,dlen + 2,&cachedlen,&ttl);
+ if (cached) {
+@@ -1868,7 +1867,7 @@
+ goto NXDOMAIN;
+ }
+
+-@@ -254,13 +304,17 @@
++@@ -254,13 +303,17 @@
+ cached = cache_get(key,dlen + 2,&cachedlen,&ttl);
+ if (cached) {
+ if (typematch(DNS_T_CNAME,dtype)) {
+@@ -1886,7 +1885,7 @@
+ if (!dns_domain_copy(&cname,cached)) goto DIE;
+ goto CNAME;
+ }
+-@@ -269,7 +323,9 @@
++@@ -269,7 +322,9 @@
+ byte_copy(key,2,DNS_T_NS);
+ cached = cache_get(key,dlen + 2,&cachedlen,&ttl);
+ if (cached && (cachedlen || byte_diff(dtype,2,DNS_T_ANY))) {
+@@ -1896,7 +1895,7 @@
+ if (!rqa(z)) goto DIE;
+ pos = 0;
+ while (pos = dns_packet_getname(cached,cachedlen,pos,&t2)) {
+-@@ -286,7 +342,9 @@
++@@ -286,7 +341,9 @@
+ byte_copy(key,2,DNS_T_PTR);
+ cached = cache_get(key,dlen + 2,&cachedlen,&ttl);
+ if (cached && (cachedlen || byte_diff(dtype,2,DNS_T_ANY))) {
+@@ -1906,7 +1905,7 @@
+ if (!rqa(z)) goto DIE;
+ pos = 0;
+ while (pos = dns_packet_getname(cached,cachedlen,pos,&t2)) {
+-@@ -303,7 +361,9 @@
++@@ -303,7 +360,9 @@
+ byte_copy(key,2,DNS_T_MX);
+ cached = cache_get(key,dlen + 2,&cachedlen,&ttl);
+ if (cached && (cachedlen || byte_diff(dtype,2,DNS_T_ANY))) {
+@@ -1916,7 +1915,7 @@
+ if (!rqa(z)) goto DIE;
+ pos = 0;
+ while (pos = dns_packet_copy(cached,cachedlen,pos,misc,2)) {
+-@@ -324,7 +384,9 @@
++@@ -324,7 +383,9 @@
+ cached = cache_get(key,dlen + 2,&cachedlen,&ttl);
+ if (cached && (cachedlen || byte_diff(dtype,2,DNS_T_ANY))) {
+ if (z->level) {
+@@ -1926,7 +1925,7 @@
+ while (cachedlen >= 4) {
+ for (k = 0;k < 64;k += 4)
+ if (byte_equal(z->servers[z->level - 1] + k,4,"\0\0\0\0")) {
+-@@ -337,7 +399,9 @@
++@@ -337,7 +398,9 @@
+ goto LOWERLEVEL;
+ }
+
+@@ -1936,7 +1935,7 @@
+ if (!rqa(z)) goto DIE;
+ while (cachedlen >= 4) {
+ if (!response_rstart(d,DNS_T_A,ttl)) goto DIE;
+-@@ -355,7 +419,9 @@
++@@ -355,7 +418,9 @@
+ byte_copy(key,2,dtype);
+ cached = cache_get(key,dlen + 2,&cachedlen,&ttl);
+ if (cached && (cachedlen || byte_diff(dtype,2,DNS_T_ANY))) {
+@@ -1946,7 +1945,7 @@
+ if (!rqa(z)) goto DIE;
+ while (cachedlen >= 2) {
+ uint16_unpack_big(cached,&datalen);
+-@@ -396,7 +462,9 @@
++@@ -396,7 +461,9 @@
+ pos = 0;
+ j = 0;
+ while (pos = dns_packet_getname(cached,cachedlen,pos,&t1)) {
+@@ -1956,7 +1955,7 @@
+ if (j < QUERY_MAXNS)
+ if (!dns_domain_copy(&z->ns[z->level][j++],t1)) goto DIE;
+ }
+-@@ -430,12 +498,16 @@
++@@ -430,12 +497,16 @@
+
+ dns_sortip(z->servers[z->level],64);
+ if (z->level) {
+@@ -1975,7 +1974,7 @@
+ }
+ return 0;
+
+-@@ -590,15 +662,19 @@
++@@ -590,15 +661,19 @@
+ pos = dns_packet_getname(buf,len,pos + 10,&t2); if (!pos) goto DIE;
+ pos = dns_packet_getname(buf,len,pos,&t3); if (!pos) goto DIE;
+ pos = dns_packet_copy(buf,len,pos,misc,20); if (!pos) goto DIE;
+@@ -1995,7 +1994,7 @@
+ cachegeneric(DNS_T_CNAME,t1,t2,dns_domain_length(t2),ttl);
+ }
+ else if (byte_equal(type,2,DNS_T_PTR)) {
+-@@ -606,7 +682,9 @@
++@@ -606,7 +681,9 @@
+ while (i < j) {
+ pos = dns_packet_skipname(buf,len,records[i]); if (!pos) goto DIE;
+ pos = dns_packet_getname(buf,len,pos + 10,&t2); if (!pos) goto DIE;
+@@ -2005,7 +2004,7 @@
+ save_data(t2,dns_domain_length(t2));
+ ++i;
+ }
+-@@ -617,7 +695,9 @@
++@@ -617,7 +694,9 @@
+ while (i < j) {
+ pos = dns_packet_skipname(buf,len,records[i]); if (!pos) goto DIE;
+ pos = dns_packet_getname(buf,len,pos + 10,&t2); if (!pos) goto DIE;
+@@ -2015,7 +2014,7 @@
+ save_data(t2,dns_domain_length(t2));
+ ++i;
+ }
+-@@ -629,7 +709,9 @@
++@@ -629,7 +708,9 @@
+ pos = dns_packet_skipname(buf,len,records[i]); if (!pos) goto DIE;
+ pos = dns_packet_copy(buf,len,pos + 10,misc,2); if (!pos) goto DIE;
+ pos = dns_packet_getname(buf,len,pos,&t2); if (!pos) goto DIE;
+@@ -2025,7 +2024,7 @@
+ save_data(misc,2);
+ save_data(t2,dns_domain_length(t2));
+ ++i;
+-@@ -643,8 +725,13 @@
++@@ -643,8 +724,13 @@
+ pos = dns_packet_copy(buf,len,pos,header,10); if (!pos) goto DIE;
+ if (byte_equal(header + 8,2,"\0\4")) {
+ pos = dns_packet_copy(buf,len,pos,header,4); if (!pos) goto DIE;
+@@ -2039,7 +2038,7 @@
+ }
+ ++i;
+ }
+-@@ -659,7 +746,9 @@
++@@ -659,7 +745,9 @@
+ if (datalen > len - pos) goto DIE;
+ save_data(header + 8,2);
+ save_data(buf + pos,datalen);
+@@ -2049,7 +2048,7 @@
+ ++i;
+ }
+ save_finish(type,t1,ttl);
+-@@ -689,13 +778,21 @@
++@@ -689,13 +777,21 @@
+ }
+
+ if (rcode == 3) {
+@@ -2072,7 +2071,7 @@
+ cleanup(z);
+ return 1;
+ }
+-@@ -706,10 +803,13 @@
++@@ -706,10 +802,13 @@
+ if (byte_diff(DNS_T_CNAME,2,dtype)) {
+ save_start();
+ save_finish(dtype,d,soattl);
+@@ -2087,8 +2086,6 @@
+
+
+ if (flagout || flagsoa || !flagreferral) {
+-
+-=== modified file 'query.h'
+ --- query.h 2004-07-08 11:45:45 +0000
+ +++ query.h 2007-08-23 20:36:07 +0000
+ @@ -28,5 +28,6 @@
+@@ -2446,3 +2443,5 @@
+ if (cdb_make_finish(&cdb) == -1) die_datatmp();
+ if (fsync(fdcdb) == -1) die_datatmp();
+
++
++
--- _sqldjbdns.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list