uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
52
pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
Normal file
52
pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
This patch does two things:
|
||||
1) Drops probe-bcache, so now new util-linux detecting functionality is used.
|
||||
2) Drops bcache-register, using kmod (built in udev) and moving registering device
|
||||
into rule using 'sh'.
|
||||
This reduces things that need to be present in initrd, replacing them with already
|
||||
existing functionality and reducing overall initrd size.
|
||||
|
||||
diff --git a/69-bcache.rules b/69-bcache.rules
|
||||
index 5d28e70..6a52893 100644
|
||||
--- a/69-bcache.rules
|
||||
+++ b/69-bcache.rules
|
||||
@@ -10,15 +10,11 @@ KERNEL=="fd*|sr*", GOTO="bcache_end"
|
||||
# It recognised bcache (util-linux 2.24+)
|
||||
ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found"
|
||||
# It recognised something else; bail
|
||||
-ENV{ID_FS_TYPE}=="?*", GOTO="bcache_backing_end"
|
||||
-
|
||||
-# Backing devices: scan, symlink, register
|
||||
-IMPORT{program}="probe-bcache -o udev $tempnode"
|
||||
-ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end"
|
||||
-ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
|
||||
+GOTO="bcache_backing_end"
|
||||
|
||||
LABEL="bcache_backing_found"
|
||||
-RUN+="bcache-register $tempnode"
|
||||
+RUN{builtin}+="kmod load bcache"
|
||||
+RUN+="/bin/sh -c 'echo $tempnode > /sys/fs/bcache/register_quiet'"
|
||||
LABEL="bcache_backing_end"
|
||||
|
||||
# Cached devices: symlink
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 3f8d87b..15638a7 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -9,7 +9,7 @@ all: make-bcache probe-bcache bcache-super-show
|
||||
|
||||
install: make-bcache probe-bcache bcache-super-show
|
||||
$(INSTALL) -m0755 make-bcache bcache-super-show $(DESTDIR)${PREFIX}/sbin/
|
||||
- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
|
||||
+# $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
|
||||
$(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
|
||||
$(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
|
||||
$(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
|
||||
diff --git a/bcache-register b/bcache-register
|
||||
index 9b592bc..75b4faf 100755
|
||||
--- a/bcache-register
|
||||
+++ b/bcache-register
|
||||
@@ -1,4 +1,3 @@
|
||||
#!/bin/sh
|
||||
-/sbin/modprobe -qba bcache
|
||||
test -f /sys/fs/bcache/register_quiet && echo "$1" > /sys/fs/bcache/register_quiet
|
||||
|
||||
63
pkgs/tools/filesystems/bcache-tools/default.nix
Normal file
63
pkgs/tools/filesystems/bcache-tools/default.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, util-linux, bash }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bcache-tools";
|
||||
version = "1.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "g2p";
|
||||
repo = "bcache-tools";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Ors2xXRrVTf8Cq3BYnSVSfJy/nyGjT5BGLSNpxOcHR4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ util-linux ];
|
||||
|
||||
# * Remove broken install rules (they ignore $PREFIX) for stuff we don't need
|
||||
# anyway (it's distro specific stuff).
|
||||
# * Fixup absolute path to modprobe.
|
||||
prePatch = ''
|
||||
sed -e "/INSTALL.*initramfs\/hook/d" \
|
||||
-e "/INSTALL.*initcpio\/install/d" \
|
||||
-e "/INSTALL.*dracut\/module-setup.sh/d" \
|
||||
-e "s/pkg-config/$PKG_CONFIG/" \
|
||||
-i Makefile
|
||||
'';
|
||||
|
||||
patches = [
|
||||
./bcache-udev-modern.patch
|
||||
./fix-static.patch
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
"UDEVLIBDIR=${placeholder "out"}/lib/udev/"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
sed -e "s|/bin/sh|${bash}/bin/sh|" -i *.rules
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p "$out/sbin" "$out/lib/udev/rules.d" "$out/share/man/man8"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "User-space tools required for bcache (Linux block layer cache)";
|
||||
longDescription = ''
|
||||
Bcache is a Linux kernel block layer cache. It allows one or more fast
|
||||
disk drives such as flash-based solid state drives (SSDs) to act as a
|
||||
cache for one or more slower hard disk drives.
|
||||
|
||||
This package contains the required user-space tools.
|
||||
|
||||
User documentation is in Documentation/bcache.txt in the Linux kernel
|
||||
tree.
|
||||
'';
|
||||
homepage = "https://bcache.evilpiepirate.org/";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
||||
22
pkgs/tools/filesystems/bcache-tools/fix-static.patch
Normal file
22
pkgs/tools/filesystems/bcache-tools/fix-static.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/bcache.c b/bcache.c
|
||||
index 8f37445..79806d8 100644
|
||||
--- a/bcache.c
|
||||
+++ b/bcache.c
|
||||
@@ -26,7 +26,7 @@
|
||||
* x^7 + x^4 + x + 1
|
||||
*/
|
||||
|
||||
-static const uint64_t crc_table[256] = {
|
||||
+const uint64_t crc_table[256] = {
|
||||
0x0000000000000000ULL, 0x42F0E1EBA9EA3693ULL, 0x85E1C3D753D46D26ULL,
|
||||
0xC711223CFA3E5BB5ULL, 0x493366450E42ECDFULL, 0x0BC387AEA7A8DA4CULL,
|
||||
0xCCD2A5925D9681F9ULL, 0x8E224479F47CB76AULL, 0x9266CC8A1C85D9BEULL,
|
||||
@@ -115,7 +115,7 @@ static const uint64_t crc_table[256] = {
|
||||
0x9AFCE626CE85B507ULL
|
||||
};
|
||||
|
||||
-inline uint64_t crc64(const void *_data, size_t len)
|
||||
+uint64_t crc64(const void *_data, size_t len)
|
||||
{
|
||||
uint64_t crc = 0xFFFFFFFFFFFFFFFFULL;
|
||||
const unsigned char *data = _data;
|
||||
Loading…
Add table
Add a link
Reference in a new issue