Bug 244521

Summary: www/firefox, mail/thunderbird, and other gecko software: require py-sqlite3, but uses py27-sqlite3 instead py37-sqlite3
Product: Ports & Packages Reporter: Vladimir Druzenko <vvd>
Component: Individual Port(s)Assignee: freebsd-gecko (Nobody) <gecko>
Status: Closed FIXED    
Severity: Affects Some People Flags: bugzilla: maintainer-feedback? (gecko)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   

Description Vladimir Druzenko freebsd_committer freebsd_triage 2020-02-29 17:31:49 UTC
Mk/bsd.gecko.mk have:
USES+=          python:2.7,build

www/firefox/Makefile and mail/thunderbird/Makefile have:
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}

But it uses python2 FLAVOUR for this dependency instead python3.

Dirty hack:
-${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
+py37-sqlite3>0:databases/py-sqlite3@py37 \

How to set FLAVOR in default python correctly?
Comment 1 commit-hook freebsd_committer freebsd_triage 2020-02-29 22:53:34 UTC
A commit references this bug:

Author: jbeich
Date: Sat Feb 29 22:53:10 UTC 2020
New revision: 527481
URL: https://svnweb.freebsd.org/changeset/ports/527481

Log:
  www/firefox: drop py-sqlite3 dependency

  Not used during build anymore but still required for testing.

  PR:		244521

Changes:
  head/mail/thunderbird/Makefile
  head/www/cliqz/Makefile
  head/www/firefox/Makefile
  head/www/firefox-esr/Makefile
Comment 2 commit-hook freebsd_committer freebsd_triage 2020-03-03 20:55:25 UTC
A commit references this bug:

Author: jbeich
Date: Tue Mar  3 20:55:16 UTC 2020
New revision: 527731
URL: https://svnweb.freebsd.org/changeset/ports/527731

Log:
  www/cliqz: revert r527481 for this port

  ***** Building *****
  + ./mach build
  Traceback (most recent call last):
    File "./mach", line 269, in <module>
      main(sys.argv[1:])
    File "./mach", line 261, in main
      mach = get_mach()
    File "./mach", line 251, in get_mach
      mach = check_and_get_mach(dir_path)
    File "./mach", line 207, in check_and_get_mach
      return load_mach(dir_path, mach_path)
    File "./mach", line 195, in load_mach
      return mach_bootstrap.bootstrap(dir_path)
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 399, in bootstrap
      driver.load_commands_from_file(os.path.join(mozilla_dir, path))
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/python/mach/mach/main.py", line 267, in load_commands_from_file
      imp.load_source(module_name, path)
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/remote/mach_commands.py", line 30, in <module>
      import mozprofile
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 431, in __call__
      module = self._original_import(name, globals, locals, fromlist, level)
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/testing/mozbase/mozprofile/mozprofile/__init__.py", line 17, in <module>
      from mozprofile.cli import *
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 431, in __call__
      module = self._original_import(name, globals, locals, fromlist, level)
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/testing/mozbase/mozprofile/mozprofile/cli.py", line 18, in <module>
      from .profile import FirefoxProfile
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 431, in __call__
      module = self._original_import(name, globals, locals, fromlist, level)
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/testing/mozbase/mozprofile/mozprofile/profile.py", line 20, in <module>
      from .permissions import Permissions
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 431, in __call__
      module = self._original_import(name, globals, locals, fromlist, level)
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/testing/mozbase/mozprofile/mozprofile/permissions.py", line 14, in <module>
      import sqlite3
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 431, in __call__
      module = self._original_import(name, globals, locals, fromlist, level)
    File "/usr/local/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
      from dbapi2 import *
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 431, in __call__
      module = self._original_import(name, globals, locals, fromlist, level)
    File "/usr/local/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
      from _sqlite3 import *
    File "/usr/ports/www/cliqz/work/browser-f-1.33.0/mozilla-release/build/mach_bootstrap.py", line 431, in __call__
      module = self._original_import(name, globals, locals, fromlist, level)
  ImportError: No module named _sqlite3
  *** Error code 1

  PR:		244521
  Reported by:	fox (maintainer), pkg-fallout
  Point hat to:	jbeich (forgot to pass "-C" to poudriere bulk)

Changes:
  head/www/cliqz/Makefile
Comment 3 Jan Beich freebsd_committer freebsd_triage 2020-03-04 00:37:26 UTC
(In reply to VVD from comment #0)
> But it uses python2 FLAVOUR for this dependency instead python3.

If py-sqlite3 is really used like in www/cliqz (due to mach) then python3 flavor won't work. Firefox (and forks) only supports running build system with python2 as python3 support isn't complete yet.