Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 716692 - app-antivirus/fangfrisch: needs sqlite use dependency
Summary: app-antivirus/fangfrisch: needs sqlite use dependency
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Ralph Seichter
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-08 13:29 UTC by Tobias Sager
Modified: 2020-04-09 20:18 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Sager 2020-04-08 13:29:40 UTC
fangfrisch has a need for sqlite and fails with below error on a system without the sqlite use enabled. 

Error on initdb:
fangfrisch -c /etc/fangfrisch.conf initdb
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.7/fangfrisch", line 11, in <module>
    load_entry_point('fangfrisch==1.2.0', 'console_scripts', 'fangfrisch')()
  File "/usr/lib/python3.7/site-packages/fangfrisch/__main__.py", line 61, in main
    DbMeta().create_metadata(args.force)
  File "/usr/lib/python3.7/site-packages/fangfrisch/db.py", line 91, in create_metadata
    DbMeta.init(create_all=True, drop_all=force)
  File "/usr/lib/python3.7/site-packages/fangfrisch/db.py", line 67, in init
    cls._engine = create_engine(db_url, echo=False)
  File "/usr/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py", line 479, in create_engine
    return strategy.create(*args, **kwargs)
  File "/usr/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 87, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/usr/lib/python3.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py", line 382, in dbapi
    from sqlite3 import dbapi2 as sqlite

Workaround:
- Adding use sqlite to sqlalchemy and (subsequently) all python versions fixes the problem.

Resolution:
- ebuild should have sqlite as use requirement (PYTHON_REQ_USE?).




My emerge --info:
=================================================================
System uname: Linux-5.4.28-gentoo-x86_64-Common_KVM_processor-with-gentoo-2.6
KiB Mem:     2036732 total,    414960 free
KiB Swap:    2097148 total,   2083324 free
Timestamp of repository gentoo: Wed, 08 Apr 2020 02:00:01 +0000
Head commit of repository gentoo: fba8457413b63bb552ce4f15497cb8557158f784
sh bash 4.4_p23-r1
ld GNU ld (Gentoo 2.33.1 p2) 2.33.1
ccache version 3.7.7 [disabled]
app-shells/bash:          4.4_p23-r1::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.17-r2::gentoo, 3.6.10-r1::gentoo, 3.7.7-r1::gentoo
dev-util/ccache:          3.7.7-r1::gentoo
dev-util/cmake:           3.16.5::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.42.1::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.69-r4::gentoo
sys-devel/automake:       1.16.1-r1::gentoo
sys-devel/binutils:       2.33.1-r1::gentoo
sys-devel/gcc:            9.2.0-r2::gentoo
sys-devel/gcc-config:     2.2.1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.4::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r7::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 
    sync-rsync-verify-jobs: 1

local
    location: /usr/local/portage
    masters: gentoo

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/www/localhost/cgi-bin /var/www/localhost/htdocs /var/www/toe.ch/htdocs"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.4/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs clean-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="http://de-mirror.org/gentoo/ http://mirror.netcologne.de/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/"
LANG="en_US.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="de en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="acl acpi adns amd64 apache2 avi berkdb bzip2 crypt cxx directfb fbcon gd gdbm geoip gif gpm imagemagick imap ipv6 java jpeg libwww maildir mbox mmx mpeg mysql ncurses nls ntpl ntplonly openmp pam pdflib pear perl php png python readline sasl server slang socks5 split-usr sse sse2 ssl su tcpd tiff udev unicode usb vhosts xml xml2 zlib" ABI_X86="64" APACHE2_MODULES="actions alias auth_basic auth_digest authn_core authn_anon authn_alias authn_dbd authn_dbm authn_default authn_file authz_core authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif slotmem_shm so socache_shmcb speling status unixd unique_id userdir usertrack vhost_alias cgi" ELIBC="glibc" KERNEL="linux" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" USERLAND="GNU"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Ralph Seichter 2020-04-08 20:31:03 UTC
SQLAlchemy imports libraries depending on the "dialect" [1] used in the connection URL. Fangfrisch does not import any of these libraries and can work with any dialect supported by SQLAlchemy, so I don't think adding an sqlite USE flag is appropriate.

[1] https://docs.sqlalchemy.org/en/13/dialects/
Comment 2 Tobias Sager 2020-04-09 07:36:28 UTC
(In reply to Ralph Seichter from comment #1)
> SQLAlchemy imports libraries depending on the "dialect" [1] used in the
> connection URL. Fangfrisch does not import any of these libraries and can
> work with any dialect supported by SQLAlchemy, so I don't think adding an
> sqlite USE flag is appropriate.
> 
> [1] https://docs.sqlalchemy.org/en/13/dialects/

I see and you are right that it should not include a use. However, I believe it could let the user know that the default config needs SQLAlchemy with sqlite or an alternative driver. Maybe optfeature is the right thing to use (similar to what sqlalchemy ebuild is doing)?
Comment 3 Ralph Seichter 2020-04-09 20:18:07 UTC
The SQLAlchemy ebuilds contain IUSE="+sqlite", meaning that SQLite support will be available unless the user has explicitly disabled it. Why that would be the case is hard for me to contemplate, but it is not Fangfrisch's responsibility to deal with that situation. I *may* consider extending the post-install message with the next Fangfrisch ebuild update, but this issue is not a technical bug.