pvxslibs 1.5.0__cp310-cp310-manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. pvxslibs/__init__.py +0 -0
  2. pvxslibs/dbd/pvxsIoc.dbd +8 -0
  3. pvxslibs/include/pvxs/client.h +1094 -0
  4. pvxslibs/include/pvxs/data.h +948 -0
  5. pvxslibs/include/pvxs/iochooks.h +170 -0
  6. pvxslibs/include/pvxs/log.h +148 -0
  7. pvxslibs/include/pvxs/netcommon.h +82 -0
  8. pvxslibs/include/pvxs/nt.h +208 -0
  9. pvxslibs/include/pvxs/server.h +238 -0
  10. pvxslibs/include/pvxs/sharedArray.h +748 -0
  11. pvxslibs/include/pvxs/sharedpv.h +121 -0
  12. pvxslibs/include/pvxs/source.h +290 -0
  13. pvxslibs/include/pvxs/srvcommon.h +148 -0
  14. pvxslibs/include/pvxs/unittest.h +327 -0
  15. pvxslibs/include/pvxs/util.h +354 -0
  16. pvxslibs/include/pvxs/version.h +97 -0
  17. pvxslibs/include/pvxs/versionNum.h +6 -0
  18. pvxslibs/ioc.py +10 -0
  19. pvxslibs/lib/__init__.py +0 -0
  20. pvxslibs/lib/event_core_dsoinfo.py +14 -0
  21. pvxslibs/lib/event_pthread_dsoinfo.py +14 -0
  22. pvxslibs/lib/libevent_core.so +0 -0
  23. pvxslibs/lib/libevent_core.so.2.2.0 +0 -0
  24. pvxslibs/lib/libevent_pthread.so +0 -0
  25. pvxslibs/lib/libevent_pthread.so.2.2.0 +0 -0
  26. pvxslibs/lib/libpvxs.so +0 -0
  27. pvxslibs/lib/libpvxs.so.1.5 +0 -0
  28. pvxslibs/lib/libpvxsIoc.so +0 -0
  29. pvxslibs/lib/libpvxsIoc.so.1.5 +0 -0
  30. pvxslibs/lib/pvxsIoc_dsoinfo.py +14 -0
  31. pvxslibs/lib/pvxs_dsoinfo.py +14 -0
  32. pvxslibs/path.py +12 -0
  33. pvxslibs/test/__init__.py +0 -0
  34. pvxslibs/test/test_load.py +30 -0
  35. pvxslibs/version.py +32 -0
  36. pvxslibs-1.5.0.dist-info/METADATA +44 -0
  37. pvxslibs-1.5.0.dist-info/RECORD +40 -0
  38. pvxslibs-1.5.0.dist-info/WHEEL +5 -0
  39. pvxslibs-1.5.0.dist-info/licenses/LICENSE +26 -0
  40. pvxslibs-1.5.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Copyright - See the COPYRIGHT that is included with this distribution.
