mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-24 09:25:01 +00:00
- unbreak on current
PR: 179582
This commit is contained in:
parent
0c27c234d5
commit
6cf42b6df5
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=323209
@ -3,27 +3,40 @@
|
||||
|
||||
PORTNAME= xpat2
|
||||
PORTVERSION= 1.07
|
||||
PORTREVISION= 2
|
||||
DISTVERSIONSUFFIX= -src
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= games
|
||||
MASTER_SITES= ${MASTER_SITE_SUNSITE}
|
||||
MASTER_SITE_SUBDIR= games/solitaires
|
||||
DISTNAME= ${PORTNAME}-${PORTVERSION}-src
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}/src
|
||||
MASTER_SITES= SUNSITE/games/solitaires
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT= X11 solitaire game with 14 variations
|
||||
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}/src
|
||||
|
||||
USES= imake
|
||||
USE_XORG= xaw
|
||||
|
||||
CFLAGS+= -D_POSIX_SOURCE -DNO_CUSERID -D_POSIX_SAVED_IDS
|
||||
|
||||
MAN6= xpat2.6
|
||||
MANCOMPRESSED= no
|
||||
|
||||
DESKTOP_ENTRIES="XPat2" "" "" "${PORTNAME}" "" ""
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e \
|
||||
's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/xpat2.man
|
||||
|
||||
post-install:
|
||||
${MV} ${PREFIX}/lib/xpat/man/man6/xpat2.6x ${PREFIX}/man/man6/xpat2.6
|
||||
${RMDIR} ${PREFIX}/lib/xpat/man/man6 ${PREFIX}/lib/xpat/man
|
||||
${TOUCH} /var/games/xpat.log
|
||||
${CHOWN} root:games /var/games/xpat.log $(PREFIX)/bin/xpat2
|
||||
${CHMOD} 2555 $(PREFIX)/bin/xpat2
|
||||
${CHOWN} root:games ${PREFIX}/bin/xpat2
|
||||
${CHMOD} 2555 ${PREFIX}/bin/xpat2
|
||||
.if !exists(/var/games/xpat.log)
|
||||
.if !exists(/var/games)
|
||||
${MKDIR} /var/games
|
||||
${CHMOD} 775 /var/games
|
||||
.endif
|
||||
${ECHO_CMD} -n > /var/games/xpat.log
|
||||
${CHOWN} root:games /var/games/xpat.log
|
||||
${CHMOD} 664 /var/games/xpat.log
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
24
games/xpat2/files/patch-Imakefile
Normal file
24
games/xpat2/files/patch-Imakefile
Normal file
@ -0,0 +1,24 @@
|
||||
--- Imakefile.orig
|
||||
+++ Imakefile
|
||||
@@ -220,8 +220,8 @@
|
||||
chmod 755 $(XPATLIBDIR)/$$f; \
|
||||
done
|
||||
mkdirhier $(XPATMANDIR)
|
||||
- cp xpat2.man $(XPATMANDIR)/xpat2.6x
|
||||
- chmod 644 $(XPATMANDIR)/xpat2.6x
|
||||
+ cp xpat2.man $(XPATMANDIR)/xpat2.6
|
||||
+ chmod 644 $(XPATMANDIR)/xpat2.6
|
||||
|
||||
ComplexProgramTarget($(MYPROG))
|
||||
InstallAppDefaults(XPat)
|
||||
@@ -251,8 +251,8 @@
|
||||
done
|
||||
cp xpat2 $(LXPATBINDIR)
|
||||
chmod 755 $(LXPATBINDIR)/xpat2
|
||||
- cp xpat2.man $(LXPATMANDIR)/xpat2.6x
|
||||
- chmod 644 $(LXPATMANDIR)/xpat2.6x
|
||||
+ cp xpat2.man $(LXPATMANDIR)/xpat2.6
|
||||
+ chmod 644 $(LXPATMANDIR)/xpat2.6
|
||||
|
||||
|
||||
XCOMM Dependecies for the Qt interface:
|
30
games/xpat2/files/patch-X-gfx1.c
Normal file
30
games/xpat2/files/patch-X-gfx1.c
Normal file
@ -0,0 +1,30 @@
|
||||
--- X-gfx1.c.orig
|
||||
+++ X-gfx1.c
|
||||
@@ -442,7 +442,7 @@
|
||||
/* build internal cardset */
|
||||
CARD_WIDTH = -1;
|
||||
if (xpm) {
|
||||
- char s[200];
|
||||
+ char s[MAXXPMDIRLEN + 15];
|
||||
FILE *fp;
|
||||
sprintf(s, "%s/Cards.conf", xpmdir);
|
||||
if ((fp = fopen(s, "r"))) {
|
||||
@@ -956,7 +956,8 @@
|
||||
cardpicts[57] = 0; /* Joker is loaded on request */
|
||||
for (i = 0; i <= 56; ++i) {
|
||||
if (xpmdir && (i < 52 || i >= 56)) {
|
||||
- char s[200];
|
||||
+ char s[MAXXPMDIRLEN + strlen(US_rank_name[RANK(i)]) +
|
||||
+ strlen(US_suit_name[SUIT(i)]) + 20];
|
||||
if (i == CARDBACK) {
|
||||
strcpy(s, xpmdir);
|
||||
strcat(s, "/Cardback.xpm");
|
||||
@@ -988,7 +989,7 @@
|
||||
if (!cardpicts[c]) {
|
||||
/* must load or draw joker */
|
||||
if (xpmdir) {
|
||||
- char s[200];
|
||||
+ char s[MAXXPMDIRLEN + 15];
|
||||
sprintf(s, "%s/Joker.xpm", xpmdir);
|
||||
(void)read_pixmap(s, &cardpicts[c]);
|
||||
}
|
14
games/xpat2/files/patch-X-widget.c
Normal file
14
games/xpat2/files/patch-X-widget.c
Normal file
@ -0,0 +1,14 @@
|
||||
--- X-widget.c.orig
|
||||
+++ X-widget.c
|
||||
@@ -248,6 +248,11 @@
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
+ if (p->xpmdir && strlen(p->xpmdir) >= MAXXPMDIRLEN) {
|
||||
+ fprintf(stderr, "directory too long\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
read_message_file(p->messagefile ? p->messagefile : "messages");
|
||||
read_keyboard_file(p->keyboardfile ? p->keyboardfile : "keys");
|
||||
|
20
games/xpat2/files/patch-Xaw-main.c
Normal file
20
games/xpat2/files/patch-Xaw-main.c
Normal file
@ -0,0 +1,20 @@
|
||||
--- Xaw-main.c.orig
|
||||
+++ Xaw-main.c
|
||||
@@ -323,6 +323,7 @@
|
||||
Widget buttonpanel;
|
||||
Widget gamebutton, gamemenu, rulesbutton, rulesmenu;
|
||||
int i;
|
||||
+ Arg args[1];
|
||||
struct button {
|
||||
const char *name; void (*func)(void);
|
||||
} *bp;
|
||||
@@ -403,6 +404,9 @@
|
||||
/* OK. Now do the pop-up shells */
|
||||
popup = XtCreatePopupShell("prompt", transientShellWidgetClass, toplevel, NULL, 0);
|
||||
dialog = XtCreateManagedWidget("dialog", dialogWidgetClass, popup, NULL, 0);
|
||||
+ /* cludge to be improved when I know more Xaw -- AW */
|
||||
+ XtSetArg(args[0], XtNlabel, (strlen(TXT_NEW_CONFIRM)>strlen(TXT_QUIT_CONFIRM))?TXT_NEW_CONFIRM:TXT_QUIT_CONFIRM);
|
||||
+ XtSetValues(dialog, args, 1);
|
||||
XawDialogAddButton(dialog, "ok", Ok, (XtPointer)dialog);
|
||||
XawDialogAddButton(dialog, "cancel", Cancel, (XtPointer)dialog);
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- Xpat.tmpl.orig Sun Nov 5 12:03:10 2000
|
||||
+++ Xpat.tmpl Sun Jul 28 17:38:32 2002
|
||||
--- Xpat.tmpl.orig
|
||||
+++ Xpat.tmpl
|
||||
@@ -40,9 +40,9 @@
|
||||
|
||||
XCOMM 1. Specify User Interface (_exactly_ one of the interfaces below)
|
||||
@ -41,7 +41,8 @@
|
||||
|
||||
XPATLIBDIR = $(XPATROOT)
|
||||
APPDEFSDIR = $(LIBDIR)
|
||||
XPATMANDIR = $(XPATROOT)/man/man6
|
||||
-XPATMANDIR = $(XPATROOT)/man/man6
|
||||
+XPATMANDIR = $(PREFIX)/man/man6
|
||||
+MANSUFFIX = 6
|
||||
|
||||
XCOMM This is the name of the log-file, where solved games are stored:
|
@ -1,11 +0,0 @@
|
||||
--- Imakefile.orig Mon Mar 12 12:22:10 2001
|
||||
+++ Imakefile Mon Mar 12 12:22:25 2001
|
||||
@@ -188,7 +188,7 @@
|
||||
r_Calculatio.o r_Michaels.o r_Royal.o r_Canfield.o \
|
||||
r_mdCanfield.o r_Bakers.o r_Oonsoo.o r_BlueMoon.o
|
||||
|
||||
-OBJS = $(STDOBJS) $(XOBJS) $(KIT_OBJS)
|
||||
+OBJS = $(STDOBJS) $(XOBJS) $(KIT_OBJS) -lcompat
|
||||
|
||||
|
||||
MYPROG = xpat2
|
38
games/xpat2/files/patch-layout.c
Normal file
38
games/xpat2/files/patch-layout.c
Normal file
@ -0,0 +1,38 @@
|
||||
--- layout.c.orig
|
||||
+++ layout.c
|
||||
@@ -332,17 +332,9 @@
|
||||
}
|
||||
} else {
|
||||
/* enough space for the slots! */
|
||||
- int currentx = geo.dx;
|
||||
-/* printf("generating high layout for %d,%d\n", geo.w, geo.h); */
|
||||
- if (rem_x >= (rules.numslots + 1) * (geo.cw + geo.dx) &&
|
||||
- !(rules.variant & NODEAL)) {
|
||||
- /* there is space for the deck, and we can use one! */
|
||||
- geo.pg[game.numpiles-1].x = geo.dx;
|
||||
- geo.pg[game.numpiles-1].y = geo.dy + geo.ch + geo.dy;
|
||||
- currentx += geo.cw + geo.dx;
|
||||
- new_layout_type = GEN_BIG_LAYOUT_WITH_DECK;
|
||||
- geo.preferred_width += geo.dx + geo.cw;
|
||||
- }
|
||||
+ int currentx = geo.dx + rules.numdecks * (geo.cw + geo.dx);
|
||||
+ new_layout_type = GEN_BIG_LAYOUT_WITH_DECK;
|
||||
+ geo.preferred_width += rules.numdecks * (geo.dx + geo.cw);
|
||||
for (i = 0; i < rules.numslots; ++i) {
|
||||
/* create slot of full window height */
|
||||
p->x = currentx;
|
||||
@@ -351,6 +343,14 @@
|
||||
currentx += geo.cw + geo.dx;
|
||||
++p;
|
||||
}
|
||||
+ /* finally, position the decks */
|
||||
+ for (i = 0; i < rules.numdecks; ++i) {
|
||||
+ p[0].x = i * (geo.dx + geo.cw);
|
||||
+ p[1].x = p[0].x;
|
||||
+ p[0].y = geo.dy + 2 * (geo.ch + geo.dy);
|
||||
+ p[1].y = geo.dy + geo.ch + geo.dy;
|
||||
+ p += 2;
|
||||
+ }
|
||||
/* redo pos. of stacks */
|
||||
p = geo.pg;
|
||||
for (i = 0; i < rules.numstacks; ++i) {
|
22
games/xpat2/files/patch-loadsave.c
Normal file
22
games/xpat2/files/patch-loadsave.c
Normal file
@ -0,0 +1,22 @@
|
||||
--- loadsave.c.orig
|
||||
+++ loadsave.c
|
||||
@@ -42,13 +42,18 @@
|
||||
#ifdef _POSIX_SAVED_IDS
|
||||
static int uid_state = -1; /* -1 = unknown, 1 = real, 0 = effective */
|
||||
static uid_t real_uid, effective_uid;
|
||||
+ static gid_t real_gid, effective_gid;
|
||||
if (uid_state < 0) {
|
||||
real_uid = getuid();
|
||||
+ real_gid = getgid();
|
||||
effective_uid = geteuid();
|
||||
+ effective_gid = getegid();
|
||||
uid_state = 0;
|
||||
}
|
||||
- if (to_real != uid_state && real_uid != effective_uid) {
|
||||
+ if (to_real != uid_state && (real_uid != effective_uid || real_gid !=
|
||||
+ effective_gid)) {
|
||||
setuid(to_real ? real_uid : effective_uid);
|
||||
+ setgid(to_real ? real_gid : effective_gid);
|
||||
uid_state = to_real;
|
||||
}
|
||||
#endif
|
11
games/xpat2/files/patch-xpat.h
Normal file
11
games/xpat2/files/patch-xpat.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- xpat.h.orig
|
||||
+++ xpat.h
|
||||
@@ -51,6 +51,8 @@
|
||||
#define EXIT_FAILURE (-1)
|
||||
#endif
|
||||
|
||||
+#define MAXXPMDIRLEN 100 /* pathname length including trailing zero */
|
||||
+
|
||||
#ifndef max
|
||||
#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
#define min(a, b) ((a) < (b) ? (a) : (b))
|
54
games/xpat2/files/patch-xpat2.man
Normal file
54
games/xpat2/files/patch-xpat2.man
Normal file
@ -0,0 +1,54 @@
|
||||
--- xpat2.man.orig
|
||||
+++ xpat2.man
|
||||
@@ -136,7 +136,7 @@
|
||||
nice cardbacks.
|
||||
|
||||
If the directory name \fIxpmdir\fP does not start with a dot or a slash,
|
||||
-it is interpreted as a subdirectory of \fB/usr/games/lib/xpat\fP.
|
||||
+it is interpreted as a subdirectory of \fB%%PREFIX%%/lib/xpat\fP.
|
||||
.TP 4
|
||||
.B \-xpmcls \fIxpmcls\fP
|
||||
(Resource: \fBTableau.xpmcls\fP)
|
||||
@@ -193,22 +193,19 @@
|
||||
a format supported by your X-server (pcf, snf, ...)
|
||||
|
||||
.SH FILES
|
||||
-(Directories may differ on your system, especially the library subdirectory
|
||||
- may be \fB/usr/games/lib/xpat\fP instead of \fB/usr/lib/games/xpat\fP.)
|
||||
|
||||
- \fB/usr/games/xpat2\fP
|
||||
- \fB/var/lib/games/xpat2/xpat.log\fP
|
||||
- \fB/usr/doc/copyright/xpat2\fP
|
||||
- \fB/usr/lib/games/xpat/small.cards\fP
|
||||
- \fB/usr/lib/games/xpat/french.cards\fP
|
||||
- \fB/usr/lib/games/xpat/audio/success.au\fP
|
||||
- \fB/usr/lib/games/xpat/audio/giveup.au\fP
|
||||
- \fB/usr/lib/games/xpat/audio/goodbye.au\fP
|
||||
- \fB/usr/lib/games/xpat/audio/cannotsave.au\fP
|
||||
- \fB/usr/lib/games/xpat/help.*\fP
|
||||
- \fB/usr/lib/games/xpat/hlp*\fP
|
||||
+ \fB%%PREFIX%%/bin/xpat2\fP
|
||||
+ \fB/var/games/xpat.log\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/small.cards\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/french.cards\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/audio/success.au\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/audio/giveup.au\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/audio/goodbye.au\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/audio/cannotsave.au\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/help.*\fP
|
||||
+ \fB%%PREFIX%%/lib/xpat/hlp*\fP
|
||||
|
||||
-and a number of subdirs of \fB/usr/lib/games/xpat\fP, containing sets of colour
|
||||
+and a number of subdirs of \fB%%PREFIX%%/lib/xpat\fP, containing sets of colour
|
||||
cards.
|
||||
|
||||
.SH DIAGNOSTICS
|
||||
@@ -238,7 +235,7 @@
|
||||
Please mail bug reports to \fBMichael.Bischoff@gmx.net\fP.
|
||||
Fixes are especially welcome.
|
||||
.SH SEE ALSO
|
||||
-\fBxpat(6x)\fP, \fBspider(1)\fP, \fBxsol(1)\fP
|
||||
+\fBxpat(6)\fP, \fBspider(1)\fP, \fBxsol(1)\fP
|
||||
|
||||
.SH AUTHORS
|
||||
Heiko Eissfeldt and Michael Bischoff
|
@ -176,5 +176,4 @@ lib/xpat/it_IT
|
||||
@dirrm lib/xpat/italian
|
||||
@dirrm lib/xpat/russian
|
||||
@dirrm lib/xpat
|
||||
@cwd /
|
||||
var/games/xpat.log
|
||||
@unexec if [ ! -s /var/games/xpat.log ]; then rm -f /var/games/xpat.log; fi
|
||||
|
Loading…
Reference in New Issue
Block a user