Re: Re-porting to FreeBSD 11-CURRENT(21.4.22)

KIRIYAMA Kazuhiko <[email protected]> Fri, 15 Apr 2016 17:00:28 +0900
Newsgroups gmane.emacs.xemacs.beta
Message-ID <[email protected]>
At Thu, 14 Apr 2016 17:23:19 +0200,
Hauke Fath wrote:
> 
> On Thu, 14 Apr 2016 17:58:31 +0900, KIRIYAMA Kazuhiko wrote:
> >> NetBSD's and FreeBSD's package systems differ quite a bit, but the 
> >> above should get you started.
> > 
> > [...] FreeBSD ports system was drastic changed maybe recent few
> > years. All ports could be selectable optional choice for
> > users by ncurses dialog menus so that introduced OPTION*
> > variables and selective dependencies are all specified by
> > relevent variables in OPTION* variables. Now FreeBSD xemacs
> > port skelton was put in [1], and see Makefile in it. I've
> > would like to know how mule or input method changed in
> > NetBSD xemacs `port', but ...
> 
> Well, the pkgsrc patches, Makefile and options.mk will give you a 
> general idea of what to adapt for a BSD. I am sure your fellow FreeBSD 

Sorry,I'd missed patches and include files. I saw
bsd.options.mk[1], but I'm sorry to say NetBSD's option
controll range is narrower than FreeBSD's one. For example
all manipulations such as {BUILD,LIB,RUN}_DEPENDS,
GONFIGURE_ARGS, specific cariable definitions and so on are
defined by varables specified in OPTIONS_DEFINE like this:


OPTIONS_DEFINE=		CLASH_DETECTION X11 LDAP POSTGRES XEPKGS DESKTOP \
			XFACE OFFIX
OPTIONS_DEFAULT=	CLASH_DETECTION X11 NATIVE BERKDB XEPKGS \
			MOTIF
OPTIONS_DEFINE_amd64=	SYSTEM_MALLOC PDUMP
OPTIONS_DEFAULT_amd64=	SYSTEM_MALLOC PDUMP

CLASH_DETECTION_DESC=	Detect other instances editing the same file
SYSTEM_MALLOC_DESC=	Use the system malloc, instead of GNU malloc
PDUMP_DESC=		Somewhat experimental portable dumper
POSTGRES_DESC=		Support the PostgreSQL RDBMS
XEPKGS_DESC=		Install Basic XEmacs elisp packages(xepkg-latin1)
DESKTOP_DESC=		Use Gnome Desktop utilities
XFACE_DESC=		Support X-Face mail headers
OFFIX_DESC=		Support OffiX drag and drop API

CLASH_DETECTION_CONFIGURE_WITH=	clash-detection
SYSTEM_MALLOC_CONFIGURE_WITH=	system-malloc
PDUMP_CONFIGURE_ON=	--pdump
X11_USE=		XORG=xpm,x11,xbitmaps,xaw
X11_CONFIGURE_ON=	--x-includes=${LOCALBASE}/include \
			--x-libraries=${LOCALBASE}/lib \
			--with-png --with-jpeg --with-tiff
X11_LIB_DEPENDS=	libpng.so:${PORTSDIR}/graphics/png \
			libjpeg.so:${PORTSDIR}/graphics/jpeg-turbo \
			libtiff.so:${PORTSDIR}/graphics/tiff
X11_CFLAGS+=		-I${LOCALBASE}/include/libpng16
X11_CONFIGURE_OFF=	--without-x11
LDAP_CONFIGURE_ON=	--with-ldap
LDAP_CONFIGURE_OFF=	--with-ldap=no
LDAP_USE=		OPENLDAP=yes
POSTGRES_CONFIGURE_ON=	--with-postgresql
POSTGRES_CONFIGURE_OFF=	--without-postgresql
POSTGRES_USES=		pgsql
XEPKGS_RUN_DEPENDS=	${LOCALBASE}/lib/xemacs/xemacs-packages/etc/enriched.doc:${PORTSDIR}/editors/xepkg-latin1
DESKTOP_USES=		desktop-file-utils
DESKTOP_IMPLIES=	X11
XFACE_CONFIGURE_ON=	--with-xface
XFACE_LIB_DEPENDS=	libcompface.so:${PORTSDIR}/mail/faces
OFFIX_CONFIGURE_ON=	--with-offix --with-dragndrop
OFFIX_LIB_DEPENDS=	libDnd.so:${PORTSDIR}/x11/libdnd


and more 4 kinds of option variables
OPTION_{SINGLE,RADIO,MULTI,GROUP} could be selected according
to user selection types[2]. 

[1] http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/mk/bsd.options.mk?rev=1.72&content-type=text/x-cvsweb-markup
[2] http://svnweb.freebsd.org/ports/head/Mk/bsd.options.mk?revision=411171&view=markup

> developers will be most happy to answer any questions you might have 
> about how to set up a FreeBSD packag^port.  :)
> 
> While you are at it, have a look at the patches in NetBSD's 
> editors/xemacs-packages, too.

There is a unkown patch which is no problem in
NetBSD. That's wnn setting in configure.in. In 21.4.22
that's below:


--- configure.in.orig	Thu Oct 16 00:37:12 2003
+++ configure.in	Thu Oct 16 00:40:18 2003
@@ -1104,6 +1104,7 @@
 dnl Straightforward OS determination
 case "$canonical" in
   *-*-linux*    ) opsys=linux ;;
+  *-*-freebsd*  ) opsys=freebsd ;;
   *-*-netbsd*   ) opsys=netbsd ;;
   *-*-openbsd*	) opsys=openbsd ;;
   *-*-nextstep* ) opsys=nextstep ;;
@@ -3782,21 +3783,24 @@
     test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
   fi
   dnl Back to our regularly scheduled wnn hunting
-  if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
-    AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
-      AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
-	AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
-	  AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
+  if test "$with_wnn6" = "yes"; then
+    AC_CHECK_LIB(wnn6,jl_fi_dic_list_e,libwnn=wnn6,
+      AC_CHECK_LIB(wnn6_fromsrc,jl_fi_dic_list_e,libwnn=wnn6_fromsrc,
+       AC_CHECK_LIB(wnn,jl_fi_dic_list_e,libwnn=wnn, [with_wnn6=no; with_wnn=no])))
+  else
+    if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
+      AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
+       AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
+         AC_CHECK_LIB(wnn6,jl_fi_dic_list_e,[libwnn=wnn6; with_wnn6=yes],
+           AC_CHECK_LIB(wnn6_fromsrc,jl_fi_dic_list_e, [libwnn=wnn6_fromsrc; with_wnn6=yes],with_wnn=no))))
+    fi
   fi
   test -z "$with_wnn" && with_wnn=yes
   if test "$with_wnn" = "yes"; then
     AC_DEFINE(HAVE_WNN)
     XE_PREPEND(-l$libwnn, libs_x)
     XE_ADD_OBJS(mule-wnnfns.o)
-    if test "$with_wnn6" != "no"; then
-      AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
-      test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
-    fi
+    test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
   fi
 
   dnl Autodetect canna
@@ -4401,7 +4405,7 @@
 dnl Check for Berkeley DB.
 if test "$with_database_berkdb" != "no"; then
   AC_MSG_CHECKING(for Berkeley db.h)
-  for header in "db/db.h" "db.h"; do
+  for header in "/usr/include/db.h" "db/db.h" "db.h"; do
     case "$opsys" in
         *freebsd*)
     AC_TRY_COMPILE([


That's portion is 3782 line. I've omitted these lines and
build works well in 21.4.24 patched by this wnn neglected
one. I'm not sure wnn* work well in this xemacs and can't
test it because I'm not wnn* user. Is there any suggetions?

Regards

---
KIRIYAMA Kazuhiko