From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS autolearn=no autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777375755; x=1777980555; darn=lists.altlinux.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date:sender:from :to:cc:subject:date:message-id:reply-to; bh=3Y3Cxxc9WgFGXbw03JbYbg+PwYvkRPS3/RasqXIfJTs=; b=ARKXgntREcBGAHuGMR4qQOQK4xgsFUDJWkx5sSntK1mAwxZa06ucTLZVKQuhW+N4Mw MNN0s+mA7mTDPkdYtHxLXZgRpmGx+kHgtzBZR/U/O6iZjfNMley6R0vDJEvcf7aGLCe1 o8nqOSH+NKF79T1qZ57KM2oHaiRym9or0fldkC6q2V74318WR4xyQgfaaqUKts35S9/U BiN9csoc4oTbL9R4e7nplagNoUMjIf9H+B0GABcWL3A2eWUfSwRzfitBT1jMZml1cAAt qqIAJ23KwPp/GCGAqPHkqazWaRQs+4AmZ+HTPdkWgPCeusT2VqUIhzgwyDe+LUbgdtlC psrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777375755; x=1777980555; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:to:from:date:sender :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=3Y3Cxxc9WgFGXbw03JbYbg+PwYvkRPS3/RasqXIfJTs=; b=SyL9QXAR4wA/nvHMp4PttEv2zN1umC3ilUcNFpKke2DWPOII3AoXazflgMw5JHIJ34 LaMoUU9IXVCh22mGIeOWLofpeTfxb6Z7HQLlAoapibCuITkwl/aioGeCMhNUpUiZrW9T Xo/zoThI3+kZIbl8ugoA+rsUhxFPBwIvvKvC+C7itsVvDrKYi3gMRIywuzCl5+LNfkqj xJQYxFAemvU5XnW82XYraTFJIbcdNjYdNTVma1HYhgLssSjNRBZoXUWUr4fO5hMlIOdx UYBAMq011m+YRoesiZ3buR3vlkNpKJeTwx5kc8HoUPCdDOTIP+niuqobQAJ+jU1bh6H0 2HhQ== X-Gm-Message-State: AOJu0Yx3ey7VJt7u5ySqe4F/24zrbUPLPvpzL1ZLzVilTkBy3Zii/MVm mTdmObTueoGHjDCZboL6nS3N7XYqLTA6KpanKWzFzV2SklPr+J1zaT3egCqrhQ== X-Gm-Gg: AeBDietz5BnN/rjGkCKxH0hv9OkJNEoHqyVd7FZmwENV1wtGp1TTgwPob9BaxcZ+OAy xl1kRFR62LHoxEVEjFrQR4TxB1EZdHfyUcNeCHzyHzzl4nY7b9wnZxzvumkvKOAiCNGDABotwuT W96H6t22yGsFrUYamZc++hREg5qvCRNeLLjaNBhGZZ9ywooDmE51QCU7zquWmNcQPMtMDmbBTya C2wmQlfElOgSHdtsFeAjV2l70IeRbGUrBnz3Tg7fFi2Gn6GOqEerTt64tYX6GAbIkMOKbpoitwT SSUocNMnaeXEazJxA6PettT8DbdilzcV81y4PVU8JMpl4anRnLCMOCIB1aJOxxrULmvj+SKoY6Q BGrR7lULkkQuhXz19C31GHdVPdaWb7rUV+Mw5eQu9MITdZS9Rh4b6HARmJCTclSwpCPZhwXOuBE 0pbZvaVpPOiznok27ErFVXeOHH1LpbdktKFbOF+qTcm6pU9YY5 X-Received: by 2002:a05:690c:e0c1:10b0:79c:3e94:808f with SMTP id 00721157ae682-7bcf4fbf645mr15727707b3.3.1777375754691; Tue, 28 Apr 2026 04:29:14 -0700 (PDT) Sender: "Ivan A. Melnikov" Date: Tue, 28 Apr 2026 15:29:11 +0400 From: "Ivan A. Melnikov" To: ALT Linux Team development discussions Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: [devel] man-db vs gdbm // was: Re: I: gcc 15.2.1 && binutils 2.46 X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Apr 2026 11:29:18 -0000 Archived-At: List-Archive: List-Post: On Sun, Apr 26, 2026 at 01:35:33PM +0300, Gleb Fotengauer-Malinovskiy wrote: > man-db legion @core iv [...] > The meaning of function declarations of the form rettype identifier (); such as > char *strstr (); changed in C23. > In C17 and earlier, such function declarators specified no information about > the number or types of the parameters of the function (C17 6.7.6.3), requiring > users to know the correct number of arguments, with each passed argument going > through default argument promotion. > In C23 such declarations mean (void) i.e. a function taking no arguments, which > can lead to build failures on code that relied on the earlier meaning. Конкретно в man-db проблема сборки вызвана gdbm, который предоставляет некорректный прототип для функции gdbm_open. Немного подробностей. В нашем gdbm 1.8.3 gdbm_open определён так: gdbm_file_info *gdbm_open __P((char *, int, int, int, void (*) (void))); Последний аргумент -- callback на случай ошибок. Он всегда вызывается с дополнительным аргументом типа char* (а на самом деле это const char*), описывающем, что же произошло: https://git.altlinux.org/gears/g/gdbm.git?a=blob;f=gdbm/update.c;h=71c5731a10ad09ba3b14bed6f857d906eb311a68#l122 Тут ещё можно сказать, что это не прототип у gdbm_open неправильный, а старосишный стиль такой: кому нужен дополнительный аргумент тот возьмёт. Однако начиная с вышедшего в 2011 году gdbm 1.9 апстрим перешёл на более актуальный диалект C и стал определять gdbm_open так: extern GDBM_FILE gdbm_open (const char *, int, int, int, void (*)(const char *)); Примерно в таком виде эта функция определена в gdbm, поставляемом во всех актуальных дистрибутивах, кроме Альт и каких-то деривативов RHEL6, если диривативы RHEL6 ещё можно считать актуальными, и именно на такой прототип рассчитывает апстрим man-db. Кстати, на данный момент gdbm не пресобирается в том числе и из-за описаной выше проблемы: update.c:122:6: error: too many arguments to function 'dbf->fatal_err'; expected 0, have 1 122 | (*dbf->fatal_err) (val); | ~^~~~~~~~~~~~~~~~ ~~~ Уважаемые @core, в рамках починки gdbm вы планируете её обновлять (последняя версия датируется 2025 годом, наша из 2002-го) или хотя бы предоставить корректный прототип gdbm_open? Или клиентам gdbm нужно костылями обкладываться? -- wbr, iv m.