From owner-freebsd-questions@freebsd.org Mon Dec 28 16:04:09 2020 Return-Path: Delivered-To: freebsd-questions@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6ACEF4B9B67 for ; Mon, 28 Dec 2020 16:04:09 +0000 (UTC) (envelope-from matthew@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4D4Mmn2MnPz3tqM; Mon, 28 Dec 2020 16:04:09 +0000 (UTC) (envelope-from matthew@FreeBSD.org) Received: from smtp.infracaninophile.co.uk (smtp.infracaninophile.co.uk [IPv6:2001:8b0:151:1:c4ea:bd49:619b:6cb3]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.infracaninophile.co.uk", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: matthew/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 013AEF4F0; Mon, 28 Dec 2020 16:04:08 +0000 (UTC) (envelope-from matthew@FreeBSD.org) Received: from liminal.local (unknown [IPv6:2001:8b0:151:1:e99e:39bf:d42:7457]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: m.seaman@infracaninophile.co.uk) by smtp.infracaninophile.co.uk (Postfix) with ESMTPSA id 47AD51A75C; Mon, 28 Dec 2020 16:04:06 +0000 (UTC) Authentication-Results: smtp.infracaninophile.co.uk; dmarc=none (p=none dis=none) header.from=FreeBSD.org Authentication-Results: smtp.infracaninophile.co.uk/47AD51A75C; dkim=none; dkim-atps=neutral To: LVM , freebsd-questions@freebsd.org References: <46f7c65c-877c-7910-186e-fcd0879ab205@tundraware.com> From: Matthew Seaman Subject: Re: 11-STABLE to 12-STABLE Migration Questions Message-ID: <3caeac44-7f1b-5ef9-b0c1-4ceffb2048e5@FreeBSD.org> Date: Mon, 28 Dec 2020 16:04:03 +0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="v0Wxhc7N2HTA47RioMmIROdIC2OPRMh8V" X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2020 16:04:09 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --v0Wxhc7N2HTA47RioMmIROdIC2OPRMh8V Content-Type: multipart/mixed; boundary="IbR3PuelgMG88GyzAa7A3pS87tPnNCLqg"; protected-headers="v1" From: Matthew Seaman To: LVM , freebsd-questions@freebsd.org Message-ID: <3caeac44-7f1b-5ef9-b0c1-4ceffb2048e5@FreeBSD.org> Subject: Re: 11-STABLE to 12-STABLE Migration Questions References: <46f7c65c-877c-7910-186e-fcd0879ab205@tundraware.com> In-Reply-To: --IbR3PuelgMG88GyzAa7A3pS87tPnNCLqg Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: quoted-printable On 28/12/2020 14:01, LVM wrote: > Did just that (with releng). Didn't have to do significant config=20 > changes except manually merging files going through mergemaster -Fi. >=20 > But I'm using GENERIC for kernel. >=20 > I certainly didn't have to update my (installed) ports after a svn upda= te. Careful now. There are some pitfalls here that you could run into some=20 time down the line. * Most of the shared libraries (certainly all of the important ones) in= the FreeBSD base system use symbol versioning. Meaning that a binary compiled on an older version of the OS with shlibs using an older ABI version can still dynamically link against the latest version of the shlib. Effectively the shlib contains the entire sequence of ABI versions since they started doing the versioning thing, which was way back around 7.x-RELEASE IIRC. So all of your 11.x binaries will still run on a 12.x system, as you have observed. * For simple applications, which only rely on the shlibs from the FreeBSD base, and don't do any dynamic loading of modules you can upgrade them at will -- the 'compiled for 12.x' binaries may reference a more up-to-date ABI version than other ported applications compiled for 11.x, but there's no chance of conflict * Any other software with more complex dynamic linking requirements can be a problem. You may, or may not, find things unexpectedly crashing when you later do a routine ports update. The trouble occurs when you end up trying to dynamically link two different ABI versions from the same shared library into the same executable. This can happen in a number of ways. For example: Port A links to a shared library from port B. Both the application A and the library B need to link against the base system libc.so Now, if you install an update to A (links to libc ABI from 12.x) but not B (still links to libc ABI from 11.x) then you're looking at this sort of potential version conflict. Same applies if you update B but not A. It's not a guarranteed failure -- the details of exactly what symbols A and B reference are important. The same sort of considerations apply to many perl, python, PHP etc. modules or to Apache loadable modules. So, you don't need to reinstall all your ports immediately you upgrade,=20 but you are at risk of problems when you later incrementally upgrade=20 your installed ports. For absolute peace of mind the simplest course is to force a re-install=20 of all of your ports. That's overkill really, as many ports don't even=20 contain any compiled binaries, but it's probably quicker overall than=20 sitting down and trying to work out what really has to be reinstalled. This analysis doesn't apply to loadable kernel modules: those _will_=20 have to be upgraded to match the upgraded kernel. Neither does it apply = to certain applications that know "too much" about the internals of the=20 kernel memory -- lsof(1) being the poster child here. Cheers, Matthew --IbR3PuelgMG88GyzAa7A3pS87tPnNCLqg-- --v0Wxhc7N2HTA47RioMmIROdIC2OPRMh8V Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEGfFU7L8RLlBUTj8wAFE/EOCp5OcFAl/qAfQFAwAAAAAACgkQAFE/EOCp5OeA xg/+JQ3Pkso8EpJfqr7YgE/TMOShMAV1js1+HiI3HFRHQPifbUjCakYYc/L0B5UlR+/7LbyHdQTT lJY/blamYj+XUEcAxsRCEr9ODC2UwZwrBRToIowRnASVPaMxyalTFVDUCPcqOkItKeb2IN2TMYji gpdvDxbL21MuXIaXSzusQnIjc+4ZZ15USBQTj/RO3tv8hGDZB+noQu27wD7vOgnnOqj8r9IFVx/u N9p18SPJN/pj/lvf2rs7lB59OQzzbYQqQtxO0l/XRAH8ns+1VQCHuf7Bj+GqPyBlqA5biNJz0Vnn +mftVqal6JF1CyO7V0zgF8sHvkp2eVl3HhYZLhPYu5Y9Zeo80AXQWeSDcVRn+9HksoxLpYcU14m0 03visaa3yuPZUz6ZE2u8DWnJSA/oTSoowGzm3mc58+QSSn1eeaKwRRxSgoZXKcA1DuK84zX9ROTO KtFVbPM8XM5CM8uSgTqsXVFliun6NkgE7TyWYfkV9DSAEJ3w0zm/qh0Lbcwq6XaP+VIy3AaTD3xb IO3xW+O4bbsoxrHPucLp00Zvc5YVr/Qzs708ow5wnYBWRx1OTaa+Nfu2jDWeA3nq61D3wimhqGUj HigftfNCxO2JtMvde3hW9jOn3KEc+VtIT+/mIyYQ4K0TnVyp59l4yLPZMvHW3BnzHP23oAocDjXN 4a4= =zmBG -----END PGP SIGNATURE----- --v0Wxhc7N2HTA47RioMmIROdIC2OPRMh8V--