]> err.no Git - dpkg/commitdiff
Support OpenBSD.
authorAdam Heath <doogie@debian.org>
Sat, 13 Sep 2003 23:43:49 +0000 (23:43 +0000)
committerAdam Heath <doogie@debian.org>
Sat, 13 Sep 2003 23:43:49 +0000 (23:43 +0000)
ChangeLog
Makefile.conf.in
archtable
configure.in
debian/changelog
dselect/Makefile.in
lib/varbuf.c
scripts/dpkg-architecture.pl
scripts/dpkg-shlibdeps.pl
utils/start-stop-daemon.c

index 01c2bbd0ab3adfcf30e0fd9403d444386c7c0aa8..23a58c800ea0330c44a2cbe1228efaf76fb970ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Sep 13 18:42:27 CDT 2003 Adam Heath <doogie@debian.org>
+
+  * Makefile.conf.in, archtable, configure.in, dselect/Makefile.in,
+    lib/varbuf.c, scripts/dpkg-{architecture,shlibdeps}.pl,
+    utils/start-stop-daemon.c: Support OpenBSD.
+
 Sat Sep 13 18:39:41 CDT 2003 Adam Heath <doogie@debian.org>
 
   * archtable: Added alphaev68-linux-gnu to archtable.
index 54e14959ce685912b58a77a24fb6eb882706b23a..b8627b7aab9f72b1741c8bbd2a95e6646b4073a3 100644 (file)
@@ -73,6 +73,8 @@ NLS_LIBS              = @INTLLIBS@
 
 SSD_LIBS               = @SSD_LIBS@
 
+CURSES_LIBS            = @CURSES_LIBS@
+
 ZLIB_CFLAGS            = @ZLIB_CFLAGS@
 ZLIB_LIBS              = @ZLIB_LIBS@
 ZLIB_LIBS_ALSO_STATIC  = @ZLIB_LIBS_ALSO_STATIC@
index 1de57ac433f2746ff959e5e5c820f67393d7a57f..7c1e7e7857155c11fd6f54f70792c2992350e194 100644 (file)
--- a/archtable
+++ b/archtable
@@ -53,7 +53,8 @@ i386-netbsdelf-gnu    netbsd-i386     netbsd-i386
 s390-linux-gnu         s390            s390
 s390-ibm-linux-gnu     s390            s390
 s390-unknown-linux-gnu s390            s390
-i386-openbsd2.8                openbsd-i386    i386
+i386-openbsd           openbsd-i386    openbsd-i386
+i386-unknown-openbsd   openbsd-i386    openbsd-i386
 powerpc-darwin         darwin-powerpc  darwin-powerpc
 i386-darwin            darwin-i386     darwin-i386
 s390x-linux-gnu                s390x           s390x
index cd1c9ff306d946e1eb799bfc5c11e6ffae780d39..ec2b47c34185e79bdd5f9bcea5a6a45970ccb30a 100644 (file)
@@ -93,13 +93,36 @@ AC_MSG_RESULT($VERSION)
 
 AC_PREFIX_DEFAULT(/usr)
 
+# OpenBSD has decided to be odd and includ a version number
+# in the final field of the GNU system type.
+# This code strips it out in a generic way.
+os_type=''
+AC_MSG_CHECKING(Operating system type)
+case $target_os in 
+        *linux* )
+          os_type="linux";;
+        *openbsd* )
+          os_type="openbsd";;
+        *netbsd* )
+          os_type="netbsd";;
+        *freebsd* )
+          os_type="freebsd";;
+        gnu )
+          os_type="hurd";;
+esac
+if test "x$os_type" = "x"; then
+ os_type=$target_os 
+fi
+AC_MSG_RESULT([$os_type])
+AC_SUBST(os_type)
+
 dpkg_archset=''
 AC_MSG_CHECKING(Debian architecture)
-dpkg_archset="`awk '$1 == "'$target_cpu-$target_os'" { print $2 }' $srcdir/archtable`"
+dpkg_archset="`awk '$1 == "'$target_cpu-$os_type'" { print $2 }' $srcdir/archtable`"
 # Finish off
 if test "x$dpkg_archset" = "x"; then
- AC_MSG_RESULT([$target_cpu-$target_os, but not found in archtable])
- dpkg_archset=$target_cpu-$target_os
+ AC_MSG_RESULT([$target_cpu-$os_type, but not found in archtable])
+ dpkg_archset=$target_cpu-$os_type
  else
  AC_MSG_RESULT($dpkg_archset)
 fi
