Leo Famulari <l...@famulari.name> writes: > On Wed, Oct 04, 2017 at 12:22:34AM -0400, Maxim Cournoyer wrote: >> Here are the first 10 lines of the output: >> --8<---------------cut here---------------start------------->8--- >> Number of potentially problematic GitHub packages:1011 >> fdupes >> cbatticon >> sedsed >> cpulimit >> autojump >> sudo > > I think the script is buggy; sudo's source is not downloaded from GitHub > as far as I can tell.
Good catch! I was assuming empty lists were falsy, but that's not the case! I've ensured purely boolean predicates now and it gets the list down to 650. Here's the corrected script:
;;; A script to find packages possibly affected by GitHub ;;; infrastructure update that caused minor changes in the ;;; automatically generated tarballs. (use-modules (ice-9 match) (gnu packages) (guix download) (guix packages)) (define (problematic-uri? uri) (define (contains-github-archive? uri) (regexp-match? (string-match "github.com/.*/archive/" uri))) ;; URI can be a string or a list of string. (match uri ((uri1 uri2 ...) ;match list of strings (not (null? (filter contains-github-archive? uri)))) (uri1 ;match string (contains-github-archive? uri1)))) (define (problematic-github-package? package) (let ((source (package-source package))) (and (origin? source) (eq? (origin-method source) url-fetch) (problematic-uri? (origin-uri source))))) (define (problematic-github-packages) "List of all the potentially problematic GitHub packages." (fold-packages (lambda (p r) (if (problematic-github-package? p) (cons p r) r)) '())) (define (main) "Find and print the names of the potentially problematic GitHub packages." (let ((packages (problematic-github-packages))) (format #t "Number of potentially problematic GitHub packages: ~a~%" (length packages)) (for-each (lambda (p) (format #t "~a~%" (package-name p))) packages))) ;;; Run the program. (main)
And sample output: --8<---------------cut here---------------start------------->8--- Number of potentially problematic GitHub packages: 650 fdupes cbatticon cpulimit thefuck thermald neofetch autojump progress nnn [...] wxwidgets xclip xcape sxhkd maim slop tinyxml2 xlsx2csv --8<---------------cut here---------------end--------------->8--- Maxim