File: lirc-modules-source.postinst

package info (click to toggle)
lirc 0.7.1pre2-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,852 kB
  • ctags: 2,924
  • sloc: ansic: 31,205; sh: 12,021; makefile: 631
file content (154 lines) | stat: -rw-r--r-- 4,269 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/sh 
set -e

check_config_file ()
{
  local VAR
  #Make sure that all variables are there
  for VAR in LIRC_MODULES \
  		LIRC_SERIAL_PORT LIRC_SERIAL_IRQ LIRC_SERIAL_CFLAGS \
		LIRC_SIR_PORT LIRC_SIR_IRQ LIRC_SIR_CFLAGS \
		LIRC_PARALLEL_PORT LIRC_PARALLEL_IRQ LIRC_PARALLEL_TIMER
  do
    if ! grep -q "^$VAR\>" /etc/lirc/$package.conf; then
      echo "$VAR=\"UNCONFIGURED\"" >> /etc/lirc/$package.conf
    fi
  done

}
save_serial_conf ()
{
	db_get $package/serial_type
	if [ "$RET" != "Other" ];then
	  LIRC_SERIAL_CFLAGS="$LIRC_SERIAL_CFLAGS -DLIRC_SERIAL_$RET";
	fi
	db_get $package/serial_transmitter
	if [ "$RET" = "true" ];then
	  LIRC_SERIAL_CFLAGS="$LIRC_SERIAL_CFLAGS -DLIRC_SERIAL_TRANSMITTER";
	fi
	db_get $package/serial_softcarrier
	if [ "$RET" = "true" ];then
	  LIRC_SERIAL_CFLAGS="$LIRC_SERIAL_CFLAGS -DLIRC_SERIAL_SOFTCARRIER";
	fi
	db_get $package/serial_irq
	LIRC_SERIAL_IRQ="$RET"
	db_get $package/serial_port
	LIRC_SERIAL_PORT="$RET"

	sed \
		-e "s/^\(LIRC_SERIAL_IRQ\)=.*/\1=\"$LIRC_SERIAL_IRQ\"/" \
		-e "s/^\(LIRC_SERIAL_PORT\)=.*/\1=\"$LIRC_SERIAL_PORT\"/" \
		-e "s/^\(LIRC_SERIAL_CFLAGS\)=.*/\1=\"$LIRC_SERIAL_CFLAGS\"/" \
			/etc/lirc/$package.conf > /etc/lirc/$package.conf.tmp
	mv /etc/lirc/$package.conf.tmp /etc/lirc/$package.conf
}
save_sir_conf ()
{
	db_get $package/sir_type
	if [ "$RET" != "Other" ];then
		LIRC_SIR_CFLAGS="$LIRC_SIR_CFLAGS -DLIRC_SIR_$RET";
	fi
	db_get $package/sir_irq
	LIRC_SIR_IRQ="$RET"
	db_get $package/sir_port
	LIRC_SIR_PORT="$RET"

	sed \
		-e "s/^\(LIRC_SIR_IRQ\)=.*/\1=\"$LIRC_SIR_IRQ\"/" \
		-e "s/^\(LIRC_SIR_PORT\)=.*/\1=\"$LIRC_SIR_PORT\"/" \
		-e "s/^\(LIRC_SIR_CFLAGS\)=.*/\1=\"$LIRC_SIR_CFLAGS\"/" \
			/etc/lirc/$package.conf > /etc/lirc/$package.conf.tmp
	mv /etc/lirc/$package.conf.tmp /etc/lirc/$package.conf
}
save_parallel_conf ()
{
	db_get $package/parallel_irq
	LIRC_PARALLEL_IRQ="$RET"
	db_get $package/parallel_port
	LIRC_PARALLEL_PORT="$RET"
	db_get $package/parallel_timer
	LIRC_PARALLEL_TIMER="$RET"

	sed \
	    -e "s/^\(LIRC_PARALLEL_IRQ\)=.*/\1=\"$LIRC_PARALLEL_IRQ\"/" \
	    -e "s/^\(LIRC_PARALLEL_PORT\)=.*/\1=\"$LIRC_PARALLEL_PORT\"/" \
	    -e "s/^\(LIRC_PARALLEL_TIMER\)=.*/\1=\"$LIRC_PARALLEL_TIMER\"/" \
		/etc/lirc/$package.conf > /etc/lirc/$package.conf.tmp
	mv /etc/lirc/$package.conf.tmp /etc/lirc/$package.conf
}

. /usr/share/debconf/confmodule
db_version 2.0

package=lirc-modules-source

if [ "$1" = "configure" ] && [ -f /etc/lirc/$package.conf ]; then

  check_config_file

  db_get $package/drivers
  DRIVERS=$RET

  sed \
  	-e "s/^\(LIRC_MODULES\)=.*/\1=\"$DRIVERS\"/" \
		/etc/lirc/$package.conf > /etc/lirc/$package.conf.tmp
  mv /etc/lirc/$package.conf.tmp /etc/lirc/$package.conf

  #Serial configuration
  if expr "$DRIVERS" : '.*\<serial\>' > /dev/null
  then
  	save_serial_conf
  fi

  #SIR configuration
  if expr "$DRIVERS" : '.*\<sir\>' > /dev/null
  then
  	save_sir_conf
  fi

  #Parallel configuration
  if expr "$DRIVERS" : '.*\<parallel\>' > /dev/null
  then
  	save_parallel_conf
  fi
fi

################################
## Informal module building

if [ "$1" = "configure" ]; then
  db_get $package/do-build
  if $RET ; then
    db_get $package/kernel-source
    tar -xzf /usr/src/lirc-modules.tar.gz -C /usr/src/
    cd /usr/src/modules/lirc/
    BUILD_OUTPUT=`mktemp /tmp/lirc-kernel-source.XXXXXX`
    echo "Building kernel modules ... (output -> $BUILD_OUTPUT)"
    if ! make clean debconf install KSRC="$RET" > $BUILD_OUTPUT 2>&1 
    then
	echo "##############################################"
	echo "##### Couldn't build LIRC kernel modules #####"
	echo "##############################################"
    	db_reset $package/do-build || true
    	db_reset $package/kernel-source || true
	db_reset $package/drivers || true
    else
	if ! make depmod KSRC="$RET" >> $BUILD_OUTPUT 2>&1
	then
		echo "################################################"
		echo "## As hard I tried I cound't calculate module ##"
		echo "## depencencies, please run depmod yourself.  ##"
		echo "## Apart from that everithing when right.     ##"
		echo "################################################"
	else
	    	echo "Modules succesfully built. Removing $BUILD_OUTPUT"
		rm $BUILD_OUTPUT
	fi
    fi
    cd $OLDPWD
  fi
fi
db_stop

#DEBHELPER#