unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#51043] Fix build of rkdeveloptool
       [not found] <UbNDhFyAp_6UmSgTIicxl617-LOqZ-hj1TQSPO8a4XbarG2T8MqZwrEguOHeQ-YanQ30pDM_zxd90BpOzMgg8anTh-P-VqSwpRX2DG1HEUM=@protonmail.com>
@ 2022-12-15 20:36 ` phodina via Guix-patches via
  2023-01-09 12:49   ` phodina via Guix-patches via
  0 siblings, 1 reply; 3+ messages in thread
From: phodina via Guix-patches via @ 2022-12-15 20:36 UTC (permalink / raw)
  To: 51043@debbugs.gnu.org; +Cc: Ludovic Courtès, Tobias Geerinckx-Rice


[-- Attachment #1.1: Type: text/plain, Size: 4582 bytes --]

Hi Ludo’,

speaking of lost patches this one is little bit annoying as it does not even build.

Excerpt of the build log, build failure caused probably by introducing stricter compilation flags in `gnu-build-system`:

starting phase `build'
make[1]: Entering directory '/tmp/guix-build-rkdeveloptool-1.3-0.6e92ebc.drv-0/source'
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT crc.o -MD -MP -MF .deps/crc.Tpo -c -o crc.o crc.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKBoot.o -MD -MP -MF .deps/RKBoot.Tpo -c -o RKBoot.o RKBoot.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKComm.o -MD -MP -MF .deps/RKComm.Tpo -c -o RKComm.o RKComm.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKDevice.o -MD -MP -MF .deps/RKDevice.Tpo -c -o RKDevice.o RKDevice.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKImage.o -MD -MP -MF .deps/RKImage.Tpo -c -o RKImage.o RKImage.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKLog.o -MD -MP -MF .deps/RKLog.Tpo -c -o RKLog.o RKLog.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKScan.o -MD -MP -MF .deps/RKScan.Tpo -c -o RKScan.o RKScan.cpp
mv -f .deps/RKBoot.Tpo .deps/RKBoot.Po
mv -f .deps/RKImage.Tpo .deps/RKImage.Po
mv -f .deps/RKLog.Tpo .deps/RKLog.Po
mv -f .deps/RKDevice.Tpo .deps/RKDevice.Po
mv -f .deps/RKComm.Tpo .deps/RKComm.Po
mv -f .deps/crc.Tpo .deps/crc.Po
mv -f .deps/RKScan.Tpo .deps/RKScan.Po
main.cpp: In function ‘bool _Z9mergeBootv.part.0()’:
main.cpp:1541:36: error: ‘%s’ directive output may be truncated writing up to 557 bytes into a region of size 5 [-Werror=format-truncation=]
1541 | snprintf(buffer, sizeof(buffer), "%s", chip);
| ^~
......
1582 | chipType = convertChipType(chip + 2);
| ~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:1541:10: note: ‘snprintf’ output between 1 and 558 bytes into a destination of size 5
1541 | snprintf(buffer, sizeof(buffer), "%s", chip);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[1]: *** [Makefile:473: main.o] Error 1
make[1]: Leaving directory '/tmp/guix-build-rkdeveloptool-1.3-0.6e92ebc.drv-0/source'
make: *** [Makefile:493: all-recursive] Error 1
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "16") exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 2.2 seconds
command "make" "-j" "16" failed with status 2
builder for `/gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv' failed with exit code 1
build of /gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv failed
View build log at '/var/log/guix/drvs/sr/ykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv.gz'.guix build: error: build of `/gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv' failed
------- Original Message -------
On Monday, February 21st, 2022 at 1:43 PM, phodina <phodina@protonmail.com> wrote:

> Hi,
>
> Here's fix of the rkdeveloptool package which fails to build due to GCC complaining about the truncation error.
>
> See https://github.com/rockchip-linux/rkdeveloptool/pull/62.
>
> ----
> Petr

[-- Attachment #1.2: Type: text/html, Size: 6652 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: v2-0002-gnu-Add-rkdeveloptool-pine64.patch --]
[-- Type: text/x-patch; name=v2-0002-gnu-Add-rkdeveloptool-pine64.patch, Size: 5598 bytes --]

From eb44f022cd5a15fe54e503052abde7f6c7a25821 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 21 Feb 2022 13:33:41 +0100
Subject: [PATCH v2 2/2] gnu: Add rkdeveloptool-pine64.

* gnu/packages/hardware.scm (rkdeveloptool-pine64): New variable.
* gnu/local.mk: Add patches.
* gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch: New file.
* gnu/packages/patches/rkdeveloptool-pine64-speed-up-xfer.patch: New file.

diff --git a/gnu/local.mk b/gnu/local.mk
index c01b063d17..520fcb77a2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1811,6 +1811,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch	\
   %D%/packages/patches/r-mixedpower-r2power.patch		\
   %D%/packages/patches/rkdeveloptool-fix-format-truncation.patch \
+  %D%/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch \
+  %D%/packages/patches/rkdeveloptool-pine64-speed-up-xfer.patch \
   %D%/packages/patches/rnp-add-version.cmake.patch		\
   %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
   %D%/packages/patches/rnp-unbundle-googletest.patch		\
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 255b077eaa..5c17b84141 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -1143,6 +1143,45 @@ (define-public rkdeveloptool
 as the Pinebook Pro.")
       (license license:gpl2+))))
 
+(define-public rkdeveloptool-pine64
+  (package
+    (name "rkdeveloptool-pine64")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url
+                     "https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (patches (search-patches
+                        ;; https://github.com/tpwrules/nixos-pinenote/blob/96d2c9158edb9da59afcb952cc864fada18382f9/nix/rkdeveloptool/0001-fix-large-dumps.patch
+                        "rkdeveloptool-pine64-dump-over-2gib.patch"
+                        ;; https://github.com/tpwrules/nixos-pinenote/blob/96d2c9158edb9da59afcb952cc864fada18382f9/nix/rkdeveloptool/0001-speed-up-xfer.patch
+                        "rkdeveloptool-pine64-speed-up-xfer.patch"))
+              (sha256
+               (base32
+                "0nh9592mllygycnxbw91vg58wwais7w3w62rl9gcvc4m3i909b1z"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:tests? #f ;no test suite
+       #:phases (modify-phases %standard-phases
+                  ;; attempts to place the file into the udev pkg read-only path
+                  (add-after 'unpack 'fix-udev-path
+                    (lambda* _
+                      (substitute* "meson.build"
+                        (("udev_rules_dir,")
+                         (string-append "'" %output "/lib/udev/rules.d',"))))))))
+    (native-inputs (list pkg-config))
+    (inputs (list eudev libusb))
+    (synopsis "Read from and write to RockChicp devices over USB")
+    (description
+     "Rkdeveloptool is a fastboot-like CLI tool to read from and
+write to RockChip devices over USB.  Supports PineNote and Quartz64 as well
+as other Pine64 RK devices.")
+    (home-page "https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool")
+    (license license:gpl2+)))
+
 (define-public usbguard
   (package
     (name "usbguard")
diff --git a/gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch b/gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch
new file mode 100644
index 0000000000..e2c7328bfa
--- /dev/null
+++ b/gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch
@@ -0,0 +1,54 @@
+diff --git a/main.cpp b/main.cpp
+index 029f0e2..e40bce2 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -2455,12 +2455,6 @@ bool read_lba(
+ 
+ 	if (!check_device_type(dev, RKUSB_LOADER | RKUSB_MASKROM))
+ 		return false;
+-	if (uiLen % 512) {
+-		fprintf(stderr, "Length must be a multiple of sector size (%d)\n",
+-				SECTOR_SIZE);
+-		return false;
+-	}
+-	uiLen /= 512;
+ 
+ 	if (!bRet) {
+ 		fprintf(stderr, "Read LBA quit, creating comm object failed!\n");
+@@ -3265,7 +3259,7 @@ bool handle_command(int argc, char *argv[], CRKScan *pScan) {
+ 				bRet = get_lba_from_gpt(master_gpt, argv[2], &lba, &lba_end);
+ 				if (bRet) {
+ 					bSuccess = read_lba(dev, (u32)lba,
+-							((u32)(lba_end - lba + 1)) * 512, argv[3]);
++							(u32)(lba_end - lba + 1), argv[3]);
+ 				} else {
+ 					fprintf(stderr, "Could not find the %s partition\n", argv[2]);
+ 				}
+@@ -3276,7 +3270,7 @@ bool handle_command(int argc, char *argv[], CRKScan *pScan) {
+ 	} else if (strcmp(strCmd.c_str(), "RL") == 0 ||
+ 			strcmp(strCmd.c_str(), "READ") == 0) {
+ 		char *pszEnd;
+-		UINT uiBegin, uiLen;
++		UINT uiBegin;
+ 		if (argc != 5)
+ 			fprintf(stderr, "Usage: rkdeveloptool read start-sector num-bytes "
+ 				   "filename\n");
+@@ -3285,11 +3279,15 @@ bool handle_command(int argc, char *argv[], CRKScan *pScan) {
+ 			if (*pszEnd)
+ 				fprintf(stderr, "Begin is invalid, please check!\n");
+ 			else {
+-				uiLen = strtoul(argv[3], &pszEnd, 0);
++				unsigned long long len = strtoull(argv[3], &pszEnd, 0);
+ 				if (*pszEnd)
+ 					fprintf(stderr, "Len is invalid, please check!\n");
+-				else {
+-					bSuccess = read_lba(dev, uiBegin, uiLen, argv[4]);
++				else if (len % 512) {
++					fprintf(stderr, "Length must be a multiple of sector size (%d)\n",
++                		SECTOR_SIZE);
++				} else {
++					len /= 512;
++					bSuccess = read_lba(dev, uiBegin, len, argv[4]);
+ 				}
+ 			}
+ 		}
-- 
2.37.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: v2-0001-gnu-rkdeveloptool-Fix-build.patch --]
[-- Type: text/x-patch; name=v2-0001-gnu-rkdeveloptool-Fix-build.patch, Size: 4810 bytes --]

From cebf1356add8d5299e71abf45fb71b5afe5a30ee Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 21 Feb 2022 13:25:16 +0100
Subject: [PATCH v2 1/2] gnu: rkdeveloptool: Fix build. Apply 'guix style'.

* gnu/packages/hardware.scm (rkdeveloptool): Update to newer commit 46bb4c.
  Apply 'guix style'
  [source]: Apply patch to fix GCC format truncation error.
  [arguments]: Add phase after install to install udev rules.
* gnu/local.mk: Add patch.
* gnu/packages/patches/rkdeveloptool-fix-format-truncation.patch: New file.

diff --git a/gnu/local.mk b/gnu/local.mk
index 9443dd617a..c01b063d17 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1810,6 +1810,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch	\
   %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch	\
   %D%/packages/patches/r-mixedpower-r2power.patch		\
+  %D%/packages/patches/rkdeveloptool-fix-format-truncation.patch \
   %D%/packages/patches/rnp-add-version.cmake.patch		\
   %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
   %D%/packages/patches/rnp-unbundle-googletest.patch		\
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index f392bb8c16..255b077eaa 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -1108,29 +1108,38 @@ (define-public wavemon
     (license license:gpl3+)))
 
 (define-public rkdeveloptool
-  (let ((commit "6e92ebcf8b1812da02663494a68972f956e490d3")
-        (revision "0"))
+  (let ((commit "46bb4c073624226c3f05b37b9ecc50bbcf543f5a")
+        (revision "1"))
     (package
       (name "rkdeveloptool")
-      (version (git-version "1.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/rockchip-linux/rkdeveloptool")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0zwrkqfxd671iy69v3q0844gfdpm1yk51i9qh2rqc969bd8glxga"))))
+      (version (git-version "1.32" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/rockchip-linux/rkdeveloptool")
+                      (commit commit)))
+                ;; https://github.com/rockchip-linux/rkdeveloptool/pull/62
+                (patches (search-patches
+                          "rkdeveloptool-fix-format-truncation.patch"))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0kb2ylsrqqrdf4np66yxmk96kdc5g8nvjx13gifpm5rshv5770bq"))))
       (build-system gnu-build-system)
-      (native-inputs
-       (list autoconf automake pkg-config))
-      (inputs
-       (list libusb))
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (add-after 'install 'install-udev-rules
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let ((udev (string-append (assoc-ref outputs "out")
+                                                   "/lib/udev/rules.d")))
+                          (mkdir-p udev)
+                          (install-file "99-rk-rockusb.rules" udev)))))))
+      (native-inputs (list autoconf automake pkg-config))
+      (inputs (list libusb))
       (home-page "https://github.com/rockchip-linux/rkdeveloptool")
-      (synopsis "Read from and write to RockChicp devices over USB")
+      (synopsis "Read/write to rockchip devices over USB")
       (description
-       "Rkdeveloptool can read from and write to RockChip devices over USB, such
+       "Rkdeveloptool can read from and write to rockchip devices over USB, such
 as the Pinebook Pro.")
       (license license:gpl2+))))
 
diff --git a/gnu/packages/patches/rkdeveloptool-fix-format-truncation.patch b/gnu/packages/patches/rkdeveloptool-fix-format-truncation.patch
new file mode 100644
index 0000000000..fd9a193e76
--- /dev/null
+++ b/gnu/packages/patches/rkdeveloptool-fix-format-truncation.patch
@@ -0,0 +1,22 @@
+From bc9e5f03d71b3dd4360721f4df3524c1dcba9bc8 Mon Sep 17 00:00:00 2001
+From: Petr Hodina <phodina@protonmail.com>
+Date: Mon, 21 Feb 2022 13:00:53 +0100
+Subject: [PATCH] Fix format truncation for GCC >7.1.
+
+
+diff --git a/main.cpp b/main.cpp
+index 72bd94b..800db0b 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -1490,7 +1490,7 @@ static bool saveEntry(FILE* outFile, char* path, rk_entry_type type,
+ static inline uint32_t convertChipType(const char* chip) {
+ 	char buffer[5];
+ 	memset(buffer, 0, sizeof(buffer));
+-	snprintf(buffer, sizeof(buffer), "%s", chip);
++	memcpy(buffer, chip, 4);
+ 	return buffer[0] << 24 | buffer[1] << 16 | buffer[2] << 8 | buffer[3];
+ }
+ 
+-- 
+2.34.0
+
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#51043] Fix build of rkdeveloptool
  2022-12-15 20:36 ` [bug#51043] Fix build of rkdeveloptool phodina via Guix-patches via
@ 2023-01-09 12:49   ` phodina via Guix-patches via
  2023-01-09 15:08     ` phodina via Guix-patches via
  0 siblings, 1 reply; 3+ messages in thread
From: phodina via Guix-patches via @ 2023-01-09 12:49 UTC (permalink / raw)
  To: 51043@debbugs.gnu.org, Efraim Flashner
  Cc: Ludovic Courtès, Tobias Geerinckx-Rice

[-- Attachment #1: Type: text/plain, Size: 4977 bytes --]

Hi Efraim,

since you fixed the build can for the rkdeveloptool (commit 3ad3869297fd327ef417b1ecb95c2c4caf53d2e6) can you have a look also on the second patch please?

----
Petr
------- Original Message -------
On Thursday, December 15th, 2022 at 9:36 PM, phodina <phodina@protonmail.com> wrote:

> Hi Ludo’,
>
> speaking of lost patches this one is little bit annoying as it does not even build.
>
> Excerpt of the build log, build failure caused probably by introducing stricter compilation flags in `gnu-build-system`:
>
> starting phase `build'
> make[1]: Entering directory '/tmp/guix-build-rkdeveloptool-1.3-0.6e92ebc.drv-0/source'
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT crc.o -MD -MP -MF .deps/crc.Tpo -c -o crc.o crc.cpp
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKBoot.o -MD -MP -MF .deps/RKBoot.Tpo -c -o RKBoot.o RKBoot.cpp
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKComm.o -MD -MP -MF .deps/RKComm.Tpo -c -o RKComm.o RKComm.cpp
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKDevice.o -MD -MP -MF .deps/RKDevice.Tpo -c -o RKDevice.o RKDevice.cpp
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKImage.o -MD -MP -MF .deps/RKImage.Tpo -c -o RKImage.o RKImage.cpp
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKLog.o -MD -MP -MF .deps/RKLog.Tpo -c -o RKLog.o RKLog.cpp
> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKScan.o -MD -MP -MF .deps/RKScan.Tpo -c -o RKScan.o RKScan.cpp
> mv -f .deps/RKBoot.Tpo .deps/RKBoot.Po
> mv -f .deps/RKImage.Tpo .deps/RKImage.Po
> mv -f .deps/RKLog.Tpo .deps/RKLog.Po
> mv -f .deps/RKDevice.Tpo .deps/RKDevice.Po
> mv -f .deps/RKComm.Tpo .deps/RKComm.Po
> mv -f .deps/crc.Tpo .deps/crc.Po
> mv -f .deps/RKScan.Tpo .deps/RKScan.Po
> main.cpp: In function ‘bool _Z9mergeBootv.part.0()’:
> main.cpp:1541:36: error: ‘%s’ directive output may be truncated writing up to 557 bytes into a region of size 5 [-Werror=format-truncation=]
> 1541 | snprintf(buffer, sizeof(buffer), "%s", chip);
> | ^~
> ......
> 1582 | chipType = convertChipType(chip + 2);
> | ~~~~~~~~~~~~~~~~~~~~~~~~~
> main.cpp:1541:10: note: ‘snprintf’ output between 1 and 558 bytes into a destination of size 5
> 1541 | snprintf(buffer, sizeof(buffer), "%s", chip);
> | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1plus: all warnings being treated as errors
> make[1]: *** [Makefile:473: main.o] Error 1
> make[1]: Leaving directory '/tmp/guix-build-rkdeveloptool-1.3-0.6e92ebc.drv-0/source'
> make: *** [Makefile:493: all-recursive] Error 1
> error: in phase 'build': uncaught exception:
> %exception #<&invoke-error program: "make" arguments: ("-j" "16") exit-status: 2 term-signal: #f stop-signal: #f>
> phase `build' failed after 2.2 seconds
> command "make" "-j" "16" failed with status 2
> builder for `/gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv' failed with exit code 1
> build of /gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv failed
> View build log at '/var/log/guix/drvs/sr/ykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv.gz'.guix build: error: build of `/gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv' failed
> ------- Original Message -------
> On Monday, February 21st, 2022 at 1:43 PM, phodina <phodina@protonmail.com> wrote:
>
>> Hi,
>>
>> Here's fix of the rkdeveloptool package which fails to build due to GCC complaining about the truncation error.
>>
>> See https://github.com/rockchip-linux/rkdeveloptool/pull/62.
>>
>> ----
>> Petr

[-- Attachment #2: Type: text/html, Size: 7218 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#51043] Fix build of rkdeveloptool
  2023-01-09 12:49   ` phodina via Guix-patches via
@ 2023-01-09 15:08     ` phodina via Guix-patches via
  0 siblings, 0 replies; 3+ messages in thread
From: phodina via Guix-patches via @ 2023-01-09 15:08 UTC (permalink / raw)
  To: 51043@debbugs.gnu.org, Efraim Flashner
  Cc: Ludovic Courtès, Tobias Geerinckx-Rice


[-- Attachment #1.1: Type: text/plain, Size: 5298 bytes --]

Here's updated patch as it had some conflicts.

Plus I added patch to speedup the transfer. Tested on Pinenote and Quartz64.

----
Petr
------- Original Message -------
On Monday, January 9th, 2023 at 1:49 PM, phodina <phodina@protonmail.com> wrote:

> Hi Efraim,
>
> since you fixed the build can for the rkdeveloptool (commit 3ad3869297fd327ef417b1ecb95c2c4caf53d2e6) can you have a look also on the second patch please?
>
> ----
> Petr
> ------- Original Message -------
> On Thursday, December 15th, 2022 at 9:36 PM, phodina <phodina@protonmail.com> wrote:
>
>> Hi Ludo’,
>>
>> speaking of lost patches this one is little bit annoying as it does not even build.
>>
>> Excerpt of the build log, build failure caused probably by introducing stricter compilation flags in `gnu-build-system`:
>>
>> starting phase `build'
>> make[1]: Entering directory '/tmp/guix-build-rkdeveloptool-1.3-0.6e92ebc.drv-0/source'
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT crc.o -MD -MP -MF .deps/crc.Tpo -c -o crc.o crc.cpp
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKBoot.o -MD -MP -MF .deps/RKBoot.Tpo -c -o RKBoot.o RKBoot.cpp
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKComm.o -MD -MP -MF .deps/RKComm.Tpo -c -o RKComm.o RKComm.cpp
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKDevice.o -MD -MP -MF .deps/RKDevice.Tpo -c -o RKDevice.o RKDevice.cpp
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKImage.o -MD -MP -MF .deps/RKImage.Tpo -c -o RKImage.o RKImage.cpp
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKLog.o -MD -MP -MF .deps/RKLog.Tpo -c -o RKLog.o RKLog.cpp
>> g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/gnu/store/vjlg2z75qwbwxdp5qiklcdx7df9xvbb2-libusb-1.0.24/include/libusb-1.0 -g -O2 -MT RKScan.o -MD -MP -MF .deps/RKScan.Tpo -c -o RKScan.o RKScan.cpp
>> mv -f .deps/RKBoot.Tpo .deps/RKBoot.Po
>> mv -f .deps/RKImage.Tpo .deps/RKImage.Po
>> mv -f .deps/RKLog.Tpo .deps/RKLog.Po
>> mv -f .deps/RKDevice.Tpo .deps/RKDevice.Po
>> mv -f .deps/RKComm.Tpo .deps/RKComm.Po
>> mv -f .deps/crc.Tpo .deps/crc.Po
>> mv -f .deps/RKScan.Tpo .deps/RKScan.Po
>> main.cpp: In function ‘bool _Z9mergeBootv.part.0()’:
>> main.cpp:1541:36: error: ‘%s’ directive output may be truncated writing up to 557 bytes into a region of size 5 [-Werror=format-truncation=]
>> 1541 | snprintf(buffer, sizeof(buffer), "%s", chip);
>> | ^~
>> ......
>> 1582 | chipType = convertChipType(chip + 2);
>> | ~~~~~~~~~~~~~~~~~~~~~~~~~
>> main.cpp:1541:10: note: ‘snprintf’ output between 1 and 558 bytes into a destination of size 5
>> 1541 | snprintf(buffer, sizeof(buffer), "%s", chip);
>> | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> cc1plus: all warnings being treated as errors
>> make[1]: *** [Makefile:473: main.o] Error 1
>> make[1]: Leaving directory '/tmp/guix-build-rkdeveloptool-1.3-0.6e92ebc.drv-0/source'
>> make: *** [Makefile:493: all-recursive] Error 1
>> error: in phase 'build': uncaught exception:
>> %exception #<&invoke-error program: "make" arguments: ("-j" "16") exit-status: 2 term-signal: #f stop-signal: #f>
>> phase `build' failed after 2.2 seconds
>> command "make" "-j" "16" failed with status 2
>> builder for `/gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv' failed with exit code 1
>> build of /gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv failed
>> View build log at '/var/log/guix/drvs/sr/ykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv.gz'.guix build: error: build of `/gnu/store/srykckhmy9lpdg2gl6702vs71b20apsj-rkdeveloptool-1.3-0.6e92ebc.drv' failed
>> ------- Original Message -------
>> On Monday, February 21st, 2022 at 1:43 PM, phodina <phodina@protonmail.com> wrote:
>>
>>> Hi,
>>>
>>> Here's fix of the rkdeveloptool package which fails to build due to GCC complaining about the truncation error.
>>>
>>> See https://github.com/rockchip-linux/rkdeveloptool/pull/62.
>>>
>>> ----
>>> Petr

[-- Attachment #1.2: Type: text/html, Size: 7741 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: v2-0001-gnu-Add-rkdeveloptool-pine64.patch --]
[-- Type: text/x-patch; name=v2-0001-gnu-Add-rkdeveloptool-pine64.patch, Size: 5584 bytes --]

From 5d339ca82211b7bdecd12ddcd14cf9dcc1dbb98d Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 21 Feb 2022 13:33:41 +0100
Subject: [PATCH v2] gnu: Add rkdeveloptool-pine64.

* gnu/packages/hardware.scm (rkdeveloptool-pine64): New variable.
* gnu/local.mk: Add patches.
* gnu/packages/patches/rkdeveloptool-pine64-speed-up-xfer.patch: New file.
* gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch: New file.

diff --git a/gnu/local.mk b/gnu/local.mk
index f0b1b3fd15..177ad1996b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1800,6 +1800,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch	\
   %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch	\
   %D%/packages/patches/r-mixedpower-r2power.patch		\
+  %D%/packages/patches/rkdeveloptool-pine64-speed-up-xfer.patch \
+  %D%/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch \
   %D%/packages/patches/rnp-add-version.cmake.patch		\
   %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
   %D%/packages/patches/rnp-unbundle-googletest.patch		\
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 81f38d069b..e86d96b792 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2022 Marcel Kupiec <formbi@protonmail.com>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2023 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1174,6 +1175,43 @@ (define-public rkdeveloptool
 as the Pinebook Pro.")
       (license license:gpl2+))))
 
+(define-public rkdeveloptool-pine64
+  (package
+    (name "rkdeveloptool-pine64")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url
+                     "https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (patches (search-patches
+                        "rkdeveloptool-pine64-speed-up-xfer.patch"
+                        "rkdeveloptool-pine64-dump-over-2gib.patch"))
+              (sha256
+               (base32
+                "0nh9592mllygycnxbw91vg58wwais7w3w62rl9gcvc4m3i909b1z"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:tests? #f ;no test suite
+       #:phases (modify-phases %standard-phases
+                  ;; attempts to place the file into the udev pkg read-only path
+                  (add-after 'unpack 'fix-udev-path
+                    (lambda* _
+                      (substitute* "meson.build"
+                        (("udev_rules_dir,")
+                         (string-append "'" %output "/lib/udev/rules.d',"))))))))
+    (native-inputs (list pkg-config))
+    (inputs (list eudev libusb))
+    (synopsis "Read from and write to RockChip devices over USB")
+    (description
+     "Rkdeveloptool is a fastboot-like CLI tool to read from and
+write to RockChip devices over USB.  Supports PineNote and Quartz64 as well
+as other Pine64 RK devices.")
+    (home-page "https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool")
+    (license license:gpl2+)))
+
 (define-public usbguard
   (package
     (name "usbguard")
diff --git a/gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch b/gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch
new file mode 100644
index 0000000000..e2c7328bfa
--- /dev/null
+++ b/gnu/packages/patches/rkdeveloptool-pine64-dump-over-2gib.patch
@@ -0,0 +1,54 @@
+diff --git a/main.cpp b/main.cpp
+index 029f0e2..e40bce2 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -2455,12 +2455,6 @@ bool read_lba(
+ 
+ 	if (!check_device_type(dev, RKUSB_LOADER | RKUSB_MASKROM))
+ 		return false;
+-	if (uiLen % 512) {
+-		fprintf(stderr, "Length must be a multiple of sector size (%d)\n",
+-				SECTOR_SIZE);
+-		return false;
+-	}
+-	uiLen /= 512;
+ 
+ 	if (!bRet) {
+ 		fprintf(stderr, "Read LBA quit, creating comm object failed!\n");
+@@ -3265,7 +3259,7 @@ bool handle_command(int argc, char *argv[], CRKScan *pScan) {
+ 				bRet = get_lba_from_gpt(master_gpt, argv[2], &lba, &lba_end);
+ 				if (bRet) {
+ 					bSuccess = read_lba(dev, (u32)lba,
+-							((u32)(lba_end - lba + 1)) * 512, argv[3]);
++							(u32)(lba_end - lba + 1), argv[3]);
+ 				} else {
+ 					fprintf(stderr, "Could not find the %s partition\n", argv[2]);
+ 				}
+@@ -3276,7 +3270,7 @@ bool handle_command(int argc, char *argv[], CRKScan *pScan) {
+ 	} else if (strcmp(strCmd.c_str(), "RL") == 0 ||
+ 			strcmp(strCmd.c_str(), "READ") == 0) {
+ 		char *pszEnd;
+-		UINT uiBegin, uiLen;
++		UINT uiBegin;
+ 		if (argc != 5)
+ 			fprintf(stderr, "Usage: rkdeveloptool read start-sector num-bytes "
+ 				   "filename\n");
+@@ -3285,11 +3279,15 @@ bool handle_command(int argc, char *argv[], CRKScan *pScan) {
+ 			if (*pszEnd)
+ 				fprintf(stderr, "Begin is invalid, please check!\n");
+ 			else {
+-				uiLen = strtoul(argv[3], &pszEnd, 0);
++				unsigned long long len = strtoull(argv[3], &pszEnd, 0);
+ 				if (*pszEnd)
+ 					fprintf(stderr, "Len is invalid, please check!\n");
+-				else {
+-					bSuccess = read_lba(dev, uiBegin, uiLen, argv[4]);
++				else if (len % 512) {
++					fprintf(stderr, "Length must be a multiple of sector size (%d)\n",
++                		SECTOR_SIZE);
++				} else {
++					len /= 512;
++					bSuccess = read_lba(dev, uiBegin, len, argv[4]);
+ 				}
+ 			}
+ 		}
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-01-09 15:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <UbNDhFyAp_6UmSgTIicxl617-LOqZ-hj1TQSPO8a4XbarG2T8MqZwrEguOHeQ-YanQ30pDM_zxd90BpOzMgg8anTh-P-VqSwpRX2DG1HEUM=@protonmail.com>
2022-12-15 20:36 ` [bug#51043] Fix build of rkdeveloptool phodina via Guix-patches via
2023-01-09 12:49   ` phodina via Guix-patches via
2023-01-09 15:08     ` phodina via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).