selfish as a shellfish
I work on releng tools and my own silly side projects You can reach me via Libera Chat IRC on the nick siege or obriencj
Tools for examining Java bytecode in Python
License: GNU Lesser General Public License v3.0
selfish as a shellfish
I work on releng tools and my own silly side projects You can reach me via Libera Chat IRC on the nick siege or obriencj
setup.py
of the package (in PyPI) does not state dependencies:
$ pip install javatools
Collecting javatools
Installing collected packages: javatools
Successfully installed javatools-1.3
$ pip show javatools
---
Metadata-Version: 2.0
Name: javatools
Version: 1.3
Summary: Tools for finding meaningful deltas in Java class files and JARs
Home-page: https://github.com/obriencj/python-javatools
Author: Christopher O'Brien
Author-email: [email protected]
Installer: pip
License: GNU Lesser General Public License
Location: /data/KS/src/p-j-venv/lib/python2.7/site-packages
Requires:
Classifiers:
Development Status :: 5 - Production/Stable
Environment :: Console
Intended Audience :: Developers
Intended Audience :: Information Technology
Natural Language :: English
Programming Language :: Python :: 2
Topic :: Software Development :: Disassemblers
Version 1.3 has line
requires = ["Cheetah", "PyXML"]
in setup.py
, but the correct keyword is install_requires
.
Максим Соколов was kind enough to send in the following
Hello, Christopher O'Brien!
I use your library https://github.com/obriencj/python-javatools and i find a bug in javatools.opcedes.py:454 line. Opcode 0xC5 is a multianewarra and have size not 1 byte, size = 4 bytes. You can check this in http://cs.au.dk/~mis/dOvs/jvmspec/ref--46.html or https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings .
Change line 454 in file "javatools.opcedes.py":
OP_multianewarray = __op('multianewarray', 0xc5)
to
OP_multianewarray = __op('multianewarray', 0xc5, fmt='>HB')P.s: sorry for my English
Thanks for your library!
Best regards.
Hello,
Noticed an issue present in _unpack_wide() when using javatools in Python 3.7. Information below. The issue appears to be the result of Python3 returning an ordinal already when specifying a single offset in a sequence of bytes.
For example:
Python2
>>> data = "a string of importance"
>>> data[0]
'a'
Python3
>>> data = b"some bytes of importance"
>>> data[0]
115
The easiest fix is to probably just specify a range, adding 1 to the offset:
Python2
>>> data = "a string of importance"
>>> data[0:1]
'a'
>>> len(data)
22
>>> data[21:22]
'e'
Python3
>>> data = b"some bytes of importance"
>>> data[0:1]
b's'
>>> len(data)
24
>>> data[23:24]
b'e'
jgrunzweig$ python3 -m pip install javatools --upgrade
Requirement already up-to-date: javatools in /usr/local/lib/python3.7/site-packages (1.5.0)
Requirement already satisfied, skipping upgrade: Cheetah3 in /usr/local/lib/python3.7/site-packages (from javatools) (3.2.4)
Requirement already satisfied, skipping upgrade: M2Crypto>=0.26.0 in /usr/local/lib/python3.7/site-packages (from javatools) (0.35.2)
Requirement already satisfied, skipping upgrade: six in /usr/local/Cellar/protobuf/3.11.4/libexec/lib/python3.7/site-packages (from javatools) (1.14.0)
$ python3
Python 3.7.7 (default, Mar 10 2020, 15:43:33)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from javatools import opcodes
>>> code = b'\xb2\x00>6\x07\xb8\x00\x0fL\xbb\x00\x15Y+\xb7\x00\x17M,\xb6\x00\x1a\x99\x00F,\xb6\x00\x1e\x88>\xbb\x00"Y,\xb7\x00$:\x04\x11\x04\x00\xbc\x08:\x05\x036\x06\xbb\x00\'Y\xb7\x00)\x19\x05\xb6\x00*\x19\x04\x19\x05\xb6\x00.\xc4\x84\x00\x06\x04\x00\x15\x06\x1d\xa1\xff\xe4\x19\x04\x15\x07\x9a\xff\xeb\xb6\x001\xb1'
>>> for line in opcodes.disassemble(code): print(line)
...
(0, 178, (62,))
(3, 54, (7,))
(5, 184, (15,))
(8, 76, ())
(9, 187, (21,))
(12, 89, ())
(13, 43, ())
(14, 183, (23,))
(17, 77, ())
(18, 44, ())
(19, 182, (26,))
(22, 153, (70,))
(25, 44, ())
(26, 182, (30,))
(29, 136, ())
(30, 62, ())
(31, 187, (34,))
(34, 89, ())
(35, 44, ())
(36, 183, (36,))
(39, 58, (4,))
(41, 17, (1024,))
(44, 188, (8,))
(46, 58, (5,))
(48, 3, ())
(49, 54, (6,))
(51, 187, (39,))
(54, 89, ())
(55, 183, (41,))
(58, 25, (5,))
(60, 182, (42,))
(63, 25, (4,))
(65, 25, (5,))
(67, 182, (46,))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/site-packages/javatools/opcodes.py", line 253, in disassemble
args, offset = fmt(bytecode, offset)
File "/usr/local/lib/python3.7/site-packages/javatools/opcodes.py", line 214, in _unpack_wide
code = ord(bc[offset])
TypeError: ord() expected string of length 1, but int found
Proposed fix:
code = ord(bc[offset:offset+1])
$ jardiff --report json tests/data/ec.jar tests/data/ec-tampered.jar
[...error backtrace...]
UnicodeDecodeError: 'utf8' codec can't decode byte 0x82 in position 1: invalid start byte
When installing from git master, install fails unless six
is already installed:
Collecting git+https://github.com/obriencj/python-javatools
Cloning https://github.com/obriencj/python-javatools to /private/var/folders/kc/nb8dszcs4b91l1z1ql4g8qb00000gn/T/pip-req-build-6i625hwn
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/kc/nb8dszcs4b91l1z1ql4g8qb00000gn/T/pip-req-build-6i625hwn/setup.py", line 27, in <module>
from javatools.cheetah.setuptools import cheetah_build_py_cmd
File "/private/var/folders/kc/nb8dszcs4b91l1z1ql4g8qb00000gn/T/pip-req-build-6i625hwn/javatools/__init__.py", line 35, in <module>
from six.moves import range
ModuleNotFoundError: No module named 'six'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/kc/nb8dszcs4b91l1z1ql4g8qb00000gn/T/pip-req-build-6i625hwn/```
$ mkdir dist1 dist2
$ echo "a" > dist1/a.txt
$ echo "b" > dist2/a.txt
$ distdiff dist1 dist2 ; echo $?
0
Currently, jarutil:cli_sign_jar()
appends signature-related files META-INF/KEY.SF
and META-INF/KEY.RSA
to the end of the archive.
Jarsigner
places these files into the beginning of the archive. This allows for easier processing of the signed JAR in one pass. It will be good to have the same behavior for jarutil
.
When possible, it is best to isolate crypto operations. Besides general code separation, it will be helpful when:
Inside the write_key_val() function the underlying buffer object needs to be accessed if you want to write bytes to stdout. Not all stream objects support the buffer API though so some checking needs to be done on what type the stream is.
stream.write(key) -> stream.buffer.key(key)
Traceback (most recent call last):
File "/home/me/.local/bin/jarinfo", line 10, in <module>
sys.exit(main())
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 330, in main
return cli(parser.parse_args(args[1:]))
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 289, in cli
cli_jarinfo(options, ji)
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 235, in cli_jarinfo
cli_jar_manifest_info(info)
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 172, in cli_jar_manifest_info
mf = jarinfo.get_manifest()
AttributeError: 'JarInfo' object has no attribute 'get_manifest'
Traceback (most recent call last):
File "/home/me/.local/bin/jarinfo", line 10, in <module>
sys.exit(main())
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 330, in main
return cli(parser.parse_args(args[1:]))
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 289, in cli
cli_jarinfo(options, ji)
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 241, in cli_jarinfo
cli_jar_requires(options, info)
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 224, in cli_jar_requires
for required in sorted(jarinfo.get_requires().keys()):
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 120, in get_requires
self._collect_requires_provides()
File "/home/me/.local/lib/python3.6/site-packages/javatools/jarinfo.py", line 105, in _collect_requires_provides
for sym in ci.get_requires():
File "/home/me/.local/lib/python3.6/site-packages/javatools/__init__.py", line 963, in get_requires
self._requires = set(self._get_requires())
File "/home/me/.local/lib/python3.6/site-packages/javatools/__init__.py", line 929, in _get_requires
if t[1] == "L":
IndexError: tuple index out of range
jarutil
provides command-line versions to create jar, sign jar, and verify the signature; but only the last one can be used as library call by Python code.
$ python setup.py pylint
running pylint
running build
running build_py
copying javatools/manifest.py -> build/lib.linux-x86_64-2.7/javatools
error: could not delete 'build/lib.linux-x86_64-2.7/javatools/manifest.py': Permission denied
I'm not (yet) familiar with pylint; I'd expect that the user does not need to install anything in order to run the report, but anyway:
$ sudo python setup.py pylint
[sudo] password for konstantin:
running pylint
running build
running build_py
copying javatools/manifest.py -> build/lib.linux-x86_64-2.7/javatools
running build_scripts
Traceback (most recent call last):
File "setup.py", line 78, in <module>
'pylint': pylint_cmd } )
File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/home/konstantin/python-javatools/extras/pylint_cmd.py", line 143, in run
self.run_linter()
File "/home/konstantin/python-javatools/extras/pylint_cmd.py", line 107, in run_linter
linter.disable('suppressed-message')
File "/usr/lib/python2.7/dist-packages/pylint/utils.py", line 192, in disable
msg = self.check_message_id(msgid)
File "/usr/lib/python2.7/dist-packages/pylint/utils.py", line 256, in check_message_id
raise UnknownMessage('No such message id %s' % msgid)
pylint.utils.UnknownMessage: No such message id SUPPRESSED-MESSAGE
I am considering switching python-javatools to using setuptools rather than distutils for the next release. A preview of this change is in the setuptools branch, along with the beginning of some unittests -- facilitated by the change to setuptools.
setuptools is widely available, but I would like to see if any of the users of this project have reservations about such a change.
Please comment with your thoughts on the change.
The Cheetah templates for javatools are currently horrible. I have to admit that my eye for visual design is not really that good. To that end, this project needs someone with a good feeling for UX to go over the reporting output (especially the output for classdiff) and make it something that is significantly more friendly to read.
This project seems amazing to me. Where I can find some examples? I would like to use it to read some Class files (Java 8 format) to read the name and signatures of methods and fields. Is that possible?
As a trivial example, the use of dict.has_key
is no longer supported in Python 3.0 and later:
I'm sure there are more Python 3.x gotchas, just pointing out the one that is preventing me from adopting this library. If I can find time in the next week or so I might submit a PR implementing Python 3.x compatibility. Is this project automatically tested at all?
The following features are not available in Python 2.6:
zipfile.ZipFile
as context manager.with
contexts into jardiff.py
.OrderedDict
.assertIsNone()
/assertIsNotNone()
to tests.assertRaises()
is used as context manager.argparse
is not avilable in 2.6.Change needed:
parser.add_argument("-r", "--recursive", help="process directories recursively") --> parser.add_argument("-r", "--recursive", action='store_true', help="process directories recursively")
Javatools 1.y only supports java bytecode features up to JDK 8. Constant types and magic fields introduced later can lead to backtraces.
Goal: add JDK 9 (and maybe even 11) support for Javatools 2.0.0
After make clean all
in tests/data
(copying just some lines of the long output):
FAIL: test_const_pool (tests.Sample1Tests)
AssertionError: Tuples differ: ((0, (None, None)), (1, (7, 24... != ((0, (None, None)), (1, (8, 24...
FAIL: test_method_code_name (tests.Sample1Tests)
AssertionError: Tuples differ: ((0, 42, ()), (1, 180, (5,)), ... != ((0, 42, ()), (1, 180, (4,)), ...
FAIL: test_method_code_recent_name (tests.Sample1Tests)
AssertionError: Tuples differ: ((0, 178, (6,)), (3, 176, ())) != ((0, 178, (5,)), (3, 176, ()))
Is there any value in giving the user possibility to rebuild the classes? Maybe we should just throw away Makefile
?
Currently manifest.py
contains manifest-related functionality, plus functions which inspect or modify the JAR file as whole (create, sign, verify signature). The latter are best moved to a separate module.
Hi,
Im trying to list all public methods in a JAR using:
jarinfo --public scala-library-2.12.8.jar
But Im getting no output from this command. Am I using it incorrecly?
Thanks
I have the following error:
javatools.Unimplemented: _next_argsig is '\x00' in �L�j�a�v�a�.�l�a�n�g�.�r�e�f�l�e�c�t�.�M�e�t�h�o�d�;�
running:
ci = unpack_classfile(full_filename)
print( ci.get_requires() )
where full_filename
is the attached file (GitHub forced me to zip to upload):
SimplePropertyAccessor.class.zip
Seems to be a missing corner case somewhere. Please let me know if I can provide any additional information that helps on debugging.
Sorry for this silly question, but why do you use some many blank lines in your code?
Maybe borrow some of the logic from KSD-1 since we already figured this out once.
Is it worth building RPMs for some platforms during the release action? Does anyone even use them?
At present, all cryptographic operations are done by issuing a system call to openssl
. This is slow, not portable, and does not state the dependency. Such calls should be replaced with a Python module providing corresponding functionality.
Here's a short list of things to do to get a 1.4 out the door
Descriptive English text is not a valid return type for API calls.
TODO, fix:
And any other places where a text string is returned from an API method or function rather than structured data.
eg: verify_jar_checksums can return a list of entries which could not be verified (making this change currently)
@KonstantinShemyak while I'm at this, would you please see if there are other entries in your code or tests which behave this way?
Things which spit out English text should be named with a cli_ prefix on the function name, and should print directly to stdout. Everything else should return data.
Two JARs with same-name (but different content) files inside are reported as identical by jardiff
.
The first JAR:
$ unzip -l tests/data/test_distdiff/dist1/sample.jar
Archive: tests/data/test_distdiff/dist1/sample.jar
Length Date Time Name
--------- ---------- ----- ----
0 2017-04-30 11:01 META-INF/
69 2017-04-30 11:01 META-INF/MANIFEST.MF
12 2017-04-30 10:53 sample.txt
--------- -------
81 3 files
The second JAR:
$ unzip -l tests/data/test_distdiff/dist2/sample.jar
Archive: tests/data/test_distdiff/dist2/sample.jar
Length Date Time Name
--------- ---------- ----- ----
0 2017-04-30 11:01 META-INF/
69 2017-04-30 11:01 META-INF/MANIFEST.MF
13 2017-04-30 11:01 sample.txt
--------- -------
82 3 files
Note the size difference between sample.txt
files. But jardiff
reports them as identical:
$ jardiff -v tests/data/test_distdiff/blank1/data.jar tests/data/test_distdiff/other1/data.jar
JAR unchanged
Jar type unchanged
JAR Contents unchanged
Jar Manifest is unchanged: META-INF/MANIFEST.MF
Jar Content is unchanged: sample.txt
cheetah_cmd.py
is required for setup.py
to run, but it does not belong to any package. As a result, it is not put in the distribution.
Put it to extras
module, where it resided sometime in the past.
Typical scenario is that JAR file is signed with some "signing" certificate, which is chaining to some "trusted CA" certificate. When the JAR is verified, only the "trusted CA" certificate is available (and configured as "trusted") to the verifying user. All other certificates, which chain the "signing" to the "trusted CA", are embedded in the signature.
jarsigner
has option -certchain
for embedding extra certificates. jarutil -s
should be capable of this, too.
Installation with pip
will fail in environment with no Cheetah
installed. It is not enough that Cheetah
is listed in project dependencies, as it is needed already for running setup.py
.
When parse the following java class build with the code
File "/usr/lib/python2.7/site-packages/javatools/init.py", line 1943, in _unpack_const_item
raise Unimplemented("unknown constant type %r" % type)
import java.time.Instant;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public final class JavaCompatibilityUtil {
/**
A comparator that can be used to sort objects into increasing order of
their toString() length.
*/
private static final Comparator LAMBDA_COMPARATOR = (Comparator) (Object a, Object b) -> {
int alen = a.toString().length();
int blen = b.toString().length();
if (alen < blen) {
return -1;
}
if (alen > blen) {
return 1;
}
return 0;
};
private static void functionalAppend(List addto, List addfrom) {
addfrom.stream().forEach((addfrom1) -> {
addto.add(addfrom1);
});
}
private static void featureTest() {
Instant inst = Instant.now();
long time = inst.getEpochSecond();
time *= 1000000000l; //convert to nanoseconds
time += inst.getNano(); //the nanoseconds returned by inst.getNano() are the na
System.out.print("time="+time+"\n");
Map<String, String> map = new HashMap<>();
map.put("One", "One");
map.put("Two", "Two");
map.put("Tree", "Tree");
map.put("Four", "Four");
map.entrySet().stream().filter((entry) -> (entry.getKey().equals("Two"))).forEach((entry) -> {
System.out.println("is 2 = " + entry.getValue());
});
String[] atp = {"Rafael Nadal", "Novak Djokovic", "Stanislas Wawrinka", "David Ferrer", "Roger Federer", "Andy Murray", "Tomas Berdych", "Juan Martin Del Potro"};
List players = Arrays.asList(atp);
// Using lambda expression and functional operations
players.forEach(
(player) -> {
System.out.print(player + " ; " + map.size());
}
);
// Using double colon operator in Java 8
players.forEach(System.out::println);
}
public static void main(String [] args){
featureTest();
}
}
To sign a JAR, python-javatools require private key to be accessible as a readable file in the filesystem. This is rarely a case in security-conscious environments. The most common standard to access private keys is PKCS#11 interface. Python-javatools should support it.
Example:
$ jardiff tests/data/ec.jar tests/data/ec-tampered.jar
$
Fresh checkout:
$ python setup.py install
[...]
Processing dependencies for javatools==1.5.1
Searching for M2Crypto>=0.26.0
Reading https://pypi.org/simple/M2Crypto/
Downloading https://files.pythonhosted.org/packages/aa/36/9fef97358e378c1d3bd567c4e8f8ca0428a8d7e869852cef445ee6da91fd/M2Crypto-0.37.1.tar.gz#sha256=e4e42f068b78ccbf113e5d0a72ae5f480f6c3ace4940b91e4fff5598cfff6fb3
Best match: M2Crypto 0.37.1
Processing M2Crypto-0.37.1.tar.gz
Writing /var/folders/4j/gxtcg7_j4mj7_j52f3glc6dh0000gn/T/easy_install-rnynee5s/M2Crypto-0.37.1/setup.cfg
Running M2Crypto-0.37.1/setup.py -q bdist_egg --dist-dir /var/folders/4j/gxtcg7_j4mj7_j52f3glc6dh0000gn/T/easy_install-rnynee5s/M2Crypto-0.37.1/egg-dist-tmp-3hsch9op
unable to execute 'swig': No such file or directory
error: Setup script exited with error: command 'swig' failed with exit status 1
hi.
I was downloaded your project and install but help how I can for example compare 2 jar file with jardiff.py?
Thank you
Create a sample JAR:
$ touch data.txt
$ jar -c data.txt > data.jar
Add checksums to its manifest:
$ unzip data.jar
$ manifest -c data.jar > META-INF/MANIFEST.MF
$ zip -u data.jar META-INF/MANIFEST.MF
Sign the jar with python-javatools
:
$ jarutil s data.jar cert.pem private-key.pem signing
Attempt to verify the JAR with jarsigner
:
$ jarsigner -verify -verbose -debug -keystore cert.pfx data.jar
0 Sun Nov 13 19:55:49 EET 2016 META-INF/
118 Sun Nov 13 19:55:02 EET 2016 META-INF/MANIFEST.MF
259 Sun Nov 13 20:14:22 EET 2016 META-INF/SIGNING.SF
1613 Sun Nov 13 20:14:22 EET 2016 META-INF/SIGNING.RSA
m 0 Mon Sep 05 20:25:28 EEST 2016 data.txt
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar is unsigned. (signatures missing or not parsable)
Note that the signature verifies with python-javatools
themselves:
$ jarutil v data.jar cert.pem SIGNING
Jar verified.
Hello,
I get an UnsupportedOperation exception when calling get_manifest
on a JarInfo object.
Example:
jar = JarInfo('/path/to/jar')
jar.get_manifest()
Results in the following exception:
javatools/jarinfo.py", line 165, in get_manifest
mf.parse(data)
javatools/manifest.py", line 339, in parse
self.linesep = detect_linesep(data)
javatools/manifest.py", line 627, in detect_linesep
offset = data.tell()
io.UnsupportedOperation: seek
I think this may be due to the fact that get_manifest
passes a zipfile.ZipExtFile object to Manifest's parse
method. The ZipExtFile class does not support tell
and seek
operations, and therefore throws the unsupported operation exception.
Perhaps one solution could be to change JarInfo's get_manifest
method from
with self.open(mf_entry) as data:
mf.parse(data) # data is a ZipExtFile object
to
with self.open(mf_entry) as data:
mf.parse(data.read()) # data.read() will return a string
However, I'm not sure if this will have other ramifications in the Manifest class. Any thoughts?
Thanks!
Fresh checkout (also fails under unittests, but examples below are being run with pytest) fails due to platform-specific line endings.
Failures:
FAILED tests/manifest.py::ManifestTest::test_create_sha1 - AssertionError: 'Manifest-Version: 1.0\n\nName: example.t[187 chars]\n\n' != b'Manifest-Version: 1.0\r\n\r\nName: exam[206 chars]\r\n' : Result of "...
FAILED tests/manifest.py::ManifestTest::test_create_sha512 - AssertionError: 'Manifest-Version: 1.0\n\nName: example.t[319 chars]\n\n' != b'Manifest-Version: 1.0\r\n\r\nName: exam[342 chars]\r\n' : Result of...
FAILED tests/manifest.py::ManifestTest::test_create_with_ignore - AssertionError: 'Manifest-Version: 1.0\n\nName: filename-[227 chars]\n\n' != b'Manifest-Version: 1.0\r\n\r\nName: file[244 chars]\r\n' : Resu...
Example:
E Expected:
E b'Manifest-Version: 1.0\r\n\r\nName: filename-which-is-longer-than-80-characters-and-does-not-fit-in-\r\n java-manifest-line.txt\r\nMD5-Digest: JqsNuQ1y4orQuh4i7lEFEA==\r\nSHA-512-Digest: Y+Iuwvvuur8AXlj7+w7uYHxKpBcEWmigzGN2ewSONVkmjTXnLzZ9Oy\r\n 29Xb3fEvxDl3YroUkmCzeVoDkXE73c1w==\r\n\r\n'
E Received:
E b'Manifest-Version: 1.0\n\nName: filename-which-is-longer-than-80-characters-and-does-not-fit-in-\n java-manifest-line.txt\nMD5-Digest: JqsNuQ1y4orQuh4i7lEFEA==\nSHA-512-Digest: Y+Iuwvvuur8AXlj7+w7uYHxKpBcEWmigzGN2ewSONVkmjTXnLzZ9Oy\n 29Xb3fEvxDl3YroUkmCzeVoDkXE73c1w==\n\n'
This fails due to the manifests having \r\n
line endings, and reading from the subprocess we get Linux-style \n
.
On Py3, the fix is simply using universal newline mode, with NamedTemporaryFile('rt') as tmp_out:
(in py3, t
implies the U
from py2).
Note that the specification states that manifest are valid with any line endings:
newline: CR LF | LF | CR (not followed by LF)
Is there any way to convert method bytes to a readable string? I encountered a decoding error when using the decode method to convert bytes to a string.
Hi,
Got a different Unimplemented error with constant type 19 while querying a Java 9/10/11/12 modules:
❯ jarinfo --jar-classes --public /Users/alvaro/.sdkman/candidates/java/9.0.4-open/jmods/java.base.jmod
Traceback (most recent call last):
File "/Users/alvaro/.pyenv/versions/3.7.0/bin/jarinfo", line 11, in <module>
load_entry_point('javatools==1.4.0', 'console_scripts', 'jarinfo')()
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/jarinfo.py", line 330, in main
return cli(parser.parse_args(args[1:]))
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/jarinfo.py", line 289, in cli
cli_jarinfo(options, ji)
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/jarinfo.py", line 244, in cli_jarinfo
cli_jar_classes(options, info)
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/jarinfo.py", line 206, in cli_jar_classes
ci = jarinfo.get_classinfo(entry)
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/jarinfo.py", line 156, in get_classinfo
return unpack_class(cfd)
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/__init__.py", line 2355, in unpack_class
o.unpack(up, magic=magic)
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/__init__.py", line 451, in unpack
self.cpool.unpack(unpacker)
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/__init__.py", line 203, in unpack
item = _unpack_const_item(unpacker)
File "/Users/alvaro/.pyenv/versions/3.7.0/lib/python3.7/site-packages/javatools-1.4.0-py3.7.egg/javatools/__init__.py", line 2093, in _unpack_const_item
raise Unimplemented("unknown constant type %r" % typecode)
javatools.Unimplemented: unknown constant type 19
Thanks!
Java class file specification defines the encoding of the bytes in CONSTANT_Utf8_info
structure. Currently, python-javatools handle zero byte in this "modified utf-8". But there is one more difference, all codepoints in the supplementary planes are encoded using 6 bytes, not 4 as in UTF-8. (Such codec has been proposed for Python in 2008, but rejected in 2012.)
On such input, UTF-8 decoder behaves differently in my Python 2 and Python 3 environments:
classinfo
even shows the original character, as though it's decoded with UTF-16... strange.)UnicodeDecodeError
, as expected. (Python-javatools would catch it, replace C0 80
with 00
in the data, and attempt to UTF-8-decode again. Two consecutive UTF-16 surrogates cannot contain substring C0 80
, thus nothing gets replaced, and the second decoding attempt fails at the same place.)Illustration with the Wikipedia example U+10400:
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> b'\xed\xa0\x81\xed\xb0\x80'.decode('utf-8')
u'\ud801\udc00'
Python 3.6.5 (default, Jun 1 2018, 18:28:15) [GCC 5.4.0 20160609] on linux
>>> b'\xed\xa0\x81\xed\xb0\x80'.decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 0: invalid continuation byte
It looks like an unlikely case that someone will use codepoints from outside the Basic Multilingual Plane for Java identifiers, so this is probably a low priority issue.
$ classdiff --json --json-indent 10 tests/data/Sample2A.class tests/data/Sample2.class
[...backtrace...]
File "/usr/lib/python2.7/json/encoder.py", line 353, in _iterencode_dict
newline_indent = '\n' + (' ' * (_indent * _current_indent_level))
TypeError: can't multiply sequence by non-int of type 'str'
I don't want those tools and their deps to be packaged with my script that extracts field names from class files and uses them to generate JSONs.
$ pip install javatools
Collecting javatools
Downloading https://files.pythonhosted.org/packages/c1/06/3a1c067cc4e90bf15db23bfd2c65cb616089d52b5a4312186d98e1d7a141/javatools-1.4.0-py3-none-any.whl (156kB)
|████████████████████████████████| 163kB 228kB/s
Collecting six (from javatools)
Using cached https://files.pythonhosted.org/packages/65/eb/1f97cb97bfc2390a276969c6fae16075da282f5058082d4cb10c6c5c1dba/six-1.14.0-py2.py3-none-any.whl
Collecting Cheetah3 (from javatools)
Downloading https://files.pythonhosted.org/packages/4e/72/e6a7d92279e3551db1b68fd336fd7a6e3d2f2ec742bf486486e6150d77d2/Cheetah3-3.2.4.tar.gz (294kB)
|████████████████████████████████| 296kB 2.5MB/s
Collecting M2Crypto>=0.26.0 (from javatools)
Downloading https://files.pythonhosted.org/packages/74/18/3beedd4ac48b52d1a4d12f2a8c5cf0ae342ce974859fba838cbbc1580249/M2Crypto-0.35.2.tar.gz (1.1MB)
|████████████████████████████████| 1.1MB 1.6MB/s
Installing collected packages: six, Cheetah3, M2Crypto, javatools
Running setup.py install for Cheetah3 ... done
Running setup.py install for M2Crypto ... error
ERROR: Command errored out with exit status 1:
command: /home/soniex2/git/selfhosted/python.teraco-opgy/venv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ujm2rhmo/M2Crypto/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ujm2rhmo/M2Crypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-jiai9cji/install-record.txt --single-version-externally-managed --compile --install-headers /home/soniex2/git/selfhosted/python.teraco-opgy/venv/include/site/python3.8/M2Crypto
cwd: /tmp/pip-install-ujm2rhmo/M2Crypto/
Complete output (1493 lines):
running install
running build
running build_py
copying M2Crypto/util.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/threading.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/six.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/m2xmlrpclib.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/m2urllib2.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/m2urllib.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/m2crypto.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/m2.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/httpslib.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/ftpslib.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/callback.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/__init__.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/X509.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/SMIME.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/Rand.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/RSA.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/RC4.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/Err.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/Engine.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/EVP.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/EC.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/DSA.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/DH.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/BN.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/BIO.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/AuthCookie.py -> build/lib.linux-x86_64-3.8/M2Crypto
copying M2Crypto/ASN1.py -> build/lib.linux-x86_64-3.8/M2Crypto
creating build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/timeout.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/ssl_dispatcher.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/cb.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/__init__.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/TwistedProtocolWrapper.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/Session.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/SSLServer.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/Context.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/Connection.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/Cipher.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
copying M2Crypto/SSL/Checker.py -> build/lib.linux-x86_64-3.8/M2Crypto/SSL
running build_ext
building 'M2Crypto._m2crypto' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/SWIG
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -I/home/soniex2/git/selfhosted/python.teraco-opgy/venv/include -I/usr/include/python3.8 -I/tmp/pip-install-ujm2rhmo/M2Crypto/SWIG -c SWIG/_m2crypto_wrap.c -o build/temp.linux-x86_64-3.8/SWIG/_m2crypto_wrap.o -DTHREADING -Wno-deprecated-declarations
SWIG/_m2crypto_wrap.c: In function ‘SwigPyStaticVar_dealloc’:
SWIG/_m2crypto_wrap.c:3215:3: warning: implicit declaration of function ‘_PyObject_GC_UNTRACK’; did you mean ‘PyObject_GC_UnTrack’? [-Wimplicit-function-declaration]
3215 | _PyObject_GC_UNTRACK(descr);
| ^~~~~~~~~~~~~~~~~~~~
| PyObject_GC_UnTrack
SWIG/_m2crypto_wrap.c: In function ‘_wrap__STACK_num_set’:
SWIG/_m2crypto_wrap.c:9511:19: error: dereferencing pointer to incomplete type ‘struct stack_st’
9511 | if (arg1) (arg1)->num = arg2;
| ^~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new__STACK’:
SWIG/_m2crypto_wrap.c:9738:48: error: invalid application of ‘sizeof’ to incomplete type ‘struct stack_st’
9738 | result = (struct stack_st *)calloc(1, sizeof(struct stack_st));
| ^~~~~~
SWIG/_m2crypto_wrap.c:9741:1: warning: label ‘fail’ defined but not used [-Wunused-label]
9741 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sk_new_null’:
SWIG/_m2crypto_wrap.c:9884:1: warning: label ‘fail’ defined but not used [-Wunused-label]
9884 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sk_deep_copy’:
SWIG/_m2crypto_wrap.c:9969:40: warning: passing argument 2 of ‘OPENSSL_sk_deep_copy’ from incompatible pointer type [-Wincompatible-pointer-types]
9969 | result = (_STACK *)sk_deep_copy(arg1,arg2,arg3);
| ^~~~
| |
| void * (*)(void *)
In file included from /usr/include/openssl/safestack.h:13,
from /usr/include/openssl/crypto.h:23,
from /usr/include/openssl/bio.h:20,
from /usr/include/openssl/err.h:21,
from SWIG/_m2crypto_wrap.c:3561:
/usr/include/openssl/stack.h:34:16: note: expected ‘OPENSSL_sk_copyfunc’ {aka ‘void * (*)(const void *)’} but argument is of type ‘void * (*)(void *)’
34 | OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *,
| ^~~~~~~~~~~~~~~~~~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_stack_st_OPENSSL_STRING_stack_set’:
SWIG/_m2crypto_wrap.c:10372:19: error: dereferencing pointer to incomplete type ‘struct stack_st_OPENSSL_STRING’
10372 | if (arg1) (arg1)->stack = *arg2;
| ^~
SWIG/_m2crypto_wrap.c:10372:29: error: dereferencing pointer to incomplete type ‘OPENSSL_STACK’ {aka ‘struct stack_st’}
10372 | if (arg1) (arg1)->stack = *arg2;
| ^~~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new_stack_st_OPENSSL_STRING’:
SWIG/_m2crypto_wrap.c:10404:63: error: invalid application of ‘sizeof’ to incomplete type ‘struct stack_st_OPENSSL_STRING’
10404 | result = (struct stack_st_OPENSSL_STRING *)calloc(1, sizeof(struct stack_st_OPENSSL_STRING));
| ^~~~~~
SWIG/_m2crypto_wrap.c:10407:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10407 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_stack_st_OPENSSL_BLOCK_stack_set’:
SWIG/_m2crypto_wrap.c:10452:19: error: dereferencing pointer to incomplete type ‘struct stack_st_OPENSSL_BLOCK’
10452 | if (arg1) (arg1)->stack = *arg2;
| ^~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new_stack_st_OPENSSL_BLOCK’:
SWIG/_m2crypto_wrap.c:10484:62: error: invalid application of ‘sizeof’ to incomplete type ‘struct stack_st_OPENSSL_BLOCK’
10484 | result = (struct stack_st_OPENSSL_BLOCK *)calloc(1, sizeof(struct stack_st_OPENSSL_BLOCK));
| ^~~~~~
SWIG/_m2crypto_wrap.c:10487:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10487 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_threading_init’:
SWIG/_m2crypto_wrap.c:10517:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10517 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_threading_cleanup’:
SWIG/_m2crypto_wrap.c:10528:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10528 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_lib_init’:
SWIG/_m2crypto_wrap.c:10539:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10539 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_err_get_error’:
SWIG/_m2crypto_wrap.c:10706:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10706 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_err_peek_error’:
SWIG/_m2crypto_wrap.c:10718:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10718 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bio_s_bio’:
SWIG/_m2crypto_wrap.c:10796:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10796 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bio_s_mem’:
SWIG/_m2crypto_wrap.c:10808:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10808 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bio_s_socket’:
SWIG/_m2crypto_wrap.c:10820:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10820 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bio_f_ssl’:
SWIG/_m2crypto_wrap.c:10832:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10832 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bio_f_buffer’:
SWIG/_m2crypto_wrap.c:10844:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10844 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bio_f_cipher’:
SWIG/_m2crypto_wrap.c:10856:1: warning: label ‘fail’ defined but not used [-Wunused-label]
10856 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_pyfd_init’:
SWIG/_m2crypto_wrap.c:11105:1: warning: label ‘fail’ defined but not used [-Wunused-label]
11105 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new_BIO_PYFD_CTX’:
SWIG/_m2crypto_wrap.c:12072:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12072 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_rand_cleanup’:
SWIG/_m2crypto_wrap.c:12656:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12656 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_rand_file_name__SWIG_1’:
SWIG/_m2crypto_wrap.c:12809:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12809 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_rand_screen’:
SWIG/_m2crypto_wrap.c:12857:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12857 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_md5’:
SWIG/_m2crypto_wrap.c:12912:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12912 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sha1’:
SWIG/_m2crypto_wrap.c:12924:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12924 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_ripemd160’:
SWIG/_m2crypto_wrap.c:12936:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12936 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sha224’:
SWIG/_m2crypto_wrap.c:12948:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12948 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sha256’:
SWIG/_m2crypto_wrap.c:12960:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12960 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sha384’:
SWIG/_m2crypto_wrap.c:12972:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12972 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sha512’:
SWIG/_m2crypto_wrap.c:12984:1: warning: label ‘fail’ defined but not used [-Wunused-label]
12984 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ecb’:
SWIG/_m2crypto_wrap.c:13040:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13040 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede_ecb’:
SWIG/_m2crypto_wrap.c:13052:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13052 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede3_ecb’:
SWIG/_m2crypto_wrap.c:13064:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13064 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_cbc’:
SWIG/_m2crypto_wrap.c:13076:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13076 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede_cbc’:
SWIG/_m2crypto_wrap.c:13088:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13088 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede3_cbc’:
SWIG/_m2crypto_wrap.c:13100:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13100 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_cfb’:
SWIG/_m2crypto_wrap.c:13112:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13112 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede_cfb’:
SWIG/_m2crypto_wrap.c:13124:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13124 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede3_cfb’:
SWIG/_m2crypto_wrap.c:13136:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13136 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ofb’:
SWIG/_m2crypto_wrap.c:13148:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13148 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede_ofb’:
SWIG/_m2crypto_wrap.c:13160:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13160 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_des_ede3_ofb’:
SWIG/_m2crypto_wrap.c:13172:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13172 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bf_ecb’:
SWIG/_m2crypto_wrap.c:13184:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13184 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bf_cbc’:
SWIG/_m2crypto_wrap.c:13196:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13196 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bf_cfb’:
SWIG/_m2crypto_wrap.c:13208:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13208 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_bf_ofb’:
SWIG/_m2crypto_wrap.c:13220:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13220 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_cast5_ecb’:
SWIG/_m2crypto_wrap.c:13232:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13232 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_cast5_cbc’:
SWIG/_m2crypto_wrap.c:13244:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13244 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_cast5_cfb’:
SWIG/_m2crypto_wrap.c:13256:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13256 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_cast5_ofb’:
SWIG/_m2crypto_wrap.c:13268:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13268 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_rc4’:
SWIG/_m2crypto_wrap.c:13280:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13280 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_rc2_40_cbc’:
SWIG/_m2crypto_wrap.c:13292:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13292 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_128_ecb’:
SWIG/_m2crypto_wrap.c:13304:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13304 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_128_cbc’:
SWIG/_m2crypto_wrap.c:13316:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13316 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_128_cfb’:
SWIG/_m2crypto_wrap.c:13328:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13328 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_128_ofb’:
SWIG/_m2crypto_wrap.c:13340:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13340 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_128_ctr’:
SWIG/_m2crypto_wrap.c:13352:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13352 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_192_ecb’:
SWIG/_m2crypto_wrap.c:13364:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13364 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_192_cbc’:
SWIG/_m2crypto_wrap.c:13376:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13376 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_192_cfb’:
SWIG/_m2crypto_wrap.c:13388:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13388 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_192_ofb’:
SWIG/_m2crypto_wrap.c:13400:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13400 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_192_ctr’:
SWIG/_m2crypto_wrap.c:13412:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13412 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_256_ecb’:
SWIG/_m2crypto_wrap.c:13424:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13424 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_256_cbc’:
SWIG/_m2crypto_wrap.c:13436:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13436 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_256_cfb’:
SWIG/_m2crypto_wrap.c:13448:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13448 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_256_ofb’:
SWIG/_m2crypto_wrap.c:13460:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13460 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_256_ctr’:
SWIG/_m2crypto_wrap.c:13472:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13472 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_md_ctx_new’:
SWIG/_m2crypto_wrap.c:13921:1: warning: label ‘fail’ defined but not used [-Wunused-label]
13921 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_hmac_ctx_new’:
SWIG/_m2crypto_wrap.c:14023:1: warning: label ‘fail’ defined but not used [-Wunused-label]
14023 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_cipher_ctx_new’:
SWIG/_m2crypto_wrap.c:14211:1: warning: label ‘fail’ defined but not used [-Wunused-label]
14211 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_pkey_new’:
SWIG/_m2crypto_wrap.c:14763:1: warning: label ‘fail’ defined but not used [-Wunused-label]
14763 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_aes_new’:
SWIG/_m2crypto_wrap.c:14965:1: warning: label ‘fail’ defined but not used [-Wunused-label]
14965 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_rc4_new’:
SWIG/_m2crypto_wrap.c:15137:1: warning: label ‘fail’ defined but not used [-Wunused-label]
15137 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_dh_new’:
SWIG/_m2crypto_wrap.c:15273:1: warning: label ‘fail’ defined but not used [-Wunused-label]
15273 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_rsa_new’:
SWIG/_m2crypto_wrap.c:15811:1: warning: label ‘fail’ defined but not used [-Wunused-label]
15811 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_dsa_new’:
SWIG/_m2crypto_wrap.c:16932:1: warning: label ‘fail’ defined but not used [-Wunused-label]
16932 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sslv23_method’:
SWIG/_m2crypto_wrap.c:18220:1: warning: label ‘fail’ defined but not used [-Wunused-label]
18220 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_tlsv1_method’:
SWIG/_m2crypto_wrap.c:19876:1: warning: label ‘fail’ defined but not used [-Wunused-label]
19876 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_x509_new’:
SWIG/_m2crypto_wrap.c:21554:1: warning: label ‘fail’ defined but not used [-Wunused-label]
21554 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_x509_crl_new’:
SWIG/_m2crypto_wrap.c:21645:1: warning: label ‘fail’ defined but not used [-Wunused-label]
21645 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_x509_name_new’:
SWIG/_m2crypto_wrap.c:22481:1: warning: label ‘fail’ defined but not used [-Wunused-label]
22481 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_x509_name_entry_new’:
SWIG/_m2crypto_wrap.c:23049:1: warning: label ‘fail’ defined but not used [-Wunused-label]
23049 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_x509_req_new’:
SWIG/_m2crypto_wrap.c:23298:1: warning: label ‘fail’ defined but not used [-Wunused-label]
23298 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_x509_store_new’:
SWIG/_m2crypto_wrap.c:23697:1: warning: label ‘fail’ defined but not used [-Wunused-label]
23697 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_x509v3_set_nconf’:
SWIG/_m2crypto_wrap.c:25177:1: warning: label ‘fail’ defined but not used [-Wunused-label]
25177 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sk_x509_extension_new_null’:
SWIG/_m2crypto_wrap.c:25296:1: warning: label ‘fail’ defined but not used [-Wunused-label]
25296 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sk_x509_new_null’:
SWIG/_m2crypto_wrap.c:25609:1: warning: label ‘fail’ defined but not used [-Wunused-label]
25609 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_asn1_object_new’:
SWIG/_m2crypto_wrap.c:25681:1: warning: label ‘fail’ defined but not used [-Wunused-label]
25681 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_asn1_bit_string_new’:
SWIG/_m2crypto_wrap.c:25862:1: warning: label ‘fail’ defined but not used [-Wunused-label]
25862 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_asn1_string_new’:
SWIG/_m2crypto_wrap.c:25874:1: warning: label ‘fail’ defined but not used [-Wunused-label]
25874 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_asn1_time_new’:
SWIG/_m2crypto_wrap.c:26068:1: warning: label ‘fail’ defined but not used [-Wunused-label]
26068 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_asn1_integer_new’:
SWIG/_m2crypto_wrap.c:26262:1: warning: label ‘fail’ defined but not used [-Wunused-label]
26262 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_pkcs7_new’:
SWIG/_m2crypto_wrap.c:26438:1: warning: label ‘fail’ defined but not used [-Wunused-label]
26438 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_ec_key_new’:
SWIG/_m2crypto_wrap.c:27645:1: warning: label ‘fail’ defined but not used [-Wunused-label]
27645 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_ec_get_builtin_curves’:
SWIG/_m2crypto_wrap.c:27817:1: warning: label ‘fail’ defined but not used [-Wunused-label]
27817 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_engine_load_builtin_engines’:
SWIG/_m2crypto_wrap.c:28507:1: warning: label ‘fail’ defined but not used [-Wunused-label]
28507 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_engine_load_dynamic’:
SWIG/_m2crypto_wrap.c:28518:1: warning: label ‘fail’ defined but not used [-Wunused-label]
28518 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_engine_load_openssl’:
SWIG/_m2crypto_wrap.c:28529:1: warning: label ‘fail’ defined but not used [-Wunused-label]
28529 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_engine_cleanup’:
SWIG/_m2crypto_wrap.c:28540:1: warning: label ‘fail’ defined but not used [-Wunused-label]
28540 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_engine_new’:
SWIG/_m2crypto_wrap.c:28552:1: warning: label ‘fail’ defined but not used [-Wunused-label]
28552 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_ui_openssl’:
SWIG/_m2crypto_wrap.c:28801:1: warning: label ‘fail’ defined but not used [-Wunused-label]
28801 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new__cbd_t’:
SWIG/_m2crypto_wrap.c:28929:1: warning: label ‘fail’ defined but not used [-Wunused-label]
28929 | fail:
| ^~~~
SWIG/_m2crypto_wrap.c: At top level:
SWIG/_m2crypto_wrap.c:30280:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30280 | (binaryfunc) 0, /* nb_add */
| ^
SWIG/_m2crypto_wrap.c:30280:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async.am_await’)
SWIG/_m2crypto_wrap.c:30281:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30281 | (binaryfunc) 0, /* nb_subtract */
| ^
SWIG/_m2crypto_wrap.c:30281:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async.am_aiter’)
SWIG/_m2crypto_wrap.c:30282:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30282 | (binaryfunc) 0, /* nb_multiply */
| ^
SWIG/_m2crypto_wrap.c:30282:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async.am_anext’)
SWIG/_m2crypto_wrap.c:30286:5: warning: excess elements in struct initializer
30286 | (binaryfunc) 0, /* nb_remainder */
| ^
SWIG/_m2crypto_wrap.c:30286:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30287:5: warning: excess elements in struct initializer
30287 | (binaryfunc) 0, /* nb_divmod */
| ^
SWIG/_m2crypto_wrap.c:30287:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30288:5: warning: excess elements in struct initializer
30288 | (ternaryfunc) 0, /* nb_power */
| ^
SWIG/_m2crypto_wrap.c:30288:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30289:5: warning: excess elements in struct initializer
30289 | (unaryfunc) 0, /* nb_negative */
| ^
SWIG/_m2crypto_wrap.c:30289:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30290:5: warning: excess elements in struct initializer
30290 | (unaryfunc) 0, /* nb_positive */
| ^
SWIG/_m2crypto_wrap.c:30290:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30291:5: warning: excess elements in struct initializer
30291 | (unaryfunc) 0, /* nb_absolute */
| ^
SWIG/_m2crypto_wrap.c:30291:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30292:5: warning: excess elements in struct initializer
30292 | (inquiry) 0, /* nb_nonzero */
| ^
SWIG/_m2crypto_wrap.c:30292:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30293:5: warning: excess elements in struct initializer
30293 | (unaryfunc) 0, /* nb_invert */
| ^
SWIG/_m2crypto_wrap.c:30293:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30294:5: warning: excess elements in struct initializer
30294 | (binaryfunc) 0, /* nb_lshift */
| ^
SWIG/_m2crypto_wrap.c:30294:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30295:5: warning: excess elements in struct initializer
30295 | (binaryfunc) 0, /* nb_rshift */
| ^
SWIG/_m2crypto_wrap.c:30295:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30296:5: warning: excess elements in struct initializer
30296 | (binaryfunc) 0, /* nb_and */
| ^
SWIG/_m2crypto_wrap.c:30296:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30297:5: warning: excess elements in struct initializer
30297 | (binaryfunc) 0, /* nb_xor */
| ^
SWIG/_m2crypto_wrap.c:30297:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30298:5: warning: excess elements in struct initializer
30298 | (binaryfunc) 0, /* nb_or */
| ^
SWIG/_m2crypto_wrap.c:30298:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30302:5: warning: excess elements in struct initializer
30302 | (unaryfunc) 0, /* nb_int */
| ^
SWIG/_m2crypto_wrap.c:30302:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30304:5: warning: excess elements in struct initializer
30304 | (void*) 0, /* nb_reserved */
| ^
SWIG/_m2crypto_wrap.c:30304:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30308:5: warning: excess elements in struct initializer
30308 | (unaryfunc) 0, /* nb_float */
| ^
SWIG/_m2crypto_wrap.c:30308:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30313:5: warning: excess elements in struct initializer
30313 | (binaryfunc) 0, /* nb_inplace_add */
| ^
SWIG/_m2crypto_wrap.c:30313:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30314:5: warning: excess elements in struct initializer
30314 | (binaryfunc) 0, /* nb_inplace_subtract */
| ^
SWIG/_m2crypto_wrap.c:30314:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30315:5: warning: excess elements in struct initializer
30315 | (binaryfunc) 0, /* nb_inplace_multiply */
| ^
SWIG/_m2crypto_wrap.c:30315:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30319:5: warning: excess elements in struct initializer
30319 | (binaryfunc) 0, /* nb_inplace_remainder */
| ^
SWIG/_m2crypto_wrap.c:30319:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30320:5: warning: excess elements in struct initializer
30320 | (ternaryfunc) 0, /* nb_inplace_power */
| ^
SWIG/_m2crypto_wrap.c:30320:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30321:5: warning: excess elements in struct initializer
30321 | (binaryfunc) 0, /* nb_inplace_lshift */
| ^
SWIG/_m2crypto_wrap.c:30321:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30322:5: warning: excess elements in struct initializer
30322 | (binaryfunc) 0, /* nb_inplace_rshift */
| ^
SWIG/_m2crypto_wrap.c:30322:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30323:5: warning: excess elements in struct initializer
30323 | (binaryfunc) 0, /* nb_inplace_and */
| ^
SWIG/_m2crypto_wrap.c:30323:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30324:5: warning: excess elements in struct initializer
30324 | (binaryfunc) 0, /* nb_inplace_xor */
| ^
SWIG/_m2crypto_wrap.c:30324:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30325:5: warning: excess elements in struct initializer
30325 | (binaryfunc) 0, /* nb_inplace_or */
| ^
SWIG/_m2crypto_wrap.c:30325:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30326:5: warning: excess elements in struct initializer
30326 | (binaryfunc) 0, /* nb_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30326:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30327:5: warning: excess elements in struct initializer
30327 | (binaryfunc) 0, /* nb_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30327:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30328:5: warning: excess elements in struct initializer
30328 | (binaryfunc) 0, /* nb_inplace_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30328:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30329:5: warning: excess elements in struct initializer
30329 | (binaryfunc) 0, /* nb_inplace_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30329:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30331:5: warning: excess elements in struct initializer
30331 | (unaryfunc) 0, /* nb_index */
| ^
SWIG/_m2crypto_wrap.c:30331:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_async’)
SWIG/_m2crypto_wrap.c:30335:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} [-Wincompatible-pointer-types]
30335 | (lenfunc) 0, /* mp_length */
| ^
SWIG/_m2crypto_wrap.c:30335:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_number.nb_add’)
SWIG/_m2crypto_wrap.c:30337:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30337 | (objobjargproc) 0, /* mp_ass_subscript */
| ^
SWIG/_m2crypto_wrap.c:30337:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_number.nb_multiply’)
SWIG/_m2crypto_wrap.c:30342:5: warning: initialization of ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, Py_ssize_t)’ {aka ‘struct _object * (*)(struct _object *, long int)’} [-Wincompatible-pointer-types]
30342 | (ssizeargfunc) 0, /* sq_repeat */
| ^
SWIG/_m2crypto_wrap.c:30342:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping.mp_ass_subscript’)
SWIG/_m2crypto_wrap.c:30343:5: warning: excess elements in struct initializer
30343 | (ssizeargfunc) 0, /* sq_item */
| ^
SWIG/_m2crypto_wrap.c:30343:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30345:5: warning: excess elements in struct initializer
30345 | (void*) 0, /* was_sq_slice */
| ^
SWIG/_m2crypto_wrap.c:30345:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30349:5: warning: excess elements in struct initializer
30349 | (ssizeobjargproc) 0, /* sq_ass_item */
| ^
SWIG/_m2crypto_wrap.c:30349:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30351:5: warning: excess elements in struct initializer
30351 | (void*) 0, /* was_sq_ass_slice */
| ^
SWIG/_m2crypto_wrap.c:30351:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30355:5: warning: excess elements in struct initializer
30355 | (objobjproc) 0, /* sq_contains */
| ^
SWIG/_m2crypto_wrap.c:30355:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30356:5: warning: excess elements in struct initializer
30356 | (binaryfunc) 0, /* sq_inplace_concat */
| ^
SWIG/_m2crypto_wrap.c:30356:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30357:5: warning: excess elements in struct initializer
30357 | (ssizeargfunc) 0, /* sq_inplace_repeat */
| ^
SWIG/_m2crypto_wrap.c:30357:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30367:5: warning: initialization of ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} [-Wincompatible-pointer-types]
30367 | (getbufferproc) 0, /* bf_getbuffer */
| ^
SWIG/_m2crypto_wrap.c:30367:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_sequence.sq_length’)
SWIG/_m2crypto_wrap.c:30368:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} [-Wincompatible-pointer-types]
30368 | (releasebufferproc) 0, /* bf_releasebuffer */
| ^
SWIG/_m2crypto_wrap.c:30368:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_sequence.sq_concat’)
SWIG/_m2crypto_wrap.c:30371:5: warning: initialization of ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30371 | (PyObject*) 0, /* ht_name */
| ^
SWIG/_m2crypto_wrap.c:30371:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_buffer.bf_getbuffer’)
SWIG/_m2crypto_wrap.c:30372:5: warning: initialization of ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30372 | (PyObject*) 0, /* ht_slots */
| ^
SWIG/_m2crypto_wrap.c:30372:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_type.as_buffer.bf_releasebuffer’)
SWIG/_m2crypto_wrap.c:30214:56: warning: missing braces around initializer [-Wmissing-braces]
30214 | static PyHeapTypeObject SwigPyBuiltin__stack_st_type = {
| ^
......
30371 | (PyObject*) 0, /* ht_name */
| {
30372 | (PyObject*) 0, /* ht_slots */
30373 | };
| }
SWIG/_m2crypto_wrap.c:30474:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30474 | (binaryfunc) 0, /* nb_add */
| ^
SWIG/_m2crypto_wrap.c:30474:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async.am_await’)
SWIG/_m2crypto_wrap.c:30475:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30475 | (binaryfunc) 0, /* nb_subtract */
| ^
SWIG/_m2crypto_wrap.c:30475:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async.am_aiter’)
SWIG/_m2crypto_wrap.c:30476:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30476 | (binaryfunc) 0, /* nb_multiply */
| ^
SWIG/_m2crypto_wrap.c:30476:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async.am_anext’)
SWIG/_m2crypto_wrap.c:30480:5: warning: excess elements in struct initializer
30480 | (binaryfunc) 0, /* nb_remainder */
| ^
SWIG/_m2crypto_wrap.c:30480:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30481:5: warning: excess elements in struct initializer
30481 | (binaryfunc) 0, /* nb_divmod */
| ^
SWIG/_m2crypto_wrap.c:30481:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30482:5: warning: excess elements in struct initializer
30482 | (ternaryfunc) 0, /* nb_power */
| ^
SWIG/_m2crypto_wrap.c:30482:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30483:5: warning: excess elements in struct initializer
30483 | (unaryfunc) 0, /* nb_negative */
| ^
SWIG/_m2crypto_wrap.c:30483:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30484:5: warning: excess elements in struct initializer
30484 | (unaryfunc) 0, /* nb_positive */
| ^
SWIG/_m2crypto_wrap.c:30484:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30485:5: warning: excess elements in struct initializer
30485 | (unaryfunc) 0, /* nb_absolute */
| ^
SWIG/_m2crypto_wrap.c:30485:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30486:5: warning: excess elements in struct initializer
30486 | (inquiry) 0, /* nb_nonzero */
| ^
SWIG/_m2crypto_wrap.c:30486:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30487:5: warning: excess elements in struct initializer
30487 | (unaryfunc) 0, /* nb_invert */
| ^
SWIG/_m2crypto_wrap.c:30487:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30488:5: warning: excess elements in struct initializer
30488 | (binaryfunc) 0, /* nb_lshift */
| ^
SWIG/_m2crypto_wrap.c:30488:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30489:5: warning: excess elements in struct initializer
30489 | (binaryfunc) 0, /* nb_rshift */
| ^
SWIG/_m2crypto_wrap.c:30489:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30490:5: warning: excess elements in struct initializer
30490 | (binaryfunc) 0, /* nb_and */
| ^
SWIG/_m2crypto_wrap.c:30490:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30491:5: warning: excess elements in struct initializer
30491 | (binaryfunc) 0, /* nb_xor */
| ^
SWIG/_m2crypto_wrap.c:30491:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30492:5: warning: excess elements in struct initializer
30492 | (binaryfunc) 0, /* nb_or */
| ^
SWIG/_m2crypto_wrap.c:30492:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30496:5: warning: excess elements in struct initializer
30496 | (unaryfunc) 0, /* nb_int */
| ^
SWIG/_m2crypto_wrap.c:30496:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30498:5: warning: excess elements in struct initializer
30498 | (void*) 0, /* nb_reserved */
| ^
SWIG/_m2crypto_wrap.c:30498:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30502:5: warning: excess elements in struct initializer
30502 | (unaryfunc) 0, /* nb_float */
| ^
SWIG/_m2crypto_wrap.c:30502:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30507:5: warning: excess elements in struct initializer
30507 | (binaryfunc) 0, /* nb_inplace_add */
| ^
SWIG/_m2crypto_wrap.c:30507:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30508:5: warning: excess elements in struct initializer
30508 | (binaryfunc) 0, /* nb_inplace_subtract */
| ^
SWIG/_m2crypto_wrap.c:30508:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30509:5: warning: excess elements in struct initializer
30509 | (binaryfunc) 0, /* nb_inplace_multiply */
| ^
SWIG/_m2crypto_wrap.c:30509:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30513:5: warning: excess elements in struct initializer
30513 | (binaryfunc) 0, /* nb_inplace_remainder */
| ^
SWIG/_m2crypto_wrap.c:30513:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30514:5: warning: excess elements in struct initializer
30514 | (ternaryfunc) 0, /* nb_inplace_power */
| ^
SWIG/_m2crypto_wrap.c:30514:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30515:5: warning: excess elements in struct initializer
30515 | (binaryfunc) 0, /* nb_inplace_lshift */
| ^
SWIG/_m2crypto_wrap.c:30515:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30516:5: warning: excess elements in struct initializer
30516 | (binaryfunc) 0, /* nb_inplace_rshift */
| ^
SWIG/_m2crypto_wrap.c:30516:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30517:5: warning: excess elements in struct initializer
30517 | (binaryfunc) 0, /* nb_inplace_and */
| ^
SWIG/_m2crypto_wrap.c:30517:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30518:5: warning: excess elements in struct initializer
30518 | (binaryfunc) 0, /* nb_inplace_xor */
| ^
SWIG/_m2crypto_wrap.c:30518:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30519:5: warning: excess elements in struct initializer
30519 | (binaryfunc) 0, /* nb_inplace_or */
| ^
SWIG/_m2crypto_wrap.c:30519:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30520:5: warning: excess elements in struct initializer
30520 | (binaryfunc) 0, /* nb_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30520:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30521:5: warning: excess elements in struct initializer
30521 | (binaryfunc) 0, /* nb_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30521:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30522:5: warning: excess elements in struct initializer
30522 | (binaryfunc) 0, /* nb_inplace_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30522:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30523:5: warning: excess elements in struct initializer
30523 | (binaryfunc) 0, /* nb_inplace_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30523:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30525:5: warning: excess elements in struct initializer
30525 | (unaryfunc) 0, /* nb_index */
| ^
SWIG/_m2crypto_wrap.c:30525:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_async’)
SWIG/_m2crypto_wrap.c:30529:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} [-Wincompatible-pointer-types]
30529 | (lenfunc) 0, /* mp_length */
| ^
SWIG/_m2crypto_wrap.c:30529:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_number.nb_add’)
SWIG/_m2crypto_wrap.c:30531:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30531 | (objobjargproc) 0, /* mp_ass_subscript */
| ^
SWIG/_m2crypto_wrap.c:30531:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_number.nb_multiply’)
SWIG/_m2crypto_wrap.c:30536:5: warning: initialization of ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, Py_ssize_t)’ {aka ‘struct _object * (*)(struct _object *, long int)’} [-Wincompatible-pointer-types]
30536 | (ssizeargfunc) 0, /* sq_repeat */
| ^
SWIG/_m2crypto_wrap.c:30536:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping.mp_ass_subscript’)
SWIG/_m2crypto_wrap.c:30537:5: warning: excess elements in struct initializer
30537 | (ssizeargfunc) 0, /* sq_item */
| ^
SWIG/_m2crypto_wrap.c:30537:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30539:5: warning: excess elements in struct initializer
30539 | (void*) 0, /* was_sq_slice */
| ^
SWIG/_m2crypto_wrap.c:30539:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30543:5: warning: excess elements in struct initializer
30543 | (ssizeobjargproc) 0, /* sq_ass_item */
| ^
SWIG/_m2crypto_wrap.c:30543:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30545:5: warning: excess elements in struct initializer
30545 | (void*) 0, /* was_sq_ass_slice */
| ^
SWIG/_m2crypto_wrap.c:30545:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30549:5: warning: excess elements in struct initializer
30549 | (objobjproc) 0, /* sq_contains */
| ^
SWIG/_m2crypto_wrap.c:30549:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30550:5: warning: excess elements in struct initializer
30550 | (binaryfunc) 0, /* sq_inplace_concat */
| ^
SWIG/_m2crypto_wrap.c:30550:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30551:5: warning: excess elements in struct initializer
30551 | (ssizeargfunc) 0, /* sq_inplace_repeat */
| ^
SWIG/_m2crypto_wrap.c:30551:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30561:5: warning: initialization of ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} [-Wincompatible-pointer-types]
30561 | (getbufferproc) 0, /* bf_getbuffer */
| ^
SWIG/_m2crypto_wrap.c:30561:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_sequence.sq_length’)
SWIG/_m2crypto_wrap.c:30562:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} [-Wincompatible-pointer-types]
30562 | (releasebufferproc) 0, /* bf_releasebuffer */
| ^
SWIG/_m2crypto_wrap.c:30562:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_sequence.sq_concat’)
SWIG/_m2crypto_wrap.c:30565:5: warning: initialization of ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30565 | (PyObject*) 0, /* ht_name */
| ^
SWIG/_m2crypto_wrap.c:30565:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_buffer.bf_getbuffer’)
SWIG/_m2crypto_wrap.c:30566:5: warning: initialization of ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30566 | (PyObject*) 0, /* ht_slots */
| ^
SWIG/_m2crypto_wrap.c:30566:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_STRING_type.as_buffer.bf_releasebuffer’)
SWIG/_m2crypto_wrap.c:30408:71: warning: missing braces around initializer [-Wmissing-braces]
30408 | static PyHeapTypeObject SwigPyBuiltin__stack_st_OPENSSL_STRING_type = {
| ^
......
30565 | (PyObject*) 0, /* ht_name */
| {
30566 | (PyObject*) 0, /* ht_slots */
30567 | };
| }
SWIG/_m2crypto_wrap.c:30668:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30668 | (binaryfunc) 0, /* nb_add */
| ^
SWIG/_m2crypto_wrap.c:30668:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async.am_await’)
SWIG/_m2crypto_wrap.c:30669:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30669 | (binaryfunc) 0, /* nb_subtract */
| ^
SWIG/_m2crypto_wrap.c:30669:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async.am_aiter’)
SWIG/_m2crypto_wrap.c:30670:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30670 | (binaryfunc) 0, /* nb_multiply */
| ^
SWIG/_m2crypto_wrap.c:30670:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async.am_anext’)
SWIG/_m2crypto_wrap.c:30674:5: warning: excess elements in struct initializer
30674 | (binaryfunc) 0, /* nb_remainder */
| ^
SWIG/_m2crypto_wrap.c:30674:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30675:5: warning: excess elements in struct initializer
30675 | (binaryfunc) 0, /* nb_divmod */
| ^
SWIG/_m2crypto_wrap.c:30675:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30676:5: warning: excess elements in struct initializer
30676 | (ternaryfunc) 0, /* nb_power */
| ^
SWIG/_m2crypto_wrap.c:30676:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30677:5: warning: excess elements in struct initializer
30677 | (unaryfunc) 0, /* nb_negative */
| ^
SWIG/_m2crypto_wrap.c:30677:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30678:5: warning: excess elements in struct initializer
30678 | (unaryfunc) 0, /* nb_positive */
| ^
SWIG/_m2crypto_wrap.c:30678:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30679:5: warning: excess elements in struct initializer
30679 | (unaryfunc) 0, /* nb_absolute */
| ^
SWIG/_m2crypto_wrap.c:30679:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30680:5: warning: excess elements in struct initializer
30680 | (inquiry) 0, /* nb_nonzero */
| ^
SWIG/_m2crypto_wrap.c:30680:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30681:5: warning: excess elements in struct initializer
30681 | (unaryfunc) 0, /* nb_invert */
| ^
SWIG/_m2crypto_wrap.c:30681:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30682:5: warning: excess elements in struct initializer
30682 | (binaryfunc) 0, /* nb_lshift */
| ^
SWIG/_m2crypto_wrap.c:30682:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30683:5: warning: excess elements in struct initializer
30683 | (binaryfunc) 0, /* nb_rshift */
| ^
SWIG/_m2crypto_wrap.c:30683:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30684:5: warning: excess elements in struct initializer
30684 | (binaryfunc) 0, /* nb_and */
| ^
SWIG/_m2crypto_wrap.c:30684:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30685:5: warning: excess elements in struct initializer
30685 | (binaryfunc) 0, /* nb_xor */
| ^
SWIG/_m2crypto_wrap.c:30685:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30686:5: warning: excess elements in struct initializer
30686 | (binaryfunc) 0, /* nb_or */
| ^
SWIG/_m2crypto_wrap.c:30686:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30690:5: warning: excess elements in struct initializer
30690 | (unaryfunc) 0, /* nb_int */
| ^
SWIG/_m2crypto_wrap.c:30690:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30692:5: warning: excess elements in struct initializer
30692 | (void*) 0, /* nb_reserved */
| ^
SWIG/_m2crypto_wrap.c:30692:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30696:5: warning: excess elements in struct initializer
30696 | (unaryfunc) 0, /* nb_float */
| ^
SWIG/_m2crypto_wrap.c:30696:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30701:5: warning: excess elements in struct initializer
30701 | (binaryfunc) 0, /* nb_inplace_add */
| ^
SWIG/_m2crypto_wrap.c:30701:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30702:5: warning: excess elements in struct initializer
30702 | (binaryfunc) 0, /* nb_inplace_subtract */
| ^
SWIG/_m2crypto_wrap.c:30702:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30703:5: warning: excess elements in struct initializer
30703 | (binaryfunc) 0, /* nb_inplace_multiply */
| ^
SWIG/_m2crypto_wrap.c:30703:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30707:5: warning: excess elements in struct initializer
30707 | (binaryfunc) 0, /* nb_inplace_remainder */
| ^
SWIG/_m2crypto_wrap.c:30707:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30708:5: warning: excess elements in struct initializer
30708 | (ternaryfunc) 0, /* nb_inplace_power */
| ^
SWIG/_m2crypto_wrap.c:30708:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30709:5: warning: excess elements in struct initializer
30709 | (binaryfunc) 0, /* nb_inplace_lshift */
| ^
SWIG/_m2crypto_wrap.c:30709:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30710:5: warning: excess elements in struct initializer
30710 | (binaryfunc) 0, /* nb_inplace_rshift */
| ^
SWIG/_m2crypto_wrap.c:30710:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30711:5: warning: excess elements in struct initializer
30711 | (binaryfunc) 0, /* nb_inplace_and */
| ^
SWIG/_m2crypto_wrap.c:30711:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30712:5: warning: excess elements in struct initializer
30712 | (binaryfunc) 0, /* nb_inplace_xor */
| ^
SWIG/_m2crypto_wrap.c:30712:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30713:5: warning: excess elements in struct initializer
30713 | (binaryfunc) 0, /* nb_inplace_or */
| ^
SWIG/_m2crypto_wrap.c:30713:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30714:5: warning: excess elements in struct initializer
30714 | (binaryfunc) 0, /* nb_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30714:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30715:5: warning: excess elements in struct initializer
30715 | (binaryfunc) 0, /* nb_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30715:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30716:5: warning: excess elements in struct initializer
30716 | (binaryfunc) 0, /* nb_inplace_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30716:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30717:5: warning: excess elements in struct initializer
30717 | (binaryfunc) 0, /* nb_inplace_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30717:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30719:5: warning: excess elements in struct initializer
30719 | (unaryfunc) 0, /* nb_index */
| ^
SWIG/_m2crypto_wrap.c:30719:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_async’)
SWIG/_m2crypto_wrap.c:30723:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} [-Wincompatible-pointer-types]
30723 | (lenfunc) 0, /* mp_length */
| ^
SWIG/_m2crypto_wrap.c:30723:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_number.nb_add’)
SWIG/_m2crypto_wrap.c:30725:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30725 | (objobjargproc) 0, /* mp_ass_subscript */
| ^
SWIG/_m2crypto_wrap.c:30725:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_number.nb_multiply’)
SWIG/_m2crypto_wrap.c:30730:5: warning: initialization of ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, Py_ssize_t)’ {aka ‘struct _object * (*)(struct _object *, long int)’} [-Wincompatible-pointer-types]
30730 | (ssizeargfunc) 0, /* sq_repeat */
| ^
SWIG/_m2crypto_wrap.c:30730:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping.mp_ass_subscript’)
SWIG/_m2crypto_wrap.c:30731:5: warning: excess elements in struct initializer
30731 | (ssizeargfunc) 0, /* sq_item */
| ^
SWIG/_m2crypto_wrap.c:30731:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30733:5: warning: excess elements in struct initializer
30733 | (void*) 0, /* was_sq_slice */
| ^
SWIG/_m2crypto_wrap.c:30733:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30737:5: warning: excess elements in struct initializer
30737 | (ssizeobjargproc) 0, /* sq_ass_item */
| ^
SWIG/_m2crypto_wrap.c:30737:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30739:5: warning: excess elements in struct initializer
30739 | (void*) 0, /* was_sq_ass_slice */
| ^
SWIG/_m2crypto_wrap.c:30739:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30743:5: warning: excess elements in struct initializer
30743 | (objobjproc) 0, /* sq_contains */
| ^
SWIG/_m2crypto_wrap.c:30743:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30744:5: warning: excess elements in struct initializer
30744 | (binaryfunc) 0, /* sq_inplace_concat */
| ^
SWIG/_m2crypto_wrap.c:30744:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30745:5: warning: excess elements in struct initializer
30745 | (ssizeargfunc) 0, /* sq_inplace_repeat */
| ^
SWIG/_m2crypto_wrap.c:30745:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30755:5: warning: initialization of ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} [-Wincompatible-pointer-types]
30755 | (getbufferproc) 0, /* bf_getbuffer */
| ^
SWIG/_m2crypto_wrap.c:30755:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_sequence.sq_length’)
SWIG/_m2crypto_wrap.c:30756:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} [-Wincompatible-pointer-types]
30756 | (releasebufferproc) 0, /* bf_releasebuffer */
| ^
SWIG/_m2crypto_wrap.c:30756:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_sequence.sq_concat’)
SWIG/_m2crypto_wrap.c:30759:5: warning: initialization of ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30759 | (PyObject*) 0, /* ht_name */
| ^
SWIG/_m2crypto_wrap.c:30759:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_buffer.bf_getbuffer’)
SWIG/_m2crypto_wrap.c:30760:5: warning: initialization of ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30760 | (PyObject*) 0, /* ht_slots */
| ^
SWIG/_m2crypto_wrap.c:30760:5: note: (near initialization for ‘SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type.as_buffer.bf_releasebuffer’)
SWIG/_m2crypto_wrap.c:30602:70: warning: missing braces around initializer [-Wmissing-braces]
30602 | static PyHeapTypeObject SwigPyBuiltin__stack_st_OPENSSL_BLOCK_type = {
| ^
......
30759 | (PyObject*) 0, /* ht_name */
| {
30760 | (PyObject*) 0, /* ht_slots */
30761 | };
| }
SWIG/_m2crypto_wrap.c:30862:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30862 | (binaryfunc) 0, /* nb_add */
| ^
SWIG/_m2crypto_wrap.c:30862:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async.am_await’)
SWIG/_m2crypto_wrap.c:30863:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30863 | (binaryfunc) 0, /* nb_subtract */
| ^
SWIG/_m2crypto_wrap.c:30863:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async.am_aiter’)
SWIG/_m2crypto_wrap.c:30864:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30864 | (binaryfunc) 0, /* nb_multiply */
| ^
SWIG/_m2crypto_wrap.c:30864:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async.am_anext’)
SWIG/_m2crypto_wrap.c:30868:5: warning: excess elements in struct initializer
30868 | (binaryfunc) 0, /* nb_remainder */
| ^
SWIG/_m2crypto_wrap.c:30868:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30869:5: warning: excess elements in struct initializer
30869 | (binaryfunc) 0, /* nb_divmod */
| ^
SWIG/_m2crypto_wrap.c:30869:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30870:5: warning: excess elements in struct initializer
30870 | (ternaryfunc) 0, /* nb_power */
| ^
SWIG/_m2crypto_wrap.c:30870:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30871:5: warning: excess elements in struct initializer
30871 | (unaryfunc) 0, /* nb_negative */
| ^
SWIG/_m2crypto_wrap.c:30871:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30872:5: warning: excess elements in struct initializer
30872 | (unaryfunc) 0, /* nb_positive */
| ^
SWIG/_m2crypto_wrap.c:30872:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30873:5: warning: excess elements in struct initializer
30873 | (unaryfunc) 0, /* nb_absolute */
| ^
SWIG/_m2crypto_wrap.c:30873:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30874:5: warning: excess elements in struct initializer
30874 | (inquiry) 0, /* nb_nonzero */
| ^
SWIG/_m2crypto_wrap.c:30874:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30875:5: warning: excess elements in struct initializer
30875 | (unaryfunc) 0, /* nb_invert */
| ^
SWIG/_m2crypto_wrap.c:30875:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30876:5: warning: excess elements in struct initializer
30876 | (binaryfunc) 0, /* nb_lshift */
| ^
SWIG/_m2crypto_wrap.c:30876:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30877:5: warning: excess elements in struct initializer
30877 | (binaryfunc) 0, /* nb_rshift */
| ^
SWIG/_m2crypto_wrap.c:30877:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30878:5: warning: excess elements in struct initializer
30878 | (binaryfunc) 0, /* nb_and */
| ^
SWIG/_m2crypto_wrap.c:30878:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30879:5: warning: excess elements in struct initializer
30879 | (binaryfunc) 0, /* nb_xor */
| ^
SWIG/_m2crypto_wrap.c:30879:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30880:5: warning: excess elements in struct initializer
30880 | (binaryfunc) 0, /* nb_or */
| ^
SWIG/_m2crypto_wrap.c:30880:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30884:5: warning: excess elements in struct initializer
30884 | (unaryfunc) 0, /* nb_int */
| ^
SWIG/_m2crypto_wrap.c:30884:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30886:5: warning: excess elements in struct initializer
30886 | (void*) 0, /* nb_reserved */
| ^
SWIG/_m2crypto_wrap.c:30886:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30890:5: warning: excess elements in struct initializer
30890 | (unaryfunc) 0, /* nb_float */
| ^
SWIG/_m2crypto_wrap.c:30890:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30895:5: warning: excess elements in struct initializer
30895 | (binaryfunc) 0, /* nb_inplace_add */
| ^
SWIG/_m2crypto_wrap.c:30895:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30896:5: warning: excess elements in struct initializer
30896 | (binaryfunc) 0, /* nb_inplace_subtract */
| ^
SWIG/_m2crypto_wrap.c:30896:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30897:5: warning: excess elements in struct initializer
30897 | (binaryfunc) 0, /* nb_inplace_multiply */
| ^
SWIG/_m2crypto_wrap.c:30897:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30901:5: warning: excess elements in struct initializer
30901 | (binaryfunc) 0, /* nb_inplace_remainder */
| ^
SWIG/_m2crypto_wrap.c:30901:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30902:5: warning: excess elements in struct initializer
30902 | (ternaryfunc) 0, /* nb_inplace_power */
| ^
SWIG/_m2crypto_wrap.c:30902:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30903:5: warning: excess elements in struct initializer
30903 | (binaryfunc) 0, /* nb_inplace_lshift */
| ^
SWIG/_m2crypto_wrap.c:30903:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30904:5: warning: excess elements in struct initializer
30904 | (binaryfunc) 0, /* nb_inplace_rshift */
| ^
SWIG/_m2crypto_wrap.c:30904:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30905:5: warning: excess elements in struct initializer
30905 | (binaryfunc) 0, /* nb_inplace_and */
| ^
SWIG/_m2crypto_wrap.c:30905:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30906:5: warning: excess elements in struct initializer
30906 | (binaryfunc) 0, /* nb_inplace_xor */
| ^
SWIG/_m2crypto_wrap.c:30906:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30907:5: warning: excess elements in struct initializer
30907 | (binaryfunc) 0, /* nb_inplace_or */
| ^
SWIG/_m2crypto_wrap.c:30907:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30908:5: warning: excess elements in struct initializer
30908 | (binaryfunc) 0, /* nb_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30908:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30909:5: warning: excess elements in struct initializer
30909 | (binaryfunc) 0, /* nb_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30909:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30910:5: warning: excess elements in struct initializer
30910 | (binaryfunc) 0, /* nb_inplace_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:30910:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30911:5: warning: excess elements in struct initializer
30911 | (binaryfunc) 0, /* nb_inplace_true_divide */
| ^
SWIG/_m2crypto_wrap.c:30911:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30913:5: warning: excess elements in struct initializer
30913 | (unaryfunc) 0, /* nb_index */
| ^
SWIG/_m2crypto_wrap.c:30913:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_async’)
SWIG/_m2crypto_wrap.c:30917:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} [-Wincompatible-pointer-types]
30917 | (lenfunc) 0, /* mp_length */
| ^
SWIG/_m2crypto_wrap.c:30917:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_number.nb_add’)
SWIG/_m2crypto_wrap.c:30919:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
30919 | (objobjargproc) 0, /* mp_ass_subscript */
| ^
SWIG/_m2crypto_wrap.c:30919:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_number.nb_multiply’)
SWIG/_m2crypto_wrap.c:30924:5: warning: initialization of ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, Py_ssize_t)’ {aka ‘struct _object * (*)(struct _object *, long int)’} [-Wincompatible-pointer-types]
30924 | (ssizeargfunc) 0, /* sq_repeat */
| ^
SWIG/_m2crypto_wrap.c:30924:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping.mp_ass_subscript’)
SWIG/_m2crypto_wrap.c:30925:5: warning: excess elements in struct initializer
30925 | (ssizeargfunc) 0, /* sq_item */
| ^
SWIG/_m2crypto_wrap.c:30925:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30927:5: warning: excess elements in struct initializer
30927 | (void*) 0, /* was_sq_slice */
| ^
SWIG/_m2crypto_wrap.c:30927:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30931:5: warning: excess elements in struct initializer
30931 | (ssizeobjargproc) 0, /* sq_ass_item */
| ^
SWIG/_m2crypto_wrap.c:30931:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30933:5: warning: excess elements in struct initializer
30933 | (void*) 0, /* was_sq_ass_slice */
| ^
SWIG/_m2crypto_wrap.c:30933:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30937:5: warning: excess elements in struct initializer
30937 | (objobjproc) 0, /* sq_contains */
| ^
SWIG/_m2crypto_wrap.c:30937:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30938:5: warning: excess elements in struct initializer
30938 | (binaryfunc) 0, /* sq_inplace_concat */
| ^
SWIG/_m2crypto_wrap.c:30938:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30939:5: warning: excess elements in struct initializer
30939 | (ssizeargfunc) 0, /* sq_inplace_repeat */
| ^
SWIG/_m2crypto_wrap.c:30939:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_mapping’)
SWIG/_m2crypto_wrap.c:30949:5: warning: initialization of ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} [-Wincompatible-pointer-types]
30949 | (getbufferproc) 0, /* bf_getbuffer */
| ^
SWIG/_m2crypto_wrap.c:30949:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_sequence.sq_length’)
SWIG/_m2crypto_wrap.c:30950:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} [-Wincompatible-pointer-types]
30950 | (releasebufferproc) 0, /* bf_releasebuffer */
| ^
SWIG/_m2crypto_wrap.c:30950:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_sequence.sq_concat’)
SWIG/_m2crypto_wrap.c:30953:5: warning: initialization of ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30953 | (PyObject*) 0, /* ht_name */
| ^
SWIG/_m2crypto_wrap.c:30953:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_buffer.bf_getbuffer’)
SWIG/_m2crypto_wrap.c:30954:5: warning: initialization of ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
30954 | (PyObject*) 0, /* ht_slots */
| ^
SWIG/_m2crypto_wrap.c:30954:5: note: (near initialization for ‘SwigPyBuiltin__pyfd_struct_type.as_buffer.bf_releasebuffer’)
SWIG/_m2crypto_wrap.c:30796:59: warning: missing braces around initializer [-Wmissing-braces]
30796 | static PyHeapTypeObject SwigPyBuiltin__pyfd_struct_type = {
| ^
......
30953 | (PyObject*) 0, /* ht_name */
| {
30954 | (PyObject*) 0, /* ht_slots */
30955 | };
| }
SWIG/_m2crypto_wrap.c:31059:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
31059 | (binaryfunc) 0, /* nb_add */
| ^
SWIG/_m2crypto_wrap.c:31059:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async.am_await’)
SWIG/_m2crypto_wrap.c:31060:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
31060 | (binaryfunc) 0, /* nb_subtract */
| ^
SWIG/_m2crypto_wrap.c:31060:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async.am_aiter’)
SWIG/_m2crypto_wrap.c:31061:5: warning: initialization of ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
31061 | (binaryfunc) 0, /* nb_multiply */
| ^
SWIG/_m2crypto_wrap.c:31061:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async.am_anext’)
SWIG/_m2crypto_wrap.c:31065:5: warning: excess elements in struct initializer
31065 | (binaryfunc) 0, /* nb_remainder */
| ^
SWIG/_m2crypto_wrap.c:31065:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31066:5: warning: excess elements in struct initializer
31066 | (binaryfunc) 0, /* nb_divmod */
| ^
SWIG/_m2crypto_wrap.c:31066:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31067:5: warning: excess elements in struct initializer
31067 | (ternaryfunc) 0, /* nb_power */
| ^
SWIG/_m2crypto_wrap.c:31067:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31068:5: warning: excess elements in struct initializer
31068 | (unaryfunc) 0, /* nb_negative */
| ^
SWIG/_m2crypto_wrap.c:31068:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31069:5: warning: excess elements in struct initializer
31069 | (unaryfunc) 0, /* nb_positive */
| ^
SWIG/_m2crypto_wrap.c:31069:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31070:5: warning: excess elements in struct initializer
31070 | (unaryfunc) 0, /* nb_absolute */
| ^
SWIG/_m2crypto_wrap.c:31070:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31071:5: warning: excess elements in struct initializer
31071 | (inquiry) 0, /* nb_nonzero */
| ^
SWIG/_m2crypto_wrap.c:31071:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31072:5: warning: excess elements in struct initializer
31072 | (unaryfunc) 0, /* nb_invert */
| ^
SWIG/_m2crypto_wrap.c:31072:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31073:5: warning: excess elements in struct initializer
31073 | (binaryfunc) 0, /* nb_lshift */
| ^
SWIG/_m2crypto_wrap.c:31073:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31074:5: warning: excess elements in struct initializer
31074 | (binaryfunc) 0, /* nb_rshift */
| ^
SWIG/_m2crypto_wrap.c:31074:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31075:5: warning: excess elements in struct initializer
31075 | (binaryfunc) 0, /* nb_and */
| ^
SWIG/_m2crypto_wrap.c:31075:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31076:5: warning: excess elements in struct initializer
31076 | (binaryfunc) 0, /* nb_xor */
| ^
SWIG/_m2crypto_wrap.c:31076:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31077:5: warning: excess elements in struct initializer
31077 | (binaryfunc) 0, /* nb_or */
| ^
SWIG/_m2crypto_wrap.c:31077:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31081:5: warning: excess elements in struct initializer
31081 | (unaryfunc) 0, /* nb_int */
| ^
SWIG/_m2crypto_wrap.c:31081:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31083:5: warning: excess elements in struct initializer
31083 | (void*) 0, /* nb_reserved */
| ^
SWIG/_m2crypto_wrap.c:31083:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31087:5: warning: excess elements in struct initializer
31087 | (unaryfunc) 0, /* nb_float */
| ^
SWIG/_m2crypto_wrap.c:31087:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31092:5: warning: excess elements in struct initializer
31092 | (binaryfunc) 0, /* nb_inplace_add */
| ^
SWIG/_m2crypto_wrap.c:31092:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31093:5: warning: excess elements in struct initializer
31093 | (binaryfunc) 0, /* nb_inplace_subtract */
| ^
SWIG/_m2crypto_wrap.c:31093:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31094:5: warning: excess elements in struct initializer
31094 | (binaryfunc) 0, /* nb_inplace_multiply */
| ^
SWIG/_m2crypto_wrap.c:31094:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31098:5: warning: excess elements in struct initializer
31098 | (binaryfunc) 0, /* nb_inplace_remainder */
| ^
SWIG/_m2crypto_wrap.c:31098:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31099:5: warning: excess elements in struct initializer
31099 | (ternaryfunc) 0, /* nb_inplace_power */
| ^
SWIG/_m2crypto_wrap.c:31099:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31100:5: warning: excess elements in struct initializer
31100 | (binaryfunc) 0, /* nb_inplace_lshift */
| ^
SWIG/_m2crypto_wrap.c:31100:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31101:5: warning: excess elements in struct initializer
31101 | (binaryfunc) 0, /* nb_inplace_rshift */
| ^
SWIG/_m2crypto_wrap.c:31101:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31102:5: warning: excess elements in struct initializer
31102 | (binaryfunc) 0, /* nb_inplace_and */
| ^
SWIG/_m2crypto_wrap.c:31102:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31103:5: warning: excess elements in struct initializer
31103 | (binaryfunc) 0, /* nb_inplace_xor */
| ^
SWIG/_m2crypto_wrap.c:31103:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31104:5: warning: excess elements in struct initializer
31104 | (binaryfunc) 0, /* nb_inplace_or */
| ^
SWIG/_m2crypto_wrap.c:31104:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31105:5: warning: excess elements in struct initializer
31105 | (binaryfunc) 0, /* nb_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:31105:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31106:5: warning: excess elements in struct initializer
31106 | (binaryfunc) 0, /* nb_true_divide */
| ^
SWIG/_m2crypto_wrap.c:31106:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31107:5: warning: excess elements in struct initializer
31107 | (binaryfunc) 0, /* nb_inplace_floor_divide */
| ^
SWIG/_m2crypto_wrap.c:31107:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31108:5: warning: excess elements in struct initializer
31108 | (binaryfunc) 0, /* nb_inplace_true_divide */
| ^
SWIG/_m2crypto_wrap.c:31108:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31110:5: warning: excess elements in struct initializer
31110 | (unaryfunc) 0, /* nb_index */
| ^
SWIG/_m2crypto_wrap.c:31110:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_async’)
SWIG/_m2crypto_wrap.c:31114:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} [-Wincompatible-pointer-types]
31114 | (lenfunc) 0, /* mp_length */
| ^
SWIG/_m2crypto_wrap.c:31114:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_number.nb_add’)
SWIG/_m2crypto_wrap.c:31116:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types]
31116 | (objobjargproc) 0, /* mp_ass_subscript */
| ^
SWIG/_m2crypto_wrap.c:31116:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_number.nb_multiply’)
SWIG/_m2crypto_wrap.c:31121:5: warning: initialization of ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *, Py_ssize_t)’ {aka ‘struct _object * (*)(struct _object *, long int)’} [-Wincompatible-pointer-types]
31121 | (ssizeargfunc) 0, /* sq_repeat */
| ^
SWIG/_m2crypto_wrap.c:31121:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping.mp_ass_subscript’)
SWIG/_m2crypto_wrap.c:31122:5: warning: excess elements in struct initializer
31122 | (ssizeargfunc) 0, /* sq_item */
| ^
SWIG/_m2crypto_wrap.c:31122:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping’)
SWIG/_m2crypto_wrap.c:31124:5: warning: excess elements in struct initializer
31124 | (void*) 0, /* was_sq_slice */
| ^
SWIG/_m2crypto_wrap.c:31124:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping’)
SWIG/_m2crypto_wrap.c:31128:5: warning: excess elements in struct initializer
31128 | (ssizeobjargproc) 0, /* sq_ass_item */
| ^
SWIG/_m2crypto_wrap.c:31128:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping’)
SWIG/_m2crypto_wrap.c:31130:5: warning: excess elements in struct initializer
31130 | (void*) 0, /* was_sq_ass_slice */
| ^
SWIG/_m2crypto_wrap.c:31130:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping’)
SWIG/_m2crypto_wrap.c:31134:5: warning: excess elements in struct initializer
31134 | (objobjproc) 0, /* sq_contains */
| ^
SWIG/_m2crypto_wrap.c:31134:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping’)
SWIG/_m2crypto_wrap.c:31135:5: warning: excess elements in struct initializer
31135 | (binaryfunc) 0, /* sq_inplace_concat */
| ^
SWIG/_m2crypto_wrap.c:31135:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping’)
SWIG/_m2crypto_wrap.c:31136:5: warning: excess elements in struct initializer
31136 | (ssizeargfunc) 0, /* sq_inplace_repeat */
| ^
SWIG/_m2crypto_wrap.c:31136:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_mapping’)
SWIG/_m2crypto_wrap.c:31146:5: warning: initialization of ‘Py_ssize_t (*)(PyObject *)’ {aka ‘long int (*)(struct _object *)’} from incompatible pointer type ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} [-Wincompatible-pointer-types]
31146 | (getbufferproc) 0, /* bf_getbuffer */
| ^
SWIG/_m2crypto_wrap.c:31146:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_sequence.sq_length’)
SWIG/_m2crypto_wrap.c:31147:5: warning: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} [-Wincompatible-pointer-types]
31147 | (releasebufferproc) 0, /* bf_releasebuffer */
| ^
SWIG/_m2crypto_wrap.c:31147:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_sequence.sq_concat’)
SWIG/_m2crypto_wrap.c:31150:5: warning: initialization of ‘int (*)(PyObject *, Py_buffer *, int)’ {aka ‘int (*)(struct _object *, struct bufferinfo *, int)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
31150 | (PyObject*) 0, /* ht_name */
| ^
SWIG/_m2crypto_wrap.c:31150:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_buffer.bf_getbuffer’)
SWIG/_m2crypto_wrap.c:31151:5: warning: initialization of ‘void (*)(PyObject *, Py_buffer *)’ {aka ‘void (*)(struct _object *, struct bufferinfo *)’} from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
31151 | (PyObject*) 0, /* ht_slots */
| ^
SWIG/_m2crypto_wrap.c:31151:5: note: (near initialization for ‘SwigPyBuiltin___cbd_t_type.as_buffer.bf_releasebuffer’)
SWIG/_m2crypto_wrap.c:30993:54: warning: missing braces around initializer [-Wmissing-braces]
30993 | static PyHeapTypeObject SwigPyBuiltin___cbd_t_type = {
| ^
......
31150 | (PyObject*) 0, /* ht_name */
| {
31151 | (PyObject*) 0, /* ht_slots */
31152 | };
| }
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /home/soniex2/git/selfhosted/python.teraco-opgy/venv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ujm2rhmo/M2Crypto/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ujm2rhmo/M2Crypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-jiai9cji/install-record.txt --single-version-externally-managed --compile --install-headers /home/soniex2/git/selfhosted/python.teraco-opgy/venv/include/site/python3.8/M2Crypto Check the logs for full command output.
WARNING: You are using pip version 19.2.3, however version 20.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
As part of the move to javatools 2.0, drop py2 and six
In tests/jardiff.py
:
def test_sig_block_file_removed(self):
self.cli_jardiff_wrap(1, "ec.jar", "ec-tampered.jar",
Comparison against ec-tampered.jar
is already performed earlier.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.