Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dhcp for openSUSE:Factory checked in 
at 2026-07-06 12:27:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dhcp (Old)
 and      /work/SRC/openSUSE:Factory/.dhcp.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dhcp"

Mon Jul  6 12:27:39 2026 rev:145 rq:1363500 version:4.4.3.P1

Changes:
--------
--- /work/SRC/openSUSE:Factory/dhcp/dhcp.changes        2025-04-25 
22:18:24.205252168 +0200
+++ /work/SRC/openSUSE:Factory/.dhcp.new.1982/dhcp.changes      2026-07-06 
12:28:07.674636940 +0200
@@ -1,0 +2,27 @@
+Thu Jul  2 12:31:44 UTC 2026 - Jorik Cronenberg <[email protected]>
+
+- Update dhcrelay script and service.
+  Due to some leftover calls to sysvinit tools the script no longer
+  worked. Now the script is a lot leaner and only implements the
+  sysconfig arg parsing and makes it more of a native systemd
+  service.
+  [bsc#1269228]
+
+-------------------------------------------------------------------
+Sun Jun 28 19:33:58 UTC 2026 - Dirk Müller <[email protected]>
+
+- Update to version 4.4.3-P1:
+  * Corrected reference count leak in leasequery packets (CVE-2022-2928).
+  * Corrected memory leak in FQDN option unpacking (CVE-2022-2929).
+  * Added OMAPI timed function calls.
+  * Updated BIND libraries to version 9.11.36.
+  * Added support for DHCPv4 option v6-only-preferred (RFC 8925).
+- Drop obsolete patches already included in version 4.4.3-P1:
+  * dhcp-CVE-2022-2928.patch
+  * dhcp-CVE-2022-2929.patch
+- Refresh patches:
+  * 0009-dhcp-4.2.6-close-on-exec.patch
+  * 0015-Expose-next-server-DHCPv4-option-to-dhclient-script.patch
+  * 0016-infiniband-support.patch
+
+-------------------------------------------------------------------

Old:
----
  dhcp-4.4.2-P1.tar.gz
  dhcp-4.4.2-P1.tar.gz.asc
  dhcp-CVE-2022-2928.patch
  dhcp-CVE-2022-2929.patch

New:
----
  dhcp-4.4.3-P1.tar.gz
  dhcp-4.4.3-P1.tar.gz.asc

----------(Old B)----------
  Old:- Drop obsolete patches already included in version 4.4.3-P1:
  * dhcp-CVE-2022-2928.patch
  * dhcp-CVE-2022-2929.patch
  Old:  * dhcp-CVE-2022-2928.patch
  * dhcp-CVE-2022-2929.patch
- Refresh patches:
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dhcp.spec ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.234691047 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.238691186 +0200
@@ -16,7 +16,7 @@
 #
 
 
-%define isc_version   4.4.2-P1
+%define isc_version   4.4.3-P1
 #Compat macro for new _fillupdir macro introduced in Nov 2017
 %if ! %{defined _fillupdir}
   %define _fillupdir %{_localstatedir}/adm/fillup-templates
@@ -32,7 +32,7 @@
 %bcond_with sysusers
 %endif
 Name:           dhcp
-Version:        4.4.2.P1
+Version:        4.4.3.P1
 Release:        0
 Summary:        Common Files Used by ISC DHCP Software
 License:        MPL-2.0
@@ -96,8 +96,6 @@
 # PATCH-FIX-SLE dhcp-4.2.4-P1-interval bsc#947780
 Patch20:        0020-dhcp-4.x.x-fixed-improper-lease-duration-checking.patch
 Patch21:        0021-dhcp-ip-family-symlinks.patch
-Patch22:        dhcp-CVE-2022-2928.patch
-Patch23:        dhcp-CVE-2022-2929.patch
 BuildRequires:  automake
 BuildRequires:  dos2unix
 BuildRequires:  libtool
@@ -219,8 +217,6 @@
 %patch -P 18 -p1
 %patch -P 20
 %patch -P 21
-%patch -P 22
-%patch -P 23
 ##
 find . -type f -name \*.cat\* -exec rm -f {} \;
 dos2unix contrib/ms2isc/*

++++++ 0009-dhcp-4.2.6-close-on-exec.patch ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.314693822 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.318693961 +0200
@@ -34,7 +34,7 @@
 ===================================================================
 --- client/dhclient.c.orig
 +++ client/dhclient.c
-@@ -683,7 +683,7 @@ main(int argc, char **argv) {
+@@ -684,7 +684,7 @@ main(int argc, char **argv) {
                long temp;
                int e;
  
@@ -43,7 +43,7 @@
                        e = fscanf(pidfd, "%ld\n", &temp);
                        oldpid = (pid_t)temp;
  
-@@ -3642,7 +3642,7 @@ void rewrite_client_leases ()
+@@ -3783,7 +3783,7 @@ void rewrite_client_leases ()
  
        if (leaseFile != NULL)
                fclose (leaseFile);
@@ -52,7 +52,7 @@
        if (leaseFile == NULL) {
                log_error ("can't create %s: %m", path_dhclient_db);
                return;
-@@ -3837,7 +3837,7 @@ write_duid(struct data_string *duid)
+@@ -3978,7 +3978,7 @@ write_duid(struct data_string *duid)
                return DHCP_R_INVALIDARG;
  
        if (leaseFile == NULL) {        /* XXX? */
@@ -61,7 +61,7 @@
                if (leaseFile == NULL) {
                        log_error("can't create %s: %m", path_dhclient_db);
                        return ISC_R_IOERROR;
-@@ -3882,7 +3882,7 @@ write_client6_lease(struct client_state
+@@ -4023,7 +4023,7 @@ write_client6_lease(struct client_state
                return DHCP_R_INVALIDARG;
  
        if (leaseFile == NULL) {        /* XXX? */
@@ -70,7 +70,7 @@
                if (leaseFile == NULL) {
                        log_error("can't create %s: %m", path_dhclient_db);
                        return ISC_R_IOERROR;
-@@ -4041,7 +4041,7 @@ int write_client_lease (client, lease, r
+@@ -4182,7 +4182,7 @@ int write_client_lease (client, lease, r
                return 1;
  
        if (leaseFile == NULL) {        /* XXX */
@@ -99,7 +99,7 @@
 @@ -817,7 +817,7 @@ dlpiopen(const char *ifname) {
        }
        *dp = '\0';
-       
+ 
 -      return open (devname, O_RDWR, 0);
 +      return open (devname, O_RDWR | O_CLOEXEC, 0);
  }
@@ -174,7 +174,7 @@
 ===================================================================
 --- relay/dhcrelay.c.orig
 +++ relay/dhcrelay.c
-@@ -783,13 +783,14 @@ main(int argc, char **argv) {
+@@ -800,13 +800,14 @@ main(int argc, char **argv) {
                /* Create the pid file. */
                if (no_pid_file == ISC_FALSE) {
                        pfdesc = open(path_dhcrelay_pid,

++++++ 0015-Expose-next-server-DHCPv4-option-to-dhclient-script.patch ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.346694931 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.358695348 +0200
@@ -9,11 +9,11 @@
 Signed-off-by: Tomas Hozza <[email protected]>
 References: bsc#928390
 
-diff --git a/client/dhclient.c b/client/dhclient.c
-index 4d7394d..0c77ae2 100644
---- a/client/dhclient.c
-+++ b/client/dhclient.c
-@@ -1104,7 +1104,7 @@ void state_selecting (cpp)
+Index: dhcp-4.4.3-P1/client/dhclient.c
+===================================================================
+--- dhcp-4.4.3-P1.orig/client/dhclient.c
++++ dhcp-4.4.3-P1/client/dhclient.c
+@@ -1487,7 +1487,7 @@ void state_selecting (cpp)
                client -> state = S_REQUESTING;
  
                /* Bind to the address we received. */
@@ -22,7 +22,7 @@
                return;
        }
  
-@@ -1294,11 +1294,12 @@ void dhcpack (packet)
+@@ -1690,11 +1690,12 @@ void dhcpack (packet)
        if (client -> new -> rebind < cur_time)
                client -> new -> rebind = TIME_MAX;
  
@@ -37,7 +37,7 @@
  {
        struct timeval tv;
  
-@@ -1318,6 +1319,13 @@ void bind_lease (client)
+@@ -1714,6 +1715,13 @@ void bind_lease (client)
        if (client->alias)
                script_write_params(client, "alias_", client->alias);
  
@@ -49,22 +49,19 @@
 +      }
 +
        /* If the BOUND/RENEW code detects another machine using the
-          offered address, it exits nonzero.  We need to send a
-          DHCPDECLINE and toss the lease. */
-diff --git a/includes/dhcpd.h b/includes/dhcpd.h
-index 86d0afe..f0f4b20 100644
---- a/includes/dhcpd.h
-+++ b/includes/dhcpd.h
-@@ -2891,7 +2891,7 @@ void state_bound (void *);
- void state_stop (void *);
- void state_panic (void *);
+          offered address, then per our man page it should exit with
+        a non-zero status, to which we send a DHCPDECLINE and toss
+Index: dhcp-4.4.3-P1/includes/dhcpd.h
+===================================================================
+--- dhcp-4.4.3-P1.orig/includes/dhcpd.h
++++ dhcp-4.4.3-P1/includes/dhcpd.h
+@@ -3012,7 +3012,7 @@ uint32_t check_v6only (struct packet *,
+ void start_v6only (struct client_state *, uint32_t);
+ void finish_v6only (void *);
  
 -void bind_lease (struct client_state *);
 +void bind_lease (struct client_state *, struct in_addr *);
  
  void make_client_options (struct client_state *,
                          struct client_lease *, u_int8_t *,
--- 
-2.1.4
-
 

++++++ 0016-infiniband-support.patch ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.374695903 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.382696180 +0200
@@ -92,9 +92,9 @@
 +}
 +
  #ifndef UNIT_TEST
- static const char copyright[] = "Copyright 2004-2021 Internet Systems 
Consortium.";
+ static const char copyright[] = "Copyright 2004-2022 Internet Systems 
Consortium.";
  static const char arr [] = "All rights reserved.";
-@@ -885,6 +919,26 @@ main(int argc, char **argv) {
+@@ -886,6 +920,26 @@ main(int argc, char **argv) {
                }
        }
  
@@ -121,42 +121,44 @@
        /* At this point, all the interfaces that the script thinks
           are relevant should be running, so now we once again call
           discover_interfaces(), and this time ask it to actually set
-@@ -899,19 +953,42 @@ main(int argc, char **argv) {
-          Not much entropy, but we're booting, so we're not likely to
-          find anything better. */
-       seed = 0;
-+      int seed_flag = 0;
-       for (ip = interfaces; ip; ip = ip->next) {
-               int junk;
-+              if (ip->hw_address.hlen <= sizeof seed)
-+                      continue;
-               memcpy(&junk,
-                      &ip->hw_address.hbuf[ip->hw_address.hlen -
-                                           sizeof seed], sizeof seed);
-               seed += junk;
-+              seed_flag = 1;
-       }
--      srandom(seed + cur_time + (unsigned)getpid());
-+      if ( seed_flag == 0 ) {
-+              if ( backup_seed != 0 ) {
-+                      seed = backup_seed;
-+                      log_info ("xid: rand init seed (0x%x) built using all"
-+                                " available interfaces",seed);
+@@ -913,21 +967,43 @@ main(int argc, char **argv) {
+                  interface's hardware address interpreted as an integer.
+                  Not much entropy, but we're booting, so we're not likely to
+                  find anything better. */
+-
++              int seed_flag = 0;
+               for (ip = interfaces; ip; ip = ip->next) {
+                       int junk;
++                      if (ip->hw_address.hlen <= sizeof seed)
++                              continue;
+                       memcpy(&junk,
+                              &ip->hw_address.hbuf[ip->hw_address.hlen -
+                                                   sizeof seed], sizeof seed);
+                       seed += junk;
++                      seed_flag = 1;
++              }
++              if ( seed_flag == 0 ) {
++                      if ( backup_seed != 0 ) {
++                              seed = backup_seed;
++                              log_info ("xid: rand init seed (0x%x) built 
using all"
++                                        " available interfaces",seed);
++                      }
++                      else {
++                              seed = cur_time^((unsigned) gethostid()) ;
++                              log_info ("xid: warning: no netdev with useable 
HWADDR found"
++                                        " for seed's uniqueness enforcement");
++                              log_info ("xid: rand init seed (0x%x) built 
using gethostid",
++                                        seed);
++                      }
++                      /* we only use seed and no current time as a broadcast 
reply */
++                      /* will certainly be used by the hwaddrless interface */
 +              }
 +              else {
-+                      seed = cur_time^((unsigned) gethostid()) ;
-+                      log_info ("xid: warning: no netdev with useable HWADDR 
found"
-+                                " for seed's uniqueness enforcement");
-+                      log_info ("xid: rand init seed (0x%x) built using 
gethostid",
-+                                seed);
-+                }
-+                /* we only use seed and no current time as a broadcast reply 
*/
-+                /* will certainly be used by the hwaddrless interface */
-+                srandom(seed);
-+        }
-+        else
-+              srandom(seed + cur_time + (unsigned)getpid());
- 
++                      seed += cur_time + (unsigned)getpid();
+               }
+-              seed += cur_time + (unsigned)getpid();
+       }
+       srandom(seed);
  
        /*
         * Establish a default DUID.  We always do so for v6 and
@@ -166,7 +168,7 @@
         */
        if ((local_family == AF_INET6) ||
            ((local_family == AF_INET) && (duid_v4 == 1))) {
-@@ -922,6 +999,20 @@ main(int argc, char **argv) {
+@@ -938,6 +1014,20 @@ main(int argc, char **argv) {
                        form_duid(&default_duid, MDL);
                        write_duid(&default_duid);
                }
@@ -187,7 +189,7 @@
        }
  
  #if defined(DHCPv6) && defined(DHCP4o6)
-@@ -1411,15 +1502,22 @@ void dhcpack (packet)
+@@ -1527,15 +1617,22 @@ void dhcpack (packet)
                if (client -> xid == packet -> raw -> xid)
                        break;
        }
@@ -215,7 +217,7 @@
        }
  
        if (client -> state != S_REBOOTING &&
-@@ -1432,9 +1530,10 @@ void dhcpack (packet)
+@@ -1548,9 +1645,10 @@ void dhcpack (packet)
                return;
        }
  
@@ -226,9 +228,9 @@
 +                piaddr (packet->client_addr), 
 +                client -> xid);
  
-       lease = packet_to_lease (packet, client);
-       if (!lease) {
-@@ -2101,15 +2200,21 @@ void dhcpoffer (packet)
+       /* Check v6only first. */
+       v6only_wait = check_v6only(packet, client);
+@@ -2232,15 +2330,21 @@ void dhcpoffer (packet)
        /* If we're not receptive to an offer right now, or if the offer
           has an unrecognizable transaction id, then just drop it. */
        if (!client ||
@@ -255,7 +257,7 @@
        }
  
        sprintf (obuf, "%s of %s from %s", name,
-@@ -2350,11 +2455,11 @@ void dhcpnak (packet)
+@@ -2491,11 +2595,11 @@ void dhcpnak (packet)
  
        /* If we're not receptive to an offer right now, or if the offer
           has an unrecognizable transaction id, then just drop it. */
@@ -272,7 +274,7 @@
  #if defined (DEBUG)
                log_debug ("DHCPNAK in wrong transaction.");
  #endif
-@@ -2369,9 +2474,15 @@ void dhcpnak (packet)
+@@ -2510,9 +2614,15 @@ void dhcpnak (packet)
                log_debug ("DHCPNAK in wrong state.");
  #endif
                return;
@@ -289,7 +291,7 @@
  
        if (!client -> active) {
  #if defined (DEBUG)
-@@ -2504,11 +2615,11 @@ void send_discover (cpp)
+@@ -2645,11 +2755,11 @@ void send_discover (cpp)
                          (long)(client -> interval));
        } else
  #endif
@@ -306,7 +308,7 @@
        /* Send out a packet. */
  #if defined(DHCPv6) && defined(DHCP4o6)
        if (dhcpv4_over_dhcpv6) {
-@@ -2901,10 +3012,12 @@ void send_request (cpp)
+@@ -3042,10 +3152,12 @@ void send_request (cpp)
        }
  
        strncpy(rip_buf, rip_str, sizeof(rip_buf)-1);
@@ -321,7 +323,7 @@
  
  #if defined(DHCPv6) && defined(DHCP4o6)
        if (dhcpv4_over_dhcpv6) {
-@@ -2961,11 +3074,11 @@ void send_decline (cpp)
+@@ -3102,11 +3214,11 @@ void send_decline (cpp)
                log_info ("DHCPDECLINE");
        } else
  #endif
@@ -335,7 +337,7 @@
  
        /* Send out a packet. */
  #if defined(DHCPv6) && defined(DHCP4o6)
-@@ -3024,11 +3137,11 @@ void send_release (cpp)
+@@ -3165,11 +3277,11 @@ void send_release (cpp)
                log_info ("DHCPRELEASE");
        } else
  #endif
@@ -349,7 +351,7 @@
  
  #if defined(DHCPv6) && defined(DHCP4o6)
        if (dhcpv4_over_dhcpv6) {
-@@ -3305,10 +3418,17 @@ make_client_options(struct client_state
+@@ -3446,10 +3558,17 @@ make_client_options(struct client_state
         * This can be overridden by including a client id in the configuration
         * file.
         */
@@ -368,7 +370,7 @@
                memset(&client_identifier, 0, sizeof(client_identifier));
                client_identifier.len = 1 + 4 + default_duid.len;
                if (!buffer_allocate(&client_identifier.buffer,
-@@ -3399,12 +3519,13 @@ void make_discover (client, lease)
+@@ -3540,12 +3659,13 @@ void make_discover (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
        /* Assumes hw_address is known, otherwise a random value may result */
@@ -384,7 +386,7 @@
                client -> packet.flags = 0;
        else
                client -> packet.flags = htons (BOOTP_BROADCAST);
-@@ -3416,7 +3537,7 @@ void make_discover (client, lease)
+@@ -3557,7 +3677,7 @@ void make_discover (client, lease)
        memset (&(client -> packet.siaddr),
                0, sizeof client -> packet.siaddr);
        client -> packet.giaddr = giaddr;
@@ -393,7 +395,7 @@
            memcpy (client -> packet.chaddr,
                    &client -> interface -> hw_address.hbuf [1],
                    (unsigned)(client -> interface -> hw_address.hlen - 1));
-@@ -3473,7 +3594,8 @@ void make_request (client, lease)
+@@ -3614,7 +3734,8 @@ void make_request (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
        /* Assumes hw_address is known, otherwise a random value may result */
@@ -403,7 +405,7 @@
        client -> packet.hops = 0;
        client -> packet.xid = client -> xid;
        client -> packet.secs = 0; /* Filled in by send_request. */
-@@ -3505,7 +3627,7 @@ void make_request (client, lease)
+@@ -3646,7 +3767,7 @@ void make_request (client, lease)
        else
                memset (&client -> packet.giaddr, 0,
                        sizeof client -> packet.giaddr);
@@ -412,7 +414,7 @@
            memcpy (client -> packet.chaddr,
                    &client -> interface -> hw_address.hbuf [1],
                    (unsigned)(client -> interface -> hw_address.hlen - 1));
-@@ -3548,7 +3670,8 @@ void make_decline (client, lease)
+@@ -3689,7 +3810,8 @@ void make_decline (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
        /* Assumes hw_address is known, otherwise a random value may result */
@@ -422,7 +424,7 @@
        client -> packet.hops = 0;
        client -> packet.xid = client -> xid;
        client -> packet.secs = 0; /* Filled in by send_request. */
-@@ -3565,9 +3688,10 @@ void make_decline (client, lease)
+@@ -3706,9 +3828,10 @@ void make_decline (client, lease)
        memset (&client -> packet.siaddr, 0,
                sizeof client -> packet.siaddr);
        client -> packet.giaddr = giaddr;
@@ -436,7 +438,7 @@
  
  #ifdef DEBUG_PACKET
        dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
-@@ -3610,7 +3734,8 @@ void make_release (client, lease)
+@@ -3751,7 +3874,8 @@ void make_release (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
        /* Assumes hw_address is known, otherwise a random value may result */
@@ -446,7 +448,7 @@
        client -> packet.hops = 0;
        client -> packet.xid = random ();
        client -> packet.secs = 0;
-@@ -3622,9 +3747,10 @@ void make_release (client, lease)
+@@ -3763,9 +3887,10 @@ void make_release (client, lease)
        memset (&client -> packet.siaddr, 0,
                sizeof client -> packet.siaddr);
        client -> packet.giaddr = giaddr;
@@ -460,7 +462,7 @@
  
  #ifdef DEBUG_PACKET
        dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
-@@ -3777,17 +3903,13 @@ write_options(struct client_state *clien
+@@ -3918,17 +4043,13 @@ write_options(struct client_state *clien
   * is not how it is intended.  Upcoming rearchitecting the client should
   * address this "one daemon model."
   */
@@ -481,7 +483,7 @@
                log_fatal("Impossible condition at %s:%d.", MDL);
  
        if ((ip->hw_address.hlen == 0) ||
-@@ -3837,6 +3959,13 @@ form_duid(struct data_string *duid, cons
+@@ -3978,6 +4099,13 @@ form_duid(struct data_string *duid, cons
        }
  }
  
@@ -495,7 +497,7 @@
  /* Write the default DUID to the lease store. */
  static isc_result_t
  write_duid(struct data_string *duid)
-@@ -5276,7 +5405,8 @@ client_dns_update(struct client_state *c
+@@ -5425,7 +5553,8 @@ client_dns_update(struct client_state *c
                                          NULL, client,
                                          client->sent_options, NULL,
                                          &global_scope, oc, MDL)) {
@@ -600,11 +602,13 @@
 ===================================================================
 --- common/dlpi.c.orig
 +++ common/dlpi.c
-@@ -1343,7 +1343,9 @@ void maybe_setup_fallback ()
+@@ -1342,8 +1342,10 @@ void maybe_setup_fallback ()
+ }
  #endif /* USE_DLPI_SEND */
  
- void 
+-void
 -get_hw_addr(const char *name, struct hardware *hw) {
++void 
 +get_hw_addr(struct interface_info *info) {
 +      const char *name = info->name;
 +      struct hardware *hw = &info->hw_address;
@@ -884,7 +888,7 @@
 -      memset(&tmp, 0, sizeof(tmp));
 -      strcpy(tmp.ifr_name, name);
 -      if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) {
--              log_fatal("Error getting hardware address for \"%s\": %m", 
+-              log_fatal("Error getting hardware address for \"%s\": %m",
 -                        name);
 +      if (sll == NULL || sll->sll_halen >= sizeof(hw->hbuf)) {
 +              freeifaddrs(ifaddrs);
@@ -1017,7 +1021,7 @@
 ===================================================================
 --- includes/dhcpd.h.orig
 +++ includes/dhcpd.h
-@@ -1372,6 +1372,7 @@ struct interface_info {
+@@ -1377,6 +1377,7 @@ struct interface_info {
        struct shared_network *shared_network;
                                /* Networks connected to this interface. */
        struct hardware hw_address;     /* Its physical address. */
@@ -1025,7 +1029,7 @@
        struct in_addr *addresses;      /* Addresses associated with this
                                         * interface.
                                         */
-@@ -2641,7 +2642,7 @@ void print_dns_status (int, struct dhcp_
+@@ -2646,7 +2647,7 @@ void print_dns_status (int, struct dhcp_
  #endif
  const char *print_time(TIME);
  

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.446698400 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.450698539 +0200
@@ -1,6 +1,6 @@
-mtime: 1745503861
-commit: c3bdae89bcef58482fdafcfe9235d3f47ca9d8161660ecb1851188c2948b6744
-url: https://src.opensuse.org/dhcp/dhcp.git
-revision: c3bdae89bcef58482fdafcfe9235d3f47ca9d8161660ecb1851188c2948b6744
+mtime: 1782997184
+commit: 368351e22598fa3c66e040ca1358aebd315c53823e6a2a8f18324cf0454b4c96
+url: https://src.opensuse.org/dhcp/dhcp
+revision: 368351e22598fa3c66e040ca1358aebd315c53823e6a2a8f18324cf0454b4c96
 projectscmsync: https://src.opensuse.org/dhcp/_ObsPrj.git
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-07-02 14:59:44.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ dhcp-4.4.2-P1.tar.gz -> dhcp-4.4.3-P1.tar.gz ++++++
/work/SRC/openSUSE:Factory/dhcp/dhcp-4.4.2-P1.tar.gz 
/work/SRC/openSUSE:Factory/.dhcp.new.1982/dhcp-4.4.3-P1.tar.gz differ: char 5, 
line 1


++++++ dhcrelay.script ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.834711857 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.842712135 +0200
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
 # Copyright (c) 1996, 1997, 1998 S.u.S.E. GmbH
 # Copyright (c) 1998, 1999, 2000, 2001 SuSE GmbH
 # Copyright (c) 2002 SuSE Linux AG
@@ -12,203 +12,43 @@
 #
 ###
 
-DHCPv_OPT=$1 ; shift
+DHCPv_OPT=$1
 case $DHCPv_OPT in
--4)
-       DAEMON="ISC DHCPv4 relay agent"
-       DAEMON_BIN=/usr/sbin/dhcrelay
-       DAEMON_CONF=/etc/sysconfig/dhcrelay
-       DAEMON_PIDFILE=/run/dhcrelay.pid
-       STARTPROC_LOGFILE=/var/log/rc.dhcrelay.log
-       SUPPORTS_HUP="no"
-;;
--6)
-       DAEMON="ISC DHCPv6 relay agent"
-       DAEMON_BIN=/usr/sbin/dhcrelay6
-       DAEMON_CONF=/etc/sysconfig/dhcrelay
-       DAEMON_PIDFILE=/run/dhcrelay6.pid
-       STARTPROC_LOGFILE=/var/log/rc.dhcrelay6.log
-;;
-*)
-       echo >&2 "Usage: $0 <-4|-6> <action>"
-       exit 2
-;;
+    -4)
+        DAEMON_BIN=/usr/sbin/dhcrelay
+    ;;
+    -6)
+        DAEMON_BIN=/usr/sbin/dhcrelay6
+    ;;
+    *)
+        echo >&2 "Usage: $0 <-4|-6>"
+        exit 2
+    ;;
 esac
 
-test -s "$DAEMON_CONF" && . "$DAEMON_CONF"
-if ! [ -x "$DAEMON_BIN" ]; then
-       case $1 in
-       stop)   ;;
-       *)      echo -n >&2 "$0: \"$DAEMON_BIN\" is not an executable file. 
Exiting."
-               case $1 in
-               status) exit 4 ;;
-               *)      exit 5 ;;
-               esac
-       ;;
-       esac
-       exit 0
-fi
-
-# Return values acc. to LSB for all commands but status:
-# 0 - success
-# 1 - generic or unspecified error
-# 2 - invalid or excess argument(s)
-# 3 - unimplemented feature (e.g. "reload")
-# 4 - insufficient privilege
-# 5 - program is not installed
-# 6 - program is not configured
-# 7 - program is not running
-# 
-# Note that starting an already running service, stopping
-# or restarting a not-running service as well as the restart
-# with force-reload (in case signalling is not supported) are
-# considered a success.
-
-case "$1" in
-    start)
-        # FIXME: this check is pointless since systemd already do it.
-       echo -n "Starting $DAEMON"
-       checkproc -p $DAEMON_PIDFILE $DAEMON_BIN && {
-               echo -n "... already running"; exit 0;
-       }
-
-       case $DHCPv_OPT in
-       -4)
-               ## If interfaces or servers are not set, skip starting of 
dhcrelay
-               ## and return with "program not configured"
-               if [ -z "$DHCRELAY_INTERFACES" -o -z "$DHCRELAY_SERVERS" ]; then
-                       # service is not configured
-                       exit 6;
-               fi
-       
-               DHCRELAY_INTERFACES_ARGS=''
-               for i in $DHCRELAY_INTERFACES ; do
-                       DHCRELAY_INTERFACES_ARGS="$DHCRELAY_INTERFACES_ARGS -i 
$i"
-               done
-
-               DHCRELAY_ARGS="$DHCRELAY_OPTIONS $DHCRELAY_INTERFACES_ARGS 
$DHCRELAY_SERVERS"
-       ;;
-       -6)
-               DHCRELAY6_LOWER_INTERFACES_ARGS=''
-               for l in $DHCRELAY6_LOWER_INTERFACES ; do
-                       test "x$l" = x -o "x$l" = "x-l" && continue
-                       
DHCRELAY6_LOWER_INTERFACES_ARGS="$DHCRELAY6_LOWER_INTERFACES_ARGS -l $l"
-               done
-               DHCRELAY6_UPPER_INTERFACES_ARGS=''
-               for u in $DHCRELAY6_UPPER_INTERFACES ; do
-                       test "x$u" = x -o "x$u" = "x-u" && continue
-                       
DHCRELAY6_UPPER_INTERFACES_ARGS="$DHCRELAY6_UPPER_INTERFACES_ARGS -u $u"
-               done
-               if [ "x$DHCRELAY6_LOWER_INTERFACES_ARGS" = x -o \
-                    "x$DHCRELAY6_UPPER_INTERFACES_ARGS" = x ]; then
-                       # service is not configured
-                       exit 6;
-               fi
-               DHCRELAY_ARGS="$DHCRELAY6_OPTIONS 
$DHCRELAY6_LOWER_INTERFACES_ARGS $DHCRELAY6_UPPER_INTERFACES_ARGS"
-       ;;
-       esac
-       ## Start daemon with startproc(8). If this fails
-       ## the echo return value is set appropriate.
-
-       # startproc should return 0, even if service is 
-       # already running to match LSB spec.
-       if [ "$2" = "-v" ]; then
-               echo
-               echo -n "executing '$DAEMON_BIN $DHCPv_OPT $DHCRELAY_ARGS'"
-       fi
-       startproc -q -l $STARTPROC_LOGFILE -p $DAEMON_PIDFILE $DAEMON_BIN 
$DHCPv_OPT $DHCRELAY_ARGS >/dev/null 2>&1
-       rc=$?
-       if ! [ $rc -eq 0 ]; then
-               ## be verbose
-               echo ""
-               echo -n "  please see $STARTPROC_LOGFILE for details "
-               ## set status to failed
-               exit 1
-       fi
-       ;;
-    stop)
-       echo -n "Shutting down $DAEMON"
-       ## Stop daemon with killproc(8) and if this fails
-       ## set echo the echo return value.
-
-       killproc -p $DAEMON_PIDFILE $DAEMON_BIN 
-       ;;
-    try-restart)
-       ## Do a restart only if the service was active before.
-       ## Note: try-restart is now part of LSB (as of 1.9).
-       ## RH has a similar command named condrestart.
-       $0 status
-       if test $? = 0; then
-               $0 restart
-       fi
-       ;;
-    restart)
-       ## Stop the service and regardless of whether it was
-       ## running or not, start it again.
-       $0 stop
-       sleep 1
-       $0 start
-       ;;
-    force-reload)
-       ## Signal the daemon to reload its config. Most daemons
-       ## do this on signal 1 (SIGHUP).
-       ## If it does not support it, restart.
-
-       $0 stop  &&  sleep 1  &&  $0 start || exit
+test -s /etc/sysconfig/dhcrelay && . /etc/sysconfig/dhcrelay
 
-       echo -n "Reload service $DAEMON"
-
-       if [ "$SUPPORTS_HUP" = "yes" ] ; then 
-               killproc -p $DAEMON_PIDFILE -HUP $DAEMON_BIN
-               #touch $DAEMON_PIDFILE
-       else
-               $0 stop  &&  $0 start
-       fi
-       ;;
-    reload)
-       ## Like force-reload, but if daemon does not support
-       ## signalling, do nothing (!)
-
-       if [ "$SUPPORTS_HUP" = "yes" ] ; then
-               # If it supports signalling:
-               echo -n "Reload service $DAEMON"
-               killproc -p $DAEMON_PIDFILE -HUP $DAEMON_BIN
-               #touch $DAEMON_PIDFILE
-       else
-               ## Otherwise if it does not support reload:
-               exit 3
-       fi
-       ;;
-    status)
-        echo -n "Checking for dhcp relay agent: "
-       ## Check status with checkproc(8), if process is running
-       ## checkproc will return with exit status 0.
-
-       # Status has a slightly different for the status command:
-       # 0 - service running
-       # 1 - service dead, but /run/ pid file exists
-       # 2 - service dead, but /var/lock/ lock file exists
-       # 3 - service not running
-
-       # NOTE: checkproc returns LSB compliant status values.
-       checkproc -p $DAEMON_PIDFILE $DAEMON_BIN
-       ;;
-    probe)
-       ## Optional: Probe for the necessity of a reload,
-       ## give out the argument which is required for a reload.
-
-       if [ "$DAEMON_CONF" -nt "$DAEMON_PIDFILE" ]; then 
-               if [ "$SUPPORTS_HUP" = "yes" ]; then 
-                       echo reload
-               else 
-                       echo restart
-               fi
-       fi
-       ;;
-    *)
-       SCRIPT="${SCRIPT:-${0##*/} $DHCPv_OPT}"
-       echo "Usage: $SCRIPT 
{start|stop|status|try-restart|restart|force-reload|reload|probe} [-v]"
-       exit 1
-       ;;
+case $DHCPv_OPT in
+    -4)
+        [ -n "$DHCRELAY_INTERFACES" ] && [ -n "$DHCRELAY_SERVERS" ] || exit 6
+        args=""
+        for i in $DHCRELAY_INTERFACES; do
+            args="$args -i $i"
+        done
+        exec "$DAEMON_BIN" -4 -d $DHCRELAY_OPTIONS $args $DHCRELAY_SERVERS
+    ;;
+    -6)
+        lower="" upper=""
+        for l in $DHCRELAY6_LOWER_INTERFACES; do
+            test "x$l" = x -o "x$l" = "x-l" && continue
+            lower="$lower -l $l"
+        done
+        for u in $DHCRELAY6_UPPER_INTERFACES; do
+            test "x$u" = x -o "x$u" = "x-u" && continue
+            upper="$upper -u $u"
+        done
+        [ -n "$lower" ] && [ -n "$upper" ] || exit 6
+        exec "$DAEMON_BIN" -6 -d $DHCRELAY6_OPTIONS $lower $upper
+    ;;
 esac
 

++++++ dhcrelay.service ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.862712829 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.870713106 +0200
@@ -13,15 +13,12 @@
 ProtectKernelLogs=true
 ProtectControlGroups=true
 RestrictRealtime=true
-# end of automatic additions 
-Type=forking
-Restart=on-abort
-ExecStart=@LIBEXECDIR@/dhcp/dhcrelay -4 start
-ExecStop=@LIBEXECDIR@/dhcp/dhcrelay -4 stop
-PIDFile=/run/dhcrelay.pid
+# end of automatic additions
+Type=exec
+Restart=on-failure
+ExecStart=@LIBEXECDIR@/dhcp/dhcrelay -4
 
 [Install]
 WantedBy=multi-user.target
 Alias=dhcp-relay.service
 
-

++++++ dhcrelay6.service ++++++
--- /var/tmp/diff_new_pack.Okgqtu/_old  2026-07-06 12:28:09.902714216 +0200
+++ /var/tmp/diff_new_pack.Okgqtu/_new  2026-07-06 12:28:09.906714355 +0200
@@ -13,14 +13,12 @@
 ProtectKernelLogs=true
 ProtectControlGroups=true
 RestrictRealtime=true
-# end of automatic additions 
-Type=forking
-Restart=on-abort
-ExecStart=@LIBEXECDIR@/dhcp/dhcrelay -6 start
-ExecStop=@LIBEXECDIR@/dhcp/dhcrelay -6 stop
+# end of automatic additions
+Type=exec
+Restart=on-failure
+ExecStart=@LIBEXECDIR@/dhcp/dhcrelay -6
 
 [Install]
 WantedBy=multi-user.target
 Alias=dhcp6-relay.service
 
-

Reply via email to