- Change the way libdhcp4client is compiled (patch main source, create new

Makefile rather than copy and patch code after main patches)
- Fix up problems generating compiler warnings
- Use 'gcc' for making dependencies
- Pass -fPIC instead of -fpie/-fPIE in compiler flags
- Combine the extended new option info changes in to one patch file (makes
    it easier for outside projects that want to use dhcdbd and
    NetworkManager)
This commit is contained in:
David Cantrell 2006-11-10 17:02:31 +00:00
parent 3c1d581943
commit 08af1e1d6a
5 changed files with 383 additions and 65 deletions

View File

@ -1,5 +1,105 @@
--- dhcp-3.0.5/client/Makefile.dist.Makefile 2004-06-10 13:59:11.000000000 -0400
+++ dhcp-3.0.5/client/Makefile.dist 2006-11-10 11:10:13.000000000 -0500
@@ -128,6 +128,6 @@
dhclient: $(OBJS) $(DHCPLIB)
- $(CC) $(LFLAGS) -o $(PROG) $(OBJS) $(DHCPLIB) $(LIBS)
+ $(CC) $(LFLAGS) -pie $(RPM_OPT_FLAGS) -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen -o $(PROG) $(OBJS) $(DHCPLIB) $(LIBS)
# Dependencies (semi-automatically-generated)
--- dhcp-3.0.5/dhcpctl/Makefile.dist.Makefile 2005-03-03 11:55:23.000000000 -0500
+++ dhcp-3.0.5/dhcpctl/Makefile.dist 2006-11-10 11:11:16.000000000 -0500
@@ -37,10 +37,10 @@
all: libdhcpctl.a omshell cltest $(CATMANPAGES)
omshell: omshell.o $(DHCPCTLLIBS)
- $(CC) $(DEBUG) $(LFLAGS) -o omshell omshell.o $(DHCPCTLLIBS) $(LIBS)
+ $(CC) $(DEBUG) $(LFLAGS) -pie $(RPM_OPT_FLAGS) -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen -o omshell omshell.o $(DHCPCTLLIBS) $(LIBS)
cltest: cltest.o $(DHCPCTLLIBS)
- $(CC) $(DEBUG) $(LFLAGS) -o cltest cltest.o $(DHCPCTLLIBS) $(LIBS)
+ $(CC) $(DEBUG) $(LFLAGS) -pie $(RPM_OPT_FLAGS) -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen -o cltest cltest.o $(DHCPCTLLIBS) $(LIBS)
libdhcpctl.a: $(OBJ)
rm -f libdhcpctl.a
--- dhcp-3.0.5/dst/Makefile.dist.Makefile 2004-06-10 13:59:28.000000000 -0400
+++ dhcp-3.0.5/dst/Makefile.dist 2006-11-10 11:11:42.000000000 -0500
@@ -30,7 +30,12 @@
all: libdst.a
-install:
+install: all
+ if [ ! -d $(DESTDIR)$(LIBDIR) ]; then \
+ mkdir $(DESTDIR)$(LIBDIR); chmod 755 $(DESTDIR)$(LIBDIR); \
+ fi
+ $(INSTALL) libdst.a $(DESTDIR)$(LIBDIR)
+ $(CHMOD) 644 $(DESTDIR)$(LIBDIR)/libdst.a
libdst.a: $(OBJ)
rm -f dst.a
--- dhcp-3.0.5/minires/Makefile.dist.Makefile 2004-06-10 13:59:40.000000000 -0400
+++ dhcp-3.0.5/minires/Makefile.dist 2006-11-10 11:14:00.000000000 -0500
@@ -21,9 +21,6 @@
# <info@isc.org>
# http://www.isc.org/
-CATMANPAGES = dhcpctl.cat3
-SEDMANPAGES = dhcpctl.man3
-MAN = dhcpctl.3
SRC = res_mkupdate.c res_init.c res_update.c res_send.c res_comp.c \
res_sendsigned.c res_findzonecut.c res_query.c res_mkquery.c \
ns_date.c ns_parse.c ns_sign.c ns_name.c ns_samedomain.c ns_verify.c
@@ -50,24 +47,17 @@
-rm -f $(OBJ) libres.a
realclean: clean
- -rm -f *~ $(CATMANPAGES) $(SEDMANPAGES)
+ -rm -f *~
distclean: realclean
-rm -f Makefile
links:
- @for foo in $(SRC) $(MAN) $(HDRS); do \
+ @for foo in $(SRC) $(HDRS); do \
if [ ! -b $$foo ]; then \
rm -f $$foo; \
fi; \
ln -s $(TOP)/minires/$$foo $$foo; \
done
-dhcpctl.cat3: dhcpctl.man3
- nroff -man dhcpctl.man3 >dhcpctl.cat3
-
-dhcpctl.man3: dhcpctl.3
- sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
- -e "s#RUNDIR#$(VARRUN)#g" < dhcpctl.3 >dhcpctl.man3
-
# Dependencies (semi-automatically-generated)
--- dhcp-3.0.5/relay/Makefile.dist.Makefile 2004-06-10 13:59:50.000000000 -0400
+++ dhcp-3.0.5/relay/Makefile.dist 2006-11-10 11:13:30.000000000 -0500
@@ -83,6 +83,6 @@
-e "s#RUNDIR#$(VARRUN)#" < dhcrelay.8 >dhcrelay.man8
dhcrelay: dhcrelay.o $(DHCPLIB)
- $(CC) $(LFLAGS) -o $(PROG) dhcrelay.o $(DHCPLIB) $(LIBS)
+ $(CC) $(LFLAGS) -pie $(RPM_OPT_FLAGS) -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -o $(PROG) dhcrelay.o $(DHCPLIB) $(LIBS)
# Dependencies (semi-automatically-generated)
--- dhcp-3.0.5/server/Makefile.dist.Makefile 2004-06-10 13:59:50.000000000 -0400
+++ dhcp-3.0.5/server/Makefile.dist 2006-11-10 11:14:27.000000000 -0500
@@ -103,6 +103,6 @@
-e "s#RUNDIR#$(VARRUN)#g" < dhcpd.leases.5 >dhcpd.leases.man5
dhcpd: $(OBJS) $(COBJ) $(DHCPLIB)
- $(CC) $(LFLAGS) -o dhcpd $(OBJS) $(DHCPLIB) $(LIBS)
+ $(CC) $(LFLAGS) -pie $(RPM_OPT_FLAGS) -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen -o dhcpd $(OBJS) $(DHCPLIB) $(LIBS)
# Dependencies (semi-automatically-generated)
--- dhcp-3.0.5/Makefile.Makefile 2004-06-10 13:59:10.000000000 -0400 --- dhcp-3.0.5/Makefile.Makefile 2004-06-10 13:59:10.000000000 -0400
+++ dhcp-3.0.5/Makefile 2006-11-07 10:30:45.000000000 -0500 +++ dhcp-3.0.5/Makefile 2006-11-10 11:09:32.000000000 -0500
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
if [ ! -d work.$$sysname ]; then \ if [ ! -d work.$$sysname ]; then \
echo No build directory for $$sysname - please run ./configure.; \ echo No build directory for $$sysname - please run ./configure.; \
@ -35,3 +135,14 @@
+ (cd work.$$sysname; $(MAKE) links); \ + (cd work.$$sysname; $(MAKE) links); \
fi fi
--- dhcp-3.0.5/Makefile.conf.Makefile 2005-06-16 15:39:35.000000000 -0400
+++ dhcp-3.0.5/Makefile.conf 2006-11-10 11:12:43.000000000 -0500
@@ -49,7 +49,7 @@
DEBUG = -g
#WARNERR = -Werror
RANLIB = ranlib
-MKDEP = mkdep
+MKDEP = $(CC)
CLIENT_PATH = '"PATH=/usr/ucb:/usr/bin:/usr/sbin:/bin:/sbin"'
BINDLIB = ../minires/libres.a

