# [SOLVED] bluez-utils-2.25-r1 - błąd kompilacji...

## radziel

Nie tak dawno próbowałem uruchomić słuchawkę bluetooth. Wymagało to aktualizacji pakietów bluez-* do wersji > 3.19. Niestety nie udało mi się to. Chciałem wrócić do 2.25, ale nie chce mi się już skompilować. emerge dla pakietu bluez-utils-2.25-r1 przerywa działanie z takim komunikatem:

```
hciconfig.c: In function ‘get_link_key’:

hciconfig.c:732: error: ‘PATH_MAX’ undeclared (first use in this function)

hciconfig.c:732: error: (Each undeclared identifier is reported only once

hciconfig.c:732: error: for each function it appears in.)

make[2]: *** [hciconfig.o] Error 1

make[2]: *** Waiting for unfinished jobs....

hciattach.c: In function ‘bcsp_tshy_sig_alarm’:

hciattach.c:327: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result

hciattach.c: In function ‘bcsp_tconf_sig_alarm’:

hciattach.c:342: ignoring return value of ‘write’, declared with attribute warn_unused_result

hciattach.c: In function ‘bcsp’:

hciattach.c:418: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result

hciattach.c:462: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result

hciattach.c:464: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result

hciattach.c: In function ‘main’:

hciattach.c:972: error: ‘PATH_MAX’ undeclared (first use in this function)

hciattach.c:972: error: (Each undeclared identifier is reported only once

hciattach.c:972: error: for each function it appears in.)

make[2]: *** [hciattach.o] Error 1

make[2]: Leaving directory `/var/tmp/portage/net-wireless/bluez-utils-2.25-r1/work/bluez-utils-2.25/tools'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/var/tmp/portage/net-wireless/bluez-utils-2.25-r1/work/bluez-utils-2.25'

make: *** [a sll] Error 2

```

Używam gcc-4.3.1 i glibc 2.8. Cała reszta systemu działa bez problemu. Zainstalowałem nawet gcc-4.1.2, ale przy kompilacji nadal pojawia się ten sam błąd.

Niestety z każdą wersją bluez-utils/libs mam jakieś problemy :-/ Potrzebuję tych pakietów do obsługi myszy bluetooth. Łączę się za pośrednictwem hidd, a ten jest dostępny dzięki fladze old-daemons, której nowe wersje już nie posiadają. A  z wykorzystaniem pythona i dbusa udało mi się połączyć mysz tylko raz i to po dłuuuuuuugich bojach, więc chyba lepiej wrócić do hidda.

Jakieś sugestie??

----------

## unK

Dopisz w każdym pliku który wywala kompilację w taki sposób (PATH_MAX undeclared)

```
#include <limits.h>
```

powinno ruszyć.

----------

## radziel

@unK: dzięki, pomogło

Przygotowałem także dwie łatki:

bluez-libs-2.25-limitsh.patch dla bluez-libs-2.25:

```
--- bluez-libs-2.25/src/sdp.c   2006-01-18 00:14:59.000000000 +0000

+++ bluez-libs-2.25/src/sdp.c   2008-09-26 15:30:54.000000000 +0000

@@ -38,6 +38,7 @@

 #include <sys/socket.h>

 #include <sys/time.h>

 #include <sys/types.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/hci.h>
```

bluez-utils-2.25-limitsh.patch dla bluez-utils-2.25

```
--- bluez-utils-2.25/tools/hciattach.c   2006-01-08 02:03:06.000000000 +0000

+++ bluez-utils-2.25/tools/hciattach.c   2008-09-26 12:09:55.000000000 +0000

@@ -40,6 +40,7 @@

 #include <sys/time.h>

 #include <sys/ioctl.h>

 #include <sys/socket.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/hci.h>

--- bluez-utils-2.25/tools/hciconfig.c   2006-01-08 02:03:06.000000000 +0000

+++ bluez-utils-2.25/tools/hciconfig.c   2008-09-26 12:08:15.000000000 +0000

@@ -36,6 +36,7 @@

 #include <getopt.h>

 #include <sys/ioctl.h>

 #include <sys/socket.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/hci.h>

--- bluez-utils-2.25/sdpd/request.c   2006-01-08 02:03:05.000000000 +0000

+++ bluez-utils-2.25/sdpd/request.c   2008-09-26 15:37:12.000000000 +0000

@@ -33,6 +33,7 @@

 #include <malloc.h>

 #include <syslog.h>

 #include <sys/socket.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/sdp.h>

--- bluez-utils-2.25/dund/sdp.c   2006-01-18 00:15:00.000000000 +0000

+++ bluez-utils-2.25/dund/sdp.c   2008-09-26 20:56:53.000000000 +0000

@@ -34,6 +34,7 @@

 #include <syslog.h>

 #include <sys/types.h>

 #include <sys/socket.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/sdp.h>

--- bluez-utils-2.25/hidd/sdp.c   2006-01-08 02:03:05.000000000 +0000

+++ bluez-utils-2.25/hidd/sdp.c   2008-09-26 21:00:20.000000000 +0000

@@ -34,6 +34,7 @@

 #include <string.h>

 #include <sys/stat.h>

 #include <sys/socket.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/l2cap.h>

--- bluez-utils-2.25/pand/sdp.c   2006-01-08 02:03:05.000000000 +0000

+++ bluez-utils-2.25/pand/sdp.c   2008-09-26 21:02:12.000000000 +0000

@@ -34,6 +34,7 @@

 #include <syslog.h>

 #include <sys/types.h>

 #include <sys/socket.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/sdp.h>

--- bluez-utils-2.25/cups/sdp.c   2006-01-08 02:03:05.000000000 +0000

+++ bluez-utils-2.25/cups/sdp.c   2008-09-26 21:04:50.000000000 +0000

@@ -30,6 +30,7 @@

 #include <unistd.h>

 #include <signal.h>

 #include <sys/socket.h>

+#include <limits.h>

 

 #include <bluetooth/bluetooth.h>

 #include <bluetooth/sdp.h>

```

Instalacja? Kopiujemy katalogi bluez-utils i bluez-libs do naszego lokalnego overlay'a. W każdym z nich w folderze files zapisujemy odpowiednia łatkę. 

Edytujemy bluez-libs-2.25.ebuild i przed "src_install() {" dodajemy kod;

```
src_unpack() {

        unpack ${A}

        epatch ${FILESDIR}/bluez-libs-2.25-limitsh.patch

}

```

Edytujemy  bluez-utils-2.25.ebuild, i po "epatch ${FILESDIR}/bluez-utils-2.25-dinovo-mdl.patch", dodajemy

```
epatch ${FILESDIR}/bluez-utils-2.25-limitsh.patch
```

Na koniec ebuild digest na każdym z nich i koniec  :Smile: 

----------

