unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: [platform-testers] Emacs 26.2 RC1 is out!
@ 2019-03-21 16:25 Nelson H. F. Beebe
  2019-03-21 17:03 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Nelson H. F. Beebe @ 2019-03-21 16:25 UTC (permalink / raw)
  To: Emacs Devel; +Cc: beebe

I can now report considerable success with building and installing the
emacs-26.2-rc1.tar.xz release candidate announced yesterday.  In our
test farm of physical and virtual machines, I have done 94 automated
builds, followed by 30 manual ones, with successful installations on
65 platforms.

The manual ones are due to a problem I have raised before, namely,
that the various optional libraries controlled by configure's
--with-XXX=yes/no are frequently unavailable across my many systems,
with the result that configure quits, and then reports something like
this:

	Maybe some development libraries/packages are missing?
	If you don't want to link with them give
	    --with-xpm=no --with-jpeg=no --with-gif=no --with-tiff=no --with-gnutls=no
	as options to configure

While this is not a big deal for people who build only for a single
platform, it is a huge pain for people like me with large build farms
(up to 225 different systems, until a recent hardware problem removed
a chunk of them).  I need to have fairly generic build procedures for
software, not ones that require platform-specific and package-specific
build customization.

I don't find anything that requires code changes in emacs-26.2; I just
need to do some more manual work to get builds to succeed on platforms
where they failed.

So, kudos again to the emacs development team for keeping emacs
portable across a wide range of computing environments!


