From 79f0ff5f11fc4360b561a030a2582941c2b5ec73 Mon Sep 17 00:00:00 2001
From: François Andriot <albator78@libertysurf.fr>
Date: Mon, 28 Sep 2026 20:25:00 +0200
Subject: RPM: update extra packages (merge from r14.1.x branch)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: François Andriot <albator78@libertysurf.fr>
---
 redhat/extras/htdig/htdig.spec                     |  28 +-
 redhat/extras/htdig/patches/fix-ftbfs-gcc14        |  11 +
 redhat/extras/htdig/patches/gcc-11                 | 370 ---------------------
 redhat/extras/htdig/patches/gcc-11.patch           | 370 +++++++++++++++++++++
 redhat/extras/htdig/patches/series                 |   3 +-
 redhat/extras/pinentry-tqt/pinentry-tqt.spec       |   6 +-
 redhat/extras/trinity-desktop/trinity-desktop.spec |   1 -
 7 files changed, 402 insertions(+), 387 deletions(-)
 create mode 100644 redhat/extras/htdig/patches/fix-ftbfs-gcc14
 delete mode 100644 redhat/extras/htdig/patches/gcc-11
 create mode 100644 redhat/extras/htdig/patches/gcc-11.patch

diff --git a/redhat/extras/htdig/htdig.spec b/redhat/extras/htdig/htdig.spec
index f1a779fc9..0dfa92ebc 100644
--- a/redhat/extras/htdig/htdig.spec
+++ b/redhat/extras/htdig/htdig.spec
@@ -20,10 +20,12 @@ URL:		http://www.htdig.org/
 Source0:	htdig_3.2.0b6.orig.tar.gz
 
 Patch1:		patches/htdig_3.2.0b6-13.diff
-Patch2:		patches/gcc-6
-Patch3:		patches/sourceforge_logo
-Patch4:		patches/drop-bogus-assignment
-Patch5:		patches/gcc-11
+Patch2:		patches/kfreebsd
+Patch3:		patches/gcc-6
+Patch4:		patches/sourceforge_logo
+Patch5:		patches/drop-bogus-assignment
+Patch6:		patches/gcc-11.patch
+Patch7:		patches/fix-ftbfs-gcc14
 
 BuildRequires:	flex >= 2.5.4a-13
 BuildRequires:	libtool
