More Solaris fixes
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:55:27 +0000 (16:55 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:55:27 +0000 (16:55 +0000)
Author: jgg
Date: 1999-12-10 06:30:42 GMT
More Solaris fixes

apt-pkg/contrib/cdromutl.cc
apt-pkg/deb/dpkgpm.cc
buildlib/defaults.mak
buildlib/environment.mak.in
buildlib/makefile.in
buildlib/statvfs.h.in [new file with mode: 0644]
cmdline/apt-get.cc
configure.in

index f6e4bc2..f703621 100644 (file)
@@ -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
index 874a9ba..685bd42 100644 (file)
@@ -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);
index 3e145f6..17a6b8a 100644 (file)
@@ -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
index 83c5239..b0b8f18 100644 (file)
@@ -32,4 +32,6 @@ SLANGLIB = @SLANGLIB@
 XPMLIB = @XPMLIB@
 PTHREADLIB = @PTHREADLIB@
 
+# Shim Headerfile control
 HAVE_C9X = @HAVE_C9X@
+HAVE_STATVFS = @HAVE_STATVFS@
index dbcc91c..677aee4 100644 (file)
@@ -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
diff --git a/buildlib/statvfs.h.in b/buildlib/statvfs.h.in
new file mode 100644 (file)
index 0000000..86b8c52
--- /dev/null
@@ -0,0 +1,4 @@
+/* Compatibility for systems with out Single Unix Spec statvfs */
+#include <sys/vfs.h>
+
+#define statvfs statfs
index 88b4ffc..cb47666 100644 (file)
@@ -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)
index 7387a48..6c8a1dc 100644 (file)
@@ -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