Reorganize build process
authorMichael Spang <mspang@csclub.uwaterloo.ca>
Thu, 13 Dec 2007 07:48:05 +0000 (02:48 -0500)
committerMichael Spang <mspang@csclub.uwaterloo.ca>
Fri, 14 Dec 2007 04:34:09 +0000 (23:34 -0500)
Now using Python's distutils for installing the Python modules
into the wrong place and python-support for moving them into
the right place, byte-compiling, and all that jazz.

15 files changed:
bin/ceo
bin/ceoquery
bin/csc-chfn
bin/csc-chsh
debian/.gitignore
debian/compat
debian/control
debian/dirs [new file with mode: 0644]
debian/docs [new file with mode: 0644]
debian/install [new file with mode: 0644]
debian/rules
etc/csc.schema [new file with mode: 0644]
misc/csc.schema [deleted file]
setup.py [new file with mode: 0755]
src/Makefile

diff --git a/bin/ceo b/bin/ceo
index 74d60fb..fd6a113 100755 (executable)
--- a/bin/ceo
+++ b/bin/ceo
@@ -1,3 +1,3 @@
-#!/usr/bin/python2.4 --
+#!/usr/bin/python
 import csc.apps.urwid.main
 csc.apps.urwid.main.start()
 import csc.apps.urwid.main
 csc.apps.urwid.main.start()
index e16c0e4..046c25f 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4 --
+#!/usr/bin/python
 """
 ceoquery - a script to lookup member and account information
 """
 """
 ceoquery - a script to lookup member and account information
 """
index cf97c4d..70fff1c 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4 --
+#!/usr/bin/python
 """
 chfn - change real user name and information
 
 """
 chfn - change real user name and information
 
index e8b1970..5d18e2a 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4 --
+#!/usr/bin/python
 """
 chsh - change login shell
 
 """
 chsh - change login shell
 
index 7d605ca..c5d55af 100644 (file)
@@ -1,3 +1,4 @@
 /ceo.substvars
 /ceo
 /files
 /ceo.substvars
 /ceo
 /files
