GNU bug report logs - #24919
24.5; battery.el not working in FreeBSD

Previous Next

Package: emacs;

Reported by: Ignacio Torres <i <at> itorres.net>

Date: Thu, 10 Nov 2016 16:49:02 UTC

Severity: normal

Tags: patch

Found in version 24.5

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 24919 in the body.
You can then email your comments to 24919 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#24919; Package emacs. (Thu, 10 Nov 2016 16:49:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ignacio Torres <i <at> itorres.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 10 Nov 2016 16:49:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ignacio Torres <i <at> itorres.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.5; battery.el not working in FreeBSD
Date: Sun, 18 Sep 2016 01:17:26 +0200
Running M-x battery in FreeBSD returns:

Power disconnected, battery high (illegal% load, remaining time 0:00)

The battery-bsd-apm function was contributed in [1]. It contains:

(apm-cmd (concat "/usr/sbin/apm -ablm" apm-flag))

The -m flag used in NetBSD[2] and OpenBSD[3] to show the remaining time
in minutes does not exist in FreeBSD[4]. Instead -t should be used to
show the remaining time in seconds.

Also the resulting output is in a different order than that expected by
the parser. battery-bsd-apm expects the order to be:

battery-status
battery-percentage
battery-life
line-status
apm-mode

In FreeBSD it is:

line-status
battery-status
battery-percentage
apm-mode
battery-life

As can be seen in the source of /usr/sbin/apm.c[5]

[1] http://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/battery.el?id=19b748ad448c37d08ae1df1212aec22ee1d55956
[2] http://netbsd.gw.com/cgi-bin/man-cgi?apm++NetBSD-current
[3] http://man.openbsd.org/OpenBSD-current/man8/amd64/apm.8
[4] https://www.freebsd.org/cgi/man.cgi?query=apm&manpath=FreeBSD+10.3-RELEASE+and+Ports
[5] https://svnweb.freebsd.org/base/stable/11/usr.sbin/apm/apm.c?revision=302408&view=markup#l472



In GNU Emacs 24.5.1 (amd64-portbld-freebsd12.0, GTK+ Version 2.24.29)
 of 2016-08-27 on builds.trueos.org
Windowing system distributor `The X.Org Foundation', version 11.0.11804000
Configured using:
 `configure --localstatedir=/var --disable-acl --with-dbus
 --without-file-notification --with-gconf --with-gif --with-gnutls
 --with-gsettings --with-jpeg --with-m17n-flt --with-imagemagick
 --with-libotf --with-png --with-toolkit-scroll-bars --with-rsvg
 --with-tiff --with-x --with-xft --with-xim --with-xml2 --with-xpm
 --with-x-toolkit=gtk2 --with-sound=oss --x-libraries=/usr/local/lib
 --x-includes=/usr/local/include --prefix=/usr/local
 --mandir=/usr/local/man --infodir=/usr/local/share/emacs/info/
 --build=amd64-portbld-freebsd12.0 'CFLAGS=-O2 -pipe -isystem
 /usr/local/include -fstack-protector -fno-strict-aliasing'
 'CPPFLAGS=-isystem /usr/local/include' 'LDFLAGS= -L/usr/local/lib
 -Wl,-rpath=/usr/lib:/usr/local/lib -fstack-protector''

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24919; Package emacs. (Fri, 11 Nov 2016 16:02:02 GMT) Full text and rfc822 format available.

Message #8 received at 24919 <at> debbugs.gnu.org (full text, mbox):

From: Joakim Jalap <joakim.jalap <at> fastmail.com>
To: Ignacio Torres <i <at> itorres.net>
Cc: 24919 <at> debbugs.gnu.org
Subject: Re: bug#24919: 24.5; battery.el not working in FreeBSD
Date: Fri, 11 Nov 2016 18:58:39 +0100
[Message part 1 (text/plain, inline)]
Ignacio Torres <i <at> itorres.net> writes:

> Running M-x battery in FreeBSD returns:
>
> Power disconnected, battery high (illegal% load, remaining time 0:00)
>
Here's a patch witch makes it return something else :)

Unfortunately I can't tets it on an actual laptop atm, but I /think/ it
might work.

-- Joakim

[0001-Fix-M-x-battery-on-FreeBSD.patch (text/x-patch, inline)]
From 8af54346db52ce1939632a60cac0cbd5c5f77063 Mon Sep 17 00:00:00 2001
From: Joakim Jalap <joakim.jalap <at> fastmail.com>
Date: Fri, 11 Nov 2016 18:00:22 +0100
Subject: [PATCH] Fix M-x battery on FreeBSD

	* lisp/battery.el (battery-bsd-apm): Fix to work with FreeBSD's apm(8)
