Skip to contentSkip to conversation

openssl: remove patch's git-hash to support fat/ntfs systems

PATCH New James Knight 3 participants 5 messages Oct 30, 2015 – Oct 31, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 openssl: remove patch's git-hash to support fat/ntfs systems

Altering the OpenSSL parallel build patch's source location; the change removes the Git hash reference from the URL. This is to support storing cache data on file systems which have a more restrictive character set. For this case, the downloaded patch will have the complete filename in the 'dl' directory:

openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d

For FAT/NTFS systems, it cannot handle the '?' character. By only using the patch's filename, the file can be safely stored on FAT/NTFS systems with the name:

openssl-1.0.2d-parallel-build.patch

Removing the Git reference should not be a major issue since this repository (which we are pulling the patch from), appears to be maintain a series of patches for multiple versions of OpenSSL. The patch we are fetching explicitly defines the OpenSSL version we are trying to patch. In the worst case, if the patch is changed on or removed off its head, Buildroot's hash-check will catch this.

---
 package/openssl/openssl.hash | 2 +-
 package/openssl/openssl.mk   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
package/openssl/openssl.hash +1 -1
index 9eaa363..118f532 100644
@@ -1,4 +1,4 @@
 # From https://www.openssl.org/source/openssl-1.0.2d.tar.gz.sha256
 sha256	671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8	openssl-1.0.2d.tar.gz
 # Locally computed
-sha256	deaf6f3af41874ecc6d63841ea14b8e6c71cea81d4a511a754bc90c9a993147f	openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d
+sha256	deaf6f3af41874ecc6d63841ea14b8e6c71cea81d4a511a754bc90c9a993147f	openssl-1.0.2d-parallel-build.patch
package/openssl/openssl.mk +1 -1
index cad8d0c..f2f181b 100644
@@ -14,7 +14,7 @@ HOST_OPENSSL_DEPENDENCIES = host-zlib
 OPENSSL_TARGET_ARCH = generic32
 OPENSSL_CFLAGS = $(TARGET_CFLAGS)
 OPENSSL_PATCH = \
-	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d
+	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2d-parallel-build.patch
 
 ifeq ($(BR2_USE_MMU),)
 OPENSSL_CFLAGS += -DHAVE_FORK=0
Signature · 1 line
1.9.5.msysgit.1
#1 lore raw

PATCH 1/1 openssl: remove patch's git-hash to support fat/ntfs systems

Quoted 6 lines · James Knight

Altering the OpenSSL parallel build patch's source location; the change removes the Git hash reference from the URL. This is to support storing cache data on file systems which have a more restrictive character set. For this case, the downloaded patch will have the complete filename in the 'dl' directory:

Quoted 7 lines

openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d

For FAT/NTFS systems, it cannot handle the '?' character. By only using the patch's filename, the file can be safely stored on FAT/NTFS systems with the name:

openssl-1.0.2d-parallel-build.patch

The same issue exists for fan-ctrl and spidev_test, but it's more difficult to
solve for these because the version is really needed.

So perhaps the solution is to sanitize the local filename by converting ?, :
and maybe others to _.

Quoted 7 lines

Removing the Git reference should not be a major issue since this repository (which we are pulling the patch from), appears to be maintain a series of patches for multiple versions of OpenSSL. The patch we are fetching explicitly defines the OpenSSL version we are trying to patch. In the worst case, if the patch is changed on or removed off its head, Buildroot's hash-check will catch this.

The thing is, it _will_ probably be removed from the head revision at some
point. For instance, the equivalent patch for 1.0.2 was removed in d93bba52f8. And even worse: we will probably not notice in the autobuilders, because by the time this happens we will probably already have bumped openssl and the patch version. But if you use a buildroot release, you'll suddenly get a download error and start scratching your head about how to solve that one...

I think that one trumps supporting FAT or NTFS as your DL_DIR filesystem, so
that's a NACK from me. Sorry.

Regards,
Arnout

Quoted 31 lines
---
 package/openssl/openssl.hash | 2 +-
 package/openssl/openssl.mk   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
package/openssl/openssl.hash +1 -1
index 9eaa363..118f532 100644
@@ -1,4 +1,4 @@
 # From https://www.openssl.org/source/openssl-1.0.2d.tar.gz.sha256
 sha256	671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8	openssl-1.0.2d.tar.gz
 # Locally computed
-sha256	deaf6f3af41874ecc6d63841ea14b8e6c71cea81d4a511a754bc90c9a993147f	openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d
+sha256	deaf6f3af41874ecc6d63841ea14b8e6c71cea81d4a511a754bc90c9a993147f	openssl-1.0.2d-parallel-build.patch
package/openssl/openssl.mk +1 -1
index cad8d0c..f2f181b 100644
@@ -14,7 +14,7 @@ HOST_OPENSSL_DEPENDENCIES = host-zlib
 OPENSSL_TARGET_ARCH = generic32
 OPENSSL_CFLAGS = $(TARGET_CFLAGS)
 OPENSSL_PATCH = \
-	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d
+	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2d-parallel-build.patch
 
 ifeq ($(BR2_USE_MMU),)
 OPENSSL_CFLAGS += -DHAVE_FORK=0
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

PATCH 1/1 openssl: remove patch's git-hash to support fat/ntfs systems

Arnout,

Quoted 2 lines · Arnout Vandecappelle

I think that one trumps supporting FAT or NTFS as your DL_DIR filesystem, so that's a NACK from me.

Agreed.

I'll try to find a way to work around the setup I have then, maybe try a sanitation method (like you've suggested). I'll mark the patch as rejected. I'd be curious if anyone else has any other comments on this.

#3 lore raw

PATCH 1/1 openssl: remove patch's git-hash to support fat/ntfs systems

Quoted 10 lines · James Knight

Arnout,

Quoted 2 lines · Arnout Vandecappelle

I think that one trumps supporting FAT or NTFS as your DL_DIR filesystem, so that's a NACK from me.

Agreed.

I'll try to find a way to work around the setup I have then, maybe try a sanitation method (like you've suggested).

The sanitation is an infrastructural change, of course. I would start with
replacing all the uses of <pkg>_SOURCE with a newly introduced <pkg>_DL_SOURCE (which also includes the DL_DIR). Then in a second step you can sanitize _DL_SOURCE and update the download infra.

Regards,
Arnout

Quoted 4 lines

I'll mark the patch as
rejected. I'd be curious if anyone else has any other comments on this.

Signature · 6 lines
Arnout Vandecappelle      arnout dot vandecappelle at essensium dot com
Senior Embedded Software Architect . . . . . . +32-478-010353 (mobile)
Essensium, Mind division . . . . . . . . . . . . . . http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium . . . . . BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#4 lore raw

PATCH 1/1 openssl: remove patch's git-hash to support fat/ntfs systems

Quoted 9 lines
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

I'll try to find a way to work around the setup I have then, maybe try a sanitation method (like you've suggested).

The sanitation is an infrastructural change, of course. I would start with
replacing all the uses of <pkg>_SOURCE with a newly introduced <pkg>_DL_SOURCE (which also includes the DL_DIR). Then in a second step you can sanitize _DL_SOURCE and update the download infra.

Please keep in mind that we'll need a way to disable this and/or change the primary/backup mirror handling so they continue to work (sources.buildroot.net for one).

Signature · 1 line
Bye, Peter Korsgaard