sourceforge.net

Menu

You can subscribe to this list here.

2000 Jan
 
Feb
 
Mar
 
Apr
 
May
(14)
Jun
(29)
Jul
(51)
Aug
(40)
Sep
(35)
Oct
(58)
Nov
(64)
Dec
(70)
2001 Jan
(111)
Feb
(75)
Mar
(85)
Apr
(62)
May
(56)
Jun
(65)
Jul
(67)
Aug
(73)
Sep
(46)
Oct
(64)
Nov
(55)
Dec
(76)
2002 Jan
(119)
Feb
(74)
Mar
(101)
Apr
(128)
May
(124)
Jun
(138)
Jul
(114)
Aug
(63)
Sep
(54)
Oct
(135)
Nov
(92)
Dec
(127)
2003 Jan
(129)
Feb
(164)
Mar
(129)
Apr
(131)
May
(181)
Jun
(136)
Jul
(118)
Aug
(220)
Sep
(116)
Oct
(177)
Nov
(206)
Dec
(114)
2004 Jan
(175)
Feb
(222)
Mar
(245)
Apr
(209)
May
(112)
Jun
(104)
Jul
(77)
Aug
(115)
Sep
(175)
Oct
(141)
Nov
(154)
Dec
(190)
2005 Jan
(198)
Feb
(171)
Mar
(164)
Apr
(113)
May
(104)
Jun
(151)
Jul
(107)
Aug
(190)
Sep
(142)
Oct
(116)
Nov
(113)
Dec
(111)
2006 Jan
(147)
Feb
(103)
Mar
(102)
Apr
(75)
May
(110)
Jun
(82)
Jul
(119)
Aug
(77)
Sep
(103)
Oct
(188)
Nov
(132)
Dec
(155)
2007 Jan
(169)
Feb
(110)
Mar
(113)
Apr
(162)
May
(107)
Jun
(116)
Jul
(159)
Aug
(135)
Sep
(135)
Oct
(105)
Nov
(96)
Dec
(100)
2008 Jan
(122)
Feb
(93)
Mar
(57)
Apr
(80)
May
(119)
Jun
(85)
Jul
(59)
Aug
(73)
Sep
(250)
Oct
(146)
Nov
(121)
Dec
(72)
2009 Jan
(193)
Feb
(96)
Mar
(102)
Apr
(66)
May
(99)
Jun
(130)
Jul
(206)
Aug
(308)
Sep
(117)
Oct
(99)
Nov
(170)
Dec
(232)
2010 Jan
(104)
Feb
(127)
Mar
(86)
Apr
(111)
May
(66)
Jun
(44)
Jul
(253)
Aug
(120)
Sep
(178)
Oct
(220)
Nov
(153)
Dec
(157)
2011 Jan
(80)
Feb
(85)
Mar
(129)
Apr
(232)
May
(236)
Jun
(73)
Jul
(53)
Aug
(38)
Sep
(23)
Oct
(32)
Nov
(25)
Dec
(24)
2012 Jan
(23)
Feb
(43)
Mar
(29)
Apr
(50)
May
(25)
Jun
(15)
Jul
(26)
Aug
(26)
Sep
(4)
Oct
(10)
Nov
(17)
Dec
(18)
2013 Jan
(12)
Feb
(17)
Mar
(15)
Apr
(22)
May
(29)
Jun
(16)
Jul
(15)
Aug
(9)
Sep
(45)
Oct
(18)
Nov
(21)
Dec
(11)
2014 Jan
(35)
Feb
(34)
Mar
(13)
Apr
(14)
May
(86)
Jun
(23)
Jul
(6)
Aug
(18)
Sep
(16)
Oct
(36)
Nov
(98)
Dec
(62)
2015 Jan
(27)
Feb
(14)
Mar
(5)
Apr
(49)
May
(27)
Jun
(9)
Jul
(11)
Aug
(20)
Sep
(26)
Oct
(71)
Nov
(2)
Dec
(7)
2016 Jan
(42)
Feb
(3)
Mar
(15)
Apr
(34)
May
(25)
Jun
(39)
Jul
(20)
Aug
(85)
Sep
(14)
Oct
(82)
Nov
(10)
Dec
(34)
2017 Jan
(29)
Feb
(88)
Mar
(78)
Apr
(4)
May
(7)
Jun
(30)
Jul
(4)
Aug
(47)
Sep
(14)
Oct
(47)
Nov
(5)
Dec
(3)
2018 Jan
(18)
Feb
(13)
Mar
(6)
Apr
(8)
May
(11)
Jun
(1)
Jul
(11)
Aug
(1)
Sep
(4)
Oct
 
Nov
 
Dec
(23)
2019 Jan
(5)
Feb
(15)
Mar
(11)
Apr
(4)
May
(15)
Jun
(12)
Jul
(4)
Aug
(5)
Sep
(14)
Oct
(3)
Nov
(10)
Dec
 
2020 Jan
 
Feb
(5)
Mar
(23)
Apr
(7)
May
 
Jun
 
Jul
 
Aug
(7)
Sep
 
Oct
(3)
Nov
 
Dec
 
2021 Jan
(2)
Feb
(2)
Mar
 
Apr
(8)
May
 
Jun
 
Jul
(4)
Aug
(5)
Sep
(7)
Oct
 