-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-21 16:25 [platform-testers] Emacs 26.2 RC1 is out! Nelson H. F. Beebe
@ 2019-03-21 17:03 ` Eli Zaretskii
  2019-03-22  1:08 ` Stefan Monnier
  2019-03-22  3:36 ` Van L
  2 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2019-03-21 17:03 UTC (permalink / raw)
  To: Nelson H. F. Beebe; +Cc: emacs-devel

> Date: Thu, 21 Mar 2019 10:25:47 -0600
> From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
> Cc: beebe@math.utah.edu
> 
> So, kudos again to the emacs development team for keeping emacs
> portable across a wide range of computing environments!

Thanks for testing this RC.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
@ 2019-03-21 22:35 Nelson H. F. Beebe
  2019-03-22  7:25 ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Nelson H. F. Beebe @ 2019-03-21 22:35 UTC (permalink / raw)
  To: Emacs Devel; +Cc: beebe

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 5105 bytes --]

On Solaris 11.4.7.0.1.4.0 x86-64, the latest O/S version using patches
released by Oracle two days ago, the native compiler is /usr/bin/gcc,
version 7.3.0.  I built emacs-26.2 like this:

	set path= ( /bin )
	unsetenv CONFIG_SITE
	./configure --prefix=$prefix --with-gnutls=no --with-pop --with-gif=no && gmake all check
	...
	  CC       coding.o
	"coding.c", line 10365: Warning: Likely out-of-bound read: *(args[16]) in function Fdefine_coding_system_internal  
	...
	  CC       xsettings.o
	  CC       gtkutil.o
	  CC       emacsgtkfixed.o
	In file included from /usr/lib/glib-2.0/include/glibconfig.h:9:0,
			 from /usr/include/glib-2.0/glib/gtypes.h:32,
			 from /usr/include/glib-2.0/glib/galloca.h:32,
			 from /usr/include/glib-2.0/glib.h:30,
			 from /usr/include/gtk-3.0/gdk/gdkconfig.h:13,
			 from /usr/include/gtk-3.0/gdk/gdk.h:30,
			 from /usr/include/gtk-3.0/gtk/gtk.h:30,
			 from xterm.h:49,
			 from emacsgtkfixed.c:25:
	emacsgtkfixed.c: In function ‘emacs_fixed_get_type’:
	/usr/include/glib-2.0/glib/gmacros.h:232:53: error: size of array ‘_GStaticAssertCompileTimeAssertion_3’ is negative

Fortunately, I had already installed the Oracle Solaris Studio 12.6
compiler family in /opt/developerstudio12.6, and a build with
CC=cc got further, with some warnings:

	  CC       xterm.o
	"xterm.c", line 9835: warning: statement not reached
	"xterm.c", line 9935: warning: statement not reached

	  CC       xfns.o
	"xfns.c", line 5411: warning: statement not reached

	  CC       keyboard.o
	"keyboard.c", line 3637: warning: initializer will be sign-extended: -536870912

	  CC       sysdep.o
	"sysdep.c", line 641: warning:  "vfork" is deprecated, declared in : "/usr/include/unistd.h", line 672

	  CC       filelock.o
	"filelock.c", line 252: warning:  "utmpname" is deprecated, declared in : "/usr/include/utmp.h", line 142
	"filelock.c", line 254: warning:  "setutent" is deprecated, declared in : "/usr/include/utmp.h", line 141
	"filelock.c", line 260: warning:  "getutid" is deprecated, declared in : "/usr/include/utmp.h", line 138
	"filelock.c", line 272: warning:  "getutent" is deprecated, declared in : "/usr/include/utmp.h", line 137
	"filelock.c", line 276: warning:  "endutent" is deprecated, declared in : "/usr/include/utmp.h", line 136

	  CC       process.o
	"process.c", line 2072: warning:  "vfork" is deprecated, declared in : "/usr/include/unistd.h", line 672

	  CC       callproc.o
	"callproc.c", line 618: warning:  "vfork" is deprecated, declared in : "/usr/include/unistd.h", line 672

	  CC       lcms.o
	"lcms.c", line 23: cannot find include file: <lcms2.h>
	"lisp.h", line 721: bit-field size < 0: _gl_verify_error_if_negative
	"lisp.h", line 823: bit-field size < 0: _gl_verify_error_if_negative
	"lisp.h", line 829: cannot recover from previous errors
	cc: acomp failed for lcms.c

Solaris 11 DOES have the GNU little color management system:

	% pkg info lcms2
		  Name: library/gnu/lcms2
	       Summary: A little color management system (/usr/gnu)
	      Category: System/Libraries
		 State: Installed
	     Publisher: localhosts12
	       Version: 2.7
		Branch: 5.12.0.0.0.115.1
	Packaging Date: January 14, 2017 at  5:26:18 PM
		  Size: 1.57 MB
		  FMRI: pkg://localhosts12/library/gnu/lcms2@2.7-5.12.0.0.0.115.1:20170114T172618Z
	   Project URL: http://www.littlecms.com/
	    Source URL: http://downloads.sourceforge.net/lcms/lcms/2.7/lcms2-2.7.tar.gz

		  Name: library/lcms2
	       Summary: Version 2 of the Little Color Management System
	   Description: A small-footprint color management engine, with special focus on
			accuracy and performance
	      Category: System/Libraries
		 State: Installed
	     Publisher: solaris
	       Version: 2.8
		Branch: 11.4.0.0.1.14.0
	Packaging Date: August 14, 2018 at  4:47:54 PM
		  Size: 1.52 MB
		  FMRI: pkg://solaris/library/lcms2@2.8-11.4.0.0.1.14.0:20180814T164754Z
	   Project URL: http://www.littlecms.com/
	    Source URL: https://sourceforge.net/projects/lcms/files/lcms/2.8/lcms2-2.8.tar.gz

However, the lcms2.h header file is installed at
/usr/include/lcms/lcms2.h, rather than at top level in /usr/include.

The workaround was easy:

	gmake CFLAGS="-I${prefix}/include -I/usr/include/lcms"

A scan of several of my build farm machines showed that most do not
even have lcms2, but those that do, have it in /usr/include, EXCEPT
for some members of the Solaris family (Oracle Solaris and Hipster).

Presumably, the emacs-26.x configure.ac file could be tweaked to check
in /usr/include/lcms as well as /usr/include.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-21 16:25 [platform-testers] Emacs 26.2 RC1 is out! Nelson H. F. Beebe
  2019-03-21 17:03 ` Eli Zaretskii
