Bug 147103 - [patch] editors/emacs-nox11: skip OPTIONS and use WITHOUT_DBUS
Summary: [patch] editors/emacs-nox11: skip OPTIONS and use WITHOUT_DBUS
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Ashish SHUKLA
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-27 01:20 UTC by swell.k
Modified: 2010-06-22 08:50 UTC (History)
0 users

See Also:


Attachments
a.diff (678 bytes, patch)
2010-05-27 01:20 UTC, swell.k
no flags Details | Diff
emacs.diff (11.42 KB, patch)
2010-05-27 09:47 UTC, Ashish Shukla
no flags Details | Diff
emacs.diff (8.97 KB, patch)
2010-05-27 10:49 UTC, Ashish Shukla
no flags Details | Diff
1-emacs-LICENSE.diff (442 bytes, patch)
2010-05-27 18:56 UTC, Ashish Shukla
no flags Details | Diff
2-emacs-OPTIONS.diff (2.32 KB, patch)
2010-05-27 18:56 UTC, Ashish Shukla
no flags Details | Diff
3-emacs-SOUND.diff (7.60 KB, patch)
2010-05-27 18:56 UTC, Ashish Shukla
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description swell.k 2010-05-27 01:20:01 UTC
- Skip DIALOG, use defaults. BATCH is for user, use _OPTIONS_OK here.

- Drop D-Bus support to lighten dependencies to only have one item and
  build-only (devel/gmake).

- tabify WITHOUT_OPTIONS and MASTERDIR
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2010-05-27 01:20:38 UTC
Maintainer of editors/emacs-nox11,

Please note that PR ports/147103 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/147103

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2010-05-27 01:20:40 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 Ashish Shukla 2010-05-27 05:49:10 UTC
Hi Anonymous,

Thanks for your diff. 

I've few objections to the diff:

- WITHOUT_DBUS is unneeded, as DBUS can work without X11.
- No need to skip OPTIONS.

Following are the changes I've in mind for editors/emacs, which also try to
fix the problem being solved by the current diff:

- Removing X11 and DBUS options from the editors/emacs port, as they're KNOBS
  and user can {dis,en}able them in there make.conf(5) or at command-line,
  there is no need for them to listed in OPTIONS, wrong decision by me in the
  first place.

- Adding a CONFLICTS for 'emacs-nox11-*' package in editors/emacs.

- Removal of ALSA checks from configure.

- Removal of libintl checks from configure.

- And adding USE_GETTEXT=yes only when port builds with M17N support, as m17n
  relies on gettext.

Also I can remove GTK2 OPTION, and use it as default toolkit if
MOTIF/XAW/XAW3D aren't defined, as GTK2 is also a KNOB.

Thanks
-- 
Ashish SHUKLA

Sent via Gnus from GNU Emacs
Comment 4 swell.k 2010-05-27 07:55:21 UTC
wahjava@gmail.com (Ashish SHUKLA) writes:

> Hi Anonymous,
>
> Thanks for your diff. 
>
> I've few objections to the diff:
>
> - WITHOUT_DBUS is unneeded, as DBUS can work without X11.

D-Bus is rarely used outside of X11/Gnome apps. WITHOUT_DBUS makes
emacs-nox11 package (not port) have no dependencies at all. And
installing dbus on e.g. server makes no sense.

> - No need to skip OPTIONS.

Why we should duplicate OPTIONS in nox11 slave port? Users are advised
to refer to the main port if they need them. -nox11 port is only for
package (pkg_add) and really lazy users.

>
> Following are the changes I've in mind for editors/emacs, which also try to
> fix the problem being solved by the current diff:
>
> - Removing X11 and DBUS options from the editors/emacs port, as they're KNOBS
>   and user can {dis,en}able them in there make.conf(5) or at command-line,
>   there is no need for them to listed in OPTIONS, wrong decision by me in the
>   first place.

