Hi David

I always get the same error about project.license when I compile from
source by python setup.py or pip

=======> name: python-efl
=======> version: 1.26.1
=======> release: 10
=======> WARNING: python-efl1755521615x86_64.cards.tar.xz already exist
=======> WARNING: python-efl.sources1755521615any.cards.tar.xz already exist
=======> Building starting...
+ prepare
+ git clone https://git.enlightenment.org/enlightenment/python-efl
python-efl-1.26.1
Cloning into 'python-efl-1.26.1'...
remote: Enumerating objects: 160, done.
remote: Counting objects: 100% (160/160), done.
remote: Compressing objects: 100% (138/138), done.
remote: Total 14514 (delta 53), reused 90 (delta 19)        s
Receiving objects: 100% (14514/14514), 14.59 MiB | 1.72 MiB/s, done.
Resolving deltas: 100% (10923/10923), done.
+ cd python-efl-1.26.1
+ git checkout eeba58256d324865c2be2c8c41be30e5cb538d52
Note: switching to 'eeba58256d324865c2be2c8c41be30e5cb538d52'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at eeba582 setup.py: silence pyright warnings
+ build
+ cd python-efl-1.26.1
+ python3 setup.py build
Using Cython 3.0.11
Checking for Eina: OK, found 1.28.99
Checking for Eo: OK, found 1.28.99
Checking for Evas: OK, found 1.28.99
Checking for Ecore: OK, found 1.28.99
Checking for EcoreFile: OK, found 1.28.99
Checking for EcoreInput: OK, found 1.28.99
Checking for EcoreCon: OK, found 1.28.99
Checking for EcoreX: OK, found 1.28.99
Checking for Ethumb: OK, found 1.28.99
Checking for Ethumb_Client: OK, found 1.28.99
Checking for Edje: OK, found 1.28.99
Checking for Emotion: OK, found 1.28.99
Checking for DBus: OK, found 1.3.2
Checking for Elementary: OK, found 1.28.99
Compiling src/efl/eo.pyx because it changed.
Compiling src/efl/utils/deprecated.pyx because it changed.
Compiling src/efl/utils/conversions.pyx because it changed.
Compiling src/efl/utils/logger.pyx because it changed.
Compiling src/efl/evas.pyx because it changed.
Compiling src/efl/ecore.pyx because it changed.
Compiling src/efl/ecore_input.pyx because it changed.
Compiling src/efl/ecore_con.pyx because it changed.
Compiling src/efl/ecore_x.pyx because it changed.
Compiling src/efl/ethumb.pyx because it changed.
Compiling src/efl/ethumb_client.pyx because it changed.
Compiling src/efl/edje.pyx because it changed.
Compiling src/efl/edje_edit.pyx because it changed.
Compiling src/efl/emotion.pyx because it changed.
Compiling src/efl/dbus_mainloop.pyx because it changed.
Compiling src/efl/elementary/__init__.pyx because it changed.
[ 1/16] Cythonizing src/efl/dbus_mainloop.pyx
[ 2/16] Cythonizing src/efl/ecore.pyx
[ 3/16] Cythonizing src/efl/ecore_con.pyx
[ 4/16] Cythonizing src/efl/ecore_input.pyx
[ 5/16] Cythonizing src/efl/ecore_x.pyx
[ 6/16] Cythonizing src/efl/edje.pyx
warning: src/efl/edje_object.pxi:901:17: Assigning to 'char *' from
'const char *' discards const qualifier
warning: src/efl/edje_object.pxi:953:17: Assigning to 'char *' from
'const char *' discards const qualifier
[ 7/16] Cythonizing src/efl/edje_edit.pyx
[ 8/16] Cythonizing src/efl/elementary/__init__.pyx
[ 9/16] Cythonizing src/efl/emotion.pyx
[10/16] Cythonizing src/efl/eo.pyx
[11/16] Cythonizing src/efl/ethumb.pyx
[12/16] Cythonizing src/efl/ethumb_client.pyx
[13/16] Cythonizing src/efl/evas.pyx
[14/16] Cythonizing src/efl/utils/conversions.pyx
[15/16] Cythonizing src/efl/utils/deprecated.pyx
[16/16] Cythonizing src/efl/utils/logger.pyx
configuration error: `project.license` must be valid exactly by one
definition (2 matches found):

    - keys:
        'file': {type: string}
      required: ['file']
    - keys:
        'text': {type: string}
      required: ['text']

