From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 7359E43C40 for ; Sat, 23 Jul 2022 17:36:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 584E868B757; Sat, 23 Jul 2022 20:36:09 +0300 (EEST) Received: from a3.inai.de (a3.inai.de [88.198.85.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D60968B3FD for ; Sat, 23 Jul 2022 20:36:03 +0300 (EEST) Received: by a3.inai.de (Postfix, from userid 25121) id 24A4758697F1C; Sat, 23 Jul 2022 19:36:03 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by a3.inai.de (Postfix) with ESMTP id 2283D6104786D for ; Sat, 23 Jul 2022 19:36:03 +0200 (CEST) Date: Sat, 23 Jul 2022 19:36:03 +0200 (CEST) From: Jan Engelhardt To: FFmpeg development discussions and patches In-Reply-To: Message-ID: References: <32p7s1q2-7prs-1189-49p4-30n507437p2@vanv.qr> User-Agent: Alpine 2.25 (LSU 592 2021-09-18) MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] ABI break in 5.1 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On Saturday 2022-07-23 16:32, Nicolas George wrote: > >No, the ELF symbol version system cannot prevent you from replacing a >file with an older version. The information in ELF helps package managers prevent such replacement. If I even try as much as propose a glibc downgrade to rpm, this will happen: # rpm -Uhv glibc-2.31-7.30.x86_64.rpm --oldpackage error: Failed dependencies: libc.so.6(GLIBC_2.32)(64bit) is needed by (installed) coreutils-9.0-7.1.x86_64 libc.so.6(GLIBC_2.33)(64bit) is needed by (installed) libpmem1-1.11.1-1.5.x86_64 libc.so.6(GLIBC_2.34)(64bit) is needed by (installed) libvpx7-1.11.0-3.4.x86_64 libm.so.6(GLIBC_2.35)(64bit) is needed by (installed) perl-base-5.36.0-2.1.x86_64 Of course, you can always mv/rm behind the manager's back or use rpm --force, but that's not the point! At the time vpx was built, it engrained the symvers of the functions it uses into itself, therefore e.g. `readelf -aW /usr/lib64/libvpx.so.7`: Version symbols section '.gnu.version' contains 93 entries: Addr: 0x0000000000001576 Offset: 0x001576 Link: 4 (.dynsym) 000: 0 (*local*) 2 (GLIBC_2.2.5) 3 (GLIBC_2.34) 4 (GLIBC_2.3.2) 004: 5 (GLIBC_2.2.5) 6 (GLIBC_2.11) 5 (GLIBC_2.2.5) 7 (GLIBC_2.29) 008: 8 (GLIBC_2.3.4) 1 (*global*) 5 (GLIBC_2.2.5) 4 (GLIBC_2.3.2) 00c: 8 (GLIBC_2.3.4) 5 (GLIBC_2.2.5) 3 (GLIBC_2.34) 5 (GLIBC_2.2.5) 010: 3 (GLIBC_2.34) 9 (GLIBC_2.27) 8 (GLIBC_2.3.4) 5 (GLIBC_2.2.5) 014: 3 (GLIBC_2.34) 5 (GLIBC_2.2.5) 8 (GLIBC_2.3.4) 1 (*global*) 018: 3 (GLIBC_2.34) 7 (GLIBC_2.29) 5 (GLIBC_2.2.5) 1 (*global*) 01c: 4 (GLIBC_2.3.2) 5 (GLIBC_2.2.5) 3 (GLIBC_2.34) 5 (GLIBC_2.2.5) 020: 5 (GLIBC_2.2.5) 5 (GLIBC_2.2.5) 3 (GLIBC_2.34) 5 (GLIBC_2.2.5) 024: a (GLIBC_2.4) 8 (GLIBC_2.3.4) 4 (GLIBC_2.3.2) 5 (GLIBC_2.2.5) 028: 5 (GLIBC_2.2.5) 2 (GLIBC_2.2.5) 5 (GLIBC_2.2.5) 5 (GLIBC_2.2.5) 02c: 5 (GLIBC_2.2.5) 4 (GLIBC_2.3.2) 3 (GLIBC_2.34) 7 (GLIBC_2.29) 030: 2 (GLIBC_2.2.5) 5 (GLIBC_2.2.5) 5 (GLIBC_2.2.5) b (GLIBC_2.14) 034: 1 (*global*) 1 (*global*) 1 (*global*) 1 (*global*) Managers can and do evaluate that and turn that into a dependency *without any person having to manually add "Requires: glibc >= 2.34" to the libvpx description*. This of course requires that the project followed the procedures to create the symvers definitions, which glibc did. Seriously, why do I have to explain this all the time. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".