From 60eadcbc8b0c1a80baffeb5c43f610f4361ca64b Mon Sep 17 00:00:00 2001 From: zhuchunyi Date: Wed, 6 Nov 2019 19:58:07 +0800 Subject: [PATCH] update code --- zd1211-firmware-1.4-build__from_headers.patch | 158 ++++++++++++++++++ zd1211-firmware-1.5.tar.bz2 | Bin 0 -> 38291 bytes zd1211-firmware.spec | 40 +++++ 3 files changed, 198 insertions(+) create mode 100644 zd1211-firmware-1.4-build__from_headers.patch create mode 100644 zd1211-firmware-1.5.tar.bz2 create mode 100644 zd1211-firmware.spec diff --git a/zd1211-firmware-1.4-build__from_headers.patch b/zd1211-firmware-1.4-build__from_headers.patch new file mode 100644 index 0000000..299cf7f --- /dev/null +++ b/zd1211-firmware-1.4-build__from_headers.patch @@ -0,0 +1,158 @@ +diff -uNr zd1211-firmware/create_fw_files.c zd1211rw_fw_2007-03-19_snap/create_fw_files.c +--- zd1211-firmware/create_fw_files.c 1970-01-01 01:00:00.000000000 +0100 ++++ zd1211rw_fw_2007-03-19_snap/create_fw_files.c 2006-12-25 11:02:17.000000000 +0100 +@@ -0,0 +1,116 @@ ++#include ++#include ++#include ++#include ++ ++#define ZD1211 1 ++ ++const uint8_t ws11uph[] ++#include "WS11UPh.h" ++ ++const uint8_t ws11uphr[] ++#include "WS11UPhR.h" ++ ++const uint8_t ws11uphm[] ++#include "WS11UPhm.h" ++ ++const uint8_t ws11ub[] ++#include "WS11Ub.h" ++ ++const uint8_t ws11ur[] ++#include "WS11Ur.h" ++ ++#undef ZD1211 ++ ++#define ZD1211B 1 ++ ++const uint8_t zd1211b_ws11uph[] ++#include "WS11UPh.h" ++ ++const uint8_t zd1211b_ws11uphr[] ++#include "WS11UPhR.h" ++ ++const uint8_t zd1211b_ws11uphm[] ++#include "WS11UPhm.h" ++ ++const uint8_t zd1211b_ws11ub[] ++#include "WS11Ub.h" ++ ++const uint8_t zd1211b_ws11ur[] ++#include "WS11Ur.h" ++ ++#undef ZD1211B ++ ++ ++static int write_fw_file(const char *path, const uint8_t *bytes, size_t size) ++{ ++ FILE *f = NULL; ++ ++ fprintf(stderr,"Write file %s (%zu bytes) ... ", path, size); ++ fflush(stderr); ++ f = fopen(path, "w"); ++ if (!f) { ++ fprintf(stderr, "couldn't open %s - error %s (%d)\n", ++ path, strerror(errno), errno); ++ goto error; ++ } ++ ++ size_t s = fwrite(bytes, 1, size, f); ++ if (s != size) { ++ fprintf(stderr, "Error while writing.\n"); ++ goto error; ++ } ++ ++ fclose(f); ++ fprintf(stderr, "done\n"); ++ return 0; ++error: ++ if (f) ++ fclose(f); ++ return 1; ++} ++ ++int main (void) ++{ ++ int r; ++ ++ r = write_fw_file("zd1211_uph", ws11uph, sizeof(ws11uph)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211_uphr", ws11uphr, sizeof(ws11uphr)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211_uphm", ws11uphm, sizeof(ws11uphm)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211_ub", ws11ub, sizeof(ws11ub)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211_ur", ws11ur, sizeof(ws11ur)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211b_uph", zd1211b_ws11uph, ++ sizeof(zd1211b_ws11uph)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211b_uphr", zd1211b_ws11uphr, ++ sizeof(zd1211b_ws11uphr)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211b_uphm", zd1211b_ws11uphm, ++ sizeof(zd1211b_ws11uphm)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211b_ub", zd1211b_ws11ub, ++ sizeof(zd1211b_ws11ub)); ++ if (r) ++ goto error; ++ r = write_fw_file("zd1211b_ur", zd1211b_ws11ur, ++ sizeof(zd1211b_ws11ur)); ++ if (r) ++ goto error; ++ ++ return 0; ++error: ++ return 1; ++} +diff -uNr zd1211-firmware/Makefile zd1211rw_fw_2007-03-19_snap/Makefile +--- zd1211-firmware/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ zd1211rw_fw_2007-03-19_snap/Makefile 2007-10-12 12:44:58.000000000 +0200 +@@ -0,0 +1,33 @@ ++CC := gcc ++CFLAGS := -Wall ++ ++ifneq ($(USER),root) ++SUDO := ++endif ++ ++FW_DIR := /lib/firmware/zd1211 ++ ++FILES := zd1211_ub zd1211_uph zd1211_uphm zd1211_uphr zd1211_ur \ ++ zd1211b_ub zd1211b_uph zd1211b_uphm zd1211b_uphr zd1211b_ur ++ ++all:: files ++ ++create_fw_files:: create_fw_files.c WS11UPh.h WS11UPhR.h WS11UPhm.h WS11Ub.h \ ++ WS11Ur.h ++ $(CC) $(CFLAGS) $< -o $@ ++ ++.PHONY: files clean tar ++files:: $(FILES) ++ ++$(FILES):: create_fw_files ++ ./create_fw_files ++ ++clean:: ++ rm -f create_fw_files *.o zd1211_u* zd1211b_u* ++ ++distclean:: clean ++ rm -f WS11*.h ++ ++install:: $(FILES) ++ test -d $(FW_DIR) || $(SUDO) mkdir -p $(FW_DIR) ++ $(SUDO) cp $(FILES) $(FW_DIR) + diff --git a/zd1211-firmware-1.5.tar.bz2 b/zd1211-firmware-1.5.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3bee4df1d5d50a14f76d6776982932f35a40c134 GIT binary patch literal 38291 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 YD27!<|3k2FNB`pPNT&)C5S`UBV3hsJz5oCK literal 0 HcmV?d00001 diff --git a/zd1211-firmware.spec b/zd1211-firmware.spec new file mode 100644 index 0000000..4f57b79 --- /dev/null +++ b/zd1211-firmware.spec @@ -0,0 +1,40 @@ +Name: zd1211-firmware +Version: 1.5 +Release: 4 +Summary: Firmware for wireless devices based on zd1211 chipset +License: GPLv2 +URL: https://sourceforge.net/projects/zd1211 +Source0: https://downloads.sourceforge.net/zd1211/zd1211-firmware-%{version}.tar.bz2 +Patch0: zd1211-firmware-1.4-build__from_headers.patch +BuildArch: noarch + +BuildRequires: gcc + +%description +This package contains the firmware required to work with the zd1211 chipset. + +%package_help + +%prep +%autosetup -n %{name} -p1 +sed -i 's/\r//' *.h + +%build +%make_build CFLAGS="$RPM_OPT_FLAGS" + +%install +make install FW_DIR=$RPM_BUILD_ROOT/lib/firmware/zd1211 + + +%files +%defattr(-,root,root) +%license COPYING +/lib/firmware/zd1211/* + +%files help +%defattr(-,root,root) +%doc README + +%changelog +* Sat Oct 12 2019 openEuler Buildteam - 1.5-4 +- Package init