Compare commits
2 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 5a6a0a1c66 | |||
| 74d58b6129 |
@@ -1,12 +0,0 @@
|
|||||||
diff -rub ninvaders-0.1.1/aliens.c ninvaders-0.1.1-patched/aliens.c
|
|
||||||
--- ninvaders-0.1.1/aliens.c 2018-12-03 13:58:33.635261642 +0100
|
|
||||||
+++ ninvaders-0.1.1-patched/aliens.c 2018-12-03 13:58:46.419391088 +0100
|
|
||||||
@@ -163,7 +163,7 @@
|
|
||||||
aliens.right=-1;
|
|
||||||
aliens.bottom=-1;
|
|
||||||
shipnum=0;
|
|
||||||
- for (k=0;k<11;k++) {
|
|
||||||
+ for (k=0;k<ALIENS_MAX_NUMBER_X;k++) {
|
|
||||||
lowest_ship[k]=-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
36
ninvaders-fix-doSleep-decl.patch
Normal file
36
ninvaders-fix-doSleep-decl.patch
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
Fixes the compile-time error show below.
|
||||||
|
|
||||||
|
globals.c:44:6: error: conflicting types for ‘doSleep’; have ‘void(int)’
|
||||||
|
44 | void doSleep(int microseconds)
|
||||||
|
| ^~~~~~~
|
||||||
|
In file included from globals.c:27:
|
||||||
|
globals.h:28:13: note: previous declaration of ‘doSleep’ with type ‘void(void)’
|
||||||
|
28 | extern void doSleep();
|
||||||
|
| ^~~~~~~
|
||||||
|
|
||||||
|
Index: ninvaders-0.1.1/globals.h
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/globals.h
|
||||||
|
+++ ninvaders-0.1.1/globals.h
|
||||||
|
@@ -25,7 +25,7 @@
|
||||||
|
#ifndef GLOBALS
|
||||||
|
#define GLOBALS
|
||||||
|
|
||||||
|
-extern void doSleep();
|
||||||
|
+extern void doSleep(int microseconds);
|
||||||
|
|
||||||
|
extern void showUsage();
|
||||||
|
extern void showVersion();
|
||||||
|
Index: ninvaders-0.1.1/nInvaders.h
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/nInvaders.h
|
||||||
|
+++ ninvaders-0.1.1/nInvaders.h
|
||||||
|
@@ -51,7 +51,7 @@ extern int level;
|
||||||
|
extern int skill_level;
|
||||||
|
|
||||||
|
// included from globals.h
|
||||||
|
-extern void doSleep();
|
||||||
|
+extern void doSleep(int microseconds);
|
||||||
|
extern void showUsage();
|
||||||
|
extern void showVersion();
|
||||||
|
extern void showGplShort();
|
||||||
163
ninvaders-fix-multiple-definitions.patch
Normal file
163
ninvaders-fix-multiple-definitions.patch
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
commit 98cab46bff3ff124bb6428698f9987f87eefc619
|
||||||
|
Author: lmat dartme18@gmail.com
|
||||||
|
Date: Mon Jan 2 12:25:28 2023 -0500
|
||||||
|
|
||||||
|
Corrected compilation errors
|
||||||
|
|
||||||
|
gcc -onInvaders globals.o view.o aliens.o ufo.o player.o nInvaders.o -lncurses
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x6d0): multiple definition of `aliens'; aliens.o:(.bss+0x6d0): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x0): multiple definition of `skill_level'; aliens.o:(.bss+0x0): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x4): multiple definition of `level'; aliens.o:(.bss+0x4): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x8): multiple definition of `weite'; aliens.o:(.bss+0x8): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x20): multiple definition of `bunker'; aliens.o:(.bss+0x20): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x540): multiple definition of `alienBlock'; aliens.o:(.bss+0x540): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x608): multiple definition of `alienshotnum'; aliens.o:(.bss+0x608): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x620): multiple definition of `alienshoty'; aliens.o:(.bss+0x620): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x660): multiple definition of `alienshotx'; aliens.o:(.bss+0x660): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x6a0): multiple definition of `lowest_ship'; aliens.o:(.bss+0x6a0): first defined here
|
||||||
|
/usr/bin/ld: ufo.o:(.bss+0x6c8): multiple definition of `shipnum'; aliens.o:(.bss+0x6c8): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x6f0): multiple definition of `aliens'; aliens.o:(.bss+0x6d0): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x18): multiple definition of `skill_level'; aliens.o:(.bss+0x0): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x6e8): multiple definition of `shipnum'; aliens.o:(.bss+0x6c8): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x1c): multiple definition of `level'; aliens.o:(.bss+0x4): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x20): multiple definition of `weite'; aliens.o:(.bss+0x8): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x28): multiple definition of `ufo'; ufo.o:(.bss+0x6e8): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x40): multiple definition of `bunker'; aliens.o:(.bss+0x20): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x560): multiple definition of `alienBlock'; aliens.o:(.bss+0x540): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x628): multiple definition of `alienshotnum'; aliens.o:(.bss+0x608): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x640): multiple definition of `alienshoty'; aliens.o:(.bss+0x620): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x680): multiple definition of `alienshotx'; aliens.o:(.bss+0x660): first defined here
|
||||||
|
/usr/bin/ld: player.o:(.bss+0x6c0): multiple definition of `lowest_ship'; aliens.o:(.bss+0x6a0): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x6f0): multiple definition of `weite'; aliens.o:(.bss+0x8): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x6ec): multiple definition of `level'; aliens.o:(.bss+0x4): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x6e8): multiple definition of `skill_level'; aliens.o:(.bss+0x0): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x6c8): multiple definition of `shipnum'; aliens.o:(.bss+0x6c8): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x18): multiple definition of `ufo'; ufo.o:(.bss+0x6e8): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x20): multiple definition of `bunker'; aliens.o:(.bss+0x20): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x540): multiple definition of `alienBlock'; aliens.o:(.bss+0x540): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x608): multiple definition of `alienshotnum'; aliens.o:(.bss+0x608): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x620): multiple definition of `alienshoty'; aliens.o:(.bss+0x620): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x660): multiple definition of `alienshotx'; aliens.o:(.bss+0x660): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x6a0): multiple definition of `lowest_ship'; aliens.o:(.bss+0x6a0): first defined here
|
||||||
|
/usr/bin/ld: nInvaders.o:(.bss+0x6d0): multiple definition of `aliens'; aliens.o:(.bss+0x6d0): first defined here
|
||||||
|
collect2: error: ld returned 1 exit status
|
||||||
|
make: *** [Makefile:11: nInvaders] Error 1
|
||||||
|
|
||||||
|
---
|
||||||
|
Index: ninvaders-0.1.1/aliens.c
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/aliens.c
|
||||||
|
+++ ninvaders-0.1.1/aliens.c
|
||||||
|
@@ -26,6 +26,19 @@
|
||||||
|
#include "player.h"
|
||||||
|
#include "nInvaders.h"
|
||||||
|
|
||||||
|
+Aliens aliens;
|
||||||
|
+
|
||||||
|
+int shipnum;
|
||||||
|
+
|
||||||
|
+// todo: move to structure
|
||||||
|
+int lowest_ship[ALIENS_MAX_NUMBER_X];
|
||||||
|
+int alienshotx[ALIENS_MAX_MISSILES];
|
||||||
|
+int alienshoty[ALIENS_MAX_MISSILES];
|
||||||
|
+int alienshotnum;
|
||||||
|
+int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X];
|
||||||
|
+
|
||||||
|
+int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1];
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* initialize aliens attributes
|
||||||
|
*/
|
||||||
|
Index: ninvaders-0.1.1/aliens.h
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/aliens.h
|
||||||
|
+++ ninvaders-0.1.1/aliens.h
|
||||||
|
@@ -38,22 +38,22 @@ struct Aliens {
|
||||||
|
int speed; // 0: no movement; 1: one per turn; etc.
|
||||||
|
};
|
||||||
|
|
||||||
|
-Aliens aliens;
|
||||||
|
+extern Aliens aliens;
|
||||||
|
|
||||||
|
-int shipnum;
|
||||||
|
+extern int shipnum;
|
||||||
|
|
||||||
|
#define ALIENS_MAX_NUMBER_X 10
|
||||||
|
#define ALIENS_MAX_NUMBER_Y 5
|
||||||
|
#define ALIENS_MAX_MISSILES 10
|
||||||
|
|
||||||
|
// todo: move to structure
|
||||||
|
-int lowest_ship[ALIENS_MAX_NUMBER_X];
|
||||||
|
-int alienshotx[ALIENS_MAX_MISSILES];
|
||||||
|
-int alienshoty[ALIENS_MAX_MISSILES];
|
||||||
|
-int alienshotnum;
|
||||||
|
-int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X];
|
||||||
|
+extern int lowest_ship[ALIENS_MAX_NUMBER_X];
|
||||||
|
+extern int alienshotx[ALIENS_MAX_MISSILES];
|
||||||
|
+extern int alienshoty[ALIENS_MAX_MISSILES];
|
||||||
|
+extern int alienshotnum;
|
||||||
|
+extern int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X];
|
||||||
|
|
||||||
|
-int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1];
|
||||||
|
+extern int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1];
|
||||||
|
|
||||||
|
|
||||||
|
void aliensReset();
|
||||||
|
Index: ninvaders-0.1.1/nInvaders.c
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/nInvaders.c
|
||||||
|
+++ ninvaders-0.1.1/nInvaders.c
|
||||||
|
@@ -32,6 +32,11 @@
|
||||||
|
|
||||||
|
#define FPS 50
|
||||||
|
|
||||||
|
+// todo: let's try to not having to declare these "public"
|
||||||
|
+int weite;
|
||||||
|
+int level;
|
||||||
|
+int skill_level;
|
||||||
|
+
|
||||||
|
int lives;
|
||||||
|
long score;
|
||||||
|
int status; // status handled in timer
|
||||||
|
Index: ninvaders-0.1.1/nInvaders.h
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/nInvaders.h
|
||||||
|
+++ ninvaders-0.1.1/nInvaders.h
|
||||||
|
@@ -46,9 +46,9 @@ void drawscore();
|
||||||
|
void doScoring(int alienType);
|
||||||
|
|
||||||
|
// todo: let's try to not having to declare these "public"
|
||||||
|
-int weite;
|
||||||
|
-int level;
|
||||||
|
-int skill_level;
|
||||||
|
+extern int weite;
|
||||||
|
+extern int level;
|
||||||
|
+extern int skill_level;
|
||||||
|
|
||||||
|
// included from globals.h
|
||||||
|
extern void doSleep();
|
||||||
|
Index: ninvaders-0.1.1/ufo.c
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/ufo.c
|
||||||
|
+++ ninvaders-0.1.1/ufo.c
|
||||||
|
@@ -27,6 +27,7 @@
|
||||||
|
#include "nInvaders.h"
|
||||||
|
|
||||||
|
static int fShowUfo = 0;
|
||||||
|
+Ufo ufo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* initialize ufo attributes
|
||||||
|
Index: ninvaders-0.1.1/ufo.h
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/ufo.h
|
||||||
|
+++ ninvaders-0.1.1/ufo.h
|
||||||
|
@@ -34,7 +34,7 @@ struct Ufo {
|
||||||
|
int posY; // vertical position of aliens
|
||||||
|
};
|
||||||
|
|
||||||
|
-Ufo ufo;
|
||||||
|
+extern Ufo ufo;
|
||||||
|
|
||||||
|
void ufoReset();
|
||||||
|
int ufoShowUfo();
|
||||||
35
ninvaders-fix-render-loop.patch
Normal file
35
ninvaders-fix-render-loop.patch
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
commit 98cab46bff3ff124bb6428698f9987f87eefc619
|
||||||
|
Author: lmat dartme18@gmail.com
|
||||||
|
Date: Mon Jan 2 12:25:28 2023 -0500
|
||||||
|
|
||||||
|
Corrected compilation errors
|
||||||
|
|
||||||
|
aliens.c: In function ‘render’:
|
||||||
|
aliens.c:167:31: warning: iteration 10 invokes undefined behavior [-Waggressive-loop-optimizations]
|
||||||
|
167 | lowest_ship[k]=-1;
|
||||||
|
| ~~~~~~~~~~~~~~^~~
|
||||||
|
aliens.c:166:19: note: within this loop
|
||||||
|
166 | for (k=0;k<11;k++) {
|
||||||
|
| ~^~~
|
||||||
|
aliens.c:167:31: warning: ‘__builtin_memset’ forming offset [40, 43] is out of the bounds [0, 40] of object ‘lowest_ship’ with type ‘int[10]’ [-Warray-bounds]
|
||||||
|
167 | lowest_ship[k]=-1;
|
||||||
|
| ~~~~~~~~~~~~~~^~~
|
||||||
|
In file included from aliens.c:25:
|
||||||
|
aliens.h:50:5: note: ‘lowest_ship’ declared here
|
||||||
|
50 | int lowest_ship[ALIENS_MAX_NUMBER_X];
|
||||||
|
| ^~~~~~~~~~~
|
||||||
|
|
||||||
|
---
|
||||||
|
Index: ninvaders-0.1.1/aliens.c
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/aliens.c
|
||||||
|
+++ ninvaders-0.1.1/aliens.c
|
||||||
|
@@ -176,7 +176,7 @@ void render()
|
||||||
|
aliens.right=-1;
|
||||||
|
aliens.bottom=-1;
|
||||||
|
shipnum=0;
|
||||||
|
- for (k=0;k<11;k++) {
|
||||||
|
+ for (k=0;k<ALIENS_MAX_NUMBER_X;k++) {
|
||||||
|
lowest_ship[k]=-1;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
diff --git a/Makefile b/Makefile
|
Index: ninvaders-0.1.1/Makefile
|
||||||
index d815e2f..c68eeeb 100644
|
===================================================================
|
||||||
--- a/Makefile
|
--- ninvaders-0.1.1.orig/Makefile
|
||||||
+++ b/Makefile
|
+++ ninvaders-0.1.1/Makefile
|
||||||
@@ -1,5 +1,5 @@
|
@@ -1,5 +1,5 @@
|
||||||
CC=gcc
|
CC=gcc
|
||||||
-CFLAGS=-O3 -Wall
|
-CFLAGS=-O3 -Wall
|
||||||
|
|||||||
21
ninvaders-sighandler_t.patch
Normal file
21
ninvaders-sighandler_t.patch
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Fixes the compile-time error show below.
|
||||||
|
|
||||||
|
[ 5s] nInvaders.c: In function ‘setUpTimer’:
|
||||||
|
[ 5s] nInvaders.c:323:29: error: assignment to ‘__sighandler_t’ {aka ‘void (*)(int)’} from incompatible pointer type ‘void (*)(void)’ [-Wincompatible-pointer-types]
|
||||||
|
[ 5s] 323 | myAction.sa_handler = &handleTimer;
|
||||||
|
[ 5s] |
|
||||||
|
|
||||||
|
---
|
||||||
|
Index: ninvaders-0.1.1/nInvaders.c
|
||||||
|
===================================================================
|
||||||
|
--- ninvaders-0.1.1.orig/nInvaders.c
|
||||||
|
+++ ninvaders-0.1.1/nInvaders.c
|
||||||
|
@@ -211,7 +211,7 @@ void readInput()
|
||||||
|
* timer
|
||||||
|
* this method is executed every 1 / FPS seconds
|
||||||
|
*/
|
||||||
|
-void handleTimer()
|
||||||
|
+void handleTimer(int signum)
|
||||||
|
{
|
||||||
|
static int aliens_move_counter = 0;
|
||||||
|
static int aliens_shot_counter = 0;
|
||||||
@@ -1,3 +1,35 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jul 10 12:36:01 UTC 2025 - Thomas Zimmermann <tzimmermann@suse.com>
|
||||||
|
|
||||||
|
- Backport ninvaders-fix-render-loop.patch: Fix buffer overflow in
|
||||||
|
render() function. Same as buffer_owerflow.patch, but with fixed
|
||||||
|
patchfile name and updated PATCH-FIX-UPSTREAM.
|
||||||
|
Adapted from https://sourceforge.net/p/ninvaders/bugs/2/
|
||||||
|
|
||||||
|
- Remove buffer_owerflow.patch: Obsoleted by ninvaders-fix-render-loop.patch.
|
||||||
|
|
||||||
|
- Modify ninvaders-obey-cflags.patch: Add missing PATCH-FIX-UPSTREAM comment
|
||||||
|
in spec file.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jul 10 08:28:40 UTC 2025 - Thomas Zimmermann <tzimmermann@suse.com>
|
||||||
|
|
||||||
|
- Backport ninvaders-fix-multiple-definitions.patch: Fix link-time
|
||||||
|
error from multiple definitions of the same symbols in various
|
||||||
|
object files.
|
||||||
|
Adapted from https://sourceforge.net/p/ninvaders/bugs/2/
|
||||||
|
|
||||||
|
- Add ninvaders-sighandler_t.patch: Fix function signature of the
|
||||||
|
signal handler. The correct signature expects an integer argument,
|
||||||
|
which is currently missing. Resolves compile-time errors.
|
||||||
|
|
||||||
|
- Add ninvaders-fix-doSleep-decl.patch: Harmonize conflicting
|
||||||
|
declarations of doSleep(). The function expects an integer argument,
|
||||||
|
which is currently missing in the declarations. Resolves compile-time
|
||||||
|
errors.
|
||||||
|
|
||||||
|
- Refresh existing patches accordingly
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Feb 22 14:10:51 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
Thu Feb 22 14:10:51 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package ninvaders
|
# spec file for package ninvaders
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -24,10 +24,16 @@ License: GPL-2.0-or-later
|
|||||||
Group: Amusements/Games/Action/Arcade
|
Group: Amusements/Games/Action/Arcade
|
||||||
URL: http://ninvaders.sourceforge.net/
|
URL: http://ninvaders.sourceforge.net/
|
||||||
Source: http://downloads.sourceforge.net/ninvaders/%{version}/%{name}-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/ninvaders/%{version}/%{name}-%{version}.tar.gz
|
||||||
# PATCH-FIX-OPENSUSE buffer_owerflow.patch
|
# PATCH-FIX-UPSTREAM ninvaders-fix-multiple-definitions.patch -- upstream bug #2
|
||||||
# fix buffer owerflow that leads to an build error in Leap 15+
|
Patch0: ninvaders-fix-multiple-definitions.patch
|
||||||
Patch0: buffer_owerflow.patch
|
# PATCH-FIX-UPSTREAM ninvaders-fix-render-loop.patch -- fix Leap 15+ build error
|
||||||
Patch1: ninvaders-obey-cflags.patch
|
Patch1: ninvaders-fix-render-loop.patch
|
||||||
|
# PATCH-FIX-UPSTREAM ninvaders-obey-cflags.patch -- don't clear pre-set CFLAGS
|
||||||
|
Patch2: ninvaders-obey-cflags.patch
|
||||||
|
# PATCH-FIX-UPSTREAM ninvaders-sighandler_t.patch -- fix gcc15 build
|
||||||
|
Patch3: ninvaders-sighandler_t.patch
|
||||||
|
# PATCH-FIX-UPSTREAM ninvaders-fix-doSleep-decl.patch -- fix gcc15 build
|
||||||
|
Patch4: ninvaders-fix-doSleep-decl.patch
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
|
|
||||||
%description
|
%description
|
||||||
|
|||||||
Reference in New Issue
Block a user