diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..761632a --- /dev/null +++ b/.gitignore @@ -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 diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..d2399cf --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Bandie diff --git a/LICENSE b/COPYING similarity index 100% rename from LICENSE rename to COPYING diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..8865734 --- /dev/null +++ b/INSTALL @@ -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 '' 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. diff --git a/Makefile b/Makefile deleted file mode 100644 index 0fe5d8d..0000000 --- a/Makefile +++ /dev/null @@ -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" diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..68757c4 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,3 @@ +ACLOCAL_AMFLAGS = -I m4 + +SUBDIRS = src/pam_panic src/pam_panic_pw diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/README b/README new file mode 120000 index 0000000..42061c0 --- /dev/null +++ b/README @@ -0,0 +1 @@ +README.md \ No newline at end of file diff --git a/configure b/configure deleted file mode 100755 index e850d2f..0000000 --- a/configure +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -echo "This does nothing. Just run make." diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..1c28bea --- /dev/null +++ b/configure.ac @@ -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 diff --git a/m4/.gitignore b/m4/.gitignore new file mode 100644 index 0000000..38066dd --- /dev/null +++ b/m4/.gitignore @@ -0,0 +1,5 @@ +libtool.m4 +ltoptions.m4 +ltsugar.m4 +ltversion.m4 +lt~obsolete.m4 diff --git a/man/Makefile b/man/Makefile deleted file mode 100644 index 9d7e2f4..0000000 --- a/man/Makefile +++ /dev/null @@ -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 diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index 3848f45..0000000 --- a/src/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -all: - make -C pam_panic -e "PPASSFILE = $(PPASSFILE)" - make -C pam_panic_pw -e "PPASSFILE = $(PPASSFILE)" diff --git a/src/pam_panic/Makefile b/src/pam_panic/Makefile deleted file mode 100644 index b4ee796..0000000 --- a/src/pam_panic/Makefile +++ /dev/null @@ -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 - diff --git a/src/pam_panic/Makefile.am b/src/pam_panic/Makefile.am new file mode 100644 index 0000000..0e73444 --- /dev/null +++ b/src/pam_panic/Makefile.am @@ -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 diff --git a/src/pam_panic/config.h.in b/src/pam_panic/config.h.in new file mode 100644 index 0000000..4a888b8 --- /dev/null +++ b/src/pam_panic/config.h.in @@ -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 diff --git a/src/pam_panic/man/Makefile.am b/src/pam_panic/man/Makefile.am new file mode 100644 index 0000000..482ab59 --- /dev/null +++ b/src/pam_panic/man/Makefile.am @@ -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 diff --git a/man/de/man8/pam_panic.8 b/src/pam_panic/man/de/man8/pam_panic.8 similarity index 100% rename from man/de/man8/pam_panic.8 rename to src/pam_panic/man/de/man8/pam_panic.8 diff --git a/man/es/man8/pam_panic.8 b/src/pam_panic/man/es/man8/pam_panic.8 similarity index 100% rename from man/es/man8/pam_panic.8 rename to src/pam_panic/man/es/man8/pam_panic.8 diff --git a/man/fr/man8/pam_panic.8 b/src/pam_panic/man/fr/man8/pam_panic.8 similarity index 100% rename from man/fr/man8/pam_panic.8 rename to src/pam_panic/man/fr/man8/pam_panic.8 diff --git a/man/man8/pam_panic.8 b/src/pam_panic/man/man8/pam_panic.8 similarity index 100% rename from man/man8/pam_panic.8 rename to src/pam_panic/man/man8/pam_panic.8 diff --git a/src/pam_panic/pam_panic.c b/src/pam_panic/pam_panic.c index 63f4756..5e15d3e 100644 --- a/src/pam_panic/pam_panic.c +++ b/src/pam_panic/pam_panic.c @@ -16,6 +16,7 @@ LICENSE : GNU-GPLv3 #include #include #include +#include "config.h" #include "pam_panic_reject.h" #include "pam_panic_authdevice.h" #include "pam_panic_password.h" diff --git a/src/pam_panic/pam_panic_password.h b/src/pam_panic/pam_panic_password.h index 886520c..7ecf411 100644 --- a/src/pam_panic/pam_panic_password.h +++ b/src/pam_panic/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 diff --git a/src/pam_panic/pam_panic_reject.c b/src/pam_panic/pam_panic_reject.c index 8298b0d..59c093d 100644 --- a/src/pam_panic/pam_panic_reject.c +++ b/src/pam_panic/pam_panic_reject.c @@ -10,6 +10,7 @@ LICENSE : GNU-GPLv3 #include #include #include +#include "config.h" #include "pam_panic_reject.h" int reject(char *serious_dev, int8_t bSerious, int8_t bReboot, int8_t bPoweroff){ diff --git a/src/pam_panic_pw/Makefile b/src/pam_panic_pw/Makefile deleted file mode 100644 index 0f3e62e..0000000 --- a/src/pam_panic_pw/Makefile +++ /dev/null @@ -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) diff --git a/src/pam_panic_pw/Makefile.am b/src/pam_panic_pw/Makefile.am new file mode 100644 index 0000000..f7dab78 --- /dev/null +++ b/src/pam_panic_pw/Makefile.am @@ -0,0 +1,5 @@ +SUBDIRS = man + +bin_PROGRAMS = pam_panic_pw +pam_panic_pw_SOURCES = pam_panic_pw.c +pam_panic_pw_LDFLAGS = -lcrypt diff --git a/src/pam_panic_pw/config.h.in b/src/pam_panic_pw/config.h.in new file mode 100644 index 0000000..c9bdaaa --- /dev/null +++ b/src/pam_panic_pw/config.h.in @@ -0,0 +1,6 @@ +#ifndef PAM_PANIC_PW_CONFIG_H +#define PAM_PANIC_PW_CONFIG_H + +#define PPASSFILE "@PPASSFILE@" + +#endif diff --git a/src/pam_panic_pw/man/Makefile.am b/src/pam_panic_pw/man/Makefile.am new file mode 100644 index 0000000..ac930f4 --- /dev/null +++ b/src/pam_panic_pw/man/Makefile.am @@ -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 diff --git a/man/de/man1/pam_panic_pw.1 b/src/pam_panic_pw/man/de/man1/pam_panic_pw.1 similarity index 100% rename from man/de/man1/pam_panic_pw.1 rename to src/pam_panic_pw/man/de/man1/pam_panic_pw.1 diff --git a/man/man1/pam_panic_pw.1 b/src/pam_panic_pw/man/man1/pam_panic_pw.1 similarity index 100% rename from man/man1/pam_panic_pw.1 rename to src/pam_panic_pw/man/man1/pam_panic_pw.1 diff --git a/src/pam_panic_pw/pam_panic_pw.c b/src/pam_panic_pw/pam_panic_pw.c index 704b6c4..564d696 100644 --- a/src/pam_panic_pw/pam_panic_pw.c +++ b/src/pam_panic_pw/pam_panic_pw.c @@ -16,6 +16,7 @@ LICENSE : GNU-GPLv3 #include #include #include +#include "config.h" int writePasswords(char pw[][99]){