From bc526840c8d11907d450c8704ef27b0361d58479 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Tue, 7 Apr 2026 20:22:39 +0200 Subject: [PATCH] add warning patches --- app-misc/irtrans-irclient/Manifest | 3 +- .../files/client_warnings.patch | 390 ++++++++++++++++++ .../irtrans-irclient-6.01.16.ebuild | 4 +- app-misc/irtrans-irserver/Manifest | 5 +- .../files/irtrans-server.service | 14 +- .../files/server-warnings.patch | 323 +++++++++++++++ .../irtrans-irserver-6.10.23.ebuild | 5 +- 7 files changed, 733 insertions(+), 11 deletions(-) create mode 100644 app-misc/irtrans-irclient/files/client_warnings.patch create mode 100644 app-misc/irtrans-irserver/files/server-warnings.patch diff --git a/app-misc/irtrans-irclient/Manifest b/app-misc/irtrans-irclient/Manifest index 82bafc20..fa632196 100644 --- a/app-misc/irtrans-irclient/Manifest +++ b/app-misc/irtrans-irclient/Manifest @@ -1,6 +1,7 @@ AUX client_sleep.patch 1257 BLAKE2B eacf2dad1b2921998c1cc855684067b5f2899b63a4ccf67685bdcdaf033ac3e3769d3063cd4f35cc18026bb7c0c12ad78627a4e10275a4a89ca050752aa7e08a SHA512 e2621475564e35c15249e67e6ade422f909349e540ba0e8255540167e1630e655023edf79fd419ceb740b0555ce9fe2cafd7dc0d2586ec602fb4ea64d19dd6c6 +AUX client_warnings.patch 10028 BLAKE2B 7a96ab554ff4356818b7a6e2b1566d8f0af55162f622b0d72ff460c0c3a2cfc3a3775a4920e5017fc589b79fc49d8767b3b280de2db1b613dfe69863ffbfa66c SHA512 fa9267f2549c22155a9191ab747d7ebe116c4979160d23a420a89f7ca8f7ad63e883f7d2fa0b7bc15037dfe8f7e217cbeff5496224593e1588403350eca1ebcb DIST irclient-src-6.01.16.tar.gz 153254 BLAKE2B ec4880699ff3bef0419f52b2df381e2f0f1b1202f3358648486400540fe420f0012cb78e38ac429791ea39d40e9b59a63ede9b7777957c69c2c30f1512468035 SHA512 904451e03e9a508aa78954a9dd8d34462b5c47937ea127f1ff1ec52f07f645f60861f055347dba178b9c37455a5d749d987144f3be882bcb24e479f02643eaea DIST irtrans-irclient-5.11.04-ip_assign-1.patch.bz2 5051 BLAKE2B 79b8fb9249c69e8a868771a288e5f0e7c4d6658d36f97ce1ac0c577dae5c810207780406bb7a87df3392eb795463b9c62c6ce7d99ef349111db99637ee8d2432 SHA512 9be72f7f6fcc24c9bda73cf5dd8a2c112c6cb82e2ef50d40c17b43d7dcb8f11bcf8bc0ebb914046b5429bce1b4936278ade936db6c916384fbd637a300f528cf -EBUILD irtrans-irclient-6.01.16.ebuild 1431 BLAKE2B 1b31d1b4835842fed8271b91c845cdbb02f636edad55a85a6a9d58e0f8aee500929953e8ff7f96e51c297037dde935045429d280d4c58608dafd0000cdf05fc5 SHA512 7f34aac5726f16589bb29110f806f858a3dd4251c6a9d1c6c5f11db0e8eb1ae243a1db5124289001b8ce102f2699325d8184ef4d91498b784d90e62044b29197 +EBUILD irtrans-irclient-6.01.16.ebuild 1471 BLAKE2B c352b18fb23e0e8da9737b4a82d4ea9325c5238dfdb098ec5017731adfa574121d8f246962eb449ca5e37045d9d4d1e1ca4c24d049e6d2aea5171a3045f65929 SHA512 64b4bba32891b8ddd491c28462b30de5724c61e6624e7c44f82f68f435026ea3c13c0b211a831fe66b6c5173c582188fa1631e14051640dd13b5ea6d563e004d MISC ChangeLog 3910 BLAKE2B 0949a89d568c6b2a49a6e7c279f5034ed97a7b146b84abbd82acc9c3c27d3331c9c7d2583bfe1de1df0e892d21a1978958a3c96203ed7285820203184ba284a8 SHA512 768fffb886d2f69154da005675e4741880de4a33fc58364f7b10fa89bf2360930c641d672db261a7b9916b02e2c8bef297ff6c0c3d28908f57ef0a5a70b55a3e MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c diff --git a/app-misc/irtrans-irclient/files/client_warnings.patch b/app-misc/irtrans-irclient/files/client_warnings.patch new file mode 100644 index 00000000..584fd87b --- /dev/null +++ b/app-misc/irtrans-irclient/files/client_warnings.patch @@ -0,0 +1,390 @@ +diff '--color=auto' -uNr work.orig/client.c work/client.c +--- work.orig/client.c 2026-04-07 19:20:30.733614568 +0200 ++++ work/client.c 2026-04-07 19:35:35.503638919 +0200 +@@ -95,6 +95,32 @@ + + #define VERSION "6.01.16" + ++static int read_string(char *buf, size_t len) ++{ ++ if (scanf("%254s", buf) != 1) { ++ if (len) buf[0] = 0; ++ return 0; ++ } ++ return 1; ++} ++ ++static int read_int(int *value) ++{ ++ if (scanf("%d", value) != 1) { ++ *value = 0; ++ return 0; ++ } ++ return 1; ++} ++ ++static int read_line(char *buf, size_t len) ++{ ++ if (!fgets(buf, len, stdin)) { ++ if (len) buf[0] = 0; ++ return 0; ++ } ++ return 1; ++} + + int main (int argc,char *argv[]) + { +@@ -585,7 +611,7 @@ + NETWORKSTATUS stat; + + BuildSendMenu (); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -593,40 +619,40 @@ + case 1: + printf ("\nEnter Remote Name: "); + fflush (stdout); +- scanf ("%s",send_remote); ++ read_string(send_remote, sizeof(send_remote)); + getchar (); + break; + case 2: + printf ("\nCommand Name: "); + fflush (stdout); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + NetworkCommand (COMMAND_SEND,send_remote,st,0,0,&stat); + break; + case 3: + printf ("\nLCD Text: "); + fflush (stdout); +- fgets (st,sizeof (st),stdin); ++ read_line(st, sizeof(st)); + NetworkCommand (COMMAND_LCD,st,0,LCD_TEXT | LCD_BACKLIGHT,'L',&stat); + break; + case 4: + printf ("\nLCD Init Text Line 1: "); + fflush (stdout); +- fgets (st,sizeof (st),stdin); ++ read_line(st, sizeof(st)); + printf ("\nLCD Init Text Line 2: "); + fflush (stdout); +- fgets (l2,sizeof (l2),stdin); ++ read_line(l2, sizeof(l2)); + strcat (st,l2); + NetworkCommand (COMMAND_LCDINIT,st,0,LCD_TEXT,'L',&stat); + break; + case 5: + printf ("\nSwitch Number: "); + fflush (stdout); +- scanf ("%d",&sw); ++ read_int(&sw); + getchar (); + printf ("\nSwitch Value: "); + fflush (stdout); +- scanf ("%d",&md); ++ read_int(&md); + getchar (); + st[0] = sw; + st[1] = md; +@@ -647,7 +673,7 @@ + NETWORKSTATUS stat; + + BuildLearnMenu (); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -656,7 +682,7 @@ + if (*learn_remote) NetworkCommand (COMMAND_CLOSE,learn_remote,st,0,'L',&stat); + printf ("\nEnter Remote Name: "); + fflush (stdout); +- scanf ("%s",learn_remote); ++ if (scanf("%99s", learn_remote) != 1) learn_remote[0] = 0; + getchar (); + NetworkCommand (COMMAND_LRNREM,learn_remote,st,0,'L',&stat); + break; +@@ -670,7 +696,7 @@ + case 3: + printf ("\nCommand Name: "); + fflush (stdout); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + printf ("\nPress Remote Button to learn ...."); + fflush (stdout); +@@ -681,7 +707,7 @@ + case 4: + printf ("\nCommand Name: "); + fflush (stdout); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + printf ("\nPress Remote Button to learn ...."); + fflush (stdout); +@@ -692,7 +718,7 @@ + case 5: + printf ("\nCommand Name: "); + fflush (stdout); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + printf ("\nPress Remote Button to learn ...."); + fflush (stdout); +@@ -1108,7 +1134,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1161,7 +1187,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1213,7 +1239,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1233,7 +1259,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1285,7 +1311,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1307,7 +1333,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1350,7 +1376,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1390,7 +1416,7 @@ + printf ("\nSelect command "); + fflush (stdout); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1404,7 +1430,7 @@ + char st[255]; + int choice,sel; + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1508,7 +1534,7 @@ + printf ("\n\nEnter PowerOn Remote: "); + fflush (stdout); + memset (st,0,255); +- fgets (st,255,stdin); ++ if (!fgets(st, 255, stdin)) st[0] = 0; + while (st[strlen (st) - 1] == 10 || st[strlen (st) - 1] == 13) st[strlen (st) - 1] = 0; + memcpy (status->stat[bus][adr].remote,st,80); + +@@ -1517,7 +1543,7 @@ + printf ("\n\nEnter PowerOn Command: "); + fflush (stdout); + memset (st,0,255); +- fgets (st,255,stdin); ++ if (!fgets(st, 255, stdin)) st[0] = 0; + while (st[strlen (st) - 1] == 10 || st[strlen (st) - 1] == 13) st[strlen (st) - 1] = 0; + memcpy (status->stat[bus][adr].command,st,20); + +@@ -1526,7 +1552,7 @@ + printf ("\n\nEnter PowerOff Remote: "); + fflush (stdout); + memset (st,0,255); +- fgets (st,255,stdin); ++ if (!fgets(st, 255, stdin)) st[0] = 0; + while (st[strlen (st) - 1] == 10 || st[strlen (st) - 1] == 13) st[strlen (st) - 1] = 0; + memcpy (status->stat[bus][adr].remote2,st,80); + +@@ -1535,7 +1561,7 @@ + printf ("\n\nEnter PowerOff Command: "); + fflush (stdout); + memset (st,0,255); +- fgets (st,255,stdin); ++ if (!fgets(st, 255, stdin)) st[0] = 0; + while (st[strlen (st) - 1] == 10 || st[strlen (st) - 1] == 13) st[strlen (st) - 1] = 0; + memcpy (status->stat[bus][adr].command2,st,20); + +@@ -1544,7 +1570,7 @@ + printf ("\n\nEnter MAC Address: "); + fflush (stdout); + memset (st,0,255); +- fgets (st,255,stdin); ++ if (!fgets(st, 255, stdin)) st[0] = 0; + while (st[strlen (st) - 1] == 10 || st[strlen (st) - 1] == 13) st[strlen (st) - 1] = 0; + if (st[0] == 0 || st[1] == 0) { + memset (status->stat[bus][adr].command2,0,6); +@@ -1598,7 +1624,7 @@ + + printf ("\nSelect panel: "); + fflush (stdout); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + } +@@ -1653,7 +1679,7 @@ + while (choice < 56) { + ShowSetStatus (adr,bus,status); + +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1682,25 +1708,29 @@ + if (choice == 52) { + printf ("\nEnter PowerOn Remote: "); + fflush (stdout); +- scanf ("%s",status->stat[bus][adr].remote); ++ if (scanf("%79s", status->stat[bus][adr].remote) != 1) ++ status->stat[bus][adr].remote[0] = 0; + } + + if (choice == 53) { + printf ("\nEnter PowerOn Command: "); + fflush (stdout); +- scanf ("%s",status->stat[bus][adr].command); ++ if (scanf("%19s", status->stat[bus][adr].command) != 1) ++ status->stat[bus][adr].command[0] = 0; + } + + if (choice == 54) { + printf ("\nEnter PowerOff Remote: "); + fflush (stdout); +- scanf ("%s",status->stat[bus][adr].remote2); ++ if (scanf("%79s", status->stat[bus][adr].remote2) != 1) ++ status->stat[bus][adr].remote2[0] = 0; + } + + if (choice == 55) { + printf ("\nEnter PowerOff Command: "); + fflush (stdout); +- scanf ("%s",status->stat[bus][adr].command2); ++ if (scanf("%19s", status->stat[bus][adr].command2) != 1) ++ status->stat[bus][adr].command2[0] = 0; + } + + if (choice == 99) { +@@ -1786,7 +1816,7 @@ + printf ("\n99 - Exit\n"); + printf ("\nSelect command "); + fflush (stdout); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +@@ -1818,7 +1848,7 @@ + int choice = 0; + + BuildMainMenu (); +- scanf ("%s",st); ++ read_string(st, sizeof(st)); + getchar (); + choice = atoi (st); + +Binärdateien work.orig/ip_assign64 und work/ip_assign64 sind verschieden. +diff '--color=auto' -uNr work.orig/ip_assign.c work/ip_assign.c +--- work.orig/ip_assign.c 2026-04-07 19:20:30.733614568 +0200 ++++ work/ip_assign.c 2026-04-07 19:30:48.216798431 +0200 +@@ -206,7 +206,7 @@ + printf ("Please select device to use (0 = Exit) "); + fflush (stdout); + do { +- fgets (nm,sizeof (nm),stdin); ++ if (!fgets (nm,sizeof (nm),stdin)) nm[0] = 0; + choice = atoi (nm); + } while (nm[0] < '0'); + +@@ -309,7 +309,7 @@ + + printf ("\n\nConfigure device for DHCP (Y/N) ? "); + fflush (stdout); +- fgets (nm,sizeof (nm),stdin); ++ if (!fgets (nm,sizeof (nm),stdin)) nm[0] = 0; + printf ("\n"); + + if (*nm == 'Y' || *nm == 'y') ip->dhcp_flag = 1; +@@ -317,26 +317,26 @@ + do { + printf ("\nEnter IP Address: "); + fflush (stdout); +- fgets (nm,sizeof (nm),stdin); ++ if (!fgets (nm,sizeof (nm),stdin)) nm[0] = 0; + ip->ip = inet_addr (nm); + } while (ip->ip == INADDR_NONE); + do { + printf ("\nEnter Netmask : "); + fflush (stdout); +- fgets (nm,sizeof (nm),stdin); ++ if (!fgets (nm,sizeof (nm),stdin)) nm[0] = 0; + ip->netmask = inet_addr (nm); + } while (ip->netmask == INADDR_NONE); + do { + printf ("\nDefault Gateway : "); + fflush (stdout); +- fgets (nm,sizeof (nm),stdin); ++ if (!fgets (nm,sizeof (nm),stdin)) nm[0] = 0; + ip->gateway = inet_addr (nm); + } while (ip->gateway == INADDR_NONE); + } + + printf ("\n\nEnter device password: "); + fflush (stdout); +- fgets (ip->password,8,stdin); ++ if (!fgets (ip->password,8,stdin)) ip->password[0] = 0; + + printf ("\n"); + } +Binärdateien work.orig/irclient64 und work/irclient64 sind verschieden. +Binärdateien work.orig/x64/client.o und work/x64/client.o sind verschieden. +Binärdateien work.orig/x64/ip_assign.o und work/x64/ip_assign.o sind verschieden. diff --git a/app-misc/irtrans-irclient/irtrans-irclient-6.01.16.ebuild b/app-misc/irtrans-irclient/irtrans-irclient-6.01.16.ebuild index 555f24b9..5578bf93 100644 --- a/app-misc/irtrans-irclient/irtrans-irclient-6.01.16.ebuild +++ b/app-misc/irtrans-irclient/irtrans-irclient-6.01.16.ebuild @@ -19,10 +19,10 @@ KEYWORDS="~amd64 ~arm ~x86" S="${WORKDIR}" -PATCHES=( "${WORKDIR}/${PN}"-5.11.04-ip_assign-1.patch "${FILESDIR}"/client_sleep.patch ) +PATCHES=( "${WORKDIR}/${PN}"-5.11.04-ip_assign-1.patch "${FILESDIR}"/client_sleep.patch "${FILESDIR}"/client_warnings.patch ) src_compile() { - append-flags -DLINUX + append-cppflags -DLINUX # Set sane defaults (arm target has no -D flags added) local irbuild diff --git a/app-misc/irtrans-irserver/Manifest b/app-misc/irtrans-irserver/Manifest index 120236e1..f336b674 100644 --- a/app-misc/irtrans-irserver/Manifest +++ b/app-misc/irtrans-irserver/Manifest @@ -1,9 +1,10 @@ AUX gcc15.patch 11074 BLAKE2B e9b425dcbdd4b6e8c9b03f2c5238fd6a87b6fe4f49b349cad413b8feb0e644afa49a8007d7cf2ff5f25669ecbffd008c22d7eeeecab8ab97fda37d7de3f85758 SHA512 7c4de90a1f25c16303b0885c32ff05092c311890a4cacfa71574ee7e5007d9bde9006928958ce755b59d0574ff5e94ede4b558f4479faca9fdca81df6ba8348a AUX irtrans-server.confd 405 BLAKE2B fa94ea017cb77fbde5e3d06b9b4db0a8ab718603657be9c847049bd51b84356e4f32cf737cceb882fc002193e4163bf75c8dabb0f7e81d80934ea41a0d9f1fdb SHA512 1de71558faf723b6f2b8b133f81d20addc7c0775e3859307a78e1ae41bd9fb122ccc43f483d7e9e33cb21de611e283246562e1a8d1cd3d6cfd9d1a3002b8593b AUX irtrans-server.initd 577 BLAKE2B 3b1507c90cc241016eabde61566bcae96302c452a880f30089a086b50a6e1ff9007b915eb0523c0ff896fb692a2a459fc3b780a4ae50c912cb8d4bf780f06e7d SHA512 174d17d5d8dc5f2b7d39eabfd1e3ee5d72d9fc1130ea7f538e395d1401aaebcc4ff18582f6ec9a1baba11ff70308bcff3aa2bf31075bc0f20762639f8794008a -AUX irtrans-server.service 218 BLAKE2B 3eb1d695da2e0f1baaba6a2abb6aef6864ecb11f20230e5b7ec4e5f54cf3d7bbee62a647a6ec98ea47f9f594308e826e53f365af92410f29f1d305c5ec520d91 SHA512 e16002a3b31b9015a42c9edd75e462108199ad46c74e7b83ed1bc39e5c08497388ce099798b0e73acfaf59078e62df938b021ca076abaa346e423446378f6ccb +AUX irtrans-server.service 416 BLAKE2B ffc0ba6b32904c6de2d14310aeb5437388acdfd89516ce0b6a9154c22632aba97ec8f5d1685fc032b7608632224bdc25c6546abfa24034de25840e551bf50666 SHA512 a6583c757b21db03aa252ef371ffb8821c8ab62fe50a2f941fe3dc4f9e4cfcf068cb0870e1f5b995af65c53d6e8192020228c7eb624e19fb2d85e13870fbed0b +AUX server-warnings.patch 10500 BLAKE2B 629de12e01f80379ed5fc957002a336e9338f0a677290b4aa04e6238c4f7e0866fdcb1f307cea32dcd367271c1245c913d94377864385da72238a08bc61c73c0 SHA512 d49edcfb40eef3e72f9c2fb8e55311dfcd9865691631420e2801078ee6119694e0ed0fa204b24809f18d68dd60ffd947efa94295c925afbc0eb7a249bc9d1793 DIST irserver-6.10.23.tar.gz 864840 BLAKE2B a046fc394f6a39b261d448f0e67816f5cacd8bbe6b075650e50318bb5042b29d7972c14eac0923d36afaafd000c32682e8b68be238b57fd5cc1f4e4c22205651 SHA512 81934293ffb7e5d34ff04276612f9e7fe20b4fc401a63cda64da360fb8a7c48f94a57631c1c19d2fd7e75d2e1e3fe34c08319a743d444a38febf1fb4f9c0767d DIST irserver-src-6.10.23.tar.gz 532755 BLAKE2B 6550ecacf007fe4a69c523c181feb1a96e3309c86d9d2040af05bd02d00391c3c37e7ef4c9f829db37b97dc590c88baf746544a5996e44b4fdc8088ea2ea9589 SHA512 ef453381ae4802a40a76c27a685c6892d1d0f6a88ef2975868e901eb06b5e70ba6e6f40333c4ea45a83f2b4419a49b9b16d08f23f303e1911d856f8b6afc2d85 -EBUILD irtrans-irserver-6.10.23.ebuild 1970 BLAKE2B e018cc690a7eb09e261109879629496437a24352bedaf9fb05a528c98cd92f29eb2659028c3b28ae9182e7e1a202059adc1ad80319a47a9daf99f7afc23d517c SHA512 c1805422fd4835dcc2f362f2d35bfdf172eaf6af9b5617464babba1528b2f19cde2313c841e4af23ed130a11ed746893195b62e97ad18ec1b2267c83d604603f +EBUILD irtrans-irserver-6.10.23.ebuild 2067 BLAKE2B 5dad194cb53dd02ff332e8d7469d7e7765258b665cbbda67e3dedbf2707e4ed31d476663697e7cbcc2c4d078016e07d5ecbc8940db20c0784c6308fe152425f0 SHA512 8d2585685de16dbb8d9f47ad4e9fc52771a5679e1da94aa47b4dea1aa4955a6e73c47110451b6f66ac6d55e431e56fc449950201ec96dbc5f56ffb40f361dc23 MISC ChangeLog 6002 BLAKE2B f828d1c5a823915aa4779055c15b98795d726daf353e6594a8038b1654ce4e06096f7884e77703e7bc0097f02311ccfec27d2526405f8e3e13aa4b5dd088160d SHA512 9fc36a1b10d95a7594332861ee0fd2dd230ba919a7fefa4abc3ab7076af60e4b501ec19b92eabe9e1f89ad5283859893450bc9759ecc81469b67e067fc3ac644 MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c diff --git a/app-misc/irtrans-irserver/files/irtrans-server.service b/app-misc/irtrans-irserver/files/irtrans-server.service index 719051b0..b5aa6140 100644 --- a/app-misc/irtrans-irserver/files/irtrans-server.service +++ b/app-misc/irtrans-irserver/files/irtrans-server.service @@ -1,10 +1,16 @@ [Unit] -Description=irTrans irServer Daemon -After=multi-user.target +Description=IRTrans Server +After=network-online.target +Wants=network-online.target +Alias=lirc.service [Service] -User=root -ExecStart=/home/pi/irserver/irserver -logfile /home/pi/irserver/irserver.log +Type=forking +EnvironmentFile=-/etc/conf.d/irtrans-server +PIDFile=/run/irtrans-irserver.pid +ExecStart=/usr/bin/irserver -logfile /var/log/irserver.log -loglevel ${LOGLEVEL} -pidfile /run/irtrans-irserver.pid ${OPT} ${IRDEVICE} +Restart=on-failure +RestartSec=2 [Install] WantedBy=multi-user.target diff --git a/app-misc/irtrans-irserver/files/server-warnings.patch b/app-misc/irtrans-irserver/files/server-warnings.patch new file mode 100644 index 00000000..6bb2d4d8 --- /dev/null +++ b/app-misc/irtrans-irserver/files/server-warnings.patch @@ -0,0 +1,323 @@ +diff '--color=auto' -uNr work.orig/ascii.c work/ascii.c +--- work.orig/ascii.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/ascii.c 2026-04-07 20:15:50.887432949 +0200 +@@ -610,7 +610,7 @@ + sprintf (err, txt, command); + break; + default: +- sprintf (err, txt); ++ snprintf(err, sizeof(err), "%s", txt); + break; + } + sprintf (result,"**00000 RESULT ERROR: %s",err); +@@ -708,7 +708,9 @@ + #endif + if (!fp) continue; + +- fread (&mem[pos],1,dir->dir[cnt].len,fp); ++ if (fread(&mem[pos], 1, dir->dir[cnt].len, fp) != (size_t)dir->dir[cnt].len) { ++ /* ignore short read */ ++ } + fclose (fp); + + dir->dir[cnt].adr = pos; +@@ -807,7 +809,7 @@ + strcat (result,";"); + + atime = localtime (&fst.st_mtime); +- sprintf (st,"%d;%02d.%02d.%04d %02d:%02d;",fst.st_size,atime->tm_mday,atime->tm_mon+1,atime->tm_year + 1900,atime->tm_hour,atime->tm_min); ++ sprintf (st,"%ld;%02d.%02d.%04d %02d:%02d;",(long)fst.st_size,atime->tm_mday,atime->tm_mon+1,atime->tm_year + 1900,atime->tm_hour,atime->tm_min); + strcat (result,st); + + len = (word)strlen (result); +@@ -834,7 +836,7 @@ + strcat (result,";"); + + atime = localtime (&fst.st_mtime); +- sprintf (st,"%d;%02d.%02d.%04d %02d:%02d;",fst.st_size,atime->tm_mday,atime->tm_mon+1,atime->tm_year + 1900,atime->tm_hour,atime->tm_min); ++ sprintf (st,"%ld;%02d.%02d.%04d %02d:%02d;",(long)fst.st_size,atime->tm_mday,atime->tm_mon+1,atime->tm_year + 1900,atime->tm_hour,atime->tm_min); + strcat (result,st); + + len = strlen (result); +diff '--color=auto' -uNr work.orig/errormessage.c work/errormessage.c +--- work.orig/errormessage.c 2026-04-07 19:41:30.977000238 +0200 ++++ work/errormessage.c 2026-04-07 20:15:50.887640731 +0200 +@@ -91,7 +91,7 @@ + struct _timeb tb; + #endif + #ifdef LINUX +- struct timeb tb; ++ struct timeval tv_linux; + #endif + + if (logfp) fp = logfp; +@@ -107,10 +107,15 @@ + _ftime (&tb); + #endif + #ifdef LINUX +- ftime (&tb); ++ gettimeofday(&tv_linux, NULL); + #endif ++#ifdef WIN32 + tv = tb.time; + ms = tb.millitm; ++#endif ++#ifdef LINUX ++ ms = (int)(tv_linux.tv_usec / 1000); ++#endif + tmpnt = localtime (&tv); + + fprintf (fp,"%4d-%02d-%02d %02d:%02d:%02d.%03d %s",tmpnt->tm_year+1900,tmpnt->tm_mon+1,tmpnt->tm_mday,tmpnt->tm_hour,tmpnt->tm_min,tmpnt->tm_sec,ms,msg); +diff '--color=auto' -uNr work.orig/fileio.c work/fileio.c +--- work.orig/fileio.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/fileio.c 2026-04-07 20:15:50.887868293 +0200 +@@ -525,7 +525,9 @@ + } + #endif + #ifdef LINUX +- truncate (client->filename,pos); ++ if (truncate(client->filename, pos) != 0) { ++ /* ignore failure */ ++ } + #endif + } + +diff '--color=auto' -uNr work.orig/flashrom.c work/flashrom.c +--- work.orig/flashrom.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/flashrom.c 2026-04-07 20:15:50.888147884 +0200 +@@ -1763,7 +1763,9 @@ + } + if (!strncmp (st,"[ACTION]",8)) { + fseek (fptrans,pos+10,SEEK_SET); +- fread (irdb[trans_num].action,1,irdb[trans_num].action_len,fptrans); ++ if (fread(irdb[trans_num].action, 1, irdb[trans_num].action_len, fptrans) != (size_t)irdb[trans_num].action_len) { ++ /* ignore short read */ ++ } + } + if (!strncmp (st,"[RELAIS]",8)) irdb[trans_num].relais = st[8] + ((st[9] & 2) << 6) + ((st[9] & 1) << 1); + if (!strncmp (st,"[ACTYPE]",8)) { +Binärdateien work.orig/irserver64 und work/irserver64 sind verschieden. +diff '--color=auto' -uNr work.orig/lanio.c work/lanio.c +--- work.orig/lanio.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/lanio.c 2026-04-07 20:15:50.888397749 +0200 +@@ -138,7 +138,7 @@ + LARGE_INTEGER time_ack; + #endif + #ifdef LINUX +- struct timeb tb; ++ struct timeval tv; + long long int time_start; + long long int time_ack; + #endif +@@ -265,14 +265,14 @@ + QueryPerformanceCounter (&time_ack); + timediff = (unsigned long)((time_ack.QuadPart - time_start.QuadPart) / counterRes.QuadPart); + #else +- ftime (&tb); +- time_start = tb.time * 10000 + tb.millitm * 10; ++ gettimeofday(&tv, NULL); ++ time_start = (long long)tv.tv_sec * 10000 + tv.tv_usec / 100; + do { + res = rcv_status_timeout (50,target.sin_addr.s_addr); + } while (res == COMMAND_SEND_ACK2); + +- ftime (&tb); +- time_ack = tb.time * 10000 + tb.millitm * 10; ++ gettimeofday(&tv, NULL); ++ time_ack = (long long)tv.tv_sec * 10000 + tv.tv_usec / 100; + timediff = time_ack - time_start; + #endif + +@@ -288,8 +288,8 @@ + #else + res = rcv_status_timeout (50,target.sin_addr.s_addr); + +- ftime (&tb); +- time_ack = tb.time * 10000 + tb.millitm * 10; ++ gettimeofday(&tv, NULL); ++ time_ack = (long long)tv.tv_sec * 10000 + tv.tv_usec / 100; + timediff = time_ack - time_start; + #endif + if (res == -1) return (ERR_TIMEOUT); +@@ -305,8 +305,8 @@ + #else + res = rcv_status_timeout (2000,target.sin_addr.s_addr); + +- ftime (&tb); +- time_ack = tb.time * 10000 + tb.millitm * 10; ++ gettimeofday(&tv, NULL); ++ time_ack = (long long)tv.tv_sec * 10000 + tv.tv_usec / 100; + timediff = time_ack - time_start; + #endif + } +diff '--color=auto' -uNr work.orig/server.c work/server.c +--- work.orig/server.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/server.c 2026-04-07 20:15:50.888696956 +0200 +@@ -944,7 +944,9 @@ + int vers; + vers = GetOSInfo (); + if (vers >= 510 && (vers & 1)) { // Running on x64 (WOW64) +- if (serverdir[0]) chdir (serverdir); ++ if (serverdir[0] && chdir(serverdir) != 0) { ++ /* ignore failure */ ++ } + if (_execv (".\\irserver64.exe",argv)) { + fprintf (stderr,"Error executing the 64Bit IRServer\n"); + exit (-1); +@@ -960,7 +962,9 @@ + uname (&u); + if (!strcmp (u.machine,"x86_64")) { // Running on x64 + argv[0] = "irserver64"; +- if (serverdir[0]) chdir (serverdir); ++ if (serverdir[0] && chdir(serverdir) != 0) { ++ /* ignore failure */ ++ } + if (execv ("./irserver64",argv)) { + fprintf (stderr,"Error executing the 64Bit IRServer\n"); + exit (-1); +@@ -995,7 +999,9 @@ + return (get_devices (st,1)); + } + +- if (serverdir[0]) chdir (serverdir); ++ if (serverdir[0] && chdir(serverdir) != 0) { ++ /* ignore failure */ ++ } + + argc++; + +@@ -2703,7 +2709,7 @@ + if (sockinfo[i].type == SELECT_SERVER || sockinfo[i].type == SELECT_REOPEN) { + if (sockinfo[i].mode >= MODE_ASCII) { + sprintf (msg,"**00000 RCV_COM %s,%s,%d,%d\n",rem,name,0,0); +- sprintf (msg+2,"%05d",strlen (msg)); ++ sprintf (msg+2,"%05zu",strlen (msg)); + msg[7] = ' '; + res = send (sockinfo[i].fd,msg,(int)strlen (msg),MSG_NOSIGNAL); + } +@@ -2803,7 +2809,7 @@ + } + else if (sockinfo[i].mode >= MODE_ASCII) { + sprintf (msg,"**00000 RCV_COM %s,%s,%d,%d\n",rem,name,bus,*command & 15); +- sprintf (msg+2,"%05d",strlen (msg)); ++ sprintf (msg+2,"%05zu",strlen (msg)); + msg[7] = ' '; + res = send (sockinfo[i].fd,msg,(int)strlen (msg),MSG_NOSIGNAL); + } +@@ -2860,7 +2866,7 @@ + } + else if (sockinfo[i].mode >= MODE_ASCII) { + sprintf (msg,"**00000 RCV_COD %s,%d,%d\n",command+1,bus,*command & 15); +- sprintf (msg+2,"%05d",strlen (msg)); ++ sprintf (msg+2,"%05zu",strlen (msg)); + msg[7] = ' '; + res = send (sockinfo[i].fd,msg,(int)strlen (msg),MSG_NOSIGNAL); + } +@@ -2870,7 +2876,7 @@ + i++; + } + if (mode_flag & DEBUG_CODE) { +- sprintf (msg,"[%d.%d]: LEN: %d %s\n",bus,(*command & 15),strlen(command+1),command+1); ++ sprintf (msg,"[%d.%d]: LEN: %zu %s\n",bus,(*command & 15),strlen(command+1),command+1); + log_print (msg,LOG_FATAL); + } + } +@@ -3861,7 +3867,9 @@ + } + #endif + #ifdef LINUX +- truncate (st,res); ++ if (truncate(st, res) != 0) { ++ /* ignore failure */ ++ } + #endif + + ReadIRDatabase (); +@@ -5527,7 +5535,9 @@ + if (new) chmod (LIRCD,PERMISSIONS); + else { + chmod(LIRCD,s.st_mode); +- chown(LIRCD,s.st_uid,s.st_gid); ++ if (chown(LIRCD, s.st_uid, s.st_gid) != 0) { ++ /* ignore failure */ ++ } + } + + listen(local_socket,3); +@@ -5751,7 +5761,7 @@ + sprintf (err, txt, command); + break; + default: +- sprintf (err, txt); ++ snprintf(err, sizeof(err), "%s", txt); + break; + } + log_print (err, LOG_ERROR); +diff '--color=auto' -uNr work.orig/webserver.c work/webserver.c +--- work.orig/webserver.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/webserver.c 2026-04-07 20:15:50.889051906 +0200 +@@ -619,7 +619,7 @@ + strcat (mem,"Date: Sun, 21 Dec 2003 23:10:01 GMT\r\n"); + strcat (mem,"Server: IRTrans 2.0\r\n"); + strcat (mem,"Mime-Version: 1.0\r\n"); +- sprintf (ln,"Content-Type: text/html\r\nContent-Length: %6d\r\n",strlen (body)); ++ sprintf (ln,"Content-Type: text/html\r\nContent-Length: %6zu\r\n",strlen (body)); + strcat (mem,ln); + + strcat (mem,"Expires: Sun, 21 Dec 2003 23:10:01 GMT\r\n"); +Binärdateien work.orig/x64/ascii.o und work/x64/ascii.o sind verschieden. +Binärdateien work.orig/x64/errormessage.o und work/x64/errormessage.o sind verschieden. +Binärdateien work.orig/x64/flashrom.o und work/x64/flashrom.o sind verschieden. +Binärdateien work.orig/x64/lanio.o und work/x64/lanio.o sind verschieden. +Binärdateien work.orig/x64/server.o und work/x64/server.o sind verschieden. +Binärdateien work.orig/x64/webserver.o und work/x64/webserver.o sind verschieden. +Binärdateien work.orig/x64/xap.o und work/x64/xap.o sind verschieden. +Binärdateien work.orig/x64/xbmc.o und work/x64/xbmc.o sind verschieden. +diff '--color=auto' -uNr work.orig/xap.c work/xap.c +--- work.orig/xap.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/xap.c 2026-04-07 20:15:50.889221981 +0200 +@@ -249,7 +249,7 @@ + sprintf (err,txt,(adr >> 20) & (MAX_IR_DEVICES - 1)); + break; + default: +- sprintf (err, txt); ++ snprintf(err, sizeof(err), "%s", txt); + break; + } + log_print (err, LOG_ERROR); +diff '--color=auto' -uNr work.orig/xbmc.c work/xbmc.c +--- work.orig/xbmc.c 2026-04-07 19:41:30.978184847 +0200 ++++ work/xbmc.c 2026-04-07 20:19:47.129476172 +0200 +@@ -183,7 +183,9 @@ + #endif + + #ifdef LINUX +- system (app->appname); ++ if (system(app->appname) == -1) { ++ /* ignore failure */ ++ } + #endif + + } +@@ -263,7 +265,9 @@ + + fp = popen( "ps aux|grep -v grep|grep -i xbmc.bin", "r"); + +- fgets (ln,sizeof (ln),fp); ++ if (!fgets(ln, sizeof(ln), fp)) { ++ ln[0] = 0; ++ } + + pclose (fp); + +@@ -272,7 +276,9 @@ + + if (!ln[i]) { + fp = popen( "ps aux|grep -v grep|grep -i kodi.bin", "r"); +- fgets (ln,sizeof (ln),fp); ++ if (!fgets(ln, sizeof(ln), fp)) { ++ ln[0] = 0; ++ } + pclose (fp); + i = 0; + while (ln[i] && ln[i] != ' ' && ln[i] != '\t') i++; diff --git a/app-misc/irtrans-irserver/irtrans-irserver-6.10.23.ebuild b/app-misc/irtrans-irserver/irtrans-irserver-6.10.23.ebuild index ea7ababd..f37d64ac 100644 --- a/app-misc/irtrans-irserver/irtrans-irserver-6.10.23.ebuild +++ b/app-misc/irtrans-irserver/irtrans-irserver-6.10.23.ebuild @@ -3,7 +3,7 @@ EAPI=7 -inherit flag-o-matic toolchain-funcs mono-env +inherit flag-o-matic toolchain-funcs mono-env systemd DESCRIPTION="Server software for IRTrans" HOMEPAGE="http://www.irtrans.de" @@ -22,7 +22,7 @@ RDEPEND="mono? ( >=dev-lang/mono-2.10.5 )" S="${WORKDIR}" -PATCHES=( "${FILESDIR}"/gcc15.patch ) +PATCHES=( "${FILESDIR}"/gcc15.patch "${FILESDIR}"/server-warnings.patch ) src_prepare() { default @@ -63,6 +63,7 @@ src_install() { newinitd "${FILESDIR}"/irtrans-server.initd irtrans-server newconfd "${FILESDIR}"/irtrans-server.confd irtrans-server + systemd_dounit "${FILESDIR}"/irtrans-server.service if use mono ; then # Wrapper script to launch mono