@ 2019-03-22  1:08 ` Stefan Monnier
  2019-03-22  7:37   ` Eli Zaretskii
  2019-03-25 17:50   ` Paul Eggert
  2019-03-22  3:36 ` Van L
  2 siblings, 2 replies; 14+ messages in thread
From: Stefan Monnier @ 2019-03-22  1:08 UTC (permalink / raw)
  To: emacs-devel

> 	Maybe some development libraries/packages are missing?
> 	If you don't want to link with them give
> 	    --with-xpm=no --with-jpeg=no --with-gif=no --with-tiff=no --with-gnutls=no
> 	as options to configure
>
> While this is not a big deal for people who build only for a single
> platform, it is a huge pain for people like me with large build farms

Hmm... would there be a way to make it so configure accepts options like

    ./configure ... --with-xpm=ifavailable  --with-jpeg=ifavailable ...

so you can use a single script on all systems and it will use xpm
where available?


        Stefan




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-21 16:25 [platform-testers] Emacs 26.2 RC1 is out! Nelson H. F. Beebe
  2019-03-21 17:03 ` Eli Zaretskii
  2019-03-22  1:08 ` Stefan Monnier
@ 2019-03-22  3:36 ` Van L
  2 siblings, 0 replies; 14+ messages in thread
From: Van L @ 2019-03-22  3:36 UTC (permalink / raw)
  To: emacs-devel


> 	Maybe some development libraries/packages are missing?
> 	If you don't want to link with them give
> 	    --with-jpeg=no --with-gif=no --with-tiff=no
> 	as options to configure

I had to configure, make the build blind to image
file formats not knowing how to tell it where to
find the missing library. For example, I have
libjpeg due to

-- quote
XXX% port contents jpeg   
Port jpeg contains:
  … [snip]
  /opt/local/include/jpeglib.h
  /opt/local/lib/libjpeg.9.dylib
  /opt/local/lib/libjpeg.a
  /opt/local/lib/libjpeg.dylib
  … [snip]
-- quote ends

  LIBJPEG="/opt/local/lib" configure

That doesn't do the trick.

© 2019 Van L
gpg using EEF2 37E9 3840 0D5D 9183  251E 9830 384E 9683 B835
"Nowadays our most powerful computers cannot simulate even a dwarf galaxy." - Massimo Stiavelli




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-21 22:35 Nelson H. F. Beebe
@ 2019-03-22  7:25 ` Eli Zaretskii
  2019-03-22 12:54   ` Nelson H. F. Beebe
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-03-22  7:25 UTC (permalink / raw)
  To: Nelson H. F. Beebe; +Cc: emacs-devel

> Date: Thu, 21 Mar 2019 16:35:50 -0600
> From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
> Cc: beebe@math.utah.edu
> 
> 	  CC       emacsgtkfixed.o
> 	In file included from /usr/lib/glib-2.0/include/glibconfig.h:9:0,
> 			 from /usr/include/glib-2.0/glib/gtypes.h:32,
> 			 from /usr/include/glib-2.0/glib/galloca.h:32,
> 			 from /usr/include/glib-2.0/glib.h:30,
> 			 from /usr/include/gtk-3.0/gdk/gdkconfig.h:13,
> 			 from /usr/include/gtk-3.0/gdk/gdk.h:30,
> 			 from /usr/include/gtk-3.0/gtk/gtk.h:30,
> 			 from xterm.h:49,
> 			 from emacsgtkfixed.c:25:
> 	emacsgtkfixed.c: In function ‘emacs_fixed_get_type’:
> 	/usr/include/glib-2.0/glib/gmacros.h:232:53: error: size of array ‘_GStaticAssertCompileTimeAssertion_3’ is negative

Sounds like a compatibility problem between GTK headers and that port
of GCC.  IOW, it doesn't look like  an Emacs problem, as those headers
are not Emacs headers.

> However, the lcms2.h header file is installed at
> /usr/include/lcms/lcms2.h, rather than at top level in /usr/include.
> 
> The workaround was easy:
> 
> 	gmake CFLAGS="-I${prefix}/include -I/usr/include/lcms"
> 
> A scan of several of my build farm machines showed that most do not
> even have lcms2, but those that do, have it in /usr/include, EXCEPT
> for some members of the Solaris family (Oracle Solaris and Hipster).
> 
> Presumably, the emacs-26.x configure.ac file could be tweaked to check
> in /usr/include/lcms as well as /usr/include.

Our configure doesn't look for the header file at all, so it isn't
just a matter of adding one more directory to search.

I think we should use pkg-config to detect the correct switches.  Does
that system have an lcms2/pc file and pkg-config, and does the
following command show the correct -I switch:

  pkg-config --cflags lcms2

It's too bad we know this only now, because I don't think I'd like to
delay Emacs 26.2 release due to this issue.  (I believe Emacs 26.1
also doesn't compile on that system for the same reason?)  End users
could either use your workaround or configure without lcms2.

Thanks again for your testing.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-22  1:08 ` Stefan Monnier
@ 2019-03-22  7:37   ` Eli Zaretskii
  2019-03-22 12:20     ` Stefan Monnier
  2019-03-25 17:50   ` Paul Eggert
  1 sibling, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-03-22  7:37 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Thu, 21 Mar 2019 21:08:55 -0400
> 
> Hmm... would there be a way to make it so configure accepts options like
> 
>     ./configure ... --with-xpm=ifavailable  --with-jpeg=ifavailable ...
> 
> so you can use a single script on all systems and it will use xpm
> where available?

AFAIR, that is how this worked before, and we changed that because it
would cause builds without image libraries without noticing.  The
configure messages about lack of the packages are not easy to spot,
among all the other "Checking for ... no" messages.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-22  7:37   ` Eli Zaretskii
@ 2019-03-22 12:20     ` Stefan Monnier
  2019-03-22 13:19       ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2019-03-22 12:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

>> Hmm... would there be a way to make it so configure accepts options like
>> 
>>     ./configure ... --with-xpm=ifavailable  --with-jpeg=ifavailable ...
>> 
>> so you can use a single script on all systems and it will use xpm
>> where available?
>
> AFAIR, that is how this worked before, and we changed that because it
> would cause builds without image libraries without noticing.

I know but what I'm proposing is to make it possible for the user to
explicitly say "yes, please do just that, even though it has proved
undesirable as a default behavior".


        Stefan



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
@ 2019-03-22 12:25 Nelson H. F. Beebe
  0 siblings, 0 replies; 14+ messages in thread
From: Nelson H. F. Beebe @ 2019-03-22 12:25 UTC (permalink / raw)
  To: Emacs Devel; +Cc: beebe

On FreeBSD 11.0-CURRENT, a build of emacs-26.2 with

	set path = ( /bin /usr/bin /usr/local/bin )
	./configure --prefix=$prefix --with-gnutls=no --with-dbus=no --with-pop && gmake all check
	...
	Does Emacs use -ldbus?                                  no
	...

proceeded nicely until this step:

	  CCLD     temacs
	//usr/local/lib/libdbus-glib-1.so.2: undefined reference to `dbus_connection_unref@LIBDBUS_1_3'
	... dozens more complaints about dbus references ...

