aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore14
-rw-r--r--LICENSE31
-rw-r--r--Makefile159
-rw-r--r--README1
-rw-r--r--bus.py (renamed from src/bus.py)25
-rw-r--r--config.mk10
-rw-r--r--dist/arch/stable/.gitignore6
-rw-r--r--dist/arch/stable/PKGBUILD26
-rw-r--r--native_bus.pyx (renamed from src/native_bus.pyx)25
9 files changed, 47 insertions, 250 deletions
diff --git a/.gitignore b/.gitignore
index 6cef52e..848c3ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,19 +1,9 @@
-_/
-obj/
-bin/
-__pycache__/
-\#*\#
-.*
-!.git*
*~
-*.bak
-*.swo
-*.swp
+*\#*
+__pycache__/
*.pyc
*.pyo
*.o
*.out
*.so
-*.gch
*.c
-
diff --git a/LICENSE b/LICENSE
index b253b5b..53d4a24 100644
--- a/LICENSE
+++ b/LICENSE
@@ -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.
diff --git a/Makefile b/Makefile
index bba43f4..46e2a6e 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/README b/README
index a096068..cacc411 100644
--- a/README
+++ b/README
@@ -9,4 +9,3 @@ SEE ALSO
libbus(7)
Full documentation available locally via the command help i python(1).
-
diff --git a/src/bus.py b/bus.py
index 08e8a9b..7025dd8 100644
--- a/src/bus.py
+++ b/bus.py
@@ -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)
-