-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
201 lines (159 loc) · 8.25 KB
/
TODO
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
pkgbuild: megnezni az UB_COMPILEDIR alatti access timeokat compile utan
megnezni ezeket tovabbi otletek szempontjabol:
- debian devscripts
- debhelpers
- debsums
uhu-pkg (altal meghivott programok):
- install-info ne warningozzon ha nincs mit eltavolitania
- useradd ne sirjon a CREATE_HOME miatt
uhu-policy, esetleg uhubuild support kitalalasa:
- env
- daemon
- cron
- at
- logrotate
- xinetd
policy kerdesek:
- ahol csak van, a compile vegen legyen "make check" vagy "make test"
ellenorizze hogy nem szerepel-e a /var/uhubuild/work/compile konyvtar egyetlen
fileban sem (grep -r)
ellenorizze hogy szimlink nem mutat-e ilyen helyre.
[az abszolut symlinkek mar kiszurve -pozsy]
ellenorizze hogy "/var/spool/mail" sztring ne szerepeljen egyetlen fajlban
sem, hiszen "/var/mail"-t kell az alkalmazasoknak hasznalniuk.
chroot-bol kilepes utan ellenorizze hogy nem maradt-e a chroot alatt futo
process.
ezt kb igy lehetne:
find /proc -name root -type l | while read root; do
if [ "$(readlink $root)" == "$CHROOT" ]; then
PANIK
fi
done
(ez egyreszt nekunk self-teszt, masreszt backdoorok ellen jo)
a /etc alatt minden filet magatol vegyen fel a conffiles-ba, ami esetleg nem
kell, azt lehessen '-' elotaggal jelezni hogy nem kell.
a kiadott csomagjainkat jo lenne digitalisan hitelesiteni.
Ezt ki kellene dolgozni.
dirs-ben is jo volna valahogy megkulonboztetni a "hozd letre ot" tipusu
bejegyzest a "ha eppen letezik, akkor legyen a csomag resze" tipusuaktol,
utobbi eseten shell wildcard is jatszhatna.
Nehany fajlra automatikusan lepjen eletbe valamilyen jog. Peldaul
/etc/init.d/daemons alattin automatikusan legyen x bit, ne kelljen ezt
kezzel megadni a perms-ben. [ez vegulis a fentebb emlitett dh_fixpers-utanzat
dolga kene legyen, es nem nehany, hanem minden filera. -pozsy]
Irni progit, ami a .md5sums es .stat fajlok alapjan leellenorzi, hogy a
csomag fajljainak telepitese rendben van-e, illetve igeny eseten beallitja
jora a jogokat. Vszleg ezt erdemesebb C-ben irni es nem shell szkriptben.
Sot: jo lenne mindenek elott korulnezni, hogy valami letezo program (pl.
aide) nem foghato-e be erre a celra sokkal ertelmesebben, mint amilyen egy
sajat program lenne. (Bezzeg ha dpkg helyett valami csomagkezelot
hasznalnank, nem lenne ilyen gond :-))
Az osszes fajta output (log, snapshot stb.) szerintem kene hogy
tartalmazza a progi version-release erteket is. A snapshotra ezen felul
fuggo kerdes, hogy md5 is legyen-e a fajlnevben.
Ertelmes daemon-kezeles: allitsa le mielott removeolja. Sot, altalaban
nem artana ha remove elott ellenorizne hogy az adott fileokat hasznalja-e
valaki (mint exe vagy mint fd). Ugyanez akar konyvtarakra is, mint cwd.
build elott/utan toroljon minden az 'uhubuild' user altal irhato filet.
Gyk ugy hogy semmi eselye ne legyen informacioatvitelnek 2 build kozott.
depends:
- ha foo=>bar, es letezik foo-dev es bar-dev csomag, akkor foo-dev=>bar-dev
- ha egy foo csomagban levo symlink egy bar csomagban levo filera mutat, akkor
foo=>bar?
- "perl-depends" es "python-depends". Aztan "ruby-depends" is. (majd...)
(tcl-depends is)
- a (/bin,/sbin,/lib)-bol nem mutasson ki fuggoseg.
- kulon szoljon ha van fuggoseg a /var/uhubuild/work/compile ala
- #! script eseten ellenorizze, hogy az elso sor legfeljebb 128 karakter
hosszu lehet
#!script eseten ne lehessen CRLF a vege.
csomagkeszites kozben ellenorizzen mindent amit csak bir. Nem art at tuzetesen
atnezni:
- FHS
- LSB
- lintian (debian)
- rpmlint (mandrake)
- Ellenorizze le a telepitendo .la es .pc fileokat
chrpath segitsegevel szedje ki az ures RPATH szekciokat, illetve a standard
konyvtarakat. Ugyanez RUNPATH-ra is.
ha egy progi symlink egy masikra (pl /usr/bin/abiword -> AbiWord), akkor
csinalja meg magatol a man-symlinket, ha letezik a "celprogi"-hoz man oldal.
sot, anyazzon ha a man alatt nem symlink van.
figyelmeztessen erosen ha egy postinst vagy hasonlo script ugy kezdodik hogy
"#!/bin/sh", es nincs hozza -e. (persze a tobbi hasonlot is fogadja el).
Jo kerdes, hogy ez kinek a feladata: a build rendszere (pl az RPATH-al
egyenerteku dolog), az uhubuild-check-e, vagy esetleg valami uhu-lint progie.
egy erdekes csomi-teszt lenne, ha megnezne a fileokat hogy a kiterjesztesuk
megfelel-e a tartalmuknak, pl hogy egy .png file az tenyleg png file-e.
Persze lehet, hogy nincs sok ertelme, egyszer felirtam valamiert :) [pozsy]
depends: ha egy libet csak a rendszerben talalunk meg, tehat az eppen keszulo
'foo*' csomagok egyike sem fogja magaval hozni, de ez a rendszeren levo
lib eppen a rendszeren levo valamelyik 'foo*' csomag altal kerult telepitesre,
akkor az broki. az ilyet ne fogadja el.
(mert ugye ekkor a csomag szepen elkeszul, de ha telepiti az ember akkor
nem fogja megtalalni a libet amit a csomagolaskor meg megtalalt.)
(sot, igazabol ezt ugy kellene megoldani, hogy ha kell egy /foo/bar file,
akkor ha az egy "eppen keszulo" csomagbol van fent, akkor az hiba, mert mar
elobb kellett volna megtalalnia az $UB_INSTALLDIR alatt)
(sot igazabol a rendszeren levo, azonos "Source:"-bol csomagokra kellene
figyelni)
[egmont:] Szerintem ezt ugy a legegyszerubb megoldani, hogy feature freeze
utan legalabb 2x ujrabuildelsz minden csomagot. Akkor kibukik az ilyen hiba.
depends kereses soran az ldd lepest legjobb lenne "kezzel" elvegezni.
Addig is, azt mindenkepp meg kellene csinalni, hogy mielott egy libet
le-ldd-zunk, az rpath szekciokat kiszedni belole. (igy rpath alapjan
is hamarabb talalja meg az $UB_INSTALLDIR alatt, ami akkor szamithat ha
egy lib epp most kerul at egyik keszulo csomagbol a masikba)
valahogy ellenorizni, hogy a progik a helyes locale path-t egettek-e magukba,
lasd ".mo kereses tapasztalat" level by egmont az uhu-dev listan.
rogzitsuk hogy egy filenevben milyen karakterek szerepelhetnek, es install
utan ellenorizzuk is le rogton, hogy mindegyik megfelelo!
Javaslat [pozsy]: '[a-z][A-Z][0-9]+-., '. Ez igy elsore eleg szuk, meg
meglatjuk. A space-t vegyuk bele, barmennyire is nem jo, es ezt kezeljuk is
mindenhol!!
jo lenne ha rogton az uhubuild-check --copy soran eszrevenne ha nem jok a
permissionok, nem csak acquire/patcheles kozben
uhubuild-check: ellenorizze, hogy minden patch sorszama ugyan annyi szamjegyu
legyen, es ne legyen ket azonos sorszamu.
A forditas soran futo kernel verziojat (uname -r) jegyezze fel a buildinfo
fajlba, mert elvileg egy-ket "checking for ..." configure-lepes eredmenye
fugghet a futo kernel verziojatol.
uhubuild-check: nagybetuvel kezdodjon a summary es a desc, a summary vegen
ne legyen pont
addons: szalljon el az elso permission denied utan rogton, ugy konnyebb
eszrevenni mi volt a hiba, es nem is masol tovabb feleslegesen
a sources alatt csak azokat a fileokat md5sum-olja le, akik tenylegesen
felhasznalasra is kerulnek.
konyvtarrol ne lehessen leszedni az X jogot ha van r.
.pc es .la fileok ellenorzese hogy ne legyen bennuk $UB_INSTALLDIR !!!
===============================================================================
0.2/rc3:
- A steps/ alatti lepesek ne kulon programkent, hanem besourceolva hivodjanak
meg. Igy sokkal jobban lehet szamolni a warningokat es errorokat, meg raadasul
egy icipicit gyorsabb is. Raadasul az UB_PACKAGES sem kell hogy exportalt
valtozo legyen, lehet belso array. [szeretnem igy, na :) -pozsy]
- File jogosultsagok gatyaba razasa. Sok felvetett kerdes, pl:
- a %docdir alatt legyen-e forcolt jog vagy ne? (lasd samba, aki pelda kodot
hoz magaval, configure scripttel)
- a {,/usr}/{,s}bin alatti fileokra +x jog
- ugyanez /etc/init.d eseten
stbstb
Persze mindezt a perms lepes elott, vagy annak reszekent. Ld meg: dh_fixperms
- Alaposabb FHS ellenorzes.
- eloszor legalabb a konyvtarszerkezetre ellenorizzen,
- aztan pl a /usr/share/ stb alatti tartalomra is.
(pl ne legyen *.h file a /usr/lib alatt)
- depends atalakitasa:
- split elott fileonkent kulon-kulon tarolja le a dependencyket
- split utan a csomagban levo fileokhoz tartozo listakat osszesitse es
konvertalja csomagnevre.
Igy lehetove valik hogy megmondjuk egy konkret filera hogy neki megse vagy
megis kell egy masik. (pl: ~/usr/bin/akarmi:/bin/sh)
- for i in $(foo); do ...; done -> while read i; do ...; done < <(foo)
- "suggests", "enhances" mezok tamogatasa es hasznalata
- code cleanup:
- idezojelek
- --
- -print0 ahol lehet
- kulso programok hivasat csokkenteni ahol lehet
- kulso programok meghivasanak szamat csokkenteni ahol lehet (xargs, -R stb)