Nov
 
Dec
 
2022 Jan
 
Feb
(3)
Mar
(1)
Apr
 
May
 
Jun
 
Jul
 
Aug
 
Sep
(4)
Oct
 
Nov
(2)
Dec
(13)
2023 Jan
 
Feb
 
Mar
 
Apr
 
May
 
Jun
 
Jul
 
Aug
 
Sep
(4)
Oct
(1)
Nov
(1)
Dec
(1)
2024 Jan
 
Feb
 
Mar
(4)
Apr
(3)
May
(2)
Jun
(4)
Jul
(3)
Aug
 
Sep
(5)
Oct
(1)
Nov
 
Dec
 
2025 Jan
 
Feb
 
Mar
(4)
Apr
 
May
(2)
Jun
(5)
Jul
 
Aug
 
Sep
(12)
Oct
 
Nov
 
Dec
 
2026 Jan
 
Feb
 
Mar
 
Apr
 
May
(18)
Jun
 
Jul
 
Aug
(5)
Sep
 
Oct
 
Nov
 
Dec
 

From: John <jay...@gm...> - 2026-08-14 20:40:03

On 2026-08-14 05:03, Sean Young wrote:
Hi Sean,
>
> Having said that, what exactly are you trying to achieve? You might
> not need lirc at all. What remote are you trying to use and do you
> have a remote definition for it in mind?
I have a soundbar remote (Mission SB21) that isn't supported "out of the
box" by the Amazon FireTV. I'm actually looking for the four digit
"profile number" that would work, but haven't been able to find it.
Other than taking the remote apart to see what chips are inside it that
might lead to a manufacturer, I'm at a loss.
As I was already working with a Raspberry Pi for another project, I
thought I'd see if I could at least read the button codes using LIRC.
That has worked since you pointed me to Justin Yoo's page. At this point
I've gone as far as I can and won't be going any farther with this project.
Thanks for your help.
--
Regards,
John

From: Sean Y. <se...@me...> - 2026-08-14 09:03:40

Hi John,
On Thu, Aug 13, 2026 at 06:49:19PM -0400, John wrote:
> Thanks Sean, that worked for me.
>
> One follow up question. Justin lists the contents for
> /etc/lirc/hardware.conf.
>
> The line:
>  	MODULES="lirc_rpi"
>
> looks like it should be:
>   	MODULES="gpio_ir"
>
> 		or
>
>  	MODULES="gpio_ir_recv"
>
> Is that a correct assumption?
hardware.conf is a file which was used on Debian at some point but it is
no longer used. All the options are in /etc/lirc/lirc_options.conf
Having said that, what exactly are you trying to achieve? You might
not need lirc at all. What remote are you trying to use and do you
have a remote definition for it in mind?
Thanks,
Sean

From: John <jay...@gm...> - 2026-08-13 22:49:29

On 2026-08-12 09:15, Sean Young wrote:
Thanks Sean, that worked for me.
One follow up question. Justin lists the contents for
/etc/lirc/hardware.conf.
The line:
  	MODULES="lirc_rpi"
looks like it should be:
   	MODULES="gpio_ir"
		or
  	MODULES="gpio_ir_recv"
Is that a correct assumption?
--
Regards,
John

From: Sean Y. <se...@me...> - 2026-08-12 13:31:15

On Wed, Aug 12, 2026 at 08:35:38AM -0400, John wrote:
> I am using a Raspberry Pi 1B running Raspberry Pi OS (Trixie) with a
> TSOP38238 infrared receiver to be able to capture the codes for an IR remote
> that is not supported by the Amazon Fire stick. LIRC was installed from the
> distribution repository (v 0.10.2). The configuration is setup based on the
> following page by Gordon Turner ( https://blog.gordonturner.com/2017/10/29/linux-infrared-control-part-1-receive-ir/
> ). Though I can see 3.3VDC at both the lead for power and the lead for
> input, the LIRC device (/dev/lirc0) is not present after boot up. Not sure
> how to proceed.
That page is really out of date:
	dtoverlay=lirc-rpi
lirc-rpi has not been supported for a long time. You need:
	dtoverlay=gpio-ir,gpio_pin=18
See e.g. https://devkimchi.com/2020/08/12/turning-raspberry-pi-into-remote-controller/
Thanks,
Sean

From: John <jay...@gm...> - 2026-08-12 12:35:49

I am using a Raspberry Pi 1B running Raspberry Pi OS (Trixie) with a
TSOP38238 infrared receiver to be able to capture the codes for an IR
remote that is not supported by the Amazon Fire stick. LIRC was
installed from the distribution repository (v 0.10.2). The configuration
is setup based on the following page by Gordon Turner (
https://blog.gordonturner.com/2017/10/29/linux-infrared-control-part-1-receive-ir/
). Though I can see 3.3VDC at both the lead for power and the lead for
input, the LIRC device (/dev/lirc0) is not present after boot up. Not
sure how to proceed.
--
Regards,
John

From: Doron B. <dor...@gm...> - 2026-05-28 16:00:45

