Linux utilise depuis longtemps des contributions sous forme de patchs unifonctionnels. Ce sont donc des patchs courts et ciblés. Pour un problème de sécurité, le patch est donc souvent assez court. Comparativement, voilà ce que proposait Mozilla à l'époque concernant une mise à jour de sécurité (1.0.4 -> 1.0.5) :
Quant au fait de backporter, Debian n'a jamais eu de problème à backporter un fix pour le noyau. Après, les mainteneurs de Firefox sont p'tet des buses.
[^] # Re: Note de mise à jour un peu dégueulasse avec Mozilla
Posté par Vincent Bernat (site web personnel) . En réponse à la dépêche Debian GNU/Linux 5.0 : Lenny. Évalué à 4.
Linux utilise depuis longtemps des contributions sous forme de patchs unifonctionnels. Ce sont donc des patchs courts et ciblés. Pour un problème de sécurité, le patch est donc souvent assez court. Comparativement, voilà ce que proposait Mozilla à l'époque concernant une mise à jour de sécurité (1.0.4 -> 1.0.5) :
accessible/src/base/nsBaseWidgetAccessible.cpp | 4
browser/app/module.ver | 4
browser/base/content/browser.js | 205 ++---
browser/base/content/setWallpaper.xul | 12
browser/base/content/utilityOverlay.js | 3
browser/config/version.txt | 2
browser/installer/unix/installer.cfg | 2
browser/installer/unix/packages-static | 2
browser/installer/windows/config.it | 2
browser/installer/windows/installer.cfg | 4
browser/installer/windows/packages-static | 2
caps/idl/nsIPrincipal.idl | 22
caps/include/nsPrincipal.h | 2
caps/include/nsScriptSecurityManager.h | 33
caps/src/nsJSPrincipals.cpp | 17
caps/src/nsPrincipal.cpp | 23
caps/src/nsScriptSecurityManager.cpp | 45 -
caps/src/nsSystemPrincipal.cpp | 7
chrome/src/nsChromeProtocolHandler.cpp | 3
client.mk | 26
config/milestone.txt | 2
content/base/public/nsContentUtils.h | 2
content/base/src/nsContentUtils.cpp | 15
content/base/src/nsDocument.cpp | 50 +
content/base/src/nsDocument.h | 5
content/base/src/nsDocumentViewer.cpp | 6
content/base/src/nsGenericDOMDataNode.cpp | 17
content/base/src/nsGenericElement.cpp | 68 +
content/base/src/nsGenericElement.h | 12
content/base/src/nsImageLoadingContent.cpp | 2
content/base/src/nsSelection.cpp | 3
content/events/public/nsIEventListenerManager.h | 9
content/events/public/nsIPrivateDOMEvent.h | 5
content/events/public/nsMutationEvent.h | 21
content/events/src/nsDOMEvent.cpp | 130 +++
content/events/src/nsDOMMutationEvent.cpp | 21
content/events/src/nsEventListenerManager.cpp | 97 +-
content/events/src/nsEventListenerManager.h | 7
content/events/src/nsEventStateManager.cpp | 157 ++--
content/html/content/src/nsGenericHTMLElement.cpp | 7
content/html/content/src/nsHTMLButtonElement.cpp | 42 -
content/html/content/src/nsHTMLFormElement.cpp | 2
content/html/content/src/nsHTMLInputElement.cpp | 31
content/html/content/src/nsHTMLScriptElement.cpp | 5
content/html/content/src/nsHTMLSelectElement.cpp | 15
content/html/content/src/nsHTMLTableCellElement.cpp | 20
content/html/content/src/nsHTMLTextAreaElement.cpp | 5
content/html/document/src/nsHTMLDocument.cpp | 11
content/svg/content/src/nsSVGElement.cpp | 4
content/xbl/builtin/Makefile.in | 20
content/xbl/builtin/gtk2/.cvsignore | 1
content/xbl/builtin/gtk2/Makefile.in | 45 +
content/xbl/builtin/gtk2/jar.mn | 2
content/xbl/builtin/mac/.cvsignore | 1
content/xbl/builtin/mac/Makefile.in | 45 +
content/xbl/builtin/mac/jar.mn | 2
content/xbl/builtin/unix/.cvsignore | 1
content/xbl/builtin/unix/Makefile.in | 45 +
content/xbl/builtin/unix/jar.mn | 2
content/xbl/builtin/win/.cvsignore | 1
content/xbl/builtin/win/Makefile.in | 45 +
content/xbl/builtin/win/jar.mn | 2
content/xbl/src/nsXBLBinding.cpp | 70 +
content/xbl/src/nsXBLBinding.h | 2
content/xbl/src/nsXBLPrototypeHandler.cpp | 6
content/xbl/src/nsXBLService.cpp | 24
content/xbl/src/nsXBLWindowHandler.cpp | 32
content/xml/content/src/nsXMLElement.cpp | 3
content/xml/document/src/nsXMLDocument.cpp | 7
content/xul/content/src/nsXULElement.cpp | 210 +++--
content/xul/document/src/nsXULCommandDispatcher.cpp | 4
content/xul/document/src/nsXULDocument.cpp | 17
docshell/base/nsDocShell.cpp | 29
docshell/base/nsDocShell.h | 2
docshell/base/nsIDocShellLoadInfo.idl | 2
docshell/base/nsIWebNavigation.idl | 5
dom/public/idl/events/Makefile.in | 1
dom/public/idl/events/nsIDOMNSEventTarget.idl | 71 +
dom/src/Makefile.in | 9
dom/src/base/nsDOMClassInfo.cpp | 205 +++--
dom/src/base/nsDOMClassInfo.h | 8
dom/src/base/nsGlobalWindow.cpp | 153 ++--
dom/src/base/nsGlobalWindow.h | 5
dom/src/base/nsJSEnvironment.cpp | 2
dom/src/base/nsWindowRoot.cpp | 49 +
dom/src/base/nsWindowRoot.h | 8
dom/src/res/hiddenWindow.html | 1
embedding/components/windowwatcher/src/nsWindowWatcher.cpp | 62 +
embedding/config/basebrowser-installer-win.pkg | 1
embedding/config/basebrowser-mac-macho | 1
embedding/config/basebrowser-qnx | 1
embedding/config/basebrowser-unix | 1
embedding/config/basebrowser-win | 1
embedding/config/minimo-qnx | 1
embedding/config/minimo-unix | 1
extensions/xmlextras/base/src/nsXMLHttpRequest.cpp | 13
gfx/src/gtk/nsImageGTK.cpp | 38 -
gfx/src/windows/nsDrawingSurfaceWin.cpp | 32
gfx/src/windows/nsImageWin.cpp | 361 +++++-----
gfx/src/windows/nsImageWin.h | 34
js/src/jsapi.h | 6
js/src/jsarray.c | 7
js/src/jsdbgapi.c | 19
js/src/jsdbgapi.h | 9
js/src/jsemit.c | 11
js/src/jsexn.c | 3
js/src/jsinterp.h | 1
js/src/jsobj.c | 86 ++
js/src/jsparse.c | 15
js/src/jsregexp.c | 12
js/src/jsscript.c | 9
js/src/jsstr.c | 37 -
js/src/xpconnect/loader/mozJSComponentLoader.cpp | 76 --
js/src/xpconnect/loader/mozJSComponentLoader.h | 14
js/src/xpconnect/src/XPCDispObject.cpp | 11
js/src/xpconnect/src/XPCIDispatchExtension.cpp | 2
js/src/xpconnect/src/xpccomponents.cpp | 4
js/src/xpconnect/src/xpcjsruntime.cpp | 1
js/src/xpconnect/src/xpcprivate.h | 8
js/src/xpconnect/src/xpcwrappednativeinfo.cpp | 50 +
js/src/xpconnect/src/xpcwrappednativejsops.cpp | 4
js/src/xpconnect/src/xpcwrappednativescope.cpp | 13
layout/build/layout.pkg | 2
layout/html/base/src/nsGfxScrollFrame.cpp | 2
layout/html/base/src/nsObjectFrame.cpp | 6
layout/html/base/src/nsPresShell.cpp | 2
layout/html/document/src/forms.css | 4
layout/html/forms/public/nsIFormControlFrame.h | 2
layout/html/forms/resources/content/xbl-forms.css | 4
layout/html/forms/src/nsComboboxControlFrame.cpp | 12
layout/html/forms/src/nsComboboxControlFrame.h | 3
layout/html/forms/src/nsFileControlFrame.h | 2
layout/html/forms/src/nsFormControlFrame.cpp | 7
layout/html/forms/src/nsFormControlFrame.h | 5
layout/html/forms/src/nsGfxButtonControlFrame.cpp | 5
layout/html/forms/src/nsHTMLButtonControlFrame.cpp | 7
layout/html/forms/src/nsHTMLButtonControlFrame.h | 1
layout/html/forms/src/nsImageControlFrame.cpp | 9
layout/html/forms/src/nsListControlFrame.cpp | 13
layout/html/forms/src/nsListControlFrame.h | 1
layout/html/forms/src/nsTextControlFrame.cpp | 8
layout/html/forms/src/nsTextControlFrame.h | 1
layout/xul/base/src/nsBoxFrame.cpp | 5
layout/xul/base/src/nsButtonBoxFrame.cpp | 7
layout/xul/base/src/nsButtonBoxFrame.h | 9
layout/xul/base/src/nsImageBoxFrame.cpp | 2
layout/xul/base/src/nsMenuFrame.cpp | 24
layout/xul/base/src/nsPopupSetFrame.cpp | 10
layout/xul/base/src/nsResizerFrame.cpp | 12
layout/xul/base/src/nsResizerFrame.h | 2
layout/xul/base/src/nsScrollBoxFrame.cpp | 36
layout/xul/base/src/nsScrollbarButtonFrame.cpp | 12
layout/xul/base/src/nsTitleBarFrame.cpp | 12
layout/xul/base/src/nsTitleBarFrame.h | 2
layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp | 4
layout/xul/base/src/tree/src/nsTreeSelection.cpp | 2
mailnews/base/search/src/nsMsgFilterService.cpp | 2
mailnews/base/util/nsMsgIncomingServer.cpp | 2
mailnews/imap/src/nsImapMailFolder.cpp | 1
mailnews/local/src/nsParseMailbox.cpp | 8
modules/libpr0n/decoders/bmp/nsBMPDecoder.cpp | 4
modules/libpr0n/decoders/bmp/nsICODecoder.cpp | 64 +
modules/libpr0n/decoders/bmp/nsICODecoder.h | 2
modules/libpr0n/decoders/xbm/nsXBMDecoder.cpp | 13
modules/plugin/base/src/nsPluginsDirUnix.cpp | 75 ++
netwerk/protocol/http/src/nsHttpHandler.cpp | 24
rdf/chrome/src/nsChromeProtocolHandler.cpp | 3
security/nss/cmd/addbuiltin/addbuiltin.c | 2
security/nss/lib/asn1/Makefile | 2
security/nss/lib/asn1/asn1.c | 2
security/nss/lib/asn1/asn1.h | 2
security/nss/lib/asn1/asn1m.h | 2
security/nss/lib/asn1/asn1t.h | 2
security/nss/lib/asn1/config.mk | 2
security/nss/lib/asn1/manifest.mn | 2
security/nss/lib/asn1/nssasn1t.h | 2
security/nss/lib/base/Makefile | 2
security/nss/lib/base/arena.c | 2
security/nss/lib/base/base.h | 2
security/nss/lib/base/baset.h | 2
security/nss/lib/base/config.mk | 2
security/nss/lib/base/error.c | 2
security/nss/lib/base/errorval.c | 2
security/nss/lib/base/hash.c | 2
security/nss/lib/base/hashops.c | 2
security/nss/lib/base/item.c | 2
security/nss/lib/base/libc.c | 2
security/nss/lib/base/list.c | 2
security/nss/lib/base/manifest.mn | 2
security/nss/lib/base/nssbase.h | 2
security/nss/lib/base/nssbaset.h | 2
security/nss/lib/base/tracker.c | 2
security/nss/lib/base/utf8.c | 2
security/nss/lib/base/whatnspr.c | 2
security/nss/lib/ckfw/Makefile | 2
security/nss/lib/ckfw/builtins/Makefile | 2
security/nss/lib/ckfw/builtins/anchor.c | 2
security/nss/lib/ckfw/builtins/bfind.c | 2
security/nss/lib/ckfw/builtins/binst.c | 2
security/nss/lib/ckfw/builtins/bobject.c | 2
security/nss/lib/ckfw/builtins/bsession.c | 2
security/nss/lib/ckfw/builtins/bslot.c | 2
security/nss/lib/ckfw/builtins/btoken.c | 2
security/nss/lib/ckfw/builtins/builtins.h | 2
security/nss/lib/ckfw/builtins/certdata.c | 4
security/nss/lib/ckfw/builtins/certdata.perl | 2
security/nss/lib/ckfw/builtins/certdata.txt | 2
security/nss/lib/ckfw/builtins/config.mk | 2
security/nss/lib/ckfw/builtins/constants.c | 2
security/nss/lib/ckfw/builtins/manifest.mn | 2
security/nss/lib/ckfw/ck.api | 2
security/nss/lib/ckfw/ck.h | 2
security/nss/lib/ckfw/ckapi.perl | 2
security/nss/lib/ckfw/ckfw.h | 2
security/nss/lib/ckfw/ckfwm.h | 2
security/nss/lib/ckfw/ckfwtm.h | 2
security/nss/lib/ckfw/ckmd.h | 2
security/nss/lib/ckfw/config.mk | 2
security/nss/lib/ckfw/dbm/Makefile | 2
security/nss/lib/ckfw/dbm/anchor.c | 2
security/nss/lib/ckfw/dbm/ckdbm.h | 2
security/nss/lib/ckfw/dbm/config.mk | 2
security/nss/lib/ckfw/dbm/db.c | 2
security/nss/lib/ckfw/dbm/find.c | 2
security/nss/lib/ckfw/dbm/instance.c | 2
security/nss/lib/ckfw/dbm/manifest.mn | 2
security/nss/lib/ckfw/dbm/object.c | 2
security/nss/lib/ckfw/dbm/session.c | 2
security/nss/lib/ckfw/dbm/slot.c | 2
security/nss/lib/ckfw/dbm/token.c | 2
security/nss/lib/ckfw/find.c | 2
security/nss/lib/ckfw/hash.c | 2
security/nss/lib/ckfw/instance.c | 2
security/nss/lib/ckfw/manifest.mn | 2
security/nss/lib/ckfw/mechanism.c | 2
security/nss/lib/ckfw/mutex.c | 2
security/nss/lib/ckfw/nssck.api | 2
security/nss/lib/ckfw/nssckfw.h | 2
security/nss/lib/ckfw/nssckfwc.h | 2
security/nss/lib/ckfw/nssckfwt.h | 2
security/nss/lib/ckfw/nssckmdt.h | 2
security/nss/lib/ckfw/object.c | 2
security/nss/lib/ckfw/session.c | 2
security/nss/lib/ckfw/sessobj.c | 2
security/nss/lib/ckfw/slot.c | 2
security/nss/lib/ckfw/token.c | 2
security/nss/lib/ckfw/wrap.c | 2
security/nss/lib/dev/Makefile | 2
security/nss/lib/dev/ckhelper.c | 2
security/nss/lib/dev/ckhelper.h | 2
security/nss/lib/dev/config.mk | 2
security/nss/lib/dev/dev.h | 2
security/nss/lib/dev/devm.h | 2
security/nss/lib/dev/devmod.c | 2
security/nss/lib/dev/devslot.c | 2
security/nss/lib/dev/devt.h | 2
security/nss/lib/dev/devtm.h | 2
security/nss/lib/dev/devtoken.c | 2
security/nss/lib/dev/devutil.c | 2
security/nss/lib/dev/manifest.mn | 2
security/nss/lib/dev/nssdev.h | 2
security/nss/lib/dev/nssdevt.h | 2
security/nss/lib/pk11wrap/dev3hack.c | 2
security/nss/lib/pk11wrap/dev3hack.h | 2
security/nss/lib/pki/Makefile | 2
security/nss/lib/pki/asymmkey.c | 2
security/nss/lib/pki/certdecode.c | 2
security/nss/lib/pki/certificate.c | 2
security/nss/lib/pki/config.mk | 2
security/nss/lib/pki/cryptocontext.c | 2
security/nss/lib/pki/manifest.mn | 2
security/nss/lib/pki/nsspki.h | 2
security/nss/lib/pki/nsspkit.h | 2
security/nss/lib/pki/pki.h | 2
security/nss/lib/pki/pki3hack.c | 2
security/nss/lib/pki/pki3hack.h | 2
security/nss/lib/pki/pkibase.c | 2
security/nss/lib/pki/pkim.h | 2
security/nss/lib/pki/pkistore.c | 2
security/nss/lib/pki/pkistore.h | 2
security/nss/lib/pki/pkit.h | 2
security/nss/lib/pki/pkitm.h | 2
security/nss/lib/pki/symmkey.c | 2
security/nss/lib/pki/tdcache.c | 2
security/nss/lib/pki/trustdomain.c | 2
security/nss/lib/pki1/Makefile | 2
security/nss/lib/pki1/atav.c | 2
security/nss/lib/pki1/config.mk | 2
security/nss/lib/pki1/genname.c | 2
security/nss/lib/pki1/gnseq.c | 2
security/nss/lib/pki1/manifest.mn | 2
security/nss/lib/pki1/name.c | 2
security/nss/lib/pki1/nsspki1.h | 2
security/nss/lib/pki1/nsspki1t.h | 2
security/nss/lib/pki1/oid.c | 2
security/nss/lib/pki1/oiddata.c | 2
security/nss/lib/pki1/oiddata.h | 2
security/nss/lib/pki1/oidgen.perl | 2
security/nss/lib/pki1/oids.txt | 2
security/nss/lib/pki1/pki1.h | 2
security/nss/lib/pki1/pki1t.h | 2
security/nss/lib/pki1/rdn.c | 2
security/nss/lib/pki1/rdnseq.c | 2
security/nss/lib/softoken/pkcs11n.h | 2
security/nss/lib/util/utf8.c | 2
security/nss/tests/pkcs11/netscape/trivial/Makefile.in | 2
security/nss/tests/pkcs11/netscape/trivial/configure.in | 2
security/nss/tests/pkcs11/netscape/trivial/trivial.c | 2
toolkit/components/autocomplete/src/nsAutoCompleteController.cpp | 19
toolkit/components/help/content/help.js | 21
toolkit/components/satchel/src/nsFormFillController.cpp | 10
toolkit/mozapps/downloads/src/nsHelperAppDlg.js.in | 4
toolkit/mozapps/installer/windows/wizard/setup/dialogs.c | 2
toolkit/mozapps/installer/windows/wizard/setup/extra.c | 2
toolkit/mozapps/update/content/update.xul | 2
toolkit/xre/nsAppRunner.cpp | 2
view/public/nsIViewObserver.h | 2
view/src/nsViewManager.cpp | 5
webshell/public/nsILinkHandler.h | 2
widget/public/nsEvent.h | 36
widget/public/nsGUIEvent.h | 284 ++++---
widget/public/nsIEventListener.h | 2
widget/public/nsIWidget.h | 2
widget/src/beos/nsWindow.cpp | 14
widget/src/cocoa/nsChildView.mm | 51 -
widget/src/cocoa/nsCocoaWindow.mm | 6
widget/src/cocoa/nsMenuBarX.cpp | 4
widget/src/cocoa/nsMenuItemX.cpp | 2
widget/src/cocoa/nsMenuX.cpp | 12
widget/src/gtk/nsGtkEventHandler.cpp | 14
widget/src/gtk/nsWidget.cpp | 28
widget/src/gtk/nsWindow.cpp | 38 -
widget/src/gtk2/nsCommonWidget.cpp | 12
widget/src/gtk2/nsWindow.cpp | 50 -
widget/src/mac/nsMacControl.cpp | 2
widget/src/mac/nsMacEventHandler.cpp | 48 -
widget/src/mac/nsMacWindow.cpp | 2
widget/src/mac/nsMenuBarX.cpp | 4
widget/src/mac/nsMenuX.cpp | 10
widget/src/mac/nsWindow.cpp | 8
widget/src/os2/nsFrameWindow.cpp | 4
widget/src/os2/nsWindow.cpp | 33
widget/src/photon/nsWidget.cpp | 30
widget/src/photon/nsWidget.h | 2
widget/src/photon/nsWindow.cpp | 6
widget/src/windows/nsFilePicker.cpp | 14
widget/src/windows/nsNativeDragTarget.cpp | 2
widget/src/windows/nsWindow.cpp | 46 -
widget/src/xlib/nsAppShell.cpp | 34
widget/src/xlib/nsWidget.cpp | 2
widget/src/xlib/nsWindow.cpp | 10
xpcom/obsolete/nsFileSpec.cpp | 51 -
xpcom/obsolete/nsFileSpec.h | 7
xpcom/obsolete/nsFileSpecImpl.cpp | 16
xpcom/obsolete/nsIFileSpec.idl | 5
xpfe/appshell/src/nsAppShellService.cpp | 5
xpfe/appshell/src/nsWebShellWindow.cpp | 4
xpfe/appshell/src/nsXULWindow.cpp | 5
xpfe/communicator/resources/content/contentAreaClick.js | 6
xpfe/communicator/resources/content/contentAreaUtils.js | 21
xpfe/communicator/resources/content/nsContextMenu.js | 61 -
xpinstall/packager/packages-os2 | 1
xpinstall/packager/packages-static-unix | 2
xpinstall/packager/packages-unix | 1
xpinstall/src/nsJSFile.cpp | 6
xpinstall/src/nsJSFileSpecObj.cpp | 6
xpinstall/src/nsJSInstall.cpp | 90 --
xpinstall/src/nsJSInstallTriggerGlobal.cpp | 23
xpinstall/src/nsJSInstallVersion.cpp | 12
xpinstall/src/nsJSWinProfile.cpp | 6
xpinstall/src/nsJSWinReg.cpp | 6
xpinstall/src/nsXPITriggerInfo.cpp | 28
xpinstall/src/nsXPITriggerInfo.h | 8
373 files changed, 3284 insertions(+), 1959 deletions(-)
Comparativement, pour Linux, un fix de sécu, c'est ça :
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6(...)
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6(...)
Bref...
Quant au fait de backporter, Debian n'a jamais eu de problème à backporter un fix pour le noyau. Après, les mainteneurs de Firefox sont p'tet des buses.