PyOpenGL-glut-binaries 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyopengl_glut_binaries-1.0.0/LICENSE +80 -0
- pyopengl_glut_binaries-1.0.0/PKG-INFO +101 -0
- pyopengl_glut_binaries-1.0.0/README.md +73 -0
- pyopengl_glut_binaries-1.0.0/pyproject.toml +106 -0
- pyopengl_glut_binaries-1.0.0/setup.cfg +4 -0
- pyopengl_glut_binaries-1.0.0/setup.py +49 -0
- pyopengl_glut_binaries-1.0.0/src/PyOpenGL_glut_binaries.egg-info/PKG-INFO +101 -0
- pyopengl_glut_binaries-1.0.0/src/PyOpenGL_glut_binaries.egg-info/SOURCES.txt +30 -0
- pyopengl_glut_binaries-1.0.0/src/PyOpenGL_glut_binaries.egg-info/dependency_links.txt +1 -0
- pyopengl_glut_binaries-1.0.0/src/PyOpenGL_glut_binaries.egg-info/requires.txt +9 -0
- pyopengl_glut_binaries-1.0.0/src/PyOpenGL_glut_binaries.egg-info/top_level.txt +1 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/GLE_WIN32_README.txt +6 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut32.vc10.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut32.vc14.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut32.vc9.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut64.vc10.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut64.vc14.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut64.vc9.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut_COPYING.txt +27 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/freeglut_README.txt +106 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle32.vc10.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle32.vc14.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle32.vc9.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle64.vc10.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle64.vc14.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle64.vc9.dll +0 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle_AUTHORS +9 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle_COPYING +368 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/DLLS/gle_COPYING.src +68 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/__init__.py +58 -0
- pyopengl_glut_binaries-1.0.0/src/pyopengl_glut_binaries/py.typed +0 -0
- pyopengl_glut_binaries-1.0.0/tests/test_what_the_package_carries.py +146 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
This licence covers the packaging in this distribution. The libraries it
|
|
2
|
+
carries are third-party works under their own terms, reproduced at the end of
|
|
3
|
+
this file and shipped in full beside the binaries themselves, in
|
|
4
|
+
src/pyopengl_glut_binaries/DLLS/.
|
|
5
|
+
|
|
6
|
+
PyOpenGL-glut-binaries License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2026, Michael C. Fletcher and Contributors
|
|
9
|
+
All rights reserved.
|
|
10
|
+
|
|
11
|
+
Redistribution and use in source and binary forms, with or without
|
|
12
|
+
modification, are permitted provided that the following conditions
|
|
13
|
+
are met:
|
|
14
|
+
|
|
15
|
+
Redistributions of source code must retain the above copyright
|
|
16
|
+
notice, this list of conditions and the following disclaimer.
|
|
17
|
+
|
|
18
|
+
Redistributions in binary form must reproduce the above
|
|
19
|
+
copyright notice, this list of conditions and the following
|
|
20
|
+
disclaimer in the documentation and/or other materials
|
|
21
|
+
provided with the distribution.
|
|
22
|
+
|
|
23
|
+
The name of Michael C. Fletcher, or the name of any Contributor,
|
|
24
|
+
may not be used to endorse or promote products derived from this
|
|
25
|
+
software without specific prior written permission.
|
|
26
|
+
|
|
27
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
28
|
+
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
29
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
30
|
+
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
31
|
+
COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
|
32
|
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
33
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
34
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
35
|
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
36
|
+
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
37
|
+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
|
38
|
+
OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
39
|
+
|
|
40
|
+
--------------------------------------------------------------------------
|
|
41
|
+
|
|
42
|
+
This distribution redistributes builds of two third-party libraries. Their
|
|
43
|
+
own terms follow; the full licence files ship beside the binaries, in
|
|
44
|
+
src/pyopengl_glut_binaries/DLLS/.
|
|
45
|
+
|
|
46
|
+
FreeGLUT (GL Utility Toolkit) is licensed under the MIT/X-Consortium License,
|
|
47
|
+
in full in freeglut_COPYING.txt:
|
|
48
|
+
|
|
49
|
+
Freeglut code without an explicit copyright is covered by the following
|
|
50
|
+
copyright:
|
|
51
|
+
|
|
52
|
+
Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
|
|
53
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
54
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
55
|
+
in the Software without restriction, including without limitation the rights
|
|
56
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
57
|
+
copies or substantial portions of the Software.
|
|
58
|
+
|
|
59
|
+
The above copyright notice and this permission notice shall be included in
|
|
60
|
+
all copies or substantial portions of the Software.
|
|
61
|
+
|
|
62
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
63
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
64
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
65
|
+
PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
66
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
67
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
68
|
+
|
|
69
|
+
Except as contained in this notice, the name of Pawel W. Olszta shall not be
|
|
70
|
+
used in advertising or otherwise to promote the sale, use or other dealings
|
|
71
|
+
in this Software without prior written authorization from Pawel W. Olszta.
|
|
72
|
+
|
|
73
|
+
GLE (GL Tubing and Extrusion) is licensed under the IBM standard example
|
|
74
|
+
source code licence, in full in gle_COPYING.src, with gle_COPYING recording
|
|
75
|
+
that the recipient may instead take it under the GPL. Copyright notice:
|
|
76
|
+
|
|
77
|
+
This software is owned by International Business Machines Corporation
|
|
78
|
+
("IBM"), or its subsidiaries or IBM's suppliers, and is copyrighted and
|
|
79
|
+
licensed, not sold. IBM retains title to the software, and grants you a
|
|
80
|
+
nonexclusive license for the software.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: PyOpenGL-glut-binaries
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Prebuilt Windows freeglut and GLE libraries for PyOpenGL
|
|
5
|
+
Author-email: "Mike C. Fletcher" <mcfletch@vrplumber.com>
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
7
|
+
Project-URL: Homepage, https://github.com/mcfletch/pyopengl-glut-binaries
|
|
8
|
+
Project-URL: Repository, https://github.com/mcfletch/pyopengl-glut-binaries
|
|
9
|
+
Project-URL: Issues, https://github.com/mcfletch/pyopengl/issues
|
|
10
|
+
Keywords: OpenGL,GLUT,freeglut,GLE,PyOpenGL,Windows
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
14
|
+
Classifier: Programming Language :: Python
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Multimedia :: Graphics :: 3D Rendering
|
|
17
|
+
Requires-Python: >=3.9
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Provides-Extra: test
|
|
21
|
+
Requires-Dist: pytest; extra == "test"
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: pyopengl-glut-binaries[test]; extra == "dev"
|
|
24
|
+
Requires-Dist: mypy; extra == "dev"
|
|
25
|
+
Requires-Dist: ruff; extra == "dev"
|
|
26
|
+
Requires-Dist: build; extra == "dev"
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
# PyOpenGL-glut-binaries
|
|
30
|
+
|
|
31
|
+
Prebuilt Windows freeglut and GLE libraries for [PyOpenGL](
|
|
32
|
+
https://github.com/mcfletch/pyopengl).
|
|
33
|
+
|
|
34
|
+
`OpenGL.GLUT` and `OpenGL.GLE` wrap two C libraries that Windows does not
|
|
35
|
+
ship. This distribution carries builds of both, so a Windows user gets them
|
|
36
|
+
by asking:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
pip install PyOpenGL[glut]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Nothing to call and nothing to configure: PyOpenGL finds the directory itself.
|
|
43
|
+
A freeglut the *system* provides still wins over these, because a user who
|
|
44
|
+
installed their own meant it.
|
|
45
|
+
|
|
46
|
+
## Why it is a package of its own
|
|
47
|
+
|
|
48
|
+
The same builds shipped inside PyOpenGL itself, in every wheel on every
|
|
49
|
+
platform, so a Linux server rendering headlessly through EGL downloaded six
|
|
50
|
+
freeglut builds it could never load. As a separate, platform-tagged
|
|
51
|
+
distribution they reach the machines that can use them and no others, and a
|
|
52
|
+
scanner that objects to a decade-old vendored binary objects to a package only
|
|
53
|
+
GLUT users install rather than to PyOpenGL.
|
|
54
|
+
|
|
55
|
+
## What is here
|
|
56
|
+
|
|
57
|
+
Six builds of each library, because PyOpenGL asks for one exact name composed
|
|
58
|
+
from the running interpreter's word size and compiler generation:
|
|
59
|
+
|
|
60
|
+
| | 32-bit | 64-bit |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| **vc9** (Visual Studio 2008) | `freeglut32.vc9.dll`, `gle32.vc9.dll` | `freeglut64.vc9.dll`, `gle64.vc9.dll` |
|
|
63
|
+
| **vc10** (Visual Studio 2010) | `freeglut32.vc10.dll`, `gle32.vc10.dll` | `freeglut64.vc10.dll`, `gle64.vc10.dll` |
|
|
64
|
+
| **vc14** (Visual Studio 2015 and later) | `freeglut32.vc14.dll`, `gle32.vc14.dll` | `freeglut64.vc14.dll`, `gle64.vc14.dll` |
|
|
65
|
+
|
|
66
|
+
Both the `win32` and the `win_amd64` wheel carry all twelve, along with the
|
|
67
|
+
upstream licence and readme files. The word sizes are not split between the
|
|
68
|
+
two wheels: a split would halve the download and is a change to make on its
|
|
69
|
+
own, where a regression in it is attributable.
|
|
70
|
+
|
|
71
|
+
## Using it directly
|
|
72
|
+
|
|
73
|
+
PyOpenGL is the intended caller, but the path is public:
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from pyopengl_glut_binaries import DLL_DIRECTORY
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`BUILDS` lists the base names above and `LIBRARIES` says where each library
|
|
80
|
+
came from.
|
|
81
|
+
|
|
82
|
+
## Licensing
|
|
83
|
+
|
|
84
|
+
The packaging is BSD-licensed; see `LICENSE`. The libraries are third-party
|
|
85
|
+
works under their own terms, which ship beside them in
|
|
86
|
+
`src/pyopengl_glut_binaries/DLLS/`:
|
|
87
|
+
|
|
88
|
+
- **freeglut** — 3.0.0-1.mp for MSVC, Martin Payne's build.
|
|
89
|
+
[freeglut](http://freeglut.sourceforge.net/) upstream publishes source
|
|
90
|
+
rather than Windows binaries. X-Consortium licence, in
|
|
91
|
+
`freeglut_COPYING.txt`.
|
|
92
|
+
- **GLE** — the tubing and extrusion library, built as a Windows DLL. See
|
|
93
|
+
`gle_COPYING`, `gle_COPYING.src` and `gle_AUTHORS`.
|
|
94
|
+
|
|
95
|
+
## Releases
|
|
96
|
+
|
|
97
|
+
A push to `main` runs the tests; if they are green and `__version__` in
|
|
98
|
+
`src/pyopengl_glut_binaries/__init__.py` is not already on PyPI, the wheels and
|
|
99
|
+
the sdist are built and published. Bumping the version is what cuts a release.
|
|
100
|
+
|
|
101
|
+
Issues go to [the PyOpenGL tracker](https://github.com/mcfletch/pyopengl/issues).
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# PyOpenGL-glut-binaries
|
|
2
|
+
|
|
3
|
+
Prebuilt Windows freeglut and GLE libraries for [PyOpenGL](
|
|
4
|
+
https://github.com/mcfletch/pyopengl).
|
|
5
|
+
|
|
6
|
+
`OpenGL.GLUT` and `OpenGL.GLE` wrap two C libraries that Windows does not
|
|
7
|
+
ship. This distribution carries builds of both, so a Windows user gets them
|
|
8
|
+
by asking:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
pip install PyOpenGL[glut]
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Nothing to call and nothing to configure: PyOpenGL finds the directory itself.
|
|
15
|
+
A freeglut the *system* provides still wins over these, because a user who
|
|
16
|
+
installed their own meant it.
|
|
17
|
+
|
|
18
|
+
## Why it is a package of its own
|
|
19
|
+
|
|
20
|
+
The same builds shipped inside PyOpenGL itself, in every wheel on every
|
|
21
|
+
platform, so a Linux server rendering headlessly through EGL downloaded six
|
|
22
|
+
freeglut builds it could never load. As a separate, platform-tagged
|
|
23
|
+
distribution they reach the machines that can use them and no others, and a
|
|
24
|
+
scanner that objects to a decade-old vendored binary objects to a package only
|
|
25
|
+
GLUT users install rather than to PyOpenGL.
|
|
26
|
+
|
|
27
|
+
## What is here
|
|
28
|
+
|
|
29
|
+
Six builds of each library, because PyOpenGL asks for one exact name composed
|
|
30
|
+
from the running interpreter's word size and compiler generation:
|
|
31
|
+
|
|
32
|
+
| | 32-bit | 64-bit |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| **vc9** (Visual Studio 2008) | `freeglut32.vc9.dll`, `gle32.vc9.dll` | `freeglut64.vc9.dll`, `gle64.vc9.dll` |
|
|
35
|
+
| **vc10** (Visual Studio 2010) | `freeglut32.vc10.dll`, `gle32.vc10.dll` | `freeglut64.vc10.dll`, `gle64.vc10.dll` |
|
|
36
|
+
| **vc14** (Visual Studio 2015 and later) | `freeglut32.vc14.dll`, `gle32.vc14.dll` | `freeglut64.vc14.dll`, `gle64.vc14.dll` |
|
|
37
|
+
|
|
38
|
+
Both the `win32` and the `win_amd64` wheel carry all twelve, along with the
|
|
39
|
+
upstream licence and readme files. The word sizes are not split between the
|
|
40
|
+
two wheels: a split would halve the download and is a change to make on its
|
|
41
|
+
own, where a regression in it is attributable.
|
|
42
|
+
|
|
43
|
+
## Using it directly
|
|
44
|
+
|
|
45
|
+
PyOpenGL is the intended caller, but the path is public:
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
from pyopengl_glut_binaries import DLL_DIRECTORY
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`BUILDS` lists the base names above and `LIBRARIES` says where each library
|
|
52
|
+
came from.
|
|
53
|
+
|
|
54
|
+
## Licensing
|
|
55
|
+
|
|
56
|
+
The packaging is BSD-licensed; see `LICENSE`. The libraries are third-party
|
|
57
|
+
works under their own terms, which ship beside them in
|
|
58
|
+
`src/pyopengl_glut_binaries/DLLS/`:
|
|
59
|
+
|
|
60
|
+
- **freeglut** — 3.0.0-1.mp for MSVC, Martin Payne's build.
|
|
61
|
+
[freeglut](http://freeglut.sourceforge.net/) upstream publishes source
|
|
62
|
+
rather than Windows binaries. X-Consortium licence, in
|
|
63
|
+
`freeglut_COPYING.txt`.
|
|
64
|
+
- **GLE** — the tubing and extrusion library, built as a Windows DLL. See
|
|
65
|
+
`gle_COPYING`, `gle_COPYING.src` and `gle_AUTHORS`.
|
|
66
|
+
|
|
67
|
+
## Releases
|
|
68
|
+
|
|
69
|
+
A push to `main` runs the tests; if they are green and `__version__` in
|
|
70
|
+
`src/pyopengl_glut_binaries/__init__.py` is not already on PyPI, the wheels and
|
|
71
|
+
the sdist are built and published. Bumping the version is what cuts a release.
|
|
72
|
+
|
|
73
|
+
Issues go to [the PyOpenGL tracker](https://github.com/mcfletch/pyopengl/issues).
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
# setuptools 70.1 is the floor for `setuptools.command.bdist_wheel`, which
|
|
3
|
+
# setup.py subclasses to tag the wheel; 77 is what the rest of this workspace
|
|
4
|
+
# builds with, so the floor is set there rather than lower.
|
|
5
|
+
requires = ["setuptools>=77"]
|
|
6
|
+
build-backend = "setuptools.build_meta"
|
|
7
|
+
|
|
8
|
+
[project]
|
|
9
|
+
name = "PyOpenGL-glut-binaries"
|
|
10
|
+
# Read from src/pyopengl_glut_binaries/__init__.py -- see
|
|
11
|
+
# [tool.setuptools.dynamic] below. One definition, because
|
|
12
|
+
# .github/workflows/release.yml decides whether to publish by reading
|
|
13
|
+
# `__version__`, and a second copy here that drifted from it would mean the
|
|
14
|
+
# version checked against PyPI was not the version built.
|
|
15
|
+
dynamic = ["version"]
|
|
16
|
+
description = "Prebuilt Windows freeglut and GLE libraries for PyOpenGL"
|
|
17
|
+
readme = "README.md"
|
|
18
|
+
license = "BSD-3-Clause"
|
|
19
|
+
license-files = ["LICENSE"]
|
|
20
|
+
# The DLLs are loaded through ctypes, so no interpreter is excluded by them.
|
|
21
|
+
# The floor is PyOpenGL's own, since nothing else installs this.
|
|
22
|
+
requires-python = ">=3.9"
|
|
23
|
+
authors = [
|
|
24
|
+
{ name = "Mike C. Fletcher", email = "mcfletch@vrplumber.com" }
|
|
25
|
+
]
|
|
26
|
+
keywords = ["OpenGL", "GLUT", "freeglut", "GLE", "PyOpenGL", "Windows"]
|
|
27
|
+
classifiers = [
|
|
28
|
+
"Development Status :: 5 - Production/Stable",
|
|
29
|
+
"Intended Audience :: Developers",
|
|
30
|
+
"Operating System :: Microsoft :: Windows",
|
|
31
|
+
"Programming Language :: Python",
|
|
32
|
+
"Programming Language :: Python :: 3",
|
|
33
|
+
"Topic :: Multimedia :: Graphics :: 3D Rendering",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
# None. The package is data with a path constant over it, and PyOpenGL depends
|
|
37
|
+
# on this rather than the other way round -- naming PyOpenGL here would make
|
|
38
|
+
# the two require each other.
|
|
39
|
+
dependencies = []
|
|
40
|
+
|
|
41
|
+
[project.optional-dependencies]
|
|
42
|
+
test = ["pytest"]
|
|
43
|
+
dev = ["pyopengl-glut-binaries[test]", "mypy", "ruff", "build"]
|
|
44
|
+
|
|
45
|
+
[project.urls]
|
|
46
|
+
Homepage = "https://github.com/mcfletch/pyopengl-glut-binaries"
|
|
47
|
+
Repository = "https://github.com/mcfletch/pyopengl-glut-binaries"
|
|
48
|
+
Issues = "https://github.com/mcfletch/pyopengl/issues"
|
|
49
|
+
|
|
50
|
+
[tool.setuptools.dynamic]
|
|
51
|
+
version = { attr = "pyopengl_glut_binaries.__version__" }
|
|
52
|
+
|
|
53
|
+
[tool.setuptools.packages.find]
|
|
54
|
+
where = ["src"]
|
|
55
|
+
|
|
56
|
+
# Named here rather than left to `include-package-data` and a MANIFEST.in line.
|
|
57
|
+
# That default -- in another project's tool, and true only for a project
|
|
58
|
+
# configured through pyproject.toml -- is what every Windows GLUT user has
|
|
59
|
+
# depended on until now, and #127 is what it looks like when the files do not
|
|
60
|
+
# arrive. `DLLS/` holds no `__init__.py`, so `packages.find` above does not see
|
|
61
|
+
# it and this line is the only thing that ships it.
|
|
62
|
+
[tool.setuptools.package-data]
|
|
63
|
+
pyopengl_glut_binaries = ["py.typed", "DLLS/*"]
|
|
64
|
+
|
|
65
|
+
[tool.pytest.ini_options]
|
|
66
|
+
testpaths = ["tests", "src"]
|
|
67
|
+
addopts = "-ra --doctest-modules --import-mode=importlib"
|
|
68
|
+
|
|
69
|
+
[tool.ruff]
|
|
70
|
+
line-length = 100
|
|
71
|
+
target-version = "py39"
|
|
72
|
+
# `tools/` holds the recipes the binaries were built from, kept for
|
|
73
|
+
# provenance. They want Visual Studio 2008 and URLs from 2011, so nothing here
|
|
74
|
+
# can run them and a change to them cannot be tested -- which makes tidying
|
|
75
|
+
# them a silent risk rather than an improvement. They are preserved as they
|
|
76
|
+
# were. See tools/README.md.
|
|
77
|
+
exclude = ["tools"]
|
|
78
|
+
|
|
79
|
+
[tool.ruff.lint]
|
|
80
|
+
select = ["E", "W", "F", "B", "ARG", "I", "UP", "SIM", "C4", "RUF"]
|
|
81
|
+
ignore = [
|
|
82
|
+
"E501", # line too long: held by the formatter's line-length, above
|
|
83
|
+
# Diagnostics are written with `%` formatting throughout, so that the
|
|
84
|
+
# message and the values it interpolates read as two separate things.
|
|
85
|
+
"UP031",
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
[tool.ruff.format]
|
|
89
|
+
quote-style = "single"
|
|
90
|
+
exclude = ["*.md"]
|
|
91
|
+
|
|
92
|
+
[tool.mypy]
|
|
93
|
+
python_version = "3.12"
|
|
94
|
+
warn_unused_ignores = true
|
|
95
|
+
ignore_missing_imports = true
|
|
96
|
+
disallow_untyped_defs = true
|
|
97
|
+
disallow_incomplete_defs = true
|
|
98
|
+
|
|
99
|
+
# uv decides whether its cached metadata for a source tree is still current
|
|
100
|
+
# from pyproject.toml, setup.py and setup.cfg alone. The version lives in
|
|
101
|
+
# src/pyopengl_glut_binaries/__init__.py, so name that file too.
|
|
102
|
+
[tool.uv]
|
|
103
|
+
cache-keys = [
|
|
104
|
+
{ file = "pyproject.toml" },
|
|
105
|
+
{ file = "src/pyopengl_glut_binaries/__init__.py" },
|
|
106
|
+
]
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#! /usr/bin/env python3
|
|
2
|
+
"""A wheel that is platform-specific without holding an extension module.
|
|
3
|
+
|
|
4
|
+
The payload is prebuilt Windows DLLs, so the wheel this project produces has
|
|
5
|
+
to carry a platform tag: the whole reason the binaries live in a distribution
|
|
6
|
+
of their own is that a Linux or macOS install never downloads them, and only
|
|
7
|
+
the tag achieves that. setuptools decides purity from whether there are
|
|
8
|
+
extension modules to build, and there are none here -- the DLLs are data --
|
|
9
|
+
so it would produce ``py3-none-any`` and every platform would get them again.
|
|
10
|
+
|
|
11
|
+
There is nothing to compile, so the tag is the only thing this file exists for;
|
|
12
|
+
everything else about the project is declared in ``pyproject.toml``.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from setuptools import setup
|
|
16
|
+
from setuptools.command.bdist_wheel import bdist_wheel as _bdist_wheel
|
|
17
|
+
from setuptools.dist import Distribution
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class BinaryDistribution(Distribution):
|
|
21
|
+
"""A distribution whose contents are platform-specific.
|
|
22
|
+
|
|
23
|
+
``has_ext_modules`` is what ``bdist_wheel`` asks, and answering yes is what
|
|
24
|
+
makes the wheel's root impure and so gives it a platform tag.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def has_ext_modules(self):
|
|
28
|
+
return True
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class bdist_wheel(_bdist_wheel):
|
|
32
|
+
"""Tag the wheel for the platform but for no particular interpreter.
|
|
33
|
+
|
|
34
|
+
The default tag for an impure wheel names the interpreter and ABI that
|
|
35
|
+
built it -- ``cp313-cp313-win_amd64`` -- because that is what a compiled
|
|
36
|
+
extension is tied to. A DLL loaded through ctypes is tied to neither, so
|
|
37
|
+
the tag is ``py3-none-<platform>``: one wheel per platform serves every
|
|
38
|
+
Python 3 rather than one per interpreter release.
|
|
39
|
+
|
|
40
|
+
``--plat-name`` still chooses the platform, which is how a single Windows
|
|
41
|
+
runner produces both the ``win32`` and the ``win_amd64`` wheel.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
def get_tag(self):
|
|
45
|
+
_python, _abi, platform = super().get_tag()
|
|
46
|
+
return 'py3', 'none', platform
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
setup(distclass=BinaryDistribution, cmdclass={'bdist_wheel': bdist_wheel})
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: PyOpenGL-glut-binaries
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Prebuilt Windows freeglut and GLE libraries for PyOpenGL
|
|
5
|
+
Author-email: "Mike C. Fletcher" <mcfletch@vrplumber.com>
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
7
|
+
Project-URL: Homepage, https://github.com/mcfletch/pyopengl-glut-binaries
|
|
8
|
+
Project-URL: Repository, https://github.com/mcfletch/pyopengl-glut-binaries
|
|
9
|
+
Project-URL: Issues, https://github.com/mcfletch/pyopengl/issues
|
|
10
|
+
Keywords: OpenGL,GLUT,freeglut,GLE,PyOpenGL,Windows
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
14
|
+
Classifier: Programming Language :: Python
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Multimedia :: Graphics :: 3D Rendering
|
|
17
|
+
Requires-Python: >=3.9
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Provides-Extra: test
|
|
21
|
+
Requires-Dist: pytest; extra == "test"
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: pyopengl-glut-binaries[test]; extra == "dev"
|
|
24
|
+
Requires-Dist: mypy; extra == "dev"
|
|
25
|
+
Requires-Dist: ruff; extra == "dev"
|
|
26
|
+
Requires-Dist: build; extra == "dev"
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
# PyOpenGL-glut-binaries
|
|
30
|
+
|
|
31
|
+
Prebuilt Windows freeglut and GLE libraries for [PyOpenGL](
|
|
32
|
+
https://github.com/mcfletch/pyopengl).
|
|
33
|
+
|
|
34
|
+
`OpenGL.GLUT` and `OpenGL.GLE` wrap two C libraries that Windows does not
|
|
35
|
+
ship. This distribution carries builds of both, so a Windows user gets them
|
|
36
|
+
by asking:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
pip install PyOpenGL[glut]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Nothing to call and nothing to configure: PyOpenGL finds the directory itself.
|
|
43
|
+
A freeglut the *system* provides still wins over these, because a user who
|
|
44
|
+
installed their own meant it.
|
|
45
|
+
|
|
46
|
+
## Why it is a package of its own
|
|
47
|
+
|
|
48
|
+
The same builds shipped inside PyOpenGL itself, in every wheel on every
|
|
49
|
+
platform, so a Linux server rendering headlessly through EGL downloaded six
|
|
50
|
+
freeglut builds it could never load. As a separate, platform-tagged
|
|
51
|
+
distribution they reach the machines that can use them and no others, and a
|
|
52
|
+
scanner that objects to a decade-old vendored binary objects to a package only
|
|
53
|
+
GLUT users install rather than to PyOpenGL.
|
|
54
|
+
|
|
55
|
+
## What is here
|
|
56
|
+
|
|
57
|
+
Six builds of each library, because PyOpenGL asks for one exact name composed
|
|
58
|
+
from the running interpreter's word size and compiler generation:
|
|
59
|
+
|
|
60
|
+
| | 32-bit | 64-bit |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| **vc9** (Visual Studio 2008) | `freeglut32.vc9.dll`, `gle32.vc9.dll` | `freeglut64.vc9.dll`, `gle64.vc9.dll` |
|
|
63
|
+
| **vc10** (Visual Studio 2010) | `freeglut32.vc10.dll`, `gle32.vc10.dll` | `freeglut64.vc10.dll`, `gle64.vc10.dll` |
|
|
64
|
+
| **vc14** (Visual Studio 2015 and later) | `freeglut32.vc14.dll`, `gle32.vc14.dll` | `freeglut64.vc14.dll`, `gle64.vc14.dll` |
|
|
65
|
+
|
|
66
|
+
Both the `win32` and the `win_amd64` wheel carry all twelve, along with the
|
|
67
|
+
upstream licence and readme files. The word sizes are not split between the
|
|
68
|
+
two wheels: a split would halve the download and is a change to make on its
|
|
69
|
+
own, where a regression in it is attributable.
|
|
70
|
+
|
|
71
|
+
## Using it directly
|
|
72
|
+
|
|
73
|
+
PyOpenGL is the intended caller, but the path is public:
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from pyopengl_glut_binaries import DLL_DIRECTORY
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`BUILDS` lists the base names above and `LIBRARIES` says where each library
|
|
80
|
+
came from.
|
|
81
|
+
|
|
82
|
+
## Licensing
|
|
83
|
+
|
|
84
|
+
The packaging is BSD-licensed; see `LICENSE`. The libraries are third-party
|
|
85
|
+
works under their own terms, which ship beside them in
|
|
86
|
+
`src/pyopengl_glut_binaries/DLLS/`:
|
|
87
|
+
|
|
88
|
+
- **freeglut** — 3.0.0-1.mp for MSVC, Martin Payne's build.
|
|
89
|
+
[freeglut](http://freeglut.sourceforge.net/) upstream publishes source
|
|
90
|
+
rather than Windows binaries. X-Consortium licence, in
|
|
91
|
+
`freeglut_COPYING.txt`.
|
|
92
|
+
- **GLE** — the tubing and extrusion library, built as a Windows DLL. See
|
|
93
|
+
`gle_COPYING`, `gle_COPYING.src` and `gle_AUTHORS`.
|
|
94
|
+
|
|
95
|
+
## Releases
|
|
96
|
+
|
|
97
|
+
A push to `main` runs the tests; if they are green and `__version__` in
|
|
98
|
+
`src/pyopengl_glut_binaries/__init__.py` is not already on PyPI, the wheels and
|
|
99
|
+
the sdist are built and published. Bumping the version is what cuts a release.
|
|
100
|
+
|
|
101
|
+
Issues go to [the PyOpenGL tracker](https://github.com/mcfletch/pyopengl/issues).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
setup.py
|
|
5
|
+
src/PyOpenGL_glut_binaries.egg-info/PKG-INFO
|
|
6
|
+
src/PyOpenGL_glut_binaries.egg-info/SOURCES.txt
|
|
7
|
+
src/PyOpenGL_glut_binaries.egg-info/dependency_links.txt
|
|
8
|
+
src/PyOpenGL_glut_binaries.egg-info/requires.txt
|
|
9
|
+
src/PyOpenGL_glut_binaries.egg-info/top_level.txt
|
|
10
|
+
src/pyopengl_glut_binaries/__init__.py
|
|
11
|
+
src/pyopengl_glut_binaries/py.typed
|
|
12
|
+
src/pyopengl_glut_binaries/DLLS/GLE_WIN32_README.txt
|
|
13
|
+
src/pyopengl_glut_binaries/DLLS/freeglut32.vc10.dll
|
|
14
|
+
src/pyopengl_glut_binaries/DLLS/freeglut32.vc14.dll
|
|
15
|
+
src/pyopengl_glut_binaries/DLLS/freeglut32.vc9.dll
|
|
16
|
+
src/pyopengl_glut_binaries/DLLS/freeglut64.vc10.dll
|
|
17
|
+
src/pyopengl_glut_binaries/DLLS/freeglut64.vc14.dll
|
|
18
|
+
src/pyopengl_glut_binaries/DLLS/freeglut64.vc9.dll
|
|
19
|
+
src/pyopengl_glut_binaries/DLLS/freeglut_COPYING.txt
|
|
20
|
+
src/pyopengl_glut_binaries/DLLS/freeglut_README.txt
|
|
21
|
+
src/pyopengl_glut_binaries/DLLS/gle32.vc10.dll
|
|
22
|
+
src/pyopengl_glut_binaries/DLLS/gle32.vc14.dll
|
|
23
|
+
src/pyopengl_glut_binaries/DLLS/gle32.vc9.dll
|
|
24
|
+
src/pyopengl_glut_binaries/DLLS/gle64.vc10.dll
|
|
25
|
+
src/pyopengl_glut_binaries/DLLS/gle64.vc14.dll
|
|
26
|
+
src/pyopengl_glut_binaries/DLLS/gle64.vc9.dll
|
|
27
|
+
src/pyopengl_glut_binaries/DLLS/gle_AUTHORS
|
|
28
|
+
src/pyopengl_glut_binaries/DLLS/gle_COPYING
|
|
29
|
+
src/pyopengl_glut_binaries/DLLS/gle_COPYING.src
|
|
30
|
+
tests/test_what_the_package_carries.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pyopengl_glut_binaries
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
|
|
2
|
+
Freeglut Copyright
|
|
3
|
+
------------------
|
|
4
|
+
|
|
5
|
+
Freeglut code without an explicit copyright is covered by the following
|
|
6
|
+
copyright:
|
|
7
|
+
|
|
8
|
+
Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in
|
|
16
|
+
all copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
21
|
+
PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
22
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
23
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
24
|
+
|
|
25
|
+
Except as contained in this notice, the name of Pawel W. Olszta shall not be
|
|
26
|
+
used in advertising or otherwise to promote the sale, use or other dealings
|
|
27
|
+
in this Software without prior written authorization from Pawel W. Olszta.
|