On Thu, May 28, 2026 at 01:37:32PM +0200, Thomas Uhle wrote:
> On Thu, 28 May 2026, Doron Behar wrote:
>
> > [...]
> >
> > +m4_define([PYTHON_MIN_VERSION], [3.7])
> > # Try the 'm' (malloc/abiflags) version first, fallback to standard python3
> > -PKG_CHECK_MODULES([PYTHON], [python3m >= 3.7], [pkg_cv_python_name="python3m"], [
> > -    PKG_CHECK_MODULES([PYTHON], [python3 >= 3.7], [pkg_cv_python_name="python3"], [
> > -        AC_MSG_WARN([No python package found >= 3.1 (missing devel package?)])
> > +PKG_CHECK_MODULES([PYTHON], [python3m >= [PYTHON_MIN_VERSION,] [pkg_cv_python_name="python3m"], [
> > +    PKG_CHECK_MODULES([PYTHON], [python3 >= [PYTHON_MIN_VERSION,] [pkg_cv_python_name="python3"], [
> > +        AC_MSG_WARN([No python package found >= [PYTHON_MIN_VERSION] (missing devel package?)])
>
> Looks like mismatched brackets ...  Have you tested these changes?
You were right again - I thought you had a bracket mistake so I wrote
something else there but your original suggestion was perfect (tested it
this time :)).
I sent both of these patches here as upstream seems to accept them
there:
<https://sourceforge.net/p/lirc/tickets/392/>
Doron.

From: Thomas U. <tho...@ma...> - 2026-05-28 11:37:49

On Thu, 28 May 2026, Doron Behar wrote:
> [...]
>
> +m4_define([PYTHON_MIN_VERSION], [3.7])
> # Try the 'm' (malloc/abiflags) version first, fallback to standard python3
> -PKG_CHECK_MODULES([PYTHON], [python3m >= 3.7], [pkg_cv_python_name="python3m"], [
> -    PKG_CHECK_MODULES([PYTHON], [python3 >= 3.7], [pkg_cv_python_name="python3"], [
> -        AC_MSG_WARN([No python package found >= 3.1 (missing devel package?)])
> +PKG_CHECK_MODULES([PYTHON], [python3m >= [PYTHON_MIN_VERSION,] [pkg_cv_python_name="python3m"], [
> +    PKG_CHECK_MODULES([PYTHON], [python3 >= [PYTHON_MIN_VERSION,] [pkg_cv_python_name="python3"], [
> +        AC_MSG_WARN([No python package found >= [PYTHON_MIN_VERSION] (missing devel package?)])
Looks like mismatched brackets ...  Have you tested these changes?
Best regards,
Thomas Uhle

From: Thomas U. <tho...@ma...> - 2026-05-28 11:34:30

On Thu, 28 May 2026, Doron Behar wrote:
> [...]
>
> -	cd $(DESTDIR)/$(bindir); \
> -	    ln -sr $(DESTDIR)/$(setupdir)/lirc-setup
> -	rm -rf $(DESTDIR)/$(setupdir)/configs
> -	cd $(DESTDIR)/$(setupdir); \
> -	    ln -sr $(DESTDIR)/$(pkgdatadir)/configs
> +	ln -sr \
> +	    $(DESTDIR)/$(setupdir)/lirc-setup \
> +	    $(DESTDIR)/$(bindir)/lirc-setup
> +	ln -sr \
> +	    $(DESTDIR)/$(pkgdatadir)/configs \
> +	    $(DESTDIR)/$(setupdir)/configs
I don't know if it's wise to also remove this line:
 	rm -rf $(DESTDIR)/$(setupdir)/configs
It might have been there for a reason.
Best regards,
Thomas Uhle

From: <dor...@gm...> - 2026-05-28 10:35:26

From: Doron Behar <dor...@gm...>
Hello Thomas,
Attached are the patches that fix your comments. You were right in both
of them! Thanks.
Doron Behar (2):
  */Makefile.am: Simplify ln -sr calls
  configure.ac: consistently require the same Python version
 configure.ac      |  7 ++++---
 doc/Makefile.am   |  9 +++++----
 tools/Makefile.am | 11 ++++++-----
 3 files changed, 15 insertions(+), 12 deletions(-)
--
2.54.0

From: <dor...@gm...> - 2026-05-28 10:35:25

From: Doron Behar <dor...@gm...>
---
 configure.ac | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 99cdef09..86f5b6af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,10 +45,11 @@ AC_CHECK_PROG([DOXYGEN],[doxygen],[yes],[no])
 AM_CONDITIONAL(HAVE_DOXYGEN, test x$DOXYGEN = xyes)
 LT_INIT([disable-static])
+m4_define([PYTHON_MIN_VERSION], [3.7])
 # Try the 'm' (malloc/abiflags) version first, fallback to standard python3
-PKG_CHECK_MODULES([PYTHON], [python3m >= 3.7], [pkg_cv_python_name="python3m"], [
-    PKG_CHECK_MODULES([PYTHON], [python3 >= 3.7], [pkg_cv_python_name="python3"], [
-        AC_MSG_WARN([No python package found >= 3.1 (missing devel package?)])
+PKG_CHECK_MODULES([PYTHON], [python3m >= [PYTHON_MIN_VERSION,] [pkg_cv_python_name="python3m"], [
+    PKG_CHECK_MODULES([PYTHON], [python3 >= [PYTHON_MIN_VERSION,] [pkg_cv_python_name="python3"], [
+        AC_MSG_WARN([No python package found >= [PYTHON_MIN_VERSION] (missing devel package?)])
     ])
 ])
 AS_IF([test -n "$PYTHON_CFLAGS"], [
--
2.54.0

From: <dor...@gm...> - 2026-05-28 10:35:25

From: Doron Behar <dor...@gm...>
---
 doc/Makefile.am   |  9 +++++----
 tools/Makefile.am | 11 ++++++-----
 2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 78ede284..df10fee0 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -100,11 +100,12 @@ endif
 install-data-hook: install-apidocs
 	cd $(DESTDIR)$(websitedir)/api-docs; ln -sf html-source/index.html .
 	$(SED) -i '/class="footer"/,/p>/d' $(DESTDIR)$(plugindocsdir)/page.xsl
-	cd $(DESTDIR)$(plugindocsdir); ln -sr \
-	    $(DESTDIR)$(vardocsdir) var
-	cd $(DESTDIR)$(website_htmldir); ln -sr \
+	ln -sr \
+	    $(DESTDIR)$(vardocsdir) \
+	    $(DESTDIR)$(plugindocsdir)/var
+	ln -sr \
 	    $(DESTDIR)$(vardocsdir)/index.html \
-	    plugins-index.html
+	    $(DESTDIR)$(website_htmldir)/plugins-index.html
 	cp $(srcdir)/plugindocs.mk $(DESTDIR)$(plugindocsdir)/Makefile
 	$(SED) -e 's|$(abs_srcdir)|$(datadocdir)|' \
 	       -e 's|$(abs_builddir)|$(docdir)/plugindocs|' \
diff --git a/tools/Makefile.am b/tools/Makefile.am
index cad0caf4..e111ff10 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -115,11 +115,12 @@ install-data-hook:
 	cd $(DESTDIR)/$(setupdir);  \
 	    $(SED) -i '1s|python3[0-9\.]*|$(PYTHON)|' \
 	        $(notdir $(dist_setup_SCRIPTS))
-	cd $(DESTDIR)/$(bindir); \
-	    ln -sr $(DESTDIR)/$(setupdir)/lirc-setup
-	rm -rf $(DESTDIR)/$(setupdir)/configs
-	cd $(DESTDIR)/$(setupdir); \
-	    ln -sr $(DESTDIR)/$(pkgdatadir)/configs
+	ln -sr \
+	    $(DESTDIR)/$(setupdir)/lirc-setup \
+	    $(DESTDIR)/$(bindir)/lirc-setup
+	ln -sr \
+	    $(DESTDIR)/$(pkgdatadir)/configs \
+	    $(DESTDIR)/$(setupdir)/configs
 uninstall-hook:
 	rm -f $(DESTDIR)/$(bindir)/lirc-setup \
--
2.54.0

From: Thomas U. <tho...@ma...> - 2026-05-27 18:46:32

On Wed, 27 May 2026, Paul Fox wrote:
> >  	ln -sr $(DESTDIR)$(vardocsdir) $(DESTDIR)$(plugindocsdir)/var
> >  	ln -sr $(DESTDIR)$(vardocsdir)/index.html \
> >  	    $(DESTDIR)$(website_htmldir)/plugins-index.html
> >
> > BTW, the non-POSIX option -r is a GNU extension, and I don't know if
> > support for stripped-down Linux environments with only BusyBox for
> > instance is something of concern.
>
> You made me curious, so I checked.  busybox has had -r since at least
> 2017.  Of course, busybox ls can be built with no sortable ls capabilities
> at all, but I suspect systems built that way aren't running python-driven
> install scripts.
>
> paul
> =----------------------
> paul fox, pg...@fo... (arlington, ma, where it's 84.8 degrees)
>
Dear Paul,
the command in question is 'ln', not 'ls'.  AFAICS there is no option -r
for ln, please see:
# ln --help
BusyBox v1.36.1 multi-call binary.
Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR
Create a link LINK or DIR/TARGET to the specified TARGET(s)
 	-s	Make symlinks instead of hardlinks
 	-f	Remove existing destinations
 	-n	Don't dereference symlinks - treat like normal file
 	-b	Make a backup of the target (if exists) before link operation
 	-S SUF	Use suffix instead of ~ when making backup files
 	-T	Treat LINK as a file, not DIR
 	-v	Verbose
Best regards,
Thomas Uhle

From: Paul F. <pg...@fo...> - 2026-05-27 18:35:35

thomas wrote:
 > the command in question is 'ln', not 'ls'.  AFAICS there is no option -r
 > for ln, please see:
oops!!  embarrassing!  time for new glasses.  or bigger fonts!!
sorry for the noise.
paul
=----------------------
paul fox, pg...@fo... (arlington, ma, where it's 85.3 degrees)

From: Paul F. <pg...@fo...> - 2026-05-27 18:08:06

 >  	ln -sr $(DESTDIR)$(vardocsdir) $(DESTDIR)$(plugindocsdir)/var
 >  	ln -sr $(DESTDIR)$(vardocsdir)/index.html \
 >  	    $(DESTDIR)$(website_htmldir)/plugins-index.html
 >
 > BTW, the non-POSIX option -r is a GNU extension, and I don't know if
 > support for stripped-down Linux environments with only BusyBox for
 > instance is something of concern.
You made me curious, so I checked.  busybox has had -r since at least
2017.  Of course, busybox ls can be built with no sortable ls capabilities
at all, but I suspect systems built that way aren't running python-driven
install scripts.
paul
=----------------------
paul fox, pg...@fo... (arlington, ma, where it's 84.8 degrees)

From: Thomas U. <tho...@ma...> - 2026-05-27 17:39:17

On Wed, 27 May 2026, Doron Behar wrote:
> [...]
>
> -	$(PYTHON) $(srcdir)/make_rel_symlink.py \
> -	    $(DESTDIR)$(vardocsdir) $(DESTDIR)$(plugindocsdir)/var
> -	$(PYTHON) $(srcdir)/make_rel_symlink.py \
> +	cd $(DESTDIR)$(plugindocsdir); ln -sr \
> +	    $(DESTDIR)$(vardocsdir) var
> +	cd $(DESTDIR)$(website_htmldir); ln -sr \
> 	    $(DESTDIR)$(vardocsdir)/index.html \
> -	    $(DESTDIR)$(website_htmldir)/plugins-index.html
> +	    plugins-index.html
Why do you use this combination of cd with ln instead of simply writing:
 	ln -sr $(DESTDIR)$(vardocsdir) $(DESTDIR)$(plugindocsdir)/var
 	ln -sr $(DESTDIR)$(vardocsdir)/index.html \
 	    $(DESTDIR)$(website_htmldir)/plugins-index.html
BTW, the non-POSIX option -r is a GNU extension, and I don't know if
support for stripped-down Linux environments with only BusyBox for
instance is something of concern.
> [...]
>
> -	$(PYTHON) $(srcdir)/make_rel_symlink.py \
> -	    $(DESTDIR)/$(setupdir)/lirc-setup \
> -	    $(DESTDIR)/$(bindir)/lirc-setup
> +	cd $(DESTDIR)/$(bindir); \
> +	    ln -sr \
> +	    	$(DESTDIR)/$(setupdir)/lirc-setup
> 	rm -rf $(DESTDIR)/$(setupdir)/configs
> -	$(PYTHON) $(srcdir)/make_rel_symlink.py \
> -	    $(DESTDIR)/$(pkgdatadir)/configs \
> -	        $(DESTDIR)/$(setupdir)/configs
> +	cd $(DESTDIR)/$(setupdir); \
> +	    ln -sr $(DESTDIR)/$(pkgdatadir)/configs
Same here, the following seems to be more simple:
 	ln -sr $(DESTDIR)/$(setupdir)/lirc-setup $(DESTDIR)/$(bindir)
 	ln -sr $(DESTDIR)/$(pkgdatadir)/configs $(DESTDIR)/$(setupdir)
Best regards,
Thomas Uhle

From: Thomas U. <tho...@ma...> - 2026-05-27 17:04:51

On Wed, 27 May 2026, Doron Behar wrote:
> [...]
>
> -AM_PATH_PYTHON([3.7],,)
> -PKG_CHECK_MODULES([PYTHON],[python-${PYTHON_VERSION}m],,[true])
> -test -z "$PYTHON_CFLAGS" && \
> -    PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],,[true])
> -test -n "$PYTHON_CFLAGS" || \
> -    AC_MSG_WARN([No python package found (missing devel package?)])
> +# Try the 'm' (malloc/abiflags) version first, fallback to standard python3
> +PKG_CHECK_MODULES([PYTHON], [python3m >= 3.7], [pkg_cv_python_name="python3m"], [
> +    PKG_CHECK_MODULES([PYTHON], [python3 >= 3.7], [pkg_cv_python_name="python3"], [
> +        AC_MSG_WARN([No python package found >= 3.1 (missing devel package?)])
The problem in hard-coding minimum required version numbers several times
is that in the end there might be a mismatch like this here: 3.7 != 3.1.
Why don't you write:
m4_define([PYTHON_MIN_VERSION], [3.7])
# Try the 'm' (malloc/abiflags) version first, fallback to standard python3.
PKG_CHECK_MODULES([PYTHON], [python3m >= ]PYTHON_MIN_VERSION, [pkg_cv_python_name="python3m"], [
     PKG_CHECK_MODULES([PYTHON], [python3 >= ]PYTHON_MIN_VERSION, [pkg_cv_python_name="python3"], [
         AC_MSG_WARN([No python package found with version ]PYTHON_MIN_VERSION[ or newer (missing devel package?)])
Best regards,
Thomas Uhle

From: <dor...@gm...> - 2026-05-27 12:31:21

From: Doron Behar <dor...@gm...>
---
 configure.ac | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index 5165ddba..3bbc09cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -133,11 +133,9 @@ test -d "/var/lock/lockdev" || lockdir_default="/var/lock"
 enable_uinput_default="no"
 test -e "/dev/uinput" && enable_uinput_default="yes"
-version_nodots=$( $PYTHON << EOF
-v = "$VERSION".split("rc").pop(0).split("-").pop(0).split(".")
-print(int(v.pop(0)) * 10000 + int(v.pop(0)) * 100 + int(v.pop(0)))
-EOF
-)
+version_clean="${VERSION%%rc*}"
+version_clean="${version_clean%%-*}"
+version_nodots=$(echo "$version_clean" | awk -F. '{print ($1 * 10000) + ($2 * 100) + $3}')
 AC_DEFINE_UNQUOTED(VERSION_NODOTS, [$version_nodots])
 AC_MSG_CHECKING([for linux kernel])
--
2.54.0

From: <dor...@gm...> - 2026-05-27 12:31:21

From: Doron Behar <dor...@gm...>
---
 configure.ac | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3bbc09cf..fe169a9a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -283,11 +283,9 @@ else
 fi
 AC_MSG_CHECKING(for devinput)
-AC_CHECK_FILE([/dev/input],[
+AC_CHECK_HEADERS([linux/input.h], [
   have_devinput="yes"
-  AC_MSG_RESULT(yes)
-],[
-  AC_MSG_RESULT(no)
+], [
   have_devinput="no"
 ])
--
2.54.0

From: <dor...@gm...> - 2026-05-27 12:31:21

From: Doron Behar <dor...@gm...>
---
 doc/Makefile.am           | 10 ++++----
 doc/make_rel_symlink.py   | 44 ---------------------------------
 tools/Makefile.am         | 13 +++++-----
 tools/make_rel_symlink.py | 52 ---------------------------------------
 4 files changed, 11 insertions(+), 108 deletions(-)
 delete mode 100644 doc/make_rel_symlink.py
 delete mode 100644 tools/make_rel_symlink.py
diff --git a/doc/Makefile.am b/doc/Makefile.am
index f376c1a5..99e7d6e8 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -6,7 +6,7 @@ CLEANFILES              = man/* html/* man-html/* driver-toc.xsl \
                           doxygen*warning* ext-driver-toc.xsl
 EXTRA_DIST              = Doxyfile manpage.xsl make-driver-toc.sh \
-                          make_rel_symlink.py index.html plugindocs.mk \
+                          index.html plugindocs.mk \
                           fix-urls.sh doxypypy.py py_filter
 if DEVEL
@@ -100,11 +100,11 @@ endif
 install-data-hook: install-apidocs
 	cd $(DESTDIR)$(websitedir)/api-docs; ln -sf html/index.html .
 	$(SED) -i '/class="footer"/,/p>/d' $(DESTDIR)$(plugindocsdir)/page.xsl
-	$(PYTHON) $(srcdir)/make_rel_symlink.py \
-	    $(DESTDIR)$(vardocsdir) $(DESTDIR)$(plugindocsdir)/var
-	$(PYTHON) $(srcdir)/make_rel_symlink.py \
+	cd $(DESTDIR)$(plugindocsdir); ln -sr \
+	    $(DESTDIR)$(vardocsdir) var
+	cd $(DESTDIR)$(website_htmldir); ln -sr \
 	    $(DESTDIR)$(vardocsdir)/index.html \
-	    $(DESTDIR)$(website_htmldir)/plugins-index.html
+	    plugins-index.html
 	cp $(srcdir)/plugindocs.mk $(DESTDIR)$(plugindocsdir)/Makefile
 	$(SED) -e 's|$(abs_srcdir)|$(datadocdir)|' \
 	       -e 's|$(abs_builddir)|$(docdir)/plugindocs|' \
diff --git a/doc/make_rel_symlink.py b/doc/make_rel_symlink.py
deleted file mode 100644
index 9b8fab02..00000000
--- a/doc/make_rel_symlink.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import os
-import os.path
-import sys
-import pdb
-import shutil
-
-def relative_ln_s( from_, to_ ):
-    """
-
-    This is just so dirty & boring: create a relative symlink, making the
-    to_ path relative to from_. No errorchecks. Both arguments must be
-    files, a destination directory doesn't work (I think). An existing
-    file in to_ will be removed.
-
-    """
-    prefix = os.path.commonprefix( [ to_, from_ ] )
-    if prefix == '':
-        prefix = '/'
-    source = from_.split(prefix )[ 1 ]
-    dest = to_.split(prefix)[1]
-    level = len(dest.split('/')) - 1
-    path =  ('../' * level) + source
-    return path
-
-USAGE = 'Usage: make_rel_symlink [-p]  <sourcefile> <destfile>'
-
-just_print = False;
-if sys.argv[1] == "-p":
-    just_print = True;
-    sys.argv = sys.argv[ 1:]
-
-if len(sys.argv) != 3:
-    print(USAGE)
-    sys.exit(1)
-
-link_path = relative_ln_s(sys.argv[1], sys.argv[2])
-if just_print:
-    print(link_path)
-else:
-    os.chdir( os.path.dirname( sys.argv[2]))
-    target = os.path.basename( sys.argv[2])
-    if os.path.exists( target ):
-        os.unlink( target)
-    os.symlink( link_path, target)
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 96b17f87..dc0e4c71 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -79,7 +79,7 @@ endif
 dist_bin_SCRIPTS        += pronto2lirc irdb-get irtext2udp lirc-postinstall
 dist_sbin_SCRIPTS       = lircd-setup
-dist_noinst_SCRIPTS     = make_rel_symlink.py check_configs.py
+dist_noinst_SCRIPTS     = check_configs.py
 libpython               = $(libdir)/python$(PYTHON_VERSION)
@@ -115,13 +115,12 @@ install-data-hook:
 	cd $(DESTDIR)/$(setupdir);  \
 	    $(SED) -i '1s|python3[0-9\.]*|$(PYTHON)|' \
 	        $(notdir $(dist_setup_SCRIPTS))
-	$(PYTHON) $(srcdir)/make_rel_symlink.py \
-	    $(DESTDIR)/$(setupdir)/lirc-setup \
-	    $(DESTDIR)/$(bindir)/lirc-setup
+	cd $(DESTDIR)/$(bindir); \
+	    ln -sr \
+	    	$(DESTDIR)/$(setupdir)/lirc-setup
 	rm -rf $(DESTDIR)/$(setupdir)/configs
-	$(PYTHON) $(srcdir)/make_rel_symlink.py \
-	    $(DESTDIR)/$(pkgdatadir)/configs \
-	        $(DESTDIR)/$(setupdir)/configs
+	cd $(DESTDIR)/$(setupdir); \
+	    ln -sr $(DESTDIR)/$(pkgdatadir)/configs
 uninstall-hook:
 	rm -f $(DESTDIR)/$(bindir)/lirc-setup \
diff --git a/tools/make_rel_symlink.py b/tools/make_rel_symlink.py
deleted file mode 100644
index cb1e6b5f..00000000
--- a/tools/make_rel_symlink.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import os
-import os.path
-import sys
-import shutil
-
-def relative_ln_s( from_, to_ ):
-    """
-
-    This is just so dirty & boring: create a relative symlink, making the
-    to_ path relative to from_. No errorchecks. Both arguments must be
-    files, a destination directory doesn't work (I think). An existing
-    file in to_ will be removed.
-
-    """
-    prefix = os.path.commonprefix( [ to_, from_ ] )
-    if prefix == '':
-        prefix = '/'
-    source = from_.split( prefix )[ 1 ]
-    dest   = to_.split( prefix )[ 1 ]
-    level = len( dest.split( '/' ) ) - 1
-    path =  ( '../' * level ) + source
-    return path
-
-USAGE = 'Usage: make_rel_symlink [-p]  <sourcefile> <destfile>'
-
-just_print = False;
-if sys.argv[1] == "-p":
-    just_print = True;
-    sys.argv = sys.argv[ 1:]
-
-if len( sys.argv ) != 3:
-    print(USAGE)
-    sys.exit( 1 )
-
-if  os.path.isdir(  sys.argv[2] ):
-    print("Removing link target dir:" +  sys.argv[2])
-    if os.path.islink(sys.argv[2]):
-        os.unlink(sys.argv[2])
-    else:
-        shutil.rmtree(sys.argv[2])
-
-link_path = relative_ln_s( sys.argv[1], sys.argv[2] )
-if just_print:
-    print(link_path)
-else:
-    os.chdir( os.path.dirname( sys.argv[2]))
-    target = os.path.basename( sys.argv[2])
-    if os.path.exists( target ):
-        os.unlink( target)
-    os.symlink( link_path, target)
-
-
--
2.54.0

From: <dor...@gm...> - 2026-05-27 12:31:02

From: Doron Behar <dor...@gm...>
Instead of PKGCONFIG.
---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 59dab948..5165ddba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,8 +28,8 @@ if test x$MODINFO = xno; then
   MODINFO="false"
 fi
 AC_SUBST(MODINFO)
-AC_CHECK_PROG([PKGCONFIG],[pkg-config],[yes],[no])
-if test x$PKGCONFIG = xno; then
+AC_CHECK_PROG([PKG_CONFIG],[pkg-config],[yes],[no])
+if test x$PKG_CONFIG = xno; then
   AC_MSG_ERROR([Required program pkg-config is missing or not in \$PATH])
 fi
 AC_CHECK_PROG([XSLTPROC],[xsltproc],[yes],[no])
--
2.54.0

From: <dor...@gm...> - 2026-05-27 12:31:02

From: Doron Behar <dor...@gm...>
Hello,
I'd like to suggest a few improvements for lirc to handle cross
compilation better. The attached patches were tested with Nixpkgs, and
seems to work for us (with a few changes to the Nix expression not
published here).
Please consider merging at least some of them - many of them can be
merged individually. Here's a summary
Doron Behar (6):
  lirc-make-devinput: avoid using python interpreter
  configure.ac: use standard PKG_CONFIG variable
  configure.ac: device VERSION_NODOTS without Python
  configure.ac: Check linux/input.h header instead of /dev/input
  configure.ac: query for a Python only with PKG_CHECK_MODULES
  Ditch Python dependent make_rel_symlink with ln -sr
 Makefile.am               |  3 +--
 configure.ac              | 42 ++++++++++++++++++-------------
 doc/Makefile.am           | 10 ++++----
 doc/make_rel_symlink.py   | 44 ---------------------------------
 tools/Makefile.am         | 13 +++++-----
 tools/lirc-make-devinput  |  5 +---
 tools/make_rel_symlink.py | 52 ---------------------------------------
 7 files changed, 38 insertions(+), 131 deletions(-)
 delete mode 100644 doc/make_rel_symlink.py
 delete mode 100644 tools/make_rel_symlink.py
--
2.54.0

From: <dor...@gm...> - 2026-05-27 12:31:01

From: Doron Behar <dor...@gm...>
---
 Makefile.am              | 3 +--
 tools/lirc-make-devinput | 5 +----
 2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 1b089d0b..c5cd4df2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -214,8 +214,7 @@ devinput.lircd.conf:
 	echo "# Rename to devinput.lircd.dist if not using devinput driver" > $@
 	echo "# Re-generate for current kernel using lirc-make-devinput" >> $@
 	echo '#' >> $@
-	PYTHON=$(PYTHON) \
-	    $(srcdir)/tools/lirc-make-devinput $(DEVINPUT_HEADER) >> $@
+	$(srcdir)/tools/lirc-make-devinput $(DEVINPUT_HEADER) >> $@
 .phony:
diff --git a/tools/lirc-make-devinput b/tools/lirc-make-devinput
index c37b5e1a..026fa706 100755
--- a/tools/lirc-make-devinput
+++ b/tools/lirc-make-devinput
@@ -12,13 +12,10 @@ used when building lirc.
 input.h path defaults to /usr/include/linux/input.h, often in
 the kernel-headers package.
-
-Script uses the python interpreter defined by the PYTHON
-environment variable, falling back to 'python'
 EOF
 }
-here=$(dirname $(${PYTHON:-'python'} -c "import os; print(os.path.realpath(\"$0\"))"))
+here=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
 # Use gnu-sed if available
 if which gsed &>/dev/null; then SED=gsed; else SED=sed; fi
--
2.54.0

From: <dor...@gm...> - 2026-05-27 12:31:01

From: Doron Behar <dor...@gm...>
Avoid using AM_PATH_PYTHON as it does not support cross compilation
---
 configure.ac | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index fe169a9a..9ff116c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,12 +45,24 @@ AC_CHECK_PROG([DOXYGEN],[doxygen],[yes],[no])
 AM_CONDITIONAL(HAVE_DOXYGEN, test x$DOXYGEN = xyes)
 LT_INIT([disable-static])
-AM_PATH_PYTHON([3.7],,)
-PKG_CHECK_MODULES([PYTHON],[python-${PYTHON_VERSION}m],,[true])
-test -z "$PYTHON_CFLAGS" && \
-    PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],,[true])
-test -n "$PYTHON_CFLAGS" || \
-    AC_MSG_WARN([No python package found (missing devel package?)])
+# Try the 'm' (malloc/abiflags) version first, fallback to standard python3
+PKG_CHECK_MODULES([PYTHON], [python3m >= 3.7], [pkg_cv_python_name="python3m"], [
+    PKG_CHECK_MODULES([PYTHON], [python3 >= 3.7], [pkg_cv_python_name="python3"], [
+        AC_MSG_WARN([No python package found >= 3.1 (missing devel package?)])
+    ])
+])
+AS_IF([test -n "$PYTHON_CFLAGS"], [
+    PYTHON=$($PKG_CONFIG --variable=executable "$pkg_cv_python_name")
+    PYTHON_VERSION=$($PKG_CONFIG --modversion "$pkg_cv_python_name" | awk -F. '{print $1"."$2}')
+    python_version_nodots=$(echo "$PYTHON_VERSION" | awk -F. '{print ($1 * 10) + $2}')
+], [
+    # This block is technically unreachable now due to AC_MSG_ERROR above, but
+    # we keep it safe and explicit for sanity.
+    AC_MSG_ERROR([Unexpected error: Python CFLAGS are empty.])
+])
+# Make PYTHON variables available in Makefile.am
+AC_SUBST([PYTHON])
+AC_SUBST([PYTHON_VERSION])
 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
--
2.54.0

From: Matthew W. <mw...@wt...> - 2025-09-15 21:23:13

i have been using the USB IR Toy from Dangerous Prototypes for years
with my Raspberry Pi systems to control all of my entertainment devices
(TV, Sound Bar, DVR, Apple TV, etc).
back when i was experimenting a lot, i used to have to re-update the
firmware more frequently than i expected, but the most recent load had
lasted me over 2 years; until this week.
i always used the fw_update(.exe) command under Windows because that was
the only examples i could find online.  works fine.  i even customised
my firmware binary files to include custom a "Serial Number" for each of
my devices, so i could differentiate them in udev rules on the Pi.
now, this week, i was experimenting again and messed up the Toy and must
now re-update the firmware again to get it to function.  i wonder about
the possibility of doing so from the Pi to avoid dragging the old
Windows laptop out again, and dragging the Toy out from the
entertainment center to work on the Toy (jumping PGC/PGD).  the Toy
"firmware update" page mentions being able to use a serial connection to
activate the bootloader.  Linux has the "setserial" command that ought
to function like the "terminal" command on Windows.
has anyone successfully done a firmware update using UNIX/Linux alone?
even assuming i can put the Toy in bootloader mode, does anyone know
what to use under Linux to replace the Windows fw_update
command/executable functionality?  just use "cat" to dump the contents
of the binary file into the serial stream after sending "$" to enter
bootloader mode?
Pi:  Raspberry Pi 4 Model B Rev 1.1 with 2 gig of memory
OS:  Debian GNU/Linux 12 (bookworm)
Toy: http://dangerousprototypes.com/docs/USB_IR_Toy_firmware_update

125 messages has been excluded from this view by a project administrator.

Cerberus Logo

Read the original on sourceforge.net ↗