Message ID | 1480263400-29605-2-git-send-email-romain.naour@gmail.com |
---|---|
State | Accepted |
Headers | show |
Hi All, Le 27/11/2016 à 17:16, Romain Naour a écrit : > Google-breakpad moved to a new git repository last year and the old svn > repository has been deleted. So, the Buildroot archive mirror is used. > > svn: E160013: Unable to connect to a repository at URL 'http://google-breakpad.googlecode.com/svn/trunk' > svn: E160013: '/svn/trunk' path not found > --2016-11-27 10:42:34-- http://sources.buildroot.net/google-breakpad-1373.tar.gz > > Swith to the git repository using the git hash corresponding to the > 1373 svn revision. But there is an issue with the third parties... > Some of them are not bundled with Google-breakpad or as git submodule. > Even worst, the google-breakpad source code use #include > "third_party/lss" directly, so we can't provide missing third parties > with an external package. > > That's why the linux-syscall-support package was added to Buildroot, > it provide the missing linux_syscall_support.h file which is must be > copied to src/third_party/lss/ in the Google-breakpad sources. Since we want a specific version of linux_syscall_support.h which is required by Google-breakpad, linux_syscall_support.h may be added by a patch instead of using an external package (linux-syscall-support) ? The problem of using a patch is that we have to update it for each Google-breakpad version bump. Any suggestion is welcome. Best regards, Romain > > Signed-off-by: Romain Naour <romain.naour@gmail.com> > Cc: Pascal Huerst <pascal.huerst@gmail.com> > Cc: Frank Hunleth <fhunleth@troodon-software.com> > --- > package/google-breakpad/Config.in | 3 ++- > package/google-breakpad/google-breakpad.hash | 2 ++ > package/google-breakpad/google-breakpad.mk | 25 +++++++++++++++++++++---- > 3 files changed, 25 insertions(+), 5 deletions(-) > create mode 100644 package/google-breakpad/google-breakpad.hash > > diff --git a/package/google-breakpad/Config.in b/package/google-breakpad/Config.in > index c800974..5c3f2e8 100644 > --- a/package/google-breakpad/Config.in > +++ b/package/google-breakpad/Config.in > @@ -10,6 +10,7 @@ config BR2_PACKAGE_GOOGLE_BREAKPAD > depends on BR2_TOOLCHAIN_HAS_THREADS > depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) > depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS > + select BR2_PACKAGE_LINUX_SYSCALL_SUPPORT > help > Google-Breakpad is a library and tool suite that allows you > to distribute an application to users with compiler-provided > @@ -29,7 +30,7 @@ config BR2_PACKAGE_GOOGLE_BREAKPAD > needed to extract the debugging symbols from target > binaries. > > - http://code.google.com/p/google-breakpad/ > + https://chromium.googlesource.com/breakpad/breakpad > > comment "google-breakpad requires a glibc or uClibc toolchain w/ wchar, thread, C++ enabled" > depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS > diff --git a/package/google-breakpad/google-breakpad.hash b/package/google-breakpad/google-breakpad.hash > new file mode 100644 > index 0000000..b66f43d > --- /dev/null > +++ b/package/google-breakpad/google-breakpad.hash > @@ -0,0 +1,2 @@ > +# Locally calculated > +sha256 25466aac60b83b231ce03d1540b1f8528c02ddaa76b08aed779084b145f07516 google-breakpad-7883a8308274cc37847e4ff3b995a327588fe034.tar.gz > diff --git a/package/google-breakpad/google-breakpad.mk b/package/google-breakpad/google-breakpad.mk > index 7a88c76..0805c25 100644 > --- a/package/google-breakpad/google-breakpad.mk > +++ b/package/google-breakpad/google-breakpad.mk > @@ -4,16 +4,33 @@ > # > ################################################################################ > > -GOOGLE_BREAKPAD_VERSION = 1373 > -GOOGLE_BREAKPAD_SITE = http://google-breakpad.googlecode.com/svn/trunk > -GOOGLE_BREAKPAD_SITE_METHOD = svn > +GOOGLE_BREAKPAD_VERSION = 7883a8308274cc37847e4ff3b995a327588fe034 > +GOOGLE_BREAKPAD_SITE = https://chromium.googlesource.com/breakpad/breakpad > +GOOGLE_BREAKPAD_SITE_METHOD = git > GOOGLE_BREAKPAD_CONF_OPTS = --disable-processor --disable-tools > # Only a static library is installed > GOOGLE_BREAKPAD_INSTALL_TARGET = NO > GOOGLE_BREAKPAD_INSTALL_STAGING = YES > GOOGLE_BREAKPAD_LICENSE = BSD-3c > GOOGLE_BREAKPAD_LICENSE_FILES = LICENSE > -GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad > +GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad linux-syscall-support > + > +HOST_GOOGLE_BREAKPAD_DEPENDENCIES = host-linux-syscall-support > + > +# Avoid using depot-tools to download this file. > +define HOST_GOOGLE_BREAKPAD_LSS > + $(INSTALL) -D -m 0644 \ > + $(HOST_DIR)/usr/include/linux_syscall_support.h \ > + $(@D)/src/third_party/lss/linux_syscall_support.h > +endef > +HOST_GOOGLE_BREAKPAD_POST_EXTRACT_HOOKS += HOST_GOOGLE_BREAKPAD_LSS > + > +define GOOGLE_BREAKPAD_LSS > + $(INSTALL) -D -m 0644 \ > + $(STAGING_DIR)/usr/include/linux_syscall_support.h \ > + $(@D)/src/third_party/lss/linux_syscall_support.h > +endef > +GOOGLE_BREAKPAD_POST_EXTRACT_HOOKS += GOOGLE_BREAKPAD_LSS > > define GOOGLE_BREAKPAD_EXTRACT_SYMBOLS > $(EXTRA_ENV) package/google-breakpad/gen-syms.sh $(STAGING_DIR) \ >
Hello, On Sun, 27 Nov 2016 17:16:39 +0100, Romain Naour wrote: > Google-breakpad moved to a new git repository last year and the old svn > repository has been deleted. So, the Buildroot archive mirror is used. > > svn: E160013: Unable to connect to a repository at URL 'http://google-breakpad.googlecode.com/svn/trunk' > svn: E160013: '/svn/trunk' path not found > --2016-11-27 10:42:34-- http://sources.buildroot.net/google-breakpad-1373.tar.gz > > Swith to the git repository using the git hash corresponding to the > 1373 svn revision. But there is an issue with the third parties... > Some of them are not bundled with Google-breakpad or as git submodule. > Even worst, the google-breakpad source code use #include > "third_party/lss" directly, so we can't provide missing third parties > with an external package. > > That's why the linux-syscall-support package was added to Buildroot, > it provide the missing linux_syscall_support.h file which is must be > copied to src/third_party/lss/ in the Google-breakpad sources. > > Signed-off-by: Romain Naour <romain.naour@gmail.com> > Cc: Pascal Huerst <pascal.huerst@gmail.com> > Cc: Frank Hunleth <fhunleth@troodon-software.com> > --- > package/google-breakpad/Config.in | 3 ++- > package/google-breakpad/google-breakpad.hash | 2 ++ > package/google-breakpad/google-breakpad.mk | 25 +++++++++++++++++++++---- > 3 files changed, 25 insertions(+), 5 deletions(-) > create mode 100644 package/google-breakpad/google-breakpad.hash Applied to master, thanks. Thomas
Am Sun, 27 Nov 2016 17:16:39 +0100 schrieb Romain Naour: > +GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad linux-syscall- support > + > +HOST_GOOGLE_BREAKPAD_DEPENDENCIES = host-linux-syscall-support > + > +# Avoid using depot-tools to download this file. > +define HOST_GOOGLE_BREAKPAD_LSS > + $(INSTALL) -D -m 0644 \ > + $(HOST_DIR)/usr/include/linux_syscall_support.h \ > + $(@D)/src/third_party/lss/linux_syscall_support.h > +endef > +HOST_GOOGLE_BREAKPAD_POST_EXTRACT_HOOKS += HOST_GOOGLE_BREAKPAD_LSS Hi, I do not know whether I found a bug or not while currently testing an allyesconfig with "make legal-info" only. In this case the package linux-syscall-support was not installed to staging, therefore linux_syscall_support.h cannot be installed by _POST_EXTRACT_HOOKS breaking the google-breakpad-legal-info target: /usr/bin/install: cannot stat '/home/bernd/buildroot/buildroot/output/ host/usr/i586-buildroot-linux-uclibc/sysroot/usr/include/ linux_syscall_support.h': No such file or directory Is the legal-info target meant to be used that way, this means without building the package first, or do the packages have to be built before? In this case the problem would not exist. Regards, Bernd
Hi Bernd, Le 28/05/2017 à 20:14, Bernd Kuhls a écrit : > Am Sun, 27 Nov 2016 17:16:39 +0100 schrieb Romain Naour: > >> +GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad linux-syscall- > support >> + >> +HOST_GOOGLE_BREAKPAD_DEPENDENCIES = host-linux-syscall-support >> + >> +# Avoid using depot-tools to download this file. >> +define HOST_GOOGLE_BREAKPAD_LSS >> + $(INSTALL) -D -m 0644 \ >> + $(HOST_DIR)/usr/include/linux_syscall_support.h \ >> + $(@D)/src/third_party/lss/linux_syscall_support.h >> +endef >> +HOST_GOOGLE_BREAKPAD_POST_EXTRACT_HOOKS += HOST_GOOGLE_BREAKPAD_LSS > > Hi, > > I do not know whether I found a bug or not while currently testing an > allyesconfig with "make legal-info" only. > > In this case the package linux-syscall-support was not installed to > staging, therefore linux_syscall_support.h cannot be installed by > _POST_EXTRACT_HOOKS breaking the google-breakpad-legal-info target: > > /usr/bin/install: cannot stat '/home/bernd/buildroot/buildroot/output/ > host/usr/i586-buildroot-linux-uclibc/sysroot/usr/include/ > linux_syscall_support.h': No such file or directory > > Is the legal-info target meant to be used that way, this means without > building the package first, or do the packages have to be built before? > In this case the problem would not exist. Thanks for the report, I reproduced the bug here. You're right, you can generate a defconfig and then extract legal-info without building at all. It seems I used the wrong hook to copy the linux_syscall_support.h file. What do you think about PRE_CONFIGURE instead ? Best regards, Romain > > Regards, Bernd > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot >
Hello, On Sun, 28 May 2017 20:14:36 +0200, Bernd Kuhls wrote: > I do not know whether I found a bug or not while currently testing an > allyesconfig with "make legal-info" only. > > In this case the package linux-syscall-support was not installed to > staging, therefore linux_syscall_support.h cannot be installed by > _POST_EXTRACT_HOOKS breaking the google-breakpad-legal-info target: > > /usr/bin/install: cannot stat '/home/bernd/buildroot/buildroot/output/ > host/usr/i586-buildroot-linux-uclibc/sysroot/usr/include/ > linux_syscall_support.h': No such file or directory > > Is the legal-info target meant to be used that way, this means without > building the package first, or do the packages have to be built before? > In this case the problem would not exist. I confirm that we should be able to run "make legal-info" without doing a build first. So, something like: $ make foo_defconfig $ make legal-info is supposed to work. Thomas
diff --git a/package/google-breakpad/Config.in b/package/google-breakpad/Config.in index c800974..5c3f2e8 100644 --- a/package/google-breakpad/Config.in +++ b/package/google-breakpad/Config.in @@ -10,6 +10,7 @@ config BR2_PACKAGE_GOOGLE_BREAKPAD depends on BR2_TOOLCHAIN_HAS_THREADS depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS + select BR2_PACKAGE_LINUX_SYSCALL_SUPPORT help Google-Breakpad is a library and tool suite that allows you to distribute an application to users with compiler-provided @@ -29,7 +30,7 @@ config BR2_PACKAGE_GOOGLE_BREAKPAD needed to extract the debugging symbols from target binaries. - http://code.google.com/p/google-breakpad/ + https://chromium.googlesource.com/breakpad/breakpad comment "google-breakpad requires a glibc or uClibc toolchain w/ wchar, thread, C++ enabled" depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS diff --git a/package/google-breakpad/google-breakpad.hash b/package/google-breakpad/google-breakpad.hash new file mode 100644 index 0000000..b66f43d --- /dev/null +++ b/package/google-breakpad/google-breakpad.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 25466aac60b83b231ce03d1540b1f8528c02ddaa76b08aed779084b145f07516 google-breakpad-7883a8308274cc37847e4ff3b995a327588fe034.tar.gz diff --git a/package/google-breakpad/google-breakpad.mk b/package/google-breakpad/google-breakpad.mk index 7a88c76..0805c25 100644 --- a/package/google-breakpad/google-breakpad.mk +++ b/package/google-breakpad/google-breakpad.mk @@ -4,16 +4,33 @@ # ################################################################################ -GOOGLE_BREAKPAD_VERSION = 1373 -GOOGLE_BREAKPAD_SITE = http://google-breakpad.googlecode.com/svn/trunk -GOOGLE_BREAKPAD_SITE_METHOD = svn +GOOGLE_BREAKPAD_VERSION = 7883a8308274cc37847e4ff3b995a327588fe034 +GOOGLE_BREAKPAD_SITE = https://chromium.googlesource.com/breakpad/breakpad +GOOGLE_BREAKPAD_SITE_METHOD = git GOOGLE_BREAKPAD_CONF_OPTS = --disable-processor --disable-tools # Only a static library is installed GOOGLE_BREAKPAD_INSTALL_TARGET = NO GOOGLE_BREAKPAD_INSTALL_STAGING = YES GOOGLE_BREAKPAD_LICENSE = BSD-3c GOOGLE_BREAKPAD_LICENSE_FILES = LICENSE -GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad +GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad linux-syscall-support + +HOST_GOOGLE_BREAKPAD_DEPENDENCIES = host-linux-syscall-support + +# Avoid using depot-tools to download this file. +define HOST_GOOGLE_BREAKPAD_LSS + $(INSTALL) -D -m 0644 \ + $(HOST_DIR)/usr/include/linux_syscall_support.h \ + $(@D)/src/third_party/lss/linux_syscall_support.h +endef +HOST_GOOGLE_BREAKPAD_POST_EXTRACT_HOOKS += HOST_GOOGLE_BREAKPAD_LSS + +define GOOGLE_BREAKPAD_LSS + $(INSTALL) -D -m 0644 \ + $(STAGING_DIR)/usr/include/linux_syscall_support.h \ + $(@D)/src/third_party/lss/linux_syscall_support.h +endef +GOOGLE_BREAKPAD_POST_EXTRACT_HOOKS += GOOGLE_BREAKPAD_LSS define GOOGLE_BREAKPAD_EXTRACT_SYMBOLS $(EXTRA_ENV) package/google-breakpad/gen-syms.sh $(STAGING_DIR) \
Google-breakpad moved to a new git repository last year and the old svn repository has been deleted. So, the Buildroot archive mirror is used. svn: E160013: Unable to connect to a repository at URL 'http://google-breakpad.googlecode.com/svn/trunk' svn: E160013: '/svn/trunk' path not found --2016-11-27 10:42:34-- http://sources.buildroot.net/google-breakpad-1373.tar.gz Swith to the git repository using the git hash corresponding to the 1373 svn revision. But there is an issue with the third parties... Some of them are not bundled with Google-breakpad or as git submodule. Even worst, the google-breakpad source code use #include "third_party/lss" directly, so we can't provide missing third parties with an external package. That's why the linux-syscall-support package was added to Buildroot, it provide the missing linux_syscall_support.h file which is must be copied to src/third_party/lss/ in the Google-breakpad sources. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Pascal Huerst <pascal.huerst@gmail.com> Cc: Frank Hunleth <fhunleth@troodon-software.com> --- package/google-breakpad/Config.in | 3 ++- package/google-breakpad/google-breakpad.hash | 2 ++ package/google-breakpad/google-breakpad.mk | 25 +++++++++++++++++++++---- 3 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 package/google-breakpad/google-breakpad.hash