I agree only on X11 knob. There is no need to list it in OPTIONS
variable, ifdef is enough. DBUS unlike X11 can stand on its own, though.

>
> - Adding a CONFLICTS for 'emacs-nox11-*' package in editors/emacs.
>
> - Removal of ALSA checks from configure.
>
> - Removal of libintl checks from configure.

Why? Do they interfere?

>
> - And adding USE_GETTEXT=yes only when port builds with M17N support, as m17n
>   relies on gettext.
>

You're fixing wrong port! devel/m17n-lib doesn't even build without
gettext here. I'm not sure if only having WITHOUT_NLS= in make.conf is
enough to break it but looking at direct dependcies, none of them
unconditionally enable NLS.

--- a.diff begins here ---
Index: devel/m17n-lib/Makefile
===================================================================
RCS file: /a/.cvsup/ports/devel/m17n-lib/Makefile,v
retrieving revision 1.31
diff -u -p -r1.31 Makefile
--- devel/m17n-lib/Makefile	3 May 2010 06:39:40 -0000	1.31
+++ devel/m17n-lib/Makefile	27 May 2010 06:01:07 -0000
@@ -25,6 +25,7 @@ RUN_DEPENDS=	m17n-db>=1.6.1:${PORTSDIR}/
 
 MAKE_JOBS_UNSAFE=	yes
 
+USE_GETTEXT=	yes
 USE_XORG=	ice sm x11 xaw xft xt
 USE_GNOME=	gnometarget libxml2 pkgconfig
 USE_AUTOTOOLS=	autoconf:262 libtool:22
--- a.diff ends here ---

Looking at ifdef for HAVE_M17N_FLT in emacs I don't see it using any
gettext specific symbols.

BTW, I've dropped -lintl from LDFLAGS in emacs port and successfully
built it with Xaw toolkit. Again, if m17n really needs gettext symbols
on linking then libdata/pkgconfig/m17n-*.pc should be fixed rather than
emacs.

> Also I can remove GTK2 OPTION, and use it as default toolkit if
> MOTIF/XAW/XAW3D aren't defined, as GTK2 is also a KNOB.

Agree, ifdef is enough. But you should mention it in OPTIONS, e.g.

  XAW "Use Athena widgets instead of GTK+ 2.0" OFF

user would not know what is used by default otherwise.

>
> Thanks
Comment 5 Ashish Shukla 2010-05-27 09:47:24 UTC
>> Hi Anonymous,
>> 
>> Thanks for your diff. 
>> 
>> I've few objections to the diff:
>> 
>> - WITHOUT_DBUS is unneeded, as DBUS can work without X11.

> D-Bus is rarely used outside of X11/Gnome apps. WITHOUT_DBUS makes
> emacs-nox11 package (not port) have no dependencies at all. And
> installing dbus on e.g. server makes no sense.

>> - No need to skip OPTIONS.

> Why we should duplicate OPTIONS in nox11 slave port? Users are advised
> to refer to the main port if they need them. -nox11 port is only for
> package (pkg_add) and really lazy users.

Okay, fine.

>> 
>> Following are the changes I've in mind for editors/emacs, which also try to
>> fix the problem being solved by the current diff:
>> 
>> - Removing X11 and DBUS options from the editors/emacs port, as they're KNOBS
>> and user can {dis,en}able them in there make.conf(5) or at command-line,
>> there is no need for them to listed in OPTIONS, wrong decision by me in the
>> first place.

> I agree only on X11 knob. There is no need to list it in OPTIONS
> variable, ifdef is enough. DBUS unlike X11 can stand on its own, though.

DBUS is also a knob as per ${PORTSDIR}/KNOBS file.

>> 
>> - Adding a CONFLICTS for 'emacs-nox11-*' package in editors/emacs.
>> 
>> - Removal of ALSA checks from configure.
>> 
>> - Removal of libintl checks from configure.

> Why? Do they interfere?