dbus was deselected at configure time, so why are there still
references to its functions?

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-22  7:25 ` Eli Zaretskii
@ 2019-03-22 12:54   ` Nelson H. F. Beebe
  2019-03-22 13:29     ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Nelson H. F. Beebe @ 2019-03-22 12:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Nelson H. F. Beebe, emacs-devel

Eli Zaretskii <eliz@gnu.org> asks about the Solaris 11.4 problem in
building emacs-26.2: the lmcs2.h header file is not found, because it
is expected in /usr/include, but actually stored in /usr/include/lcms:

>> Does that system have an lcms2/pc file and pkg-config, and does the
>> following command show the correct -I switch:
>>
>> pkg-config --cflags lcms2

The file

	/usr/gnu/lib/pkgconfig/lcms2.pc

is supplied by Oracle in Solaris 11.4, and the command reports

	% pkg-config --cflags lcms2
	-I/usr/include/lcms

So, it seems to be a reasonable solution to have configure.ac
use pkg-config to find the needed -I option.

Eli also asks:

>> I believe Emacs 26.1 also doesn't compile on that system for the
>> same reason?

I tried a similar build of emacs-26.1 on Solaris 11.4 with

	set path= ( /opt/developerstudio12.6/bin /bin )
	env CC=cc ./configure --prefix=$prefix --with-gnutls=no --with-pop --with-gif=no && gmake all check

