aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2014-08-07 15:24:03 +0000
committerChristian Neukirchen <chneukirchen@gmail.com>2014-08-07 15:46:52 +0000
commit1a37c591cf48e8b4e7c0ad86faa418de376aaa24 (patch)
tree6fb3587118db3125c945ed29b08d35f61e72dbc0
parent645936c8c2a2dbbee7c113e70302180601dee602 (diff)
downloadvoid-packages-1a37c591cf48e8b4e7c0ad86faa418de376aaa24.tar
void-packages-1a37c591cf48e8b4e7c0ad86faa418de376aaa24.tar.gz
void-packages-1a37c591cf48e8b4e7c0ad86faa418de376aaa24.tar.bz2
void-packages-1a37c591cf48e8b4e7c0ad86faa418de376aaa24.tar.lz
void-packages-1a37c591cf48e8b4e7c0ad86faa418de376aaa24.tar.xz
void-packages-1a37c591cf48e8b4e7c0ad86faa418de376aaa24.tar.zst
void-packages-1a37c591cf48e8b4e7c0ad86faa418de376aaa24.zip
grub: fix build; fix zfs detection
-rw-r--r--srcpkgs/grub/patches/zfs.patch55
-rw-r--r--srcpkgs/grub/template7
2 files changed, 61 insertions, 1 deletions
diff --git a/srcpkgs/grub/patches/zfs.patch b/srcpkgs/grub/patches/zfs.patch
new file mode 100644
index 00000000000..b078b9ac7a8
--- /dev/null
+++ b/srcpkgs/grub/patches/zfs.patch
@@ -0,0 +1,55 @@
+--- grub-core/fs/zfs/zfs.c
++++ grub-core/fs/zfs/zfs.c
+@@ -490,15 +490,11 @@ uberblock_verify (uberblock_phys_t * ub, grub_uint64_t offset,
+
+ if (grub_zfs_to_cpu64 (uber->ub_magic, GRUB_ZFS_LITTLE_ENDIAN)
+ == UBERBLOCK_MAGIC
+- && grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN) > 0
+- && grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN)
+- <= SPA_VERSION)
+- endian = GRUB_ZFS_LITTLE_ENDIAN;
++ && SPA_VERSION_IS_SUPPORTED(grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN)))
++ endian = GRUB_ZFS_LITTLE_ENDIAN;
+
+ if (grub_zfs_to_cpu64 (uber->ub_magic, GRUB_ZFS_BIG_ENDIAN) == UBERBLOCK_MAGIC
+- && grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN) > 0
+- && grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN)
+- <= SPA_VERSION)
++ && SPA_VERSION_IS_SUPPORTED(grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN)))
+ endian = GRUB_ZFS_BIG_ENDIAN;
+
+ if (endian == GRUB_ZFS_UNKNOWN_ENDIAN)
+@@ -845,13 +841,13 @@ check_pool_label (struct grub_zfs_data *data,
+ }
+ grub_dprintf ("zfs", "check 8 passed\n");
+
+- if (version > SPA_VERSION)
++ if (!SPA_VERSION_IS_SUPPORTED(version))
+ {
+ grub_free (nvlist);
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "too new version %llu > %llu",
+ (unsigned long long) version,
+- (unsigned long long) SPA_VERSION);
++ (unsigned long long) SPA_VERSION_BEFORE_FEATURES);
+ }
+ grub_dprintf ("zfs", "check 9 passed\n");
+
+--- include/grub/zfs/zfs.h
++++ include/grub/zfs/zfs.h
+@@ -36,8 +36,13 @@ typedef enum grub_zfs_endian
+ /*
+ * On-disk version number.
+ */
+-#define SPA_VERSION 33ULL
+-
++#define SPA_VERSION_INITIAL 1ULL
++#define SPA_VERSION_BEFORE_FEATURES 33ULL
++#define SPA_VERSION 5000ULL
++#define SPA_VERSION_FEATURES 5000ULL
++#define SPA_VERSION_IS_SUPPORTED(v) \
++ (((v) >= SPA_VERSION_INITIAL && (v) <= SPA_VERSION_BEFORE_FEATURES) || \
++ ((v) >= SPA_VERSION_FEATURES && (v) <= SPA_VERSION))
+ /*
+ * The following are configuration names used in the nvlist describing a pool's
+ * configuration.
diff --git a/srcpkgs/grub/template b/srcpkgs/grub/template
index 0649c805f63..e2a6d23fbaf 100644
--- a/srcpkgs/grub/template
+++ b/srcpkgs/grub/template
@@ -1,7 +1,7 @@
# Template file for 'grub'
pkgname=grub
version=2.00
-revision=12
+revision=13
hostmakedepends="flex"
makedepends="libusb-compat-devel ncurses-devel freetype-devel
liblzma-devel device-mapper-devel font-unifont-bdf fuse-devel"
@@ -14,8 +14,13 @@ homepage="http://www.gnu.org/software/grub/"
distfiles="$GNU_SITE/grub/grub-$version.tar.xz"
checksum=784ec38e7edc32239ad75b8e66df04dc8bfb26d88681bc9f627133a6eb85c458
+post_extract() {
+ sed -i -e 's,freetype/ftsynth.h,freetype2/ftsynth.h,' util/grub-mkfont.c
+}
+
do_configure() {
unset CC AS LD RANLIB CPP
+ CFLAGS="$CFLAGS -fno-stack-protector"
configure_args+=" --enable-device-mapper --enable-cache-stats --enable-nls
--enable-grub-mkfont --enable-grub-mount --disable-werror "