That causes emacs to be linked with '-lintl'.

[...]

> BTW, I've dropped -lintl from LDFLAGS in emacs port and successfully
> built it with Xaw toolkit. Again, if m17n really needs gettext symbols
> on linking then libdata/pkgconfig/m17n-*.pc should be fixed rather than
> emacs.

Yes, same here.

>> Also I can remove GTK2 OPTION, and use it as default toolkit if
>> MOTIF/XAW/XAW3D aren't defined, as GTK2 is also a KNOB.

> Agree, ifdef is enough. But you should mention it in OPTIONS, e.g.

>   XAW "Use Athena widgets instead of GTK+ 2.0" OFF

Instead of mentioning GTK+ in every OPTION, I've added a 'pre-everything'
target.

Attached is the diff file of the cleaned up port.

Thanks
-- 
Ashish SHUKLA

Sent via Gnus from GNU Emacs
Comment 6 swell.k 2010-05-27 10:18:45 UTC
wahjava@gmail.com (Ashish SHUKLA) writes:

> Anonymous  writes:
>> I agree only on X11 knob. There is no need to list it in OPTIONS
>> variable, ifdef is enough. DBUS unlike X11 can stand on its own, though.
>
> DBUS is also a knob as per ${PORTSDIR}/KNOBS file.

And? That file is for common names so that users don't invent D-BUS or
DBUS-1. There are a few ports that list DBUS in OPTIONS,
e.g. www/firefox*, graphics/gimp-app, dns/dnsmasq.

Please, re-add DBUS knob to OPTIONS variable.

>>> - Removal of libintl checks from configure.
>
>> Why? Do they interfere?
>
> That causes emacs to be linked with '-lintl'.

Not it doesn't. Try to build emacs with Xaw and without m17n, rsvg2,
dbus-glib and gconf2. If it doesn't want to link with -lintl then why
bother?


>
> [...]
>
>> BTW, I've dropped -lintl from LDFLAGS in emacs port and successfully
>> built it with Xaw toolkit. Again, if m17n really needs gettext symbols
>> on linking then libdata/pkgconfig/m17n-*.pc should be fixed rather than
>> emacs.
>
> Yes, same here.

Thanks, seen your diff.

>
>>> Also I can remove GTK2 OPTION, and use it as default toolkit if
>>> MOTIF/XAW/XAW3D aren't defined, as GTK2 is also a KNOB.
>
>> Agree, ifdef is enough. But you should mention it in OPTIONS, e.g.
>
>>   XAW "Use Athena widgets instead of GTK+ 2.0" OFF
>
> Instead of mentioning GTK+ in every OPTION, I've added a 'pre-everything'
> target.
>
> Attached is the diff file of the cleaned up port.

Can you move this line

  CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include"

before <bsd.port.options.mk>, e.g. just after GNU_CONFIGURE?

And drop dbus-glib dependency, please. Next time check ldd(1) output on
nox11 build.

>
> Thanks
Comment 7 Ashish Shukla 2010-05-27 10:49:44 UTC
[...]

> Not it doesn't. Try to build emacs with Xaw and without m17n, rsvg2,
> dbus-glib and gconf2. If it doesn't want to link with -lintl then why
> bother?

Fine.

[...]

> before <bsd.port.options.mk>, e.g. just after GNU_CONFIGURE?

> And drop dbus-glib dependency, please. Next time check ldd(1) output on
> nox11 build.

Thanks for noticing that.

Refer to the attached diff file.

Thanks
-- 
Ashish SHUKLA

Sent via Gnus from GNU Emacs
Comment 8 swell.k 2010-05-27 11:24:18 UTC
wahjava@gmail.com (Ashish SHUKLA) writes:

> Refer to the attached diff file.

> @@ -227,4 +224,12 @@
>  	@${INSTALL_DATA} ${WRKSRC}/sources.el ${DATADIR}/${EMACS_VER}/site-lisp/site-start.el
>  .endif
 