It too fails with

	  CC       lcms.o
	"lcms.c", line 23: cannot find include file: <lcms2.h>

I ran

	gmake CFLAGS="-I${prefix}/include -I/usr/include/lcms"

and got a build and installation to complete.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-22 12:20     ` Stefan Monnier
@ 2019-03-22 13:19       ` Eli Zaretskii
  2019-03-22 13:58         ` Stefan Monnier
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2019-03-22 13:19 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org
> Date: Fri, 22 Mar 2019 08:20:14 -0400
> 
> >> Hmm... would there be a way to make it so configure accepts options like
> >> 
> >>     ./configure ... --with-xpm=ifavailable  --with-jpeg=ifavailable ...
> >> 
> >> so you can use a single script on all systems and it will use xpm
> >> where available?
> >
> > AFAIR, that is how this worked before, and we changed that because it
> > would cause builds without image libraries without noticing.
> 
> I know but what I'm proposing is to make it possible for the user to
> explicitly say "yes, please do just that, even though it has proved
> undesirable as a default behavior".

I understood that, but AFAIK there's no other project which supports
that.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-22 12:54   ` Nelson H. F. Beebe
@ 2019-03-22 13:29     ` Eli Zaretskii
  0 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2019-03-22 13:29 UTC (permalink / raw)
  To: Nelson H. F. Beebe; +Cc: emacs-devel

> Date: Fri, 22 Mar 2019 06:54:04 -0600
> From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
> Cc: beebe@math.utah.edu, "Nelson H. F. Beebe" <beebe@math.utah.edu>,
>         emacs-devel@gnu.org
> 
> The file
> 
> 	/usr/gnu/lib/pkgconfig/lcms2.pc
> 
> is supplied by Oracle in Solaris 11.4, and the command reports
> 
> 	% pkg-config --cflags lcms2
> 	-I/usr/include/lcms
> 
> So, it seems to be a reasonable solution to have configure.ac
> use pkg-config to find the needed -I option.

Would you mind filing a bug report about this?  I believe using
pkg-config is the right solution here.

> I tried a similar build of emacs-26.1 on Solaris 11.4 with
> 
> 	set path= ( /opt/developerstudio12.6/bin /bin )
> 	env CC=cc ./configure --prefix=$prefix --with-gnutls=no --with-pop --with-gif=no && gmake all check
> 
> It too fails with
> 
> 	  CC       lcms.o
> 	"lcms.c", line 23: cannot find include file: <lcms2.h>
> 
> I ran
> 
> 	gmake CFLAGS="-I${prefix}/include -I/usr/include/lcms"
> 
> and got a build and installation to complete.

Thanks, as expected.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-22 13:19       ` Eli Zaretskii
@ 2019-03-22 13:58         ` Stefan Monnier
  0 siblings, 0 replies; 14+ messages in thread
From: Stefan Monnier @ 2019-03-22 13:58 UTC (permalink / raw)
  To: emacs-devel

>> >> Hmm... would there be a way to make it so configure accepts options like
>> >> 
>> >>     ./configure ... --with-xpm=ifavailable  --with-jpeg=ifavailable ...
>> >> 
>> >> so you can use a single script on all systems and it will use xpm
>> >> where available?
>> >
>> > AFAIR, that is how this worked before, and we changed that because it
>> > would cause builds without image libraries without noticing.
>> 
>> I know but what I'm proposing is to make it possible for the user to
>> explicitly say "yes, please do just that, even though it has proved
>> undesirable as a default behavior".
>
> I understood that, but AFAIK there's no other project which supports that.

Then maybe we should be trailblazers ;-) !!


        Stefan




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [platform-testers] Emacs 26.2 RC1 is out!
  2019-03-22  1:08 ` Stefan Monnier
  2019-03-22  7:37   ` Eli Zaretskii
@ 2019-03-25 17:50   ` Paul Eggert
  1 sibling, 0 replies; 14+ messages in thread