---
 lisp/battery.el | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/lisp/battery.el b/lisp/battery.el
index e6e79b0..ddb0114 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -552,30 +552,40 @@ battery-bsd-apm
 %t Remaining battery charge time in the form `h:min'"
   (let* ((os-name (car (split-string
 			(shell-command-to-string "/usr/bin/uname"))))
-	 (apm-flag (if (equal os-name "OpenBSD") "P" "s"))
-	 (apm-cmd (concat "/usr/sbin/apm -ablm" apm-flag))
+         (os-freebsd (string= os-name "FreeBSD"))
+         (os-openbsd (string= os-name "OpenBSD"))
+         (battery-status-idx (if os-freebsd 1 0))
+         (percentage-idx (if os-freebsd 2 1))
+         (life-idx (if os-freebsd 4 2))
+         (line-status-idx (if os-freebsd 0 3))
+         (mode-idx (if os-freebsd 3 4))
+	 (apm-flags
+          (cond (os-freebsd "-ablts")
+                (os-openbsd "-ablmP")
+                (t "-ablms")))
+	 (apm-cmd (concat "/usr/sbin/apm " apm-flags))
 	 (apm-output (split-string (shell-command-to-string apm-cmd)))
 	 ;; Battery status
 	 (battery-status
-	  (let ((stat (string-to-number (nth 0 apm-output))))
+	  (let ((stat (string-to-number (nth battery-status-idx apm-output))))
 	    (cond ((eq stat 0) '("high" . ""))
 		  ((eq stat 1) '("low" . "-"))
 		  ((eq stat 2) '("critical" . "!"))
 		  ((eq stat 3) '("charging" . "+"))
 		  ((eq stat 4) '("absent" . nil)))))
 	 ;; Battery percentage
-	 (battery-percentage (nth 1 apm-output))
+	 (battery-percentage (nth percentage-idx apm-output))
 	 ;; Battery life
-	 (battery-life (nth 2 apm-output))
+	 (battery-life (nth life-idx apm-output))
 	 ;; AC status
 	 (line-status
-	  (let ((ac (string-to-number (nth 3 apm-output))))
+	  (let ((ac (string-to-number (nth line-status-idx apm-output))))
 	    (cond ((eq ac 0) "disconnected")
 		  ((eq ac 1) "connected")
 		  ((eq ac 2) "backup power"))))
 	 ;; Advanced power savings mode
 	 (apm-mode
-	  (let ((apm (string-to-number (nth 4 apm-output))))
+	  (let ((apm (string-to-number (nth mode-idx apm-output))))
 	    (if (string= os-name "OpenBSD")
 		(cond ((eq apm 0) "manual")
 		      ((eq apm 1) "automatic")
-- 
2.9.2


Added tag(s) patch. Request was from Alan Third <alan <at> idiocy.org> to control <at> debbugs.gnu.org. (Mon, 19 Dec 2016 09:40:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24919; Package emacs. (Wed, 08 Mar 2017 13:59:01 GMT) Full text and rfc822 format available.

Message #13 received at 24919 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Joakim Jalap <joakim.jalap <at> fastmail.com>
Cc: Ignacio Torres <i <at> itorres.net>, 24919 <at> debbugs.gnu.org
Subject: Re: bug#24919: 24.5; battery.el not working in FreeBSD
Date: Wed, 08 Mar 2017 13:58:48 +0000
Joakim Jalap <joakim.jalap <at> fastmail.com> writes:

> Ignacio Torres <i <at> itorres.net> writes:
>
>> Running M-x battery in FreeBSD returns:
>>
>> Power disconnected, battery high (illegal% load, remaining time 0:00)
>>
> Here's a patch witch makes it return something else :)
>
> Unfortunately I can't tets it on an actual laptop atm, but I /think/ it
> might work.

Has anyone been able to test Joakim's patch?
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24919; Package emacs. (Mon, 14 Oct 2019 20:17:02 GMT) Full text and rfc822 format available.

Message #16 received at 24919 <at> debbugs.gnu.org (full text, mbox):

From: Joseph Mingrone <jrm <at> ftfl.ca>
To: Alan Third <alan <at> idiocy.org>
Cc: Ignacio Torres <i <at> itorres.net>, Joakim Jalap <joakim.jalap <at> fastmail.com>,
 Stefan Kangas <stefan <at> marxist.se>, 24919 <at> debbugs.gnu.org
Subject: Re: bug#24919: 24.5; battery.el not working in FreeBSD
Date: Mon, 14 Oct 2019 17:16:26 -0300
Alan Third <alan <at> idiocy.org> writes:

> Joakim Jalap <joakim.jalap <at> fastmail.com> writes:

>> Ignacio Torres <i <at> itorres.net> writes:

>>> Running M-x battery in FreeBSD returns:

>>> Power disconnected, battery high (illegal% load, remaining time 0:00)

>> Here's a patch witch makes it return something else :)

>> Unfortunately I can't tets it on an actual laptop atm, but I /think/ it
>> might work.

> Has anyone been able to test Joakim's patch?

I don't see any commits related to this bug/patch, but I just tested M-x
battery in an Emacs master branch build (604a985) on FreeBSD 12.0 and
the output looks correct.

Here is some example output.

Power connected, battery high (100% load, remaining time N/A)
Power disconnected, battery high (100% load, remaining time 4:21)
Power disconnected, battery high (99% load, remaining time 3:30)

Joseph




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24919; Package emacs. (Tue, 15 Oct 2019 06:47:02 GMT) Full text and rfc822 format available.

Message #19 received at 24919 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Joseph Mingrone <jrm <at> ftfl.ca>
Cc: Ignacio Torres <i <at> itorres.net>, Alan Third <alan <at> idiocy.org>,
 24919 <at> debbugs.gnu.org, Joakim Jalap <joakim.jalap <at> fastmail.com>
Subject: Re: bug#24919: 24.5; battery.el not working in FreeBSD
Date: Tue, 15 Oct 2019 08:45:42 +0200
Joseph Mingrone <jrm <at> ftfl.ca> writes:

> I don't see any commits related to this bug/patch, but I just tested M-x
> battery in an Emacs master branch build (604a985) on FreeBSD 12.0 and
> the output looks correct.
>
> Here is some example output.
>
> Power connected, battery high (100% load, remaining time N/A)
> Power disconnected, battery high (100% load, remaining time 4:21)
> Power disconnected, battery high (99% load, remaining time 3:30)

Thanks.  Does that mean that the patch is not necessary for FreeBSD?

Is there anyone that could help test this also on OpenBSD?

Best regards,
Stefan Kangas




Reply sent to Stefan Kangas <stefan <at> marxist.se>:
You have taken responsibility. (Mon, 11 Nov 2019 03:27:02 GMT) Full text and rfc822 format available.

Notification sent to Ignacio Torres <i <at> itorres.net>:
bug acknowledged by developer. (Mon, 11 Nov 2019 03:27:02 GMT) Full text and rfc822 format available.

Message #24 received at 24919-done <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Joseph Mingrone <jrm <at> ftfl.ca>
Cc: Ignacio Torres <i <at> itorres.net>, Alan Third <alan <at> idiocy.org>,
 24919-done <at> debbugs.gnu.org, Joakim Jalap <joakim.jalap <at> fastmail.com>
Subject: Re: bug#24919: 24.5; battery.el not working in FreeBSD
Date: Mon, 11 Nov 2019 04:26:13 +0100
Stefan Kangas <stefan <at> marxist.se> writes:

> Joseph Mingrone <jrm <at> ftfl.ca> writes:
>
>> I don't see any commits related to this bug/patch, but I just tested M-x
>> battery in an Emacs master branch build (604a985) on FreeBSD 12.0 and
>> the output looks correct.
>>
>> Here is some example output.
>>
>> Power connected, battery high (100% load, remaining time N/A)
>> Power disconnected, battery high (100% load, remaining time 4:21)
>> Power disconnected, battery high (99% load, remaining time 3:30)
>
> Thanks.  Does that mean that the patch is not necessary for FreeBSD?
>
> Is there anyone that could help test this also on OpenBSD?

I re-read the original report, and it seems like I misread: this was
*not* an issue on OpenBSD, and should therefore need no further
testing here.

Since Joseph has helped confirm that things are now working also on
FreeBSD, and no one else has commented in 3.5 weeks, I'll go ahead and
close this bug.

If anyone is still seeing issues with M-x battery on any *BSD system,
please reopen the bug report.

Best regards,
Stefan Kangas




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 09 Dec 2019 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 191 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.