Subject: Re: checkflist/mkflist w/ MKKERBEROS=no
To: None <greywolf@starwolf.com,>
From: David Young <dyoung@pobox.com>
List: tech-install
Date: 11/16/2003 18:58:20
--+pHx0qQiF2pBVqBT
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Mon, Sep 29, 2003 at 09:07:42PM -0700, Greywolf wrote:
> Are there any plans in the works such that "make release" with
> things like MKKERBEROS=no in /etc/mk.conf will actually work?
> 
> Currently it fails because checkflist demands that the kerberos
> stuff be there.  I'm sure there are other things which are conditional
> as well, such as the side effects of MKMAN, MKLINT, MKSHARE, MKNLS
> and the like.
>
> 1. flist should be generated a section at a time during "make build".

There seems to be a consensus that this is pretty desirable. In the mean
time, I have implemented #2 (below) for the MKKERBEROS{4,}=no cases:

> 
> 2. flist should really consist of several sub-flists which are
>    concatenated after "make build" is done, consistent with any
>    conditionals in /etc/mk.conf.  Similarly, any checkflist done against
>    the base flist will fail; any checkflist done agains any of the
>    sub-flists (conditional) will only issue a warning but not fail the
>    build.

For MKKERBEROS=no builds, I have attached patches to the set lists and
scripts which omit Kerberos files from the set lists. This suppresses
checkflists complaints.

It will not be difficult to treat conditions like MKSHARE=no, also, if
you pay attention to files affected by both MKSHARE=no and MKKERBEROS=no,
for example.  In the current regime, each combination will need its own
file, such as krb.share.mi.  I don't think there will be an unmanageable
number of files. Not yet, anyway.

I have built a couple Kerberosful releases with these patches in
place. Works ok.  I have also built a ~32MB Kerberosless system with
MKKERBEROS=no, MKKERBEROS4=no. Also works ok. I have tried neither
MKKERBEROS=no nor MKKERBEROS4=no by itself.

If it looks ok to all y'all, I will test the untested conditions and
check this in.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933

--+pHx0qQiF2pBVqBT
Content-Type: application/x-gzip
Content-Disposition: attachment; filename="krbless.tgz"
Content-Transfer-Encoding: base64

