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.
This commit is contained in:
		
							
								
								
									
										16
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| *.la | ||||
| *.lo | ||||
| *.o | ||||
| .deps | ||||
| .libs | ||||
| aclocal.m4 | ||||
| autom4te.cache/ | ||||
| build-aux/ | ||||
| config.h | ||||
| config.log | ||||
| config.status | ||||
| configure | ||||
| libtool | ||||
| Makefile | ||||
| Makefile.in | ||||
| src/pam_panic_pw/pam_panic_pw | ||||
							
								
								
									
										368
									
								
								INSTALL
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										368
									
								
								INSTALL
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,368 @@ | ||||
| Installation Instructions | ||||
| ************************* | ||||
|  | ||||
|    Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software | ||||
| Foundation, Inc. | ||||
|  | ||||
|    Copying and distribution of this file, with or without modification, | ||||
| are permitted in any medium without royalty provided the copyright | ||||
| notice and this notice are preserved.  This file is offered as-is, | ||||
| without warranty of any kind. | ||||
|  | ||||
| Basic Installation | ||||
| ================== | ||||
|  | ||||
|    Briefly, the shell command './configure && make && make install' | ||||
| should configure, build, and install this package.  The following | ||||
| more-detailed instructions are generic; see the 'README' file for | ||||
| instructions specific to this package.  Some packages provide this | ||||
| 'INSTALL' file but do not implement all of the features documented | ||||
| below.  The lack of an optional feature in a given package is not | ||||
| necessarily a bug.  More recommendations for GNU packages can be found | ||||
| in *note Makefile Conventions: (standards)Makefile Conventions. | ||||
|  | ||||
|    The 'configure' shell script attempts to guess correct values for | ||||
| various system-dependent variables used during compilation.  It uses | ||||
| those values to create a 'Makefile' in each directory of the package. | ||||
| It may also create one or more '.h' files containing system-dependent | ||||
| definitions.  Finally, it creates a shell script 'config.status' that | ||||
| you can run in the future to recreate the current configuration, and a | ||||
| file 'config.log' containing compiler output (useful mainly for | ||||
| debugging 'configure'). | ||||
|  | ||||
|    It can also use an optional file (typically called 'config.cache' and | ||||
| enabled with '--cache-file=config.cache' or simply '-C') that saves the | ||||
| results of its tests to speed up reconfiguring.  Caching is disabled by | ||||
| default to prevent problems with accidental use of stale cache files. | ||||
|  | ||||
|    If you need to do unusual things to compile the package, please try | ||||
| to figure out how 'configure' could check whether to do them, and mail | ||||
| diffs or instructions to the address given in the 'README' so they can | ||||
| be considered for the next release.  If you are using the cache, and at | ||||
| some point 'config.cache' contains results you don't want to keep, you | ||||
| may remove or edit it. | ||||
|  | ||||
|    The file 'configure.ac' (or 'configure.in') is used to create | ||||
| 'configure' by a program called 'autoconf'.  You need 'configure.ac' if | ||||
| you want to change it or regenerate 'configure' using a newer version of | ||||
| 'autoconf'. | ||||
|  | ||||
|    The simplest way to compile this package is: | ||||
|  | ||||
|   1. 'cd' to the directory containing the package's source code and type | ||||
|      './configure' to configure the package for your system. | ||||
|  | ||||
|      Running 'configure' might take a while.  While running, it prints | ||||
|      some messages telling which features it is checking for. | ||||
|  | ||||
|   2. Type 'make' to compile the package. | ||||
|  | ||||
|   3. Optionally, type 'make check' to run any self-tests that come with | ||||
|      the package, generally using the just-built uninstalled binaries. | ||||
|  | ||||
|   4. Type 'make install' to install the programs and any data files and | ||||
|      documentation.  When installing into a prefix owned by root, it is | ||||
|      recommended that the package be configured and built as a regular | ||||
|      user, and only the 'make install' phase executed with root | ||||
|      privileges. | ||||
|  | ||||
|   5. Optionally, type 'make installcheck' to repeat any self-tests, but | ||||
|      this time using the binaries in their final installed location. | ||||
|      This target does not install anything.  Running this target as a | ||||
|      regular user, particularly if the prior 'make install' required | ||||
|      root privileges, verifies that the installation completed | ||||
|      correctly. | ||||
|  | ||||
|   6. You can remove the program binaries and object files from the | ||||
|      source code directory by typing 'make clean'.  To also remove the | ||||
|      files that 'configure' created (so you can compile the package for | ||||
|      a different kind of computer), type 'make distclean'.  There is | ||||
|      also a 'make maintainer-clean' target, but that is intended mainly | ||||
|      for the package's developers.  If you use it, you may have to get | ||||
|      all sorts of other programs in order to regenerate files that came | ||||
|      with the distribution. | ||||
|  | ||||
|   7. Often, you can also type 'make uninstall' to remove the installed | ||||
|      files again.  In practice, not all packages have tested that | ||||
|      uninstallation works correctly, even though it is required by the | ||||
|      GNU Coding Standards. | ||||
|  | ||||
|   8. Some packages, particularly those that use Automake, provide 'make | ||||
|      distcheck', which can by used by developers to test that all other | ||||
|      targets like 'make install' and 'make uninstall' work correctly. | ||||
|      This target is generally not run by end users. | ||||
|  | ||||
| Compilers and Options | ||||
| ===================== | ||||
|  | ||||
|    Some systems require unusual options for compilation or linking that | ||||
| the 'configure' script does not know about.  Run './configure --help' | ||||
| for details on some of the pertinent environment variables. | ||||
|  | ||||
|    You can give 'configure' initial values for configuration parameters | ||||
| by setting variables in the command line or in the environment.  Here is | ||||
| an example: | ||||
|  | ||||
|      ./configure CC=c99 CFLAGS=-g LIBS=-lposix | ||||
|  | ||||
|    *Note Defining Variables::, for more details. | ||||
|  | ||||
| Compiling For Multiple Architectures | ||||
| ==================================== | ||||
|  | ||||
|    You can compile the package for more than one kind of computer at the | ||||
| same time, by placing the object files for each architecture in their | ||||
| own directory.  To do this, you can use GNU 'make'.  'cd' to the | ||||
| directory where you want the object files and executables to go and run | ||||
| the 'configure' script.  'configure' automatically checks for the source | ||||
| code in the directory that 'configure' is in and in '..'.  This is known | ||||
| as a "VPATH" build. | ||||
|  | ||||
|    With a non-GNU 'make', it is safer to compile the package for one | ||||
| architecture at a time in the source code directory.  After you have | ||||
| installed the package for one architecture, use 'make distclean' before | ||||
| reconfiguring for another architecture. | ||||
|  | ||||
|    On MacOS X 10.5 and later systems, you can create libraries and | ||||
| executables that work on multiple system types--known as "fat" or | ||||
| "universal" binaries--by specifying multiple '-arch' options to the | ||||
| compiler but only a single '-arch' option to the preprocessor.  Like | ||||
| this: | ||||
|  | ||||
|      ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ | ||||
|                  CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ | ||||
|                  CPP="gcc -E" CXXCPP="g++ -E" | ||||
|  | ||||
|    This is not guaranteed to produce working output in all cases, you | ||||
| may have to build one architecture at a time and combine the results | ||||
| using the 'lipo' tool if you have problems. | ||||
|  | ||||
| Installation Names | ||||
| ================== | ||||
|  | ||||
|    By default, 'make install' installs the package's commands under | ||||
| '/usr/local/bin', include files under '/usr/local/include', etc.  You | ||||
| can specify an installation prefix other than '/usr/local' by giving | ||||
| 'configure' the option '--prefix=PREFIX', where PREFIX must be an | ||||
| absolute file name. | ||||
|  | ||||
|    You can specify separate installation prefixes for | ||||
| architecture-specific files and architecture-independent files.  If you | ||||
| pass the option '--exec-prefix=PREFIX' to 'configure', the package uses | ||||
| PREFIX as the prefix for installing programs and libraries. | ||||
| Documentation and other data files still use the regular prefix. | ||||
|  | ||||
|    In addition, if you use an unusual directory layout you can give | ||||
| options like '--bindir=DIR' to specify different values for particular | ||||
| kinds of files.  Run 'configure --help' for a list of the directories | ||||
| you can set and what kinds of files go in them.  In general, the default | ||||
| for these options is expressed in terms of '${prefix}', so that | ||||
| specifying just '--prefix' will affect all of the other directory | ||||
| specifications that were not explicitly provided. | ||||
|  | ||||
|    The most portable way to affect installation locations is to pass the | ||||
| correct locations to 'configure'; however, many packages provide one or | ||||
| both of the following shortcuts of passing variable assignments to the | ||||
| 'make install' command line to change installation locations without | ||||
| having to reconfigure or recompile. | ||||
|  | ||||
|    The first method involves providing an override variable for each | ||||
| affected directory.  For example, 'make install | ||||
| prefix=/alternate/directory' will choose an alternate location for all | ||||
| directory configuration variables that were expressed in terms of | ||||
| '${prefix}'.  Any directories that were specified during 'configure', | ||||
| but not in terms of '${prefix}', must each be overridden at install time | ||||
| for the entire installation to be relocated.  The approach of makefile | ||||
| variable overrides for each directory variable is required by the GNU | ||||
| Coding Standards, and ideally causes no recompilation.  However, some | ||||
| platforms have known limitations with the semantics of shared libraries | ||||
| that end up requiring recompilation when using this method, particularly | ||||
| noticeable in packages that use GNU Libtool. | ||||
|  | ||||
|    The second method involves providing the 'DESTDIR' variable.  For | ||||
| example, 'make install DESTDIR=/alternate/directory' will prepend | ||||
| '/alternate/directory' before all installation names.  The approach of | ||||
| 'DESTDIR' overrides is not required by the GNU Coding Standards, and | ||||
| does not work on platforms that have drive letters.  On the other hand, | ||||
| it does better at avoiding recompilation issues, and works well even | ||||
| when some directory options were not specified in terms of '${prefix}' | ||||
| at 'configure' time. | ||||
|  | ||||
| Optional Features | ||||
| ================= | ||||
|  | ||||
|    If the package supports it, you can cause programs to be installed | ||||
| with an extra prefix or suffix on their names by giving 'configure' the | ||||
| option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. | ||||
|  | ||||
|    Some packages pay attention to '--enable-FEATURE' options to | ||||
| 'configure', where FEATURE indicates an optional part of the package. | ||||
| They may also pay attention to '--with-PACKAGE' options, where PACKAGE | ||||
| is something like 'gnu-as' or 'x' (for the X Window System).  The | ||||
| 'README' should mention any '--enable-' and '--with-' options that the | ||||
| package recognizes. | ||||
|  | ||||
|    For packages that use the X Window System, 'configure' can usually | ||||
| find the X include and library files automatically, but if it doesn't, | ||||
| you can use the 'configure' options '--x-includes=DIR' and | ||||
| '--x-libraries=DIR' to specify their locations. | ||||
|  | ||||
|    Some packages offer the ability to configure how verbose the | ||||
| execution of 'make' will be.  For these packages, running './configure | ||||
| --enable-silent-rules' sets the default to minimal output, which can be | ||||
| overridden with 'make V=1'; while running './configure | ||||
| --disable-silent-rules' sets the default to verbose, which can be | ||||
| overridden with 'make V=0'. | ||||
|  | ||||
| Particular systems | ||||
| ================== | ||||
|  | ||||
|    On HP-UX, the default C compiler is not ANSI C compatible.  If GNU CC | ||||
| is not installed, it is recommended to use the following options in | ||||
| order to use an ANSI C compiler: | ||||
|  | ||||
|      ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" | ||||
|  | ||||
| and if that doesn't work, install pre-built binaries of GCC for HP-UX. | ||||
|  | ||||
|    HP-UX 'make' updates targets which have the same time stamps as their | ||||
| prerequisites, which makes it generally unusable when shipped generated | ||||
| files such as 'configure' are involved.  Use GNU 'make' instead. | ||||
|  | ||||
|    On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot | ||||
| parse its '<wchar.h>' header file.  The option '-nodtk' can be used as a | ||||
| workaround.  If GNU CC is not installed, it is therefore recommended to | ||||
| try | ||||
|  | ||||
|      ./configure CC="cc" | ||||
|  | ||||
| and if that doesn't work, try | ||||
|  | ||||
|      ./configure CC="cc -nodtk" | ||||
|  | ||||
|    On Solaris, don't put '/usr/ucb' early in your 'PATH'.  This | ||||
| directory contains several dysfunctional programs; working variants of | ||||
| these programs are available in '/usr/bin'.  So, if you need '/usr/ucb' | ||||
| in your 'PATH', put it _after_ '/usr/bin'. | ||||
|  | ||||
|    On Haiku, software installed for all users goes in '/boot/common', | ||||
| not '/usr/local'.  It is recommended to use the following options: | ||||
|  | ||||
|      ./configure --prefix=/boot/common | ||||
|  | ||||
| Specifying the System Type | ||||
| ========================== | ||||
|  | ||||
|    There may be some features 'configure' cannot figure out | ||||
| automatically, but needs to determine by the type of machine the package | ||||
| will run on.  Usually, assuming the package is built to be run on the | ||||
| _same_ architectures, 'configure' can figure that out, but if it prints | ||||
| a message saying it cannot guess the machine type, give it the | ||||
| '--build=TYPE' option.  TYPE can either be a short name for the system | ||||
| type, such as 'sun4', or a canonical name which has the form: | ||||
|  | ||||
|      CPU-COMPANY-SYSTEM | ||||
|  | ||||
| where SYSTEM can have one of these forms: | ||||
|  | ||||
|      OS | ||||
|      KERNEL-OS | ||||
|  | ||||
|    See the file 'config.sub' for the possible values of each field.  If | ||||
| 'config.sub' isn't included in this package, then this package doesn't | ||||
| need to know the machine type. | ||||
|  | ||||
|    If you are _building_ compiler tools for cross-compiling, you should | ||||
| use the option '--target=TYPE' to select the type of system they will | ||||
| produce code for. | ||||
|  | ||||
|    If you want to _use_ a cross compiler, that generates code for a | ||||
| platform different from the build platform, you should specify the | ||||
| "host" platform (i.e., that on which the generated programs will | ||||
| eventually be run) with '--host=TYPE'. | ||||
|  | ||||
| Sharing Defaults | ||||
| ================ | ||||
|  | ||||
|    If you want to set default values for 'configure' scripts to share, | ||||
| you can create a site shell script called 'config.site' that gives | ||||
| default values for variables like 'CC', 'cache_file', and 'prefix'. | ||||
| 'configure' looks for 'PREFIX/share/config.site' if it exists, then | ||||
| 'PREFIX/etc/config.site' if it exists.  Or, you can set the | ||||
| 'CONFIG_SITE' environment variable to the location of the site script. | ||||
| A warning: not all 'configure' scripts look for a site script. | ||||
|  | ||||
| Defining Variables | ||||
| ================== | ||||
|  | ||||
|    Variables not defined in a site shell script can be set in the | ||||
| environment passed to 'configure'.  However, some packages may run | ||||
| configure again during the build, and the customized values of these | ||||
| variables may be lost.  In order to avoid this problem, you should set | ||||
| them in the 'configure' command line, using 'VAR=value'.  For example: | ||||
|  | ||||
|      ./configure CC=/usr/local2/bin/gcc | ||||
|  | ||||
| causes the specified 'gcc' to be used as the C compiler (unless it is | ||||
| overridden in the site shell script). | ||||
|  | ||||
| Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an | ||||
| Autoconf limitation.  Until the limitation is lifted, you can use this | ||||
| workaround: | ||||
|  | ||||
|      CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash | ||||
|  | ||||
| 'configure' Invocation | ||||
| ====================== | ||||
|  | ||||
|    'configure' recognizes the following options to control how it | ||||
| operates. | ||||
|  | ||||
| '--help' | ||||
| '-h' | ||||
|      Print a summary of all of the options to 'configure', and exit. | ||||
|  | ||||
| '--help=short' | ||||
| '--help=recursive' | ||||
|      Print a summary of the options unique to this package's | ||||
|      'configure', and exit.  The 'short' variant lists options used only | ||||
|      in the top level, while the 'recursive' variant lists options also | ||||
|      present in any nested packages. | ||||
|  | ||||
| '--version' | ||||
| '-V' | ||||
|      Print the version of Autoconf used to generate the 'configure' | ||||
|      script, and exit. | ||||
|  | ||||
| '--cache-file=FILE' | ||||
|      Enable the cache: use and save the results of the tests in FILE, | ||||
|      traditionally 'config.cache'.  FILE defaults to '/dev/null' to | ||||
|      disable caching. | ||||
|  | ||||
| '--config-cache' | ||||
| '-C' | ||||
|      Alias for '--cache-file=config.cache'. | ||||
|  | ||||
| '--quiet' | ||||
| '--silent' | ||||
| '-q' | ||||
|      Do not print messages saying which checks are being made.  To | ||||
|      suppress all normal output, redirect it to '/dev/null' (any error | ||||
|      messages will still be shown). | ||||
|  | ||||
| '--srcdir=DIR' | ||||
|      Look for the package's source code in directory DIR.  Usually | ||||
|      'configure' can determine that directory automatically. | ||||
|  | ||||
| '--prefix=DIR' | ||||
|      Use DIR as the installation prefix.  *note Installation Names:: for | ||||
|      more details, including other options available for fine-tuning the | ||||
|      installation locations. | ||||
|  | ||||
| '--no-create' | ||||
| '-n' | ||||
|      Run the configure checks, but stop before creating any output | ||||
|      files. | ||||
|  | ||||
| 'configure' also accepts some other, not widely useful, options.  Run | ||||
| 'configure --help' for more details. | ||||
							
								
								
									
										48
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,48 +0,0 @@ | ||||
| PREFIX = /usr/local/bin | ||||
|  | ||||
| PPASSPATH = /var/lib/pam_panic | ||||
| PPASSFILE = $(PPASSPATH)/auth | ||||
|  | ||||
| POSSIBLE_PAMDIRS = /lib/x86_64-linux-gnu/security /lib/security | ||||
| PAMDIR = $(shell make detect_pamdir) | ||||
| MANDIR = /usr/share/man | ||||
|  | ||||
| all: | ||||
| 	@which reboot >/dev/null | ||||
| 	@which poweroff >/dev/null | ||||
| 	@which cryptsetup >/dev/null | ||||
| 	mkdir -p build | ||||
| 	make -C src -e "PPASSFILE = $(PPASSFILE)" | ||||
| 	@printf "Done!\n" | ||||
|  | ||||
| clean: | ||||
| 	rm build/pam_panic.so | ||||
| 	rm build/pam_panic_pw | ||||
| 	make -C src/pam_panic clean | ||||
| 	rmdir build | ||||
| 	@printf "Done!\n" | ||||
|  | ||||
| detect_pamdir:  | ||||
| 	@for d in $(POSSIBLE_PAMDIRS); do if [ ! -d $${d} ]; then continue; else printf "$${d}\n"; fi; done | ||||
|  | ||||
| purge: | ||||
| 	rm /var/lib/pam_panic/* | ||||
| 	rmdir /var/lib/pam_panic | ||||
| 	@printf "Done!\n" | ||||
|  | ||||
| uninstall: | ||||
| 	PAMDIR=$(PAMDIR); rm $${PAMDIR}/pam_panic.so | ||||
| 	rm /usr/share/man/*/pam_panic.8.gz | ||||
| 	rm /usr/share/man/*/pam_panic_pw.1.gz | ||||
| 	rm $(PREFIX)/pam_panic_pw | ||||
| 	@printf "Done!\n" | ||||
|  | ||||
| install: | ||||
| 	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 | ||||
| 	if [ ! -d $(MANDIR) ]; then printf "Error: Where is the manpage directory?\n" && exit 1; else make install -C man -e "MANDIR = $(MANDIR)"; fi | ||||
| 	mkdir -p $(PPASSPATH) | ||||
| 	cp build/pam_panic_pw $(PREFIX)/pam_panic_pw | ||||
| 	@printf "Done!\n" | ||||
|  | ||||
| test: | ||||
| 	@printf "We only can test it in production, yet.\n" | ||||
							
								
								
									
										3
									
								
								Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Makefile.am
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
|  | ||||
| SUBDIRS = src/pam_panic src/pam_panic_pw | ||||
							
								
								
									
										48
									
								
								configure.ac
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								configure.ac
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| AC_INIT([pam_panic], [0.1.0], [], [pam_panic]) | ||||
| AC_CONFIG_AUX_DIR([build-aux]) | ||||
| AM_INIT_AUTOMAKE([-Wall]) | ||||
| AC_PREREQ([2.69]) | ||||
| AC_CONFIG_MACRO_DIR([m4]) | ||||
| AC_CANONICAL_HOST | ||||
|  | ||||
| AC_SUBST(PACKAGE) | ||||
| AC_SUBST(VERSION) | ||||
|  | ||||
| AC_USE_SYSTEM_EXTENSIONS | ||||
| AC_PROG_CC | ||||
| AM_PROG_AR | ||||
|  | ||||
| AC_PATH_PROG([REBOOT], [reboot]) | ||||
| AC_SUBST(REBOOT) | ||||
| AC_PATH_PROG([POWEROFF], [poweroff]) | ||||
| AC_SUBST(POWEROFF) | ||||
| AC_PATH_PROG([CRYPTSETUP], [cryptsetup]) | ||||
| AC_SUBST(CRYPTSETUP) | ||||
|  | ||||
| AC_ARG_ENABLE(securedir, | ||||
|     AS_HELP_STRING([--enable-securedir=DIR], | ||||
|         [path to location of PAMs @<:@default=$libdir/security@:>@]), | ||||
|     SECUREDIR=$enableval, SECUREDIR=$libdir/security) | ||||
| AC_SUBST(SECUREDIR) | ||||
|  | ||||
| AC_ARG_ENABLE(ppassfile, | ||||
|     AS_HELP_STRING([--enable-ppassfile=FILE], | ||||
|         [path to file to be used for storing passwords @<:@default=$sysconfdir/pam_panic/auth@:>@]), | ||||
|     PPASSFILE=$enableval, PPASSFILE=$sysconfdir/pam_panic/auth) | ||||
| AC_SUBST(PPASSFILE) | ||||
|  | ||||
| LT_INIT([disable-static]) | ||||
| AC_ENABLE_STATIC([no]) | ||||
| AC_ENABLE_SHARED([yes]) | ||||
|  | ||||
| AC_CONFIG_FILES([ | ||||
|     Makefile | ||||
|     src/pam_panic/config.h | ||||
|     src/pam_panic/Makefile | ||||
|     src/pam_panic/man/Makefile | ||||
|     src/pam_panic_pw/config.h | ||||
|     src/pam_panic_pw/Makefile | ||||
|     src/pam_panic_pw/man/Makefile | ||||
| ]) | ||||
|  | ||||
| AC_OUTPUT | ||||
							
								
								
									
										5
									
								
								m4/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								m4/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| libtool.m4 | ||||
| ltoptions.m4 | ||||
| ltsugar.m4 | ||||
| ltversion.m4 | ||||
| lt~obsolete.m4 | ||||
							
								
								
									
										11
									
								
								man/Makefile
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								man/Makefile
									
									
									
									
									
								
							| @@ -1,11 +0,0 @@ | ||||
| .PHONY: man1 man8 | ||||
|  | ||||
| man1: | ||||
| 	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 | ||||
|  | ||||
| man8: | ||||
| 	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 | ||||
|  | ||||
| install: | ||||
| 	make man1 | ||||
| 	make man8 | ||||
| @@ -1,3 +0,0 @@ | ||||
| all: | ||||
| 	make -C pam_panic -e "PPASSFILE = $(PPASSFILE)" | ||||
| 	make -C pam_panic_pw -e "PPASSFILE = $(PPASSFILE)" | ||||
| @@ -1,25 +0,0 @@ | ||||
| CFLAGS = -Wall --std=gnu11 -O2 -fPIC -DPOWEROFF=\"`which poweroff`\" -DREBOOT=\"`which reboot`\" -DCRYPTSETUP=\"`which cryptsetup`\" -DPPASSFILE=\"$(PPASSFILE)\"  | ||||
| #LDFLAGS = -x -shared -lcrypt -lpam -lpam_misc | ||||
| LDFLAGS = -shared -lcrypt -lpam -lpam_misc | ||||
|  | ||||
|  | ||||
| OBJ = pam_panic_authdevice.o pam_panic_password.o pam_panic_reject.o | ||||
|  | ||||
|  | ||||
| pam_panic: $(OBJ) | ||||
| 	cc $(CFLAGS) $(LDFLAGS) -o ../../build/pam_panic.so pam_panic.c $(OBJ) | ||||
| #	ld $(LDFLAGS) -o ../../build/pam_panic.so $(OBJ) | ||||
|  | ||||
| %.o: %.c | ||||
| 	$(CC) $(CFLAGS) -c -o $@ $< | ||||
|  | ||||
| all:  | ||||
| 	mkdir -p ../../build | ||||
|  | ||||
| clean: | ||||
| 	rm *.o | ||||
| 	 | ||||
|  | ||||
| #	cc $(CFLAGS) -c pam_panic.c -o ../../obj/pam_panic.o | ||||
| #	ld $(LDFLAGS) -o ../../build/pam_panic.so ../../obj/pam_panic.o | ||||
|  | ||||
							
								
								
									
										13
									
								
								src/pam_panic/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/pam_panic/Makefile.am
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| SUBDIRS = man | ||||
|  | ||||
| securelibdir = $(SECUREDIR) | ||||
| securelibexecdir = $(securelibdir) | ||||
|  | ||||
| securelibexec_LTLIBRARIES = pam_panic.la | ||||
| pam_panic_la_SOURCES = \ | ||||
| 	pam_panic.c \ | ||||
| 	pam_panic_authdevice.c \ | ||||
| 	pam_panic_password.c \ | ||||
| 	pam_panic_reject.c | ||||
| pam_panic_la_LDFLAGS = -module -no-undefined -avoid-version | ||||
| pam_panic_la_LIBADD = -lpam -lcrypto | ||||
							
								
								
									
										9
									
								
								src/pam_panic/config.h.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/pam_panic/config.h.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #ifndef PAM_PANIC_CONFIG_H | ||||
| #define PAM_PANIC_CONFIG_H | ||||
|  | ||||
| #define REBOOT "@REBOOT@" | ||||
| #define POWEROFF "@POWEROFF@" | ||||
| #define CRYPTSETUP "@CRYPTSETUP@" | ||||
| #define PPASSFILE "@PPASSFILE@" | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										17
									
								
								src/pam_panic/man/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/pam_panic/man/Makefile.am
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| man8_MANS = man8/pam_panic.8 | ||||
|  | ||||
| install-data-local: install-man-de install-man-es install-man-fr | ||||
|  | ||||
| install-man-de: de/man8/pam_panic.8 | ||||
| 	mkdir -p $(mandir)/de/man8 | ||||
| 	cp $< $(mandir)/de/man8 | ||||
|  | ||||
| install-man-es: es/man8/pam_panic.8 | ||||
| 	mkdir -p $(mandir)/es/man8 | ||||
| 	cp $< $(mandir)/es/man8 | ||||
|  | ||||
| install-man-fr: fr/man8/pam_panic.8 | ||||
| 	mkdir -p $(mandir)/fr/man8 | ||||
| 	cp $< $(mandir)/fr/man8 | ||||
|  | ||||
| .PHONY: install-data-local install-man-de install-man-es install-man-fr | ||||
| @@ -16,6 +16,7 @@ LICENSE :      GNU-GPLv3 | ||||
| #include <security/pam_modules.h> | ||||
| #include <security/pam_ext.h> | ||||
| #include <syslog.h> | ||||
| #include "config.h" | ||||
| #include "pam_panic_reject.h" | ||||
| #include "pam_panic_authdevice.h" | ||||
| #include "pam_panic_password.h" | ||||
|   | ||||
| @@ -5,6 +5,8 @@ DATE :         2018-03-27T02:34:08+02:00 | ||||
| LICENSE :      GNU-GPLv3 | ||||
| */ | ||||
|  | ||||
| #include "config.h" | ||||
|  | ||||
| #ifndef PPASSFILE | ||||
|   #error PPASSFILE must be declared! | ||||
| #endif | ||||
|   | ||||
| @@ -10,6 +10,7 @@ LICENSE :      GNU-GPLv3 | ||||
| #include <unistd.h> | ||||
| #include <security/pam_ext.h> | ||||
| #include <sys/wait.h> | ||||
| #include "config.h" | ||||
| #include "pam_panic_reject.h" | ||||
|  | ||||
| int reject(char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){ | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| LDFLAGS = -lm -lcrypt  | ||||
| CFLAGS = --std=gnu11 -Wall -O2 -DPPASSFILE=\"$(PPASSFILE)\" | ||||
|  | ||||
| all: | ||||
| 	mkdir -p ../../build/ | ||||
| 	gcc $(CFLAGS) pam_panic_pw.c -o ../../build/pam_panic_pw $(LDFLAGS) | ||||
							
								
								
									
										5
									
								
								src/pam_panic_pw/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/pam_panic_pw/Makefile.am
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| SUBDIRS = man | ||||
|  | ||||
| bin_PROGRAMS = pam_panic_pw | ||||
| pam_panic_pw_SOURCES = pam_panic_pw.c | ||||
| pam_panic_pw_LDFLAGS = -lcrypt | ||||
							
								
								
									
										6
									
								
								src/pam_panic_pw/config.h.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/pam_panic_pw/config.h.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| #ifndef PAM_PANIC_PW_CONFIG_H | ||||
| #define PAM_PANIC_PW_CONFIG_H | ||||
|  | ||||
| #define PPASSFILE "@PPASSFILE@" | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										10
									
								
								src/pam_panic_pw/man/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/pam_panic_pw/man/Makefile.am
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| man1_MANS = man1/pam_panic_pw.1 | ||||
| mande1_MANS = de/man1/pam_panic_pw.1 | ||||
|  | ||||
| install-data-local: install-man-de | ||||
|  | ||||
| install-man-de: de/man1/pam_panic_pw.1 | ||||
| 	mkdir -p $(mandir)/de/man1 | ||||
| 	cp $< $(mandir)/de/man1 | ||||
|  | ||||
| .PHONY: install-data-local install-man-de | ||||
| @@ -16,6 +16,7 @@ LICENSE :      GNU-GPLv3 | ||||
| #include <unistd.h> | ||||
| #include <sys/stat.h> | ||||
| #include <crypt.h> | ||||
| #include "config.h" | ||||
|  | ||||
|  | ||||
| int writePasswords(char pw[][99]){ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jordy Dickinson
					Jordy Dickinson