-
Notifications
You must be signed in to change notification settings - Fork 140
/
UPDATING
214 lines (168 loc) · 7.27 KB
/
UPDATING
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
-----------------------------------------------------------------------------
PTT BBS [Current] Updating Log (in Big5 encoding)
-----------------------------------------------------------------------------
這裡是 PTT Current 的重大更新記錄,主要是「檔案格式」或位置的重要改變、
通常是更新程式碼時要注意一起更新的部份。
跟著 Current 一起昇級的朋友們要注意是否有跨過下列的版號,若有請依序手動更新。
會列在這裡的版號,強烈建議先整個關站再更新。
關於該版號的進一步訊息,可用 https://opentrac.csie.org/pttbbs/changeset/
來查詢,如下面列 r2273 的查詢網址就是
https://opensvn.csie.org/traccgi/pttbbs/changeset/2273
註: 昇級時的檔案很多在 upgrade 目錄底下,若是有 *.c 的,多半用
make XXXX 就可以編譯出來,如
make r3968_chicken
make r4035_regnew
make r4194_passwd
make r4826_numlogin
make r4848_watermode
make r4871_uflag
-----------------------------------------------------------------------------
2019-03-14: [shm]
OUTTA_TIMER 已經被移除。現代作業系統 (至少 Linux 和 FreeBSD) 在各硬體平台上
都有支援 vDSO 之類的機制,可以讓 gettimeofday 不用 syscall 進 kernel 就取得
目前的時間。此機制就如同原先 OUTTA_TIMER 的設計,但免卻了我們自己跑 daemon
做同步。
r5939: [shm]
為了減少昇級 BBS 時資料結構不相容的情形,SHM 裡的 "now" 現在變為一直都有
(即使沒開 OUTTA_TIMER 選項)。如果您的 BBS 沒開 OUTTA_TIMER 請記得打開後
重編 + 重跑,或是手動把 now 移掉。
r5885: [expire]
util/expire 格式修改,不再看 days/minp.
為避免誤砍,設定檔也同時改名為 expire2.conf。請自行調整。
r5858: [birthday]
不再要求輸入生日,直接要求輸入是否已滿十八歲,減少儲存的使用者個資。
請跑一下 upgrade/r5858_birth 用已知生日重建是否滿十八歲的資料。
r5748: [typecheck]
Makefile 現在會多執行 mbbsd/testsz,並在其中確保 userec_t 等結構大小正確
(主要是確認 time4_t 與其它自行定義的變數沒有導致data size不合)
如果你已開的站遇到 time4_t 不合(ex, 在 64bit 系統上忘了定義 TIMET64) 請考慮
是要砍站重開(重建所有資料)或是自己手動寫轉換程式。
r5734: [cleanup]
userec_t 裡很多東西以後可能要挪作它用,跑一下 upgrade/r5734 可以把資料清空。
早作早好。
r5663: [fromd/where]
中文故鄉 (pttbbs.conf:WHERE) 改由 FROMD 來提供,移除原 cache + mbbsd 的機制.
好處是: (1) 減少 reload cache 所花時間 (2) 避免 duplicated code.
若想使用故鄉功能,請:
(1) 編輯 pttbs.conf, 加上 #define FROMD
(2) cd ~/pttbbs; make clean; make # mbbsd 跟 common 都要重編
(3) 在開機的 script 加上 ~bbs/daemon/fromd/fromd
若不想重開機,請順手執行一次上面的命令。
(4) bbsctl restart ,連線進去測試看看。
故鄉的定義檔一樣是 etc/domain_name_query.cidr ,格式也一樣。
r5662: [banip]
banip 的 record size 由 unsigned long 改為 in_addr_t.
在 64-bit 環境上使用的人請全部 (common, util, mbbsd) make clean 再 make all.
~bbs/tmp/banip.cache 也要記得砍掉重建。
r5653: [banip]
util/banip.pl 跟 include/banip.h 改由 etc/banip.conf 取代,以後加 banip 不用
再重新編譯程式,只要修改 banip.conf 並重啟 bbs (bbsctl restart) 即可。
另可將 etc/banip.conf 加入 etc/editable 方便編輯。
r5640: [build]
Makeflie 調整,現在會自動偵測系統內有無 ccache 與 clang; 有的話就自動啟用 (
clang 的優先權高於 gcc)。建議使用 clang 3.0 以上的版本。
若不想使用 clang 請加上參數: make -DWITHOUT_CLANG
r5540: [configs]
注意不少 include/config.h 的選項改名了,同時也提供了較完善的開關設定方法。
大部份的 LOG 現已集中到 LOG_CONF_*。
r5453: [ziphome]
ZipHome 增加了 exclude list (範例在 sample/etc/ziphome.exclude)。
r4992: [ccw chat]
此版後更新了交談(talk)與聊天室(chat)的核心,另外稅率也在之前的版本有改動。
交談 (talk) 的 protocol 自此版後有所不同,所以昇級時要重開
r4938: [remove blog]
自此版後我們將移除部落格 (blog) 的相關程式碼。
若有此需要的站請自行維護。
r4886: [dbcs]
加了 repeat detection 的 DBCS 還不錯,所以正式脫離使用 detection 界面的日子
有需要作全站轉換的人請自見拿 r4871 去改
NOTE: 或許未來可以把 DBCSAWARE 的 conditional compile flag 拿掉
r4871: [uflag]
由於兩個 uflag 實在太容易令人寫錯、而且 uflag 的空間還很大,
決定把 uflag/uflag2 整合。
請注意 util/bbsmail 要重 build (因為它會看 (cuser.uflags2 & REJ_OUTTAMAIL))
r4848: [water mode]
決定把 uflag2 的 WATERMODE (2 bit) 移出來放到獨立的變數。
uflag / uflag2 還是放單一 bit 的東西較好。
r4841: [shm size tag]
由於站台設定變動後導致 SHM 大小不同 (eg, MAX_BOARDS) 然後有 utility 沒 build
到的問題再次發生,所以我們開啟了 size check. 請重 build 所有程式並重開 SHM。
r4826: [numlogindays, lastseen]
numlogins 的算法有調整,並且改名為 numlogindays;
lastlogin 也多了一個叫 lastseen (別人 talk->query 到的值)
lastlogin 只要登入就一定會更新,lastseen 則否。
另,這個 r4826 的 upgrade 是 optional 的,不跑也 ok,
只是看你要不要一併調整 numlogin 的值。
r4483: [mbbsd command option]
從這版開始, mbbsd 的 command line 參數改變. 使用 getopt 處理參數.
譬如原本
$ mbbsd 23 3000
改成
$ mbbsd -d -p 23 -p 3000
mbbsd, bbsrf, bbsctl 得一起更新, 並記得 install.
若自己有另外寫 start-up script, 記得修改.
r4306: [SHM/from_alias]
故鄉從此版起有所調整。
原 from_alias 改成 from_ip 方便直接照 IP 排序。 (SHM 大小理應沒有變動)
currutmp->from 改為純顯示用。
為正確排序也避免舊 talk.c 把 from_ip 拿去查 from_alias 的表,
在安裝此 patch 後請記得重編 shmctl 跟 mbbsd 並關站後重新執行 shmctl。
r4194: [PASSWD/STRUCT]
*** PASSWD 調整: 此板把 r3968 的空間拿來放職業與電話了,
請關站並執行 upgrade/r4194_passwd 昇級。
!!! 由此版起,我們把禁止 padding 的宣告加進會寫入 disk 的結構裡。
要注意的是如果你之前已經因為各種原因造成 padding 了,
請自行寫轉換程式或是註解掉 pttstruct.h 內的 PACKSTRUCT
各結構的參考大小都已標上。
mbbsd/testsz.c 現在可以方便你計算與比較各結構大小。
另外請注意如果你是在 64 bit 機器上使用卻又沒 #define TIMET64
很可能就會製造出一堆 padding。
r4151: [REGISTER]
由於 PTT1/PTT2 轉換測試一切正常, 正式改用 Regform v2 的程式碼。
請比照 r4035 確定你已經把 register.new 給轉移好了。
r4132: [REGISTER]
upgrade/r4132_reglog2db.py 可以幫助你把 register.log
轉換成 sqlite3 資料庫。
未來可利用這個資料庫進行認證資料的重建。 (r4194 有較簡易的重建工具)
r4051: [CONF]
所有的 GLOBAL_* 板名定義現全改為 BN_*
請記得更新你的 pttbbs.conf
r4035: [REGISTER]
註冊系統導入 Regform v2, 請用 upgrade/r4035_regnew 轉移已填註冊單。
(Regform2 可由 USE_REGFORM2 開啟)
r3968: [CHICKEN]
把 Chicken 搬出 PASSWD, 並且改用 mmap 同步。
請記得關站後執行 upgrade/r3968_chicken 轉移資料後再重開 BBS。
r3153: [CHESS]
chess framework update
!!!NOTE!!! Chess protocals are NOT backward compatible
RESTART WHOLE system to ensure correctness
r2459: [SHM]
SHM_t 增加版本號碼, 若版本不合請關站重開.
r2374: [SHM]
把 ptt.linux merge 到 trunk
SHM_t 中所有的 pointer 都改成 index 了
由於這個更動有改到 SHM 的結構,所以請在關站之後再將新版本上線
r2366:
trunk 與 stable 第一次分枝
r2341: [SHM]
SHM_t update, 為了修某一個 race condition並拿掉幾個沒在用的欄位
由於這個更動有改到 SHM 的結構,所以請在關站之後再將新版本上線
r2273: [PASSWDS]
對於 userec_t structure 的一些修改, 以下這些動作得在 bbs 關掉之後進行:
請到 util/ 下 make passwdconverter
然後執行 passwdconverter 會把 BBSHOME/.PASSWDS 轉換之後
產生 BBSHOME/.PASSWDS.trans.tmp
用這個檔蓋掉 .PASSWDS 就好了 :)
r2176: [SHM]
etc/domain_name_query 改為 etc/domain_name_query.cidr
格式為 CIDR format , 您可以直接拿 Ptt/Ptt2 目前所使用的設定檔來用
由於這個更動有改到 SHM 的結構,所以請在關站之後再將新版本上線
r1409: [etc]
expire 程式修正, 原本的用法是 expire [days [maxp [minp]]]
現在透過 getopt() 來做, 變成 expire [-d days] [-M maxp] [-m minp] [board names]
最後面可以指定一群板名, 若不指定的話表示 "全部看板"
請檢查你的 crontab!
[from OpenPTT 1.0.2]
.DIR 有變, .BOARDS 變 .BRD, ...
請見 PTT2 PttSrc 板