Patchwork [v3] sylpheed: Fix includedir

login
register
mail settings
Submitter Valentine Barshak
Date Oct. 7, 2012, 10:39 p.m.
Message ID <1349649599-12615-1-git-send-email-gvaxon@gmail.com>
Download mbox | patch
Permalink /patch/189869/
State Accepted
Commit 0e572092a920592bae08db58e5e701b53cabf46b
Headers show

Comments

Valentine Barshak - Oct. 7, 2012, 10:39 p.m.
The sylpheed headers are installed to $(DESTDIR)$(includedir),
while DESTDIR is $(TARGET_DIR) and includedir is set to
$(STAGING_DIR)/usr/include in the SYLPHEED_CONF_OPT.
Thus, the full staging directory path is created in the
target root filesystem, which is wrong.

The includedir was set to staging include because sylpheed
incorrectly adds includedir to its include path, and does
not cross-compile with the default includedir set to
/usr/include.

This removes includedir setting and also removes it from
include paths in Makefiles to prevent using host headers
from /usr/include. The same approach is used in the OE.

Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
---
 package/sylpheed/sylpheed.mk | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
Arnout Vandecappelle - Oct. 8, 2012, 7:32 a.m.
On 08/10/12 00:39, Valentine Barshak wrote:
> The sylpheed headers are installed to $(DESTDIR)$(includedir),
> while DESTDIR is $(TARGET_DIR) and includedir is set to
> $(STAGING_DIR)/usr/include in the SYLPHEED_CONF_OPT.
> Thus, the full staging directory path is created in the
> target root filesystem, which is wrong.
>
> The includedir was set to staging include because sylpheed
> incorrectly adds includedir to its include path, and does
> not cross-compile with the default includedir set to
> /usr/include.
>
> This removes includedir setting and also removes it from
> include paths in Makefiles to prevent using host headers
> from /usr/include. The same approach is used in the OE.
>
> Signed-off-by: Valentine Barshak<gvaxon@gmail.com>

Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

  (untested)


  Regards,
  Arnout
Thomas Petazzoni - Oct. 8, 2012, 9:01 a.m.
Dear Valentine Barshak,

On Mon,  8 Oct 2012 02:39:59 +0400, Valentine Barshak wrote:
> The sylpheed headers are installed to $(DESTDIR)$(includedir),
> while DESTDIR is $(TARGET_DIR) and includedir is set to
> $(STAGING_DIR)/usr/include in the SYLPHEED_CONF_OPT.
> Thus, the full staging directory path is created in the
> target root filesystem, which is wrong.
> 
> The includedir was set to staging include because sylpheed
> incorrectly adds includedir to its include path, and does
> not cross-compile with the default includedir set to
> /usr/include.
> 
> This removes includedir setting and also removes it from
> include paths in Makefiles to prevent using host headers
> from /usr/include. The same approach is used in the OE.
> 
> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>

If you have the time, it would be great to submit a patch to the
upstream project in order to fix this problem.

Thanks,

Thomas
Valentine Barshak - Oct. 8, 2012, 6:37 p.m.
On 10/08/2012 01:01 PM, Thomas Petazzoni wrote:
> Dear Valentine Barshak,
>
> On Mon,  8 Oct 2012 02:39:59 +0400, Valentine Barshak wrote:
>> The sylpheed headers are installed to $(DESTDIR)$(includedir),
>> while DESTDIR is $(TARGET_DIR) and includedir is set to
>> $(STAGING_DIR)/usr/include in the SYLPHEED_CONF_OPT.
>> Thus, the full staging directory path is created in the
>> target root filesystem, which is wrong.
>>
>> The includedir was set to staging include because sylpheed
>> incorrectly adds includedir to its include path, and does
>> not cross-compile with the default includedir set to
>> /usr/include.
>>
>> This removes includedir setting and also removes it from
>> include paths in Makefiles to prevent using host headers
>> from /usr/include. The same approach is used in the OE.
>>
>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>
> If you have the time, it would be great to submit a patch to the
> upstream project in order to fix this problem.

