Many files:
  Checked in e2fsprogs 1.04.

diff --git a/lib/ChangeLog b/lib/ChangeLog
index 094d35f..682e10c 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,12 @@
+Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* Release of E2fsprogs version 1.04
+
+Wed May 15 22:59:06 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* Makefile.profile (install): Add an install production so that
+		the profiling libraries are installed.
+
 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
 
 	* Release of E2fsprogs version 1.03
diff --git a/lib/Makefile.elf-lib b/lib/Makefile.elf-lib
index 93f1ace..83b59fc 100644
--- a/lib/Makefile.elf-lib
+++ b/lib/Makefile.elf-lib
@@ -45,4 +45,4 @@
 clean::
 	$(RM) -rf elfshared
 	$(RM) -f $(ELF_LIB)
-	$(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so
+	$(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
diff --git a/lib/Makefile.profile b/lib/Makefile.profile
index 8cb197a..0864fac 100644
--- a/lib/Makefile.profile
+++ b/lib/Makefile.profile
@@ -7,6 +7,7 @@
 
 clean::
 	$(RM) -rf profiled
+	$(RM) -f $(LIBRARY)_p.a ../$(LIBRARY)_p.a
 
 $(LIBRARY)_p.a: $(OBJS)
 	(if test -r $@; then $(RM) -f $@.bak && $(MV) $@ $@.bak; fi)
@@ -14,3 +15,9 @@
 	-$(RANLIB) $@
 	$(RM) -f ../$@
 	$(LN) $@ ../$@
+
+install:: $(LIBRARY)_p.a installdirs
+	$(INSTALL_DATA) $(LIBRARY)_p.a $(DESTDIR)$(ulibdir)/$(LIBRARY)_p.a
+	$(CHMOD) 644 $(DESTDIR)$(ulibdir)/$(LIBRARY)_p.a
+	-$(RANLIB) $(DESTDIR)$(ulibdir)/$(LIBRARY)_p.a
+	$(CHMOD) $(LIBMODE) $(DESTDIR)$(ulibdir)/$(LIBRARY)_p.a
diff --git a/lib/do_substitute b/lib/do_substitute
new file mode 100644
index 0000000..262609d
--- /dev/null
+++ b/lib/do_substitute
@@ -0,0 +1,28 @@
+#
+# This is the actual gots of substitute_sh.  It is in a separate file to 
+# protect it from autoconf substitutions
+#
+
+$SED 	-e "s%@AWK@%$AWK%g" \
+	-e "s%@SED@%$SED%g" \
+	-e "s%@ET_DIR@%$ET_DIR%g" \
+	-e "s%@SS_DIR@%$SS_DIR%g" \
+	-e "s%@E2FSPROGS_MONTH@%$E2FSPROGS_MONTH%g" \
+	-e "s%@E2FSPROGS_YEAR@%$E2FSPROGS_YEAR%g" \
+	-e "s%@E2FSPROGS_VERSION@%$E2FSPROGS_VERSION%g" \
+	-e "s%@SIZEOF_LONG@%$SIZEOF_LONG%g" \
+	-e "s%@SIZEOF_INT@%$SIZEOF_INT%g" \
+	-e "s%@SIZEOF_SHORT@%$SIZEOF_SHORT%g" \
+	$1 > $2.tmp
+
+if [ -f $2 ]; then
+	if cmp $2 $2.tmp > /dev/null 2>&1 ; then
+		$RM $2.tmp
+	else
+		echo "substitute_sh: Replacing $2"
+		$MV $2.tmp $2
+	fi
+else
+	echo "substitute_sh: Creating $2"
+	$MV $2.tmp $2
+fi
diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog
index 00a1cf2..2422e73 100644
--- a/lib/e2p/ChangeLog
+++ b/lib/e2p/ChangeLog
@@ -1,3 +1,7 @@
+Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* Release of E2fsprogs version 1.04
+
 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
 
 	* Release of E2fsprogs version 1.03
diff --git a/lib/e2p/Makefile.in b/lib/e2p/Makefile.in
index 568c2ec..97f3fbc 100644
--- a/lib/e2p/Makefile.in
+++ b/lib/e2p/Makefile.in
@@ -89,42 +89,16 @@
 # Makefile dependencies follow.  This must be the last section in
 # the Makefile.in file
 #
-fgetflags.o : $(srcdir)/fgetflags.c \
-  $(srcdir)/e2p.h \
-  
-fsetflags.o : $(srcdir)/fsetflags.c \
-  $(srcdir)/e2p.h \
-  
-fgetversion.o : $(srcdir)/fgetversion.c \
-  $(srcdir)/e2p.h \
-  
-fsetversion.o : $(srcdir)/fsetversion.c \
-  $(srcdir)/e2p.h \
-  
-getflags.o : $(srcdir)/getflags.c \
-  $(srcdir)/e2p.h \
-  
-getversion.o : $(srcdir)/getversion.c \
-  $(srcdir)/e2p.h \
-  
-iod.o : $(srcdir)/iod.c $(srcdir)/e2p.h \
-  
-ls.o : $(srcdir)/ls.c \
-  $(srcdir)/e2p.h \
-  
-pe.o : $(srcdir)/pe.c \
-  $(srcdir)/e2p.h \
-  
-pf.o : $(srcdir)/pf.c \
-  $(srcdir)/e2p.h \
-  
-ps.o : $(srcdir)/ps.c \
-  $(srcdir)/e2p.h \
-  
-setflags.o : $(srcdir)/setflags.c \
-  $(srcdir)/e2p.h \
-  
-setversion.o : $(srcdir)/setversion.c \
-  $(srcdir)/e2p.h \
-  
-
+fgetflags.o: $(srcdir)/fgetflags.c $(srcdir)/e2p.h
+fsetflags.o: $(srcdir)/fsetflags.c $(srcdir)/e2p.h
+fgetversion.o: $(srcdir)/fgetversion.c $(srcdir)/e2p.h
+fsetversion.o: $(srcdir)/fsetversion.c $(srcdir)/e2p.h
+getflags.o: $(srcdir)/getflags.c $(srcdir)/e2p.h
+getversion.o: $(srcdir)/getversion.c $(srcdir)/e2p.h
+iod.o: $(srcdir)/iod.c $(srcdir)/e2p.h
+ls.o: $(srcdir)/ls.c  $(srcdir)/e2p.h
+pe.o: $(srcdir)/pe.c $(srcdir)/e2p.h
+pf.o: $(srcdir)/pf.c $(srcdir)/e2p.h
+ps.o: $(srcdir)/ps.c $(srcdir)/e2p.h
+setflags.o: $(srcdir)/setflags.c $(srcdir)/e2p.h
+setversion.o: $(srcdir)/setversion.c $(srcdir)/e2p.h
diff --git a/lib/et/ChangeLog b/lib/et/ChangeLog
index e5fa6cd..22bb8b4 100644
--- a/lib/et/ChangeLog
+++ b/lib/et/ChangeLog
@@ -1,3 +1,7 @@
+Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* Release of E2fsprogs version 1.04
+
 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
 
 	* Release of E2fsprogs version 1.03
diff --git a/lib/et/Makefile.in b/lib/et/Makefile.in
index e3e52ba..49c4fca 100644
--- a/lib/et/Makefile.in
+++ b/lib/et/Makefile.in
@@ -60,8 +60,10 @@
 @MAKEFILE_PROFILE@
 @MAKEFILE_CHECKER@
 
-compile_et: compile_et.sh
-	$(CP) $< $@ && $(CHMOD) +x compile_et
+compile_et: $(SUBSTITUTE) $(srcdir)/compile_et.sh.in
+	-$(CHMOD) +x $(SUBSTITUTE) 
+	$(SUBSTITUTE) $(srcdir)/compile_et.sh.in compile_et
+	$(CHMOD) +x compile_et
 
 com_err.ps : com_err.dvi
 com_err.dvi: com_err.texinfo
@@ -97,26 +99,18 @@
 	$(RM) -f ../libcom_err.a ../libcom_err_p.a
 mostlyclean:: clean
 distclean:: clean
-	$(RM) -f .depend compile_et.sh Makefile
+	$(RM) -f .depend Makefile
 
 # +++ Dependency line eater +++
 # 
 # Makefile dependencies follow.  This must be the last section in
 # the Makefile.in file
 #
-error_message.o : $(srcdir)/error_message.c \
-  $(srcdir)/com_err.h \
-  $(srcdir)/error_table.h $(srcdir)/mit-sipb-copyright.h $(srcdir)/internal.h 
-et_name.o : $(srcdir)/et_name.c $(srcdir)/error_table.h $(srcdir)/mit-sipb-copyright.h \
-  $(srcdir)/internal.h \
-  
-init_et.o : $(srcdir)/init_et.c \
-  $(srcdir)/com_err.h \
-  $(srcdir)/error_table.h \
-  $(srcdir)/mit-sipb-copyright.h 
-com_err.o : $(srcdir)/com_err.c \
-  $(srcdir)/com_err.h \
-  $(srcdir)/mit-sipb-copyright.h \
-  $(srcdir)/error_table.h $(srcdir)/internal.h \
-  
-
+error_message.o: $(srcdir)/error_message.c $(srcdir)/com_err.h \
+ $(srcdir)/error_table.h $(srcdir)/mit-sipb-copyright.h $(srcdir)/internal.h
+et_name.o: $(srcdir)/et_name.c $(srcdir)/error_table.h \
+ $(srcdir)/mit-sipb-copyright.h $(srcdir)/internal.h 
+init_et.o: $(srcdir)/init_et.c $(srcdir)/com_err.h \
+ $(srcdir)/error_table.h $(srcdir)/mit-sipb-copyright.h
+com_err.o: $(srcdir)/com_err.c $(srcdir)/com_err.h \
+ $(srcdir)/mit-sipb-copyright.h $(srcdir)/error_table.h $(srcdir)/internal.h 
diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog
index eba0b9f..90de2b5 100644
--- a/lib/ext2fs/ChangeLog
+++ b/lib/ext2fs/ChangeLog
@@ -1,3 +1,7 @@
+Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* Release of E2fsprogs version 1.04
+
 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
 
 	* Release of E2fsprogs version 1.03
diff --git a/lib/ext2fs/Makefile.in b/lib/ext2fs/Makefile.in
index c3311f8..2666977 100644
--- a/lib/ext2fs/Makefile.in
+++ b/lib/ext2fs/Makefile.in
@@ -114,6 +114,10 @@
 
 DISTFILES= Makefile *.c *.h image
 
+ext2_err.et: $(SUBSTITUTE) $(srcdir)/ext2_err.et.in
+	-$(CHMOD) +x $(SUBSTITUTE) 
+	$(SUBSTITUTE) $(srcdir)/ext2_err.et.in ext2_err.et
+
 ext2_err.c ext2_err.h: ext2_err.et
 	$(COMPILE_ET) ext2_err.et
 
@@ -137,7 +141,7 @@
 
 clean::
 	$(RM) -f \#* *.s *.o *.a *~ *.bak core profiled/* checker/* \
-		ext2_err.c ext2_err.h \
+		ext2_err.et ext2_err.c ext2_err.h \
 		../libext2fs.a ../libext2fs_p.a ../libext2fs_chk.a
 
 mostlyclean:: clean
@@ -150,141 +154,88 @@
 # the Makefile.in file
 #
 ext2_err.o: ext2_err.c
-alloc.o: $(srcdir)/alloc.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-badblocks.o: $(srcdir)/badblocks.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-bb_inode.o: $(srcdir)/bb_inode.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-bitmaps.o: $(srcdir)/bitmaps.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-bitops.o: $(srcdir)/bitops.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-block.o: $(srcdir)/block.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-check_desc.o: $(srcdir)/check_desc.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-closefs.o: $(srcdir)/closefs.c \
-  $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-cmp_bitmaps.o: $(srcdir)/cmp_bitmaps.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-dirblock.o: $(srcdir)/dirblock.c \
-  $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-expanddir.o: $(srcdir)/expanddir.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-freefs.o: $(srcdir)/freefs.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-get_pathname.o: $(srcdir)/get_pathname.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-getsize.o: $(srcdir)/getsize.c \
-  $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-initialize.o: $(srcdir)/initialize.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-inline.o: $(srcdir)/inline.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-inode.o: $(srcdir)/inode.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-ismounted.o: $(srcdir)/ismounted.c \
-  $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-link.o: $(srcdir)/link.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-llseek.o: $(srcdir)/llseek.c \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h \
-  
-mkdir.o: $(srcdir)/mkdir.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-namei.o: $(srcdir)/namei.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-newdir.o: $(srcdir)/newdir.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-openfs.o: $(srcdir)/openfs.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-read_bb.o: $(srcdir)/read_bb.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-read_bb_file.o: $(srcdir)/read_bb_file.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-rw_bitmaps.o: $(srcdir)/rw_bitmaps.c \
-  $(srcdir)/ext2fs.h \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-swapfs.o: $(srcdir)/swapfs.c \
-  $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
-  $(srcdir)/io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
-  $(srcdir)/bitops.h
-unix_io.o: $(srcdir)/unix_io.c \
-  $(top_srcdir)/lib/et/com_err.h \
-  $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/io.h
+alloc.o: $(srcdir)/alloc.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+badblocks.o: $(srcdir)/badblocks.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bb_inode.o: $(srcdir)/bb_inode.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bitmaps.o: $(srcdir)/bitmaps.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bitops.o: $(srcdir)/bitops.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+block.o: $(srcdir)/block.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+check_desc.o: $(srcdir)/check_desc.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+closefs.o: $(srcdir)/closefs.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+cmp_bitmaps.o: $(srcdir)/cmp_bitmaps.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+dirblock.o: $(srcdir)/dirblock.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+expanddir.o: $(srcdir)/expanddir.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+freefs.o: $(srcdir)/freefs.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+get_pathname.o: $(srcdir)/get_pathname.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+getsize.o: $(srcdir)/getsize.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+initialize.o: $(srcdir)/initialize.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+inline.o: $(srcdir)/inline.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+inode.o: $(srcdir)/inode.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ismounted.o: $(srcdir)/ismounted.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+link.o: $(srcdir)/link.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+llseek.o: $(srcdir)/llseek.c $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h
+mkdir.o: $(srcdir)/mkdir.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+namei.o: $(srcdir)/namei.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+newdir.o: $(srcdir)/newdir.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+openfs.o: $(srcdir)/openfs.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+read_bb.o: $(srcdir)/read_bb.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+read_bb_file.o: $(srcdir)/read_bb_file.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+rw_bitmaps.o: $(srcdir)/rw_bitmaps.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+swapfs.o: $(srcdir)/swapfs.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+unix_io.o: $(srcdir)/unix_io.c $(top_srcdir)/lib/et/com_err.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/io.h
 
diff --git a/lib/ss/ChangeLog b/lib/ss/ChangeLog
index c1ea2c2..7943820 100644
--- a/lib/ss/ChangeLog
+++ b/lib/ss/ChangeLog
@@ -1,3 +1,12 @@
+Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* Release of E2fsprogs version 1.04
+
+Thu May 16 10:04:09 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* Makefile.in (INSTALL_HFILES): Install the correct header files
+		so that /usr/include/ss/ss.h is actually usable!
+
 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
 
 	* Release of E2fsprogs version 1.03
diff --git a/lib/ss/Makefile.in b/lib/ss/Makefile.in
index 4a49726..9af2c2f 100644
--- a/lib/ss/Makefile.in
+++ b/lib/ss/Makefile.in
@@ -89,7 +89,9 @@
 MKCMDSCSRCS=	mk_cmds.c utils.c options.c ct.tab.c cmd_tbl.lex.c
 
 
-HFILES=	ss.h ss_internal.h copyright.h
+HFILES=	ss.h ss_internal.h copyright.h 
+
+INSTALL_HFILES=	ss.h ss_err.h copyright.h 
 
 # for 'tags' and dependencies
 
@@ -99,7 +101,7 @@
 
 FILES=	$(SRCS) $(MKCMDSFILES) $(HFILES) \
 	ss_err.et std_rqs.ct Makefile \
-	test_ss.c ss mit-sipb-copyright.h copyright.h
+	test_ss.c ss copyright.h
 
 all::	libss.a # libss_p.a lint
 
@@ -119,20 +121,22 @@
 #	$(LD) -r -s -o $@ $(OBJS)
 #	$(CHMOD) -x $@
 
-mk_cmds: mk_cmds.sh
-	$(CP) mk_cmds.sh $@ && $(CHMOD) +x mk_cmds
+mk_cmds: $(SUBSTITUTE) $(srcdir)/mk_cmds.sh.in
+	-$(CHMOD) +x $(SUBSTITUTE) 
+	$(SUBSTITUTE) $(srcdir)/mk_cmds.sh.in mk_cmds
+	$(CHMOD) +x mk_cmds
 
 installdirs::
 	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(ulibdir) \
 		$(DESTDIR)$(includedir)/ss
 
-install:: libss.a $(HFILES) copyright.h installdirs
+install:: libss.a $(INSTALL_HFILES) copyright.h installdirs
 	$(INSTALL_DATA) libss.a $(DESTDIR)$(ulibdir)/libss.a
 	$(CHMOD) 644 $(DESTDIR)$(ulibdir)/libss.a
 	-$(RANLIB) $(DESTDIR)$(ulibdir)/libss.a
 	$(CHMOD) $(LIBMODE) $(DESTDIR)$(ulibdir)/libss.a
 	$(RM) -f $(includedir)/ss/*
-	for i in $(HFILES) copyright.h; do \
+	for i in $(INSTALL_HFILES) copyright.h; do \
 		$(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir)/ss/$$i; \
 	done
 
@@ -141,68 +145,40 @@
 	$(RM) -rf $(includedir)/ss
 
 clean::
-	$(RM) -f ../libss.a libss.a mk_cmds 
-	$(RM) -f *.o *~ \#* *.bak core 
+	$(RM) -f ../libss.a libss.a mk_cmds ss_err.h ss_err.c std_rqs.c \
+		*.o *~ \#* *.bak core 
 
 mostlyclean:: clean
 distclean:: clean
-	$(RM) -f .depend ss_err.h ss_err.c mk_cmds.sh Makefile
+	$(RM) -f .depend Makefile
 
 # +++ Dependency line eater +++
 # 
 # Makefile dependencies follow.  This must be the last section in
 # the Makefile.in file
 #
-invocation.o: $(srcdir)/invocation.c $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(srcdir)/mit-sipb-copyright.h $(top_builddir)/lib/ss/ss_err.h \
-  $(srcdir)/copyright.h
-help.o: $(srcdir)/help.c \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h $(srcdir)/mit-sipb-copyright.h \
-  $(top_builddir)/lib/ss/ss_err.h $(srcdir)/copyright.h 
+invocation.o: $(srcdir)/invocation.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
+ $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
+help.o: $(srcdir)/help.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
+ $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
 execute_cmd.o: $(srcdir)/execute_cmd.c $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(srcdir)/mit-sipb-copyright.h $(top_builddir)/lib/ss/ss_err.h \
-  $(srcdir)/copyright.h
-listen.o: $(srcdir)/listen.c $(srcdir)/copyright.h \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h $(srcdir)/mit-sipb-copyright.h \
-  $(top_builddir)/lib/ss/ss_err.h
-parse.o: $(srcdir)/parse.c \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(srcdir)/mit-sipb-copyright.h $(top_builddir)/lib/ss/ss_err.h \
-  $(srcdir)/copyright.h
-error.o: $(srcdir)/error.c \
-  $(srcdir)/copyright.h \
-  $(srcdir)/../et/com_err.h \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(srcdir)/mit-sipb-copyright.h $(top_builddir)/lib/ss/ss_err.h
-prompt.o: $(srcdir)/prompt.c $(srcdir)/copyright.h \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(srcdir)/mit-sipb-copyright.h $(top_builddir)/lib/ss/ss_err.h
-request_tbl.o: $(srcdir)/request_tbl.c \
-  $(srcdir)/copyright.h $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h $(srcdir)/mit-sipb-copyright.h \
-  $(top_builddir)/lib/ss/ss_err.h
+ $(srcdir)/ss.h $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
+listen.o: $(srcdir)/listen.c $(srcdir)/copyright.h $(srcdir)/ss_internal.h \
+ $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
+parse.o: $(srcdir)/parse.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
+ $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
+error.o: $(srcdir)/error.c $(srcdir)/copyright.h $(srcdir)/../et/com_err.h \
+ $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
+prompt.o: $(srcdir)/prompt.c $(srcdir)/copyright.h $(srcdir)/ss_internal.h \
+ $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
+request_tbl.o: $(srcdir)/request_tbl.c $(srcdir)/copyright.h \
+ $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
 list_rqs.o: $(srcdir)/list_rqs.c $(srcdir)/copyright.h \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h $(srcdir)/mit-sipb-copyright.h \
-  $(top_builddir)/lib/ss/ss_err.h
-pager.o: $(srcdir)/pager.c \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(srcdir)/mit-sipb-copyright.h $(top_builddir)/lib/ss/ss_err.h \
-  $(srcdir)/copyright.h
-requests.o: $(srcdir)/requests.c $(srcdir)/mit-sipb-copyright.h \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(top_builddir)/lib/ss/ss_err.h
-data.o: $(srcdir)/data.c \
-  $(srcdir)/ss_internal.h \
-  $(srcdir)/ss.h \
-  $(srcdir)/mit-sipb-copyright.h $(top_builddir)/lib/ss/ss_err.h \
-  $(srcdir)/copyright.h
+ $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
+pager.o: $(srcdir)/pager.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
+ $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
+requests.o: $(srcdir)/requests.c $(srcdir)/copyright.h \
+ $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
+data.o: $(srcdir)/data.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
+ $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
+
diff --git a/lib/ss/requests.c b/lib/ss/requests.c
index 5205337..9da9607 100644
--- a/lib/ss/requests.c
+++ b/lib/ss/requests.c
@@ -3,10 +3,10 @@
  *
  * Copyright 1987, 1988, 1989 by MIT
  *
- * For copyright information, see mit-sipb-copyright.h.
+ * For copyright information, see copyright.h.
  */
 
-#include "mit-sipb-copyright.h"
+#include "copyright.h"
 #include <stdio.h>
 #include "ss_internal.h"
 
diff --git a/lib/ss/ss.h b/lib/ss/ss.h
index 29aa9dc..f992bd9 100644
--- a/lib/ss/ss.h
+++ b/lib/ss/ss.h
@@ -1,13 +1,13 @@
 /*
  * Copyright 1987, 1988 by MIT Student Information Processing Board
  *
- * For copyright information, see mit-sipb-copyright.h.
+ * For copyright information, see copyright.h.
  */
 
 #ifndef _ss_h
 #define _ss_h __FILE__
 
-#include <ss/mit-sipb-copyright.h>
+#include <ss/copyright.h>
 #include <ss/ss_err.h>
 
 extern int errno;
diff --git a/lib/ss/test_ss.c b/lib/ss/test_ss.c
index 7ee5c65..aa4c7f3 100644
--- a/lib/ss/test_ss.c
+++ b/lib/ss/test_ss.c
@@ -9,8 +9,8 @@
  * $Locker$
  *
  * $Log$
- * Revision 1.5  1997/04/26 14:35:55  tytso
- * Checkin of e2fsprogs 1.02.
+ * Revision 1.7  1997/04/29 14:34:41  tytso
+ * Checked in e2fsprogs 1.04.
  *
  * Revision 1.1  1993/06/03  12:31:25  tytso
  * Initial revision
diff --git a/lib/substitute_sh.in b/lib/substitute_sh.in
new file mode 100644
index 0000000..f3b1680
--- /dev/null
+++ b/lib/substitute_sh.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# substitute <source> <dest>
+
+AWK=@AWK@
+SED=@SED@
+ET_DIR=@ET_DIR@
+SS_DIR=@SS_DIR@
+E2FSPROGS_MONTH=@E2FSPROGS_MONTH@
+E2FSPROGS_YEAR=@E2FSPROGS_YEAR@
+E2FSPROGS_VERSION=@E2FSPROGS_VERSION@
+SIZEOF_LONG=@SIZEOF_LONG@
+SIZEOF_INT=@SIZEOF_INT@
+SIZEOF_SHORT=@SIZEOF_SHORT@
+
+MV=@MV@
+RM=@RM@
+CP=@CP@
+
+@DO_SUBSTITUTE_SCRIPT@