$OpenBSD: patch-setup_py,v 1.1 2021/07/21 15:29:53 sthen Exp $

From 166f61ad73e486da34ae554107c7cb6e224bf5f8 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz@archlinux.org>
Date: Wed, 3 Mar 2021 00:18:29 -0500
Subject: [PATCH] setup: do not use deprecated and removed 'Feature' feature

Emulate it using environment variables instead. $GENSHI_BUILD_SPEEDUP is
checked for existence and parsed as an integer boolean, with invalid
values defaulting (loudly) to 0.

Fixes #36

Index: setup.py
--- setup.py.orig
+++ setup.py
@@ -19,11 +19,10 @@ import doctest
 from glob import glob
 import os
 try:
-    from setuptools import setup, Extension, Feature
+    from setuptools import setup, Extension
     from setuptools.command.bdist_egg import bdist_egg
 except ImportError:
     from distutils.core import setup, Extension
-    Feature = None
     bdist_egg = None
 import sys
 
@@ -64,22 +63,22 @@ available.""")
         print(exc)
 
 
-if Feature:
-    # Optional C extension module for speeding up Genshi:
-    # Not activated by default on:
-    # - PyPy (where it harms performance)
-    # - CPython >= 3.3 (the new Unicode C API is not supported yet)
-    speedups = Feature(
-        "optional C speed-enhancements",
-        standard = not is_pypy,
-        ext_modules = [
-            Extension('genshi._speedups', ['genshi/_speedups.c']),
-        ],
-    )
-else:
-    speedups = None
+# Optional C extension module for speeding up Genshi
+# Not activated by default on:
+# - PyPy (where it harms performance)
+_speedup_enable_default = 0 if is_pypy else 1
+try:
+    _speedup_enabled = int(os.getenv('GENSHI_BUILD_SPEEDUP', _speedup_enable_default))
+except ValueError:
+    import warnings
+    warnings.warn('GENSHI_BUILD_SPEEDUP was defined to something other than 0 or 1; defaulting to not build...')
+    _speedup_enabled = False
 
+ext_modules = []
+if _speedup_enabled:
+    ext_modules.append(Extension('genshi._speedups', ['genshi/_speedups.c']))
 
+
 # Setuptools need some help figuring out if the egg is "zip_safe" or not
 if bdist_egg:
     class my_bdist_egg(bdist_egg):
@@ -156,7 +155,7 @@ feature is a template language, which is heavily inspi
     genshi-text = genshi.template.plugin:TextTemplateEnginePlugin[plugin]
     """,
 
-    features = {'speedups': speedups},
+    ext_modules = ext_modules,
     cmdclass = cmdclass,
 
     **extra
