public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/hping3] rawhide: Port to TCL 9
Date: Fri, 10 Jul 2026 19:57:14 GMT [thread overview]
Message-ID: <178371343456.1.2646521425644245781.rpms-hping3-6970bc514010@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/hping3
Branch : rawhide
Commit : 6970bc514010c7cba48eba5947ae0ba24881ef99
Author : Petr Písař <ppisar@redhat.com>
Date : 2026-07-09T16:42:02+02:00
Stats : +318/-1 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/hping3/c/6970bc514010c7cba48eba5947ae0ba24881ef99?branch=rawhide
Log:
Port to TCL 9
---
diff --git a/hping3-Port-to-TCL-9.patch b/hping3-Port-to-TCL-9.patch
new file mode 100644
index 0000000..57adf6b
--- /dev/null
+++ b/hping3-Port-to-TCL-9.patch
@@ -0,0 +1,312 @@
+From 6c7adaca6229171105c8d5f801bd95e49f101a6b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 9 Jul 2026 16:30:35 +0200
+Subject: [PATCH] Port to TCL 9
+
+TLC 9 changed API
+<https://core.tcl-lang.org/tcl/wiki?name=Migrating+C+extensions+to+Tcl+9>
+and this patch adapts to it.
+
+It intentionally keeps Tcl_GetIntFromObj() on some places, either
+because the retrieved number is later passed to functionc supporting
+32-bit integers only, or because the meaning does not need large
+values.
+---
+ script.c | 68 ++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 34 insertions(+), 34 deletions(-)
+
+diff --git a/script.c b/script.c
+index 8208f29..2cbf0a8 100644
+--- a/script.c
++++ b/script.c
+@@ -103,7 +103,7 @@ static struct recv_handler *HpingRecvGetHandler(struct recv_handler *ra, int len
+ /* ----------------------------- Sub commands ------------------------------- */
+ /* hping resolve hostname */
+ static int HpingResolveCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ struct sockaddr_in saddr;
+ char *hostname;
+@@ -157,7 +157,7 @@ static int rawsocket = -1;
+
+ /* hping send ?-nocompile? pktdescr */
+ static int HpingSendCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ struct ars_packet p;
+ int nocompile = 0;
+@@ -215,13 +215,13 @@ static int HpingSendCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping sendraw pktdata */
+ static int HpingSendRawCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ int error;
+ Tcl_Obj *result;
+ struct sockaddr_in sa;
+ char *pkt;
+- int pktlen;
++ Tcl_Size pktlen;
+ struct ars_iphdr *ip;
+
+ if (objc != 3) {
+@@ -262,7 +262,7 @@ static int HpingSendRawCmd(ClientData clientData, Tcl_Interp *interp,
+ #define APD_MAX_LEN (65536*2+4096)
+ char *GetPacketDescription(char *data, int len, int hexdata)
+ {
+- unsigned char *p = (char*)data;
++ unsigned char *p = (unsigned char*)data;
+ struct ars_packet pkt;
+ char *d = malloc(APD_MAX_LEN);
+ char *ret;
+@@ -383,7 +383,7 @@ static int HpingRecvPackets(struct recv_handler *ra, Tcl_Interp *interp, Tcl_Obj
+ *
+ * For default timeout is -1, maxpackets is 0 */
+ static int __HpingRecvCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[], int rapd, int hexdata)
++ int objc, Tcl_Obj *const objv[], int rapd, int hexdata)
+ {
+ Tcl_Obj *result;
+ struct recv_handler *ra;
+@@ -416,13 +416,13 @@ static int __HpingRecvCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* The two wrappers for the __HpingRecvRawCmd() */
+ static int HpingRecvRawCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ return __HpingRecvCmd(clientData, interp, objc, objv, 0, 0);
+ }
+
+ static int HpingRecvCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ char *firstarg;
+ int hexdata = 0;
+@@ -440,7 +440,7 @@ static int HpingRecvCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping getinterfaces */
+ static int HpingGetInterfacesCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ struct hpingif ifaces[HPING_IFACE_MAX];
+ int found, i;
+@@ -513,7 +513,7 @@ static int HpingGetInterfacesCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping outifaddr destaddr */
+ static int HpingGetOutIfAddrCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ struct sockaddr_in dest, ifaddr;
+ Tcl_Obj *result;
+@@ -541,7 +541,7 @@ static int HpingGetOutIfAddrCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping getfield layer field ?skip? packet */
+ static int HpingGetFieldCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ char *layer, *field, *value, *packet;
+ int skip = 0;
+@@ -570,7 +570,7 @@ static int HpingGetFieldCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping hasfield layer field ?skip? packet */
+ static int HpingHasFieldCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ char *layer, *field, *packet;
+ int skip = 0;
+@@ -598,7 +598,7 @@ static int HpingHasFieldCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping setfield layer field value ?skip? packet */
+ static int HpingSetFieldCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ char *layer, *field, *value, *packet;
+ int skip = 0, vstart, vend;
+@@ -630,7 +630,7 @@ static int HpingSetFieldCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping delfield layer field ?skip? packet */
+ static int HpingDelFieldCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ char *layer, *field, *packet;
+ int skip = 0, fstart, vend;
+@@ -669,12 +669,12 @@ static int HpingDelFieldCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping checksum string */
+ static int HpingChecksumCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ Tcl_Obj *result;
+ u_int16_t cksum;
+ char *data;
+- int len;
++ Tcl_Size len;
+
+ result = Tcl_GetObjResult(interp);
+
+@@ -690,7 +690,7 @@ static int HpingChecksumCmd(ClientData clientData, Tcl_Interp *interp,
+
+ /* hping setfilter ifname filter */
+ static int HpingSetFilterCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ struct recv_handler *ra;
+ struct bpf_program bpfp;
+@@ -736,12 +736,12 @@ void HpingEventHandler(void *clientData, int mask)
+
+ /* hping event ifname ?script? */
+ static int HpingEventCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ struct recv_handler *ra;
+ char *ifname;
+ Tcl_Obj *result;
+- int scriptlen;
++ Tcl_Size scriptlen;
+
+ result = Tcl_GetObjResult(interp);
+ if (objc != 3 && objc != 4) {
+@@ -784,7 +784,7 @@ static int HpingEventCmd(ClientData clientData, Tcl_Interp *interp,
+ #if 0
+ /* hping setfilter ifname filter */
+ static int HpingSoftrealtimeCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ struct sched_param sp;
+ int min, max, virtual_priority;
+@@ -817,7 +817,7 @@ static int HpingSoftrealtimeCmd(ClientData clientData, Tcl_Interp *interp,
+ /* ---------------------- hping command implementation ---------------------- */
+ struct subcmd {
+ char *name;
+- int (*proc)(ClientData cd, Tcl_Interp *i, int, Tcl_Obj *CONST objv[]);
++ int (*proc)(ClientData cd, Tcl_Interp *i, int, Tcl_Obj *const objv[]);
+ } subcmds[] = {
+ { "resolve", HpingResolveCmd },
+ { "send", HpingSendCmd },
+@@ -840,7 +840,7 @@ struct subcmd {
+ };
+
+ static int HpingObjCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ int i = 0;
+ char *scmd;
+@@ -881,7 +881,7 @@ static int HpingObjCmd(ClientData clientData, Tcl_Interp *interp,
+ * time to improve on this in the future if needed, without to break the API. */
+
+ static int BigBasicObjCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ Tcl_Obj *result;
+ mpz_t res, t;
+@@ -970,12 +970,12 @@ struct Tcl_ObjType tclMpzType = {
+ * 'val'. If 'val' == NULL, the mpz object is set to zero. */
+ void Tcl_SetMpzObj(Tcl_Obj *objPtr, mpz_ptr val)
+ {
+- Tcl_ObjType *typePtr;
++ const Tcl_ObjType *typePtr;
+ mpz_ptr mpzPtr;
+
+ /* It's not a good idea to set a shared object... */
+ if (Tcl_IsShared(objPtr)) {
+- panic("Tcl_SetMpzObj called with shared object");
++ Tcl_Panic("Tcl_SetMpzObj called with shared object");
+ }
+ /* Free the old object private data and invalidate the string
+ * representation. */
+@@ -988,7 +988,7 @@ void Tcl_SetMpzObj(Tcl_Obj *objPtr, mpz_ptr val)
+ mpzPtr = (mpz_ptr) ckalloc(sizeof(struct struct_sbnz));
+ mpz_init(mpzPtr);
+ if (val && mpz_set(mpzPtr, val) != SBN_OK) {
+- panic("Out of memory in Tcl_SetMpzObj");
++ Tcl_Panic("Out of memory in Tcl_SetMpzObj");
+ }
+ /* Set it as object private data, and type */
+ objPtr->typePtr = &tclMpzType;
+@@ -1041,7 +1041,7 @@ void DupMpzInternalRep(Tcl_Obj *srcPtr, Tcl_Obj *copyPtr)
+ mpz_init(mpzCopyPtr);
+ mpzSrcPtr = (mpz_ptr) srcPtr->internalRep.otherValuePtr;
+ if (mpz_set(mpzCopyPtr, mpzSrcPtr) != SBN_OK)
+- panic("Out of memory inside DupMpzInternalRep()");
++ Tcl_Panic("Out of memory inside DupMpzInternalRep()");
+ copyPtr->internalRep.otherValuePtr = (void*) mpzCopyPtr;
+ copyPtr->typePtr = &tclMpzType;
+ }
+@@ -1066,7 +1066,7 @@ int SetMpzFromAny(struct Tcl_Interp* interp, Tcl_Obj *objPtr)
+ char *s;
+ mpz_t t;
+ mpz_ptr mpzPtr;
+- Tcl_ObjType *typePtr;
++ const Tcl_ObjType *typePtr;
+
+ if (objPtr->typePtr == &tclMpzType)
+ return TCL_OK;
+@@ -1101,7 +1101,7 @@ int SetMpzFromAny(struct Tcl_Interp* interp, Tcl_Obj *objPtr)
+ /* --------------- the actual commands for multipreicision math ------------- */
+
+ static int BigBasicObjCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ Tcl_Obj *result;
+ mpz_t res;
+@@ -1169,7 +1169,7 @@ oom:
+ }
+
+ static int BigCmpObjCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ Tcl_Obj *result;
+ mpz_ptr a, b;
+@@ -1222,7 +1222,7 @@ static int BigCmpObjCmd(ClientData clientData, Tcl_Interp *interp,
+ }
+
+ static int BigRandObjCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ Tcl_Obj *result;
+ int len = 1;
+@@ -1247,10 +1247,10 @@ static int BigRandObjCmd(ClientData clientData, Tcl_Interp *interp,
+ }
+
+ static int BigSrandObjCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ char *seed;
+- int len;
++ Tcl_Size len;
+
+ if (objc != 2) {
+ Tcl_WrongNumArgs(interp, 1, objv, "seed-string");
+@@ -1262,7 +1262,7 @@ static int BigSrandObjCmd(ClientData clientData, Tcl_Interp *interp,
+ }
+
+ static int BigPowObjCmd(ClientData clientData, Tcl_Interp *interp,
+- int objc, Tcl_Obj *CONST objv[])
++ int objc, Tcl_Obj *const objv[])
+ {
+ Tcl_Obj *result;
+ int mpzerr;
+--
+2.55.0
+
diff --git a/hping3.spec b/hping3.spec
index ac4d756..2aec06a 100644
--- a/hping3.spec
+++ b/hping3.spec
@@ -1,7 +1,7 @@
%define cvs 20051105
Name: hping3
Version: 0.0.%{cvs}
-Release: 49%{?dist}
+Release: 50%{?dist}
Summary: TCP/IP stack auditing and much more
# Automatically converted from old format: GPLv2 - review is highly recommended.
@@ -15,6 +15,7 @@ Patch3: hping3-cflags.patch
Patch4: hping3-man.patch
Patch5: hping3-20051105-typo.patch
Patch6: hping3-common.patch
+Patch7: hping3-Port-to-TCL-9.patch
BuildRequires: gcc
BuildRequires: libpcap-devel, tcl-devel
BuildRequires: make
@@ -38,6 +39,7 @@ Since version 3, hping implements scripting capabilties
%patch -P4 -p0 -b .man
%patch -P5 -p1
%patch -P6 -p1 -b .common
+%patch -P7 -p1
%build
%configure --force-libpcap
@@ -62,6 +64,9 @@ ln -sf hping3 $RPM_BUILD_ROOT%{_sbindir}/hping2
%{_mandir}/man8/*
%changelog
+* Thu Jul 09 2026 Petr Pisar <ppisar@redhat.com> - 0.0.20051105-50
+- Port to TCL 9 (bug #2337715)
+
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.20051105-49
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
reply other threads:[~2026-07-10 19:57 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178371343456.1.2646521425644245781.rpms-hping3-6970bc514010@fedoraproject.org \
--to=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox