Skip to contentSkip to conversation

18-May-2011 Consolidated Pull

PATCH In review Saul Wold 4 participants 35 messages May 18, 2011 – May 20, 2011

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

cover 18-May-2011 Consolidated Pull

This has a few core fixes to master for broken builds, utils.bbclass address the perl failure and qt4-tools-native address a qt4 failure.

Additional this has Darren's new create/send pull request along with fixes for 4.6 and libc overrides.

Thanks
Sau!

The following changes since commit 1eb0207a7ae8cbc31ecde313a020ed4f12f70dd8:

qt4: re-enable two 4.6.x patches in 4.7.3 (2011-05-18 14:32:28 +0100)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib.git sgw/stage
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stage

Bruce Ashfield (1):
linux-yocto: fix gcc 4.6.0 compilation failures

Darren Hart (14):
create-pull-request: alphabetize arguments
create-pull-request: whitespace cleanup
create-pull-request: use git request-pull and arbitrary remotes
create-pull-request: rewrite known private URLs to public URLs
create-pull-request: provide an RFC mode via -c argument
send-pull-request: whitespace cleanup
send-pull-request: remove local mta support
send-pull-request: fix greedy auto-cc regex
send-pull-request: don't send all patches to everyone even with -a
send-pull-request: verify git sendemail config
create-pull-request: add untested oe repository support
send-pull-request: streamline git-send-email usage *pull-request: add copyright, license, and descriptions
u-boot: update SRCREV to 2011.03

Dexuan Cui (1):
package-index.bb: add support for deb and rpm.

Jessica Zhang (2):
extract bitbake config setting into data_define, use more variables
replacing hardcoded values
Add adt repo checking

Koen Kooi (5):
diffutils: fix libc overrides
findutils: fix libc overrides
lsof: fix libc overrides
sysstat: fix libc overrides
tcp-wrappers: fix libc overrides

Otavio Salvador (2):
create-pull-request: do not check certificate
create-pull-request: add GitHub remote support

Saul Wold (4):
utils.bbclass: modify create_wrapper to correctly follow symlinks
mklibs-native: Update to 0.1.33
usbutils: Update to 0.91
qt4-tools-native: Fix the patch location

Xiaofeng Yan (1):
lsbsetup: Rename this file and add a link for lsb test

 meta/classes/package_deb.bbclass                   |    9 +
 meta/classes/package_ipk.bbclass                   |    9 +
 meta/classes/package_rpm.bbclass                   |    9 +
 meta/classes/utils.bbclass                         |    3 +-
 meta/recipes-bsp/uboot/u-boot_git.bb               |    8 +-
 .../{usbutils_0.86.bb => usbutils_0.91.bb}         |    2 +-
 meta/recipes-core/meta/package-index.bb            |    6 +-
 .../installer/adt-installer/adt_installer          |   15 +-
 .../installer/adt-installer/adt_installer.conf     |    2 +-
 .../adt-installer/scripts/adt_installer_internal   |    4 +-
 .../installer/adt-installer/scripts/data_define    |    1 -
 .../installer/adt-installer_1.0.bb                 |    4 +-
 .../mklibs/files/ac_init_fix.patch                 |    2 +
 .../mklibs/files/fix_STT_GNU_IFUNC.patch           |    3 +
 ...bs-native_0.1.31.bb => mklibs-native_0.1.33.bb} |    2 +-
 meta/recipes-extended/diffutils/diffutils_2.8.1.bb |    2 +-
 meta/recipes-extended/diffutils/diffutils_3.0.bb   |    2 +-
 meta/recipes-extended/findutils/findutils.inc      |    2 +-
 .../recipes-extended/findutils/findutils_4.2.31.bb |    2 +-
 meta/recipes-extended/lsb/lsbsetup_0.9.bb          |   25 --
 meta/recipes-extended/lsb/lsbsetup_1.0.bb          |   27 ++
 meta/recipes-extended/lsof/lsof_4.84.bb            |    4 +-
 meta/recipes-extended/sysstat/sysstat.inc          |    4 +-
 .../tcp-wrappers/tcp-wrappers_7.6.bb               |    3 +-
 meta/recipes-kernel/linux/linux-yocto_git.bb       |   12 +-
 meta/recipes-qt/qt4/qt4-tools-native_4.7.3.bb      |    4 +-
 scripts/create-pull-request                        |  222 ++++++++++----
 scripts/send-pull-request                          |  307 +++++++++-----------
 28 files changed, 406 insertions(+), 289 deletions(-)
 rename meta/recipes-bsp/usbutils/{usbutils_0.86.bb => usbutils_0.91.bb} (91%)
 rename meta/recipes-devtools/mklibs/{mklibs-native_0.1.31.bb => mklibs-native_0.1.33.bb} (98%)
 delete mode 100644 meta/recipes-extended/lsb/lsbsetup_0.9.bb
 create mode 100644 meta/recipes-extended/lsb/lsbsetup_1.0.bb
Signature · 1 line
1.7.3.4
author
#1 lore raw

PATCH 1/30 diffutils: fix libc overrides

From: Koen Kooi <[email protected]>

---
 meta/recipes-extended/diffutils/diffutils_2.8.1.bb |    2 +-
 meta/recipes-extended/diffutils/diffutils_3.0.bb   |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-extended/diffutils/diffutils_2.8.1.bb +1 -1
index 9489b35..0fb3a31 100644
@@ -20,7 +20,7 @@ inherit autotools update-alternatives gettext
 # standard functionality.  regex.c actually breaks compilation
 # because it uses __mempcpy, there are other things (TBD:
 # see diffutils.mk in buildroot)
-EXTRA_OECONF_linux-uclibc = "--without-included-regex"
+EXTRA_OECONF_libc-uclibc = "--without-included-regex"
 
 ALTERNATIVE_LINKS = "${bindir}/diff ${bindir}/cmp"
 ALTERNATIVE_PRIORITY = "100"
meta/recipes-extended/diffutils/diffutils_3.0.bb +1 -1
index 427efdf..ecff5cc 100644
@@ -16,7 +16,7 @@ inherit autotools update-alternatives gettext
 # standard functionality.  regex.c actually breaks compilation
 # because it uses __mempcpy, there are other things (TBD:
 # see diffutils.mk in buildroot)
-EXTRA_OECONF_linux-uclibc = "--without-included-regex"
+EXTRA_OECONF_libc-uclibc = "--without-included-regex"
 
 ALTERNATIVE_LINKS = "${bindir}/diff ${bindir}/cmp"
 ALTERNATIVE_PRIORITY = "100"
Signature · 1 line
1.7.3.4
author
#2 lore raw

PATCH 2/30 findutils: fix libc overrides

From: Koen Kooi <[email protected]>

---
 meta/recipes-extended/findutils/findutils.inc      |    2 +-
 .../recipes-extended/findutils/findutils_4.2.31.bb |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-extended/findutils/findutils.inc +1 -1
index 673eada..7a07ad5 100644
@@ -19,4 +19,4 @@ inherit autotools gettext
 # standard functionality.  regex.c actually breaks compilation
 # because it uses __mempcpy, there are other things (TBD:
 # see diffutils.mk in buildroot)
-EXTRA_OECONF_linux-uclibc = "--without-included-regex"
+EXTRA_OECONF_libc-uclibc = "--without-included-regex"
meta/recipes-extended/findutils/findutils_4.2.31.bb +1 -1
index 3e187b5..0889f0f 100644
@@ -20,7 +20,7 @@ inherit autotools gettext
 # standard functionality.  regex.c actually breaks compilation
 # because it uses __mempcpy, there are other things (TBD:
 # see diffutils.mk in buildroot)
-EXTRA_OECONF_linux-uclibc = "--without-included-regex"
+EXTRA_OECONF_libc-uclibc = "--without-included-regex"
 
 do_install_append () {
 	if [ -e ${D}${bindir}/find ]; then
Signature · 1 line
1.7.3.4
author
#3 lore raw

PATCH 3/30 lsof: fix libc overrides

In reply to Saul Wold

From: Koen Kooi <[email protected]>

---
 meta/recipes-extended/lsof/lsof_4.84.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-extended/lsof/lsof_4.84.bb +2 -2
index 960d837..9e76096 100644
@@ -23,8 +23,8 @@ python do_unpack () {
 }
 
 export LSOF_OS = "${TARGET_OS}"
-LSOF_OS_linux-uclibc = "linux"
-LSOF_OS_linux-gnueabi = "linux"
+LSOF_OS_libc-uclibc = "linux"
+LSOF_OS_libc-glibc = "linux"
 export LSOF_INCLUDE = "${STAGING_INCDIR}"
 
 do_configure () {
Signature · 1 line
1.7.3.4
author
#4 lore raw

PATCH 4/30 sysstat: fix libc overrides

In reply to Saul Wold

From: Koen Kooi <[email protected]>

---
 meta/recipes-extended/sysstat/sysstat.inc |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
meta/recipes-extended/sysstat/sysstat.inc +1 -3
index a4cad0e..4756016 100644
@@ -27,6 +27,4 @@ pkg_postinst_${PN} () {
 FILES_${PN} += "${libdir}/sa"
 
 TARGET_CC_ARCH += "${LDFLAGS}"
-LDFLAGS_append_linux-uclibc = " -lintl"
-LDFLAGS_append_linux-uclibceabi = " -lintl"
-LDFLAGS_append_linux-uclibcspe = " -lintl"
+LDFLAGS_append_libc-uclibc = " -lintl"
Signature · 1 line
1.7.3.4
author
#5 lore raw

PATCH 5/30 tcp-wrappers: fix libc overrides

In reply to Saul Wold

From: Koen Kooi <[email protected]>

---
 .../tcp-wrappers/tcp-wrappers_7.6.bb               |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb +1 -2
index daaa2f7..d5e334e 100644
@@ -71,8 +71,7 @@ EXTRA_OEMAKE = "'CC=${CC}' \
 		'EXTRA_CFLAGS=${CFLAGS} -DSYS_ERRLIST_DEFINED -DHAVE_STRERROR -DHAVE_WEAKSYMS -D_REENTRANT -DINET6=1 -Dss_family=__ss_family -Dss_len=__ss_len'"
 
 EXTRA_OEMAKE_NETGROUP = "-DNETGROUP -DUSE_GETDOMAIN"
-EXTRA_OEMAKE_NETGROUP_linux-uclibc = "-DUSE_GETDOMAIN"
-EXTRA_OEMAKE_NETGROUP_linux-uclibceabi = "-DUSE_GETDOMAIN"
+EXTRA_OEMAKE_NETGROUP_libc-uclibc = "-DUSE_GETDOMAIN"
 
 do_compile () {
 	oe_runmake 'TABLES=-DHOSTS_DENY=\"${sysconfdir}/hosts.deny\" -DHOSTS_ALLOW=\"${sysconfdir}/hosts.allow\"' \
Signature · 1 line
1.7.3.4
author
#6 lore raw

PATCH 6/30 linux-yocto: fix gcc 4.6.0 compilation failures

In reply to Saul Wold

From: Bruce Ashfield <[email protected]>

Fixes bug: [YOCTO #1035]
Fixes bug: [YOCTO #1036]

Fixes gcc 4.6.0 compliation issues by importing the upstream change:

Author: Michal Marek <[email protected]>
Date:   Mon May 2 12:13:01 2011 +0000

kbuild: Fix passing -Wno-* options to gcc 4.4+

Starting with 4.4, gcc will happily accept -Wno-<anything> in the cc-option test and complain later when compiling a file that has some other warning. This rather unexpected behavior is intentional as per
http://gcc.gnu.org/PR28322, so work around it by testing for support of the opposite option (without the no-). Introduce a new Makefile function cc-disable-warning that does this and update two uses of cc-option in the toplevel Makefile.

:100644 100644 0ef00bd... 1d8e7e9... M  Documentation/kbuild/makefiles.txt
:100644 100644 7bd863e0.. 74bac80... M  Makefile
:100644 100644 ed2773e... ba25c44... M  scripts/Kbuild.include
---
 meta/recipes-kernel/linux/linux-yocto_git.bb |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
meta/recipes-kernel/linux/linux-yocto_git.bb +6 -6
index 3e828c2..5c3c448 100644
@@ -14,12 +14,12 @@ KMETA = meta
 LINUX_VERSION ?= "2.6.37"
 LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
 
-SRCREV_machine_qemuarm = "b0375c21e29453458f9aa9986dc3f1ec69bf1aef"
-SRCREV_machine_qemumips = "f5d26f2eda2be8b942172cda8f27de33ebf38ec3"
-SRCREV_machine_qemuppc = "7eb6c68d977d9039a2b5a734172b064a9d19cdc1"
-SRCREV_machine_qemux86 = "ad62d1aab734513cd96c8f4517f816420a218e77"
-SRCREV_machine_qemux86-64 = "b906f358fd404a1e74a961f25079274e0d933ee1"
-SRCREV_machine = "b906f358fd404a1e74a961f25079274e0d933ee1"
+SRCREV_machine_qemuarm = "8776b242fe2db7b4570e11496e9105b51212a446"
+SRCREV_machine_qemumips = "8f8a5e034d7e98ed871fa7ed487fbf72a79229a5"
+SRCREV_machine_qemuppc = "d9c6b3e576184f0c4223b6251c57b16ac1bac428"
+SRCREV_machine_qemux86 = "b2afed7ecd54918b73db7f30062aaaf02fdaba54"
+SRCREV_machine_qemux86-64 = "86bbbc079652d87392322fbfc14f6bd8792b0f38"
+SRCREV_machine = "0974631b821b70aee3613723ed0d4d6ba8da91c6"
 SRCREV_meta = "79669230fd82a3e7e254cf8b596a2388a4333e62"
 
 PR = "r18"
Signature · 1 line
1.7.3.4
author
#7 lore raw

PATCH 7/30 lsbsetup: Rename this file and add a link for lsb test

In reply to Saul Wold

From: Xiaofeng Yan <[email protected]>

[YOCTO #1079]

Rename this file version from 0.9 to 1.0. Link time environment for Hong Kong time for lsb test.

Added yocto bugid

---
 meta/recipes-extended/lsb/lsbsetup_0.9.bb |   25 -------------------------
 meta/recipes-extended/lsb/lsbsetup_1.0.bb |   27 +++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 25 deletions(-)
 delete mode 100644 meta/recipes-extended/lsb/lsbsetup_0.9.bb
 create mode 100644 meta/recipes-extended/lsb/lsbsetup_1.0.bb
meta/recipes-extended/lsb/lsbsetup_0.9.bb deleted +0 -25
deleted file mode 100644
index f3651e2..0000000
@@ -1,25 +0,0 @@
-DESCRIPTION = "auto-setup environment for lsb test"
-SECTION = "console/utils"
-PRIORITY = "required"
-LICENSE = "GPLv2"
-PR = "r3"
-
-LIC_FILES_CHKSUM = "file://LSB_Setup.sh;beginline=3;endline=16;md5=97451c7c0786ce5bbe9ac58042945583"
-
-SRC_URI = "file://LSB_Setup.sh"
-
-S=${WORKDIR}
-
-do_install() {
-        # Only install file if it has a contents
-        install -d ${D}/usr/bin
-        install -m 0755 ${S}/LSB_Setup.sh ${D}/usr/bin
-        install -d  ${D}/usr/lib/lsb
-        ln -sf ${base_sbindir}/chkconfig ${D}/${libdir}/lsb/install_initd
-        ln -sf ${base_sbindir}/chkconfig ${D}/${libdir}/lsb/remove_initd
-        ln -sf ${sbindir}/sendmail ${D}/${libdir}/sendmail
-}
-
-FILES_${PN} += "${libdir}/lsb \
-               ${libdir}/* \
-               "
meta/recipes-extended/lsb/lsbsetup_1.0.bb new file +27 -0
new file mode 100644
index 0000000..247f9bc
@@ -0,0 +1,27 @@
+DESCRIPTION = "auto-setup environment for lsb test"
+SECTION = "console/utils"
+PRIORITY = "required"
+LICENSE = "GPLv2"
+PR = "r3"
+
+LIC_FILES_CHKSUM = "file://LSB_Setup.sh;beginline=3;endline=16;md5=97451c7c0786ce5bbe9ac58042945583"
+
+SRC_URI = "file://LSB_Setup.sh"
+
+S=${WORKDIR}
+
+do_install() {
+    # Only install file if it has a contents
+    install -d ${D}/usr/bin
+    install -d ${D}/${sysconfdir}
+    install -m 0755 ${S}/LSB_Setup.sh ${D}/usr/bin
+    install -d  ${D}/usr/lib/lsb
+    ln -sf ${base_sbindir}/chkconfig ${D}/${libdir}/lsb/install_initd
+    ln -sf ${base_sbindir}/chkconfig ${D}/${libdir}/lsb/remove_initd
+    ln -sf ${sbindir}/sendmail ${D}/${libdir}/sendmail
+    ln -sf ${datadir}/zoneinfo/Asia/Hong_Kong ${D}${sysconfdir}/localtime
+}
+
+FILES_${PN} += "${libdir}/lsb \
+               ${libdir}/* \
+               "
Signature · 1 line
1.7.3.4
author
#8 lore raw

PATCH 8/30 package-index.bb: add support for deb and rpm.

In reply to Saul Wold

From: Dexuan Cui <[email protected]>

[YOCTO #1024]
Currently package-index.bb only supports ipk. This commit adds the support for rpm and deb, too.

------------------------------
How to generate and use repos:

1) run "bitbake package-index" after building some target, e.g., core-image-sato-sdk;

2) export ${DEPLOY_DIR_RPM}, ${DEPLOY_DIR_IPK} and ${DEPLOY_DIR_DEB} by a webserver on the host, assuming the host IP is 192.168.7.1, at
http://192.168.7.1/rpm
http://192.168.7.1/ipk
http://192.168.7.1/deb

3) inside the target, according to the packaging system (rpm, ipk or deb) used when we generate the target image, we can use different ways to manage packages:

3.1) RPM
run "zypper addrepo http://192.168.7.1/rpm main; zypper refresh" to retrieve info about the repo; next, we can use "zypper install/remove" to manage packages.

3.2) IPK
add the repo info into opkg config file, i.e., in /etc/opkg/arch.conf, we can add something like
"src i586 http://192.168.7.1/ipk/i586", and next, we run "opkg update" to make opkg update the list of available packages. And later, we can use "opkg install/remove" to manage packages.

3.3) DEB
Currently in target, some important config files, like
/var/lib/dpkg/status and /etc/apt/sources.list, for deb/apt are missing. So we can't install/remove package in target at present.

---
 meta/classes/package_deb.bbclass        |    9 +++++++++
 meta/classes/package_ipk.bbclass        |    9 +++++++++
 meta/classes/package_rpm.bbclass        |    9 +++++++++
 meta/recipes-core/meta/package-index.bb |    6 ++----
 4 files changed, 29 insertions(+), 4 deletions(-)
meta/classes/package_deb.bbclass +9 -0
index 4faeb4a..f9ef32c 100644
@@ -431,3 +431,12 @@ python do_package_write_deb () {
 do_package_write_deb[dirs] = "${PKGWRITEDIRDEB}"
 addtask package_write_deb before do_package_write after do_package
 
+
+PACKAGEINDEXES += "package_index_deb;"
+PACKAGEINDEXDEPS += "dpkg-native:do_populate_sysroot"
+PACKAGEINDEXDEPS += "apt-native:do_populate_sysroot"
+
+package_index_deb() {
+    package_update_index_deb
+}
+
meta/classes/package_ipk.bbclass +9 -0
index 3c2472b..97de17a 100644
@@ -386,3 +386,12 @@ python do_package_write_ipk () {
 }
 do_package_write_ipk[dirs] = "${PKGWRITEDIRIPK}"
 addtask package_write_ipk before do_package_write after do_package
+
+PACKAGEINDEXES += "package_index_ipk;"
+PACKAGEINDEXDEPS += "opkg-utils-native:do_populate_sysroot"
+PACKAGEINDEXDEPS += "opkg-native:do_populate_sysroot"
+
+package_index_ipk() {
+    package_update_index_ipk
+}
+
meta/classes/package_rpm.bbclass +9 -0
index 1cf9f79..390d17c 100644
@@ -815,3 +815,12 @@ python do_package_write_rpm () {
 do_package_write_rpm[dirs] = "${PKGWRITEDIRRPM}"
 addtask package_write_rpm before do_package_write after do_package
 
+PACKAGEINDEXES += "package_index_rpm;"
+PACKAGEINDEXDEPS += "rpm-native:do_populate_sysroot"
+PACKAGEINDEXDEPS += "createrepo-native:do_populate_sysroot"
+
+package_index_rpm() {
+    package_update_index_rpm
+    createrepo "${DEPLOY_DIR_RPM}"
+}
+
meta/recipes-core/meta/package-index.bb +2 -4
index 3c642cb..bf3922f 100644
@@ -19,13 +19,11 @@ do_package_write_deb[noexec] = "1"
 do_populate_sysroot[noexec] = "1"
 
 do_package_index[nostamp] = "1"
-do_package_index[dirs] = "${DEPLOY_DIR_IPK}"
-do_package_index[depends] += "opkg-utils-native:do_populate_sysroot"
-do_package_index[depends] += "opkg-native:do_populate_sysroot"
+do_package_index[depends] += "${PACKAGEINDEXDEPS}"
 
 do_package_index() {
 	set -ex
-	package_update_index_ipk
+	${PACKAGEINDEXES}
 	set +ex
 }
 addtask do_package_index before do_build
Signature · 1 line
1.7.3.4
#9 lore raw

Re: [PATCH 08/30] package-index.bb: add support for deb and rpm.

Hi,

We're nearly there with this, I'd like just one other tweak please:

Quoted 6 lines · Saul Wold
meta/classes/package_deb.bbclass +0 -0
index 4faeb4a..f9ef32c 100644
@@ -431,3 +431,12 @@ python do_package_write_deb () {
 do_package_write_deb[dirs] = "${PKGWRITEDIRDEB}"

meta/classes/package_deb.bbclass python do_package_write_deb () { · line 441

Quoted 10 lines
meta/classes/package_deb.bbclass +8 -0
 addtask package_write_deb before do_package_write after do_package
 
+
+PACKAGEINDEXES += "package_index_deb;"
+PACKAGEINDEXDEPS += "dpkg-native:do_populate_sysroot"
+PACKAGEINDEXDEPS += "apt-native:do_populate_sysroot"
+
+package_index_deb() {
+    package_update_index_deb
+}

Can't we just do +PACKAGEINDEXES += "package_update_index_deb;"

instead of adding the function?

Quoted 6 lines
meta/classes/package_ipk.bbclass +0 -0
index 3c2472b..97de17a 100644
@@ -386,3 +386,12 @@ python do_package_write_ipk () {
 }

meta/classes/package_ipk.bbclass python do_package_write_ipk () { · line 396

Quoted 10 lines
meta/classes/package_ipk.bbclass +8 -0
 do_package_write_ipk[dirs] = "${PKGWRITEDIRIPK}"
 addtask package_write_ipk before do_package_write after do_package
+
+PACKAGEINDEXES += "package_index_ipk;"
+PACKAGEINDEXDEPS += "opkg-utils-native:do_populate_sysroot"
+PACKAGEINDEXDEPS += "opkg-native:do_populate_sysroot"
+
+package_index_ipk() {
+    package_update_index_ipk
+}

ditto?

Cheers,

Richard

#10 lore raw

Re: [PATCH 08/30] package-index.bb: add support for deb and rpm.

Quoted 23 lines · Richard Purdie

Hi,

We're nearly there with this, I'd like just one other tweak please:

Quoted 8 lines · Saul Wold
(quoted diff) +0 -0

b/meta/classes/package_deb.bbclass index 4faeb4a..f9ef32c 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -431,3 +431,12 @@ python
do_package_write_deb () { do_package_write_deb[dirs] = "${PKGWRITEDIRDEB}" addtask package_write_deb before
do_package_write after do_package

meta/classes/package_deb.bbclass python do_package_write_deb () { · line 441

Quoted 7 lines
meta/classes/package_deb.bbclass +7 -0
+
+PACKAGEINDEXES += "package_index_deb;"
+PACKAGEINDEXDEPS += "dpkg-native:do_populate_sysroot"
+PACKAGEINDEXDEPS += "apt-native:do_populate_sysroot" +
+package_index_deb() {
+    package_update_index_deb
+}

Can't we just do +PACKAGEINDEXES += "package_update_index_deb;"

Quoted 1 line

instead of adding the function?

Richard, thanks for the suggestion!

I made a new git commit at: please review it:
http://git.pokylinux.org/cgit.cgi/poky-contrib/commit/?h=dcui/master&id=949f58a3ff0b4227986cff2c165a0d49aa2631cc

Thanks,
-- Dexuan

author
#11 lore raw

PATCH 9/30 extract bitbake config setting into data_define, use more variables replacing hardcoded values

In reply to Saul Wold

From: Jessica Zhang <[email protected]>

---
 .../installer/adt-installer/adt_installer          |    2 +-
 .../installer/adt-installer/adt_installer.conf     |    2 +-
 .../adt-installer/scripts/adt_installer_internal   |    4 ++--
 .../installer/adt-installer/scripts/data_define    |    1 -
 .../installer/adt-installer_1.0.bb                 |    4 +++-
 5 files changed, 7 insertions(+), 6 deletions(-)
meta/recipes-devtools/installer/adt-installer/adt_installer +1 -1
index ea36674..9336b9e 100755
@@ -48,7 +48,7 @@ usage ()
   echo_info "# Install Qemu:\t\t\t$YOCTOADT_QEMU"
   echo_info "# Install NFS utilities:\t$YOCTOADT_NFS_UTIL"
   #echo_info "# Install bitbake + UI:\t\t$YOCTOADT_BITBAKE"
-  #echo_info "# Install poky metadata:\t$YOCTOADT_METADATA"
+  #echo_info "# Install metadata:\t$YOCTOADT_METADATA"
   #echo_info "############################################################################\n"
 
     echo_info "\n##############################################################################"
meta/recipes-devtools/installer/adt-installer/adt_installer.conf +1 -1
index d2af70d..b518c53 100644
@@ -23,7 +23,7 @@
 
 # Your yocto distro repository, this should include IPKG based packages and root filesystem files where the installation is based on
 
-YOCTOADT_IPKG_REPO="http://adtrepo.yoctoproject.org/1.0/rootfs"
+YOCTOADT_IPKG_REPO="http://adtrepo.yoctoproject.org/$YOCTOADT_VERSION/rootfs"
 
 # The following are for system wide setup
 # Target architectures that you want to setup host cross dev environment for
meta/recipes-devtools/installer/adt-installer/scripts/adt_installer_internal +2 -2
index 8d4e01b..870931e 100755
@@ -29,11 +29,11 @@ parse_config()
   case $INST_ARCH in 
   i[3-6]86)
     OPKG_CONFIG_FILE=$YOCTOADT_OPKG_CONF_FILE_32
-    OECORE_NATIVE_SYSROOT="$INSTALL_FOLDER/sysroots/$INST_ARCH-${SDK_VENDOR}-linux/"
+    OECORE_NATIVE_SYSROOT="$INSTALL_FOLDER/sysroots/$INST_ARCH$SDK_VENDOR-linux/"
     ;;
   x86_64)
     OPKG_CONFIG_FILE=$YOCTOADT_OPKG_CONF_FILE_64
-    OECORE_NATIVE_SYSROOT="$INSTALL_FOLDER/sysroots/x86_64-${SDK_VENDOR}-linux/"
+    OECORE_NATIVE_SYSROOT="$INSTALL_FOLDER/sysroots/x86_64$SDK_VENDOR-linux/"
     ;;
   *)
     echo_info "[ADT_INST] Error: Installation Machine is not supported!"
meta/recipes-devtools/installer/adt-installer/scripts/data_define +0 -1
index ca1d47c..2781e77 100644
@@ -37,4 +37,3 @@ YOCTOADT_SUPPORTED_TARGETS="x86 x86_64 arm ppc mips"
 # configuration files
 YOCTOADT_OPKG_CONF_FILE_32="./opkg/conf/opkg-sdk-i686.conf"
 YOCTOADT_OPKG_CONF_FILE_64="./opkg/conf/opkg-sdk-x86_64.conf"
-INSTALL_FOLDER=/opt/poky/$YOCTOADT_VERSION
meta/recipes-devtools/installer/adt-installer_1.0.bb +3 -1
index 4a3e4de..8f6e91f 100644
@@ -31,7 +31,7 @@ ALLOW_EMPTY = "1"
 PACKAGES = ""
 PACKAGE_ARCH = "all"
 
-PR = "r0"
+PR = "r3"
 
 ADT_DEPLOY = "${TMPDIR}/deploy/sdk/"
 ADT_DIR = "${WORKDIR}/adt-installer/"
@@ -69,6 +69,8 @@ fakeroot do_deploy () {
 	echo 'YOCTOADT_VERSION=${SDK_VERSION}' > ${ADT_DIR}/temp.conf
         cat ${ADT_DIR}/adt_installer.conf >> ${ADT_DIR}/temp.conf
         mv ${ADT_DIR}/temp.conf ${ADT_DIR}/adt_installer.conf
+        echo 'SDK_VENDOR=${SDK_VENDOR}' >> ${ADT_DIR}/scripts/data_define
+        echo 'INSTALL_FOLDER=${SDKPATH}' >> ${ADT_DIR}/scripts/data_define
 	tar cfj adt_installer.tar.bz2 adt-installer
 	cp ${WORKDIR}/adt_installer.tar.bz2 ${ADT_DEPLOY}
 }
Signature · 1 line
1.7.3.4
author
#12 lore raw

PATCH 10/30 Add adt repo checking

In reply to Saul Wold

From: Jessica Zhang <[email protected]>

---
 .../installer/adt-installer/adt_installer          |   13 ++++++++++++-
 .../installer/adt-installer/adt_installer.conf     |    2 +-
 2 files changed, 13 insertions(+), 2 deletions(-)
meta/recipes-devtools/installer/adt-installer/adt_installer +12 -1
index 9336b9e..1dd07b7 100755
@@ -228,7 +228,7 @@ if [ -f "$LOCAL_DOWNLOAD/$filename" ]; then
   fi
 fi
 echo_info "Downloading file: $filename..."
-wget "$YOCTOADT_IPKG_REPO/$1" -P $LOCAL_DOWNLOAD --progress=bar:force 2>&1 | tee -a "$YOCTOADT_INSTALL_LOG_FILE" 
+wget "$YOCTOADT_REPO/rootfs/$1" -P $LOCAL_DOWNLOAD --progress=bar:force 2>&1 | tee -a "$YOCTOADT_INSTALL_LOG_FILE" 
 }
 
 
@@ -339,6 +339,17 @@ user_inst_type="$?"
 
 validate_config
 check_result
+
+#check adt_repo exist
+wget $YOCTOADT_REPO 2>&1 | tee -a "$YOCTOADT_INSTALL_LOG_FILE"
+if grep -q "ERROR 404: Not Found" $YOCTOADT_INSTALL_LOG_FILE; then
+  echo -e "[ADT_INST] Error: YOCTOADT_REPO does not exist: $YOCTOADT_REPO"
+  echo -e "\n#############################################################################"
+  echo -e "# Meet error(s) when installing Yocto ADT! Please check log file for details. "
+  echo -e "#############################################################################\n"
+  exit -1
+fi
+
 #firstly we need to install opkg host
 install_opkg
 
meta/recipes-devtools/installer/adt-installer/adt_installer.conf +1 -1
index b518c53..0c93237 100644
@@ -23,7 +23,7 @@
 
 # Your yocto distro repository, this should include IPKG based packages and root filesystem files where the installation is based on
 
-YOCTOADT_IPKG_REPO="http://adtrepo.yoctoproject.org/$YOCTOADT_VERSION/rootfs"
+YOCTOADT_REPO="http://adtrepo.yoctoproject.org/$YOCTOADT_VERSION"
 
 # The following are for system wide setup
 # Target architectures that you want to setup host cross dev environment for
Signature · 1 line
1.7.3.4
author
#13 lore raw

PATCH 11/30 utils.bbclass: modify create_wrapper to correctly follow symlinks

In reply to Saul Wold

This ensures you look up the symbolic link to get the full path

---
 meta/classes/utils.bbclass |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
meta/classes/utils.bbclass +2 -1
index 6bcaf86..1965d2f 100644
@@ -312,7 +312,8 @@ create_wrapper () {
    cmdname=`basename $cmd`.real
    cat <<END >$cmd
 #!/bin/sh
-exec env $@ \`dirname \$0\`/$cmdname "\$@"
+realpath=\`readlink -fn \$0\`
+exec env $@ \`dirname \$realpath\`/$cmdname "\$@"
 END
    chmod +x $cmd
 }
Signature · 1 line
1.7.3.4
#14 lore raw

Re: [PATCH 11/30] utils.bbclass: modify create_wrapper to correctly follow symlinks

RP already put this one in.

Op 19 mei 2011, om 21:19 heeft Saul Wold het volgende geschreven:

Quoted 29 lines

This ensures you look up the symbolic link to get the full path

---
meta/classes/utils.bbclass | 3 ++-

1 files changed, 2 insertions(+), 1 deletions(-)
meta/classes/utils.bbclass +2 -1
index 6bcaf86..1965d2f 100644
@@ -312,7 +312,8 @@ create_wrapper () {
   cmdname=`basename $cmd`.real
   cat <<END >$cmd
 #!/bin/sh
-exec env $@ \`dirname \$0\`/$cmdname "\$@"
+realpath=\`readlink -fn \$0\`
+exec env $@ \`dirname \$realpath\`/$cmdname "\$@"

END
chmod +x $cmd
}

Signature · 7 lines
1.7.3.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
author
#15 lore raw

PATCH 12/30 mklibs-native: Update to 0.1.33

In reply to Saul Wold
---
 .../mklibs/files/ac_init_fix.patch                 |    2 ++
 .../mklibs/files/fix_STT_GNU_IFUNC.patch           |    3 +++
 ...bs-native_0.1.31.bb => mklibs-native_0.1.33.bb} |    2 +-
 3 files changed, 6 insertions(+), 1 deletions(-)
 rename meta/recipes-devtools/mklibs/{mklibs-native_0.1.31.bb => mklibs-native_0.1.33.bb} (98%)
meta/recipes-devtools/mklibs/files/ac_init_fix.patch +2 -0
index 7325931..422af10 100644
@@ -2,6 +2,8 @@ Get the version of mklibs by simpler means. The MKLIBS_VERSION string in the
 configure.ac file is replaced with real version string by the 
 do_configure_prepend() function from the recipe .bb file.
 
+Upstream-Status: Inappropriate [configuration]
+
 Nitin A Kamble <[email protected]>
 Date: 2011/01/24
 
meta/recipes-devtools/mklibs/files/fix_STT_GNU_IFUNC.patch +3 -0
index 88badde..d27a489 100644
@@ -1,5 +1,8 @@
 The libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't
 define STT_GNU_IFUNC, so we have to define it ourselves.
+
+Upstream-Status: Inappropriate [other] - old release specific, maybe removable
+
 -- Dexuan Cui ([email protected]) Feb 16, 2011.
 
 diff --git a/src/mklibs-readelf/main.cpp b/src/mklibs-readelf/main.cpp
meta/recipes-devtools/mklibs/mklibs-native_0.1.33.bb renamed from meta/recipes-devtools/mklibs/mklibs-native_0.1.31.bb +1 -1
similarity index 98%
rename from meta/recipes-devtools/mklibs/mklibs-native_0.1.31.bb
rename to meta/recipes-devtools/mklibs/mklibs-native_0.1.33.bb
index 7f4afc0..cac7b91 100644
@@ -5,7 +5,7 @@ LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=98d31037b13d896e33890738ef01af64"
 DEPENDS = "python-native"
 
-PR = "r1"
+PR = "r0"
 
 SRC_URI = "http://ftp.de.debian.org/debian/pool/main/m/mklibs/${BPN}_${PV}.tar.gz \
 	file://ac_init_fix.patch\
Signature · 1 line
1.7.3.4
author
#16 lore raw

PATCH 13/30 usbutils: Update to 0.91

In reply to Saul Wold

Also move the upstream location to kernel.org

---
 .../{usbutils_0.86.bb => usbutils_0.91.bb}         |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
 rename meta/recipes-bsp/usbutils/{usbutils_0.86.bb => usbutils_0.91.bb} (91%)
meta/recipes-bsp/usbutils/usbutils_0.91.bb renamed from meta/recipes-bsp/usbutils/usbutils_0.86.bb +1 -1
similarity index 91%
rename from meta/recipes-bsp/usbutils/usbutils_0.86.bb
rename to meta/recipes-bsp/usbutils/usbutils_0.91.bb
index 239de24..db04253 100644
@@ -11,7 +11,7 @@ DEPENDS = "libusb zlib"
 RDEPENDS_${PN} = "${PN}-ids"
 PR = "r1"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/linux-usb/usbutils-${PV}.tar.gz"
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/usb/usbutils-${PV}.tar.gz"
 
 SRC_URI[md5sum] = "34979f675d2bcb3e1b45012fa830a53f"
 SRC_URI[sha256sum] = "b3b2bea6d2cd87660c8201a47071bf2a9889d8ed90c7203cc768b597799c12f4"
Signature · 1 line
1.7.3.4
author
#17 lore raw

PATCH 14/30 qt4-tools-native: Fix the patch location

In reply to Saul Wold
---
 meta/recipes-qt/qt4/qt4-tools-native_4.7.3.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-qt/qt4/qt4-tools-native_4.7.3.bb +2 -2
index deb4231..8d292af 100644
@@ -1,9 +1,9 @@
 require qt4-tools-native.inc
 
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
 
 # Find the g++.conf/linux.conf in the right directory.
-FILESPATHPKG =. "qt-${PV}:"
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/qt-${PV}:"
 
 EXTRA_OECONF += " -no-fast -silent -no-rpath"
 
Signature · 1 line
1.7.3.4
author
#18 lore raw

PATCH 15/30 create-pull-request: alphabetize arguments

In reply to Saul Wold

From: Darren Hart <[email protected]>

Some initial cleanup prior to a significant overhaul.

---
 scripts/create-pull-request |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
scripts/create-pull-request +5 -5
index 784b48c..658b9c2 100755
@@ -10,14 +10,14 @@ usage() {
 CMD=$(basename $0)
 cat <<EOM
 Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to] [-i commit_id] -b contrib_branch
+  -b contrib_branch   Branch-name in the $PULL_URL
   -h                  Display this help message
-  -o output_dir       Specify the output directory for the messages (default: pull-PID)
+  -i commit_id        Ending commit (default: HEAD)
   -m msg_body_file    The file containing a blurb to be inserted into the summary email
+  -o output_dir       Specify the output directory for the messages (default: pull-PID)
+  -p prefix           Use [prefix N/M] instead of [PATCH N/M] as the subject prefix
   -r relative_to      Starting commit (default: master)
-  -i commit_id        Ending commit (default: HEAD)
-  -b contrib_branch   Branch-name in the $PULL_URL
   -s subject          The subject to be inserted into the summary email
-  -p prefix           Use [prefix N/M] instead of [PATCH N/M] as the subject prefix
 
  Examples:
    $CMD -b nitin/basic
@@ -28,7 +28,7 @@ EOM
 }
 
 # Parse and validate arguments
-while getopts "b:hi:m:o:r:s:p:" OPT; do
+while getopts "b:hi:m:o:p:r:s:" OPT; do
     case $OPT in
     b)
         CONTRIB_BRANCH="$OPTARG"
Signature · 1 line
1.7.3.4
author
#19 lore raw

PATCH 16/30 create-pull-request: whitespace cleanup

In reply to Saul Wold

From: Darren Hart <[email protected]>

Indent with tabs, not spaces, to be consistent with other bash scripts.

---
 scripts/create-pull-request |   78 +++++++++++++++++++++---------------------
 1 files changed, 39 insertions(+), 39 deletions(-)
scripts/create-pull-request +39 -39
index 658b9c2..b911a64 100755
@@ -29,42 +29,42 @@ EOM
 
 # Parse and validate arguments
 while getopts "b:hi:m:o:p:r:s:" OPT; do
-    case $OPT in
-    b)
-        CONTRIB_BRANCH="$OPTARG"
-        ;;
-    h)
-        usage
-        exit 0
-        ;;
-    i)
-        COMMIT_ID="$OPTARG"
-        ;;
-    m)
-        BODY="$OPTARG"
-        if [ ! -e "$BODY" ]; then
-            echo "ERROR: Body file does not exist"
-            exit 1
-        fi
-        ;;
-    o)
-        ODIR="$OPTARG"
-        ;;
-    p)
-        PREFIX="$OPTARG"
-        ;;
-    r)
-        RELATIVE_TO="$OPTARG"
-        ;;
-    s)
-        SUBJECT="$OPTARG"
-        ;;
-    esac
+	case $OPT in
+	b)
+		CONTRIB_BRANCH="$OPTARG"
+		;;
+	h)
+		usage
+		exit 0
+		;;
+	i)
+		COMMIT_ID="$OPTARG"
+		;;
+	m)
+		BODY="$OPTARG"
+		if [ ! -e "$BODY" ]; then
+			echo "ERROR: Body file does not exist"
+			exit 1
+		fi
+		;;
+	o)
+		ODIR="$OPTARG"
+		;;
+	p)
+		PREFIX="$OPTARG"
+		;;
+	r)
+		RELATIVE_TO="$OPTARG"
+		;;
+	s)
+		SUBJECT="$OPTARG"
+		;;
+	esac
 done
 
 if [ -z "$CONTRIB_BRANCH" ]; then
-    usage
-    exit 1
+	usage
+	exit 1
 fi
 
 
@@ -73,9 +73,9 @@ fi
 WEB_URL="$WEB_URL_PREFIX$CONTRIB_BRANCH"
 wget -q $WEB_URL -O /dev/null
 if [ $? -ne 0 ]; then
-    echo "WARNING: Branch '$CONTRIB_BRANCH' was not found on the contrib git tree."
-    echo "         Please check your contrib-branch parameter before sending."
-    echo ""
+	echo "WARNING: Branch '$CONTRIB_BRANCH' was not found on the contrib git tree."
+	echo "         Please check your contrib-branch parameter before sending."
+	echo ""
 fi
 
 if [ -e $ODIR ]; then
@@ -107,13 +107,13 @@ EOM
 # If the user specified a message body, insert it into the cover letter and
 # remove the BLURB token.
 if [ -n "$BODY" ]; then
-    sed -i "/BLURB HERE/ r $BODY" "$CL"
-    sed -i "/BLURB HERE/ d" "$CL"
+	sed -i "/BLURB HERE/ r $BODY" "$CL"
+	sed -i "/BLURB HERE/ d" "$CL"
 fi
 
 # If the user specified a subject, replace the SUBJECT token with it.
 if [ -n "$SUBJECT" ]; then
-    sed -i -e "s/\*\*\* SUBJECT HERE \*\*\*/$SUBJECT/" "$CL"
+	sed -i -e "s/\*\*\* SUBJECT HERE \*\*\*/$SUBJECT/" "$CL"
 fi
 
 
Signature · 1 line
1.7.3.4
author
#20 lore raw

PATCH 17/30 create-pull-request: use git request-pull and arbitrary remotes

In reply to Saul Wold

From: Darren Hart <[email protected]>

Allow for arbitrary remotes via a new -u argument. Remove the hard coded references to the pokylinux repositories. Create the WEB_URL from known remotes. Future patches can add additional WEB_URL mappings for remotes like Git Hub, Gitorious, and kernel.org.

Rather than duplicating the git request-pull command ourselves, just use the existing one.

---
 scripts/create-pull-request |   78 ++++++++++++++++++++++++++++--------------
 1 files changed, 52 insertions(+), 26 deletions(-)
scripts/create-pull-request +52 -26
index b911a64..8f7f767 100755
@@ -2,15 +2,13 @@
 ODIR=pull-$$
 RELATIVE_TO="master"
 COMMIT_ID="HEAD"
-PULL_URL="git://git.openembedded.org/openembedded-core-contrib"
-WEB_URL_PREFIX="http://git.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h="
 PREFIX="PATCH"
 
 usage() {
 CMD=$(basename $0)
 cat <<EOM
-Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to] [-i commit_id] -b contrib_branch
-  -b contrib_branch   Branch-name in the $PULL_URL
+Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to] [-i commit_id] -u remote -b branch
+  -b branch           Branch name in the specified remote
   -h                  Display this help message
   -i commit_id        Ending commit (default: HEAD)
   -m msg_body_file    The file containing a blurb to be inserted into the summary email
@@ -18,20 +16,21 @@ Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to
   -p prefix           Use [prefix N/M] instead of [PATCH N/M] as the subject prefix
   -r relative_to      Starting commit (default: master)
   -s subject          The subject to be inserted into the summary email
+  -u remote           The git remote where the branch is located
 
  Examples:
-   $CMD -b nitin/basic
-   $CMD -r distro/master -i nitin/distro -b nitin/distro
-   $CMD -r master -i misc -b nitin/misc -o pull-misc
-   $CMD -p "RFC PATCH" -b nitin/experimental
+   $CMD -u contrib -b nitin/basic
+   $CMD -u contrib -r distro/master -i nitin/distro -b nitin/distro
+   $CMD -u contrib -r master -i misc -b nitin/misc -o pull-misc
+   $CMD -u contrib -p "RFC PATCH" -b nitin/experimental
 EOM
 }
 
 # Parse and validate arguments
-while getopts "b:hi:m:o:p:r:s:" OPT; do
+while getopts "b:hi:m:o:p:r:s:u:" OPT; do
 	case $OPT in
 	b)
-		CONTRIB_BRANCH="$OPTARG"
+		BRANCH="$OPTARG"
 		;;
 	h)
 		usage
@@ -59,23 +58,45 @@ while getopts "b:hi:m:o:p:r:s:" OPT; do
 	s)
 		SUBJECT="$OPTARG"
 		;;
+	u)
+		REMOTE="$OPTARG"
+		REMOTE_URL=$(git config remote.$REMOTE.url)
+		if [ $? -ne 0 ]; then
+			echo "ERROR: git config failed to find a url for '$REMOTE'"
+			exit 1
+		fi
+		REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
+		# The .git suffix is optional in the URL, drop in for the REPO
+		REMOTE_REPO=${REMOTE_REPO%.git}
+		;;
 	esac
 done
 
-if [ -z "$CONTRIB_BRANCH" ]; then
+if [ -z "$BRANCH" ] || [ -z "$REMOTE_URL" ]; then
 	usage
 	exit 1
 fi
 
 
+# Set WEB_URL from known remotes
+case "$REMOTE_URL" in
+	*git.yoctoproject.org*)
+		WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"
+		;;
+	*git.pokylinux.org*)
+		WEB_URL="http://git.pokylinux.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"
+		;;
+esac
+
 # Perform a sanity test on the web URL. Issue a warning if it is not
 # accessible, but do not abort as users may want to run offline.
-WEB_URL="$WEB_URL_PREFIX$CONTRIB_BRANCH"
-wget -q $WEB_URL -O /dev/null
-if [ $? -ne 0 ]; then
-	echo "WARNING: Branch '$CONTRIB_BRANCH' was not found on the contrib git tree."
-	echo "         Please check your contrib-branch parameter before sending."
-	echo ""
+if [ -n "$WEB_URL" ]; then
+	wget -q $WEB_URL -O /dev/null
+	if [ $? -ne 0 ]; then
+		echo "WARNING: Branch '$BRANCH' was not found on the contrib git tree."
+		echo "         Please check your remote and branch parameter before sending."
+		echo ""
+	fi
 fi
 
 if [ -e $ODIR ]; then
@@ -91,18 +112,23 @@ git format-patch -M --subject-prefix="$PREFIX" -n -o $ODIR --thread=shallow --co
 
 # Customize the cover letter
 CL="$ODIR/0000-cover-letter.patch"
-(cat <<EOM
+PM="$ODIR/pull-msg"
+git request-pull $RELATIVE_TO $REMOTE_URL $COMMIT_ID > "$PM"
+if [ $? -ne 0 ]; then
+	echo "ERROR: git request-pull reported an error"
+	exit 1
+fi
 
-Pull URL: $PULL_URL
-  Branch: $CONTRIB_BRANCH
-  Browse: $WEB_URL
+# The cover letter already has a diffstat, remove it from the pull-msg
+# before inserting it.
+sed -n "0,\#$REMOTE_URL# p" "$PM" | sed -i "/BLURB HERE/ r /dev/stdin" "$CL"
+rm "$PM"
 
-Thanks,
-    $(git config user.name) <$(git config user.email)>
----
+# Insert the WEB_URL if there is one
+if [ -n "$WEB_URL" ]; then
+	echo "  $WEB_URL" | sed -i "\#$REMOTE_URL# r /dev/stdin" "$CL"
+fi
 
-EOM
-) | sed -i "/BLURB HERE/ r /dev/stdin" "$CL"
 
 # If the user specified a message body, insert it into the cover letter and
 # remove the BLURB token.
Signature · 1 line
1.7.3.4
author
#21 lore raw

PATCH 18/30 create-pull-request: rewrite known private URLs to public URLs

In reply to Saul Wold

From: Darren Hart <[email protected]>

Rather than requiring users to have public remotes and private remotes when their development remotes are ssh based (and therefor unsuitable for a pull request URL), rewrite the ones we know about from ssh://git@ to git://.

As the remote url vary from remote to remote, do the REMOTE_REPO regex per remote.

With this infrastructure in place, future patches can augment the list of known remotes for things like Git Hub, Gitorious, kernel.org, etc.

---
 scripts/create-pull-request |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)
scripts/create-pull-request +13 -1
index 8f7f767..429421b 100755
@@ -65,7 +65,19 @@ while getopts "b:hi:m:o:p:r:s:u:" OPT; do
 			echo "ERROR: git config failed to find a url for '$REMOTE'"
 			exit 1
 		fi
-		REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
+
+		# Rewrite known private URLs to public URLs
+		# Determine the repository name for use in the WEB_URL later
+		case "$REMOTE_URL" in
+		ssh://[email protected]*)
+			REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
+			REMOTE_URL=${REMOTE_URL/'ssh://git@'/'git://'}
+			;;
+		ssh://[email protected]*)
+			REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
+			REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
+			;;
+		esac
 		# The .git suffix is optional in the URL, drop in for the REPO
 		REMOTE_REPO=${REMOTE_REPO%.git}
 		;;
Signature · 1 line
1.7.3.4
author
#22 lore raw

PATCH 19/30 create-pull-request: provide an RFC mode via -c argument

In reply to Saul Wold

From: Darren Hart <[email protected]>

Currently it is difficult to know if a pull request is being sent for review or just to be pulled.

Add a -c argument to add RFC to the subject prefix and a blurb requesting review to the cover letter.

---
 scripts/create-pull-request |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)
scripts/create-pull-request +22 -2
index 429421b..202d99d 100755
@@ -3,12 +3,14 @@ ODIR=pull-$$
 RELATIVE_TO="master"
 COMMIT_ID="HEAD"
 PREFIX="PATCH"
+RFC=0
 
 usage() {
 CMD=$(basename $0)
 cat <<EOM
 Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to] [-i commit_id] -u remote -b branch
   -b branch           Branch name in the specified remote
+  -c                  Create an RFC (Request for Comment) patch series
   -h                  Display this help message
   -i commit_id        Ending commit (default: HEAD)
   -m msg_body_file    The file containing a blurb to be inserted into the summary email
@@ -27,11 +29,14 @@ EOM
 }
 
 # Parse and validate arguments
-while getopts "b:hi:m:o:p:r:s:u:" OPT; do
+while getopts "b:chi:m:o:p:r:s:u:" OPT; do
 	case $OPT in
 	b)
 		BRANCH="$OPTARG"
 		;;
+	c)
+		RFC=1
+		;;
 	h)
 		usage
 		exit 0
@@ -89,6 +94,10 @@ if [ -z "$BRANCH" ] || [ -z "$REMOTE_URL" ]; then
 	exit 1
 fi
 
+if [ $RFC -eq 1 ]; then
+	PREFIX="RFC $PREFIX"
+fi
+
 
 # Set WEB_URL from known remotes
 case "$REMOTE_URL" in
@@ -125,7 +134,7 @@ git format-patch -M --subject-prefix="$PREFIX" -n -o $ODIR --thread=shallow --co
 # Customize the cover letter
 CL="$ODIR/0000-cover-letter.patch"
 PM="$ODIR/pull-msg"
-git request-pull $RELATIVE_TO $REMOTE_URL $COMMIT_ID > "$PM"
+git request-pull $RELATIVE_TO $REMOTE_URL $COMMIT_ID >> "$PM"
 if [ $? -ne 0 ]; then
 	echo "ERROR: git request-pull reported an error"
 	exit 1
@@ -136,6 +145,17 @@ fi
 sed -n "0,\#$REMOTE_URL# p" "$PM" | sed -i "/BLURB HERE/ r /dev/stdin" "$CL"
 rm "$PM"
 
+# If this is an RFC, make that clear in the cover letter
+if [ $RFC -eq 1 ]; then
+(cat <<EOM
+Please review the following changes for suitability for inclusion. If you have
+any objections or suggestions for improvement, please respond to the patches. If
+you agree with the changes, please provide your Acked-by.
+
+EOM
+) | sed -i "/BLURB HERE/ r /dev/stdin" "$CL"
+fi
+
 # Insert the WEB_URL if there is one
 if [ -n "$WEB_URL" ]; then
 	echo "  $WEB_URL" | sed -i "\#$REMOTE_URL# r /dev/stdin" "$CL"
Signature · 1 line
1.7.3.4
author
#23 lore raw

PATCH 20/30 send-pull-request: whitespace cleanup

In reply to Saul Wold

From: Darren Hart <[email protected]>

Indent with tabs, not spaces, for consistency with other bash scripts.

---
 scripts/send-pull-request |  250 ++++++++++++++++++++++----------------------
 1 files changed, 125 insertions(+), 125 deletions(-)
scripts/send-pull-request +125 -125
index 3af2a9f..76dd7a2d 100755
@@ -31,72 +31,72 @@ EOM
 # $2: The regex to match and strip from the line with email addresses
 harvest_recipients()
 {
-    TO_CC=$1
-    REGX=$2
-    export IFS=$',\n'
-    for PATCH in $PDIR/*.patch; do
-        # Grab To addresses
-        for EMAIL in $(sed '/^---$/q' $PATCH | grep -e "$REGX" | sed "s/$REGX//"); do
-            if [ "$TO_CC" == "TO" ] && [ "${TO/$EMAIL/}" == "$TO" ] && [ -n "$EMAIL" ]; then
-                if [ -z "$TO" ]; then TO=$EMAIL; else TO="$TO,$EMAIL"; fi
-            elif [ "$TO_CC" == "CC" ] && [ "${CC/$EMAIL/}" == "$CC" ] && [ -n "$EMAIL" ]; then
-                if [ -z "$CC" ]; then CC=$EMAIL; else CC="$CC,$EMAIL"; fi
-            fi
-        done
-    done
-    unset IFS
+	TO_CC=$1
+	REGX=$2
+	export IFS=$',\n'
+	for PATCH in $PDIR/*.patch; do
+		# Grab To addresses
+		for EMAIL in $(sed '/^---$/q' $PATCH | grep -e "$REGX" | sed "s/$REGX//"); do
+			if [ "$TO_CC" == "TO" ] && [ "${TO/$EMAIL/}" == "$TO" ] && [ -n "$EMAIL" ]; then
+				if [ -z "$TO" ]; then TO=$EMAIL; else TO="$TO,$EMAIL"; fi
+			elif [ "$TO_CC" == "CC" ] && [ "${CC/$EMAIL/}" == "$CC" ] && [ -n "$EMAIL" ]; then
+				if [ -z "$CC" ]; then CC=$EMAIL; else CC="$CC,$EMAIL"; fi
+			fi
+		done
+	done
+	unset IFS
 }
 
 
 # Parse and verify arguments
 while getopts "af:ghp:t:" OPT; do
-    case $OPT in
-        a)
-            AUTO=1
-            ;;
-        f)
-            FROM="$OPTARG"
-            ;;
-        g)
-            PULL_MTA="git"
-            ;;
-        h)
-            usage
-            exit 0
-            ;;
-        p)
-            PDIR=${OPTARG%/}
-            if [ ! -d $PDIR ]; then
-                echo "ERROR: pull-dir \"$PDIR\" does not exist."
-                usage
-                exit 1
-            fi
-            ;;
-        t)
-            if [ -n "$TO" ]; then
-                TO="$TO,$OPTARG"
-            else
-                TO="$OPTARG"
-            fi
-            ;;
-    esac
+	case $OPT in
+	a)
+		AUTO=1
+		;;
+	f)
+		FROM="$OPTARG"
+		;;
+	g)
+		PULL_MTA="git"
+		;;
+	h)
+		usage
+		exit 0
+		;;
+	p)
+		PDIR=${OPTARG%/}
+		if [ ! -d $PDIR ]; then
+			echo "ERROR: pull-dir \"$PDIR\" does not exist."
+			usage
+			exit 1
+		fi
+		;;
+	t)
+		if [ -n "$TO" ]; then
+			TO="$TO,$OPTARG"
+		else
+			TO="$OPTARG"
+		fi
+		;;
+	esac
 done
 
 if [ -z "$PDIR" ]; then
-    echo "ERROR: you must specify a pull-dir."
-    usage
-    exit 1
+	echo "ERROR: you must specify a pull-dir."
+	usage
+	exit 1
 fi
 
 
 # Verify the cover letter is complete and free of tokens
 CL="$PDIR/0000-cover-letter.patch"
 for TOKEN in SUBJECT BLURB; do
-    grep -q "*** $TOKEN HERE ***" "$CL"
-    if [ $? -eq 0 ]; then
-        echo "ERROR: Please edit $CL and try again (Look for '*** $TOKEN HERE ***')."
-        exit 1
-    fi
+	grep -q "*** $TOKEN HERE ***" "$CL"
+	if [ $? -eq 0 ]; then
+		echo "ERROR: Please edit $CL and try again (Look for '*** $TOKEN HERE ***')."
+		exit 1
+	fi
 done
 
 
@@ -104,39 +104,39 @@ done
 # In addition to To and CC headers/lines, the common Signed-off-by, Tested-by,
 # etc. (*-by) will be added to CC.
 if [ $AUTO -eq 1 ]; then
-    harvest_recipients TO "^[Tt][Oo]: *"
-    harvest_recipients CC "^[Cc][Cc]: *"
-    harvest_recipients CC "^.*-[Bb][Yy]: *"
+	harvest_recipients TO "^[Tt][Oo]: *"
+	harvest_recipients CC "^[Cc][Cc]: *"
+	harvest_recipients CC "^.*-[Bb][Yy]: *"
 fi
 
 case "$PULL_MTA" in
-    git)
-        FROM="$(git config sendemail.from)"
+git)
+	FROM="$(git config sendemail.from)"
 	AUTO_TO="$(git config sendemail.to)"
 	if [ -n "$AUTO_TO" ]; then
-	    if [ -n "$TO" ]; then
-		TO="$TO,$AUTO_TO"
-	    else
-		TO="$AUTO_TO"
-	    fi
+		if [ -n "$TO" ]; then
+			TO="$TO,$AUTO_TO"
+		else
+			TO="$AUTO_TO"
+		fi
+	fi
+	;;
+sendmail)
+	if [ -z "$FROM" ]; then
+		FROM="$(git config user.name) <$(git config user.email)>"
+		if [ -z "$FROM" ]; then
+			echo "ERROR: unable to determine a FROM address"
+			usage
+			exit 1
+		fi
 	fi
-        ;;
-    sendmail)
-        if [ -z "$FROM" ]; then
-            FROM="$(git config user.name) <$(git config user.email)>"
-            if [ -z "$FROM" ]; then
-                echo "ERROR: unable to determine a FROM address"
-                usage
-                exit 1
-            fi
-        fi
-        ;;
+	;;
 esac
 
 if [ -z "$TO" ] && [ -z "$CC" ]; then
-    echo "ERROR: you have not specified any recipients."
-    usage
-    exit 1
+	echo "ERROR: you have not specified any recipients."
+	usage
+	exit 1
 fi
 
 
@@ -155,55 +155,55 @@ echo "Continue? [y/N] "
 read cont
 
 if [ "$cont" == "y" ] || [ "$cont" == "Y" ]; then
-    ERROR=0
-    case "$PULL_MTA" in
-        git)
-            export IFS=$','
-            GIT_TO=$(for R in $TO; do echo -n "--to='$R' "; done)
-            GIT_CC=$(for R in $CC; do echo -n "--cc='$R' "; done)
-            unset IFS
-            for PATCH in $PDIR/*patch; do
-                # We harvest the emails manually, so force git not to.
-                eval "git send-email $GIT_TO $GIT_CC --no-chain-reply-to --suppress-cc=all $PATCH"
-                if [ $? -eq 1 ]; then
-                    ERROR=1
-                fi
-            done
-            ;;
-        sendmail)
-            for PATCH in $PDIR/*patch; do
-                # Insert To and CC headers via formail to keep them separate and
-                # appending them to the sendmail command as -- $TO $CC has
-                # proven to be an exercise in futility.
-                #
-                # Clear the From header, leaving it up to sendmail to insert an
-                # appropriate one. Insert the original sender (per git) into the
-                # body of the message.
-                #
-                # Use tail to remove the email envelope from git or formail as
-                # msmtp (sendmail) would choke on them.
-                #
-                # Modify the patch date for sequential delivery, but retain the
-                # original date as "Old-Date".
-                DATE=$(date +"%a, %d %b %Y %k:%M:%S %z")
-                GIT_FROM=$(cat $PATCH | formail -X "From:")
-                cat $PATCH | formail -I "To: $TO" -I "CC: $CC" -I "From: $FROM" -i "Date: $DATE" | sed "0,/^$/s/^$/\n$GIT_FROM\n/" | tail -n +2 | sendmail -t
-                if [ $? -eq 1 ]; then
-                    ERROR=1
-                fi
-            done
-            ;;
-        *)
-            echo "ERROR: unknown MTA: $PULL_MTA"
-            usage
-            exit 1
-            ;;
-    esac
-
-    if [ $ERROR -eq 1 ]; then
-        echo "ERROR: Failed to send one or more messages. Check your MTA log for details."
-    fi
+	ERROR=0
+	case "$PULL_MTA" in
+	git)
+		export IFS=$','
+		GIT_TO=$(for R in $TO; do echo -n "--to='$R' "; done)
+		GIT_CC=$(for R in $CC; do echo -n "--cc='$R' "; done)
+		unset IFS
+		for PATCH in $PDIR/*patch; do
+			# We harvest the emails manually, so force git not to.
+			eval "git send-email $GIT_TO $GIT_CC --no-chain-reply-to --suppress-cc=all $PATCH"
+			if [ $? -eq 1 ]; then
+				ERROR=1
+			fi
+		done
+		;;
+	sendmail)
+		for PATCH in $PDIR/*patch; do
+			# Insert To and CC headers via formail to keep them separate and
+			# appending them to the sendmail command as -- $TO $CC has
+			# proven to be an exercise in futility.
+			#
+			# Clear the From header, leaving it up to sendmail to insert an
+			# appropriate one. Insert the original sender (per git) into the
+			# body of the message.
+			#
+			# Use tail to remove the email envelope from git or formail as
+			# msmtp (sendmail) would choke on them.
+			#
+			# Modify the patch date for sequential delivery, but retain the
+			# original date as "Old-Date".
+			DATE=$(date +"%a, %d %b %Y %k:%M:%S %z")
+			GIT_FROM=$(cat $PATCH | formail -X "From:")
+			cat $PATCH | formail -I "To: $TO" -I "CC: $CC" -I "From: $FROM" -i "Date: $DATE" | sed "0,/^$/s/^$/\n$GIT_FROM\n/" | tail -n +2 | sendmail -t
+			if [ $? -eq 1 ]; then
+				ERROR=1
+			fi
+		done
+		;;
+	*)
+		echo "ERROR: unknown MTA: $PULL_MTA"
+		usage
+		exit 1
+		;;
+	esac
+
+	if [ $ERROR -eq 1 ]; then
+		echo "ERROR: Failed to send one or more messages. Check your MTA log for details."
+	fi
 else
-    echo "Send aborted."
+	echo "Send aborted."
 fi
 
Signature · 1 line
1.7.3.4
author
#24 lore raw

PATCH 21/30 send-pull-request: remove local mta support

In reply to Saul Wold

From: Darren Hart <[email protected]>

There is no real value in supporting sendmail directly when git can be configured to use it. The script used to generate the pull request mails relies heavily on git, so doing so here does not impose any additional dependencies and it greatly reduces the complexity of this script.

---
 scripts/send-pull-request |  108 +++++++++------------------------------------
 1 files changed, 21 insertions(+), 87 deletions(-)
scripts/send-pull-request +21 -87
index 76dd7a2d..d265c47 100755
@@ -1,15 +1,9 @@
 #!/bin/bash
 AUTO=0
 
-# Check env for any default settings, command line options will override these.
-if [ -z "$PULL_MTA" ]; then
-    PULL_MTA="sendmail"
-fi
-
 # Prevent environment leakage to these vars.
 unset TO
 unset CC
-# allow the user to set FROM in the environment
 
 usage()
 {
@@ -18,10 +12,6 @@ Usage: $(basename $0) [-h] [-a] [[-t email]...] -p pull-dir
   -t email     Explicitly add email to the recipients
   -a           Automatically harvest recipients from "*-by: email" lines
                in the patches in the pull-dir
-  -f           Specify a FROM address, you can also use the FROM environment
-               variable. If you do not specify one, it will try to use the one
-               from your git config. This is ignored if -g is used.
-  -g           Use git-send-email to send mail instead of sendmail
   -p pull-dir  Directory containing summary and patch files
 EOM
 }
@@ -49,17 +39,11 @@ harvest_recipients()
 
 
 # Parse and verify arguments
-while getopts "af:ghp:t:" OPT; do
+while getopts "ahp:t:" OPT; do
 	case $OPT in
 	a)
 		AUTO=1
 		;;
-	f)
-		FROM="$OPTARG"
-		;;
-	g)
-		PULL_MTA="git"
-		;;
 	h)
 		usage
 		exit 0
@@ -109,29 +93,14 @@ if [ $AUTO -eq 1 ]; then
 	harvest_recipients CC "^.*-[Bb][Yy]: *"
 fi
 
-case "$PULL_MTA" in
-git)
-	FROM="$(git config sendemail.from)"
-	AUTO_TO="$(git config sendemail.to)"
-	if [ -n "$AUTO_TO" ]; then
-		if [ -n "$TO" ]; then
-			TO="$TO,$AUTO_TO"
-		else
-			TO="$AUTO_TO"
-		fi
+AUTO_TO="$(git config sendemail.to)"
+if [ -n "$AUTO_TO" ]; then
+	if [ -n "$TO" ]; then
+		TO="$TO,$AUTO_TO"
+	else
+		TO="$AUTO_TO"
 	fi
-	;;
-sendmail)
-	if [ -z "$FROM" ]; then
-		FROM="$(git config user.name) <$(git config user.email)>"
-		if [ -z "$FROM" ]; then
-			echo "ERROR: unable to determine a FROM address"
-			usage
-			exit 1
-		fi
-	fi
-	;;
-esac
+fi
 
 if [ -z "$TO" ] && [ -z "$CC" ]; then
 	echo "ERROR: you have not specified any recipients."
@@ -145,10 +114,7 @@ cat <<EOM
 The following patches:
 $(for PATCH in $PDIR/*.patch; do echo "    $PATCH"; done)
 
-will be sent with the following headers:
-  From: $FROM
-    To: $TO
-    CC: $CC
+will now be sent via the git send-email command.
 
 EOM
 echo "Continue? [y/N] "
@@ -156,52 +122,20 @@ read cont
 
 if [ "$cont" == "y" ] || [ "$cont" == "Y" ]; then
 	ERROR=0
-	case "$PULL_MTA" in
-	git)
-		export IFS=$','
-		GIT_TO=$(for R in $TO; do echo -n "--to='$R' "; done)
-		GIT_CC=$(for R in $CC; do echo -n "--cc='$R' "; done)
-		unset IFS
-		for PATCH in $PDIR/*patch; do
-			# We harvest the emails manually, so force git not to.
-			eval "git send-email $GIT_TO $GIT_CC --no-chain-reply-to --suppress-cc=all $PATCH"
-			if [ $? -eq 1 ]; then
-				ERROR=1
-			fi
-		done
-		;;
-	sendmail)
-		for PATCH in $PDIR/*patch; do
-			# Insert To and CC headers via formail to keep them separate and
-			# appending them to the sendmail command as -- $TO $CC has
-			# proven to be an exercise in futility.
-			#
-			# Clear the From header, leaving it up to sendmail to insert an
-			# appropriate one. Insert the original sender (per git) into the
-			# body of the message.
-			#
-			# Use tail to remove the email envelope from git or formail as
-			# msmtp (sendmail) would choke on them.
-			#
-			# Modify the patch date for sequential delivery, but retain the
-			# original date as "Old-Date".
-			DATE=$(date +"%a, %d %b %Y %k:%M:%S %z")
-			GIT_FROM=$(cat $PATCH | formail -X "From:")
-			cat $PATCH | formail -I "To: $TO" -I "CC: $CC" -I "From: $FROM" -i "Date: $DATE" | sed "0,/^$/s/^$/\n$GIT_FROM\n/" | tail -n +2 | sendmail -t
-			if [ $? -eq 1 ]; then
-				ERROR=1
-			fi
-		done
-		;;
-	*)
-		echo "ERROR: unknown MTA: $PULL_MTA"
-		usage
-		exit 1
-		;;
-	esac
+	export IFS=$','
+	GIT_TO=$(for R in $TO; do echo -n "--to='$R' "; done)
+	GIT_CC=$(for R in $CC; do echo -n "--cc='$R' "; done)
+	unset IFS
+	for PATCH in $PDIR/*patch; do
+		# We harvest the emails manually, so force git not to.
+		eval "git send-email $GIT_TO $GIT_CC --no-chain-reply-to --suppress-cc=all $PATCH"
+		if [ $? -eq 1 ]; then
+			ERROR=1
+		fi
+	done
 
 	if [ $ERROR -eq 1 ]; then
-		echo "ERROR: Failed to send one or more messages. Check your MTA log for details."
+		echo "ERROR: Failed to send one or more messages."
 	fi
 else
 	echo "Send aborted."
Signature · 1 line
1.7.3.4
author
#25 lore raw

PATCH 22/30 send-pull-request: fix greedy auto-cc regex

In reply to Saul Wold

From: Darren Hart <[email protected]>

A greedy regular expression caused emails to be harvested from patches that were quoted in the commit message. Ensure only tags that start at the beginning of the line are considered for harvesting.

NOTE: users are still responsible for verifying the recipients list and to
ensure they do not spam people!

---
 scripts/send-pull-request |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
scripts/send-pull-request +1 -1
index d265c47..b294d35 100755
@@ -90,7 +90,7 @@ done
 if [ $AUTO -eq 1 ]; then
 	harvest_recipients TO "^[Tt][Oo]: *"
 	harvest_recipients CC "^[Cc][Cc]: *"
-	harvest_recipients CC "^.*-[Bb][Yy]: *"
+	harvest_recipients CC "^[A-Z][A-Za-z-]*-[Bb][Yy]: *"
 fi
 
 AUTO_TO="$(git config sendemail.to)"
Signature · 1 line
1.7.3.4
author
#26 lore raw

PATCH 23/30 send-pull-request: don't send all patches to everyone even with -a

In reply to Saul Wold

From: Darren Hart <[email protected]>

Rather than sending every patch to every recipient of the entire series when -a is used, only send the cover letter to everyone and use git's --signed-off-by-cc feature to generate an auto cc list for the individual patches.

Add a -c option to use --signed-off-by-cc to auto cc recipeients at the individual patch level. This is implied by -a.

Using git to harvest the Cc list means only collecting Signed-off-by and Cc lines, rather than the more generic *-by lines previously. This is a fair trade-off for significantly reduced complexity. If users want to add Acked-by and Tested-by lines and want to use the -a feature, they should include those recipients as Cc lines as well.

Now that we rely on git for auto-cc for the individual patches, make sure the user is prompted before sending each patch by forcing --confirm=always.

---
 scripts/send-pull-request |   75 ++++++++++++++++++++++++++++-----------------
 1 files changed, 47 insertions(+), 28 deletions(-)
scripts/send-pull-request +47 -28
index b294d35..5a11d1f 100755
@@ -1,36 +1,40 @@
 #!/bin/bash
 AUTO=0
+AUTO_CL=0
 
 # Prevent environment leakage to these vars.
 unset TO
 unset CC
+unset AUTO_CC
 
 usage()
 {
 cat <<EOM
-Usage: $(basename $0) [-h] [-a] [[-t email]...] -p pull-dir 
-  -t email     Explicitly add email to the recipients
-  -a           Automatically harvest recipients from "*-by: email" lines
-               in the patches in the pull-dir
+Usage: $(basename $0) [-h] [-a] [-c] [[-t email]...] -p pull-dir 
+  -a           Send the cover letter to every recipient listed in Cc and
+               Signed-off-by lines found in the cover letter and the patches.
+	       This option implies -c.
+  -c           Expand the Cc list for the individual patches using the Cc and
+               Signed-off-by lines from the same patch.
   -p pull-dir  Directory containing summary and patch files
+  -t email     Explicitly add email to the recipients
 EOM
 }
 
-# Collect To and CC addresses from the patch files if they exist
-# $1: Which header to add the recipients to, "TO" or "CC"
-# $2: The regex to match and strip from the line with email addresses
+# Collect addresses from a patch into AUTO_CC
+# $1: a patch file
 harvest_recipients()
 {
-	TO_CC=$1
-	REGX=$2
+	PATCH=$1
 	export IFS=$',\n'
-	for PATCH in $PDIR/*.patch; do
-		# Grab To addresses
+	for REGX in "^[Cc][Cc]: *" "^[Ss]igned-[Oo]ff-[Bb]y: *"; do
 		for EMAIL in $(sed '/^---$/q' $PATCH | grep -e "$REGX" | sed "s/$REGX//"); do
-			if [ "$TO_CC" == "TO" ] && [ "${TO/$EMAIL/}" == "$TO" ] && [ -n "$EMAIL" ]; then
-				if [ -z "$TO" ]; then TO=$EMAIL; else TO="$TO,$EMAIL"; fi
-			elif [ "$TO_CC" == "CC" ] && [ "${CC/$EMAIL/}" == "$CC" ] && [ -n "$EMAIL" ]; then
-				if [ -z "$CC" ]; then CC=$EMAIL; else CC="$CC,$EMAIL"; fi
+			if [ "${AUTO_CC/$EMAIL/}" == "$AUTO_CC" ] && [ -n "$EMAIL" ]; then
+				if [ -z "$AUTO_CC" ]; then
+					AUTO_CC=$EMAIL;
+				else
+					AUTO_CC="$AUTO_CC,$EMAIL";
+				fi
 			fi
 		done
 	done
@@ -39,9 +43,13 @@ harvest_recipients()
 
 
 # Parse and verify arguments
-while getopts "ahp:t:" OPT; do
+while getopts "achp:t:" OPT; do
 	case $OPT in
 	a)
+		AUTO_CL=1
+		AUTO=1
+		;;
+	c)
 		AUTO=1
 		;;
 	h)
@@ -84,13 +92,11 @@ for TOKEN in SUBJECT BLURB; do
 done
 
 
-# Harvest emails from the generated patches and populate the TO and CC variables
-# In addition to To and CC headers/lines, the common Signed-off-by, Tested-by,
-# etc. (*-by) will be added to CC.
-if [ $AUTO -eq 1 ]; then
-	harvest_recipients TO "^[Tt][Oo]: *"
-	harvest_recipients CC "^[Cc][Cc]: *"
-	harvest_recipients CC "^[A-Z][A-Za-z-]*-[Bb][Yy]: *"
+# Harvest emails from the generated patches and populate AUTO_CC.
+if [ $AUTO_CL -eq 1 ]; then
+	for PATCH in $PDIR/*.patch; do
+		harvest_recipients $PATCH
+	done
 fi
 
 AUTO_TO="$(git config sendemail.to)"
@@ -102,7 +108,7 @@ if [ -n "$AUTO_TO" ]; then
 	fi
 fi
 
-if [ -z "$TO" ] && [ -z "$CC" ]; then
+if [ -z "$TO" ] && [ -z "$AUTO_CC" ]; then
 	echo "ERROR: you have not specified any recipients."
 	usage
 	exit 1
@@ -114,7 +120,8 @@ cat <<EOM
 The following patches:
 $(for PATCH in $PDIR/*.patch; do echo "    $PATCH"; done)
 
-will now be sent via the git send-email command.
+will now be sent via the git send-email command. Git will prompt you before
+sending any email.
 
 EOM
 echo "Continue? [y/N] "
@@ -124,11 +131,23 @@ if [ "$cont" == "y" ] || [ "$cont" == "Y" ]; then
 	ERROR=0
 	export IFS=$','
 	GIT_TO=$(for R in $TO; do echo -n "--to='$R' "; done)
-	GIT_CC=$(for R in $CC; do echo -n "--cc='$R' "; done)
+	GIT_CC=$(for R in $AUTO_CC; do echo -n "--cc='$R' "; done)
 	unset IFS
 	for PATCH in $PDIR/*patch; do
-		# We harvest the emails manually, so force git not to.
-		eval "git send-email $GIT_TO $GIT_CC --no-chain-reply-to --suppress-cc=all $PATCH"
+		if [ $AUTO -eq 1 ]; then
+			if [ $PATCH == "$CL" ] && [ $AUTO_CL -eq 1 ]; then
+				# Send the cover letter to every recipient, both
+				# specified as well as harvested.
+				eval "git send-email $GIT_TO $GIT_CC --confirm=always --no-chain-reply-to --suppress-cc=all $PATCH"
+			else
+				# Send the patch to the specified recipients and
+				# those git finds in this specific patch.
+				eval "git send-email $GIT_TO --confirm=always --no-chain-reply-to --signed-off-by-cc $PATCH"
+			fi
+		else
+			# Only send to the explicitly specified recipients
+			eval "git send-email $GIT_TO --confirm=always --no-chain-reply-to --suppress-cc=all $PATCH"
+		fi
 		if [ $? -eq 1 ]; then
 			ERROR=1
 		fi
Signature · 1 line
1.7.3.4
author
#27 lore raw

PATCH 24/30 send-pull-request: verify git sendemail config

In reply to Saul Wold

From: Darren Hart <[email protected]>

Perform a quick sanity check to be able to direct users to configure git.sendemail if they haven't yet.

---
 scripts/send-pull-request |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
scripts/send-pull-request +15 -0
index 5a11d1f..21eb302 100755
@@ -41,6 +41,18 @@ harvest_recipients()
 	unset IFS
 }
 
+check_git_sendemail_config()
+{
+	GIT_SMTP=$(git config sendemail.smtpserver)
+	GIT_FROM=$(git config sendemail.from)
+	if [ -z "$GIT_SMTP" ] || [ -z "$GIT_FROM" ]; then
+		echo "ERROR: git sendemail is not configured."
+		echo "Please read GIT-SEND-EMAIL(1) and configure:"
+		echo "  sendemail.smtpserver"
+		echo "  sendemail.from"
+		exit 1
+	fi
+}
 
 # Parse and verify arguments
 while getopts "achp:t:" OPT; do
@@ -74,6 +86,9 @@ while getopts "achp:t:" OPT; do
 	esac
 done
 
+# Abort early if git-send-email is not properly configured
+check_git_sendemail_config
+
 if [ -z "$PDIR" ]; then
 	echo "ERROR: you must specify a pull-dir."
 	usage
Signature · 1 line
1.7.3.4
author
#28 lore raw

PATCH 25/30 create-pull-request: do not check certificate

In reply to Saul Wold

From: Otavio Salvador <[email protected]>

Some remotes can use HTTPS and we don't need to check the certificate of the host so wget call is changed to avoid it.

---
 scripts/create-pull-request |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
scripts/create-pull-request +1 -1
index 202d99d..9dbd55a 100755
@@ -112,7 +112,7 @@ esac
 # Perform a sanity test on the web URL. Issue a warning if it is not
 # accessible, but do not abort as users may want to run offline.
 if [ -n "$WEB_URL" ]; then
-	wget -q $WEB_URL -O /dev/null
+	wget --no-check-certificate -q $WEB_URL -O /dev/null
 	if [ $? -ne 0 ]; then
 		echo "WARNING: Branch '$BRANCH' was not found on the contrib git tree."
 		echo "         Please check your remote and branch parameter before sending."
Signature · 1 line
1.7.3.4
author
#29 lore raw

PATCH 26/30 create-pull-request: add GitHub remote support

In reply to Saul Wold

From: Otavio Salvador <[email protected]>

---
 scripts/create-pull-request |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
scripts/create-pull-request +7 -0
index 9dbd55a..a9cf6f9 100755
@@ -82,6 +82,10 @@ while getopts "b:chi:m:o:p:r:s:u:" OPT; do
 			REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
 			REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
 			;;
+		[email protected]:*)
+			REMOTE_REPO=$(echo $REMOTE_URL | sed 's#.*:\(.*\)\(\.git\)$#\1#')
+			REMOTE_URL=${REMOTE_URL/"[email protected]:"/"git://github.com/"}
+			;;
 		esac
 		# The .git suffix is optional in the URL, drop in for the REPO
 		REMOTE_REPO=${REMOTE_REPO%.git}
@@ -107,6 +111,9 @@ case "$REMOTE_URL" in
 	*git.pokylinux.org*)
 		WEB_URL="http://git.pokylinux.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"
 		;;
+	*github.com*)
+		WEB_URL="https://github.com/$REMOTE_REPO/tree/$BRANCH"
+		;;
 esac
 
 # Perform a sanity test on the web URL. Issue a warning if it is not
Signature · 1 line
1.7.3.4
author
#30 lore raw

PATCH 27/30 create-pull-request: add untested oe repository support

In reply to Saul Wold

From: Darren Hart <[email protected]>

---
 scripts/create-pull-request |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
scripts/create-pull-request +7 -0
index a9cf6f9..634a289 100755
@@ -82,6 +82,10 @@ while getopts "b:chi:m:o:p:r:s:u:" OPT; do
 			REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
 			REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
 			;;
+		*ssh://[email protected]*)
+			REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
+			REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
+			;;
 		[email protected]:*)
 			REMOTE_REPO=$(echo $REMOTE_URL | sed 's#.*:\(.*\)\(\.git\)$#\1#')
 			REMOTE_URL=${REMOTE_URL/"[email protected]:"/"git://github.com/"}
@@ -111,6 +115,9 @@ case "$REMOTE_URL" in
 	*git.pokylinux.org*)
 		WEB_URL="http://git.pokylinux.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"
 		;;
+	*git.openembedded.org*)
+		WEB_URL="http://cgit.openembedded.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"
+		;;
 	*github.com*)
 		WEB_URL="https://github.com/$REMOTE_REPO/tree/$BRANCH"
 		;;
Signature · 1 line
1.7.3.4
author
#31 lore raw

PATCH 28/30 send-pull-request: streamline git-send-email usage

In reply to Saul Wold

From: Darren Hart <[email protected]>

The script was sending one patch at a time, which defeats the internal confirmation mechanism of git-send-email (which would otherwise allow the user to send all patches or abort immediately).

Rework the sending logic to use no more than two commands. Use two commands when the cover letter is to be sent to all recipients with the -a argument. Otherwise, send all patches via the same command.

The script duplicates git's send confirmation, eliminate that.

---
 scripts/send-pull-request |   68 +++++++++++++++++---------------------------
 1 files changed, 26 insertions(+), 42 deletions(-)
scripts/send-pull-request +26 -42
index 21eb302..8d0bd34 100755
@@ -1,6 +1,7 @@
 #!/bin/bash
 AUTO=0
 AUTO_CL=0
+GITSOBCC=""
 
 # Prevent environment leakage to these vars.
 unset TO
@@ -59,10 +60,11 @@ while getopts "achp:t:" OPT; do
 	case $OPT in
 	a)
 		AUTO_CL=1
-		AUTO=1
-		;;
+		# Fall through to include -c
+		;&
 	c)
 		AUTO=1
+		GITSOBCC="--signed-off-by-cc"
 		;;
 	h)
 		usage
@@ -130,48 +132,30 @@ if [ -z "$TO" ] && [ -z "$AUTO_CC" ]; then
 fi
 
 
-# Generate report for the user and require confirmation before sending
-cat <<EOM
-The following patches:
-$(for PATCH in $PDIR/*.patch; do echo "    $PATCH"; done)
+# Convert the collected addresses into git-send-email argument strings
+export IFS=$','
+GIT_TO=$(for R in $TO; do echo -n "--to='$R' "; done)
+GIT_CC=$(for R in $AUTO_CC; do echo -n "--cc='$R' "; done)
+unset IFS
 
-will now be sent via the git send-email command. Git will prompt you before
-sending any email.
 
-EOM
-echo "Continue? [y/N] "
-read cont
-
-if [ "$cont" == "y" ] || [ "$cont" == "Y" ]; then
-	ERROR=0
-	export IFS=$','
-	GIT_TO=$(for R in $TO; do echo -n "--to='$R' "; done)
-	GIT_CC=$(for R in $AUTO_CC; do echo -n "--cc='$R' "; done)
-	unset IFS
-	for PATCH in $PDIR/*patch; do
-		if [ $AUTO -eq 1 ]; then
-			if [ $PATCH == "$CL" ] && [ $AUTO_CL -eq 1 ]; then
-				# Send the cover letter to every recipient, both
-				# specified as well as harvested.
-				eval "git send-email $GIT_TO $GIT_CC --confirm=always --no-chain-reply-to --suppress-cc=all $PATCH"
-			else
-				# Send the patch to the specified recipients and
-				# those git finds in this specific patch.
-				eval "git send-email $GIT_TO --confirm=always --no-chain-reply-to --signed-off-by-cc $PATCH"
-			fi
-		else
-			# Only send to the explicitly specified recipients
-			eval "git send-email $GIT_TO --confirm=always --no-chain-reply-to --suppress-cc=all $PATCH"
-		fi
-		if [ $? -eq 1 ]; then
-			ERROR=1
-		fi
-	done
-
-	if [ $ERROR -eq 1 ]; then
-		echo "ERROR: Failed to send one or more messages."
+# Handoff to git-send-email. It will perform the send confirmation.
+PATCHES=$(echo $PDIR/*.patch)
+if [ $AUTO_CL -eq 1 ]; then
+	# Send the cover letter to every recipient, both specified as well as
+	# harvested. Then remove it from the patches list.
+	eval "git send-email $GIT_TO $GIT_CC --confirm=always --no-chain-reply-to --suppress-cc=all $CL"
+	if [ $? -eq 1 ]; then
+		echo "ERROR: failed to send cover-letter with automatic recipients."
+		exit 1
 	fi
-else
-	echo "Send aborted."
+	PATCHES=${PATCHES/"$CL"/}
 fi
 
+# Send the patch to the specified recipients and, if -c was specified, those git
+# finds in this specific patch.
+eval "git send-email $GIT_TO --confirm=always --no-chain-reply-to $GITSOBCC $PATCHES"
+if [ $? -eq 1 ]; then
+	echo "ERROR: failed to send patches."
+	exit 1
+fi
Signature · 1 line
1.7.3.4
author
#32 lore raw

PATCH 29/30 *pull-request: add copyright, license, and descriptions

In reply to Saul Wold

From: Darren Hart <[email protected]>

---
 scripts/create-pull-request |   26 ++++++++++++++++++++++++++
 scripts/send-pull-request   |   25 +++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 0 deletions(-)
scripts/create-pull-request +26 -0
index 634a289..b808146 100755
@@ -1,4 +1,30 @@
 #!/bin/bash
+#
+# Copyright (c) 2010-2011,  Intel Corporation.
+# All Rights Reserved
+# 
+# This program is free software;  you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY;  without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+# the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program;  if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+#
+# This script is intended to be used to prepare a series of patches
+# and a cover letter in an appropriate and consistent format for
+# submission to Open Embedded and The Yocto Project, as well as to
+# related projects and layers.
+#
+
 ODIR=pull-$$
 RELATIVE_TO="master"
 COMMIT_ID="HEAD"
scripts/send-pull-request +25 -0
index 8d0bd34..cee9253 100755
@@ -1,4 +1,29 @@
 #!/bin/bash
+#
+# Copyright (c) 2010-2011,  Intel Corporation.
+# All Rights Reserved
+# 
+# This program is free software;  you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY;  without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+# the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program;  if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+#
+# This script is intended to be used to send a patch series prepared by the
+# create-pull-request script to Open Embedded and The Yocto Project, as well
+# as to related projects and layers.
+#
+
 AUTO=0
 AUTO_CL=0
 GITSOBCC=""
Signature · 1 line
1.7.3.4
author
#33 lore raw

PATCH 30/30 u-boot: update SRCREV to 2011.03

In reply to Saul Wold

From: Darren Hart <[email protected]>

Fixes [YOCTO 1029]

u-boot 2010.12 fails to run on the Beagleboard C4 and xM Rev A boards. Commit 55aacbc30e48f6f8a73fb989a58625e70887bc01 suggests there was a mixup during development, as the MD5SUM change is from the 2011.03 SRCREV back to the 2010.12. Chances are a patch was never sent to update the SRCREV, leaving the MD5SUM in a bad state.

Update the SRCREV and COPYING MD5SUM to use the 2011.03 version. Built and tested on Beagleboard xM Rev A and Beagleboard Rev C4.

Cc Jeff Osier-Mixon <[email protected]>
Cc Yi Zhao <[email protected]>
Cc Robert Berger <[email protected]>
Cc Gary Thomas <[email protected]>
---
 meta/recipes-bsp/uboot/u-boot_git.bb |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
meta/recipes-bsp/uboot/u-boot_git.bb +4 -4
index d8c196a..c5583ff 100644
@@ -1,14 +1,14 @@
 require u-boot.inc
 
 LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4c6cde5df68eff615d36789dc18edd3b \
+LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb \
                     file://README;beginline=1;endline=22;md5=3a00ef51d3fc96e9d6c1bc4708ccd3b5"
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/u-boot-git/${MACHINE}"
 
-SRCREV = "v2010.12"
-PV = "v2010.12+${PR}+git${SRCPV}"
-PR="r2"
+SRCREV = "v2011.03"
+PV = "v2011.03+${PR}+git${SRCPV}"
+PR="r3"
 
 SRC_URI = "git://git.denx.de/u-boot.git;branch=master;protocol=git"
 
Signature · 1 line
1.7.3.4
#34 lore raw
In reply to Saul Wold
Quoted 5 lines · Saul Wold

This has a few core fixes to master for broken builds, utils.bbclass address the perl failure and qt4-tools-native address a qt4 failure.

Additional this has Darren's new create/send pull request along with fixes for 4.6 and libc overrides.

Merged apart from:

Quoted 2 lines

Dexuan Cui (1):
package-index.bb: add support for deb and rpm.

which just needs a quick further minor tweak first (explanation sent).

Cheers,

Richard