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
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/
(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)?
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.