diff options
Diffstat (limited to '')
-rw-r--r-- | .gitignore | 14 | ||||
-rw-r--r-- | LICENSE | 31 | ||||
-rw-r--r-- | Makefile | 159 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | bus.py (renamed from src/bus.py) | 25 | ||||
-rw-r--r-- | config.mk | 10 | ||||
-rw-r--r-- | dist/arch/stable/.gitignore | 6 | ||||
-rw-r--r-- | dist/arch/stable/PKGBUILD | 26 | ||||
-rw-r--r-- | native_bus.pyx (renamed from src/native_bus.pyx) | 25 |
9 files changed, 47 insertions, 250 deletions
@@ -1,19 +1,9 @@ -_/ -obj/ -bin/ -__pycache__/ -\#*\# -.* -!.git* *~ -*.bak -*.swo -*.swp +*\#* +__pycache__/ *.pyc *.pyo *.o *.out *.so -*.gch *.c - @@ -1,22 +1,15 @@ -MIT/X Consortium License +ISC License -Copyright © 2015 Mattias Andrée <maandree@member.fsf.org> +© 2015, 2017 Mattias Andrée <maandree@kth.se> -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. @@ -1,152 +1,35 @@ -# The package path prefix, if you want to install to another root, set DESTDIR to that root -PREFIX = /usr -# The library path excluding prefix -LIB = /lib -# The resource path excluding prefix -DATA = /share -# The library path including prefix -LIBDIR = ${PREFIX}${LIB} -# The resource path including prefix -DATADIR = ${PREFIX}${DATA} -# The generic documentation path including prefix -DOCDIR = ${DATADIR}/doc -# The license base path including prefix -LICENSEDIR = ${DATADIR}/licenses +.POSIX: +CONFIGFILE = config.mk +include $(CONFIGFILE) -# The major version number of the current Python installation -PY_MAJOR = $(shell python -V | cut -d ' ' -f 2 | cut -d . -f 1) -# The minor version number of the current Python installation -PY_MINOR = $(shell python -V | cut -d ' ' -f 2 | cut -d . -f 2) -# The version number of the current Python installation without a dot -PY_VER = ${PY_MAJOR}${PY_MINOR} -# The version number of the current Python installation with a dot -PY_VERSION = ${PY_MAJOR}.${PY_MINOR} +PY_MAJOR = $$(python --version 2>&1 | cut -d . -f 1 | cut -d ' ' -f 2) +PY_MINOR = $$(python$(PYTHON_MAJOR) --version 2>&1 | cut -d . -f 2) -# The directory for python modules -PYTHONDIR = ${LIBDIR}/python${PY_VERSION} +all: native_bus.so +native_bus.so: native_bus.o + $(CC) -o $@ native_bus.o -shared $(LDFLAGS) -# The name of the package as it should be installed -PKGNAME = python-bus - - -# The installed pkg-config command -PKGCONFIG ?= pkg-config -# The installed cython command -CYTHON ?= cython -# The installed python command -PYTHON = python${PY_MAJOR} - - -# Libraries to link with using pkg-config -LIBS = python${PY_MAJOR} - - -# The C standard for C code compilation -STD = c99 -# Optimisation settings for C code compilation -OPTIMISE = -O2 - - -# Flags to use when compiling -CC_FLAGS = $$(${PKGCONFIG} --cflags ${LIBS}) -std=${STD} ${OPTIMISE} -fPIC ${CFLAGS} ${CPPFLAGS} - -# Flags to use when linking -LD_FLAGS = $$(${PKGCONFIG} --libs ${LIBS}) -lbus -std=${STD} ${OPTIMISE} -shared ${LDFLAGS} - - -# The suffixless basename of the .py-files -PYTHON_SRC = bus - -# The suffixless basename of the .py-files -CYTHON_SRC = native_bus - - -# Filename extension for -OO optimised python files -ifeq ($(shell test $(PY_VER) -ge 35 ; echo $$?),0) -PY_OPT2_EXT = opt-2.pyc -else -PY_OPT2_EXT = pyo -endif - - - -all: pyc-files pyo-files so-files - -pyc-files: $(foreach M,${PYTHON_SRC},src/__pycache__/${M}.cpython-${PY_VER}.pyc) -pyo-files: $(foreach M,${PYTHON_SRC},src/__pycache__/${M}.cpython-${PY_VER}.$(PY_OPT2_EXT)) -so-files: $(foreach M,${CYTHON_SRC},bin/${M}.so) - -bin/%.so: obj/%.o - @mkdir -p bin - ${CC} ${LD_FLAGS} -o $@ $^ - -obj/%.o: obj/%.c - ${CC} ${CC_FLAGS} -iquote"src" -c -o $@ $< - -obj/%.c: obj/%.pyx - if ! ${CYTHON} -3 -v $< ; then rm $@ ; false ; fi - -obj/%.pyx: src/%.pyx - @mkdir -p obj - cp $< $@ - -src/__pycache__/%.cpython-$(PY_VER).pyc: src/%.py - ${PYTHON} -m compileall $< - -src/__pycache__/%.cpython-$(PY_VER).$(PY_OPT2_EXT): src/%.py - ${PYTHON} -OO -m compileall $< - - - -install: install-base - -install-all: install-base -install-base: install-lib install-copyright -install-lib: install-source install-compiled install-optimised install-native - -install-source: $(foreach M,$(PYTHON_SRC),src/$(M).py) - install -dm755 -- "$(DESTDIR)$(PYTHONDIR)" - install -m644 $^ -- "$(DESTDIR)$(PYTHONDIR)" - -install-compiled: $(foreach M,$(PYTHON_SRC),src/__pycache__/$(M).cpython-$(PY_VER).pyc) - install -dm755 -- "$(DESTDIR)$(PYTHONDIR)/__pycache__" - install -m644 $^ -- "$(DESTDIR)$(PYTHONDIR)/__pycache__" - -install-optimised: $(foreach M,$(PYTHON_SRC),src/__pycache__/$(M).cpython-$(PY_VER).$(PY_OPT2_EXT)) - install -dm755 -- "$(DESTDIR)$(PYTHONDIR)/__pycache__" - install -m644 $^ -- "$(DESTDIR)$(PYTHONDIR)/__pycache__" - -install-native: $(foreach M,$(CYTHON_SRC),bin/$(M).so) - install -dm755 -- "$(DESTDIR)$(PYTHONDIR)" - install -m755 $^ -- "$(DESTDIR)$(PYTHONDIR)" - -install-copyright: install-license - -install-license: LICENSE - install -dm755 -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - install -m644 $^ -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" +.c.o: + $(CC) -fPIC -c -o $@ $< $$(pkg-config --cflags python$(PY_MAJOR)) $(CFLAGS) $(CPPFLAGS) +.pyx.c: + if ! $(CYTHON) -$(PY_MAJOR) -v $< -o $@ ; then rm $@; false; fi +install: native_bus.so + mkdir -p -- "$(DESTDIR)$(PYTHONDIR)/site-packages" + cp -- bus.py native_bus.so "$(DESTDIR)$(PYTHONDIR)/site-packages" uninstall: - -rm -- "${DESTDIR}${LICENSEDIR}/${PKGNAME}/LICENSE" - -rmdir -- "${DESTDIR}${LICENSEDIR}/${PKGNAME}" - -rm -- $(foreach M,${PYTHON_SRC},"${DESTDIR}${PYTHONDIR}/__pycache__/${M}.cpython-${PY_VER}.$(PY_OPT2_EXT)") - -rm -- $(foreach M,${PYTHON_SRC},"${DESTDIR}${PYTHONDIR}/__pycache__/${M}.cpython-${PY_VER}.pyc") - -rm -- $(foreach M,${PYTHON_SRC},"${DESTDIR}${PYTHONDIR}/${M}.py") - -rm -- $(foreach M,${CYTHON_SRC},"${DESTDIR}${PYTHONDIR}/${M}.so") - - + -rm -f -- "$(DESTDIR)$(PYTHONDIR)/site-packages/native_bus.so" + -rm -f -- "$(DESTDIR)$(PYTHONDIR)/site-packages/bus" clean: - -rm -r obj bin src/__pycache__ - - + -rm -rf -- __pycache__ *.pyc *.pyo *.o *.so -.PHONY: all pyc-files pyo-files so-files install install-all install-base \ - install-lib install-source install-compiled install-optimised \ - install-native install-copyright install-license uninstall clean +.SUFFIXES: +.SUFFIXES: .o .c .pyx +.PHONY: all install uninstall clean @@ -9,4 +9,3 @@ SEE ALSO libbus(7) Full documentation available locally via the command help i python(1). - @@ -1,27 +1,5 @@ # -*- python -*- -''' -MIT/X Consortium License - -Copyright © 2015 Mattias Andrée <maandree@member.fsf.org> - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. -''' +# See LICENSE file for copyright and license details. class Bus: @@ -396,4 +374,3 @@ class Bus: if err.errno == os.errno.ENOENT: err.filename = self.pathname return err - diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..e45ec85 --- /dev/null +++ b/config.mk @@ -0,0 +1,10 @@ +PREFIX = /usr/local +MANPREFIX = $(PREFIX)/share/man +PYTHONDIR = $(PREFIX)/lib/python$(PY_MAJOR).$(PY_MINOR) + +CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOUCE -D_XOPEN_SOURCE=700 +CFLAGS = -std=c99 -O2 $$(pkg-config --cflags python$(PY_MAJOR)) $(CPPFLAGS) +LDFLAGS = -s $$(pkg-config --libs python$(PY_MAJOR)) -lbus + +CYTHON = cython +PYTHON = python$(PY_MAJOR) diff --git a/dist/arch/stable/.gitignore b/dist/arch/stable/.gitignore deleted file mode 100644 index 1ed1d8e..0000000 --- a/dist/arch/stable/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -* -!/.git* -*~ -!/PKGBUILD -!/python-bus.install - diff --git a/dist/arch/stable/PKGBUILD b/dist/arch/stable/PKGBUILD deleted file mode 100644 index 2b683ed..0000000 --- a/dist/arch/stable/PKGBUILD +++ /dev/null @@ -1,26 +0,0 @@ -# Maintainer: Mattias Andrée <`base64 -d`(bWFhbmRyZWUK)@member.fsf.org> - -pkgname=python-bus -pkgver=3.1.1 -pkgrel=1 -pkgdesc="Python 3 module for bus" -arch=(i686 x86_64) -url="https://github.com/maandree/python-bus" -license=('MIT') -depends=(bus python) -makedepends=(cython) -source=($url/archive/$pkgver.tar.gz) -sha256sums=(f29d142b25b174831ba678976264c8fa3cb444e3de542491f30f56c889a1fc60) - - -build() { - cd "$srcdir/$pkgname-$pkgver" - make PREFIX=/usr -} - - -package() { - cd "$srcdir/$pkgname-$pkgver" - make PREFIX=/usr install DESTDIR="$pkgdir" -} - diff --git a/src/native_bus.pyx b/native_bus.pyx index 861c16f..48504e7 100644 --- a/src/native_bus.pyx +++ b/native_bus.pyx @@ -1,27 +1,5 @@ # -*- python -*- -''' -MIT/X Consortium License - -Copyright © 2015 Mattias Andrée <maandree@member.fsf.org> - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. -''' +# See LICENSE file for copyright and license details. cimport cython @@ -576,4 +554,3 @@ def bus_chmod_wrapped(file : str, mode : int) -> tuple: r = bus_chmod(cfile, <mode_t>mode) e = errno return (r, e) - |