View File

@ -0,0 +1,197 @@
--- dhcp-3.0.5/client/dhclient.c.enoi 2006-08-22 11:13:57.000000000 -0400
+++ dhcp-3.0.5/client/dhclient.c 2006-11-10 11:00:51.000000000 -0500
@@ -74,6 +74,9 @@
int onetry=0;
int quiet=0;
int nowait=0;
+#ifdef EXTENDED_NEW_OPTION_INFO
+int extended_option_environment = 0;
+#endif
static void usage PROTO ((void));
@@ -204,6 +207,11 @@
} else if (!strcmp (argv [i], "--version")) {
log_info ("isc-dhclient-%s", DHCP_VERSION);
exit (0);
+#ifdef EXTENDED_NEW_OPTION_INFO
+ } else if (!strcmp (argv [i], "-x")) {
+ extended_option_environment = 1;
+ new_option_info_tree = GENERATE_NEW_OPTION_INFO;
+#endif
} else if (argv [i][0] == '-') {
usage ();
} else {
@@ -476,7 +484,11 @@
log_info (arr);
log_info (url);
+#ifdef EXTENDED_NEW_OPTION_INFO
+ log_error ("Usage: dhclient [-1dqr] [-nwx] [-p <port>] %s",
+#else
log_error ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %s",
+#endif
"[-s server]");
log_error (" [-cf config-file] [-lf lease-file]%s",
"[-pf pid-file] [-e VAR=val]");
@@ -2449,6 +2461,25 @@
const char *prefix;
};
+#ifdef EXTENDED_NEW_OPTION_INFO
+static
+void build_universe_info_envvar
+( struct option_cache *oc,
+ struct packet *p, struct lease *l,
+ struct client_state *client,
+ struct option_state *in_o,
+ struct option_state *cf_o,
+ struct binding_scope **scope,
+ struct universe *u, void *es
+)
+{
+ char info_name[512], info_data[512];
+ snprintf(info_name, 512, "%s._universe_.", oc->option->universe->name);
+ snprintf(info_data, 512, "%u:%s", oc->option->code,oc->option->format);
+ client_envadd( client, info_name, oc->option->name, info_data );
+}
+#endif
+
void client_option_envadd (struct option_cache *oc,
struct packet *packet, struct lease *lease,
struct client_state *client_state,
@@ -2465,6 +2496,28 @@
in_options, cfg_options, scope, oc, MDL)) {
if (data.len) {
char name [256];
+#ifdef EXTENDED_NEW_OPTION_INFO
+ if (extended_option_environment) {
+ if ((oc->option->universe != &dhcp_universe)
+ && (oc->option->universe->index > fqdn_universe.index)
+ && (es->universe != oc->option->universe)) {
+ es->universe = oc->option->universe;
+ (*(es->universe->foreach)) ((struct packet *)0,
+ (struct lease *)0,
+ client_state,
+ in_options, cfg_options,
+ scope, es->universe, es,
+ build_universe_info_envvar);
+ } else {
+ if (lookup_new_option_info(oc->option) != NULL) {
+ build_universe_info_envvar(oc, packet, lease,
+ client_state, in_options,
+ cfg_options, scope,
+ oc->option->universe, es);
+ }
+ }
+ }
+#endif
if (dhcp_option_ev_name (name, sizeof name,
oc -> option)) {
client_envadd (es -> client, es -> prefix,
@@ -2704,7 +2757,14 @@
s = option -> name;
if (j + 1 == buflen)
return 0;
+#ifdef EXTENDED_NEW_OPTION_INFO
+ if (!extended_option_environment)
+ buf[j++] = '_';
+ else
+ buf[j++] = '.';
+#else
buf [j++] = '_';
+#endif
}
++i;
} while (i != 2);
--- dhcp-3.0.5/client/dhclient.8.enoi 2005-09-14 12:03:33.000000000 -0400
+++ dhcp-3.0.5/client/dhclient.8 2006-11-10 11:05:25.000000000 -0500
@@ -82,6 +82,9 @@
.B -w
]
[
+.B -x
+]
+[
.I if0
[
.I ...ifN
@@ -265,6 +268,11 @@
supplying the
.B -nw
flag.
+.PP
+The -x argument enables extended option information to be created in the
+-s dhclient-script environment, which would allow applications running
+in that environment to handle options they do not know about in advance -
+this is a Red Hat extension to support dhcdbd and NetworkManager.
.SH CONFIGURATION
The syntax of the dhclient.conf(5) file is discussed separately.
.SH OMAPI
--- dhcp-3.0.5/common/parse.c.enoi 2006-02-22 17:43:27.000000000 -0500
+++ dhcp-3.0.5/common/parse.c 2006-11-10 11:00:51.000000000 -0500
@@ -1271,6 +1271,10 @@
option_hash_add (option -> universe -> hash,
(const char *)option -> name,
0, option, MDL);
+#ifdef EXTENDED_NEW_OPTION_INFO
+ if (new_option_info_tree != NULL)
+ add_new_option_info(option);
+#endif
return 1;
}
--- dhcp-3.0.5/common/tables.c.enoi 2006-02-22 17:43:27.000000000 -0500
+++ dhcp-3.0.5/common/tables.c 2006-11-10 11:00:51.000000000 -0500
@@ -1250,3 +1250,35 @@
fqdn_universe.name, 0,
&fqdn_universe, MDL);
}
+
+#ifdef EXTENDED_NEW_OPTION_INFO
+#include <search.h>
+
+void *new_option_info_tree = NULL;
+
+static int new_option_info_comparator(const void * p1, const void * p2) {
+ uint32_t ocode1 = (((const struct option*)p1)->universe->index << 8)
+ | (((const struct option*)p1)->code),
+ ocode2 = (((const struct option*)p2)->universe->index << 8)
+ | (((const struct option*)p2)->code);
+
+ return((ocode1 == ocode2) ? 0 : ((ocode1 > ocode2) ? 1 : -1));
+}
+
+void *add_new_option_info(struct option * option) {
+ if (option->universe->index >= fqdn_universe.index)
+ return NULL;
+
+ if (new_option_info_tree == GENERATE_NEW_OPTION_INFO)
+ new_option_info_tree = NULL;
+
+ return tsearch(option, &(new_option_info_tree), new_option_info_comparator);
+}
+
+void *lookup_new_option_info(struct option * option) {
+ if (new_option_info_tree == GENERATE_NEW_OPTION_INFO)
+ return NULL;
+
+ return tfind(option, &(new_option_info_tree), new_option_info_comparator);
+}
+#endif
--- dhcp-3.0.5/includes/dhcpd.h.enoi 2006-05-17 16:16:59.000000000 -0400
+++ dhcp-3.0.5/includes/dhcpd.h 2006-11-10 11:00:51.000000000 -0500
@@ -1811,6 +1811,13 @@
void initialize_common_option_spaces PROTO ((void));
struct universe *config_universe;
+#ifdef EXTENDED_NEW_OPTION_INFO
+#define GENERATE_NEW_OPTION_INFO ((void*)1)
+extern void *new_option_info_tree;
+extern void *add_new_option_info(struct option *);
+extern void *lookup_new_option_info(struct option *);
+#endif
+
/* stables.c */
#if defined (FAILOVER_PROTOCOL)
extern failover_option_t null_failover_option;

