From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: Re: perl-getopt-long version string contains a letter Date: Wed, 06 Mar 2019 16:56:29 +0100 Message-ID: <87k1hcf13m.fsf@gnu.org> References: <875zsywpf5.fsf@elephly.net> <20190304183140.GA5771@macbook41> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([209.51.188.92]:35250) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1YuN-0006pq-8x for guix-devel@gnu.org; Wed, 06 Mar 2019 10:56:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h1YuM-0002fP-FZ for guix-devel@gnu.org; Wed, 06 Mar 2019 10:56:39 -0500 Received: from hera.aquilenet.fr ([2a0c:e300::1]:43480) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h1YuJ-0002bC-Ig for guix-devel@gnu.org; Wed, 06 Mar 2019 10:56:37 -0500 In-Reply-To: <20190304183140.GA5771@macbook41> (Efraim Flashner's message of "Mon, 4 Mar 2019 20:31:40 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Efraim Flashner Cc: guix-devel@gnu.org Hello, Efraim Flashner skribis: > On Mon, Mar 04, 2019 at 05:54:38PM +0100, Ricardo Wurmus wrote: >> Hi Guix, >>=20 >> perl-getopt-long has a version string "v2.49.1". If we change this to >> "2.49.1", will installed packages not be upgraded? What can be done in >> this case? >>=20 > > As I've wrapped my head around it, Guix doesn't believe in "upgrades" > and "downgrades", just in changes in dependencies. So if the version > string loses the leading "v" I suppose ASCIIbetically v2.49.1 is a > higher value than 2.49.1, Indeed: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (version>? "v2.49.1" "2.49.1") $21 =3D #t --8<---------------cut here---------------end--------------->8--- Perhaps what could be done is to deprecate the package with =E2=80=9Cv2.49.= 1=E2=80=9D, like so: (define-public x (package ;; =E2=80=A6 (version "2.49.1"))) (define w/wrong-version (package (inherit x) (version "v2.49.1") ;wrong version string (properties `((superseded . ,x))))) That should cause upgrades from the wrong version to the new one, even if the new one is not =E2=80=98version>?=E2=80=99. Thoughts? Ludo=E2=80=99.