Browse Source

Convert the project to use the GNU Build System (aka Autotools)

LICENSE was renamed COPYING because otherwise `autoreconf` complains loudly.
This is also the reason AUTHORS, INSTALL, and README were created.

Man pages were moved into src/pam_panic/man and src/pam_panic_pw/man.

Finally, certain variables are passed through the config.h file to the
module rather than as -D flags on the command-line.
tags/0.1
Jordy Dickinson 2 years ago
parent
commit
05d8fe5d5f
No account linked to committer's email address

+ 16
- 0
.gitignore View File

@@ -0,0 +1,16 @@
1
+*.la
2
+*.lo
3
+*.o
4
+.deps
5
+.libs
6
+aclocal.m4
7
+autom4te.cache/
8
+build-aux/
9
+config.h
10
+config.log
11
+config.status
12
+configure
13
+libtool
14
+Makefile
15
+Makefile.in
16
+src/pam_panic_pw/pam_panic_pw

+ 1
- 0
AUTHORS View File

@@ -0,0 +1 @@
1
+Bandie <bandie@chaospott.de>

LICENSE → COPYING View File


+ 0
- 0
ChangeLog View File


+ 368
- 0
INSTALL View File

@@ -0,0 +1,368 @@
1
+Installation Instructions
2
+*************************
3
+
4
+   Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
5
+Foundation, Inc.
6
+
7
+   Copying and distribution of this file, with or without modification,
8
+are permitted in any medium without royalty provided the copyright
9
+notice and this notice are preserved.  This file is offered as-is,
10
+without warranty of any kind.
11
+
12
+Basic Installation
13
+==================
14
+
15
+   Briefly, the shell command './configure && make && make install'
16
+should configure, build, and install this package.  The following
17
+more-detailed instructions are generic; see the 'README' file for
18
+instructions specific to this package.  Some packages provide this
19
+'INSTALL' file but do not implement all of the features documented
20
+below.  The lack of an optional feature in a given package is not
21
+necessarily a bug.  More recommendations for GNU packages can be found
22
+in *note Makefile Conventions: (standards)Makefile Conventions.
23
+
24
+   The 'configure' shell script attempts to guess correct values for
25
+various system-dependent variables used during compilation.  It uses
26
+those values to create a 'Makefile' in each directory of the package.
27
+It may also create one or more '.h' files containing system-dependent
28
+definitions.  Finally, it creates a shell script 'config.status' that
29
+you can run in the future to recreate the current configuration, and a
30
+file 'config.log' containing compiler output (useful mainly for
31
+debugging 'configure').
32
+
33
+   It can also use an optional file (typically called 'config.cache' and
34
+enabled with '--cache-file=config.cache' or simply '-C') that saves the
35
+results of its tests to speed up reconfiguring.  Caching is disabled by
36
+default to prevent problems with accidental use of stale cache files.
37
+
38
+   If you need to do unusual things to compile the package, please try
39
+to figure out how 'configure' could check whether to do them, and mail
40
+diffs or instructions to the address given in the 'README' so they can
41
+be considered for the next release.  If you are using the cache, and at
42
+some point 'config.cache' contains results you don't want to keep, you
43
+may remove or edit it.
44
+
45
+   The file 'configure.ac' (or 'configure.in') is used to create
46
+'configure' by a program called 'autoconf'.  You need 'configure.ac' if
47
+you want to change it or regenerate 'configure' using a newer version of
48
+'autoconf'.
49
+
50
+   The simplest way to compile this package is:
51
+
52
+  1. 'cd' to the directory containing the package's source code and type
53
+     './configure' to configure the package for your system.
54
+
55
+     Running 'configure' might take a while.  While running, it prints
56
+     some messages telling which features it is checking for.
57
+
58
+  2. Type 'make' to compile the package.
59
+
60
+  3. Optionally, type 'make check' to run any self-tests that come with
61
+     the package, generally using the just-built uninstalled binaries.
62
+
63
+  4. Type 'make install' to install the programs and any data files and
64
+     documentation.  When installing into a prefix owned by root, it is
65
+     recommended that the package be configured and built as a regular
66
+     user, and only the 'make install' phase executed with root
67
+     privileges.
68
+
69
+  5. Optionally, type 'make installcheck' to repeat any self-tests, but
70
+     this time using the binaries in their final installed location.
71
+     This target does not install anything.  Running this target as a
72
+     regular user, particularly if the prior 'make install' required
73
+     root privileges, verifies that the installation completed
74
+     correctly.
75
+
76
+  6. You can remove the program binaries and object files from the
77
+     source code directory by typing 'make clean'.  To also remove the
78
+     files that 'configure' created (so you can compile the package for
79
+     a different kind of computer), type 'make distclean'.  There is
80
+     also a 'make maintainer-clean' target, but that is intended mainly
81
+     for the package's developers.  If you use it, you may have to get
82
+     all sorts of other programs in order to regenerate files that came
83
+     with the distribution.
84
+
85
+  7. Often, you can also type 'make uninstall' to remove the installed
86
+     files again.  In practice, not all packages have tested that
87
+     uninstallation works correctly, even though it is required by the
88
+     GNU Coding Standards.
89
+
90
+  8. Some packages, particularly those that use Automake, provide 'make
91
+     distcheck', which can by used by developers to test that all other
92
+     targets like 'make install' and 'make uninstall' work correctly.
93
+     This target is generally not run by end users.
94
+
95
+Compilers and Options
96
+=====================
97
+
98
+   Some systems require unusual options for compilation or linking that
99
+the 'configure' script does not know about.  Run './configure --help'
100
+for details on some of the pertinent environment variables.
101
+
102
+   You can give 'configure' initial values for configuration parameters
103
+by setting variables in the command line or in the environment.  Here is
104
+an example:
105
+
106
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
107
+
108
+   *Note Defining Variables::, for more details.
109
+
110
+Compiling For Multiple Architectures
111
+====================================
112
+
113
+   You can compile the package for more than one kind of computer at the
114
+same time, by placing the object files for each architecture in their
115
+own directory.  To do this, you can use GNU 'make'.  'cd' to the
116
+directory where you want the object files and executables to go and run
117
+the 'configure' script.  'configure' automatically checks for the source
118
+code in the directory that 'configure' is in and in '..'.  This is known
119
+as a "VPATH" build.
120
+
121
+   With a non-GNU 'make', it is safer to compile the package for one
122
+architecture at a time in the source code directory.  After you have
123
+installed the package for one architecture, use 'make distclean' before
124
+reconfiguring for another architecture.
125
+
126
+   On MacOS X 10.5 and later systems, you can create libraries and
127
+executables that work on multiple system types--known as "fat" or
128
+"universal" binaries--by specifying multiple '-arch' options to the
129
+compiler but only a single '-arch' option to the preprocessor.  Like
130
+this:
131
+
132
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
133
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
134
+                 CPP="gcc -E" CXXCPP="g++ -E"
135
+
136
+   This is not guaranteed to produce working output in all cases, you
137
+may have to build one architecture at a time and combine the results
138
+using the 'lipo' tool if you have problems.
139
+
140
+Installation Names
141
+==================
142
+
143
+   By default, 'make install' installs the package's commands under
144
+'/usr/local/bin', include files under '/usr/local/include', etc.  You
145
+can specify an installation prefix other than '/usr/local' by giving
146
+'configure' the option '--prefix=PREFIX', where PREFIX must be an
147
+absolute file name.
148
+
149
+   You can specify separate installation prefixes for
150
+architecture-specific files and architecture-independent files.  If you
151
+pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
152
+PREFIX as the prefix for installing programs and libraries.
153
+Documentation and other data files still use the regular prefix.
154
+
155
+   In addition, if you use an unusual directory layout you can give
156
+options like '--bindir=DIR' to specify different values for particular
157
+kinds of files.  Run 'configure --help' for a list of the directories
158
+you can set and what kinds of files go in them.  In general, the default
159
+for these options is expressed in terms of '${prefix}', so that
160
+specifying just '--prefix' will affect all of the other directory
161
+specifications that were not explicitly provided.
162
+
163
+   The most portable way to affect installation locations is to pass the
164
+correct locations to 'configure'; however, many packages provide one or
165
+both of the following shortcuts of passing variable assignments to the
166
+'make install' command line to change installation locations without
167
+having to reconfigure or recompile.
168
+
169
+   The first method involves providing an override variable for each
170
+affected directory.  For example, 'make install
171
+prefix=/alternate/directory' will choose an alternate location for all
172
+directory configuration variables that were expressed in terms of
173
+'${prefix}'.  Any directories that were specified during 'configure',
174
+but not in terms of '${prefix}', must each be overridden at install time
175
+for the entire installation to be relocated.  The approach of makefile
176
+variable overrides for each directory variable is required by the GNU
177
+Coding Standards, and ideally causes no recompilation.  However, some
178
+platforms have known limitations with the semantics of shared libraries
179
+that end up requiring recompilation when using this method, particularly
180
+noticeable in packages that use GNU Libtool.
181
+
182
+   The second method involves providing the 'DESTDIR' variable.  For
183
+example, 'make install DESTDIR=/alternate/directory' will prepend
184
+'/alternate/directory' before all installation names.  The approach of
185
+'DESTDIR' overrides is not required by the GNU Coding Standards, and
186
+does not work on platforms that have drive letters.  On the other hand,
187
+it does better at avoiding recompilation issues, and works well even
188
+when some directory options were not specified in terms of '${prefix}'
189
+at 'configure' time.
190
+
191
+Optional Features
192
+=================
193
+
194
+   If the package supports it, you can cause programs to be installed
195
+with an extra prefix or suffix on their names by giving 'configure' the
196
+option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
197
+
198
+   Some packages pay attention to '--enable-FEATURE' options to
199
+'configure', where FEATURE indicates an optional part of the package.
200
+They may also pay attention to '--with-PACKAGE' options, where PACKAGE
201
+is something like 'gnu-as' or 'x' (for the X Window System).  The
202
+'README' should mention any '--enable-' and '--with-' options that the
203
+package recognizes.
204
+
205
+   For packages that use the X Window System, 'configure' can usually
206
+find the X include and library files automatically, but if it doesn't,
207
+you can use the 'configure' options '--x-includes=DIR' and
208
+'--x-libraries=DIR' to specify their locations.
209
+
210
+   Some packages offer the ability to configure how verbose the
211
+execution of 'make' will be.  For these packages, running './configure
212
+--enable-silent-rules' sets the default to minimal output, which can be
213
+overridden with 'make V=1'; while running './configure
214
+--disable-silent-rules' sets the default to verbose, which can be
215
+overridden with 'make V=0'.
216
+
217
+Particular systems
218
+==================
219
+
220
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU CC
221
+is not installed, it is recommended to use the following options in
222
+order to use an ANSI C compiler:
223
+
224
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
225
+
226
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
227
+
228
+   HP-UX 'make' updates targets which have the same time stamps as their
229
+prerequisites, which makes it generally unusable when shipped generated
230
+files such as 'configure' are involved.  Use GNU 'make' instead.
231
+
232
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
233
+parse its '<wchar.h>' header file.  The option '-nodtk' can be used as a
234
+workaround.  If GNU CC is not installed, it is therefore recommended to
235
+try
236
+
237
+     ./configure CC="cc"
238
+
239
+and if that doesn't work, try
240
+
241
+     ./configure CC="cc -nodtk"
242
+
243
+   On Solaris, don't put '/usr/ucb' early in your 'PATH'.  This
244
+directory contains several dysfunctional programs; working variants of
245
+these programs are available in '/usr/bin'.  So, if you need '/usr/ucb'
246
+in your 'PATH', put it _after_ '/usr/bin'.
247
+
248
+   On Haiku, software installed for all users goes in '/boot/common',
249
+not '/usr/local'.  It is recommended to use the following options:
250
+
251
+     ./configure --prefix=/boot/common
252
+
253
+Specifying the System Type
254
+==========================
255
+
256
+   There may be some features 'configure' cannot figure out
257
+automatically, but needs to determine by the type of machine the package
258
+will run on.  Usually, assuming the package is built to be run on the
259
+_same_ architectures, 'configure' can figure that out, but if it prints
260
+a message saying it cannot guess the machine type, give it the
261
+'--build=TYPE' option.  TYPE can either be a short name for the system
262
+type, such as 'sun4', or a canonical name which has the form:
263
+
264
+     CPU-COMPANY-SYSTEM
265
+
266
+where SYSTEM can have one of these forms:
267
+
268
+     OS
269
+     KERNEL-OS
270
+
271
+   See the file 'config.sub' for the possible values of each field.  If
272
+'config.sub' isn't included in this package, then this package doesn't
273
+need to know the machine type.
274
+
275
+   If you are _building_ compiler tools for cross-compiling, you should
276
+use the option '--target=TYPE' to select the type of system they will
277
+produce code for.
278
+
279
+   If you want to _use_ a cross compiler, that generates code for a
280
+platform different from the build platform, you should specify the
281
+"host" platform (i.e., that on which the generated programs will
282
+eventually be run) with '--host=TYPE'.
283
+
284
+Sharing Defaults
285
+================
286
+
287
+   If you want to set default values for 'configure' scripts to share,
288
+you can create a site shell script called 'config.site' that gives
289
+default values for variables like 'CC', 'cache_file', and 'prefix'.
290
+'configure' looks for 'PREFIX/share/config.site' if it exists, then
291
+'PREFIX/etc/config.site' if it exists.  Or, you can set the
292
+'CONFIG_SITE' environment variable to the location of the site script.
293
+A warning: not all 'configure' scripts look for a site script.
294
+
295
+Defining Variables
296
+==================
297
+
298
+   Variables not defined in a site shell script can be set in the
299
+environment passed to 'configure'.  However, some packages may run
300
+configure again during the build, and the customized values of these
301
+variables may be lost.  In order to avoid this problem, you should set
302
+them in the 'configure' command line, using 'VAR=value'.  For example:
303
+
304
+     ./configure CC=/usr/local2/bin/gcc
305
+
306
+causes the specified 'gcc' to be used as the C compiler (unless it is
307
+overridden in the site shell script).
308
+
309
+Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
310
+Autoconf limitation.  Until the limitation is lifted, you can use this
311
+workaround:
312
+
313
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
314
+
315
+'configure' Invocation
316
+======================
317
+
318
+   'configure' recognizes the following options to control how it
319
+operates.
320
+
321
+'--help'
322
+'-h'
323
+     Print a summary of all of the options to 'configure', and exit.
324
+
325
+'--help=short'
326
+'--help=recursive'
327
+     Print a summary of the options unique to this package's
328
+     'configure', and exit.  The 'short' variant lists options used only
329
+     in the top level, while the 'recursive' variant lists options also
330
+     present in any nested packages.
331
+
332
+'--version'
333
+'-V'
334
+     Print the version of Autoconf used to generate the 'configure'
335
+     script, and exit.
336
+
337
+'--cache-file=FILE'
338
+     Enable the cache: use and save the results of the tests in FILE,
339
+     traditionally 'config.cache'.  FILE defaults to '/dev/null' to
340
+     disable caching.
341
+
342
+'--config-cache'
343
+'-C'
344
+     Alias for '--cache-file=config.cache'.
345
+
346
+'--quiet'
347
+'--silent'
348
+'-q'
349
+     Do not print messages saying which checks are being made.  To
350
+     suppress all normal output, redirect it to '/dev/null' (any error
351
+     messages will still be shown).
352
+
353
+'--srcdir=DIR'
354
+     Look for the package's source code in directory DIR.  Usually
355
+     'configure' can determine that directory automatically.
356
+
357
+'--prefix=DIR'
358
+     Use DIR as the installation prefix.  *note Installation Names:: for
359
+     more details, including other options available for fine-tuning the
360
+     installation locations.
361
+
362
+'--no-create'
363
+'-n'
364
+     Run the configure checks, but stop before creating any output
365
+     files.
366
+
367
+'configure' also accepts some other, not widely useful, options.  Run
368
+'configure --help' for more details.

