From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id UM2SGPKEFF/rSQAA0tVLHw (envelope-from ) for ; Sun, 19 Jul 2020 17:37:54 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id uJ1AFPKEFF+4SwAAbx9fmQ (envelope-from ) for ; Sun, 19 Jul 2020 17:37:54 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D10E79403A0 for ; Sun, 19 Jul 2020 17:37:53 +0000 (UTC) Received: from localhost ([::1]:57276 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jxDG4-0002W2-Pc for larch@yhetil.org; Sun, 19 Jul 2020 13:37:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41914) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jxDFx-0002Vv-Az for guix-devel@gnu.org; Sun, 19 Jul 2020 13:37:45 -0400 Received: from flashner.co.il ([178.62.234.194]:43396) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jxDFv-0002mW-8C for guix-devel@gnu.org; Sun, 19 Jul 2020 13:37:45 -0400 Received: from localhost (unknown [141.226.9.208]) by flashner.co.il (Postfix) with ESMTPSA id 67B2040049 for ; Sun, 19 Jul 2020 17:37:09 +0000 (UTC) Date: Sun, 19 Jul 2020 20:36:37 +0300 From: Efraim Flashner To: guix-devel@gnu.org Subject: video stream of updating newsboat to 2.20.1 Message-ID: <20200719173637.GD7307@E5400> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="y2zxS2PfCDLh6JVG" Content-Disposition: inline X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Received-SPF: pass client-ip=178.62.234.194; envelope-from=efraim@flashner.co.il; helo=flashner.co.il X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/19 13:37:10 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: 0.69 X-TUID: T9x/aIUSVNRq --y2zxS2PfCDLh6JVG Content-Type: multipart/mixed; boundary="DrWhICOqskFTAXiy" Content-Disposition: inline --DrWhICOqskFTAXiy Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable As I mentioned in other places online, I thought it would be nice to try recording some of my workflow with guix. The video is quite long, an hour and 20 minutes, and it goes through updating newsboat from 2.13 to 2.20.1 with the change to the cargo-build-system. The audio quality isn't amazing, I definitely need a better mic, but it was fun and I'd definitely consider doing it again. I used simplescreenrecorder for recording, which worked really well. I'm open to suggestions for encoding flags, the raw video was 1.2GB and dropped to ~300MB after encoding it for streaming to mp4. I have a feeling I could do better for size. I tested the video using VLC on my phone on data, and it started playing without downloading the whole thing, so it looks like I got the flag correct for creating a streamable mp4. I'm still encoding it also with vp9 for a webm but it looks like it's going to be about the same size. Video: https://flashner.co.il/~efraim/guix-package-newsboat-with-rust.mp4 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --DrWhICOqskFTAXiy Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-gnu-newsboat-Update-to-2.20.patch" Content-Transfer-Encoding: quoted-printable =46rom 6c43f8fbf5e6db72b3968138a0599b039834c69f Mon Sep 17 00:00:00 2001 =46rom: Efraim Flashner Date: Sat, 18 Jul 2020 23:10:32 +0200 Subject: [PATCH] gnu: newsboat: Update to 2.20. * gnu/packages/syndication.scm (newsboat): Update to 2.20. [source]: Add snippet to loosen version requirement on crate dependency. [build-system]: Switch to cargo-build-system. [native-inputs]: Remove asciidoc, add openssl, asciidoctor. [arguments]: Add gnu-build-system module. Add vendor-dir, cargo-inputs, cargo-development-inputs fields. Don't delete 'configure phase. Add custom 'dont-vendor-self-phase. Replace 'build, 'check, 'install phases with gnu counterparts. (newsboat-2.13): New variable. --- gnu/packages/syndication.scm | 110 ++++++++++++++++++++++++++++++----- 1 file changed, 97 insertions(+), 13 deletions(-) diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 3d858240b7..b8665fb9c3 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -22,11 +22,13 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix packages) + #:use-module (guix build-system cargo) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages check) + #:use-module (gnu packages crates-io) #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) @@ -40,15 +42,18 @@ #:use-module (gnu packages python-check) #:use-module (gnu packages python-xyz) #:use-module (gnu packages python-web) + #:use-module (gnu packages ruby) #:use-module (gnu packages sqlite) + #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages webkit) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (srfi srfi-1)) =20 (define-public newsboat (package (name "newsboat") - (version "2.13") + (version "2.20.1") (source (origin (method url-fetch) @@ -56,13 +61,20 @@ "/newsboat-" version ".tar.xz")) (sha256 (base32 - "0pik1d98ydzqi6055vdbkjg5krwifbk2hy2f5jp5p1wcy2s16dn7")))) - (build-system gnu-build-system) + "0rimjikni96m52vhymgsg1b9g99af6ggyzd1lpvhgqsznxwj0y42")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "rust/libnewsboat/Cargo.toml" + (("=3D 1.0.17") "1.0.17")) + #t)))) + (build-system cargo-build-system) (native-inputs `(("gettext" ,gettext-minimal) + ("openssl" ,openssl) ("pkg-config" ,pkg-config) ;; For building documentation. - ("asciidoc" ,asciidoc))) + ("asciidoctor" ,ruby-asciidoctor))) (inputs `(("curl" ,curl) ("json-c" ,json-c-0.13) @@ -71,15 +83,58 @@ ("stfl" ,stfl) ("sqlite" ,sqlite))) (arguments - '(#:phases + `(#:modules ((guix build cargo-build-system) + (guix build utils) + ((guix build gnu-build-system) #:prefix gnu:)) + #:vendor-dir "vendor" + #:cargo-inputs + (("rust-backtrace" ,rust-backtrace-0.3) + ("rust-bitflags" ,rust-bitflags-1) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-clap" ,rust-clap-2) + ("rust-curl-sys" ,rust-curl-sys-0.4) + ("rust-dirs" ,rust-dirs-2.0) + ("rust-gettext-rs" ,rust-gettext-rs-0.4) + ("rust-gettext-sys" ,rust-gettext-sys-0.19) + ("rust-libc" ,rust-libc-0.2) + ("rust-libz-sys" ,rust-libz-sys-1.0) + ("rust-natord" ,rust-natord-1.0) + ("rust-nom" ,rust-nom-5) + ("rust-once-cell" ,rust-once-cell-1.2) + ("rust-percent-encoding" ,rust-percent-encoding-2.1) + ("rust-rand" ,rust-rand-0.6) + ("rust-smallvec" ,rust-smallvec-0.6) + ("rust-url" ,rust-url-2.1) + ("rust-unicode-width" ,rust-unicode-width-0.1) + ("rust-xdg" ,rust-xdg-2.2)) + #:cargo-development-inputs + (("rust-tempfile" ,rust-tempfile-3) + ("rust-proptest" ,rust-proptest-0.9) + ("rust-section-testing" ,rust-section-testing-0.0)) + #:phases (modify-phases %standard-phases - (delete 'configure) ; no configure script - (add-after 'build 'build-documentation - (lambda _ - (invoke "make" "doc")))) - #:make-flags - (list (string-append "prefix=3D" (assoc-ref %outputs "out"))) - #:test-target "test")) + (add-after 'configure 'dont-vendor-self + (lambda* (#:key vendor-dir #:allow-other-keys) + ;; Don't keep the whole tarball in the vendor directory + (delete-file-recursively + (string-append vendor-dir "/" ,name "-" ,version ".tar.xz")) + #t)) + (replace 'build + (lambda* args + ((assoc-ref gnu:%standard-phases 'build) + #:make-flags + (list (string-append "prefix=3D" (assoc-ref %outputs "out"))= )))) + (replace 'check + (lambda* args + ((assoc-ref gnu:%standard-phases 'check) + #:test-target "test" + #:make-flags + (list (string-append "prefix=3D" (assoc-ref %outputs "out"))= )))) + (replace 'install + (lambda* args + ((assoc-ref gnu:%standard-phases 'install) + #:make-flags + (list (string-append "prefix=3D" (assoc-ref %outputs "out"))= ))))))) (native-search-paths ;; Newsboat respects CURL_CA_BUNDLE. (package-native-search-paths curl)) @@ -96,6 +151,35 @@ file system, and many more features.") (license (list license:gpl2+ ; filter/* license:expat)))) ; everything else =20 +(define-public newsboat-2.13 + (package + (inherit newsboat) + (version "2.13") + (source + (origin + (method url-fetch) + (uri (string-append "https://newsboat.org/releases/" version + "/newsboat-" version ".tar.xz")) + (sha256 + (base32 + "0pik1d98ydzqi6055vdbkjg5krwifbk2hy2f5jp5p1wcy2s16dn7")))) + (build-system gnu-build-system) + (native-inputs + `(,@(fold alist-delete (package-native-inputs newsboat) + '("asciidoctor" "openssl")) + ;; For building documentation. + ("asciidoc" ,asciidoc))) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-after 'build 'build-documentation + (lambda _ + (invoke "make" "doc")))) + #:make-flags + (list (string-append "prefix=3D" (assoc-ref %outputs "out"))) + #:test-target "test")))) + (define-public liferea (package (name "liferea") --=20 2.27.0 --DrWhICOqskFTAXiy-- --y2zxS2PfCDLh6JVG Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl8UhJ8ACgkQQarn3Mo9 g1Gxzw/9Fb+JOha7qlU+yU98HvHelQqQmi+iOFbmgi0mvcEGGlgy73ODqTHePvNv K5VnQV1FC7jpKb416Sz4OkwrAMewta0+8/JY43LoMzcnW5qKxZCRsSgQUjDSdZRr rTEtXeem8aFVdRi16uVVtc3u+eogmBeLrC7oeot5P6J/N0T/f12umLeVHKG7j3+U b/RXLvz1JhfJPmUC1hQUn0VtwXZE33ue9MRWwJ1BBuN5V8oWGKHRdBb4StMX/wsC mh76wiO8I3sjdAKQ9PvUtqeqhWhsYsDd7Z4SsbRSS5E0EFIy4OIDUB7iOQIR+hIJ b1nuPIhpeNIL6Vh/3hTtqNAjh57xm3UMgv2wyzTixTxDSrdtZKUErkRN6jqAp5Vq IcfLaKvQxKJRClqY794ceHtaG+IwsHi11zg07mlL92SSqqwjPLlQGVSk51b5ocpP Mn6Nl6qtXRZU3sB57eXLSlwcMedSJg74X85G9Xwyzo9uninONpDO57zsQUR05mmo jf8JuMFHyeK4suSGFDe7mFurKhJfft795MrCuVqd77+/liLZTYzAqPk9aR7/kZQh J4pDjdqmgjfRL4dDTaeTfZic+v5n8F5bLGgwm65hcfhNTfU3lmsr5TkiUSQRtMjf KH+gs8iRcrcyy6K4I63FZmDOdIN2LOwGp5sH1lXE9vZVYPeLCKU= =8VBw -----END PGP SIGNATURE----- --y2zxS2PfCDLh6JVG--