3
+ * pvxs is distributed subject to a Software License Agreement found
4
+ * in file LICENSE that is included with this distribution.
5
+ */
6
+ #ifndef PVXS_VERSION_H
7
+ #define PVXS_VERSION_H
8
+
9
+ #include <epicsVersion.h>
10
+
11
+ #if defined(_WIN32) || defined(__CYGWIN__)
12
+
13
+ # if defined(PVXS_API_BUILDING) && defined(EPICS_BUILD_DLL)
14
+ /* building library as dll */
15
+ # define PVXS_API __declspec(dllexport)
16
+ # elif !defined(PVXS_API_BUILDING) && defined(EPICS_CALL_DLL)
17
+ /* calling library in dll form */
18
+ # define PVXS_API __declspec(dllimport)
19
+ # endif
20
+
21
+ #elif __GNUC__ >= 4
22
+ # define PVXS_API __attribute__ ((visibility("default")))
23
+ #endif
24
+
25
+ #ifndef PVXS_API
26
+ # define PVXS_API
27
+ #endif
28
+
29
+ #include <pvxs/versionNum.h>
30
+
31
+ // this will fail if PVXS_MAJOR_VERSION expands to an empty string
32
+ #if PVXS_MAJOR_VERSION<0
33
+ # error Problem loading pvxs/versionNum.h
34
+ #endif
35
+
36
+ #ifndef VERSION_INT
37
+ //! Construct version number constant.
38
+ # define VERSION_INT(V,R,M,P) ( ((V)<<24) | ((R)<<16) | ((M)<<8) | (P))
39
+ #endif
40
+
41
+ #ifndef EPICS_VERSION_INT
42
+ # define EPICS_VERSION_INT VERSION_INT(EPICS_VERSION, EPICS_REVISION, EPICS_MODIFICATION, EPICS_PATCH_LEVEL)
43
+ #endif
44
+
45
+ //! Current library version
46
+ #define PVXS_VERSION VERSION_INT(PVXS_MAJOR_VERSION, PVXS_MINOR_VERSION, PVXS_MAINTENANCE_VERSION, 0)
47
+
48
+ //! Current library ABI version
49
+ //! @since 0.1.1
50
+ #define PVXS_ABI_VERSION VERSION_INT(PVXS_MAJOR_VERSION, PVXS_MINOR_VERSION, 0, 0)
51
+
52
+ #ifdef __GNUC__
53
+ # define GCC_VERSION VERSION_INT(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, 0)
54
+ #endif
55
+
56
+ // See https://epics-base.github.io/pvxs/details.html#expertapi
57
+ #if defined(PVXS_EXPERT_API_ENABLED)
58
+ # error Define PVXS_ENABLE_EXPERT_API to enable usage of Expert API. See https://epics-base.github.io/pvxs/details.html#expert-apis
59
+ #elif defined(PVXS_ENABLE_EXPERT_API)
60
+ # define PVXS_EXPERT_API_ENABLED
61
+ #endif
62
+
63
+ namespace pvxs {
64
+
65
+ //! Library version as a string. eg. "PVXS 1.2.3"
66
+ PVXS_API
67
+ const char *version_str();
68
+
69
+ //! @returns PVXS_VERSION captured at library compile time
70
+ PVXS_API
71
+ unsigned long version_int();
72
+
73
+ //! @returns PVXS_ABI_VERSION captured at library compile time
74
+ //! @since 0.1.1
75
+ PVXS_API
76
+ unsigned long version_abi_int();
77
+
78
+ /** Runtime ABI check.
79
+ *
80
+ * This test is only meaningful if it is performed prior to any
81
+ * other library calls.
82
+ *
83
+ * It is guaranteed that the library has no global constructors.
84
+ *
85
+ * @returns true if the header and library ABI versions match,
86
+ * and if the header version is not newer than the library version.
87
+ *
88
+ * @since 0.1.1
89
+ */
90
+ static inline
91
+ bool version_abi_check() {
92
+ return PVXS_ABI_VERSION==version_abi_int() && PVXS_VERSION<=version_int();
93
+ }
94
+
95
+ }
96
+
97
+ #endif // PVXS_VERSION_H
@@ -0,0 +1,6 @@
1
+ #ifndef PVXS_VERSION_H
2
+ # error Include pvxs/version.h instead of this file
3
+ #endif
4
+ #define PVXS_MAJOR_VERSION 1
5
+ #define PVXS_MINOR_VERSION 5
6
+ #define PVXS_MAINTENANCE_VERSION 0
pvxslibs/ioc.py ADDED
@@ -0,0 +1,10 @@
1
+ import os
2
+
3
+ from epicscorelibs import ioc
4
+ import pvxslibs.path
5
+
6
+ if __name__ == "__main__":
7
+ os.environ.setdefault("PVXS_QSRV_ENABLE", "YES")
8
+ pvxs_dbd_load = (("pvxsIoc.dbd", pvxslibs.path.dbd_path), )
9
+ pvxs_dso_load = ("pvxslibs.lib.pvxsIoc", )
10
+ ioc.main(extra_dbd_load=pvxs_dbd_load, extra_dso_load=pvxs_dso_load)
File without changes
@@ -0,0 +1,14 @@
1
+
2
+ # generated by setuptools_dso
3
+ import os
4
+
5
+ dsoname = 'pvxslibs.lib.event_core'
6
+ libname = 'libevent_core.so'
7
+ soname = 'libevent_core.so.2.2.0'
8
+ depends = []
9
+ dir = os.path.dirname(__file__)
10
+ filename = os.path.join(dir, libname)
11
+ sofilename = os.path.join(dir, soname)
12
+ del dir
13
+ del os
14
+ __all__ = ("dsoname", "libname", "soname", "filename", "sofilename")
@@ -0,0 +1,14 @@
1
+
2
+ # generated by setuptools_dso
3
+ import os
4
+
5
+ dsoname = 'pvxslibs.lib.event_pthread'
6
+ libname = 'libevent_pthread.so'
7
+ soname = 'libevent_pthread.so.2.2.0'
8
+ depends = []
9
+ dir = os.path.dirname(__file__)
10
+ filename = os.path.join(dir, libname)
11
+ sofilename = os.path.join(dir, soname)
12
+ del dir
13
+ del os
14
+ __all__ = ("dsoname", "libname", "soname", "filename", "sofilename")
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,14 @@
1
+
2
+ # generated by setuptools_dso
3
+ import os
4
+
5
+ dsoname = 'pvxslibs.lib.pvxsIoc'
6
+ libname = 'libpvxsIoc.so'
7
+ soname = 'libpvxsIoc.so.1.5'
8
+ depends = ['pvxslibs.lib.pvxs', 'pvxslibs.lib.event_core', 'epicscorelibs.lib.dbRecStd', 'epicscorelibs.lib.dbCore', 'epicscorelibs.lib.Com']
9
+ dir = os.path.dirname(__file__)
10
+ filename = os.path.join(dir, libname)
11
+ sofilename = os.path.join(dir, soname)
12
+ del dir
13
+ del os
14
+ __all__ = ("dsoname", "libname", "soname", "filename", "sofilename")
@@ -0,0 +1,14 @@
1
+
2
+ # generated by setuptools_dso
3
+ import os
4
+
5
+ dsoname = 'pvxslibs.lib.pvxs'
6
+ libname = 'libpvxs.so'
7
+ soname = 'libpvxs.so.1.5'
8
+ depends = ['epicscorelibs.lib.Com', 'pvxslibs.lib.event_core', 'pvxslibs.lib.event_pthread']
9
+ dir = os.path.dirname(__file__)
10
+ filename = os.path.join(dir, libname)
11
+ sofilename = os.path.join(dir, soname)
12
+ del dir
13
+ del os
14
+ __all__ = ("dsoname", "libname", "soname", "filename", "sofilename")
pvxslibs/path.py ADDED
@@ -0,0 +1,12 @@
1
+ import os
2
+ from setuptools_dso import dylink_prepare_dso
3
+
4
+ __all__ = (
5
+ 'include_path',
6
+ )
7
+
8
+ include_path = os.path.join(os.path.dirname(__file__), 'include')
9
+
10
+ dbd_path = os.path.join(os.path.dirname(__file__), 'dbd')
11
+
12
+ dylink_prepare_dso("pvxslibs.lib.pvxs")
File without changes
@@ -0,0 +1,30 @@
1
+
2
+ import os
3
+ import ctypes
4
+ import unittest
5
+
6
+ class TestLoad(unittest.TestCase):
7
+ def test_load(self):
8
+ from setuptools_dso.runtime import find_dso
9
+ from ..path import include_path
10
+ self.assertTrue(os.path.isdir(include_path))
11
+
12
+ lib = ctypes.CDLL(find_dso('...lib.pvxs'), ctypes.RTLD_GLOBAL)
13
+ pvxs_version_int = lib.pvxs_version_int
14
+ pvxs_version_int.argtypes = []
15
+ pvxs_version_int.restype = ctypes.c_ulong
16
+
17
+ self.assertNotEqual(0, pvxs_version_int())
18
+
19
+ libIoc = ctypes.CDLL(find_dso('...lib.pvxsIoc'), ctypes.RTLD_GLOBAL)
20
+
21
+ # load original QSRV to ensure no symbol conflicts
22
+ p2p = ctypes.CDLL(find_dso('epicscorelibs.lib.qsrv'), ctypes.RTLD_GLOBAL)
23
+
24
+ class TestVersion(unittest.TestCase):
25
+ def test_ver(self):
26
+ from ..version import version_info, abi_requires
27
+ self.assertGreater(version_info, (0,0,0))
28
+ self.assertLess(version_info, (99,0,0))
29
+
30
+ self.assertNotEqual('', abi_requires())
pvxslibs/version.py ADDED
@@ -0,0 +1,32 @@
1
+ """Version information for the pvxslibs package.
2
+
3
+ Version numbers are encoded as: MAJOR.MINOR.MAINT
4
+
5
+ """
6
+ import re
7
+ from collections import namedtuple
8
+ from pkg_resources import get_distribution, parse_version
9
+
10
+ __all__ = (
11
+ 'version',
12
+ 'version_info',
13
+ 'abi_requires',
14
+ )
15
+
16
+ version = get_distribution('pvxslibs').version # as a string
17
+
18
+ version_info = re.match(r'([\d]+)\.([\d]+)\.([\d]+)([ab]\d+)?', version).groups()
19
+
20
+ version_info = namedtuple('Version', ['major', 'minor', 'maintainance', 'dev']) \
21
+ (int(version_info[0]), int(version_info[1]), int(version_info[2]), version_info[3])
22
+
23
+ def abi_requires():
24
+ """Return a version requirement string which identifies
25
+ a range of version which will be ABI compatible with this one.
26
+ For use by modules with non-python dependencies on our libraries.
27
+
28
+ eg. "pvxslibs >=1.0.4, <1.1.0"
29
+ """
30
+ nextminor = version_info.minor+1
31
+
32
+ return 'pvxslibs >={0}, <{1.major}.{2}.0a1'.format(version, version_info, nextminor)
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: pvxslibs
3
+ Version: 1.5.0
4
+ Summary: PVXS libraries packaged for python
5
+ Home-page: https://epics-base.github.io/pvxs
6
+ Author: Michael Davidsaver
7
+ Author-email: mdavidsaver@gmail.com
8
+ License: BSD
9
+ Keywords: epics scada
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Programming Language :: Python :: 2.7
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: Implementation :: CPython
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: Topic :: Scientific/Engineering
16
+ Classifier: Topic :: Software Development :: Libraries
17
+ Classifier: Topic :: System :: Distributed Computing
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Operating System :: MacOS
20
+ Classifier: Operating System :: Microsoft :: Windows
21
+ Requires-Python: >=2.7
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: setuptools_dso>=2.7a1
25
+ Requires-Dist: epicscorelibs<7.0.10.99.1,>=7.0.10.99.0.0
26
+ Dynamic: author
27
+ Dynamic: author-email
28
+ Dynamic: classifier
29
+ Dynamic: description
30
+ Dynamic: description-content-type
31
+ Dynamic: home-page
32
+ Dynamic: keywords
33
+ Dynamic: license
34
+ Dynamic: license-file
35
+ Dynamic: requires-dist
36
+ Dynamic: requires-python
37
+ Dynamic: summary
38
+
39
+ PVXS - PVAccess protocol library
40
+ ================================
41
+
42
+ VCS - https://github.com/epics-base/pvxs
43
+
44
+ Documentation - https://epics-base.github.io/pvxs/
@@ -0,0 +1,40 @@
1
+ pvxslibs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ pvxslibs/ioc.py,sha256=Wu2btZnhmjJW6DlPdfyQG4VPnmcl-FpnbHMoSaodZVs,327
3
+ pvxslibs/path.py,sha256=nWn5TT5xkbHakc0UwiET3_NbOZg-jr4yibrGKYZ7IoU,258
4
+ pvxslibs/version.py,sha256=vmbnHFP7nheGuX7r7LAKgJ4c2joFyUd4BPqeM4bpUfQ,984
5
+ pvxslibs/dbd/pvxsIoc.dbd,sha256=Iq4magcweGMrMl44gAbe0ZrtGdb9_fUUSFZehp6D8Jg,231
6
+ pvxslibs/include/pvxs/client.h,sha256=ohsK7NHoeEdpbnT9UDJFMETEbgf27c60xm0j8qayjO0,37038
7
+ pvxslibs/include/pvxs/data.h,sha256=kliD5pf7XAv7ObsP4HKPebTy-9FiM3PYjmLBDzGukEs,28570
8
+ pvxslibs/include/pvxs/iochooks.h,sha256=V9kM38AWVZQXb5dFcH_zdWfdjeShis4CzSNZfdC6a4o,4545
9
+ pvxslibs/include/pvxs/log.h,sha256=2hqmFQ300vhl7mtToc4LBAVJqBgs1QMYz92pmLv1ab4,4959
10
+ pvxslibs/include/pvxs/netcommon.h,sha256=yrVn8qVBPCEZoW4eJZjR46axAsQr7pQi4L_MdxWByCU,2124
11
+ pvxslibs/include/pvxs/nt.h,sha256=AiiWlkSyfauthaGTefu0cYLr74B7TVW26yEdByeG1Ao,4761
12
+ pvxslibs/include/pvxs/server.h,sha256=OkAt0E9R13AWMd3to8wN2dufsn6PaGQ35orFEY_b8J4,8006
13
+ pvxslibs/include/pvxs/sharedArray.h,sha256=T42A8BWMYWYv2KLvXDddWWVXhzV20Xlg2q1JjbxhzAs,23838
14
+ pvxslibs/include/pvxs/sharedpv.h,sha256=VPrngwKEOjtGW708clV6rDtn8CarBMSkSM-S6SEmxDM,4143
15
+ pvxslibs/include/pvxs/source.h,sha256=IAj_m8ywb0Mt7gyBAhKnDR_jBq6J0Xo_jT4rM4xRtB8,10396
16
+ pvxslibs/include/pvxs/srvcommon.h,sha256=jENCPSOWe37TzfHWLI88kQ6vS-iiFoqUQgWZ5Hdmezg,4793
17
+ pvxslibs/include/pvxs/unittest.h,sha256=uTteII0JrLhTK6dGjaInZKOwsuJ9-hockFaPwifvdbA,10182
18
+ pvxslibs/include/pvxs/util.h,sha256=-EcvbTWT6B3mlwgSBBmkkbSo5q7RJYZDw1aoqqN-U_E,8968
19
+ pvxslibs/include/pvxs/version.h,sha256=ueME_7FzAOZh_tdBShKjQEQXlAJVi-XoK_3Bgoxu0OM,2719
20
+ pvxslibs/include/pvxs/versionNum.h,sha256=9yBQ2AbBKN9a9ZpFkWYiFBMNIMG8RzSHWI8n6RCISQ8,176
21
+ pvxslibs/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ pvxslibs/lib/event_core_dsoinfo.py,sha256=ODB3bm08Mq3SrxP8VInAOHWaowhpz0lfoJZNNo1_dtw,347
23
+ pvxslibs/lib/event_pthread_dsoinfo.py,sha256=dgNHgYcTQgKyTvMR09zYPK3XkS4Id29u3kYC919dIUk,356
24
+ pvxslibs/lib/libevent_core.so,sha256=9lge-MpPtk-56rTq2WC0SZ_s5v_rsAKQZEq4ZR3fuFM,1092440
25
+ pvxslibs/lib/libevent_core.so.2.2.0,sha256=9lge-MpPtk-56rTq2WC0SZ_s5v_rsAKQZEq4ZR3fuFM,1092440
26
+ pvxslibs/lib/libevent_pthread.so,sha256=6ow4TeWi1pfxAS2Sn7qDAKvVGp0LALtO2YOuQ-hdKaY,31112
27
+ pvxslibs/lib/libevent_pthread.so.2.2.0,sha256=6ow4TeWi1pfxAS2Sn7qDAKvVGp0LALtO2YOuQ-hdKaY,31112
28
+ pvxslibs/lib/libpvxs.so,sha256=LsT0qiyGEZSE9msoahGOupGxV_qnDF2PgE6xfqfqhE8,1999952
29
+ pvxslibs/lib/libpvxs.so.1.5,sha256=LsT0qiyGEZSE9msoahGOupGxV_qnDF2PgE6xfqfqhE8,1999952
30
+ pvxslibs/lib/libpvxsIoc.so,sha256=MkMlznCMKF5T_Nk_5cLj4pED3t9YYJIf0kkV89hcqmY,616216
31
+ pvxslibs/lib/libpvxsIoc.so.1.5,sha256=MkMlznCMKF5T_Nk_5cLj4pED3t9YYJIf0kkV89hcqmY,616216
32
+ pvxslibs/lib/pvxsIoc_dsoinfo.py,sha256=api6tBi3Djd_V7q-oYiyqwDthnevzLkS97JOagJXE4s,465
33
+ pvxslibs/lib/pvxs_dsoinfo.py,sha256=eDxYp51MntBBDBlRgqLPp6dQ9FZMBXffzsRfBqeMOgM,407
34
+ pvxslibs/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ pvxslibs/test/test_load.py,sha256=mueD9wz4IBkCRS0TY76spkOS_nw4IBdkofl_fA9hIfg,995
36
+ pvxslibs-1.5.0.dist-info/licenses/LICENSE,sha256=XViOs7FX1SESr-qTXIin_5793B4tlaQsJdO5atkFUAg,1499
37
+ pvxslibs-1.5.0.dist-info/METADATA,sha256=IDdXvC-WzNXtrb_PMAFl5li4I9f9bsd9Ro7VcqHNiww,1399
38
+ pvxslibs-1.5.0.dist-info/WHEEL,sha256=_a_mescQ_Ua_j0qArw-FsvStSusVvJV00YvS80FSvz8,112
39
+ pvxslibs-1.5.0.dist-info/top_level.txt,sha256=RixlMjBFoSBZhAgzdvurnG0N681VoNV0ikf00-HgXFM,9
40
+ pvxslibs-1.5.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-manylinux2014_x86_64
5
+
@@ -0,0 +1,26 @@
1
+ Copyright (c) The Regents of the University of California.
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions
6
+ are met:
7
+ 1. Redistributions of source code must retain the above copyright
8
+ notice, this list of conditions and the following disclaimer.
9
+ 2. Redistributions in binary form must reproduce the above copyright
10
+ notice, this list of conditions and the following disclaimer in the
11
+ documentation and/or other materials provided with the distribution.
12
+ 3. Neither the name of the University nor the names of its contributors
13
+ may be used to endorse or promote products derived from this software
14
+ without specific prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26
+ SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ pvxslibs