+ 0
- 48
Makefile View File

@@ -1,48 +0,0 @@
1
-PREFIX = /usr/local/bin
2
-
3
-PPASSPATH = /var/lib/pam_panic
4
-PPASSFILE = $(PPASSPATH)/auth
5
-
6
-POSSIBLE_PAMDIRS = /lib/x86_64-linux-gnu/security /lib/security
7
-PAMDIR = $(shell make detect_pamdir)
8
-MANDIR = /usr/share/man
9
-
10
-all:
11
-	@which reboot >/dev/null
12
-	@which poweroff >/dev/null
13
-	@which cryptsetup >/dev/null
14
-	mkdir -p build
15
-	make -C src -e "PPASSFILE = $(PPASSFILE)"
16
-	@printf "Done!\n"
17
-
18
-clean:
19
-	rm build/pam_panic.so
20
-	rm build/pam_panic_pw
21
-	make -C src/pam_panic clean
22
-	rmdir build
23
-	@printf "Done!\n"
24
-
25
-detect_pamdir: 
26
-	@for d in $(POSSIBLE_PAMDIRS); do if [ ! -d $${d} ]; then continue; else printf "$${d}\n"; fi; done
27
-
28
-purge:
29
-	rm /var/lib/pam_panic/*
30
-	rmdir /var/lib/pam_panic
31
-	@printf "Done!\n"
32
-
33
-uninstall:
34
-	PAMDIR=$(PAMDIR); rm $${PAMDIR}/pam_panic.so
35
-	rm /usr/share/man/*/pam_panic.8.gz
36
-	rm /usr/share/man/*/pam_panic_pw.1.gz
37
-	rm $(PREFIX)/pam_panic_pw
38
-	@printf "Done!\n"
39
-
40
-install:
41
-	PAMDIR=$(PAMDIR); if [ -z $${PAMDIR} ]; then printf "Error: PAM's shared object directory was not detected. If you know where it is, please add to POSSIBLE_PAMDIRS and make a pull request.\n"&& exit 1; else cp build/pam_panic.so $${PAMDIR}/pam_panic.so; fi
42
-	if [ ! -d $(MANDIR) ]; then printf "Error: Where is the manpage directory?\n" && exit 1; else make install -C man -e "MANDIR = $(MANDIR)"; fi
43
-	mkdir -p $(PPASSPATH)
44
-	cp build/pam_panic_pw $(PREFIX)/pam_panic_pw
45
-	@printf "Done!\n"
46
-
47
-test:
48
-	@printf "We only can test it in production, yet.\n"

+ 3
- 0
Makefile.am View File

@@ -0,0 +1,3 @@
1
+ACLOCAL_AMFLAGS = -I m4
2
+
3
+SUBDIRS = src/pam_panic src/pam_panic_pw

+ 0
- 0
NEWS View File


+ 1
- 0
README View File

@@ -0,0 +1 @@
1
+README.md

+ 0
- 2
configure View File

@@ -1,2 +0,0 @@
1
-#!/bin/bash
2
-echo "This does nothing. Just run make."

+ 48
- 0
configure.ac View File

@@ -0,0 +1,48 @@
1
+AC_INIT([pam_panic], [0.1.0], [], [pam_panic])
2
+AC_CONFIG_AUX_DIR([build-aux])
3
+AM_INIT_AUTOMAKE([-Wall])
4
+AC_PREREQ([2.69])
5
+AC_CONFIG_MACRO_DIR([m4])
6
+AC_CANONICAL_HOST
7
+
8
+AC_SUBST(PACKAGE)
9
+AC_SUBST(VERSION)
10
+
11
+AC_USE_SYSTEM_EXTENSIONS
12
+AC_PROG_CC
13
+AM_PROG_AR
14
+
15
+AC_PATH_PROG([REBOOT], [reboot])
16
+AC_SUBST(REBOOT)
17
+AC_PATH_PROG([POWEROFF], [poweroff])
18
+AC_SUBST(POWEROFF)
19
+AC_PATH_PROG([CRYPTSETUP], [cryptsetup])
20
+AC_SUBST(CRYPTSETUP)
21
+
22
+AC_ARG_ENABLE(securedir,
23
+    AS_HELP_STRING([--enable-securedir=DIR],
24
+        [path to location of PAMs @<:@default=$libdir/security@:>@]),
25
+    SECUREDIR=$enableval, SECUREDIR=$libdir/security)
26
+AC_SUBST(SECUREDIR)
27
+
28
+AC_ARG_ENABLE(ppassfile,
29
+    AS_HELP_STRING([--enable-ppassfile=FILE],
30
+        [path to file to be used for storing passwords @<:@default=$sysconfdir/pam_panic/auth@:>@]),
31
+    PPASSFILE=$enableval, PPASSFILE=$sysconfdir/pam_panic/auth)
32
+AC_SUBST(PPASSFILE)
33
+
34
+LT_INIT([disable-static])
35
+AC_ENABLE_STATIC([no])
36
+AC_ENABLE_SHARED([yes])
37
+
38
+AC_CONFIG_FILES([
39
+    Makefile
40
+    src/pam_panic/config.h
41
+    src/pam_panic/Makefile
42
+    src/pam_panic/man/Makefile
43
+    src/pam_panic_pw/config.h
44
+    src/pam_panic_pw/Makefile
45
+    src/pam_panic_pw/man/Makefile
46
+])
47
+
48
+AC_OUTPUT

+ 5
- 0
m4/.gitignore View File

@@ -0,0 +1,5 @@
1
+libtool.m4
2
+ltoptions.m4
3
+ltsugar.m4
4
+ltversion.m4
5
+lt~obsolete.m4

+ 0
- 11
man/Makefile View File

@@ -1,11 +0,0 @@
1
-.PHONY: man1 man8
2
-
3
-man1:
4
-	for f in `find . -name pam_panic_pw.1 | sed 's/\/pam_panic_pw.1//'`; do gzip -9 -c $${f}/pam_panic_pw.1 > $(MANDIR)/$${f}/pam_panic_pw.1.gz; done
5
-
6
-man8:
7
-	for f in `find . -name pam_panic.8 | sed 's/\/pam_panic.8//'`; do gzip -9 -c $${f}/pam_panic.8 > $(MANDIR)/$${f}/pam_panic.8.gz; done
8
-
9
-install:
10
-	make man1
11
-	make man8

+ 0
- 3
src/Makefile View File

@@ -1,3 +0,0 @@
1
-all:
2
-	make -C pam_panic -e "PPASSFILE = $(PPASSFILE)"
3
-	make -C pam_panic_pw -e "PPASSFILE = $(PPASSFILE)"

+ 0
- 25
src/pam_panic/Makefile View File

@@ -1,25 +0,0 @@
1
-CFLAGS = -Wall --std=gnu11 -O2 -fPIC -DPOWEROFF=\"`which poweroff`\" -DREBOOT=\"`which reboot`\" -DCRYPTSETUP=\"`which cryptsetup`\" -DPPASSFILE=\"$(PPASSFILE)\" 
2
-#LDFLAGS = -x -shared -lcrypt -lpam -lpam_misc
3
-LDFLAGS = -shared -lcrypt -lpam -lpam_misc
4
-
5
-
6
-OBJ = pam_panic_authdevice.o pam_panic_password.o pam_panic_reject.o
7
-
8
-
9
-pam_panic: $(OBJ)
10
-	cc $(CFLAGS) $(LDFLAGS) -o ../../build/pam_panic.so pam_panic.c $(OBJ)
11
-#	ld $(LDFLAGS) -o ../../build/pam_panic.so $(OBJ)
12
-
13
-%.o: %.c
14
-	$(CC) $(CFLAGS) -c -o $@ $<
15
-
16
-all: 
17
-	mkdir -p ../../build
18
-
19
-clean:
20
-	rm *.o
21
-	
22
-
23
-#	cc $(CFLAGS) -c pam_panic.c -o ../../obj/pam_panic.o
24
-#	ld $(LDFLAGS) -o ../../build/pam_panic.so ../../obj/pam_panic.o
25
-

+ 13
- 0
src/pam_panic/Makefile.am View File

@@ -0,0 +1,13 @@
1
+SUBDIRS = man
2
+
3
+securelibdir = $(SECUREDIR)
4
+securelibexecdir = $(securelibdir)
5
+
6
+securelibexec_LTLIBRARIES = pam_panic.la
7
+pam_panic_la_SOURCES = \
8
+	pam_panic.c \
9
+	pam_panic_authdevice.c \
10
+	pam_panic_password.c \
11
+	pam_panic_reject.c
12
+pam_panic_la_LDFLAGS = -module -no-undefined -avoid-version
13
+pam_panic_la_LIBADD = -lpam -lcrypto

+ 9
- 0
src/pam_panic/config.h.in View File

@@ -0,0 +1,9 @@
1
+#ifndef PAM_PANIC_CONFIG_H
2
+#define PAM_PANIC_CONFIG_H
3
+
4
+#define REBOOT "@REBOOT@"
5
+#define POWEROFF "@POWEROFF@"
6
+#define CRYPTSETUP "@CRYPTSETUP@"
7
+#define PPASSFILE "@PPASSFILE@"
8
+
9
+#endif

+ 17
- 0
src/pam_panic/man/Makefile.am View File

@@ -0,0 +1,17 @@
1
+man8_MANS = man8/pam_panic.8
2
+
3
+install-data-local: install-man-de install-man-es install-man-fr
4
+
5
+install-man-de: de/man8/pam_panic.8
6
+	mkdir -p $(mandir)/de/man8
7
+	cp $< $(mandir)/de/man8
8
+
9
+install-man-es: es/man8/pam_panic.8
10
+	mkdir -p $(mandir)/es/man8
11
+	cp $< $(mandir)/es/man8
12
+
13
+install-man-fr: fr/man8/pam_panic.8
14
+	mkdir -p $(mandir)/fr/man8
15
+	cp $< $(mandir)/fr/man8
16
+
17
+.PHONY: install-data-local install-man-de install-man-es install-man-fr

man/de/man8/pam_panic.8 → src/pam_panic/man/de/man8/pam_panic.8 View File


man/es/man8/pam_panic.8 → src/pam_panic/man/es/man8/pam_panic.8 View File


man/fr/man8/pam_panic.8 → src/pam_panic/man/fr/man8/pam_panic.8 View File


man/man8/pam_panic.8 → src/pam_panic/man/man8/pam_panic.8 View File


+ 1
- 0
src/pam_panic/pam_panic.c View File

@@ -16,6 +16,7 @@ LICENSE :      GNU-GPLv3
16 16
 #include <security/pam_modules.h>
17 17
 #include <security/pam_ext.h>
18 18
 #include <syslog.h>
19
+#include "config.h"
19 20
 #include "pam_panic_reject.h"
20 21
 #include "pam_panic_authdevice.h"
21 22
 #include "pam_panic_password.h"

+ 2
- 0
src/pam_panic/pam_panic_password.h View File

@@ -5,6 +5,8 @@ DATE :         2018-03-27T02:34:08+02:00
5 5
 LICENSE :      GNU-GPLv3
6 6
 */