@@ -141,6 +164,14 @@ AC_CHECK_LIB(shouldbeinlibc, fmt_past_time, SSD_LIBS="-lshouldbeinlibc $SSD_LIBS
 AC_CHECK_LIB(kvm, kvm_openfiles, SSD_LIBS="-lkvm $SSD_LIBS")
 AC_SUBST(SSD_LIBS)
 
+# check for the proper curses library. This can be either
+# -lcurses or -lncurses, we need to check for either one.
+AC_CHECK_LIB(ncurses,initscr, CURSES_LIBS="-lncurses $CURSES_LIBS", AC_CHECK_LIB(curses,initscr, CURSES_LIBS="-lcurses $CURSES_LIBS"))
+if test "x$CURSES_LIBS" = "x"; then
+ AC_MSG_WARN(no curses library found)
+fi
+AC_SUBST(CURSES_LIBS)
+
 DPKG_CHECK_DEFINE(TIOCNOTTY,sys/ioctl.h)
 
 ZLIB_CFLAGS=
@@ -175,13 +206,17 @@ AC_TRY_COMPILE(,[
 } inline int foo (int x) {], AC_DEFINE(HAVE_INLINE,,[Define if inline functions a la GCC are available.]))
 
 AC_MSG_CHECKING([for __va_copy])
-AC_TRY_COMPILE([
+# OpenBSD passes AC_TRY_COMPILE for __va_copy even though 
+# it doesn't seem to exist, which is odd. We need to use
+# AC_TRY_RUN.
+AC_TRY_RUN([
 #include <stdarg.h>
-],[
+main(){
 va_list v1,v2;
 __va_copy(v1, v2);
+exit(0);}
 ], [AC_MSG_RESULT(yes)
-AC_DEFINE(HAVE_VA_COPY,,[Define if you have the __va_copy macro])],[AC_MSG_RESULT(no)
+AC_DEFINE(HAVE_VA_COPY)],[AC_MSG_RESULT(no)
 AC_MSG_CHECKING([for va_list assignment copy])
 AC_TRY_COMPILE([
 #include <stdarg.h>
index 83859802ba37793b52a4f5b372cfa3c8d6e699fc..ef24b6a2bd315cb0b9dd10e626186e9dd79491ae 100644 (file)
@@ -46,6 +46,8 @@ dpkg (1.10.11) unstable; urgency=low
     Closes: #169359
   * Falk Hueffner <falk@debian.org>:
     Added alphaev68-linux-gnu to archtable.  Closes: #199360
+  * Elie Rosenblum <fnord@debian.org>:
+    Apply patch to support OpenBSD.  Closes: #154277
 
  -- Wichert Akkerman <debian@extern.wiggy.net>  UNRELEASED
 
index f50b349d845717823c09da77119f95bbca67f5f7..7ce734e037f77a3bc24a972f2e4f8ab2061005ad 100644 (file)
@@ -48,7 +48,7 @@ install-doc:
        done
 
 dselect: $(OBJECTS) ../lib/libdpkg.a
-       $(CXX) $(LDFLAGS) -o $@ $(OBJECTS) -lncurses $(LIBS) $(NLS_LIBS)
+       $(CXX) $(LDFLAGS) -o $@ $(OBJECTS) $(CURSES_LIBS) $(LIBS) $(NLS_LIBS)
 
 basecmds.o: helpmsgs.h
 curkeys.o: curkeys.h
index f7185e29b92be5d819fd4724fc599a823d2363b5..41fbb0d47ace0a66a0d384b36194a8aee0a0d1a9 100644 (file)
 #include <dpkg.h>
 #include <dpkg-db.h>
 
+#ifndef HAVE_VA_COPY
+#define __va_copy(dest,src)     (dest) = (src)
+#endif
+
 inline void varbufaddc(struct varbuf *v, int c) {
   if (v->used >= v->size) varbufextend(v);
   v->buf[v->used++]= c;
index 0e478fb09e2fd8f187e9e90288c6514dfa0f0e12..3a1e9f5295ec91eee3f585bd01d4d8a61694970a 100755 (executable)
@@ -95,11 +95,13 @@ Known GNU System Types are ".join(", ",map ($archtable{$_},keys %archtable))."
 ";
 }
 
-sub rewrite_gnu_cpu {
+sub rewrite_gnu {
        local ($_) = @_;
 
        s/(?:i386|i486|i586|i686|pentium)(.*linux)/i386$1/;
        s/ppc/powerpc/;
+       s/openbsd([\d\.]+$)/openbsd/;
+       s/-unknown-/-/;
        return $_;
 }
 
@@ -108,7 +110,7 @@ sub gnu_to_debian {
        local (@list);
        local ($a);
 
-       $gnu = &rewrite_gnu_cpu($gnu);
+       $gnu = &rewrite_gnu($gnu);
 
        foreach $a (keys %archtable) {
                push @list, $a if $archtable{$a} eq $gnu;
@@ -171,7 +173,7 @@ while (@ARGV) {
     if (m/^-a/) {
        $req_host_arch = $';
     } elsif (m/^-t/) {
-       $req_host_gnu_type = &rewrite_gnu_cpu($');
+       $req_host_gnu_type = &rewrite_gnu($');
     } elsif (m/^-[lsu]$/) {
        $action = $_;
        $action =~ s/^-//;
index f53406fa402e709a0d2d8331acce8adefc3cb8f5..64fa30f925853ab59765f8258f8568cb5093b255 100755 (executable)
@@ -82,6 +82,10 @@ sub isbin {
     }
     if ($d =~ /^\177ELF$/) { # ELF binary
        return 1;
+    } elsif (unpack ('N', $d) == 2156265739) { # obsd dyn bin
+       return 1;
+    } elsif (unpack ('N', $d) == 8782091) { # obsd stat bin
+       return 1;
     } elsif ($d =~ /^\#\!..$/) { # shell script
        return 0;
     } elsif (unpack ('N', $d) == 0xcafebabe) { # JAVA binary
index 5ee282b7ae9ddd7c95d1a395c33f445350de5c6c..0559f46c11105320eb539e469155a06a2153b6c2 100644 (file)
@@ -28,7 +28,7 @@
 #  define OSHURD
 #elif defined(__sparc__)
 #  define OSsunos
-#elif defined(OPENBSD)
+#elif defined(OPENBSD) || defined(__OpenBSD__)
 #  define OSOpenBSD
 #elif defined(hpux)
 #  define OShpux