Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[NetBSD] Mises à jour selective, Makefile

3 réponses
Avatar
Henri Fallon
Bonjour,

ayant été un peu lache avec les 2-3 mises à jours de sécurité
récentes, me voici confronté à 1 problème, et une question de pure
curiosité :

- le problème : je veux suivre l'advisory 2004-003, je fais donc le
cvs update idoine
[[ cvs update -d -P -r netbsd-1-6 crypto/dist/openssl ]]
suivi du [[ cd lib/libcrypto && make cleandir dependall ]]

là dessus, make me sort des erreurs relative à mon Makefile racine
( /usr/src/Makefile) :

[[
make: "/usr/src/Makefile" line 271: Malformed conditional
(${TOOLCHAIN_MISSING} == "yes" && !defined(EXTERNAL_TOOLCHAIN))
make: "/usr/src/Makefile" line 274: if-less elif
make: "/usr/src/Makefile" line 274: Missing dependency operator
make: "/usr/src/Makefile" line 276: if-less endif
make: "/usr/src/Makefile" line 276: Need an operator
make: Fatal errors encountered -- cannot continue
make: "/usr/share/mk/bsd.own.mk" line 56: warning: "cd /usr/src
&& make -V .OBJDIR" returned non-zero status
]]

du coup j'ai fait un cvs update sur ledit Makefile mais ça ne change
rien.

Notez que ça compile, à part ça, mais je trouve ça inquiétant tout de
même.

- la question de curiosité : je me suis dit que peut être une partie du
système avait besoin d'etre updaté. Mais si je fais un make à la
racine, ça va me remettre des tas de trucs que j'ai viré, non ? Genre
sendmail, avantageusement remplacé par postfix, etc...

Existe-t-il donc un moyen de dire qu'on ne veut pas de toute une
partie du système, parce qu'on utilise plutot des soft qui vienne de la
collection de package, et faire un make qui tienne compte de ça ?

Merci bien.
--
Henri Fallon
A. Because it destroys the natural flow of conversation.
Q. Why is top posting _bad_ ?

3 réponses

Avatar
Olivier Brisson
Henri Fallon schrieb:
Bonjour,

ayant été un peu lache avec les 2-3 mises à jours de sécurité


Pas bien!!!

- le problème : je veux suivre l'advisory 2004-003, je fais donc le
cvs update idoine
[[ cvs update -d -P -r netbsd-1-6 crypto/dist/openssl ]]
suivi du [[ cd lib/libcrypto && make cleandir dependall ]]

là dessus, make me sort des erreurs relative à mon Makefile racine
( /usr/src/Makefile) :

[[
make: "/usr/src/Makefile" line 271: Malformed conditional
(${TOOLCHAIN_MISSING} == "yes" && !defined(EXTERNAL_TOOLCHAIN))
make: "/usr/src/Makefile" line 274: if-less elif
make: "/usr/src/Makefile" line 274: Missing dependency operator
make: "/usr/src/Makefile" line 276: if-less endif
make: "/usr/src/Makefile" line 276: Need an operator
make: Fatal errors encountered -- cannot continue
make: "/usr/share/mk/bsd.own.mk" line 56: warning: "cd /usr/src
&& make -V .OBJDIR" returned non-zero status
]]

du coup j'ai fait un cvs update sur ledit Makefile mais ça ne change
rien.

Notez que ça compile, à part ça, mais je trouve ça inquiétant tout de
même.


Non c'est pas vraiment inquiétant: tu as mélangé netbsd-1.6 avec soit du
current, soit du netbsd-2.0 et il y a quelques problèmes au niveau du
TOOLCHAIN. Tu peux essayer de générer le bon TOOLCHAIN avec la commande
build.sh dans /usr/src
Pour plus d'infos:
http://netbsd.callistonetwork.com/Documentation/current/#building

- la question de curiosité : je me suis dit que peut être une partie du
système avait besoin d'etre updaté. Mais si je fais un make à la
racine, ça va me remettre des tas de trucs que j'ai viré, non ? Genre
sendmail, avantageusement remplacé par postfix, etc...