@@ -114,10 +116,14 @@ Libraries needed to develop for htdig.
 %defattr(-,root,root)
 %doc ChangeLog
 %doc htdoc/*
-#%{_libdir}/htdig/*.a
+%if 0%{?mdkver} < 5000000
+%{_libdir}/htdig/*.a
+%endif
 %{_libdir}/htdig/*.la
 %{_libdir}/htdig/*[a-z].so
-#%{_libdir}/htdig_db/*.a
+%if 0%{?mdkver} < 5000000
+%{_libdir}/htdig_db/*.a
+%endif
 %{_libdir}/htdig_db/*.la
 %{_libdir}/htdig_db/*[a-z].so
 %{_includedir}/*
@@ -148,7 +154,6 @@ various web servers on the campus network.
 
 %files web
 %defattr(-,root,root)
-%config(missingok, noreplace) %attr(0755,root,root) /etc/cron.daily/htdig-dbgen
 %{contentdir}/html/htdig
 %{contentdir}/cgi-bin/*
 
@@ -193,6 +198,8 @@ fi
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
+%patch7 -p1
 autoreconf -fiv
 
 
@@ -226,9 +233,6 @@ rm -rf %{buildroot}
 
 %__make install DESTDIR=%{?buildroot}
 
-# Installs the cron job
-%__install -d -m 755 cron/htdig-dbgen "%{buildroot}%{?_sysconfdir}/cron.daily/htdig-dbgen"
-
 cp %{buildroot}%{contentdir}/cgi-bin/htsearch %{buildroot}%{_bindir}
 
 chmod 644 %{buildroot}%{contentdir}/html/htdig/*
@@ -238,10 +242,10 @@ ln -sf ./search.html %{buildroot}%{contentdir}/html/htdig/index.html
 
 # now get rid of the %{buildroot} paths in the conf files
 for i in /etc/htdig.conf /usr/bin/rundig ; do
-    perl -pi -e "s|%{buildroot}||g" %{buildroot}/$i
+  perl -pi -e "s|%{buildroot}||g" %{buildroot}/$i
 done
 
-mkdir -p %{buildroot}%{_datadir}
+%__install -d %{buildroot}%{_datadir}
 mv %{buildroot}%{contentdir}/html/htdig %{buildroot}%{_datadir}
 ln -sf ../../../usr/share/htdig %{buildroot}%{contentdir}/html/htdig
 
diff --git a/redhat/extras/htdig/patches/fix-ftbfs-gcc14 b/redhat/extras/htdig/patches/fix-ftbfs-gcc14
new file mode 100644
index 000000000..88914b6a0
--- /dev/null
+++ b/redhat/extras/htdig/patches/fix-ftbfs-gcc14
@@ -0,0 +1,11 @@
+--- a/db/os_map.c
++++ b/db/os_map.c
+@@ -31,6 +31,8 @@
+ #endif
+ 
+ #include "db_int.h"
++#include "db_page.h"
++#include "db_ext.h"
+ #include "os_jump.h"
+ 
+ #ifdef HAVE_MMAP
diff --git a/redhat/extras/htdig/patches/gcc-11 b/redhat/extras/htdig/patches/gcc-11
deleted file mode 100644
index 09c974cea..000000000
--- a/redhat/extras/htdig/patches/gcc-11
+++ /dev/null
@@ -1,370 +0,0 @@
-Index: b/htword/WordBitCompress.cc
-===================================================================
---- a/htword/WordBitCompress.cc
-+++ b/htword/WordBitCompress.cc
-@@ -29,7 +29,7 @@
- #include"WordBitCompress.h"
- 
- // ******** HtVector_byte (implementation)
--#define GType byte
-+#define GType byte_t
- #define HtVectorGType HtVector_byte
- #include "HtVectorGenericCode.h"
- 
-@@ -424,13 +424,13 @@
- // **************************************************
- 
- void 
--BitStream::put_zone(byte *vals,int n,const char *tag)
-+BitStream::put_zone(byte_t *vals,int n,const char *tag)
- {
-     add_tag(tag);
-     for(int i=0;i<(n+7)/8;i++){put_uint(vals[i],TMin(8,n-8*i),NULL);}
- }
- void 
--BitStream::get_zone(byte *vals,int n,const char *tag)
-+BitStream::get_zone(byte_t *vals,int n,const char *tag)
- {
-     check_tag(tag);
-     for(int i=0;i<(n+7)/8;i++){vals[i]=get_uint(TMin(8,n-8*i));}
-@@ -699,16 +699,16 @@
-     if(all){printf("\n");}
- 
- }
--byte *
-+byte_t *
- BitStream::get_data()
- {
--    byte *res=(byte *)malloc(buff.size());
-+    byte_t *res=(byte_t *)malloc(buff.size());
-     CHECK_MEM(res);
-     for(int i=0;i<buff.size();i++){res[i]=buff[i];}
-     return(res);
- }
- void 
--BitStream::set_data(const byte *nbuff,int nbits)
-+BitStream::set_data(const byte_t *nbuff,int nbits)
- {
-     if(buff.size()!=1 || bitpos!=0)
-     {
-@@ -835,7 +835,7 @@
- 
- 
- int 
--Compressor::put_fixedbitl(byte *vals,int n,const char *tag)
-+Compressor::put_fixedbitl(byte_t *vals,int n,const char *tag)
- {
-     int cpos=bitpos;
-     int i,j;
-@@ -844,19 +844,19 @@
-     put_uint_vl(n,NBITS_NVALS,"size");
-     if(n==0){return 0;}
- 
--    byte maxv=vals[0];
-+    byte_t maxv=vals[0];
-     for(i=1;i<n;i++)
-     {
--	byte v=vals[i];
-+	byte_t v=vals[i];
- 	if(v>maxv){maxv=v;}
-     }
-     int nbits=num_bits(maxv);
--    if(n>=pow2(NBITS_NVALS)){errr("Compressor::put_fixedbitl(byte *) : overflow: nvals>2^16");}
-+    if(n>=pow2(NBITS_NVALS)){errr("Compressor::put_fixedbitl(byte_t *) : overflow: nvals>2^16");}
-     put_uint(nbits,NBITS_NBITS_CHARVAL,"nbits");
-     add_tag("data");
-     for(i=0;i<n;i++)
-     {
--	byte v=vals[i];
-+	byte_t v=vals[i];
- 	for(j=0;j<nbits;j++) {put(v&pow2(j));}
-     }	
-     return(bitpos-cpos);
-@@ -887,15 +887,15 @@
-     }
- }
- int 
--Compressor::get_fixedbitl(byte **pres,const char *tag/*="BADTAG!"*/)
-+Compressor::get_fixedbitl(byte_t **pres,const char *tag/*="BADTAG!"*/)
- {
--    if(check_tag(tag)==NOTOK){errr("Compressor::get_fixedbitl(byte *): check_tag failed");}
-+    if(check_tag(tag)==NOTOK){errr("Compressor::get_fixedbitl(byte_t *): check_tag failed");}
-     int n=get_uint_vl(NBITS_NVALS);
-     if(!n){*pres=NULL;return 0;}
-     int nbits=get_uint(NBITS_NBITS_CHARVAL);
--    if(verbose)printf("get_fixedbitl(byte):n%3d nbits:%2d\n",n,nbits);
-+    if(verbose)printf("get_fixedbitl(byte_t):n%3d nbits:%2d\n",n,nbits);
-     int i;
--    byte *res=new byte[n];
-+    byte_t *res=new byte_t[n];
-     CHECK_MEM(res);
-     for(i=0;i<n;i++)
-     {
-Index: b/htword/WordBitCompress.h
-===================================================================
---- a/htword/WordBitCompress.h
-+++ b/htword/WordBitCompress.h
-@@ -28,9 +28,9 @@
- #include"HtVector_int.h"
- #include"HtMaxMin.h"
- 
--typedef unsigned char byte;
-+typedef unsigned char byte_t;
- // ******** HtVector_byte (header)
--#define GType byte
-+#define GType byte_t
- #define HtVectorGType HtVector_byte
- #include "HtVectorGeneric.h"
- 
-@@ -123,12 +123,12 @@
-     }
- 
-     // gets a bit from the bitstream
--    inline byte get(const char *tag=(char*)NULL)
-+    inline byte_t get(const char *tag=(char*)NULL)
-     {
- 	// SPEED CRITICAL SECTION
- 	if(check_tag(tag)==NOTOK){errr("BitStream::get() check_tag failed");}
- 	if(bitpos>=(buff.size()<<3)){errr("BitStream::get reading past end of BitStream!");}
--	byte res=buff[bitpos>>3] & pow2(bitpos & 0x07);
-+	byte_t res=buff[bitpos>>3] & pow2(bitpos & 0x07);
- //  	printf("get:res:%d bitpos:%5d/%d buff[%3d]=%x\n",res,bitpos,bitpos%8,bitpos/8,buff[bitpos/8]);
- 	bitpos++;
- 	return(res);
-@@ -139,8 +139,8 @@
-     unsigned int get_uint(               int n,const char *tag=(char*)NULL);
- 
-     // get/put n bits of data stored in vals
--    void put_zone(byte *vals,int n,const char *tag);
--    void get_zone(byte *vals,int n,const char *tag);
-+    void put_zone(byte_t *vals,int n,const char *tag);
-+    void get_zone(byte_t *vals,int n,const char *tag);
- 
-     // 
-     inline void add_tag(const char *tag)
-@@ -167,9 +167,9 @@
-     int buffsize(){return(buff.size());}
- 
-     // get a copy of the buffer
--    byte *get_data();
-+    byte_t *get_data();
-     // set the buffer from outside data (current buffer must be empty)
--    void set_data(const byte *nbuff,int nbits);
-+    void set_data(const byte_t *nbuff,int nbits);
-       
-     // use this for reading a BitStream after you have written in it 
-     // (generally for debuging)
-@@ -211,7 +211,7 @@
- #define NBITS_VAL 32
- // number of bits to code he number of bits used by an unsigned int value
- #define NBITS_NBITS_VAL  5
--// number of bits to code the number of bits used by a byte value
-+// number of bits to code the number of bits used by a byte_t value
- #define NBITS_NBITS_CHARVAL 4
- 
- class Compressor : public BitStream
-@@ -240,8 +240,8 @@
-     int get_vals(unsigned int **pres,const char *tag=(char*)"BADTAG!");
- 
-     // compress/decompress an array of bytes (very simple)
--    int put_fixedbitl(byte *vals,int n,const char *tag);    
--    int get_fixedbitl(byte **pres,const char *tag=(char*)"BADTAG!");
-+    int put_fixedbitl(byte_t *vals,int n,const char *tag);
-+    int get_fixedbitl(byte_t **pres,const char *tag=(char*)"BADTAG!");
- 
-     // compress/decompress an array of unsigned ints (very simple)
-     void get_fixedbitl(unsigned int *res,int n);
-Index: b/htword/WordDBPage.cc
-===================================================================
---- a/htword/WordDBPage.cc
-+++ b/htword/WordDBPage.cc
-@@ -155,7 +155,7 @@
- 	Uncompress_main(pin);
- 	break;
-     case CMPRTYPE_BADCOMPRESS:// this page did not compress correctly
--	pin->get_zone((byte *)pg,pgsz*8,"INITIALBUFFER");
-+	pin->get_zone((byte_t *)pg,pgsz*8,"INITIALBUFFER");
- 	break;
-     default:
- 	errr("WordDBPage::Uncompress: CMPRTYPE incoherent");
-@@ -181,7 +181,7 @@
-     int *rnum_sizes=new int[nnums];
-     CHECK_MEM(rnum_sizes);
-     // char differences between words
--    byte *rworddiffs=NULL;
-+    byte_t *rworddiffs=NULL;
-     int nrworddiffs;
- 
-     // *********** read header
-@@ -288,7 +288,7 @@
-     return OK;
- }
- void 
--WordDBPage::Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte *rworddiffs,int nrworddiffs)
-+WordDBPage::Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte_t *rworddiffs,int nrworddiffs)
- {
-     int irwordiffs=0;
-     int nfields=WordKey::NFields();
-@@ -405,7 +405,7 @@
- 
- // display
- void 
--WordDBPage::Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte *rworddiffs,int nrworddiffs)
-+WordDBPage::Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte_t *rworddiffs,int nrworddiffs)
- {
-     int i,j;
-     if(verbose)
-@@ -464,7 +464,7 @@
- 	res->put_uint(COMPRESS_VERSION,NBITS_COMPRESS_VERSION,"COMPRESS_VERSION");
- 	res->put_uint(CMPRTYPE_BADCOMPRESS,NBITS_CMPRTYPE,"CMPRTYPE");
- 
--	res->put_zone((byte *)pg,pgsz*8,"INITIALBUFFER");
-+	res->put_zone((byte_t *)pg,pgsz*8,"INITIALBUFFER");
-     }
- 
-     if(verbose)
-@@ -761,7 +761,7 @@
- 	printf("compare failed in some unknown place in header:\n");
- 	for(i=0;i<(int)(sizeof(PAGE)-sizeof(db_indx_t));i++)
- 	{
--	    printf("%3d: %3x %3x\n",i,((byte *)pg)[i],((byte *)other.pg)[i]);
-+	    printf("%3d: %3x %3x\n",i,((byte_t *)pg)[i],((byte_t *)other.pg)[i]);
- 	}
-     }
- 
-@@ -998,7 +998,7 @@
- 	  printf("%5d: ",nn);
- 	  for(j=0;j<20;j++)
- 	  {
--	      printf("%2x ",((byte *)pg)[nn++]);
-+	      printf("%2x ",((byte_t *)pg)[nn++]);
- 	      if(nn>=pgsz){break;}
- 	  }
- 	  printf("\n");
-Index: b/htword/WordDBPage.h
-===================================================================
---- a/htword/WordDBPage.h
-+++ b/htword/WordDBPage.h
-@@ -65,7 +65,7 @@
- 	}
-     }
-     WordDBRecord():WordRecord(){;}
--    WordDBRecord(byte *dat,int len,int rectyp):WordRecord()
-+    WordDBRecord(byte_t *dat,int len,int rectyp):WordRecord()
-     {
- 	type=(rectyp ? DefaultType() : WORD_RECORD_STATS);
- 	Unpack(String((char *)dat,len));
-@@ -118,7 +118,7 @@
- 	}
- 	else{Unpack(String((char *)nkey->data,nkey->len));}
-     }
--    WordDBKey(byte *data,int len):WordKey()
-+    WordDBKey(byte_t *data,int len):WordKey()
-     {
- 	key=NULL;
- 	if(!data || !len){errr("WordDBKey::WordDBKey(data,len) !data || !len");}
-@@ -207,7 +207,7 @@
-     void *alloc_entry(int size)
-     {
- 	size=WORD_ALIGN_TO(size,4);	
--	int inp_pos=((byte *)&(pg->inp[insert_indx]))-(byte *)pg;
-+	int inp_pos=((byte_t *)&(pg->inp[insert_indx]))-(byte_t *)pg;
- 	insert_pos-=size;
- 	if(insert_pos<=inp_pos)
- 	{
-@@ -216,7 +216,7 @@
- 	    errr("WordDBPage::alloc_entry: PAGE OVERFLOW");
- 	}
- 	pg->inp[insert_indx++]=insert_pos;
--	return((void *)((byte *)pg+insert_pos));
-+	return((void *)((byte_t *)pg+insert_pos));
-     }
- 
-     
-@@ -260,11 +260,11 @@
- 	    ky.Pack(pkey);
- 	    keylen=pkey.length();
- 	}
--	int size=keylen+((byte *)&(bti.data))-((byte *)&bti);// pos of data field in BINTERNAL
-+	int size=keylen+((byte_t *)&(bti.data))-((byte_t *)&bti);// pos of data field in BINTERNAL
- 	if(empty)
- 	{
- 	    if(verbose){printf("WordDBPage::insert_btikey: empty : BINTERNAL:%d datapos:%d keylen:%d size:%d alligned to:%d\n",(int)sizeof(BINTERNAL),
--			       (int)(((byte *)&(bti.data))-((byte *)&bti)),
-+			       (int)(((byte_t *)&(bti.data))-((byte_t *)&bti)),
- 			       keylen,size,WORD_ALIGN_TO(size,4));}
- 	}
- 
-@@ -306,8 +306,8 @@
-     int  Uncompress_main(Compressor *pin);
-     void Uncompress_vals_chaged_flags(Compressor &in,unsigned int **pcflags,int *pn);
-     int  Uncompress_header(Compressor &in);
--    void Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte *rworddiffs,int nrworddiffs);
--    void Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte *rworddiffs,int nrworddiffs);
-+    void Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte_t *rworddiffs,int nrworddiffs);
-+    void Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte_t *rworddiffs,int nrworddiffs);
- 
-     int TestCompress(int debuglevel);
-     int Compare(WordDBPage &other);
-@@ -326,14 +326,14 @@
- 	    out.put_uint(btikey(i)->type ,sizeof(btikey(i)->type )*8,label_str("seperatekey_bti_type" ,i));
- 	    out.put_uint(btikey(i)->pgno ,sizeof(btikey(i)->pgno )*8,label_str("seperatekey_bti_pgno" ,i));
- 	    out.put_uint(btikey(i)->nrecs,sizeof(btikey(i)->nrecs)*8,label_str("seperatekey_bti_nrecs",i));
--	    if(len){out.put_zone((byte *)btikey(i)->data,8*len,label_str("seperatekey_btidata",i));}
-+	    if(len){out.put_zone((byte_t *)btikey(i)->data,8*len,label_str("seperatekey_btidata",i));}
- 	}
- 	else
- 	{
- 	    int len=key(i)->len;
- 	    out.put_uint(len,NBITS_KEYLEN,label_str("seperatekey_len",i));
- 	    if(verbose){printf("WordDBPage::compress_key: compress(typ5):%d\n",len);}
--	    out.put_zone((byte *)key(i)->data,8*len,label_str("seperatekey_data",i));
-+	    out.put_zone((byte_t *)key(i)->data,8*len,label_str("seperatekey_data",i));
- 	}
-     }
-     void compress_data(Compressor &out,int i)
-@@ -341,7 +341,7 @@
- 	int len=data(i)->len;
- 	out.put_uint(len,NBITS_DATALEN,label_str("seperatedata_len",i));
- 	if(verbose){printf("WordDBPage::compress_data: compressdata(typ5):%d\n",len);}
--	out.put_zone((byte *)data(i)->data,8*len,label_str("seperatedata_data",i));
-+	out.put_zone((byte_t *)data(i)->data,8*len,label_str("seperatedata_data",i));
-     }
-     WordDBKey uncompress_key(Compressor &in,int i)
-     {
-@@ -360,7 +360,7 @@
- 	    if(len!=bti.len){errr("WordDBPage::uncompress_key: incoherence: len!=bti.len");}
- 	    if(len)
- 	    {
--		byte *gotdata=new byte[len];
-+		byte_t *gotdata=new byte_t[len];
- 		CHECK_MEM(gotdata);
- 		in.get_zone(gotdata,8*len,label_str("seperatekey_btidata",i));
- 		res=WordDBKey(gotdata,len);
-@@ -370,7 +370,7 @@
- 	}
- 	else
- 	{
--	    byte *gotdata=new byte[len];
-+	    byte_t *gotdata=new byte_t[len];
- 	    CHECK_MEM(gotdata);
- 	    in.get_zone(gotdata,8*len,label_str("seperatekey_data",i));
- 	    res=WordDBKey(gotdata,len);
-@@ -384,7 +384,7 @@
- 	WordDBRecord res;
- 	int len=in.get_uint(NBITS_DATALEN,label_str("seperatedata_len",i));
- 	if(verbose)printf("uncompressdata:len:%d\n",len);
--	byte *gotdata=new byte[len];
-+	byte_t *gotdata=new byte_t[len];
- 	CHECK_MEM(gotdata);
- 	in.get_zone(gotdata,8*len,label_str("seperatedata_data",i));
- 	res=WordDBRecord(gotdata,len,rectyp);
-@@ -488,7 +488,7 @@
-     {
- 	init0();
- 	pgsz=npgsz;
--	pg=(PAGE *)(new byte[pgsz]);
-+	pg=(PAGE *)(new byte_t[pgsz]);
- 	CHECK_MEM(pg);
- 	insert_pos=pgsz;
- 	insert_indx=0;
diff --git a/redhat/extras/htdig/patches/gcc-11.patch b/redhat/extras/htdig/patches/gcc-11.patch
new file mode 100644
index 000000000..09c974cea
--- /dev/null
+++ b/redhat/extras/htdig/patches/gcc-11.patch
@@ -0,0 +1,370 @@
+Index: b/htword/WordBitCompress.cc
+===================================================================
+--- a/htword/WordBitCompress.cc
++++ b/htword/WordBitCompress.cc
+@@ -29,7 +29,7 @@
+ #include"WordBitCompress.h"
+ 
+ // ******** HtVector_byte (implementation)
+-#define GType byte
++#define GType byte_t
+ #define HtVectorGType HtVector_byte
+ #include "HtVectorGenericCode.h"
+ 
+@@ -424,13 +424,13 @@
+ // **************************************************
+ 
+ void 
+-BitStream::put_zone(byte *vals,int n,const char *tag)
++BitStream::put_zone(byte_t *vals,int n,const char *tag)
+ {
+     add_tag(tag);
+     for(int i=0;i<(n+7)/8;i++){put_uint(vals[i],TMin(8,n-8*i),NULL);}
+ }
+ void 
+-BitStream::get_zone(byte *vals,int n,const char *tag)
++BitStream::get_zone(byte_t *vals,int n,const char *tag)
+ {
+     check_tag(tag);
+     for(int i=0;i<(n+7)/8;i++){vals[i]=get_uint(TMin(8,n-8*i));}
+@@ -699,16 +699,16 @@
+     if(all){printf("\n");}
+ 
+ }
+-byte *
++byte_t *
+ BitStream::get_data()
+ {
+-    byte *res=(byte *)malloc(buff.size());
++    byte_t *res=(byte_t *)malloc(buff.size());
+     CHECK_MEM(res);
+     for(int i=0;i<buff.size();i++){res[i]=buff[i];}
+     return(res);
+ }
+ void 
+-BitStream::set_data(const byte *nbuff,int nbits)
++BitStream::set_data(const byte_t *nbuff,int nbits)
+ {
+     if(buff.size()!=1 || bitpos!=0)
+     {
+@@ -835,7 +835,7 @@
+ 
+ 
+ int 
+-Compressor::put_fixedbitl(byte *vals,int n,const char *tag)
++Compressor::put_fixedbitl(byte_t *vals,int n,const char *tag)
+ {
+     int cpos=bitpos;
+     int i,j;
+@@ -844,19 +844,19 @@
+     put_uint_vl(n,NBITS_NVALS,"size");
+     if(n==0){return 0;}
+ 
+-    byte maxv=vals[0];
++    byte_t maxv=vals[0];
+     for(i=1;i<n;i++)
+     {
+-	byte v=vals[i];
++	byte_t v=vals[i];
+ 	if(v>maxv){maxv=v;}
+     }
+     int nbits=num_bits(maxv);
+-    if(n>=pow2(NBITS_NVALS)){errr("Compressor::put_fixedbitl(byte *) : overflow: nvals>2^16");}
++    if(n>=pow2(NBITS_NVALS)){errr("Compressor::put_fixedbitl(byte_t *) : overflow: nvals>2^16");}
+     put_uint(nbits,NBITS_NBITS_CHARVAL,"nbits");
+     add_tag("data");
+     for(i=0;i<n;i++)
+     {
+-	byte v=vals[i];
++	byte_t v=vals[i];
+ 	for(j=0;j<nbits;j++) {put(v&pow2(j));}
+     }	
+     return(bitpos-cpos);
+@@ -887,15 +887,15 @@
+     }
+ }
+ int 
+-Compressor::get_fixedbitl(byte **pres,const char *tag/*="BADTAG!"*/)
++Compressor::get_fixedbitl(byte_t **pres,const char *tag/*="BADTAG!"*/)
+ {
+-    if(check_tag(tag)==NOTOK){errr("Compressor::get_fixedbitl(byte *): check_tag failed");}
++    if(check_tag(tag)==NOTOK){errr("Compressor::get_fixedbitl(byte_t *): check_tag failed");}
+     int n=get_uint_vl(NBITS_NVALS);
+     if(!n){*pres=NULL;return 0;}
+     int nbits=get_uint(NBITS_NBITS_CHARVAL);
+-    if(verbose)printf("get_fixedbitl(byte):n%3d nbits:%2d\n",n,nbits);
++    if(verbose)printf("get_fixedbitl(byte_t):n%3d nbits:%2d\n",n,nbits);
+     int i;
+-    byte *res=new byte[n];
++    byte_t *res=new byte_t[n];
+     CHECK_MEM(res);
+     for(i=0;i<n;i++)
+     {
+Index: b/htword/WordBitCompress.h
+===================================================================
+--- a/htword/WordBitCompress.h
++++ b/htword/WordBitCompress.h
+@@ -28,9 +28,9 @@
+ #include"HtVector_int.h"
+ #include"HtMaxMin.h"
+ 
+-typedef unsigned char byte;
++typedef unsigned char byte_t;
+ // ******** HtVector_byte (header)
+-#define GType byte
++#define GType byte_t
+ #define HtVectorGType HtVector_byte
+ #include "HtVectorGeneric.h"
+ 
+@@ -123,12 +123,12 @@
+     }
+ 
+     // gets a bit from the bitstream
+-    inline byte get(const char *tag=(char*)NULL)
++    inline byte_t get(const char *tag=(char*)NULL)
+     {
+ 	// SPEED CRITICAL SECTION
+ 	if(check_tag(tag)==NOTOK){errr("BitStream::get() check_tag failed");}
+ 	if(bitpos>=(buff.size()<<3)){errr("BitStream::get reading past end of BitStream!");}
+-	byte res=buff[bitpos>>3] & pow2(bitpos & 0x07);
++	byte_t res=buff[bitpos>>3] & pow2(bitpos & 0x07);
+ //  	printf("get:res:%d bitpos:%5d/%d buff[%3d]=%x\n",res,bitpos,bitpos%8,bitpos/8,buff[bitpos/8]);
+ 	bitpos++;
+ 	return(res);
+@@ -139,8 +139,8 @@
+     unsigned int get_uint(               int n,const char *tag=(char*)NULL);
+ 
+     // get/put n bits of data stored in vals
+-    void put_zone(byte *vals,int n,const char *tag);
+-    void get_zone(byte *vals,int n,const char *tag);
++    void put_zone(byte_t *vals,int n,const char *tag);
++    void get_zone(byte_t *vals,int n,const char *tag);
+ 
+     // 
+     inline void add_tag(const char *tag)
+@@ -167,9 +167,9 @@
+     int buffsize(){return(buff.size());}
+ 
+     // get a copy of the buffer
+-    byte *get_data();
++    byte_t *get_data();
+     // set the buffer from outside data (current buffer must be empty)
+-    void set_data(const byte *nbuff,int nbits);
++    void set_data(const byte_t *nbuff,int nbits);
+       
+     // use this for reading a BitStream after you have written in it 
+     // (generally for debuging)
+@@ -211,7 +211,7 @@
+ #define NBITS_VAL 32
+ // number of bits to code he number of bits used by an unsigned int value
+ #define NBITS_NBITS_VAL  5
+-// number of bits to code the number of bits used by a byte value
++// number of bits to code the number of bits used by a byte_t value
+ #define NBITS_NBITS_CHARVAL 4
+ 
+ class Compressor : public BitStream
+@@ -240,8 +240,8 @@
+     int get_vals(unsigned int **pres,const char *tag=(char*)"BADTAG!");
+ 
+     // compress/decompress an array of bytes (very simple)
+-    int put_fixedbitl(byte *vals,int n,const char *tag);    
+-    int get_fixedbitl(byte **pres,const char *tag=(char*)"BADTAG!");
++    int put_fixedbitl(byte_t *vals,int n,const char *tag);
++    int get_fixedbitl(byte_t **pres,const char *tag=(char*)"BADTAG!");
+ 
+     // compress/decompress an array of unsigned ints (very simple)
+     void get_fixedbitl(unsigned int *res,int n);
+Index: b/htword/WordDBPage.cc
+===================================================================
+--- a/htword/WordDBPage.cc
++++ b/htword/WordDBPage.cc
+@@ -155,7 +155,7 @@
+ 	Uncompress_main(pin);
+ 	break;
+     case CMPRTYPE_BADCOMPRESS:// this page did not compress correctly
+-	pin->get_zone((byte *)pg,pgsz*8,"INITIALBUFFER");
++	pin->get_zone((byte_t *)pg,pgsz*8,"INITIALBUFFER");
+ 	break;
+     default:
+ 	errr("WordDBPage::Uncompress: CMPRTYPE incoherent");
+@@ -181,7 +181,7 @@
+     int *rnum_sizes=new int[nnums];
+     CHECK_MEM(rnum_sizes);
+     // char differences between words
+-    byte *rworddiffs=NULL;
++    byte_t *rworddiffs=NULL;
+     int nrworddiffs;
+ 
+     // *********** read header
+@@ -288,7 +288,7 @@
+     return OK;
+ }
+ void 
+-WordDBPage::Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte *rworddiffs,int nrworddiffs)
++WordDBPage::Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte_t *rworddiffs,int nrworddiffs)
+ {
+     int irwordiffs=0;
+     int nfields=WordKey::NFields();
+@@ -405,7 +405,7 @@
+ 
+ // display
+ void 
+-WordDBPage::Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte *rworddiffs,int nrworddiffs)
++WordDBPage::Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums0,byte_t *rworddiffs,int nrworddiffs)
+ {
+     int i,j;
+     if(verbose)
+@@ -464,7 +464,7 @@
+ 	res->put_uint(COMPRESS_VERSION,NBITS_COMPRESS_VERSION,"COMPRESS_VERSION");
+ 	res->put_uint(CMPRTYPE_BADCOMPRESS,NBITS_CMPRTYPE,"CMPRTYPE");
+ 
+-	res->put_zone((byte *)pg,pgsz*8,"INITIALBUFFER");
++	res->put_zone((byte_t *)pg,pgsz*8,"INITIALBUFFER");
+     }
+ 
+     if(verbose)
+@@ -761,7 +761,7 @@
+ 	printf("compare failed in some unknown place in header:\n");
+ 	for(i=0;i<(int)(sizeof(PAGE)-sizeof(db_indx_t));i++)
+ 	{
+-	    printf("%3d: %3x %3x\n",i,((byte *)pg)[i],((byte *)other.pg)[i]);
++	    printf("%3d: %3x %3x\n",i,((byte_t *)pg)[i],((byte_t *)other.pg)[i]);
+ 	}
+     }
+ 
+@@ -998,7 +998,7 @@
+ 	  printf("%5d: ",nn);
+ 	  for(j=0;j<20;j++)
+ 	  {
+-	      printf("%2x ",((byte *)pg)[nn++]);
++	      printf("%2x ",((byte_t *)pg)[nn++]);
+ 	      if(nn>=pgsz){break;}
+ 	  }
+ 	  printf("\n");
+Index: b/htword/WordDBPage.h
+===================================================================
+--- a/htword/WordDBPage.h
++++ b/htword/WordDBPage.h
+@@ -65,7 +65,7 @@
+ 	}
+     }
+     WordDBRecord():WordRecord(){;}
+-    WordDBRecord(byte *dat,int len,int rectyp):WordRecord()
++    WordDBRecord(byte_t *dat,int len,int rectyp):WordRecord()
+     {
+ 	type=(rectyp ? DefaultType() : WORD_RECORD_STATS);
+ 	Unpack(String((char *)dat,len));
+@@ -118,7 +118,7 @@
+ 	}
+ 	else{Unpack(String((char *)nkey->data,nkey->len));}
+     }
+-    WordDBKey(byte *data,int len):WordKey()
++    WordDBKey(byte_t *data,int len):WordKey()
+     {
+ 	key=NULL;
+ 	if(!data || !len){errr("WordDBKey::WordDBKey(data,len) !data || !len");}
+@@ -207,7 +207,7 @@
+     void *alloc_entry(int size)
+     {
+ 	size=WORD_ALIGN_TO(size,4);	
+-	int inp_pos=((byte *)&(pg->inp[insert_indx]))-(byte *)pg;
++	int inp_pos=((byte_t *)&(pg->inp[insert_indx]))-(byte_t *)pg;
+ 	insert_pos-=size;
+ 	if(insert_pos<=inp_pos)
+ 	{
+@@ -216,7 +216,7 @@
+ 	    errr("WordDBPage::alloc_entry: PAGE OVERFLOW");
+ 	}
+ 	pg->inp[insert_indx++]=insert_pos;
+-	return((void *)((byte *)pg+insert_pos));
++	return((void *)((byte_t *)pg+insert_pos));
+     }
+ 
+     
+@@ -260,11 +260,11 @@
+ 	    ky.Pack(pkey);
+ 	    keylen=pkey.length();
+ 	}
+-	int size=keylen+((byte *)&(bti.data))-((byte *)&bti);// pos of data field in BINTERNAL
++	int size=keylen+((byte_t *)&(bti.data))-((byte_t *)&bti);// pos of data field in BINTERNAL
+ 	if(empty)
+ 	{
+ 	    if(verbose){printf("WordDBPage::insert_btikey: empty : BINTERNAL:%d datapos:%d keylen:%d size:%d alligned to:%d\n",(int)sizeof(BINTERNAL),
+-			       (int)(((byte *)&(bti.data))-((byte *)&bti)),
++			       (int)(((byte_t *)&(bti.data))-((byte_t *)&bti)),
+ 			       keylen,size,WORD_ALIGN_TO(size,4));}
+ 	}
+ 
+@@ -306,8 +306,8 @@
+     int  Uncompress_main(Compressor *pin);
+     void Uncompress_vals_chaged_flags(Compressor &in,unsigned int **pcflags,int *pn);
+     int  Uncompress_header(Compressor &in);
+-    void Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte *rworddiffs,int nrworddiffs);
+-    void Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte *rworddiffs,int nrworddiffs);
++    void Uncompress_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte_t *rworddiffs,int nrworddiffs);
++    void Uncompress_show_rebuild(unsigned int **rnums,int *rnum_sizes,int nnums,byte_t *rworddiffs,int nrworddiffs);
+ 
+     int TestCompress(int debuglevel);
+     int Compare(WordDBPage &other);
+@@ -326,14 +326,14 @@
+ 	    out.put_uint(btikey(i)->type ,sizeof(btikey(i)->type )*8,label_str("seperatekey_bti_type" ,i));
+ 	    out.put_uint(btikey(i)->pgno ,sizeof(btikey(i)->pgno )*8,label_str("seperatekey_bti_pgno" ,i));
+ 	    out.put_uint(btikey(i)->nrecs,sizeof(btikey(i)->nrecs)*8,label_str("seperatekey_bti_nrecs",i));
+-	    if(len){out.put_zone((byte *)btikey(i)->data,8*len,label_str("seperatekey_btidata",i));}
++	    if(len){out.put_zone((byte_t *)btikey(i)->data,8*len,label_str("seperatekey_btidata",i));}
+ 	}
+ 	else
+ 	{
+ 	    int len=key(i)->len;
+ 	    out.put_uint(len,NBITS_KEYLEN,label_str("seperatekey_len",i));
+ 	    if(verbose){printf("WordDBPage::compress_key: compress(typ5):%d\n",len);}
+-	    out.put_zone((byte *)key(i)->data,8*len,label_str("seperatekey_data",i));
++	    out.put_zone((byte_t *)key(i)->data,8*len,label_str("seperatekey_data",i));
+ 	}
+     }
+     void compress_data(Compressor &out,int i)
+@@ -341,7 +341,7 @@
+ 	int len=data(i)->len;
+ 	out.put_uint(len,NBITS_DATALEN,label_str("seperatedata_len",i));
+ 	if(verbose){printf("WordDBPage::compress_data: compressdata(typ5):%d\n",len);}
+-	out.put_zone((byte *)data(i)->data,8*len,label_str("seperatedata_data",i));
++	out.put_zone((byte_t *)data(i)->data,8*len,label_str("seperatedata_data",i));
+     }
+     WordDBKey uncompress_key(Compressor &in,int i)
+     {
+@@ -360,7 +360,7 @@
+ 	    if(len!=bti.len){errr("WordDBPage::uncompress_key: incoherence: len!=bti.len");}
+ 	    if(len)
+ 	    {
+-		byte *gotdata=new byte[len];
++		byte_t *gotdata=new byte_t[len];
+ 		CHECK_MEM(gotdata);
+ 		in.get_zone(gotdata,8*len,label_str("seperatekey_btidata",i));
+ 		res=WordDBKey(gotdata,len);
+@@ -370,7 +370,7 @@
+ 	}
+ 	else
+ 	{
+-	    byte *gotdata=new byte[len];
++	    byte_t *gotdata=new byte_t[len];
+ 	    CHECK_MEM(gotdata);
+ 	    in.get_zone(gotdata,8*len,label_str("seperatekey_data",i));
+ 	    res=WordDBKey(gotdata,len);
+@@ -384,7 +384,7 @@
+ 	WordDBRecord res;
+ 	int len=in.get_uint(NBITS_DATALEN,label_str("seperatedata_len",i));
+ 	if(verbose)printf("uncompressdata:len:%d\n",len);
+-	byte *gotdata=new byte[len];
++	byte_t *gotdata=new byte_t[len];
+ 	CHECK_MEM(gotdata);
+ 	in.get_zone(gotdata,8*len,label_str("seperatedata_data",i));
+ 	res=WordDBRecord(gotdata,len,rectyp);
+@@ -488,7 +488,7 @@
+     {
+ 	init0();
+ 	pgsz=npgsz;
+-	pg=(PAGE *)(new byte[pgsz]);
++	pg=(PAGE *)(new byte_t[pgsz]);
+ 	CHECK_MEM(pg);
+ 	insert_pos=pgsz;
+ 	insert_indx=0;
diff --git a/redhat/extras/htdig/patches/series b/redhat/extras/htdig/patches/series
index da0d40c91..857883dbb 100644
--- a/redhat/extras/htdig/patches/series
+++ b/redhat/extras/htdig/patches/series
@@ -3,4 +3,5 @@ kfreebsd
 gcc-6
 sourceforge_logo
 drop-bogus-assignment
-gcc-11
+gcc-11.patch
+fix-ftbfs-gcc14
diff --git a/redhat/extras/pinentry-tqt/pinentry-tqt.spec b/redhat/extras/pinentry-tqt/pinentry-tqt.spec
index e7051a162..1bbcc5da8 100644
--- a/redhat/extras/pinentry-tqt/pinentry-tqt.spec
+++ b/redhat/extras/pinentry-tqt/pinentry-tqt.spec
@@ -17,7 +17,7 @@
 
 
 Name:		pinentry-tqt
-Version:	1.3.0
+Version:	1.3.1
 Release:	1%{?dist}
 Summary:	PIN or passphrase entry dialogs
 Group:		System/Libraries
@@ -36,7 +36,7 @@ BuildRoot:		%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 Source0:	%{name}-%{version}.tar.gz
 
-BuildRequires:	trinity-tqtinterface-devel
+BuildRequires:	libtqt3-mt-devel >= 3.5.0
 
 BuildRequires:	desktop-file-utils
 BuildRequires:	gettext
@@ -83,7 +83,7 @@ if [ -d "/usr/include/libassuan2" ]; then
   export CFLAGS="%{optflags} -I/usr/include/libassuan2"
 fi
 
-./autogen.sh
+#./autogen.sh
 
 %if 0%{?mgaversion} == 6 || 0%{?mgaversion} == 7 || 0%{?pclinuxos}
 %configure2_5x \
diff --git a/redhat/extras/trinity-desktop/trinity-desktop.spec b/redhat/extras/trinity-desktop/trinity-desktop.spec
index aec1c3a1a..48689b2f6 100644
--- a/redhat/extras/trinity-desktop/trinity-desktop.spec
+++ b/redhat/extras/trinity-desktop/trinity-desktop.spec
@@ -118,7 +118,6 @@ Requires: trinity-gwenview
 Requires: trinity-k3b
 Requires: trinity-k9copy
 Requires: trinity-kaffeine
-Requires: trinity-kaffeine-mozilla
 Requires: trinity-kasablanca
 Requires: trinity-katapult
 Requires: trinity-kbarcode
-- 
cgit v1.2.3