Done.

Thanks,
Val.

>
> Thanks,
>
> Thomas
>
Peter Korsgaard - Oct. 8, 2012, 7:40 p.m.
>>>>> "Valentine" == Valentine Barshak <gvaxon@gmail.com> writes:

 Valentine> The sylpheed headers are installed to $(DESTDIR)$(includedir),
 Valentine> while DESTDIR is $(TARGET_DIR) and includedir is set to
 Valentine> $(STAGING_DIR)/usr/include in the SYLPHEED_CONF_OPT.
 Valentine> Thus, the full staging directory path is created in the
 Valentine> target root filesystem, which is wrong.

Committed, thanks.
Valentine Barshak - Oct. 10, 2012, 12:58 p.m.
On 10/08/2012 01:01 PM, Thomas Petazzoni wrote:
> Dear Valentine Barshak,
>
> On Mon,  8 Oct 2012 02:39:59 +0400, Valentine Barshak wrote:
>> The sylpheed headers are installed to $(DESTDIR)$(includedir),
>> while DESTDIR is $(TARGET_DIR) and includedir is set to
>> $(STAGING_DIR)/usr/include in the SYLPHEED_CONF_OPT.
>> Thus, the full staging directory path is created in the
>> target root filesystem, which is wrong.
>>
>> The includedir was set to staging include because sylpheed
>> incorrectly adds includedir to its include path, and does
>> not cross-compile with the default includedir set to
>> /usr/include.
>>
>> This removes includedir setting and also removes it from
>> include paths in Makefiles to prevent using host headers
>> from /usr/include. The same approach is used in the OE.
>>
>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>
> If you have the time, it would be great to submit a patch to the
> upstream project in order to fix this problem.

Applied upstream:
http://www.sraoss.jp/pipermail/sylpheed/2012-October/005424.html

Thanks,
Val.

>
> Thanks,
>
> Thomas
>
Peter Korsgaard - Oct. 10, 2012, 2:42 p.m.
>>>>> "Valentine" == Valentine Barshak <gvaxon@gmail.com> writes:

 >> If you have the time, it would be great to submit a patch to the
 >> upstream project in order to fix this problem.

 Valentine> Applied upstream:
 Valentine> http://www.sraoss.jp/pipermail/sylpheed/2012-October/005424.html

Great, thanks!

Patch

diff --git a/package/sylpheed/sylpheed.mk b/package/sylpheed/sylpheed.mk
index 451c4de..32c0a82 100644
--- a/package/sylpheed/sylpheed.mk
+++ b/package/sylpheed/sylpheed.mk
@@ -9,11 +9,20 @@  SYLPHEED_VERSION = $(SYLPHEED_VERSION_MAJOR).$(SYLPHEED_VERSION_MINOR)
 SYLPHEED_SOURCE = sylpheed-$(SYLPHEED_VERSION).tar.bz2
 SYLPHEED_SITE = http://sylpheed.sraoss.jp/sylpheed/v$(SYLPHEED_VERSION_MAJOR)
 
-SYLPHEED_CONF_OPT = --disable-gtkspell \
-                    --includedir=$(STAGING_DIR)/usr/include
+SYLPHEED_CONF_OPT = --disable-gtkspell
 
 SYLPHEED_DEPENDENCIES = host-pkg-config libgtk2
 
+# Remove the -I$(includedir) from the Makefiles
+# because it refers to the host /usr/include.
+define SYLPHEED_PRECONFIGURE
+	for i in $$(find $(@D) -name "Makefile*"); do \
+		sed -i 's:-I$$(includedir)::g' $$i; \
+	done
+endef
+
+SYLPHEED_PRE_CONFIGURE_HOOKS += SYLPHEED_PRECONFIGURE
+
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 SYLPHEED_DEPENDENCIES += openssl
 SYLPHEED_CONF_OPT += --enable-ssl