Bug 36410 - в libsane-1.0.27-alt4 часть libsane продублирована в каждом модуле
Summary: в libsane-1.0.27-alt4 часть libsane продублирована в каждом модуле
Status: REOPENED
Alias: None
Product: Sisyphus
Classification: Development
Component: libsane (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-26 03:31 MSK by Dmitry V. Levin
Modified: 2024-06-05 00:04 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry V. Levin 2019-03-26 03:31:17 MSK
Например,
$ LC_ALL=C comm -12 \
<(/usr/lib/rpm/provided_symbols /usr/lib6/libsane.so.1.0.27) \
<(/usr/lib/rpm/provided_symbols /usr/lib64/sane/libsane-test.so.1.0.27)
md5_buffer
md5_finish_ctx
md5_init_ctx
md5_process_block
md5_process_bytes
md5_read_ctx
md5_stream
sane_cancel
sane_close
sane_control_option
sane_exit
sane_get_devices
sane_get_option_descriptor
sane_get_parameters
sane_get_select_fd
sane_init
sane_open
sane_read
sane_set_io_mode
sane_start
sane_strstatus
sanei_check_value
sanei_config_get_paths
sanei_config_get_string
sanei_config_open
sanei_config_read
sanei_config_skip_whitespace
sanei_configure_attach
sanei_constrain_value
sanei_debug_msg
sanei_debug_sanei_config
sanei_debug_sanei_debug
sanei_debug_sanei_thread
sanei_init_debug
sanei_thread_begin
sanei_thread_get_status
sanei_thread_init
sanei_thread_is_forked
sanei_thread_is_valid
sanei_thread_kill
sanei_thread_sendsig
sanei_thread_waitpid
Comment 1 Vitaly Lipatov 2024-06-04 23:16:46 MSK
Так задумано, что portable-слой собирается внутри статической библиотекой, которая линкуется к каждому модулю.
Линковаться с libsane у модулей не принято. Видимо, потому что это libsane подгружает модуль, и никаких требований к этому модулю не предъявляется (касательно версии libsane). В совокупности выглядит как средство обеспечить высокий уровень переносимости модулей.

$ cd lib
$ ls -1
alloca.c
getenv.c
getopt1.c
getopt.c
inet_ntop.c
inet_pton.c
Makefile.am
md5.c
sigprocmask.c
sleep.c
snprintf.c
strcasestr.c
strdup.c
strndup.c
strsep.c
syslog.c
usleep.c
vsyslog.c


$ cat Makefile.am
##  Makefile.am -- an automake template for Makefile.in file
##  Copyright (C) 2009 Chris Bagwell and Sane Developers.
##
##  This file is part of the "Sane" build infra-structure.  See
##  included LICENSE file for license information.
AM_CPPFLAGS += -I. -I$(top_builddir)/include -I$(top_srcdir)/include

noinst_LTLIBRARIES = liblib.la

liblib_la_SOURCES  = md5.c
liblib_la_CPPFLAGS = -I$(top_srcdir)/include
liblib_la_LIBADD   = $(LTALLOCA) $(LTLIBOBJS)
Comment 2 Dmitry V. Levin 2024-06-05 00:04:51 MSK
Ошибка в дизайне библиотеки - это же ещё большая ошибка, чем оплошность в реализации.