From: Paul Eggert @ 2019-03-25 17:50 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Nelson H. F. Beebe, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 579 bytes --]

On 3/21/19 6:08 PM, Stefan Monnier wrote:
> Hmm... would there be a way to make it so configure accepts options like
>
>     ./configure ... --with-xpm=ifavailable  --with-jpeg=ifavailable ...
>
> so you can use a single script on all systems and it will use xpm
> where available?

That's simple, and it sounds like it would make Nelson's job easier. My
job too, as I occasionally build on multiple Solaris systems, which
often lack some of these libraries.

I installed the attached patch on master; it won't be in the Emacs 26.2
release but I hope it survives into Emacs 27.


[-- Attachment #2: 0001-Support-.-configure-with-gif-ifavailable-etc.patch --]
[-- Type: text/x-patch, Size: 5449 bytes --]

From 97a793cba9fc68a9df67622d8d82c443fe10dd9b Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 25 Mar 2019 10:46:04 -0700
Subject: [PATCH] Support ./configure --with-gif=ifavailable etc.

Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2019-03/msg00789.html
* INSTALL, etc/NEWS: Document this.
* configure.ac: Implement this.
---
 INSTALL      |  6 ++++++
 configure.ac | 59 +++++++++++++++++++++++++++++++++++-----------------
 etc/NEWS     |  6 ++++++
 3 files changed, 52 insertions(+), 19 deletions(-)

diff --git a/INSTALL b/INSTALL
index 72bba25df8..8022385010 100644
--- a/INSTALL
+++ b/INSTALL
@@ -318,6 +318,12 @@ features enabled, you can combine --without-all with --with-FEATURE.
 For example, you can use --without-all --without-x --with-dbus to
 build with D-Bus support and nothing more.
 
+Use --with-gnutls=ifavailable to use GnuTLS if available but go ahead
+and build without it if not available.  This overrides Emacs's default
+behavior of refusing to build if GnuTLS is absent.  When X11 support
+is enabled, the libraries for gif, jpeg, png, tiff, and xpm are in the
+same strongly-recommended category as GnuTLS, and have similar options.
+
 Use --with-wide-int to implement Emacs values with the type 'long long',
 even on hosts where a narrower type would do.  With this option, on a
 typical 32-bit host, Emacs integers have 62 bits instead of 30.
diff --git a/configure.ac b/configure.ac
index 110ea2909a..c93cfbbb59 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2941,7 +2941,7 @@ AC_DEFUN
 AC_SUBST(LIBSELINUX_LIBS)
 
 HAVE_GNUTLS=no
-if test "${with_gnutls}" = "yes" ; then
+if test "${with_gnutls}" != "no" ; then
   EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.12.2],
     [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no])
   if test "${HAVE_GNUTLS}" = "yes"; then
@@ -3512,7 +3512,10 @@ AC_DEFUN
 
 if test "${HAVE_X11}" = "yes"; then
   dnl Avoid Xpm on AIX unless requested, as it crashes; see Bug#17598.