View File

@ -1,5 +1,5 @@
--- dhcp-3.0.5/client/dhclient.c.libdhcp4client 2006-11-09 16:02:36.000000000 -0500 --- dhcp-3.0.5/client/dhclient.c.libdhcp4client 2006-11-10 11:58:18.000000000 -0500
+++ dhcp-3.0.5/client/dhclient.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/client/dhclient.c 2006-11-10 11:58:30.000000000 -0500
@@ -78,7 +78,9 @@ @@ -78,7 +78,9 @@
int extended_option_environment = 0; int extended_option_environment = 0;
#endif #endif
@ -90,7 +90,7 @@
/* Set up the OMAPI. */ /* Set up the OMAPI. */
status = omapi_init (); status = omapi_init ();
if (status != ISC_R_SUCCESS) if (status != ISC_R_SUCCESS)
@@ -475,9 +526,12 @@ @@ -469,9 +520,12 @@
log_fatal("dhclient(%u) is already running - exiting. ", dhcpid); log_fatal("dhclient(%u) is already running - exiting. ", dhcpid);
return(1); return(1);
} }
@ -105,7 +105,7 @@
if (!quiet) { if (!quiet) {
log_info ("%s %s", message, DHCP_VERSION); log_info ("%s %s", message, DHCP_VERSION);
log_info (copyright); log_info (copyright);
@@ -486,7 +540,7 @@ @@ -480,7 +534,7 @@
log_info ("%s", ""); log_info ("%s", "");
} else } else
log_perror = 0; log_perror = 0;
@ -114,7 +114,7 @@
/* If we're given a relay agent address to insert, for testing /* If we're given a relay agent address to insert, for testing
purposes, figure out what it is. */ purposes, figure out what it is. */
if (relay) { if (relay) {
@@ -773,12 +827,18 @@ @@ -767,12 +821,18 @@
arg_conf_len = 0L; arg_conf_len = 0L;
} }
@ -134,7 +134,7 @@
/* XXX */ /* XXX */
/* config_counter(&snd_counter, &rcv_counter); */ /* config_counter(&snd_counter, &rcv_counter); */
@@ -796,7 +856,7 @@ @@ -790,7 +850,7 @@
if (!persist) { if (!persist) {
/* Nothing more to do. */ /* Nothing more to do. */
log_info ("No broadcast interfaces found - exiting."); log_info ("No broadcast interfaces found - exiting.");
@ -143,7 +143,7 @@
} }
} else if (!release_mode) { } else if (!release_mode) {
/* Call the script with the list of interfaces. */ /* Call the script with the list of interfaces. */
@@ -891,7 +951,7 @@ @@ -885,7 +945,7 @@
dmalloc_longterm = dmalloc_outstanding; dmalloc_longterm = dmalloc_outstanding;
dmalloc_outstanding = 0; dmalloc_outstanding = 0;
#endif #endif
@ -152,7 +152,7 @@
/* If we're not supposed to wait before getting the address, /* If we're not supposed to wait before getting the address,
don't. */ don't. */
if (nowait) if (nowait)
@@ -904,7 +964,123 @@ @@ -898,7 +958,123 @@
/* Start dispatching packets and timeouts... */ /* Start dispatching packets and timeouts... */
dispatch (); dispatch ();
@ -276,7 +276,7 @@
/*NOTREACHED*/ /*NOTREACHED*/
return 0; return 0;
} }
@@ -1301,8 +1477,25 @@ @@ -1294,8 +1470,25 @@
client -> new -> rebind += cur_time; client -> new -> rebind += cur_time;
if (client -> new -> rebind < cur_time) if (client -> new -> rebind < cur_time)
client -> new -> rebind = TIME_MAX; client -> new -> rebind = TIME_MAX;
@ -302,7 +302,7 @@
} }
void bind_lease (client) void bind_lease (client)
@@ -1340,6 +1533,9 @@ @@ -1333,6 +1526,9 @@
return; return;
} }
@ -312,7 +312,7 @@
/* Write out the new lease. */ /* Write out the new lease. */
write_client_lease (client, client -> new, 0, 0); write_client_lease (client, client -> new, 0, 0);
@@ -1441,13 +1637,13 @@ @@ -1434,13 +1630,13 @@
{ {
return 0; return 0;
} }
@ -328,7 +328,7 @@
int write_host (host) int write_host (host)
struct host_decl *host; struct host_decl *host;
{ {
@@ -2020,6 +2216,10 @@ @@ -2013,6 +2209,10 @@
tell the shell script that we failed to allocate an address, tell the shell script that we failed to allocate an address,
and try again later. */ and try again later. */
if (onetry) { if (onetry) {
@ -339,7 +339,7 @@
if (!quiet) if (!quiet)
log_info ("Unable to obtain a lease on first try.%s", log_info ("Unable to obtain a lease on first try.%s",
" Exiting."); " Exiting.");
@@ -2631,7 +2831,9 @@ @@ -2624,7 +2824,9 @@
free_client_lease (lease, MDL); free_client_lease (lease, MDL);
} }
@ -349,7 +349,7 @@
void rewrite_client_leases () void rewrite_client_leases ()
{ {
@@ -3079,16 +3281,60 @@ @@ -3069,16 +3271,60 @@
int script_go (client) int script_go (client)
struct client_state *client; struct client_state *client;
{ {
@ -413,7 +413,7 @@
if (client) if (client)
scriptName = client -> config -> script_name; scriptName = client -> config -> script_name;
@@ -3154,6 +3400,7 @@ @@ -3144,6 +3390,7 @@
GET_TIME (&cur_time); GET_TIME (&cur_time);
return (WIFEXITED (wstatus) ? return (WIFEXITED (wstatus) ?
WEXITSTATUS (wstatus) : -WTERMSIG (wstatus)); WEXITSTATUS (wstatus) : -WTERMSIG (wstatus));
@ -421,7 +421,7 @@
} }
void client_envadd (struct client_state *client, void client_envadd (struct client_state *client,
@@ -3244,6 +3491,9 @@ @@ -3234,6 +3481,9 @@
/* Don't become a daemon if the user requested otherwise. */ /* Don't become a daemon if the user requested otherwise. */
if (no_daemon) { if (no_daemon) {
@ -431,7 +431,7 @@
write_client_pid_file (); write_client_pid_file ();
return; return;
} }
@@ -3252,7 +3502,9 @@ @@ -3242,7 +3492,9 @@
if (state) if (state)
return; return;
state = 1; state = 1;
@ -442,8 +442,8 @@
/* Stop logging to stderr... */ /* Stop logging to stderr... */
log_perror = 0; log_perror = 0;
--- dhcp-3.0.5/common/alloc.c.libdhcp4client 2006-11-09 16:02:36.000000000 -0500 --- dhcp-3.0.5/common/alloc.c.libdhcp4client 2006-11-10 11:58:18.000000000 -0500
+++ dhcp-3.0.5/common/alloc.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/common/alloc.c 2006-11-10 11:58:30.000000000 -0500
@@ -1016,9 +1016,11 @@ @@ -1016,9 +1016,11 @@
rc_register (file, line, ptr, bp, bp -> refcnt, 0, RC_MISC); rc_register (file, line, ptr, bp, bp -> refcnt, 0, RC_MISC);
return 1; return 1;
@ -458,8 +458,8 @@
#if defined (DEBUG_MEMORY_LEAKAGE) || \ #if defined (DEBUG_MEMORY_LEAKAGE) || \
defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT) defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
void relinquish_free_packets () void relinquish_free_packets ()
--- dhcp-3.0.5/common/discover.c.libdhcp4client 2006-11-09 16:02:36.000000000 -0500 --- dhcp-3.0.5/common/discover.c.libdhcp4client 2006-11-10 11:58:18.000000000 -0500
+++ dhcp-3.0.5/common/discover.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/common/discover.c 2006-11-10 11:58:30.000000000 -0500
@@ -120,7 +120,9 @@ @@ -120,7 +120,9 @@
For each interface that's of type INET and not the loopback interface, For each interface that's of type INET and not the loopback interface,
register that interface with the network I/O software, figure out what register that interface with the network I/O software, figure out what
@ -504,7 +504,7 @@
if (fallback_interface) { if (fallback_interface) {
if (fcntl (fallback_interface -> rfdesc, F_SETFD, 1) < 0) if (fcntl (fallback_interface -> rfdesc, F_SETFD, 1) < 0)
--- dhcp-3.0.5/common/lpf.c.libdhcp4client 2004-11-24 12:39:15.000000000 -0500 --- dhcp-3.0.5/common/lpf.c.libdhcp4client 2004-11-24 12:39:15.000000000 -0500
+++ dhcp-3.0.5/common/lpf.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/common/lpf.c 2006-11-10 11:58:30.000000000 -0500
@@ -216,6 +216,7 @@ @@ -216,6 +216,7 @@
struct interface_info *info; struct interface_info *info;
{ {
@ -514,7 +514,7 @@
/* Set up the bpf filter program structure. This is defined in /* Set up the bpf filter program structure. This is defined in
bpf.c */ bpf.c */
--- dhcp-3.0.5/dst/hmac_link.c.libdhcp4client 2001-02-22 02:22:08.000000000 -0500 --- dhcp-3.0.5/dst/hmac_link.c.libdhcp4client 2001-02-22 02:22:08.000000000 -0500
+++ dhcp-3.0.5/dst/hmac_link.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/dst/hmac_link.c 2006-11-10 11:58:30.000000000 -0500
@@ -38,6 +38,10 @@ @@ -38,6 +38,10 @@
#include "dst_internal.h" #include "dst_internal.h"
@ -602,7 +602,7 @@
return (0); return (0);
memset(dst_t_func[KEY_HMAC_MD5], 0, sizeof(struct dst_func)); memset(dst_t_func[KEY_HMAC_MD5], 0, sizeof(struct dst_func));
--- dhcp-3.0.5/omapip/alloc.c.libdhcp4client 2006-02-22 17:43:27.000000000 -0500 --- dhcp-3.0.5/omapip/alloc.c.libdhcp4client 2006-02-22 17:43:27.000000000 -0500
+++ dhcp-3.0.5/omapip/alloc.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/omapip/alloc.c 2006-11-10 11:58:30.000000000 -0500
@@ -40,6 +40,41 @@ @@ -40,6 +40,41 @@
#include <omapip/omapip_p.h> #include <omapip/omapip_p.h>
@ -666,8 +666,8 @@
} }
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \ #if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
--- dhcp-3.0.5/omapip/dispatch.c.libdhcp4client 2006-11-09 16:02:36.000000000 -0500 --- dhcp-3.0.5/omapip/dispatch.c.libdhcp4client 2006-11-10 11:58:18.000000000 -0500
+++ dhcp-3.0.5/omapip/dispatch.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/omapip/dispatch.c 2006-11-10 11:58:30.000000000 -0500
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
#include <omapip/omapip_p.h> #include <omapip/omapip_p.h>
@ -677,8 +677,8 @@
TIME cur_time; TIME cur_time;
OMAPI_OBJECT_ALLOC (omapi_io, OMAPI_OBJECT_ALLOC (omapi_io,
--- dhcp-3.0.5/omapip/errwarn.c.libdhcp4client 2006-11-09 16:02:36.000000000 -0500 --- dhcp-3.0.5/omapip/errwarn.c.libdhcp4client 2006-11-10 11:58:18.000000000 -0500
+++ dhcp-3.0.5/omapip/errwarn.c 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/omapip/errwarn.c 2006-11-10 11:58:30.000000000 -0500
@@ -39,6 +39,11 @@ @@ -39,6 +39,11 @@
#include <omapip/omapip_p.h> #include <omapip/omapip_p.h>
#include <errno.h> #include <errno.h>
@ -801,7 +801,7 @@
} }
--- dhcp-3.0.5/configure.libdhcp4client 2004-09-10 17:02:30.000000000 -0400 --- dhcp-3.0.5/configure.libdhcp4client 2004-09-10 17:02:30.000000000 -0400
+++ dhcp-3.0.5/configure 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/configure 2006-11-10 11:58:30.000000000 -0500
@@ -246,7 +246,7 @@ @@ -246,7 +246,7 @@
fi fi
@ -811,8 +811,8 @@
fi fi
for foo in $dirs; do for foo in $dirs; do
--- /dev/null 2006-11-09 08:39:48.641391297 -0500 --- /dev/null 2006-11-10 10:29:00.408684247 -0500
+++ dhcp-3.0.5/libdhcp4client/Makefile.dist 2006-11-09 16:03:42.000000000 -0500 +++ dhcp-3.0.5/libdhcp4client/Makefile.dist 2006-11-10 11:58:30.000000000 -0500
@@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
+# Makefile.dist for libdhcp4client +# Makefile.dist for libdhcp4client
+# +#
@ -900,8 +900,8 @@
+ $(CC) -shared -o $@ -Wl,-soname,$@ $^ + $(CC) -shared -o $@ -Wl,-soname,$@ $^
+ +
+# Dependencies (semi-automatically-generated) +# Dependencies (semi-automatically-generated)
--- /dev/null 2006-11-09 08:39:48.641391297 -0500 --- /dev/null 2006-11-10 10:29:00.408684247 -0500
+++ dhcp-3.0.5/libdhcp4client/dhcp4client.h 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/libdhcp4client/dhcp4client.h 2006-11-10 11:58:30.000000000 -0500
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+/* dhcp4client.h +/* dhcp4client.h
+ * + *
@ -927,8 +927,8 @@
+extern int dhcpv4_client( struct libdhcp_control_s *dhc_ctl, int argc, char **argv, char **envp); +extern int dhcpv4_client( struct libdhcp_control_s *dhc_ctl, int argc, char **argv, char **envp);
+ /* The ISC IPv4 DHCP client main() function . + /* The ISC IPv4 DHCP client main() function .
+ */ + */
--- /dev/null 2006-11-09 08:39:48.641391297 -0500 --- /dev/null 2006-11-10 10:29:00.408684247 -0500
+++ dhcp-3.0.5/libdhcp4client/libdhcp_control.h 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/libdhcp4client/libdhcp_control.h 2006-11-10 11:58:30.000000000 -0500
@@ -0,0 +1,102 @@ @@ -0,0 +1,102 @@
+/* libdhcp_control.h +/* libdhcp_control.h
+ * + *
@ -1033,7 +1033,7 @@
+ +
+#endif +#endif
--- dhcp-3.0.5/Makefile.dist.libdhcp4client 2004-06-10 13:59:10.000000000 -0400 --- dhcp-3.0.5/Makefile.dist.libdhcp4client 2004-06-10 13:59:10.000000000 -0400
+++ dhcp-3.0.5/Makefile.dist 2006-11-09 16:02:36.000000000 -0500 +++ dhcp-3.0.5/Makefile.dist 2006-11-10 11:58:30.000000000 -0500
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
# http://www.isc.org/ # http://www.isc.org/

7
dhcp-3.0.5-version.patch Normal file
View File

@ -0,0 +1,7 @@
--- dhcp-3.0.5/includes/version.h.version 2006-10-26 18:19:38.000000000 -0400
+++ dhcp-3.0.5/includes/version.h 2006-11-10 11:16:04.000000000 -0500
@@ -1,3 +1,3 @@
/* Current version of ISC DHCP Distribution. */
-#define DHCP_VERSION "V3.0.5"
+#define DHCP_VERSION "V3.0.5-RedHat"

View File

@ -21,19 +21,19 @@ Source4: dhcpd.conf
Source5: libdhcp4client.pc Source5: libdhcp4client.pc
Source6: dhcptables.pl Source6: dhcptables.pl
Patch0: dhcp-3.0.5-Makefile.patch Patch0: dhcp-3.0.5-extended-new-option-info.patch
Patch1: dhcp-3.0.5-client.patch Patch1: dhcp-3.0.5-Makefile.patch
Patch2: dhcp-3.0.5-common.patch Patch2: dhcp-3.0.5-version.patch
Patch3: dhcp-3.0.5-dhcpctl.patch Patch3: dhcp-3.0.5-client.patch
Patch4: dhcp-3.0.5-dst.patch Patch4: dhcp-3.0.5-common.patch
Patch5: dhcp-3.0.5-includes.patch Patch5: dhcp-3.0.5-dhcpctl.patch
Patch6: dhcp-3.0.5-minires.patch Patch6: dhcp-3.0.5-dst.patch
Patch7: dhcp-3.0.5-omapip.patch Patch7: dhcp-3.0.5-includes.patch
Patch8: dhcp-3.0.5-relay.patch Patch8: dhcp-3.0.5-omapip.patch
Patch9: dhcp-3.0.5-server.patch Patch9: dhcp-3.0.5-minires.patch
Patch10: dhcp-3.0.5-libdhcp4client.patch Patch10: dhcp-3.0.5-server.patch
Patch11: dhcp-3.0.5-timeouts.patch Patch11: dhcp-3.0.5-libdhcp4client.patch
Patch12: dhcp-3.0.5-mkdep.patch Patch12: dhcp-3.0.5-timeouts.patch
Patch13: dhcp-3.0.5-fix-warnings.patch Patch13: dhcp-3.0.5-fix-warnings.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRoot: %{_tmppath}/%{name}-%{version}-root
@ -99,19 +99,19 @@ client library .
%prep %prep
%setup -q %setup -q
%patch0 -p1 -b .Makefile %patch0 -p1 -b .enoi
%patch1 -p1 -b .client %patch1 -p1 -b .Makefile
%patch2 -p1 -b .common %patch2 -p1 -b .version
%patch3 -p1 -b .dhcpctl %patch3 -p1 -b .client
%patch4 -p1 -b .dst %patch4 -p1 -b .common
%patch5 -p1 -b .includes %patch5 -p1 -b .dhcpctl
%patch6 -p1 -b .minires %patch6 -p1 -b .dst
%patch7 -p1 -b .omapip %patch7 -p1 -b .includes
%patch8 -p1 -b .relay %patch8 -p1 -b .omapip
%patch9 -p1 -b .server %patch9 -p1 -b .minires
%patch10 -p1 -b .libdhcp4client %patch10 -p1 -b .server
%patch11 -p1 -b .timeouts %patch11 -p1 -b .libdhcp4client
%patch12 -p1 -b .mkdep %patch12 -p1 -b .timeouts
%patch13 -p1 -b .warnings %patch13 -p1 -b .warnings
%build %build
@ -130,7 +130,7 @@ cat <<EOF >>includes/site.h
#define _PATH_DHCLIENT_DB "%{_localstatedir}/lib/dhclient/dhclient.leases" #define _PATH_DHCLIENT_DB "%{_localstatedir}/lib/dhclient/dhclient.leases"
EOF EOF
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Werror -Dlint -DEXTENDED_NEW_OPTION_INFO" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fPIC -Werror -Dlint -DEXTENDED_NEW_OPTION_INFO"
# DO NOT use the %%configure macro because this configure script is not autognu # DO NOT use the %%configure macro because this configure script is not autognu
CC="%{__cc}" ./configure \ CC="%{__cc}" ./configure \
@ -318,11 +318,14 @@ exit 0
%{_libdir}/libdhcp4client.so %{_libdir}/libdhcp4client.so
%changelog %changelog
* Thu Nov 09 2006 David Cantrell <dcantrell@redhat.com> - 12:3.0.5-2 * Fri Nov 10 2006 David Cantrell <dcantrell@redhat.com> - 12:3.0.5-2
- Change the way libdhcp4client is compiled (patch main source, create new - Change the way libdhcp4client is compiled (patch main source, create new
Makefile rather than copy and patch code after main patches) Makefile rather than copy and patch code after main patches)
- Fix up problems generating compiler warnings - Fix up problems generating compiler warnings
- Use 'gcc' for making dependencies - Use 'gcc' for making dependencies
- Pass -fPIC instead of -fpie/-fPIE in compiler flags
- Combine the extended new option info changes in to one patch file (makes
it easier for outside projects that want to use dhcdbd and NetworkManager)
* Tue Nov 07 2006 David Cantrell <dcantrell@redhat.com> - 12:3.0.5-1 * Tue Nov 07 2006 David Cantrell <dcantrell@redhat.com> - 12:3.0.5-1
- Upgrade to ISC dhcp-3.0.5 - Upgrade to ISC dhcp-3.0.5