H4sIACkVuD8AA+1d25abyhH16/grzg/MCHR13pOH/EBeWQhaI5YQYBqNPfn69A1oJAS1G0WT
c0KtZY/Hql19reqiYIs44VWZ7BecVXyRil/4Yh9ytjiV+7dz8u0h4vmet12vv3me5+82nvzp
+fp3Jbvd5pv8y1tud2tf/r+/9berb95jmh+WC6/CUjQZf+aX7H1Ij5X8GR16rrwtLrxc7JNs
EeXnIklZwKqXF7kFXsUW2LyKT763OqeYie2Sfw5oJFkiDNz/XO6xoc+LkPNf8X2F8ymIzjG/
ryD3c/a+PLE7vUyTPfvNosWxKPPiTkO1zimMz0k2pqS7fEeLyz6ptgY+1+0MKcTRnUnTH4tN
zI9DCtWlStJrBbH+8YD/82P6xtLD5D025v/b3U77v7feetr/d77nz/7/BGm2svwT8sx/4/nb
1t4oYhck++8dPREqAlaWUnU9rPnOeVgkUnEzrHiM91LrbyMtS0fZRGlWSeUfBF1efmi7I6oH
Thm4/H+p54/1s8xPLFOay2FFnkqt5Yg5zvVc32hNXv8x/39EDjB6/q82jf/76406/3drb/b/
J0i//7/5QAQYVbaCwJs3olvHAamIhIJRw51oQNA2AWFcswkJo6pWUHhbjXm8jgvj02BCQ68i
Yf0H/H/9qAuAMf8X0uT/3spX/r/0d7P/P0EG1/9BCeDY+i/XXpv/rVc6/9vM+d8z5CZG6lyt
CSXr3ping/SoWrm/Sqr61cQOZOFZ50HXml89P391GfX/B5wBo/6/WbX530blfztvOed/z5B+
/7dTmcEI0Ek7BoMAQdOKA30d+Oqp+ktKj//LQqC6/ksTkVw/wf+97arO/7ZbmffJ83+9nf3/
CdJ4YBxW4UKu+CIVv72mtTem2YvcEK/Rq/xw9sO/mAz5/3Pu/+zWq61v/H/nr3aevv7zNrP/
P0G0/ydZlF5ittCVGvPj7fiiXV9VFIzK9y5AVVUW6u4FXV39/VqUyUdYMQHDUHmVcwykKlXk
3rX9GgeIjxayaEZuQQJkXrNdk9XrUhuiXybvx4qMeGfCBd7J6sd4jyxeCzErR4YguoGqXSIA
ZE6PLMEW4bRZrjGALDiSleXn4BIYDNV7agjUJ2wRFAKZoyIsOQv2nxUjD0FDquRM92cNuWRJ
RW6lZDxPP+hNqELwq1A95xm5DVU8JrdQ7VOyMleqRF0+qGvfSAhttZurPRU2i66S2J6Hu7ca
hs0ZLWVxxKA53YbtaSVSB2WkqrWiW0sy1hSWQq+N9mZGONSrRo0yzuaOx/BIazWaSRGlxswd
OGnaVHQZsSUjBMWWdo5hY0qHZE34w7ApntLsjM0VH5kpfgxLtjiH2SIKq1WTCXgWQHwgPh/U
Dz5CMkSo52VwZmL3vzMQVYX7lAVZeKYDhZcFYRSxogo4i4Iozyr2u3rz/kDgPy9JyYKoZDEG
jGM3UJ7EoreVmKXznpUQPAqzPEuiME3+Xc8Ughaa4j9dgGpe9TkIAUsmUoyAnYvqsx43ZCBm
KRMGXBdXXJ0WafiJj7gGiou76sIx6KVIxRJVDvPMfhd5WTnjXGfpXW7GJIIwydmtqwbn2tUk
i/Xcnll0xNZFPlg4oV0TJaZg0WBhA0XaqsbsZEBNVnAQMRZfL2NCArUJuBfqFFaxpxL+zFfw
XjMGis8gisLoiA1AnIgRs2OYOuoRC6WIQaG8cLgcDmC8rqHw0tdAeL1qoEuw5SxMMUDyjk2l
uPKqppx/lwzu4yX7VYYFBPlgZXL4dIDAOxvumgSIaRenf5qcE2h55TULVV3FSisrIydkKsEn
K8sMXt7WA/SD9VLGgkxcbpTi0jEp5HaYaCBQER2xIaszkzoh8sA0f5fhsFIzgEMPlyxygJZL
nkcn+Q/yZmigIow6gerE0w2clzEQJTpQESxK4LCysQwdqozU4nAJ0lyk51DYNvhPh0Upipgd
wkuKb6IGGezzXBwZGbqBWwOaMOGO11cVKJplsfNaXaqjdN/gUDK45Rr7zjLZPHfHV1PxhzR8
n4I/sc8JaLXR+WWvrTgaKU1C59yLkp1zkVVM7Ia8OTdhNuRxOQWbfLCoyumFma4FPnEn1Xjh
Dvk5OMTu3Zi0IQW+nQdXCxMWkT9iS/OpW5o/ZEvzqVtaX+TiUBnVxE+WVfIy3WlLCxPRiV/O
1WfhNIs6sE1A613AfmYXfX3iYsOs4QQjfOI08EnTwB8wDXziNOwvSRo7Z9hX6ADf0NcWVBl8
mgH8SiOKgijNOZhNSpSql0DlkgZ6KXkOpqIC1qSibjis1tGCFaEYxsn0UexL6aswVqR+QcZ+
OeAcBymBeQFmuQZn+Y8DWscPB+AHK3mS06tDNValQ+r+BgzNZHkPqrTVSJe5Ldl7wiv0ylQB
z/kHWBJssfpBARwnrtGYa6uyWDfJSaUBkxuiSJFDuPXaIfIdmTpxg0RWLNI0kRtY1o/zAxiz
LUPiDJZ9h86NGs+VF2BQeVak+TtaDxAp3yF5B4epMMrbZQ2hjf+ORpKsmmxD1yImm5ElCWcj
FX7Iy7PaqcJmI9EyiMLKx7ZBmL6nW29SdIOWn0WVt8e2C7i+3Eag+DglIghTkQY74OTcOsB0
QQqGiRVx7Oe/WZmDMKZWAZ5/DQv+kamfLP67WhDEBMucWjawSS2rh2bAZsvyN9rVg0suIveM
W/CwkQyt2yiwW6VAQXGHbGC62axyGe4x55Xyl7MDWPzriN+wUVD7MhbAysNI+LY41xMx4KCu
8zlY4KwUObmrhTr9c5i5Gzi4bBLvumoSK/+xXJt1w7GBIicE7vjoGGbvrPhlTOAWHLbcUd/q
w+8oHafcI1R3jZ0SIIl0yFplgSvcY01pjDgVqhJNP/RayIdgzqF128vBgrnv5ABV7ixWJskO
uVv3XbInA81MrHeEBiGfMmvimGKoE57UbLmtdlVX3sABV+39bgekyMlVb61DDrVhyndw4473
kk/X1QEU3anFoWB1ujqur3SmCdB6tA5QvK52Mj7k2F+VVsJdFUdurDKHJGIBfjdJWajLZA6N
q0KZ44CbUhncriR0Vq4bUt52y0/Y0tYnH9KQfATozOET8xyedMovn8LFeqmgrndjzuHvoE4q
Ag5Xd88uF0Z5wTI9tQBIs7ecLqc0FOIvaFxzg0hGBgl0OiW7ZkyyDC2StFC5jZ1Pu0aQ8F9h
mTUPxCHY+skrx0ssuS2v4Si+ybbxiavRuEM2/nTJxLox0XalNg1iQxY680McfqKB5JK5bvcL
77YKQM1Tto6lR4POizoHRibKAjvezbiyUF+7TDDBmUj1wEh6Y0Kd7baNiGxEnnXdfYNhg/Q2
SoEW8qLC++7U6etqHgV1c0lLBN2e7BSgDKBuKHxopi0UAjWkrvfkeahIiMdcplVEf3cBij8t
RXJlR5YxbflkyIqi32VHAhCLGklC3eFFrv4gYy3KEh1VMyIhxBUdhIy95ULSoblFhARQFguS
juqjQJLRPfxHOtYmP8Iow3yk47q0RzLO5jyiIKdpqdmOZIBNdURBTj28IjkCuMS5xS69EQdC
bt9LbITRV6xGGH9FaSTj1WmmQojFZ0TRLZmRjOxnMpLhVzRGGIctcYfACKPgOKlogXRtyVsk
a/eRFslgw1gE9BUnkKxvuIqgPrZlsR5dUxSpQMlPJOnekBNpyZqiJhJVxaeAah8nkZSm3QGr
p4TpBnrIiEDfbSbi6gXGKRoiiLPuL5IWvMHJ6gqMaO7G4EhNPcRxhncIAxk0vFvGIQL+ROe/
5RrSt2YPzRDZmjccQzewTtghaJddCMxSh1qItHnDK3QDV5PAuqzlCJb3hxyhagsbxhOwu26J
hI7tdyhXbh2o+VYuPVDlSFdgTZpz6Dafsl1uaINuHXDfchZh0BHuul588o7lk3bsNUnQrQMT
dmyFZSj91EAc3xLi0D5bpEAHqF7shsWGd/yaBwda4FOGzt2HfssCxDvuPvRr/p8z0uTTznBV
3p2ABvP5hvJHTzu6fD8Mp58WgjBNIugAAioCLVKTBSCQ/VARBKzZfSDIZWA1rw8GWU6BQnUg
QFE1nQ8CWlw+CNcS+SAYPJPNs0kgquXvgUD9RBIIspl7EPSGtgejTW4GwVrCHoJD49YAVQ8I
tDc8PSDMd0h6CK5m6CFFE0PPA4Z2h5vnZMEm5jkZuGLlOdnoUPIgC2Cy2iHjAVuyy8QDgYoN
A2CuOHjI/usS8HBkfbFKxoFjs3h3IEiR7kCMrtNgmJpuB8IU1w7AGKIdNNW9LDv63q8pdkib
/fw6oE39uAXQoHwWB+nhAU4OOpw6NxiDihodNh2KAx2sh0cHgi06Fog8aToTtHpd+hx9Y/Vy
53B4hziHwbtPxNKnqocyh4GdFqhLlgM24S1TzgHcoclh0+ywqWyCHH2GrtlxdGSHGkcfXc2L
Q4ZmHiylN9JhxAErd+qjwwHNWlw4aHw9RDi813AWc7IocI44i/8GT5MmvyHjtJlvGM5Un5BB
tpw3GHZLeAMmp2G7gc22FxIusPpJTATaqUdBSIvhhgFbehuOq0eI4sDyUpfVhnVTpXRYD2/4
bFiLbcEIbdZisqFNmqIR1mKXw4Y0aQhs9CWszydyE/UD7siQurw1eueuSGvARNwy1oBW4QuO
mqtGD31dohq9JYu2AzR2l6LmasMkp/T16JLT6OO9ZaZh2JaWBnS2h5NGn6hbQhrS8jUbDRht
h4qG4654aHQDLR0MCQkdBhp9djv0M2Bir7lnOLQhntFnppd15gyvrwxc8YZvNgGvyWawAUU0
Q/ZGD8kMX6+GYAb1F+4oWMz6QK8HP1zOW00mgxHYUEwbiDq5gR7yGKmlUdRXv3D5f0yG3v/N
j+kbSw+T2xh+/7fn7Vaeef/3drvy5f/7O3+5nN///QTRTmS/tpXnxkF73mVqPGtQx1ABhlTk
G1OHPpevJB1V0K9LFVqDSvL9p4M6Bz7c0lhXRVwZVhD+xcLh4ejXlw5p8HT445tBUNd/zP/P
yfQ9NuL/vrdp/X+z3kr/3+6269n/nyA3/h8USWS/rTiJ7r9rWWkOKNYvUR7TU69IHm3Wevnx
mMH2ncYUTVLb8q3G42q0gajr4XE1HTnGx2DebDymJt9aPNoovzPMr96ns/x3ZCD+rx8S/L+N
xv/NarUy8V+kfSuV/22XW3+O/08Q7fxJFqWXmC1OrNyzMuf//NdC5WDH9lpt/WqUvg9CVHp4
hFDyghhsqNy/SoZeyHIB/gTbE+CizKucwzi8m0G8h1txmEKTY0IgOQdDA7Jz8dBWu3OGjimJ
mRjVuLYi+njoOz7HLJVES2beRqzV53B9vPYYbKsQ+gtzzDRb3220HvuGnSA6BSUr7G8/G8eo
cr56uwYIOtXfS4zBmm98wmCFfKAFQp2yKk8zCHI+mS96hyBFmXygmJL9RCE8PDAIU8bwaMoY
H43AoKMREHw0ctvkB3gbcJbFkokEgqqg++49GqY69Xwr9F2oLmzWjr6yQ8hQHbRx8xUV0Pg4
hDjVD1UBmKbUDmC0a5Mhxq/J+sapEX3lAwhAOgCir3Y/GWAcGdHHRmBcGNEHR2A5LxnUeC6A
qIIuG5YAsHz2GvfVqfWfQgav/x50A2Cs/u+tTf3PW++87U7V/5feXP9/htxk1o515Fn+nDLq
/w+oAY37/9b4/2a5ln4v1LzVXP9/htxeN8/V3/8n6fF/VkWq2PWg6i/B/73m/t9uKZ8F8PyN
+HX2/ydIz/rLHPuZ67/2vF2z/it/per/nj/nf88Q++JKUnEWR5ac4zB9k7+8vLyIzaCfnZK/
95VPfJUvJCkL9MtWGsD9iou/OFnvDyUimtde0dTlVgbUi5DzXzEVsFH+IcntGIL9vKjyHID4
XZUhhKhf0UeHbJqREBA/FseizAvquI06eWZ/qJtISYbqIw3EEaDcFPLJCL2VkA6JCMSPgH51
qZKUrq/LI0vz+icSxDxBK/UC6uYQfzqxwLcgd/WbQOC/kNRVFCDqqhBA1DX+T9G2nH9DVtee
vyGrK7cnqxufp+pvmt6Pqdfe/oMw0MbVacrGzxFlsmnh4UTN2r2J6rVvE9W1YxOVtVfTlC2X
/kHRv/Hna9RXpyGzfJHcz/8f9vjP+PXfpq3/+Ev9/Ke38+b8/wlyk/+fqqMMC1f5/1rn/1/d
21keLX3+n/DHFoBG/X+3bvx/qT73t/52vv5/htj+z36H5yJlvEmL2mRRBAKxK3S+UKvN0WCW
WWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmeUL5T9JjaZ+APAA
AA==

--+pHx0qQiF2pBVqBT
Content-Type: application/x-gzip
Content-Disposition: attachment; filename="krbless.gz"
Content-Transfer-Encoding: base64

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
9tP/A6J0SS1I9QAA

--+pHx0qQiF2pBVqBT--