-  test "$opsys$with_xpm_set" = aix4-2 && with_xpm=no
+  case $opsys,$with_xpm_set,$with_xpm in
+    aix4-2,set,yes) ;;
+    aix4-2,*) with_xpm=no;;
+  esac
 
   if test "${with_xpm}" != "no"; then
     AC_CHECK_HEADER(X11/xpm.h,
@@ -3830,28 +3833,46 @@ AC_DEFUN
 
 dnl Check for required libraries.
 MISSING=
-WITH_NO=
+WITH_IFAVAILABLE=
 if test "${HAVE_X11}" = "yes"; then
-  test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
-    MISSING="libXpm" && WITH_NO="--with-xpm=no"
-  test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
-    MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
-  test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
-    MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
-  test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
-    MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
-  test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
-    MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
-fi
-test "${with_gnutls}" != "no" && test "${HAVE_GNUTLS}" != "yes" &&
-  MISSING="$MISSING gnutls" && WITH_NO="$WITH_NO --with-gnutls=no"
+  case $with_xpm,$HAVE_XPM in
+    no,* | ifavailable,* | *,yes) ;;
+    *) MISSING="libXpm"
+       WITH_IFAVAILABLE="--with-xpm=ifavailable";;
+  esac
+  case $with_jpeg,$HAVE_JPEG in
+    no,* | ifavailable,* | *,yes) ;;
+    *) MISSING="$MISSING libjpeg"
+       WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-jpeg=ifavailable";;
+  esac
+  case $with_png,$HAVE_PNG in
+    no,* | ifavailable,* | *,yes) ;;
+    *) MISSING="$MISSING libpng"
+       WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-png=ifavailable";;
+  esac
+  case $with_gif,$HAVE_GIF in
+    no,* | ifavailable,* | *,yes) ;;
+    *) MISSING="$MISSING libgif/libungif"
+       WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-gif=ifavailable";;
+  esac
+  case $with_tiff,$HAVE_TIFF in
+    no,* | ifavailable,* | *,yes) ;;
+    *) MISSING="$MISSING libtiff"
+       WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-tiff=ifavailable";;
+  esac
+fi
+case $with_gnutls,$HAVE_GNUTLS in
+  no,* | ifavailable,* | *,yes) ;;
+  *) MISSING="$MISSING gnutls"
+     WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-gnutls=ifavailable";;
+esac
 if test "X${MISSING}" != X; then
   AC_MSG_ERROR([The following required libraries were not found:
     $MISSING
 Maybe some development libraries/packages are missing?
-If you don't want to link with them give
-    $WITH_NO
-as options to configure])
+To build anyway, give:
+    $WITH_IFAVAILABLE
+as options to configure.])
 fi
 
 ### Use -lgpm if available, unless '--with-gpm=no'.
diff --git a/etc/NEWS b/etc/NEWS
index bbba59c549..ad01bd8516 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -37,6 +37,12 @@ functions 'json-serialize', 'json-insert', 'json-parse-string', and
 'json-parse-buffer' are typically much faster than their Lisp
 counterparts from json.el.
 
+** Several configure options now accept an option-argument 'ifavailable'.
+For example, './configure --with-xpm=ifavailable' now configures Emacs
+to attempt to use libxpm but to continue building even if libxpm is absent.
+The other affected options are --with-gif, --with-gnutls, --with-jpeg,
+--with-png, and --with-tiff.
+
 ** The etags program now uses the C library's regular expression matcher
 when possible, and a compatible regex substitute otherwise.  This will
 let developers maintain Emacs's own regex code without having to also
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2019-03-25 17:50 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-21 16:25 [platform-testers] Emacs 26.2 RC1 is out! Nelson H. F. Beebe
2019-03-21 17:03 ` Eli Zaretskii
2019-03-22  1:08 ` Stefan Monnier
2019-03-22  7:37   ` Eli Zaretskii
2019-03-22 12:20     ` Stefan Monnier
2019-03-22 13:19       ` Eli Zaretskii
2019-03-22 13:58         ` Stefan Monnier
2019-03-25 17:50   ` Paul Eggert
2019-03-22  3:36 ` Van L
  -- strict thread matches above, loose matches on Subject: below --
2019-03-21 22:35 Nelson H. F. Beebe
2019-03-22  7:25 ` Eli Zaretskii
2019-03-22 12:54   ` Nelson H. F. Beebe
2019-03-22 13:29     ` Eli Zaretskii
2019-03-22 12:25 Nelson H. F. Beebe

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).