> +pre-everything::
> +	@${ECHO_MSG}
> +	@${ECHO_MSG} "====> By default Emacs is built with X11, DBUS, and GTK+ support."
> +	@${ECHO_MSG} "====> To disable X11 support, define: WITHOUT_X11."
> +	@${ECHO_MSG} "====> To disable GTK2 support, define: WITHOUT_GTK2."
> +	@${ECHO_MSG} "====> To disable DBUS support, define: WITHOUT_DBUS."
> +	@${ECHO_MSG}
> +

And what's going to be used when WITHOUT_GTK2 is defined? All other
toolkits are disabled by default.

I think only WITHOUT_X11 needs special mentioning in pre-everything
target. DBUS is listed in OPTIONS. Besides, the target isn't going to
be seen if BATCH is not defined and there are no options in PORT_DBDIR.
dialog(1) will quickly replace it with blue screen with knobs. ;)

And OPTIONS description should be a little more verbose. `support' is a
very vague word. It's applied equally e.g. to PNG and MOTIF. I think
toolkits should use smth like

  "Use Athena/Athena3d/Motif for drawing GUI instead of GTK2"

s/GUI/widgets/ if you like latter more. And for images

--- a.diff begins here ---
diff --git editors/emacs/Makefile editors/emacs/Makefile
index e1d6c6b..f2ee7f0 100644
--- editors/emacs/Makefile
+++ editors/emacs/Makefile
@@ -47,23 +47,23 @@ INFO=		ada-mode auth autotype calc ccmode cl dbus dired-x \
 
 OPTIONS=	DBUS	"DBus support"			ON \
 		GCONF	"GConf support"			ON \
-		GIF	"GIF support"			ON \
-		JPEG	"JPEG support"			ON \
-		M17N	"M17N support for text-shaping"	ON \
-		MOTIF	"Motif support"			OFF \
-		OTF	"Opentype Font"			ON \
-		PNG	"PNG support"			ON \
+		GIF	"Support .gif images"		ON \
+		JPEG	"Support .jpg images"		ON \
+		M17N	"Use m17n for text-shaping"	ON \
+		MOTIF	"Use Motif for drawing GUI instead of GTK2" OFF \
+		OTF	"Support OpenType fonts"	ON \
+		PNG	"Support .png images"		ON \
 		SOUND	"Sound support"			ON \
 		SOURCES	"Install source code"		ON \
-		SVG	"SVG support"			ON \
-		TIFF	"TIFF support"			ON \
-		XAW	"XAW support"			OFF \
-		XAW3D	"XAW3D support"			OFF \
+		SVG	"Support .svg images"		ON \
+		TIFF	"Support .tif images"		ON \
+		XAW	"Use Athena for drawing GUI instead of GTK2" OFF \
+		XAW3D	"Use Athena3D for drawing GUI instead of GTK2" OFF \
 		SYNC_INPUT	"Synchronously process asynchronous input"	ON \
 		SCROLLBARS	"Without toolkit scroll-bars"			ON \
-		XFT	"Xft support"			ON \
-		XIM	"XIM support"			ON \
-		XPM	"XPM support"			ON
+		XFT	"Support FreeType fonts"	ON \
+		XIM	"Support X Input Method"	ON \
+		XPM	"Support .xpm images"		ON
 
 .include <bsd.port.options.mk>
 
@@ -228,10 +228,7 @@ post-install:
 
 pre-everything::
 	@${ECHO_MSG}
-	@${ECHO_MSG} "====> By default Emacs is built with X11, DBUS, and GTK+ support."
 	@${ECHO_MSG} "====> To disable X11 support, define: WITHOUT_X11."
-	@${ECHO_MSG} "====> To disable GTK2 support, define: WITHOUT_GTK2."
-	@${ECHO_MSG} "====> To disable DBUS support, define: WITHOUT_DBUS."
 	@${ECHO_MSG}
 
 .include <bsd.port.post.mk>
--- a.diff ends here ---
Comment 9 Giorgos Keramidas freebsd_committer freebsd_triage 2010-05-27 12:15:13 UTC
On Thu, 27 May 2010 14:17:24 +0530, wahjava@gmail.com (Ashish SHUKLA) wrote:
> Instead of mentioning GTK+ in every OPTION, I've added a 'pre-everything'
> target.
>
> Attached is the diff file of the cleaned up port.

: diff -urN /usr/ports/editors/emacs/Makefile emacs/Makefile
: --- /usr/ports/editors/emacs/Makefile	2010-05-22 01:21:04.000000000 +0530
: +++ emacs/Makefile	2010-05-27 14:14:59.000000000 +0530
: @@ -28,7 +28,8 @@
:  USE_GMAKE=	yes
:  USE_BZIP2=	yes
:
: -USE_GETTEXT=	yes
: +LICENSE=	GPLv3
: +LICENSE_FILE=	${WRKSRC}/COPYING
:
:  MAN1=		b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
:  		grep-changelog.1 rcs-checkin.1
: @@ -43,10 +44,8 @@
:  		org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve \
:  		smtpmail speedbar tramp url vip viper widget woman
:
: -OPTIONS=	DBUS	"DBus support"			ON \
: -		GCONF	"GConf support"			ON \
: +OPTIONS=	GCONF	"GConf support"			ON \
:  		GIF	"GIF support"			ON \
: -		GTK2	"GTK+ support"			ON \
:  		JPEG	"JPEG support"			ON \
:  		M17N	"M17N support for text-shaping"	ON \
:  		MOTIF	"Motif support"			OFF \
: @@ -56,7 +55,6 @@
:  		SOURCES	"Install source code"		ON \
:  		SVG	"SVG support"			ON \
:  		TIFF	"TIFF support"			ON \
: -		X11	"X11 support"			ON \
:  		XAW	"XAW support"			OFF \
:  		XAW3D	"XAW3D support"			OFF \
:  		SYNC_INPUT	"Synchronously process asynchronous input"	ON \
: [snip]

It would be nice if we could commit the changes one at a time, e.g. to
use separate commits/changes for LICENSE_FILE, OPTIONS and the message
displayed by the pre-everything target.

AFAICT, the patch looks great ;-)
Comment 10 Ashish Shukla 2010-05-27 18:56:04 UTC
Attached are the 3 separate diffs for 3 commits:

1-emacs-LICENSE.diff -- Adds LICENSE stuff.
2-emacs-OPTIONS.diff -- Corrections OPTIONS, cleans up dependencies.
3-emacs-SOUND.diff   -- Removes ALSA detection code, adds CONFLICTS with
                        emacs-nox11*, and prints message to prior to everything.

Please commit them.

Thanks
-- 
Ashish SHUKLA

Sent via Gnus from GNU Emacs
Comment 11 Mark Linimon freebsd_committer freebsd_triage 2010-06-19 07:04:47 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ashish

Maintainer is now a committer.
Comment 12 dfilter service freebsd_committer freebsd_triage 2010-06-22 08:48:52 UTC
ashish      2010-06-22 07:48:38 UTC

  FreeBSD ports repository

  Modified files:
    editors/emacs-nox11  Makefile 
  Log:
  - Exclude DBUS support from editors/emacs-nox11 so it builds without X11.
    Thanks to swell.k@gmail.com for the fix.
  
  PR:             ports/147103
  Submitted by:   swell.k@gmail.com
  Approved by:    pgj (mentor)
  Feature safe:   yes
  
  Revision  Changes    Path
  1.6       +4 -2      ports/editors/emacs-nox11/Makefile
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 13 Ashish SHUKLA freebsd_committer freebsd_triage 2010-06-22 08:50:55 UTC
State Changed
From-To: feedback->closed

Committed. Thanks!