Просмотр исходного кода

More Solaris fixes
Author: jgg
Date: 1999-12-10 06:30:42 GMT
More Solaris fixes

Arch Librarian лет назад: 22
Родитель
Сommit
101030ab14

+ 4 - 4
apt-pkg/contrib/cdromutl.cc

@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description								/*{{{*/
-// $Id: cdromutl.cc,v 1.9 1999/08/30 07:48:04 jgg Exp $
+// $Id: cdromutl.cc,v 1.10 1999/12/10 06:30:42 jgg Exp $
 /* ######################################################################
    
    CDROM Utilities - Some functions to manipulate CDROM mounts.
@@ -21,7 +21,7 @@
 
 #include <sys/wait.h>
 #include <sys/errno.h>
-#include <sys/vfs.h>
+#include <sys/statvfs.h>
 #include <dirent.h>
 #include <fcntl.h>
 #include <sys/stat.h>
@@ -183,8 +183,8 @@ bool IdentCdrom(string CD,string &Res,unsigned int Version)
    // Some stats from the fsys
    if (_config->FindB("Debug::identcdrom",false) == false)
    {
-      struct statfs Buf;
-      if (statfs(CD.c_str(),&Buf) != 0)
+      struct statvfs Buf;
+      if (statvfs(CD.c_str(),&Buf) != 0)
 	 return _error->Errno("statfs","Failed to stat the cdrom");
       
       // We use a kilobyte block size to advoid overflow

+ 2 - 2
apt-pkg/deb/dpkgpm.cc

@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description								/*{{{*/
-// $Id: dpkgpm.cc,v 1.14 1999/09/10 02:40:31 jgg Exp $
+// $Id: dpkgpm.cc,v 1.15 1999/12/10 06:30:42 jgg Exp $
 /* ######################################################################
 
    DPKG Package Manager - Provide an interface to dpkg
@@ -356,7 +356,7 @@ bool pkgDPkgPM::Go()
 
 	 /* No Job Control Stop Env is a magic dpkg var that prevents it
 	    from using sigstop */
-	 setenv("DPKG_NO_TSTP","yes",1);
+	 putenv("DPKG_NO_TSTP=yes");
 	 execvp(Args[0],(char **)Args);
 	 cerr << "Could not exec dpkg!" << endl;
 	 _exit(100);

+ 14 - 2
buildlib/defaults.mak

@@ -40,13 +40,25 @@ BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname -m) $(BASE)/build
 endif
 
 BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*))
-BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX))))
 
 ifeq ($(words $(BUILDX)),0)
-error-all:
+
+# Check for a busted wildcard function. We use this function in several 
+# places, it must work.
+ifeq ($(words $(wildcard *)),0)
+error-all/environment.mak:
+	echo You have a broken version of GNU Make - upgrade.
+else
+error-all/environment.mak:
 	echo Can't find the build directory in $(BUILD_POSSIBLE) -- use BUILD=
 endif
 
+# Force include below to come to the error target
+BUILDX := error-all
+else
+BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX))))
+endif
+
 override BUILD := $(BUILDX)
 
 # Base definitions

+ 2 - 0
buildlib/environment.mak.in

@@ -32,4 +32,6 @@ SLANGLIB = @SLANGLIB@
 XPMLIB = @XPMLIB@
 PTHREADLIB = @PTHREADLIB@
 
+# Shim Headerfile control
 HAVE_C9X = @HAVE_C9X@
+HAVE_STATVFS = @HAVE_STATVFS@

+ 8 - 1
buildlib/makefile.in

@@ -31,13 +31,20 @@ maintainer-clean dist-clean pristine sanity distclean:
 .PHONY: dirs
 MISSING_DIRS:=	$(filter-out $(wildcard $(SUBDIRS)),$(SUBDIRS))
 dirs:
+	@rm -f include/sys
 ifneq ($(words $(MISSING_DIRS)),0)
 	@mkdir  $(MISSING_DIRS)
 else
 	@echo > /dev/null
 endif	
 ifeq ($(HAVE_C9X),yes)
-	-@rm include/inttypes.h > /dev/null 2>&1
+	@rm -f include/inttypes.h > /dev/null 2>&1
 else
 	@cp $(SRCDIR)/buildlib/inttypes.h.in include/inttypes.h
 endif
+ifeq ($(HAVE_STATVFS),yes)
+	@rm -f include/statvfs.h > /dev/null 2>&1
+else
+	@cp $(SRCDIR)/buildlib/statvfs.h.in include/statvfs.h
+	ln -sf . include/sys
+endif

+ 4 - 0
buildlib/statvfs.h.in

@@ -0,0 +1,4 @@
+/* Compatibility for systems with out Single Unix Spec statvfs */
+#include <sys/vfs.h>
+
+#define statvfs statfs

+ 4 - 4
cmdline/apt-get.cc

@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description								/*{{{*/
-// $Id: apt-get.cc,v 1.92 1999/12/09 05:22:33 jgg Exp $
+// $Id: apt-get.cc,v 1.93 1999/12/10 06:30:42 jgg Exp $
 /* ######################################################################
    
    apt-get - Cover for dpkg
@@ -47,7 +47,7 @@
 #include <termios.h>
 #include <sys/ioctl.h>
 #include <sys/stat.h>
-#include <sys/vfs.h>
+#include <sys/statvfs.h>
 #include <signal.h>
 #include <unistd.h>
 #include <stdio.h>
@@ -629,9 +629,9 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
       return false;
 
    // Check for enough free space
-   struct statfs Buf;
+   struct statvfs Buf;
    string OutputDir = _config->FindDir("Dir::Cache::Archives");
-   if (statfs(OutputDir.c_str(),&Buf) != 0)
+   if (statvfs(OutputDir.c_str(),&Buf) != 0)
       return _error->Errno("statfs","Couldn't determine free space in %s",
 			   OutputDir.c_str());
    if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize)

+ 4 - 0
configure.in

@@ -94,6 +94,10 @@ AC_CACHE_CHECK([for C9x integer types],c9x_ints,[
                    [uint8_t Foo1;uint16_t Foo2;uint32_t Foo3;uint64_t Foo],
 		   c9x_ints=yes,c9x_ints=no)])
 
+dnl Single Unix Spec statvfs
+AC_CHECK_FUNC(statvfs)
+AC_SUBST(HAVE_STATVFS)
+
 dnl Check the sizes etc. of the architecture
 changequote(,)
 if archline="`grep \"^$archset\" $srcdir/buildlib/sizetable | cut -f 2- -d ' '`";then