-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlinux.doc
153 lines (128 loc) · 3.6 KB
/
linux.doc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
無聊波一下文章賺金幣...
基本上是make過而己....還沒有實際測試過..
過幾天再測試看看好了....
首先要先到ftp抓到wd_001201_src.tgz
如果是要從wd_991119升級,有種檔要轉格式
相關的程式放在~/src/util~/fixtool底下
解開檔案之後
1.到~/src/include修改config.h
修改自己bbs的設定
2.到~/src/lib
修改Makefile,把For FreeBSD / OpenBSD的rule mark 起來
改成linux的.....
輸入make clean all
就可以順利通過第一關
3.到~/src/WD
(1) cp Makefile.RedHat Makefile
使用redhat的Makefile檔案
修改Makefile
# ------------------------------------------------------
# Linux : please remove -lrpcsvc in 'bbsrf' section
# ------------------------------------------------------
OS_DEF = -DREDHAT -DLINUX -DTWO_LONGJMP_ARGS
CC = gcc
CFLAGS = -O2 -Wunused -I../include -pipe -fomit-frame-pointer -I/usr/include/bs
d
LDFLAGS = -ltermcap -lbsd -L../lib -ldao -export-dynamic -ldl -lcrypt [1;33m-lresolv[m
CPROTO = cproto -E"gcc -pipe -E -I../include"
(2)修改bbs.c
在
int
do_post ()
{
fileheader postfile;
char fpath[80], buf[80];
.............
.......
// Ptt 看板連署系統
if(!strcmp(currboard,VOTEBOARD))
{
[1;33m-[m do_voteboard();
[1;33m+[m[m DL_func("SO/votebrd.so:do_voteboard");
return RC_FULL;
}
(3)修改xchatd.c
.......
#include <fcntl.h>
#include <sys/time.h>
#include <sys/resource.h>
[1;33m+[m#include "../lib/shm.c"
[1;33m+[m#include "../lib/sem.c"
[1;33m+[m#include "../lib/str_time.c"
[1;33m+[m#include "../lib/rec_get.c"
.......
(4)修改in.zbbsd.c
..............
void
fatalperror(f, msg)
int f;
char *msg;
{
char buf[256];
[1;33m-[m#ifndef BSD44
[1;33m-[m extern char *sys_errlist[];
[1;33m-[m#endif
(void) sprintf(buf, "%s: %s\r\n", msg, sys_errlist[errno]);
fatal(f, buf);
}
還有
下面這一段mark起來,應該就沒問題了...:P
/*
#ifndef FIONBIO
#include <sys/filio.h>
#endif
*/
(5)改make clean update 應該可以順利make過
4.
(1) 到~src/util
修改Makefile把For FreeBSD的make rule mark起來,改成linux
(2)有三個檔案要改
blookd.c
bpop3d.c
brdpop3d.c
把檔案中這三行都mark起來..:P,一共有五個還是六個地方吧...:p
#ifndef BSD44
extern char *sys_errlist[];
#endif
(3)open_bet.c在redhat下跑要小小改一下路徑
參考一下WD-BBS 問題與解答 版 4002篇 有寫一點...沒有寫完整
(4)make clean install
5
(1)
到~src/util/statool
修改Makefile把For FreeBSD的make rule mark起來,改成linux
再修改lib的路徑
參考一下WD-BBS 問題與解答 版 4012篇
(2)
修改account.c
/* Ptt 歷史事件處理 */
if(fp = fopen("etc/history.data","r"))
{ //最多同時上線
if(fscanf(fp,"%d %d %d %d",&max_login,&max,&max_reg,&k))
{
int a;
resolve_fcache();
printf("此時段最多同時上線:%d 過去:%d",a=fcache->max_user,k);
[1;33m // fclose(fp);[m
if(a > k)
{
ptime=localtime(&fcache->max_time);
if(fp1=fopen("etc/history", "a"))
{
fprintf(fp1,
"◎ 【%02d/%02d/%02d %02d:%02d】"
"[[32m同時在站內人數[[m首次達到 [[1;36m%d[[m 人次\n",
ptime->tm_mon+1, ptime->tm_mday, ptime->tm_year % 100,
ptime->tm_hour,ptime->tm_min,a);
fclose(fp1);
}
[1;33m fclose(fp);[m
(3)打make clean install
有點累.....寫到這樣就好了..
不一定完全對.....
只是把我的做法,給大家參考一下
--
[1;36m※Post by [37mluogen [36mfrom [33mluogen.g2.ntu.edu.tw [m
--
[1;37m雅勒尼恩 [1;36mBBS[1;37m 站[1;31m《[1;32minfor.org[1;31m》[0m
[1;36mAthenaeum[1;31m B[0;37mB[1;33mS[1;37m From: [1;33mAthena [0m