7 7
 
8
+#include "config.h"
9
+
8 10
 #ifndef PPASSFILE
9 11
   #error PPASSFILE must be declared!
10 12
 #endif

+ 1
- 0
src/pam_panic/pam_panic_reject.c View File

@@ -10,6 +10,7 @@ LICENSE :      GNU-GPLv3
10 10
 #include <unistd.h>
11 11
 #include <security/pam_ext.h>
12 12
 #include <sys/wait.h>
13
+#include "config.h"
13 14
 #include "pam_panic_reject.h"
14 15
 
15 16
 int reject(char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){

+ 0
- 6
src/pam_panic_pw/Makefile View File

@@ -1,6 +0,0 @@
1
-LDFLAGS = -lm -lcrypt 
2
-CFLAGS = --std=gnu11 -Wall -O2 -DPPASSFILE=\"$(PPASSFILE)\"
3
-
4
-all:
5
-	mkdir -p ../../build/
6
-	gcc $(CFLAGS) pam_panic_pw.c -o ../../build/pam_panic_pw $(LDFLAGS)

+ 5
- 0
src/pam_panic_pw/Makefile.am View File

@@ -0,0 +1,5 @@
1
+SUBDIRS = man
2
+
3
+bin_PROGRAMS = pam_panic_pw
4
+pam_panic_pw_SOURCES = pam_panic_pw.c
5
+pam_panic_pw_LDFLAGS = -lcrypt

+ 6
- 0
src/pam_panic_pw/config.h.in View File

@@ -0,0 +1,6 @@
1
+#ifndef PAM_PANIC_PW_CONFIG_H
2
+#define PAM_PANIC_PW_CONFIG_H
3
+
4
+#define PPASSFILE "@PPASSFILE@"
5
+
6
+#endif

+ 10
- 0
src/pam_panic_pw/man/Makefile.am View File

@@ -0,0 +1,10 @@
1
+man1_MANS = man1/pam_panic_pw.1
2
+mande1_MANS = de/man1/pam_panic_pw.1
3
+
4
+install-data-local: install-man-de
5
+
6
+install-man-de: de/man1/pam_panic_pw.1
7
+	mkdir -p $(mandir)/de/man1
8
+	cp $< $(mandir)/de/man1
9
+
10
+.PHONY: install-data-local install-man-de

man/de/man1/pam_panic_pw.1 → src/pam_panic_pw/man/de/man1/pam_panic_pw.1 View File


man/man1/pam_panic_pw.1 → src/pam_panic_pw/man/man1/pam_panic_pw.1 View File


+ 1
- 0
src/pam_panic_pw/pam_panic_pw.c View File

@@ -16,6 +16,7 @@ LICENSE :      GNU-GPLv3
16 16
 #include <unistd.h>
17 17
 #include <sys/stat.h>
18 18
 #include <crypt.h>
19
+#include "config.h"
19 20
 
20 21
 
21 22
 int writePasswords(char pw[][99]){

Loading…
Cancel
Save