DESCRIPTION:
    `Project license <https://peps.python.org/pep-0621/#license>`_.

GIVEN VALUE:
    "LGPL-3.0-only"

OFFENDING RULE: 'oneOf'

DEFINITION:
    {
        "oneOf": [
            {
                "properties": {
                    "file": {
                        "type": "string",
                        "$$description": [
                            "Relative path to the file (UTF-8) which
contains the license for the",
                            "project."
                        ]
                    }
                },
                "required": [
                    "file"
                ]
            },
            {
                "properties": {
                    "text": {
                        "type": "string",
                        "$$description": [
                            "The license of the project whose meaning
is that of the",
                            "`License field from the core metadata",

"<https://packaging.python.org/specifications/core-metadata/#license>`_."
                        ]
                    }
                },
                "required": [
                    "text"
                ]
            }
        ]
    }
Traceback (most recent call last):
  File "/tmp/work/src/python-efl-1.26.1/setup.py", line 245, in <module>
    dist = setup(
           ^^^^^^
  File "/usr/lib/python3.12/site-packages/setuptools/__init__.py",
line 117, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/setuptools/_distutils/core.py",
line 157, in setup
    dist.parse_config_files()
  File "/usr/lib/python3.12/site-packages/setuptools/dist.py", line
655, in parse_config_files
    pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
  File "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
line 71, in apply_configuration
    config = read_configuration(filepath, True, ignore_option_errors, dist)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
line 139, in read_configuration
    validate(subset, filepath)
  File "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
line 60, in validate
    raise ValueError(f"{error}\n{summary}") from None
ValueError: invalid pyproject.toml config: `project.license`.
configuration error: `project.license` must be valid exactly by one
definition (2 matches found):

    - keys:
        'file': {type: string}
      required: ['file']
    - keys:
        'text': {type: string}
      required: ['text']

=======> ERROR: Building 'python-efl.sources1755521615any.cards.tar.xz' failed.

It indicates that the error is in pyproject.toml

I suppose it's here in pyproject.toml

[project]
dynamic = ['version']
name = 'python-efl'
requires-python = '>= 3.6'
description = 'Python bindings for Enlightenment Foundation Libraries'
readme = 'README.md'
license = 'LGPL-3.0-only'
license-files = ['COPYING', 'COPYING.LESSER']

Best regards

Daniel

Le mer. 20 août 2025 à 11:58, daniel antoine <[email protected]> a écrit :
>
> Hi Davide
>
> I have tried to compile to the last commits with setup.py and pip and
> I get the same error about project. license
>
> HEAD is now at 11623c1 Modernize build: Uninstall is no more
> + build
> + cd python-efl-1.26.1
> + pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir
> /tmp/work/src/python-efl-1.26.1
> Processing /tmp/work/src/python-efl-1.26.1
>   Preparing metadata (pyproject.toml) ... error
>   error: subprocess-exited-with-error
>
>   × Preparing metadata (pyproject.toml) did not run successfully.
>   │ exit code: 1
>   ╰─> [91 lines of output]
>       Python-EFL: 1.26.99a1266
>       Checking for Python: OK, found 3.12.7
>       configuration error: `project.license` must be valid exactly by
> one definition (2 matches found):
>
>           - keys:
>               'file': {type: string}
>             required: ['file']
>           - keys:
>               'text': {type: string}
>             required: ['text']
>
>       DESCRIPTION:
>           `Project license <https://peps.python.org/pep-0621/#license>`_.
>
>       GIVEN VALUE:
>           "LGPL-3.0-only"
>
>       OFFENDING RULE: 'oneOf'
>
>       DEFINITION:
>           {
>               "oneOf": [
>                   {
>                       "properties": {
>                           "file": {
>                               "type": "string",
>                               "$$description": [
>                                   "Relative path to the file (UTF-8)
> which contains the license for the",
>                                   "project."
>                               ]
>                           }
>                       },
>                       "required": [
>                           "file"
>                       ]
>                   },
>                   {
>                       "properties": {
>                           "text": {
>                               "type": "string",
>                               "$$description": [
>                                   "The license of the project whose
> meaning is that of the",
>                                   "`License field from the core metadata",
>
> "<https://packaging.python.org/specifications/core-metadata/#license>`_."
>                               ]
>                           }
>                       },
>                       "required": [
>                           "text"
>                       ]
>                   }
>               ]
>           }
>       Traceback (most recent call last):
>         File 
> "/usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py",
> line 353, in <module>
>           main()
>         File 
> "/usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py",
> line 335, in main
>           json_out['return_val'] = hook(**hook_input['kwargs'])
>                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>         File 
> "/usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py",
> line 149, in prepare_metadata_for_build_wheel
>           return hook(metadata_directory, config_settings)
>                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>         File "/usr/lib/python3.12/site-packages/setuptools/build_meta.py",
> line 376, in prepare_metadata_for_build_wheel
>           self.run_setup()
>         File "/usr/lib/python3.12/site-packages/setuptools/build_meta.py",
> line 319, in run_setup
>           exec(code, locals())
>         File "<string>", line 379, in <module>
>         File "/usr/lib/python3.12/site-packages/setuptools/__init__.py",
> line 117, in setup
>           return distutils.core.setup(**attrs)
>                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>         File 
> "/usr/lib/python3.12/site-packages/setuptools/_distutils/core.py",
> line 157, in setup
>           dist.parse_config_files()
>         File "/usr/lib/python3.12/site-packages/setuptools/dist.py",
> line 655, in parse_config_files
>           pyprojecttoml.apply_configuration(self, filename,
> ignore_option_errors)
>         File 
> "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
> line 71, in apply_configuration
>           config = read_configuration(filepath, True,
> ignore_option_errors, dist)
>
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>         File 
> "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
> line 139, in read_configuration
>           validate(subset, filepath)
>         File 
> "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
> line 60, in validate
>           raise ValueError(f"{error}\n{summary}") from None
>       ValueError: invalid pyproject.toml config: `project.license`.
>       configuration error: `project.license` must be valid exactly by
> one definition (2 matches found):
>
>           - keys:
>               'file': {type: string}
>             required: ['file']
>           - keys:
>               'text': {type: string}
>             required: ['text']
>
>       [end of output]
>
>   note: This error originates from a subprocess, and is likely not a
> problem with pip.
>
> [notice] A new release of pip is available: 24.2 -> 25.2
> [notice] To update, run: pip3 install --upgrade pip
> error: metadata-generation-failed
>
> Best regards
>
> Daniel
>
> Le mar. 19 août 2025 à 17:21, daniel antoine <[email protected]> a écrit :
> >
> > Hi Davide
> > my receipt for python-efl
> >
> > makedepends=(cython dbus-python efl git libsndfile pulseaudio
> > python-packaging python-setuptools)
> >
> > description="python 3 bindings for the Enlightenment Foundation Libraries"
> > url="http://www.enlightenment.org";
> >
> > packager="Grat-OS Team"
> > maintainer="Dania"
> >
> > name=python-efl
> > version=1.26.1
> > release=9
> >
> > #source=(http://download.enlightenment.org/rel/bindings/python/$name-$version.tar.xz)
> >
> > #Last commit on python-efl repo
> > #_commit=5accd9350bc4dc2bf1d06bde847a605264c2e78b
> > _commit=701c912a7baa524301d82a87fd9108d293b74664
> >
> > prepare() {
> > git clone  https://git.enlightenment.org/enlightenment/python-efl 
> > $name-$version
> >
> > cd $name-$version
> > git checkout ${_commit}
> > }
> >
> > build() {
> >  cd ${name}-$version
> >
> >    python3 setup.py build
> >    python3 setup.py install --root=$PKG --optimize=1 --skip-build
> > }
> >
> > Best regards
> >
> > Daniel
> >
> > Le mar. 19 août 2025 à 14:29, Davide Andreoli <[email protected]> a 
> > écrit :
> > >
> > >
> > >
> > >
> > >
> > >
> > > lunedì 18 agosto 2025 15:16, daniel antoine <[email protected]> ha 
> > > scritto:
> > >
> > > >
> > > >
> > > > Hi Dave
> > > >
> > > > I try to compile python-efl with the last commit 701c912a7b but I
> > > > ranil an error at [16/16] Cythonizing efl/utils/logger.pyx
> > > >
> > > > I get
> > > >
> > > > [16/16] Cythonizing efl/utils/logger.pyx
> > > > warning: efl/utils/logger.pyx:1:0: Dotted filenames
> > > > ('efl.utils.logger.pxd') are deprecated. Please use the normal Python
> > > > package directory layout.
> > > > warning: efl/utils/logger.pyx:18:0: Dotted filenames ('efl.eina.pxd')
> > > > are deprecated. Please use the normal Python package directory layout.
> > > > configuration error: `project.license` must be valid exactly by one
> > > > definition (2 matches found):
> > > >
> > > > - keys:
> > > > 'file': {type: string}
> > > > required: ['file']
> > > > - keys:
> > > > 'text': {type: string}
> > > > required: ['text']
> > > >
> > > > DESCRIPTION:
> > > > `Project license <https://peps.python.org/pep-0621/#license>`_.
> > > >
> > > >
> > > > GIVEN VALUE:
> > > > "LGPL-3.0-only"
> > > >
> > > > OFFENDING RULE: 'oneOf'
> > > >
> > > > DEFINITION:
> > > > {
> > > > "oneOf": [
> > > > {
> > > > "properties": {
> > > > "file": {
> > > > "type": "string",
> > > > "$$description": [
> > > > "Relative path to the file (UTF-8) which
> > > > contains the license for the",
> > > > "project."
> > > > ]
> > > > }
> > > > },
> > > > "required": [
> > > > "file"
> > > > ]
> > > > },
> > > > {
> > > > "properties": {
> > > > "text": {
> > > > "type": "string",
> > > > "$$description": [
> > > > "The license of the project whose meaning
> > > > is that of the",
> > > > "`License field from the core metadata", 
> > > > "<https://packaging.python.org/specifications/core-metadata/#license>`_."
> > > >
> > > > ]
> > > > }
> > > > },
> > > > "required": [
> > > > "text"
> > > > ]
> > > > }
> > > > ]
> > > > }
> > > > Traceback (most recent call last):
> > > > File "/tmp/work/src/python-efl-1.26.1/setup.py", line 437, in <module>
> > > >
> > > > setup(
> > > > File "/usr/lib/python3.12/site-packages/setuptools/init.py",
> > > > line 117, in setup
> > > > return distutils.core.setup(**attrs)
> > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > File "/usr/lib/python3.12/site-packages/setuptools/_distutils/core.py",
> > > > line 157, in setup
> > > > dist.parse_config_files()
> > > > File "/usr/lib/python3.12/site-packages/setuptools/dist.py", line
> > > > 655, in parse_config_files
> > > > pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
> > > > File 
> > > > "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
> > > > line 71, in apply_configuration
> > > > config = read_configuration(filepath, True, ignore_option_errors, dist)
> > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > File 
> > > > "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
> > > > line 139, in read_configuration
> > > > validate(subset, filepath)
> > > > File 
> > > > "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py",
> > > > line 60, in validate
> > > > raise ValueError(f"{error}\n{summary}") from None
> > > > ValueError: invalid pyproject.toml config: `project.license`.
> > > > configuration error: `project.license` must be valid exactly by one
> > > > definition (2 matches found):
> > > >
> > > > - keys:
> > > > 'file': {type: string}
> > > > required: ['file']
> > > > - keys:
> > > > 'text': {type: string}
> > > > required: ['text']
> > > >
> > > > =======> ERROR: Building 'python-efl.sources1755228613any.cards.tar.xz' 
> > > > failed.
> > > >
> > > >
> > > > it refres to two licenses ?
> > > >
> > > > The compile is ok with commit 5accd9350b
> > >
> > > Hi, I'm working on the build system in these days.
> > > How are you building? The goal is to use modern python packaging, so you 
> > > should be able to build using:
> > > python -m build
> > > and then install the generated wheel using pip.
> > >
> > > But I'm still working on this, will update all the docs asap.
> > >
> > > >
> > > > Bets regards
> > > >
> > > > Daniel


_______________________________________________
enlightenment-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to