+/*.debhelper
index b8626c4..7ed6ff8 100644 (file)
@@ -1 +1 @@
-4
+5
index 7b143b5..4264027 100644 (file)
@@ -2,12 +2,12 @@ Source: ceo
 Section: admin
 Priority: optional
 Maintainer: Michael Spang <mspang@uwaterloo.ca>
 Section: admin
 Priority: optional
 Maintainer: Michael Spang <mspang@uwaterloo.ca>
-Build-Depends: debhelper (>= 4.0.0)
+Build-Depends: debhelper (>= 5.0.0), python-dev (>= 2.4), python-support (>= 0.3), libkrb5-dev, libldap2-dev, libsasl2-dev
 Standards-Version: 3.7.2
 
 Package: ceo
 Architecture: any
 Standards-Version: 3.7.2
 
 Package: ceo
 Architecture: any
-Depends: python2.4, python-ldap, python-urwid, krb5-user, less, python-pam, ${shlibs:Depends}
+Depends: python-ldap, python-urwid, python-pam, ${python:Depends}, ${shlibs:Depends}
 Recommends: quota
 Description: Computer Science Club Administrative Utilities
  This package contains the CSC Electronic Office
 Recommends: quota
 Description: Computer Science Club Administrative Utilities
  This package contains the CSC Electronic Office
diff --git a/debian/dirs b/debian/dirs
new file mode 100644 (file)
index 0000000..281c9b5
--- /dev/null
@@ -0,0 +1,3 @@
+usr/bin
+etc/csc
+etc/ldap/schema
diff --git a/debian/docs b/debian/docs
new file mode 100644 (file)
index 0000000..a188e06
--- /dev/null
@@ -0,0 +1 @@
+docs/*
diff --git a/debian/install b/debian/install
new file mode 100644 (file)
index 0000000..8be22ff
--- /dev/null
@@ -0,0 +1,2 @@
+etc/accounts.cf etc/kerberos.cf etc/ldap.cf etc/csc
+etc/csc.schema etc/ldap/schema
index b319fb6..1139fa0 100755 (executable)
@@ -1,48 +1,36 @@
 #!/usr/bin/make -f
 
 #!/usr/bin/make -f
 
-PYTHON := python2.4
-
 build:
 build:
+       python setup.py -q build
        cd src && make
 
 clean:
        dh_testdir
        dh_testroot
        dh_clean
        cd src && make
 
 clean:
        dh_testdir
        dh_testroot
        dh_clean
-       rm -f build-stamp
-       rm -rf build/
-       find pylib/ -name "*.pyc" -print0 | xargs -0 rm -f
-       cd src && make clean
+       $(MAKE) -C src clean
+       python setup.py -q clean -a
 
 install: build
        dh_testdir
        dh_testroot
 
 install: build
        dh_testdir
        dh_testroot
-
-       dh_installdirs etc/csc usr/lib/$(PYTHON)/site-packages usr/share/csc \
-                      usr/lib/csc usr/bin etc/ldap/schema
-       dh_install pylib/* usr/lib/$(PYTHON)/site-packages/
-       dh_install etc/* etc/csc/
-
-       dh_install bin/ceo bin/ceoquery bin/csc-chsh bin/csc-chfn src/addmember src/addclub usr/bin/
-       dh_install misc/csc.schema etc/ldap/schema/
+       dh_installdirs
+       python setup.py -q install --no-compile -O0 --root=debian/ceo
+       $(MAKE) -C src DESTDIR=$(PWD)/debian/ceo PREFIX=/usr install
        
 binary-arch: build install
        dh_testdir
        dh_testroot
        dh_installchangelogs 
        
 binary-arch: build install
        dh_testdir
        dh_testroot
        dh_installchangelogs 
-       dh_installdocs docs/*
+       dh_installdocs
        dh_installexamples
        dh_install
        dh_installexamples
        dh_install
-#      dh_installlogrotate
-#      dh_installcron
        dh_installman
        dh_link
        dh_strip
        dh_compress
        dh_fixperms
        dh_installman
        dh_link
        dh_strip
        dh_compress
        dh_fixperms
-#      dh_perl
-#      dh_python
-#      dh_makeshlibs
+       dh_pysupport
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
diff --git a/etc/csc.schema b/etc/csc.schema
new file mode 100644 (file)
index 0000000..13c24e2
--- /dev/null
@@ -0,0 +1,31 @@
+# CSC Member Information Schema
+
+attributetype ( 1.3.6.1.4.1.27934.1.1.1 NAME 'term'
+    EQUALITY caseIgnoreIA5Match
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{5} )
+
+attributetype ( 1.3.6.1.4.1.27934.1.1.2 NAME 'program'
+    EQUALITY caseIgnoreIA5Match
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.27934.1.1.3 NAME 'studentid'
+    EQUALITY caseIgnoreIA5Match
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.27934.1.1.4 NAME 'position'
+    EQUALITY caseIgnoreIA5Match
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} )
+
+objectclass ( 1.3.6.1.4.1.27934.1.2.1 NAME 'member'
+    SUP top AUXILIARY
+    MUST ( cn $ uid )
+    MAY ( studentid $ program $ term $ description $ position ) )
+
+objectclass ( 1.3.6.1.4.1.27934.1.2.2 NAME 'club'
+    SUP top AUXILIARY
+    MUST ( cn $ uid ) )
+
+objectclass ( 1.3.6.1.4.1.27934.1.2.3 NAME 'group'
+    SUP top STRUCTURAL
+    MUST ( cn )
+    MAY ( uniqueMember ) )
diff --git a/misc/csc.schema b/misc/csc.schema
deleted file mode 100644 (file)
index 13c24e2..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# CSC Member Information Schema
-
-attributetype ( 1.3.6.1.4.1.27934.1.1.1 NAME 'term'
-    EQUALITY caseIgnoreIA5Match
-    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{5} )
-
-attributetype ( 1.3.6.1.4.1.27934.1.1.2 NAME 'program'
-    EQUALITY caseIgnoreIA5Match
-    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{1024} SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.4.1.27934.1.1.3 NAME 'studentid'
-    EQUALITY caseIgnoreIA5Match
-    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{8} SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.4.1.27934.1.1.4 NAME 'position'
-    EQUALITY caseIgnoreIA5Match
-    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} )
-
-objectclass ( 1.3.6.1.4.1.27934.1.2.1 NAME 'member'
-    SUP top AUXILIARY
-    MUST ( cn $ uid )
-    MAY ( studentid $ program $ term $ description $ position ) )
-
-objectclass ( 1.3.6.1.4.1.27934.1.2.2 NAME 'club'
-    SUP top AUXILIARY
-    MUST ( cn $ uid ) )
-
-objectclass ( 1.3.6.1.4.1.27934.1.2.3 NAME 'group'
-    SUP top STRUCTURAL
-    MUST ( cn )
-    MAY ( uniqueMember ) )
diff --git a/setup.py b/setup.py
new file mode 100755 (executable)
index 0000000..e4729fd
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,12 @@
+#!/usr/bin/env python
+
+from distutils.core import setup
+
+setup(
+    name='ceo',
+    description='CSC Electronic Office',
+    packages=[ 'csc', 'csc.common', 'csc.adm', 'csc.backends', 'csc.apps', 'csc.apps.urwid' ],
+    package_dir = {'': 'pylib'},
+    scripts=['bin/ceo', 'bin/ceoquery', 'bin/csc-chfn', 'bin/csc-chsh'],
+)
+
index ac13cd6..840763d 100644 (file)
@@ -5,6 +5,9 @@ KADM := $(shell krb5-config --libs krb5 kadm-client)
 
 LIBCEO := util.o common.o config.o parser.o ldap.o krb5.o kadm.o addhomedir.o
 
 
 LIBCEO := util.o common.o config.o parser.o ldap.o krb5.o kadm.o addhomedir.o
 
+DESTDIR :=
+PREFIX := /usr/local
+
 all: addmember addclub
 
 clean:
 all: addmember addclub
 
 clean:
@@ -18,3 +21,8 @@ addclub: $(LIBCEO) addclub.o
 
 config-test: config-test.o parser.o util.o
        $(CC) $(LDFLAGS) $^ -o $@
 
 config-test: config-test.o parser.o util.o
        $(CC) $(LDFLAGS) $^ -o $@
+
+install: addmember addclub
+       install -d $(DESTDIR)$(PREFIX)/bin
+       install addmember addclub $(DESTDIR)$(PREFIX)/bin
+