]> git.pld-linux.org Git - packages/shadow.git/commitdiff
This commit was manufactured by cvs2git to create branch 'PATCHED_3_2'. PATCHED_3_2
authorcvs2git <feedback@pld-linux.org>
Fri, 1 Jun 2001 22:05:37 +0000 (22:05 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Sprout from master 2001-06-01 22:05:37 UTC Sebastian Zagrodzki <sebek@zagrodzki.net> '- added commented use of pam_pwgen'
Delete:
    chage.pamd
    chfn.pamd
    chsh.pamd
    shadow-login.defs
    shadow-pld.patch
    shadow-utmpx.patch
    shadow.spec
    shadow.useradd
    userdb.pamd

chage.pamd [deleted file]
chfn.pamd [deleted file]
chsh.pamd [deleted file]
shadow-login.defs [deleted file]
shadow-pld.patch [deleted file]
shadow-utmpx.patch [deleted file]
shadow.spec [deleted file]
shadow.useradd [deleted file]
userdb.pamd [deleted file]

diff --git a/chage.pamd b/chage.pamd
deleted file mode 100644 (file)
index d27e5f1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#%PAM-1.0
-auth           sufficient      /lib/security/pam_rootok.so
-auth           required        /lib/security/pam_unix.so
-account                required        /lib/security/pam_permit.so
-password       required        /lib/security/pam_make.so /var/db
diff --git a/chfn.pamd b/chfn.pamd
deleted file mode 100644 (file)
index 1500192..0000000
--- a/chfn.pamd
+++ /dev/null
@@ -1,11 +0,0 @@
-#%PAM-1.0
-auth           required        /lib/security/pam_listfile.so item=user sense=allow file=/etc/security/chfn.allow onerr=fail
-auth           sufficient      /lib/security/pam_rootok.so
-auth           required        /lib/security/pam_unix.so
-account                required        /lib/security/pam_unix.so
-password       required        /lib/security/pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
-password       required        /lib/security/pam_unix.so md5 shadow use_authtok
-password       required        /lib/security/pam_make.so /var/db
-session                required        /lib/security/pam_unix.so
-
-
diff --git a/chsh.pamd b/chsh.pamd
deleted file mode 100644 (file)
index b84fb1e..0000000
--- a/chsh.pamd
+++ /dev/null
@@ -1,11 +0,0 @@
-#%PAM-1.0
-auth           required        /lib/security/pam_listfile.so item=user sense=allow file=/etc/security/chsh.allow onerr=fail
-auth           sufficient      /lib/security/pam_rootok.so
-auth           required        /lib/security/pam_unix.so
-account                required        /lib/security/pam_unix.so
-password       required        /lib/security/pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
-password       required        /lib/security/pam_unix.so md5 shadow use_authtok
-password    required    /lib/security/pam_make.so /var/db
-session                required        /lib/security/pam_unix.so
-
-
diff --git a/shadow-login.defs b/shadow-login.defs
deleted file mode 100644 (file)
index 916d045..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# *REQUIRED*
-#   Directory where mailboxes reside, _or_ name of file, relative to the
-#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
-#   QMAIL_DIR is for Qmail
-#
-#QMAIL_DIR     Maildir
-MAIL_DIR       /var/mail
-#MAIL_FILE     .mail
-
-# Password aging controls:
-#
-#      PASS_MAX_DAYS   Maximum number of days a password may be used.
-#      PASS_MIN_DAYS   Minimum number of days allowed between password changes.
-#      PASS_MIN_LEN    Minimum acceptable password length.
-#      PASS_WARN_AGE   Number of days warning given before a password expires.
-#
-PASS_MAX_DAYS  99999
-PASS_MIN_DAYS  0
-PASS_MIN_LEN   8
-PASS_WARN_AGE  5
-
-#
-# Min/max values for automatic uid selection in useradd
-#
-UID_MIN                          500
-UID_MAX                        60000
-
-#
-# Min/max values for automatic gid selection in groupadd
-#
-GID_MIN                          500
-GID_MAX                        60000
-
-#
-# Require password before chfn/chsh can make any changes.
-#
-CHFN_AUTH              yes
-
-#
-# Don't allow users to change their "real name" using chfn.
-#
-CHFN_RESTRICT          yes
-
-#
-# If defined, this command is run when removing a user.
-# It should remove any at/cron/print jobs etc. owned by
-# the user to be removed (passed as the first argument).
-#
-#USERDEL_CMD   /usr/sbin/userdel_local
-
-#
-# If useradd should create home directories for users by default
-# On RH systems, we do. This option is ORed with the -m flag on
-# useradd command line.
-#
-#CREATE_HOME   yes
-
diff --git a/shadow-pld.patch b/shadow-pld.patch
deleted file mode 100644 (file)
index 88a673e..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-diff -Naur shadow-19990827/src/groupadd.c shadow-19990827-patched/src/groupadd.c
---- shadow-19990827/src/groupadd.c     Mon Jun  7 18:40:45 1999
-+++ shadow-19990827-patched/src/groupadd.c     Wed Apr 12 12:25:07 2000
-@@ -72,6 +72,8 @@
- static int oflg = 0; /* permit non-unique group ID to be specified with -g */
- static int gflg = 0; /* ID value for the new group */
- static int fflg = 0; /* if group already exists, do nothing and exit(0) */
-+static int rflg = 0; /* for adding system accounts */
-+#define MIN_GID       10
- #ifdef        NDBM
- extern        int     gr_dbm_mode;
-@@ -103,7 +105,7 @@
- static void
- usage(void)
- {
--      fprintf(stderr, _("usage: groupadd [-g gid [-o]] group\n"));
-+      fprintf(stderr, _("usage: groupadd [-g gid [-o]] [-r] [-f] group\n"));
-       exit(E_USAGE);
- }
-@@ -228,9 +230,13 @@
-       const struct group *grp;
-       gid_t gid_min, gid_max;
--      gid_min = getdef_num("GID_MIN", 100);
-+      if (!rflg) {
-+      gid_min = getdef_num("GID_MIN", 500);
-       gid_max = getdef_num("GID_MAX", 60000);
--
-+      } else {
-+      gid_min = MIN_GID;
-+      gid_max = getdef_num("GID_MIN", 499);
-+      }
-       /*
-        * Start with some GID value if the user didn't provide us with
-        * one already.
-@@ -339,7 +345,7 @@
-       char *cp;
-       int arg;
--      while ((arg = getopt(argc, argv, "og:O:f")) != EOF) {
-+      while ((arg = getopt(argc, argv, "og:O:fr")) != EOF) {
-               switch (arg) {
-               case 'g':
-                       gflg++;
-@@ -383,6 +389,12 @@
-                        * RedHat's patch from shadow-utils-970616-9.
-                        */
-                       fflg++;
-+                      break;
-+                      case 'r':
-+                      /*
-+                      * create system group
-+                      */
-+                      rflg++;
-                       break;
-               default:
-                       usage();
-diff -Naur shadow-19990827/src/useradd.c shadow-19990827-patched/src/useradd.c
---- shadow-19990827/src/useradd.c      Mon Jun  7 18:40:45 1999
-+++ shadow-19990827-patched/src/useradd.c      Wed Apr 12 12:25:41 2000
-@@ -72,10 +72,10 @@
- /*
-  * These defaults are used if there is no defaults file.
-  */
--static gid_t def_group = 100;
-+static gid_t def_group = 1000;
- static const char *def_gname = "other";
--static const char *def_home = "/home";
--static const char *def_shell = "";
-+static const char *def_home = "/home/users";
-+static const char *def_shell = "/dev/null";
- static const char *def_template = SKEL_DIR;
- #ifdef SHADOWPWD
- static long def_inactive = -1;
-@@ -87,7 +87,7 @@
- #define       VALID(s)        (strcspn (s, ":\n") == strlen (s))
- static const char *user_name = "";
--static const char *user_pass = "!";
-+static const char *user_pass = "!!";
- static uid_t user_id;
- static gid_t user_gid;
- static const char *user_comment = "";
-@@ -115,10 +115,13 @@
-       sflg = 0, /* shell program for new account */
-       cflg = 0, /* comment (GECOS) field for new account */
-       mflg = 0, /* create user's home directory if it doesn't exist */
-+      nflg = 0, /* no group for this user */
-       kflg = 0, /* specify a directory to fill new user directory */
-+      Mflg = 0, /* don't crate user's home directory */
-       fflg = 0, /* days until account with expired password is locked */
-       eflg = 0, /* days since 1970-01-01 when account is locked */
--      Dflg = 0; /* set/show new user default values */
-+      Dflg = 0, /* set/show new user default values */
-+      rflg = 0; /* system account */
- #ifdef AUTH_METHODS
- static int Aflg = 0; /* specify authentication method for user */
-@@ -171,6 +174,7 @@
-  * exit status values
-  */
- #define E_SUCCESS     0       /* success */
-+#define E_LOCKING     1       /* locking error */
- #define E_PW_UPDATE   1       /* can't update password file */
- #define E_USAGE               2       /* bad command syntax */
- #define E_BAD_ARG     3       /* invalid argument to option */
-@@ -711,7 +715,7 @@
- #ifdef AUTH_METHODS
-       fprintf(stderr, _("[-A program] "));
- #endif
--      fprintf(stderr, _("[-p passwd] name\n"));
-+      fprintf(stderr, _("[-p passwd] [-n] [-r] name\n"));
-       fprintf(stderr, _("       %s\t-D [-g group] [-b base] [-s shell]\n"),
-               Prog);
-@@ -968,10 +972,13 @@
- {
-       const struct passwd *pwd;
-       uid_t uid_min, uid_max;
--
--      uid_min = getdef_num("UID_MIN", 100);
-+      if (!rflg) {
-+      uid_min = getdef_num("UID_MIN", 500);
-       uid_max = getdef_num("UID_MAX", 60000);
--
-+      } else {
-+      uid_min = 1;
-+      uid_max = 949;
-+      }
-       /*
-        * Start with some UID value if the user didn't provide us with
-        * one already.
-@@ -1126,9 +1133,9 @@
-       char *cp;
- #ifdef SHADOWPWD
--#define FLAGS "A:Du:og:G:d:s:c:mk:p:f:e:b:O:M"
-+#define FLAGS "A:Du:og:G:d:s:c:mk:p:f:e:b:O:M:nr"
- #else
--#define FLAGS "A:Du:og:G:d:s:c:mk:p:b:O:M"
-+#define FLAGS "A:Du:og:G:d:s:c:mk:p:b:O:M:nr"
- #endif
-       while ((arg = getopt(argc, argv, FLAGS)) != EOF) {
- #undef FLAGS
-@@ -1261,6 +1268,12 @@
-               case 'o':
-                       oflg++;
-                       break;
-+              case 'n':
-+                      nflg++;
-+                      break;
-+              case 'r':
-+                      rflg++;
-+                      break;
-               case 'O':
-                       /*
-                        * override login.defs defaults (-O name=value)
-@@ -1312,9 +1325,10 @@
-        * Certain options are only valid in combination with others.
-        * Check it here so that they can be specified in any order.
-        */
--      if ((oflg && !uflg) || (kflg && !mflg))
-+      if (kflg && !mflg)
-+              usage();
-+      if (mflg && Mflg)
-               usage();
--
-       /*
-        * Either -D or username is required.  Defaults can be set with -D
-        * for the -b, -e, -f, -g, -s options only.
diff --git a/shadow-utmpx.patch b/shadow-utmpx.patch
deleted file mode 100644 (file)
index 1849d53..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -Nur shadow-19990307/configure.in shadow-19990307.pld/configure.in
---- shadow-19990307/configure.in       Sun Mar  7 19:04:34 1999
-+++ shadow-19990307.pld/configure.in   Mon Jun  7 17:58:09 1999
-@@ -162,21 +162,21 @@
-       fi
- done
--AC_MSG_CHECKING(location of utmp)
-+AC_MSG_CHECKING(location of utmpx)
- for utmpdir in /var/run /var/adm /usr/adm /etc NONE; do
-       if test "$utmpdir" = "NONE"; then
--              AC_MSG_WARN(utmp file not found)
--      elif test -f $utmpdir/utmp; then
--              AC_DEFINE_UNQUOTED(_UTMP_FILE, "$utmpdir/utmp")
-+              AC_MSG_WARN(utmpx file not found)
-+      elif test -f $utmpdir/utmpx; then
-+              AC_DEFINE_UNQUOTED(_UTMP_FILE, "$utmpdir/utmpx")
-               AC_MSG_RESULT($utmpdir)
-               break
-       fi
- done
--AC_MSG_CHECKING(location of faillog/lastlog/wtmp)
-+AC_MSG_CHECKING(location of faillog/lastlog/wtmpx)
- for logdir in /var/log /var/adm /usr/adm /etc; do
-       if test -d $logdir; then
--              AC_DEFINE_UNQUOTED(_WTMP_FILE, "$logdir/wtmp")
-+              AC_DEFINE_UNQUOTED(_WTMP_FILE, "$logdir/wtmpx")
-               AC_DEFINE_UNQUOTED(LASTLOG_FILE, "$logdir/lastlog")
-               AC_DEFINE_UNQUOTED(FAILLOG_FILE, "$logdir/faillog")
-               AC_MSG_RESULT($logdir)
diff --git a/shadow.spec b/shadow.spec
deleted file mode 100644 (file)
index ac17a2d..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-Summary:       Shadow password file utilities for Linux
-Summary(de):   Shadow-Paßwortdatei-Dienstprogramme für Linux
-Summary(fr):   Fichiers utilitaires pour Shadow password pour Linux
-Summary(pl):   Narzêdzia do obs³ugi shadow passwords
-Summary(tr):   Gölge parola dosyasý araçlarý
-Name:          shadow
-Version:       20001016
-Release:       2
-License:       BSD
-Group:         Applications/System
-Group(de):     Applikationen/System
-Group(pl):     Aplikacje/System
-Source0:       ftp://ftp.pld.org.pl/software/shadow/%{name}-%{version}.tar.gz
-Source1:       %{name}-login.defs
-Source2:       %{name}.useradd
-Source3:       chage.pamd
-Source4:       userdb.pamd
-Source5:       chsh.pamd
-Source6:       chfn.pamd
-Source7:       passwd.pamd
-Patch1:                %{name}-pld.patch
-Patch2:                %{name}-utmpx.patch
-BuildRequires: pam-devel
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: gettext-devel
-Provides:      shadow-utils
-BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-Obsoletes:     shadow-utils
-Obsoletes:     passwd
-
-%description
-This package includes the programs necessary to convert standard UNIX
-password files to the shadow password format, as well as programs for
-command-line management of the user's accounts.
- - 'pwconv' converts everything to the shadow password format.
- - 'pwunconv' unconverts from shadow passwords, generating a file in
-   the current directory called npasswd that is a standard UNIX password
-   file.
- - 'pwck' checks the integrity of the password and shadow files.
- - 'lastlog' prints out the last login times of all users.
- - 'useradd', 'userdel' and 'usermod' for accounts management.
- - 'groupadd', 'groupdel' and 'groupmod' for group management.
-
-A number of man pages are also included that relate to these
-utilities, and shadow passwords in general.
-
-%description -l pl
-Pakiet zawiera programy do obs³ugi shadow password. Zanjduj± siê w nim
-programy do konwersji standardowego pliku hase³ do wersji shadow
-password a tak¿e programy do zarz±danie kontami u¿ytkowników w
-systemie
- - 'pwconv' konwertuje do formatu shadow passwords
- - 'pwunconv' konwertuje z shadow passwords do formatu standardowego
-   pliku hase³. W bierz±cym katalogu tworzy plik npasswd bêd±cy
-   standardowym plikiem z has³ami.
- - 'lastlog' wy¶wietla czas logowanie u¿ytkowników
- - 'userdel' i 'usermod' do zarz±dzania kontami u¿ytkowników.
- - 'groupadd', 'groupdel' and 'groupmod' do zarz±dzania grupami
-
-Ostrze¿enie:
-
-Programy znajduj±ce siê w tym pakiecie s± niezbêdne do prawid³owej
-pracy twojego systemu i podobnie jak pakiet z bibliotekami systemowymi
-- glibc nigdy nie powinien zostaæ odinstalowany !
-
-%prep
-%setup -q 
-%patch1 -p1 
-%patch2 -p1 
-
-%build
-gettextize --copy --force
-aclocal
-autoheader
-autoconf
-automake -a -c --foreign
-%configure \
-       --disable-desrpc \
-       --with-libcrypt \
-       %{!?_without_static:--enable-static} \
-       %{!?_without_static:--disable-shared} \
-       %{?_without_static:--disable-static} \
-       %{?_without_static:--enable-shared} \
-       --with-libpam \
-       --with-md5crypt \
-       --with-nls \
-       --without-included-gettext 
-%{__make}  
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
-
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/{default,pam.d,skel}
-
-install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/login.defs
-install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/default/useradd
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/chage
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/shadow
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/chsh
-install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/chfn
-install %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/passwd
-
-:> $RPM_BUILD_ROOT%{_sysconfdir}/shadow
-
-echo .so pwconv.8 > $RPM_BUILD_ROOT%{_mandir}/man8/pwunconv.8
-echo .so pwconv.8 > $RPM_BUILD_ROOT%{_mandir}/man8/grpconv.8
-echo .so pwconv.8 > $RPM_BUILD_ROOT%{_mandir}/man8/grpunconv.8
-
-gzip -9nf doc/ANNOUNCE NEWS doc/README doc/README.linux doc/HOWTO
-
-%find_lang %{name}
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post
-%{!?_without_static:#}/sbin/ldconfig
-if [ ! -f /etc/shadow ]; then
-       %{_sbindir}/pwconv
-fi
-
-%{!?_without_static:#}%postun -p /sbin/ldconfig
-
-%files -f %{name}.lang
-%defattr(644,root,root,755)
-%doc doc/*.gz
-
-%attr(750,root,root) %dir %{_sysconfdir}/default
-%attr(640,root,root) %config %verify(not size mtime md5) %{_sysconfdir}/default/*
-%attr(640,root,root) %config %verify(not size mtime md5) /etc/pam.d/*
-
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/login.defs
-%attr(400,root,root) %ghost %{_sysconfdir}/shadow
-
-%dir /etc/skel
-
-%{!?_without_static:#}%attr(755,root,root) /lib/lib*.so.*.*.*
-%attr(755,root,root) %{_sbindir}/user*
-%attr(755,root,root) %{_sbindir}/group*
-%attr(755,root,root) %{_sbindir}/grpck
-%attr(755,root,root) %{_sbindir}/pwck
-%attr(755,root,root) %{_sbindir}/*conv
-%attr(755,root,root) %{_sbindir}/chpasswd
-%attr(755,root,root) %{_sbindir}/newusers
-%attr(755,root,root) %{_sbindir}/mkpasswd
-%attr(755,root,root) %{_bindir}/chage
-%attr(4755,root,root) %{_bindir}/chfn
-%attr(4755,root,root) %{_bindir}/chsh
-%attr(4755,root,root) %{_bindir}/expiry
-%attr(4755,root,root) %{_bindir}/passwd
-%attr(4755,root,root) %{_bindir}/gpasswd
-%attr(755,root,root) %{_bindir}/lastlog
-%attr(755,root,root) %{_bindir}/faillog
-%attr(755,root,root) %{_bindir}/sg
-
-%{_mandir}/man1/gpasswd.*
-%{_mandir}/man1/chage.*
-%{_mandir}/man1/chfn.*
-%{_mandir}/man1/chsh.*
-%{_mandir}/man1/passwd.*
-%{_mandir}/man5/login.defs.*
-%{_mandir}/man5/passwd.*
-%{_mandir}/man5/shadow.*
-%{_mandir}/man5/porttime.*
-%{_mandir}/man5/faillog.*
-%{_mandir}/man8/faillog.*
-%{_mandir}/man8/groupdel.*
-%{_mandir}/man8/groupmod.*
-%{_mandir}/man8/grpck.*
-%{_mandir}/man8/grpconv.*
-%{_mandir}/man8/logoutd.*
-%{_mandir}/man8/mkpasswd.*
-%{_mandir}/man8/newusers.*
-%{_mandir}/man8/pwck.*
-%{_mandir}/man8/pwunconv.*
-%{_mandir}/man8/useradd.*
-%{_mandir}/man8/userdel.*
-%{_mandir}/man8/usermod.*
-%{_mandir}/man8/lastlog.*
-%{_mandir}/man8/pwconv.*
-%{_mandir}/man8/chpasswd.*
-%{_mandir}/man8/groupadd.*
-%{_mandir}/man8/grpunconv.*
-%{_mandir}/man8/shadowconfig.*
-
-%lang(pl) %{_mandir}/pl/man1/chage.*
-%lang(pl) %{_mandir}/pl/man1/gpasswd.*
-%lang(pl) %{_mandir}/pl/man1/chfn.*
-%lang(pl) %{_mandir}/pl/man1/chsh.*
-%lang(pl) %{_mandir}/pl/man1/passwd.*
-%lang(pl) %{_mandir}/pl/man5/faillog.*
-%lang(pl) %{_mandir}/pl/man5/login.defs.*
-%lang(pl) %{_mandir}/pl/man5/passwd.*
-%lang(pl) %{_mandir}/pl/man5/porttime.*
-%lang(pl) %{_mandir}/pl/man5/shadow.*
-%lang(pl) %{_mandir}/pl/man8/chpasswd.*
-%lang(pl) %{_mandir}/pl/man8/faillog.*
-%lang(pl) %{_mandir}/pl/man8/groupadd.*
-%lang(pl) %{_mandir}/pl/man8/groupdel.*
-%lang(pl) %{_mandir}/pl/man8/groupmod.*
-%lang(pl) %{_mandir}/pl/man8/grpck.*
-%lang(pl) %{_mandir}/pl/man8/lastlog.*
-%lang(pl) %{_mandir}/pl/man8/logoutd.*
-%lang(pl) %{_mandir}/pl/man8/mkpasswd.*
-%lang(pl) %{_mandir}/pl/man8/newusers.*
-%lang(pl) %{_mandir}/pl/man8/pwck.*
-%lang(pl) %{_mandir}/pl/man8/pwconv.*
-%lang(pl) %{_mandir}/pl/man8/shadowconfig.*
-%lang(pl) %{_mandir}/pl/man8/useradd.*
-%lang(pl) %{_mandir}/pl/man8/userdel.*
-%lang(pl) %{_mandir}/pl/man8/usermod.*
diff --git a/shadow.useradd b/shadow.useradd
deleted file mode 100644 (file)
index 0a28b4e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# useradd defaults file
-GROUP=1000
-HOME=/home/users
-INACTIVE=-1
-EXPIRE=
-SHELL=/bin/bash
-SKEL=/etc/skel
diff --git a/userdb.pamd b/userdb.pamd
deleted file mode 100644 (file)
index 6bf2e9c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#%PAM-1.0
-auth           sufficient      /lib/security/pam_rootok.so
-account                required        /lib/security/pam_permit.so
-password       required        /lib/security/pam_make.so /var/db
This page took 0.049371 seconds and 4 git commands to generate.