C'est acrobatique... surtout que tu risques de rapidement enlever deux
ou trois trucs essentiels qui vont empêcher la bonne marche et la bonne
compilation de ton système.
Pour updater seulement une partie de ton système, merci de bien vouloir
consulter cvs --help update

Existe-t-il donc un moyen de dire qu'on ne veut pas de toute une
partie du système, parce qu'on utilise plutot des soft qui vienne de la
collection de package, et faire un make qui tienne compte de ça ?


Dans le doc /usr/src/BUILDING tu trouveras de nombreuses options que tu
peux passer à ton make (/etc/mk.conf). Ainsi, il te sera possible
d'exclure NLS, la crypto, la doc, X11. Par contre, il n'existe pas à ma
connaissance un système pour exclure d'autres logiciels comme sendmail,
postfix ou encore même BIND.

Merci bien.


De rien!

Olivier


--

Avatar
Olivier Brisson
Xavier schrieb:
Olivier Brisson wrote:

Par contre, il n'existe pas à ma
connaissance un système pour exclure d'autres logiciels comme sendmail,
postfix ou encore même BIND.


Si, en 2.0 ou en current, on peut.

XAv


Bonjour Xavier,

Merci pour la précision. En relisant mon message, je dois bien avouer
que cela n'était pas très bien formulé. En tous les cas, c'est pas
possible avec la version 1.6 de Henri.

Olivier

--


Avatar
Olivier Brisson
Xavier schrieb:
Olivier Brisson wrote:

Merci pour la précision. En relisant mon message, je dois bien avouer
que cela n'était pas très bien formulé. En tous les cas, c'est pas
possible avec la version 1.6 de Henri.


Dusons que pour voir la granularité du système de base, le mieux est
d'aller vérifier dans src/etc/Makefile le contenu de la variable
RELEASEVARS

Tout ce qui commence par MKXXX est plus ou moins explicite (note pour plus
tard : envoyer un PR comme quoi la page man mk.conf(5) n'est pas du tout à
jour).

Par exemple, sur une 2.0_BETA, on a :

RELEASEVARS= BSDOBJDIR BSDSRCDIR BUILDID
DESTDIR EXTERNAL_TOOLCHAIN
INSTALLWORLDDIR
KERNARCHDIR KERNCONFDIR KERNOBJDIR KERNSRCDIR
MACHINE MACHINE_ARCH MAKE MAKECONF MAKEFLAGS
MAKEOBJDIR MAKEOBJDIRPREFIX MAKEVERBOSE
MKBFD MKCATPAGES
MKCRYPTO MKCRYPTO_IDEA MKCRYPTO_MDC2 MKCRYPTO_RC5 MKCVS
MKDOC MKDYNAMICROOT MKGCC MKGCCCMDS MKGDB
MKHESIOD MKHOSTOBJ MKHTML MKIEEEFP MKINFO
MKKERBEROS4 MKKERBEROS MKLINKLIB MKLINT
MKMAN MKMANZ MKNLS MKOBJ MKOBJDIRS
MKPIC MKPICINSTALL MKPICLIB MKPOSTFIX MKPROFILE
MKSENDMAIL MKSHARE MKSKEY MKSOFTFLOAT MKSTATICLIB
MKUNPRIVED MKUPDATE MKUUCP MKX11 MKYP
NBUILDJOBS NETBSDSRCDIR
NOCLEANDIR NODISTRIBDIRS NOINCLUDES
OBJMACHINE
RELEASEDIR TOOLCHAIN_MISSING TOOLDIR
USETOOLS USR_OBJMACHINE
X11SRCDIR

Par exeple, pour une machine en RELEASE, il peut être utile (voire
indispensable :-) de mettre MKPOSTFIX et MKSENDMAIL à "no", puis installer
postfix par les packages, vu que sa mise à jour est fréquente et toujours
très stable.

Il manque effectivement MKBIND si on veut faire la même chose en utilisant
bind9.

XAv


Hello Xavier!
Merci pour les infos! Je vais aller explorer tout cela ce soir!
Olivier
--