Received: from out1.migadu.com (out1.migadu.com [91.121.223.63]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id A6FD1781A76 for <~alpine/devel@lists.alpinelinux.org>; Sat, 12 Dec 2020 10:36:47 +0000 (UTC) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dereferenced.org; s=default; t=1607769406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7KRGtEtIMUSSl4qlZGOFGfiV8JrxbxnkcrYn6mBzA9o=; b=pUybovCbCWCi5QavJ7LFon+0fFALulm5wd7dS3/QWhRemt9SlGX/laXXRns1QMkqnWUJK3 IgdHMAStSQZBNDRhmhz9LN9Ln76paqPcWlYgm/63d+YM+NzTgdbSlU7q0pg0uW2Zp5bZJy 7330kNxx28KwLKGCaAShgB5wS/V457E= From: Ariadne Conill To: ~alpine/devel@lists.alpinelinux.org Cc: maxice8 Subject: Re: Implement versioned names for major libraries to ease upgrade process Message-ID: <6228113.OPkDe4bAzH@nanabozho> In-Reply-To: <86c7a81e-1640-7f82-9e13-dfdbe1aad07b@gmail.com> References: <86c7a81e-1640-7f82-9e13-dfdbe1aad07b@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: ariadne@dereferenced.org Date: Sat, 12 Dec 2020 10:36:46 GMT On Saturday, December 12, 2020 2:36:16 AM MST maxice8 wrote: > Hello, > > Distros like Debian and Void Linux have packages for major version of > libraries include the major version in their pkgname (example: > libboost1.75). We already do this with some libraries. I think it would be good to make it standard practice. > > I'd like to implement that for Alpine Linux. > > ## Benefits to Alpine > > Ease the upgrade process of major libraries with lots of consumers (like > boost that has 127-ish consumers) by allowing 2 or more versions of a > library to be installed in parallel. > > Consumers will no longer need to be rebuilt all at once as users can > have multiple versions of the library installed and will be slowly > switched over to the new version as consumers are rebuilt to use the new > soname. > > This is already done for llvm which breaks API and ABI every MAJOR > release so we keep llvmN and llvmN+1 and remove llvmN once all packages > are switched over to use llvmN+1. > > ## Drawbacks > > More APKBUILDs will need to be maintained until the whole process is done. > > If we depend on foo-dev with foo-dev being claimed by the latest version > of foo, it becomes possible for some packages to be missed during the > upgrade process and never processed until the older foo is removed. > > Otherwise if we decide on depending on fooX-dev directly then it > increases work on upgrading packages but guarantees no package will be > missed in the way mentioned above. One solution here would be for fooX-dev to also provide foo-dev=X. This will cause abuild to pull in the newest package if possible. > People might start manually installing fooX instead of installing foo > and just getting the latest version and then their system **could > possibly** break during an upgrade. It should be fine, as the dependencies are against so:libfoo.so.X and not actually against fooX. Ariadne