From nobody at parabola.nu Mon Apr 2 02:30:21 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Mon, 02 Apr 2018 02:30:21 -0000 Subject: [Dev] Orphan Libre package [iceweasel] marked out-of-date Message-ID: <20180402023021.9751.39689@proton.parabola.nu> eliotreyna at cock.email wants to notify you that the following packages may be out-of-date: * iceweasel 1:59.0-2 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/iceweasel/ * iceweasel 1:59.0-2 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/iceweasel/ * iceweasel 1:59.0-2 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/iceweasel/ The user provided the following additional text: Please update Iceweasel to the version 59.0.2, according to the release notes of Firefox source code. The following fixes are: 1.- Invalid page rendering when hardware acceleration is enabled. 2.- Browser keyboard shortcuts (eg copy Ctrl+C) don't work on sites that use those keys with resistFingerprinting enabled. 3.- Users who have configured an "automatic proxy configuration URL" and want to reload their proxy settings from the URL will find the Reload button disabled in the Connection Settings dialog when they select Preferences/Options > Network Proxy > Settings... 4.- URL fragment identifiers break Service Worker responses. 5.- Users trying to cancel a print around the time it completes will continue to get intermittent crashes. 6.- Broken getUserMedia (audio) on DragonFly, FreeBSD, NetBSD, OpenBSD. Video chat apps either wouldn't work or be always muted. More information: https://www.mozilla.org/en-US/firefox/59.0.2/releasenotes/ From nobody at parabola.nu Mon Apr 2 02:30:58 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Mon, 02 Apr 2018 02:30:58 -0000 Subject: [Dev] Orphan Libre package [iceweasel-l10n-es-ar] marked out-of-date Message-ID: <20180402023058.9751.84122@proton.parabola.nu> eliotreyna at cock.email wants to notify you that the following packages may be out-of-date: * iceweasel-l10n-ach 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ach/ * iceweasel-l10n-af 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-af/ * iceweasel-l10n-an 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-an/ * iceweasel-l10n-ar 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ar/ * iceweasel-l10n-as 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-as/ * iceweasel-l10n-ast 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ast/ * iceweasel-l10n-az 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-az/ * iceweasel-l10n-be 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-be/ * iceweasel-l10n-bg 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-bg/ * iceweasel-l10n-bn-bd 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-bn-bd/ * iceweasel-l10n-bn-in 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-bn-in/ * iceweasel-l10n-br 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-br/ * iceweasel-l10n-bs 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-bs/ * iceweasel-l10n-ca 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ca/ * iceweasel-l10n-cak 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-cak/ * iceweasel-l10n-cs 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-cs/ * iceweasel-l10n-cy 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-cy/ * iceweasel-l10n-da 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-da/ * iceweasel-l10n-de 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-de/ * iceweasel-l10n-dsb 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-dsb/ * iceweasel-l10n-el 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-el/ * iceweasel-l10n-en-gb 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-en-gb/ * iceweasel-l10n-en-us 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-en-us/ * iceweasel-l10n-en-za 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-en-za/ * iceweasel-l10n-eo 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-eo/ * iceweasel-l10n-es-ar 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-es-ar/ * iceweasel-l10n-es-cl 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-es-cl/ * iceweasel-l10n-es-es 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-es-es/ * iceweasel-l10n-es-mx 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-es-mx/ * iceweasel-l10n-et 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-et/ * iceweasel-l10n-eu 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-eu/ * iceweasel-l10n-fa 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-fa/ * iceweasel-l10n-ff 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ff/ * iceweasel-l10n-fi 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-fi/ * iceweasel-l10n-fr 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-fr/ * iceweasel-l10n-fy-nl 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-fy-nl/ * iceweasel-l10n-ga-ie 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ga-ie/ * iceweasel-l10n-gd 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-gd/ * iceweasel-l10n-gl 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-gl/ * iceweasel-l10n-gn 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-gn/ * iceweasel-l10n-gu-in 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-gu-in/ * iceweasel-l10n-he 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-he/ * iceweasel-l10n-hi-in 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-hi-in/ * iceweasel-l10n-hr 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-hr/ * iceweasel-l10n-hsb 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-hsb/ * iceweasel-l10n-hu 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-hu/ * iceweasel-l10n-hy-am 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-hy-am/ * iceweasel-l10n-id 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-id/ * iceweasel-l10n-is 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-is/ * iceweasel-l10n-it 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-it/ * iceweasel-l10n-ja 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ja/ * iceweasel-l10n-ka 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ka/ * iceweasel-l10n-kab 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-kab/ * iceweasel-l10n-kk 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-kk/ * iceweasel-l10n-km 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-km/ * iceweasel-l10n-kn 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-kn/ * iceweasel-l10n-ko 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ko/ * iceweasel-l10n-lij 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-lij/ * iceweasel-l10n-lt 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-lt/ * iceweasel-l10n-lv 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-lv/ * iceweasel-l10n-mai 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-mai/ * iceweasel-l10n-mk 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-mk/ * iceweasel-l10n-ml 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ml/ * iceweasel-l10n-mr 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-mr/ * iceweasel-l10n-ms 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ms/ * iceweasel-l10n-my 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-my/ * iceweasel-l10n-nb-no 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-nb-no/ * iceweasel-l10n-ne-np 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ne-np/ * iceweasel-l10n-nl 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-nl/ * iceweasel-l10n-nn-no 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-nn-no/ * iceweasel-l10n-or 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-or/ * iceweasel-l10n-pa-in 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-pa-in/ * iceweasel-l10n-pl 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-pl/ * iceweasel-l10n-pt-br 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-pt-br/ * iceweasel-l10n-pt-pt 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-pt-pt/ * iceweasel-l10n-rm 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-rm/ * iceweasel-l10n-ro 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ro/ * iceweasel-l10n-ru 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ru/ * iceweasel-l10n-si 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-si/ * iceweasel-l10n-sk 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-sk/ * iceweasel-l10n-sl 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-sl/ * iceweasel-l10n-son 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-son/ * iceweasel-l10n-sq 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-sq/ * iceweasel-l10n-sr 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-sr/ * iceweasel-l10n-sv-se 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-sv-se/ * iceweasel-l10n-ta 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ta/ * iceweasel-l10n-te 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-te/ * iceweasel-l10n-th 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-th/ * iceweasel-l10n-tr 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-tr/ * iceweasel-l10n-uk 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-uk/ * iceweasel-l10n-ur 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-ur/ * iceweasel-l10n-uz 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-uz/ * iceweasel-l10n-vi 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-vi/ * iceweasel-l10n-xh 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-xh/ * iceweasel-l10n-zh-cn 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-zh-cn/ * iceweasel-l10n-zh-tw 1:59.0-1 [libre] (any): https://parabolagnulinux.org/packages/libre/any/iceweasel-l10n-zh-tw/ The user provided the following additional text: Please update Iceweasel language packs to the version 59.0.2, according to the release notes of Firefox source code. The following fixes are: 1.- Invalid page rendering when hardware acceleration is enabled. 2.- Browser keyboard shortcuts (eg copy Ctrl+C) don't work on sites that use those keys with resistFingerprinting enabled. 3.- Users who have configured an "automatic proxy configuration URL" and want to reload their proxy settings from the URL will find the Reload button disabled in the Connection Settings dialog when they select Preferences/Options > Network Proxy > Settings... 4.- URL fragment identifiers break Service Worker responses. 5.- Users trying to cancel a print around the time it completes will continue to get intermittent crashes. 6.- Broken getUserMedia (audio) on DragonFly, FreeBSD, NetBSD, OpenBSD. Video chat apps either wouldn't work or be always muted. More information: https://www.mozilla.org/en-US/firefox/59.0.2/releasenotes/ From nobody at parabola.nu Mon Apr 2 15:14:46 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Mon, 02 Apr 2018 15:14:46 -0000 Subject: [Dev] Orphan Libre package [icedove] marked out-of-date Message-ID: <20180402151446.9749.40104@proton.parabola.nu> adem at aytacworld.com wants to notify you that the following packages may be out-of-date: * icedove 1:45.8.0.deb3-1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/icedove/ * icedove 1:52.6.0-2 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/icedove/ * icedove 1:52.6.0-2 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/icedove/ The user provided the following additional text: icu is updated to version 61, and this package points to icu 60 running icedove from terminal returns: XPCOMGlueLoad error for file /usr/lib/icedove/libxul.so: libicui18n.so.60: cannot open shared object file: No such file or directory Couldn't load XPCOM. From nobody at parabola.nu Tue Apr 3 09:04:53 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Tue, 03 Apr 2018 09:04:53 -0000 Subject: [Dev] Orphan Libre package [texlive-bin] marked out-of-date Message-ID: <20180403090453.9751.99884@proton.parabola.nu> odg at riseup.net wants to notify you that the following packages may be out-of-date: * texlive-bin 2017.44590-11.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/texlive-bin/ * texlive-bin 2017.44590-11.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/texlive-bin/ * texlive-bin 2017.44590-11.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/texlive-bin/ The user provided the following additional text: Usual icu/poppler dependencies need updating From nobody at parabola.nu Tue Apr 3 09:05:46 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Tue, 03 Apr 2018 09:05:46 -0000 Subject: [Dev] Orphan Libre package [cups-filters] marked out-of-date Message-ID: <20180403090546.9751.91566@proton.parabola.nu> odg at riseup.net wants to notify you that the following packages may be out-of-date: * cups-filters 1.20.0-1.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/cups-filters/ * cups-filters 1.20.1-2.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/cups-filters/ * cups-filters 1.20.1-2.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/cups-filters/ The user provided the following additional text: poppler dependency needs updating From nobody at parabola.nu Tue Apr 3 13:40:08 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Tue, 03 Apr 2018 13:40:08 -0000 Subject: [Dev] Orphan Libre package [linux-libre] marked out-of-date Message-ID: <20180403134008.9748.41995@proton.parabola.nu> swiftgeek+parabola at gmail.com wants to notify you that the following packages may be out-of-date: * linux-libre 4.15.12_gnu-1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/linux-libre/ * linux-libre 4.15.12_gnu-3 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/linux-libre/ * linux-libre 4.15.12_gnu-3 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/linux-libre/ * linux-libre-docs 4.15.12_gnu-1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/linux-libre-docs/ * linux-libre-docs 4.15.12_gnu-3 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/linux-libre-docs/ * linux-libre-docs 4.15.12_gnu-3 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/linux-libre-docs/ * linux-libre-headers 4.15.12_gnu-1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/linux-libre-headers/ * linux-libre-headers 4.15.12_gnu-3 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/linux-libre-headers/ * linux-libre-headers 4.15.12_gnu-3 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/linux-libre-headers/ The user provided the following additional text: 4.16 is out https://www.fsfla.org/ikiwiki/selibre/linux-libre/index.en.html#news From nobody at parabola.nu Tue Apr 3 19:21:45 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Tue, 03 Apr 2018 19:21:45 -0000 Subject: [Dev] Orphan Nonprism package [evolution-data-server] marked out-of-date Message-ID: <20180403192145.9751.25648@proton.parabola.nu> kevin at kphoenix.us wants to notify you that the following packages may be out-of-date: The user provided the following additional text: https://lists.parabola.nu/pipermail/dev/2018-March/006553.html From lukeshu at lukeshu.com Tue Apr 3 20:10:53 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 3 Apr 2018 16:10:53 -0400 Subject: [Dev] [dbscripts] [PATCH 0/6] Speed up the test suite Message-ID: <20180403201059.9829-1-lukeshu@lukeshu.com> From: Luke Shumaker I don't usually send patches here, I usually just push them to git, but I'd like for code review to happen more often, so here we go. This is also published as the 'lukeshu/fast-tests' branch in git. The goal of this patchset is to speed up the dbscripts test suite (`make -C test test`) by backporting package caching from Arch's dbscripts. To do this without rewriting it too much, we also need to clean up signature handling a bit. On beefcake, this cuts the time the test suite takes to run from ~60 minutes down to ~15 minutes. Luke Shumaker (3): Get rid of config:REQUIRE_SIGNATURE -- always require a signature test/lib/common.bash: Sign packages as part of __buildPackage test: common.bash:__getCheckSum: Don't rely on IFS Pierre Schmitz (3): db-update: Check that packages with invalid signatures wont get added Signing packages is no longer optional Cache already built packages config | 2 -- db-functions | 4 +-- db-update | 2 +- test/Makefile | 6 ++-- test/cases/create-filelists.bats | 1 - test/cases/db-update.bats | 31 ++++++++++++++++ test/cases/signed-packages.bats | 31 ---------------- test/lib/common.bash | 76 ++++++++++++++++++---------------------- 8 files changed, 72 insertions(+), 81 deletions(-) delete mode 100755 test/cases/signed-packages.bats -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Tue Apr 3 20:10:56 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 3 Apr 2018 16:10:56 -0400 Subject: [Dev] [dbscripts] [PATCH 3/6] Signing packages is no longer optional In-Reply-To: <20180403201059.9829-1-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> Message-ID: <20180403201059.9829-4-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit ec7d4fdced1aac8116d68427a8606c9f27b06b41) --- test/cases/create-filelists.bats | 1 - test/cases/db-update.bats | 31 +++++++++++++++++++++++++++++++ test/cases/signed-packages.bats | 37 ------------------------------------- 3 files changed, 31 insertions(+), 38 deletions(-) delete mode 100755 test/cases/signed-packages.bats diff --git a/test/cases/create-filelists.bats b/test/cases/create-filelists.bats index a9cf223..b7fa015 100755 --- a/test/cases/create-filelists.bats +++ b/test/cases/create-filelists.bats @@ -67,7 +67,6 @@ load ../lib/common done } - @test "cleanup file lists" { local pkgs=('pkg-simple-a' 'pkg-simple-b') local pkgbase diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 37dfbc9..f0bb85b 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -160,3 +160,34 @@ load ../lib/common [ ! -e "${FTP_BASE}/unknown" ] rm -rf "${STAGING}/unknown/" } + + at test "add unsigned package fails" { + releasePackage extra 'pkg-simple-a' 'i686' + rm "${STAGING}"/extra/*.sig + ! db-update >/dev/null 2>&1 + + checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 +} + + at test "add invalid signed package fails" { + local p + releasePackage extra 'pkg-simple-a' 'i686' + for p in "${STAGING}"/extra/*${PKGEXT}; do + unxz "$p" + xz -0 "${p%%.xz}" + done + ! db-update >/dev/null 2>&1 + + checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 +} + + at test "add broken signature fails" { + local s + releasePackage extra 'pkg-simple-a' 'i686' + for s in "${STAGING}"/extra/*.sig; do + echo 0 > "$s" + done + ! db-update >/dev/null 2>&1 + + checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 +} diff --git a/test/cases/signed-packages.bats b/test/cases/signed-packages.bats deleted file mode 100755 index 9fb1626..0000000 --- a/test/cases/signed-packages.bats +++ /dev/null @@ -1,37 +0,0 @@ -load ../lib/common - - at test "add signed package" { - releasePackage extra 'pkg-simple-a' 'i686' - db-update -} - - at test "add unsigned package fails" { - releasePackage extra 'pkg-simple-a' 'i686' - rm "${STAGING}"/extra/*.sig - ! db-update >/dev/null 2>&1 - - checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 -} - - at test "add invalid signed package fails" { - local p - releasePackage extra 'pkg-simple-a' 'i686' - for p in "${STAGING}"/extra/*${PKGEXT}; do - unxz "$p" - xz -0 "${p%%.xz}" - done - ! db-update >/dev/null 2>&1 - - checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 -} - - at test "add broken signature fails" { - local s - releasePackage extra 'pkg-simple-a' 'i686' - for s in "${STAGING}"/extra/*.sig; do - echo 0 > "$s" - done - ! db-update >/dev/null 2>&1 - - checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 -} -- 2.16.2 From lukeshu at lukeshu.com Tue Apr 3 20:10:54 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 3 Apr 2018 16:10:54 -0400 Subject: [Dev] [dbscripts] [PATCH 1/6] db-update: Check that packages with invalid signatures wont get added In-Reply-To: <20180403201059.9829-1-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> Message-ID: <20180403201059.9829-2-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 41f4b54c56702610e23ba9130b2022c3f0fe5961) --- test/cases/signed-packages.bats | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/test/cases/signed-packages.bats b/test/cases/signed-packages.bats index 60aec2f..9fb1626 100755 --- a/test/cases/signed-packages.bats +++ b/test/cases/signed-packages.bats @@ -5,13 +5,15 @@ load ../lib/common db-update } - at test "add unsigned package" { + at test "add unsigned package fails" { releasePackage extra 'pkg-simple-a' 'i686' rm "${STAGING}"/extra/*.sig ! db-update >/dev/null 2>&1 + + checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 } - at test "add invalid signed package" { + at test "add invalid signed package fails" { local p releasePackage extra 'pkg-simple-a' 'i686' for p in "${STAGING}"/extra/*${PKGEXT}; do @@ -19,13 +21,17 @@ load ../lib/common xz -0 "${p%%.xz}" done ! db-update >/dev/null 2>&1 + + checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 } - at test "add broken signature" { + at test "add broken signature fails" { local s releasePackage extra 'pkg-simple-a' 'i686' for s in "${STAGING}"/extra/*.sig; do echo 0 > "$s" done ! db-update >/dev/null 2>&1 + + checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 } -- 2.16.2 From lukeshu at lukeshu.com Tue Apr 3 20:10:55 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 3 Apr 2018 16:10:55 -0400 Subject: [Dev] [dbscripts] [PATCH 2/6] Get rid of config:REQUIRE_SIGNATURE -- always require a signature In-Reply-To: <20180403201059.9829-1-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> Message-ID: <20180403201059.9829-3-lukeshu@lukeshu.com> From: Luke Shumaker --- config | 2 -- db-functions | 4 ++-- db-update | 2 +- test/lib/common.bash | 31 +++++++++++-------------------- 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/config b/config index a8a5a0f..9e3dc6b 100644 --- a/config +++ b/config @@ -27,8 +27,6 @@ SOURCE_CLEANUP_DRYRUN=true # Time in days to keep moved sourcepackages SOURCE_CLEANUP_KEEP=30 -REQUIRE_SIGNATURE=true - LOCK_DELAY=10 [ -n "${STAGING:-}" ] || STAGING="$HOME/staging/unknown/staging" diff --git a/db-functions b/db-functions index 2822b48..2629b85 100644 --- a/db-functions +++ b/db-functions @@ -257,7 +257,7 @@ getpkgfile() { elif [ ! -f "${1}" ]; then error "Package %s not found!" "$1" exit 1 - elif "${REQUIRE_SIGNATURE}" && [ ! -f "${1}.sig" ]; then + elif [ ! -f "${1}.sig" ]; then error "Package signature %s not found!" "$1.sig" exit 1 fi @@ -276,7 +276,7 @@ getpkgfiles() { if [ ! -f "${f}" ]; then error "Package %s not found!" "$f" exit 1 - elif "${REQUIRE_SIGNATURE}" && [ ! -f "${f}.sig" ]; then + elif [ ! -f "${f}.sig" ]; then error "Package signature %s not found!" "$f.sig" exit 1 fi diff --git a/db-update b/db-update index e91d3e4..4e2da33 100755 --- a/db-update +++ b/db-update @@ -43,7 +43,7 @@ for repo in "${repos[@]}"; do if ! check_pkgfile "${pkg}"; then die "Package %s is not consistent with its meta data" "$repo/${pkg##*/}" fi - if "${REQUIRE_SIGNATURE}" && ! pacman-key -v "${pkg}.sig" >/dev/null 2>&1; then + if ! pacman-key -v "${pkg}.sig" >/dev/null 2>&1; then die "Package %s does not have a valid signature" "$repo/${pkg##*/}" fi if ! check_pkgrepos "${pkg}"; then diff --git a/test/lib/common.bash b/test/lib/common.bash index 9aa7336..ce41ae1 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -70,7 +70,6 @@ setup() { TMPDIR="${TMP}/tmp" CLEANUP_DRYRUN=false SOURCE_CLEANUP_DRYRUN=false - REQUIRE_SIGNATURE=true eot . config @@ -145,13 +144,11 @@ releasePackage() { cp *-"${pkgver}-${arch}"${PKGEXT} "${STAGING}/${repo}/" popd >/dev/null - if "${REQUIRE_SIGNATURE}"; then - for a in "${arch[@]}"; do - for p in "${pkgname[@]}"; do - signpkg "${STAGING}/${repo}/${p}-${pkgver}-${a}"${PKGEXT} - done + for a in "${arch[@]}"; do + for p in "${pkgname[@]}"; do + signpkg "${STAGING}/${repo}/${p}-${pkgver}-${a}"${PKGEXT} done - fi + done } getPackageNamesFromPackageBase() { @@ -167,18 +164,14 @@ checkAnyPackageDB() { local db [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}" ] - if "${REQUIRE_SIGNATURE}"; then - [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}.sig" ] - fi + [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}.sig" ] for arch in "${ARCH_BUILD[@]}"; do [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}")" ] - if "${REQUIRE_SIGNATURE}"; then - [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig" ] - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] - fi + [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig" ] + [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] for db in "${DBEXT}" "${FILESEXT}"; do if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ]; then @@ -213,13 +206,11 @@ checkPackageDB() { [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}")" ] - if "${REQUIRE_SIGNATURE}"; then - [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}.sig" ] - [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig" ] - [ ! -r "${STAGING}/${repo}/${pkg}.sig" ] + [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}.sig" ] + [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig" ] + [ ! -r "${STAGING}/${repo}/${pkg}.sig" ] - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] - fi + [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] for db in "${DBEXT}" "${FILESEXT}"; do if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ]; then -- 2.16.2 From lukeshu at lukeshu.com Tue Apr 3 20:10:57 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 3 Apr 2018 16:10:57 -0400 Subject: [Dev] [dbscripts] [PATCH 4/6] test/lib/common.bash: Sign packages as part of __buildPackage In-Reply-To: <20180403201059.9829-1-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> Message-ID: <20180403201059.9829-5-lukeshu@lukeshu.com> From: Luke Shumaker --- test/lib/common.bash | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index ce41ae1..c61c948 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -8,21 +8,6 @@ die() { exit 1 } -signpkg() { - if [[ -r '/etc/makepkg.conf' ]]; then - source '/etc/makepkg.conf' - else - die '/etc/makepkg.conf not found!' - fi - if [[ -r ~/.makepkg.conf ]]; then - . ~/.makepkg.conf - fi - if [[ -n $GPGKEY ]]; then - SIGNWITHKEY=(-u "${GPGKEY}") - fi - gpg --detach-sign --use-agent "${SIGNWITHKEY[@]}" "${@}" -} - __buildPackage() { local arch=$1 local pkgver @@ -45,6 +30,12 @@ __buildPackage() { sudo librechroot -n "dbscripts@${arch}" -A "$arch" make fi sudo libremakepkg -n "dbscripts@${arch}" + + for p in "${pkgname[@]}"; do + for file in "${p}-${pkgver}-${arch}"*; do + gpg --detach-sign --no-armor --use-agent "$file" + done + done } setup() { @@ -141,14 +132,10 @@ releasePackage() { xbs release-client "${repo}" "${arch}" pkgver=$(. PKGBUILD; get_full_version) pkgname=($(. PKGBUILD; echo "${pkgname[@]}")) - cp *-"${pkgver}-${arch}"${PKGEXT} "${STAGING}/${repo}/" - popd >/dev/null - - for a in "${arch[@]}"; do - for p in "${pkgname[@]}"; do - signpkg "${STAGING}/${repo}/${p}-${pkgver}-${a}"${PKGEXT} - done + for p in "${pkgname[@]}"; do + cp "${p}-${pkgver}-${arch}"${PKGEXT}{,.sig} "${STAGING}/${repo}/" done + popd >/dev/null } getPackageNamesFromPackageBase() { -- 2.16.2 From lukeshu at lukeshu.com Tue Apr 3 20:10:59 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 3 Apr 2018 16:10:59 -0400 Subject: [Dev] [dbscripts] [PATCH 6/6] test: common.bash:__getCheckSum: Don't rely on IFS In-Reply-To: <20180403201059.9829-1-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> Message-ID: <20180403201059.9829-7-lukeshu@lukeshu.com> From: Luke Shumaker I managed to stumble across a bug in BATS where the run() function screwed with the global IFS. The bug has been fixed in git, but isn't in a release yet. https://github.com/sstephenson/bats/issues/89 Anyway, this bug breaks __getCheckSum(). Fortunately, we have avoided tripping it so far because luck has it that we never call __getCheckSum() after run() in the same test. So, there's nothing actually broken here, but it makes me nervous. So go ahead and modify __getCheckSum to not rely on IFS. And, while we're at it: declare the result variable and set it as separate commands. Doing both in the same command masks the exit code of the subshell expansion. We don't explicitly check the exit code, but BATS runs the test suite with `set -e`, so splitting it does mean that BATS will now detect errors from sha1sum. We don't really expect that to happen, but if BATS will give us error checking on it for free, why not? (cherry picked from commit 4ae3ea2f71344045fa4990c0524b4c662ab83cfc) --- test/lib/common.bash | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index 7704098..2d3feab 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -9,8 +9,9 @@ die() { } __getCheckSum() { - local result=($(sha1sum $1)) - echo ${result[0]} + local result + result="$(sha1sum "$1")" + echo "${result%% *}" } __buildPackage() { -- 2.16.2 From lukeshu at lukeshu.com Tue Apr 3 20:10:58 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 3 Apr 2018 16:10:58 -0400 Subject: [Dev] [dbscripts] [PATCH 5/6] Cache already built packages In-Reply-To: <20180403201059.9829-1-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> Message-ID: <20180403201059.9829-6-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 59d495b55f52253518fe1a184627e7259034f978) --- test/Makefile | 6 ++++-- test/lib/common.bash | 25 +++++++++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/test/Makefile b/test/Makefile index d9437bf..5ed3910 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,8 +1,10 @@ +PACKAGE_CACHE:=$(shell mktemp -d) + test: - PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) bats cases + PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) bats cases test-coverage: - PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) kcov \ + PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) kcov \ --include-path=$(CURDIR)/../ \ --exclude-path=$(CURDIR)/../test,$(CURDIR)/../cron-jobs/makepkg.conf,$(CURDIR)/../config \ $(COVERAGE_DIR) \ diff --git a/test/lib/common.bash b/test/lib/common.bash index c61c948..7704098 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -8,22 +8,30 @@ die() { exit 1 } +__getCheckSum() { + local result=($(sha1sum $1)) + echo ${result[0]} +} + __buildPackage() { local arch=$1 local pkgver local pkgname local a local p + local checkSum + + if [[ -n ${PACKAGE_CACHE} ]]; then + checkSum=$(__getCheckSum PKGBUILD) + # TODO: Be more specific + if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then + return 0 + fi + fi pkgname=($(. PKGBUILD; echo "${pkgname[@]}")) pkgver=$(. PKGBUILD; get_full_version) - for p in "${pkgname[@]}"; do - if [ -f "${p}-${pkgver}-${arch}"${PKGEXT} ]; then - return 0 - fi - done - if [ "${arch}" == 'any' ]; then sudo librechroot -n "dbscripts@${arch}" make else @@ -36,6 +44,11 @@ __buildPackage() { gpg --detach-sign --no-armor --use-agent "$file" done done + + if [[ -n ${PACKAGE_CACHE} ]]; then + mkdir -p ${PACKAGE_CACHE}/${checkSum} + cp -av *-${arch}${PKGEXT}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ + fi } setup() { -- 2.16.2 From nobody at parabola.nu Wed Apr 4 06:39:49 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Wed, 04 Apr 2018 06:39:49 -0000 Subject: [Dev] Orphan Nonprism package [webkit2gtk] marked out-of-date Message-ID: <20180404063949.9751.18402@proton.parabola.nu> kevin at kphoenix.us wants to notify you that the following packages may be out-of-date: The user provided the following additional text: extra has 2.20, and the current version needs to be rebuilt against icu 61. From lukeshu at lukeshu.com Wed Apr 4 22:50:32 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Wed, 04 Apr 2018 18:50:32 -0400 Subject: [Dev] [dbscripts] [PATCH 0/6] Speed up the test suite In-Reply-To: <20180403201059.9829-1-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> Message-ID: <87zi2i8u2v.wl-lukeshu@lukeshu.com> I'll be applying this to [master] right before I email out the next patchset. Hopefully, that will be in about 4 hours when the tests come back clean (8 minutes per run * 30 commits = 4 hours). -- Happy hacking, ~ Luke Shumaker From megver83 at hyperbola.info Thu Apr 5 23:23:00 2018 From: megver83 at hyperbola.info (Megver83) Date: Thu, 5 Apr 2018 20:23:00 -0300 Subject: [Dev] Orphan Libre package [linux-libre] marked out-of-date In-Reply-To: <20180403134008.9748.41995@proton.parabola.nu> References: <20180403134008.9748.41995@proton.parabola.nu> Message-ID: <77a45b9c-530f-456f-3c88-8583bf28e269@hyperbola.info> El 03/04/18 a las 10:40, Parabola Website Notification escribi?: > swiftgeek+parabola at gmail.com wants to notify you that the following packages may be out-of-date: > > > * linux-libre 4.15.12_gnu-1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/linux-libre/ > * linux-libre 4.15.12_gnu-3 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/linux-libre/ > * linux-libre 4.15.12_gnu-3 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/linux-libre/ > * linux-libre-docs 4.15.12_gnu-1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/linux-libre-docs/ > * linux-libre-docs 4.15.12_gnu-3 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/linux-libre-docs/ > * linux-libre-docs 4.15.12_gnu-3 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/linux-libre-docs/ > * linux-libre-headers 4.15.12_gnu-1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/linux-libre-headers/ > * linux-libre-headers 4.15.12_gnu-3 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/linux-libre-headers/ > * linux-libre-headers 4.15.12_gnu-3 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/linux-libre-headers/ > > > The user provided the following additional text: > > 4.16 is out https://www.fsfla.org/ikiwiki/selibre/linux-libre/index.en.html#news > So what? Arch is using stable 4.15.x kernels generation -> https://www.archlinux.org/packages/core/x86_64/linux/ 4.16 is still too new to push it to [libre]. I've updated it to 4.15.15. -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 520 bytes Desc: OpenPGP digital signature URL: From lukeshu at lukeshu.com Fri Apr 6 00:55:29 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Thu, 05 Apr 2018 20:55:29 -0400 Subject: [Dev] [dbscripts] [PATCH 5/6] Cache already built packages In-Reply-To: <20180403201059.9829-6-lukeshu@lukeshu.com> References: <20180403201059.9829-1-lukeshu@lukeshu.com> <20180403201059.9829-6-lukeshu@lukeshu.com> Message-ID: <87po3d8872.wl-lukeshu@lukeshu.com> On Tue, 03 Apr 2018 16:10:58 -0400, Luke Shumaker wrote: > > From: Pierre Schmitz > > (cherry picked from commit 59d495b55f52253518fe1a184627e7259034f978) > --- > test/Makefile | 6 ++++-- > test/lib/common.bash | 25 +++++++++++++++++++------ > 2 files changed, 23 insertions(+), 8 deletions(-) > > diff --git a/test/Makefile b/test/Makefile > index d9437bf..5ed3910 100644 > --- a/test/Makefile > +++ b/test/Makefile > @@ -1,8 +1,10 @@ > +PACKAGE_CACHE:=$(shell mktemp -d) > + > test: > - PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) bats cases > + PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) bats cases > > test-coverage: > - PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) kcov \ > + PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) kcov \ > --include-path=$(CURDIR)/../ \ > --exclude-path=$(CURDIR)/../test,$(CURDIR)/../cron-jobs/makepkg.conf,$(CURDIR)/../config \ > $(COVERAGE_DIR) \ > diff --git a/test/lib/common.bash b/test/lib/common.bash > index c61c948..7704098 100644 > --- a/test/lib/common.bash > +++ b/test/lib/common.bash > @@ -8,22 +8,30 @@ die() { > exit 1 > } > > +__getCheckSum() { > + local result=($(sha1sum $1)) > + echo ${result[0]} > +} > + > __buildPackage() { > local arch=$1 > local pkgver > local pkgname > local a > local p > + local checkSum > + > + if [[ -n ${PACKAGE_CACHE} ]]; then > + checkSum=$(__getCheckSum PKGBUILD) > + # TODO: Be more specific > + if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then > + return 0 > + fi > + fi > > pkgname=($(. PKGBUILD; echo "${pkgname[@]}")) > pkgver=$(. PKGBUILD; get_full_version) > > - for p in "${pkgname[@]}"; do > - if [ -f "${p}-${pkgver}-${arch}"${PKGEXT} ]; then > - return 0 > - fi > - done > - > if [ "${arch}" == 'any' ]; then > sudo librechroot -n "dbscripts@${arch}" make > else > @@ -36,6 +44,11 @@ __buildPackage() { > gpg --detach-sign --no-armor --use-agent "$file" > done > done > + > + if [[ -n ${PACKAGE_CACHE} ]]; then > + mkdir -p ${PACKAGE_CACHE}/${checkSum} > + cp -av *-${arch}${PKGEXT}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ > + fi This glob is overly permissive, and copies too much. releasePackage calls __buildPackage from "${TMP}/svn-packages-copy/${pkgbase}/trunk/". This means that when we update a package, after the updated version is built, both v1 and v2 exist in that trunk/ directory. Then, this copies both the v1 and v2 .pkg.tar.gz files to the cache directory for v2. That is: On subsequent runs (e.i. with a cache hit) of __buildPackage for v2 of that package, it will look like makepkg magically built both v1 and v2 of the package, instead of just v2. This isn't really a problem right now because further down in releasePackage, when we copy the makepkg outputs to $STAGING, that glob is sufficiently strict and only copies the v2 outputs. But this could easily accidentially lead to weird breakage with a seemingly innocuous change assumes that everything that __buildPackage spits out is good (*ahem* 76f95dd139094dc2985b6733f23fcb098f07c64e). > } > > setup() { > -- > 2.16.2 -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Fri Apr 6 03:20:54 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Thu, 5 Apr 2018 23:20:54 -0400 Subject: [Dev] [dbscripts] [PATCH 0/2] Speed up the test suite even more Message-ID: <20180406032056.24189-1-lukeshu@lukeshu.com> From: Luke Shumaker Before applying these changes to 'master', I'd like to submit them here for comments. This patchset is also published as the 'lukeshu/faster-tests' branch in git. The last patchset I submitted for review introduced a "package cache" that is used during a test suite run, to avoid rebuilding packages (libremakepkg) many times throughout the tests. That cache lived in a temporary directory created by `make test`. This patchset speeds up the tests even further by allowing that package cache to persist across test suite runs. Because package creation isn't the functionality under test, this should be safe to do. On beefcake.parabola.nu, this takes the test suite from ~13 minutes to 7-8 minutes, assuming that the cache is full and the PKGBUILD fixtures haven't changed. Luke Shumaker (2): test: common.bash: Be more careful about what we put in the package cache test/Makefile: Share the package cache between test suite runs test/Makefile | 2 +- test/lib/common.bash | 26 +++++++++++--------------- 2 files changed, 12 insertions(+), 16 deletions(-) -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Fri Apr 6 03:20:55 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Thu, 5 Apr 2018 23:20:55 -0400 Subject: [Dev] [dbscripts] [PATCH 1/2] test: common.bash: Be more careful about what we put in the package cache In-Reply-To: <20180406032056.24189-1-lukeshu@lukeshu.com> References: <20180406032056.24189-1-lukeshu@lukeshu.com> Message-ID: <20180406032056.24189-2-lukeshu@lukeshu.com> From: Luke Shumaker The glob that copies makepkg outputs to the package cache was overly permissive, and copies too much. releasePackage calls __buildPackage from "${TMP}/svn-packages-copy/${pkgbase}/trunk/". This means that when we update a package, after the updated version is built, both v1 and v2 exist in that trunk/ directory. Then, this copies both the v1 and v2 .pkg.tar.xz files to the cache directory for v2. That is: On subsequent runs (e.i. with a cache hit) of __buildPackage for v2 of that package, it will look like makepkg magically built both v1 and v2 of the package, instead of just v2. Right now, that isn't really a problem because further down in releasePackage, when we copy the makepkg outputs to $STAGING, that glob is sufficiently strict to only copy the v2 outputs. However, the cache is poisoned, and that means that keeping it around longer increases the odds that we do something that this poisoning breaks. So, backport using libmakepkg's print_all_package_names to be extremely careful about what we put in the cache. This should make the cache safe to use across test suite runs. (this is a partial cherry pick of commit 76f95dd139094dc2985b6733f23fcb098f07c64e) Allways build packages for all supported architectures --- test/lib/common.bash | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index 2d3feab..aeed8a0 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -16,11 +16,9 @@ __getCheckSum() { __buildPackage() { local arch=$1 - local pkgver - local pkgname - local a local p local checkSum + local pkgnames if [[ -n ${PACKAGE_CACHE} ]]; then checkSum=$(__getCheckSum PKGBUILD) @@ -30,9 +28,6 @@ __buildPackage() { fi fi - pkgname=($(. PKGBUILD; echo "${pkgname[@]}")) - pkgver=$(. PKGBUILD; get_full_version) - if [ "${arch}" == 'any' ]; then sudo librechroot -n "dbscripts@${arch}" make else @@ -40,16 +35,17 @@ __buildPackage() { fi sudo libremakepkg -n "dbscripts@${arch}" - for p in "${pkgname[@]}"; do - for file in "${p}-${pkgver}-${arch}"*; do - gpg --detach-sign --no-armor --use-agent "$file" - done - done + pkgnames=($(. PKGBUILD; print_all_package_names)) + for p in ${pkgnames[@]/%/${PKGEXT}}; do + [[ ${p} = *-${arch}${PKGEXT} ]] || continue + # Manually sign packages as "makepkg --sign" is buggy + gpg -v --detach-sign --no-armor --use-agent ${p} - if [[ -n ${PACKAGE_CACHE} ]]; then - mkdir -p ${PACKAGE_CACHE}/${checkSum} - cp -av *-${arch}${PKGEXT}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ - fi + if [[ -n ${PACKAGE_CACHE} ]]; then + mkdir -p ${PACKAGE_CACHE}/${checkSum} + cp -Lv ${p}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ + fi + done } setup() { -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 03:20:56 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Thu, 5 Apr 2018 23:20:56 -0400 Subject: [Dev] [dbscripts] [PATCH 2/2] test/Makefile: Share the package cache between test suite runs In-Reply-To: <20180406032056.24189-1-lukeshu@lukeshu.com> References: <20180406032056.24189-1-lukeshu@lukeshu.com> Message-ID: <20180406032056.24189-3-lukeshu@lukeshu.com> From: Luke Shumaker Previous commits introduced a "package cache" that is used during a test suite run, to avoid rebuilding packages (libremakepkg) many times throughout the tests. That cache lived in a temporary directory created by `make test`. This patch speeds up the tests even further by allowing that package cache to persist across test suite runs. Because package creation isn't the functionality under test, that should be safe to do. --- test/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Makefile b/test/Makefile index 5ed3910..9a6d18f 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,4 +1,4 @@ -PACKAGE_CACHE:=$(shell mktemp -d) +PACKAGE_CACHE ?= $(or $(TMPDIR),/tmp)/dbscripts-build test: PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) bats cases -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 15:34:15 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 06 Apr 2018 11:34:15 -0400 Subject: [Dev] [dbscripts] [PATCH 1/2] test: common.bash: Be more careful about what we put in the package cache In-Reply-To: <20180406032056.24189-2-lukeshu@lukeshu.com> References: <20180406032056.24189-1-lukeshu@lukeshu.com> <20180406032056.24189-2-lukeshu@lukeshu.com> Message-ID: <87lge08i2w.wl-lukeshu@lukeshu.com> On Thu, 05 Apr 2018 23:20:55 -0400, Luke Shumaker wrote: > > From: Luke Shumaker That should be: Author: Pierre Schmitz 2017-04-20 15:55:23 Because it is... > (this is a partial cherry pick of commit 76f95dd139094dc2985b6733f23fcb098f07c64e) > > Allways build packages for all supported architectures I've fixed this metadata on the lukeshu/faster-tests branch. There are no changes to the content of the commit message or the content of the patch. -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Fri Apr 6 15:37:14 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 06 Apr 2018 11:37:14 -0400 Subject: [Dev] [dbscripts] [PATCH 1/2] test: common.bash: Be more careful about what we put in the package cache In-Reply-To: <20180406032056.24189-2-lukeshu@lukeshu.com> References: <20180406032056.24189-1-lukeshu@lukeshu.com> <20180406032056.24189-2-lukeshu@lukeshu.com> Message-ID: <87k1tk8hxx.wl-lukeshu@lukeshu.com> On Thu, 05 Apr 2018 23:20:55 -0400, Luke Shumaker wrote: > That is: On subsequent runs (e.i. with a cache hit) of __buildPackage Typo! "Id est"! Fixing on lukeshu/faster-tests branch. -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Fri Apr 6 18:43:34 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:34 -0400 Subject: [Dev] [dbscripts] [PATCH 01/31] test: common.bash: checkPackageDB(): Require the DB file to exist In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-2-lukeshu@lukeshu.com> From: Luke Shumaker In 3a9623ba96dc8a26120be89354115dc120e71374 when I adjusted the function to work correctly with `set -e`, I misread the interaction between parenthesis and ||. I had treated it like the more common ([ test ] && bsdtar) && fail -> if [ test ]; then ! bsdtar; fi pattern, and incorrectly adjusted it as ([ test ] && bsdtar) || fail -> if [ test ]; then bsdtar; fi but I should have translated it as ([ test ] && bsdtar) || fail -> [ test ] && bsdtar The result is that we weren't requiring the DB file to exist. Note that Pierre got it right in Arch's version of the change, d0b808b5a58023899c7e76958cdae732bbdfc08e. --- test/lib/common.bash | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index aeed8a0..73248d7 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -171,9 +171,8 @@ checkAnyPackageDB() { [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] for db in "${DBEXT}" "${FILESEXT}"; do - if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ]; then - bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null - fi + [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ] + bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null done done [ ! -r "${STAGING}/${repo}/${pkg}" ] -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:33 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:33 -0400 Subject: [Dev] [dbscripts] [PATCH 00/31] Backport Pierre's April 2017 test suite improvements Message-ID: <20180406184404.2247-1-lukeshu@lukeshu.com> From: Luke Shumaker Before applying these changes to 'master', I'd like to submit them here for comments. This patchset is also published as the 'lukeshu/pierre-tests' branch in git. The last few big patchsets have been setting the stage for this: (1) My first big recent patchset (which I didn't submit to the list; it was the 18 commits 323706b19^..ffedeab54) re-organized our test suite to be shaped like Arch's: move files around, and adjust it to use BATS instead of shUnit2. This got it ready to backport changes from Arch. However, it left the test suite horribly, slow, taking a full hour to run (on beefcake.parabola.nu). This made it very difficult to work on the tests. (2) So then, the next big patchset (lukeshu/fast-tests) backported from Arch the ability for the test suite to cache `makepkg/makechrootpkg/libremakepkg` results, speeding the test suite up to about 13 minutes. (3) However, that wasn't perfect (sometimes the cache got corrupted), and was still slower than it could be. So lukeshu/faster-tests backported the cache corruption fix, and also made it so that the cache could persist across test suite runs. Down to 7-8 minutes for a full run (assuming a full cache)! So now, let's get the payoff; backport Pierre Schmitz' April 2017 improvements to the test suite! When cherry-picking these, some of the conflict resolutions are non-obvious or tricky. This also includes a couple of fixes for issues that are unearthed by the improved tests: - db-repo-add: Fix adding arch=(any) packages (normally packages are added directly by db-update or db-import, so this wasn't terribly severe). - db-update: Be stricter about package names Unlike Pierre's changes in Arch, this doesn't have us use Docker for the test suite. There are a few reasons for that, but the biggest is that we don't have a standard up-to-date Docker image of Parabola. I have verified that at each and every commit (except for the one tagged [ci skip]) the tests pass (allowing caching packages between commits), and have also verified that the tests pass with an empty package cache at the most recent commit. Eli Schwartz (1): test: Don't treat PKGEXT as a glob Luke Shumaker (10): test: common.bash: checkPackageDB(): Require the DB file to exist test: common.bash: Do better quoting when setting xbs-abs.conf:ARCHES .gitignore: Tidy test: common.bash: Move __buildPackage() down in the file test: ftpdir-cleanup: "cleanup split packages": Correctly iterate test: Prefer to check status with 'run' and $status test: Don't direct {pushd,popd,svn,ftpdir-cleanup} to /dev/null test: common.bash: Move __buildPackage() up in the file test: ftpdir-cleanup: Fix variable name mistake: ${pkg[0]} -> ${pkgs[0]} test: common.bash: Fix syntax mistake: $pkgarches[@] -> ${pkgarches[@]} Pierre Schmitz (20): Add travis configuration Add editor configuration Use a minimal travis environment db-repo-add: Fix adding of 'any' packages db-repo-remove: Test removal of 'any' packages ftpdir-cleanup: Test removal of old packages db-update: Disallow invalid package names [ci skip] Avoid replacing the temporary dir by accident db-update: Test if package cannot be added if svn is inconsistent db-update: Test package validation Move package build and update functions to common library Remove test for file database as this feature was moved to pacman/repo-add a long time ago Mark private test functions Extend check functions to handle 'any' packages as well Move common checks to functions Remove useless code Allways build packages for all supported architectures Reduce test dependencies Correctly use checkRemovedPackage Move package and db checks from test cases to library .editorconfig | 7 + .gitignore | 7 +- .travis.yml | 9 + db-functions | 2 +- db-repo-add | 4 +- test/Makefile | 6 +- test/cases/create-filelists.bats | 95 ----------- test/cases/db-move.bats | 59 ++----- test/cases/db-remove.bats | 20 +-- test/cases/db-repo-add.bats | 60 +++++-- test/cases/db-repo-remove.bats | 35 ++-- test/cases/db-update.bats | 188 ++++++++++++--------- test/cases/ftpdir-cleanup.bats | 107 +++++++----- test/cases/packages.bats | 45 ----- test/cases/sourceballs.bats | 34 ++-- test/fixtures/pkg-any-a/PKGBUILD | 1 + test/fixtures/pkg-any-b/PKGBUILD | 1 + test/fixtures/pkg-simple-a/PKGBUILD | 1 + test/fixtures/pkg-simple-b/PKGBUILD | 1 + test/fixtures/pkg-simple-epoch/PKGBUILD | 1 + test/fixtures/pkg-single-arch/PKGBUILD | 13 ++ test/fixtures/pkg-single-epoch/PKGBUILD | 14 ++ test/fixtures/pkg-split-a/PKGBUILD | 1 + test/fixtures/pkg-split-b/PKGBUILD | 1 + test/lib/common.bash | 280 ++++++++++++++++---------------- 25 files changed, 495 insertions(+), 497 deletions(-) create mode 100644 .editorconfig create mode 100644 .travis.yml delete mode 100755 test/cases/create-filelists.bats delete mode 100755 test/cases/packages.bats create mode 100644 test/fixtures/pkg-single-arch/PKGBUILD create mode 100644 test/fixtures/pkg-single-epoch/PKGBUILD -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Fri Apr 6 18:43:35 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:35 -0400 Subject: [Dev] [dbscripts] [PATCH 02/31] test: common.bash: Do better quoting when setting xbs-abs.conf:ARCHES In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-3-lukeshu@lukeshu.com> From: Luke Shumaker --- test/lib/common.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index 73248d7..6b3b2ad 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -95,7 +95,7 @@ eot SVNREPOS=( "svn-packages-copy file://${TMP}/svn-packages-repo core extra testing" ) - ARCHES=(${ARCH_BUILD[*]}) + ARCHES=(${ARCH_BUILD[*]@Q}) eot echo 'BUILDSYSTEM=abs' > "$XDG_CONFIG_HOME/xbs/xbs.conf" } -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:36 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:36 -0400 Subject: [Dev] [dbscripts] [PATCH 03/31] .gitignore: Tidy In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-4-lukeshu@lukeshu.com> From: Luke Shumaker --- .gitignore | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 26a5ca5..cd74b47 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ *~ -*.pyc -/config.local -test/packages/*/*.pkg.tar.?z \#*# .#* +*.pyc +/config.local +/.idea /coverage + yftime src* pkg* -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:37 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:37 -0400 Subject: [Dev] [dbscripts] [PATCH 04/31] Add travis configuration In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-5-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit aaf67a3b12239fe11cc8e4346340be67930ffa0b) --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..2e3480a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,7 @@ +sudo: required + +services: + - docker + +script: + - make test -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:38 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:38 -0400 Subject: [Dev] [dbscripts] [PATCH 05/31] Add editor configuration In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-6-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit abe255d51bc450ee9c0ac1a4486b4d7d10c9794f) --- .editorconfig | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ffdaa55 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +root = true +[*] +indent_style = tab +end_of_line = lf +charset = utf-8 +[*.yml] +indent_style = space -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:39 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:39 -0400 Subject: [Dev] [dbscripts] [PATCH 06/31] Use a minimal travis environment In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-7-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 4c83281eedf2a27d088f2b1f3a31919983417a74) --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 2e3480a..0b0519c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ sudo: required +language: bash + services: - docker -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:41 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:41 -0400 Subject: [Dev] [dbscripts] [PATCH 08/31] db-repo-remove: Test removal of 'any' packages In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-9-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 5d8d01bef27b358c09267a66411c643bfc78503b) --- test/cases/db-repo-remove.bats | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/cases/db-repo-remove.bats b/test/cases/db-repo-remove.bats index 5f8ddc7..0e38ad5 100755 --- a/test/cases/db-repo-remove.bats +++ b/test/cases/db-repo-remove.bats @@ -49,3 +49,22 @@ load ../lib/common done done } + + at test "remove any packages" { + local pkgs=('pkg-any-a' 'pkg-any-b') + local pkgbase + + for pkgbase in ${pkgs[@]}; do + releasePackage extra ${pkgbase} any + done + + db-update + + for pkgbase in ${pkgs[@]}; do + db-repo-remove extra any ${pkgbase} + done + + for pkgbase in ${pkgs[@]}; do + checkRemovedAnyPackageDB extra ${pkgbase} + done +} -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:40 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:40 -0400 Subject: [Dev] [dbscripts] [PATCH 07/31] db-repo-add: Fix adding of 'any' packages In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-8-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 10439da698c8eb723b1637b803cb37370245a2f8) --- db-repo-add | 4 ++-- test/cases/db-repo-add.bats | 22 ++++++++++++++++++++++ test/lib/common.bash | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/db-repo-add b/db-repo-add index c9e3a15..0fc69fe 100755 --- a/db-repo-add +++ b/db-repo-add @@ -30,8 +30,8 @@ done for tarch in "${tarches[@]}"; do for pkgfile in "${pkgfiles[@]}"; do - if [[ ! -f "${FTP_BASE}/${repo}/os/${arch}/${pkgfile##*/}" ]]; then - die "Package file %s not found in %s" "${pkgfile##*/}" "${FTP_BASE}/${repo}/os/${arch}/" + if [[ ! -f ${FTP_BASE}/${repo}/os/${tarch}/${pkgfile##*/} ]]; then + die "Package file %s not found in %s" "${pkgfile##*/}" "${FTP_BASE}/${repo}/os/${tarch}/" else msg "Adding %s to [%s]..." "$pkgfile" "$repo" fi diff --git a/test/cases/db-repo-add.bats b/test/cases/db-repo-add.bats index aeab8ef..d76b245 100755 --- a/test/cases/db-repo-add.bats +++ b/test/cases/db-repo-add.bats @@ -45,3 +45,25 @@ load ../lib/common done done } + + at test "add any packages" { + local pkgs=('pkg-any-a' 'pkg-any-b') + local pkgbase + local arch + + for pkgbase in ${pkgs[@]}; do + releasePackage extra ${pkgbase} any + mv "${STAGING}"/extra/* "${FTP_BASE}/${PKGPOOL}/" + for arch in "${ARCH_BUILD[@]}"; do + ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-any.pkg.tar.xz" "${FTP_BASE}/extra/os/${arch}/" + ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-any.pkg.tar.xz.sig" "${FTP_BASE}/extra/os/${arch}/" + done + db-repo-add extra any ${pkgbase}-1-1-any.pkg.tar.xz + done + + for pkgbase in ${pkgs[@]}; do + for arch in "${ARCH_BUILD[@]}"; do + checkPackageDB extra ${pkgbase}-1-1-any.pkg.tar.xz ${arch} + done + done +} diff --git a/test/lib/common.bash b/test/lib/common.bash index 6b3b2ad..fd1c8bb 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -65,6 +65,7 @@ setup() { SRCPOOL='sources/packages' TESTING_REPO='testing' STABLE_REPOS=('core' 'extra') + ARCHES=(${ARCH_BUILD[*]@Q}) CLEANUP_DESTDIR="${TMP}/package-cleanup" SOURCE_CLEANUP_DESTDIR="${TMP}/source-cleanup" STAGING="${TMP}/staging" -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:42 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:42 -0400 Subject: [Dev] [dbscripts] [PATCH 09/31] ftpdir-cleanup: Test removal of old packages In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-10-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 961c9407982315ba52f5fa4371b20e0db95e7cdb) --- test/cases/ftpdir-cleanup.bats | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index 220418b..417e32b 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -111,3 +111,36 @@ load ../lib/common done done } + + at test "cleanup old packages" { + local pkgs=('pkg-simple-a' 'pkg-simple-b') + local pkgbase + local arch + + for pkgbase in ${pkgs[@]}; do + for arch in "${ARCH_BUILD[@]}"; do + releasePackage extra ${pkgbase} ${arch} + done + done + + db-update + + for pkgbase in ${pkgs[@]}; do + for arch in "${ARCH_BUILD[@]}"; do + db-remove extra ${arch} ${pkgbase} + done + done + + ftpdir-cleanup >/dev/null + + local pkgfilea="pkg-simple-a-1-1-${arch}.pkg.tar.xz" + local pkgfileb="pkg-simple-b-1-1-${arch}.pkg.tar.xz" + for arch in "${ARCH_BUILD[@]}"; do + touch -d "-$(expr ${CLEANUP_KEEP} + 1)days" ${CLEANUP_DESTDIR}/${pkgfilea}{,.sig} + done + + ftpdir-cleanup >/dev/null + + [ ! -f ${CLEANUP_DESTDIR}/${pkgfilea} ] + [ -f ${CLEANUP_DESTDIR}/${pkgfileb} ] +} -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:45 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:45 -0400 Subject: [Dev] [dbscripts] [PATCH 12/31] db-update: Test if package cannot be added if svn is inconsistent In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-13-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 32d99fb5c287d2dc3bb35b41aa471e9f48ea7910) --- test/cases/db-update.bats | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 014fe29..855ba6d 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -214,3 +214,16 @@ load ../lib/common ! db-update >/dev/null 2>&1 checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' } + + at test "add package with inconsistent svn fails" { + skip # abslibre is broken + releasePackage extra 'pkg-simple-a' 'i686' + + pushd "${TMP}/svn-packages-copy/pkg-simple-a/repos/extra-i686" >/dev/null + sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD + svn commit -q -m"update pkg to pkgrel=2" >/dev/null + popd >/dev/null + + ! db-update >/dev/null 2>&1 + checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' +} -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:44 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:44 -0400 Subject: [Dev] [dbscripts] [PATCH 11/31] Avoid replacing the temporary dir by accident In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-12-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 1e8a10b3c8cef45513eb76c557f35dc8dd918334) --- test/cases/db-update.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 4163530..014fe29 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -196,7 +196,7 @@ load ../lib/common releasePackage extra 'pkg-simple-a' 'i686' for p in "${STAGING}"/extra/*; do - mv "${p}" "${p/1/2}" + mv "${p}" "${p/pkg-simple-a-1/pkg-simple-a-2}" done ! db-update >/dev/null 2>&1 -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:43 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:43 -0400 Subject: [Dev] [dbscripts] [PATCH 10/31] db-update: Disallow invalid package names [ci skip] In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-11-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit e84b36059f82edb6d5f9eec1c99695cc80e6fb82) --- db-functions | 2 +- test/cases/db-update.bats | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/db-functions b/db-functions index 2629b85..2ef0a44 100644 --- a/db-functions +++ b/db-functions @@ -297,7 +297,7 @@ check_pkgfile() { in_array "${pkgarch}" "${ARCHES[@]}" 'any' || return 1 - if echo "${pkgfile##*/}" | grep "${pkgname}-${pkgver}-${pkgarch}" &>/dev/null; then + if echo "${pkgfile##*/}" | grep "^${pkgname}-${pkgver}-${pkgarch}" &>/dev/null; then return 0 else return 1 diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index f0bb85b..4163530 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -128,7 +128,6 @@ load ../lib/common done } - @test "add incomplete split package" { skip # commented out with "This is fucking obnoxious" -- abslibre is broken local repo='extra' @@ -191,3 +190,27 @@ load ../lib/common checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 } + + at test "add package with inconsistent version fails" { + local p + releasePackage extra 'pkg-simple-a' 'i686' + + for p in "${STAGING}"/extra/*; do + mv "${p}" "${p/1/2}" + done + + ! db-update >/dev/null 2>&1 + checkRemovedPackage extra 'pkg-simple-a-2-1-i686.pkg.tar.xz' 'i686' +} + + at test "add package with inconsistent name fails" { + local p + releasePackage extra 'pkg-simple-a' 'i686' + + for p in "${STAGING}"/extra/*; do + mv "${p}" "${p/pkg-/foo-pkg-}" + done + + ! db-update >/dev/null 2>&1 + checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' +} -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:46 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:46 -0400 Subject: [Dev] [dbscripts] [PATCH 13/31] db-update: Test package validation In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-14-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit c33e9409cbec408222875f8a71d324362b9cb043) --- test/cases/db-update.bats | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 855ba6d..99c30e0 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -225,5 +225,36 @@ load ../lib/common popd >/dev/null ! db-update >/dev/null 2>&1 - checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' + checkRemovedPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' +} + + at test "add package with insufficient permissions fails" { + releasePackage core 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-simple-b' 'i686' + + chmod -xwr ${FTP_BASE}/core/os/i686 + ! db-update >/dev/null 2>&1 + chmod +xwr ${FTP_BASE}/core/os/i686 + + checkRemovedPackage core 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' + checkRemovedPackage extra 'pkg-simple-b-1-1-i686.pkg.tar.xz' 'i686' +} + + at test "package has to be a regular file" { + local p + local target=$(mktemp -d) + + for arch in "${ARCH_BUILD[@]}"; do + releasePackage extra 'pkg-simple-a' $arch + done + + for p in "${STAGING}"/extra/*i686*; do + mv "${p}" "${target}" + ln -s "${target}/${p##*/}" "${p}" + done + + ! db-update >/dev/null 2>&1 + for arch in "${ARCH_BUILD[@]}"; do + checkRemovedPackage extra "pkg-simple-a-1-1-${arch}.pkg.tar.xz" $arch + done } -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:47 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:47 -0400 Subject: [Dev] [dbscripts] [PATCH 14/31] test: common.bash: Move __buildPackage() down in the file In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-15-lukeshu@lukeshu.com> From: Luke Shumaker For merge-conflict reasons. --- test/lib/common.bash | 68 ++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index fd1c8bb..5843e50 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -14,40 +14,6 @@ __getCheckSum() { echo "${result%% *}" } -__buildPackage() { - local arch=$1 - local p - local checkSum - local pkgnames - - if [[ -n ${PACKAGE_CACHE} ]]; then - checkSum=$(__getCheckSum PKGBUILD) - # TODO: Be more specific - if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then - return 0 - fi - fi - - if [ "${arch}" == 'any' ]; then - sudo librechroot -n "dbscripts@${arch}" make - else - sudo librechroot -n "dbscripts@${arch}" -A "$arch" make - fi - sudo libremakepkg -n "dbscripts@${arch}" - - pkgnames=($(. PKGBUILD; print_all_package_names)) - for p in ${pkgnames[@]/%/${PKGEXT}}; do - [[ ${p} = *-${arch}${PKGEXT} ]] || continue - # Manually sign packages as "makepkg --sign" is buggy - gpg -v --detach-sign --no-armor --use-agent ${p} - - if [[ -n ${PACKAGE_CACHE} ]]; then - mkdir -p ${PACKAGE_CACHE}/${checkSum} - cp -Lv ${p}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ - fi - done -} - setup() { local p local pkg @@ -149,6 +115,40 @@ releasePackage() { popd >/dev/null } +__buildPackage() { + local arch=$1 + local p + local checkSum + local pkgnames + + if [[ -n ${PACKAGE_CACHE} ]]; then + checkSum=$(__getCheckSum PKGBUILD) + # TODO: Be more specific + if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then + return 0 + fi + fi + + if [ "${arch}" == 'any' ]; then + sudo librechroot -n "dbscripts@${arch}" make + else + sudo librechroot -n "dbscripts@${arch}" -A "$arch" make + fi + sudo libremakepkg -n "dbscripts@${arch}" + + pkgnames=($(. PKGBUILD; print_all_package_names)) + for p in ${pkgnames[@]/%/${PKGEXT}}; do + [[ ${p} = *-${arch}${PKGEXT} ]] || continue + # Manually sign packages as "makepkg --sign" is buggy + gpg -v --detach-sign --no-armor --use-agent ${p} + + if [[ -n ${PACKAGE_CACHE} ]]; then + mkdir -p ${PACKAGE_CACHE}/${checkSum} + cp -Lv ${p}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ + fi + done +} + getPackageNamesFromPackageBase() { local pkgbase=$1 -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:48 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:48 -0400 Subject: [Dev] [dbscripts] [PATCH 15/31] Move package build and update functions to common library In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-16-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 51aa6217229ad9164122e904b184c673db190216) --- test/cases/db-update.bats | 19 ++++--------------- test/lib/common.bash | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 99c30e0..bd32b94 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -74,11 +74,7 @@ load ../lib/common releasePackage extra pkg-any-a any db-update - pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null - sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD - svn commit -q -m"update pkg to pkgrel=2" >/dev/null - __buildPackage any - popd >/dev/null + updatePackage pkg-any-a any releasePackage extra pkg-any-a any db-update @@ -89,11 +85,7 @@ load ../lib/common @test "update any package to different repositories at once" { releasePackage extra pkg-any-a any - pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null - sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD - svn commit -q -m"update pkg to pkgrel=2" >/dev/null - __buildPackage any - popd >/dev/null + updatePackage pkg-any-a any releasePackage testing pkg-any-a any @@ -215,14 +207,11 @@ load ../lib/common checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' } - at test "add package with inconsistent svn fails" { + at test "add package with inconsistent pkgbuild fails" { skip # abslibre is broken releasePackage extra 'pkg-simple-a' 'i686' - pushd "${TMP}/svn-packages-copy/pkg-simple-a/repos/extra-i686" >/dev/null - sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD - svn commit -q -m"update pkg to pkgrel=2" >/dev/null - popd >/dev/null + updateRepoPKGBUILD 'pkg-simple-a' extra i686 ! db-update >/dev/null 2>&1 checkRemovedPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' diff --git a/test/lib/common.bash b/test/lib/common.bash index 5843e50..936c7c5 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -149,6 +149,34 @@ __buildPackage() { done } +__updatePKGBUILD() { + local pkgrel + + pkgrel=$(. PKGBUILD; expr ${pkgrel} + 1) + sed "s/pkgrel=.*/pkgrel=${pkgrel}/" -i PKGBUILD + svn commit -q -m"update pkg to pkgrel=${pkgrel}" >/dev/null +} + +updatePackage() { + local pkgbase=$1 + local arch=$2 + + pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/" >/dev/null + __updatePKGBUILD + __buildPackage ${arch} + popd >/dev/null +} + +updateRepoPKGBUILD() { + local pkgbase=$1 + local repo=$2 + local arch=$3 + + pushd "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}/" >/dev/null + __updatePKGBUILD + popd >/dev/null +} + getPackageNamesFromPackageBase() { local pkgbase=$1 -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:50 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:50 -0400 Subject: [Dev] [dbscripts] [PATCH 17/31] Mark private test functions In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-18-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit cc328dca993b52c2266d3c18f8b6321db037c618) --- test/lib/common.bash | 54 ++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index e895fb3..337b177 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -3,6 +3,31 @@ . /usr/share/makepkg/util.sh . "$(dirname "${BASH_SOURCE[0]}")"/../test.conf +__getPackageBaseFromPackage() { + local _base + _grep_pkginfo() { + local _ret + + _ret="$(/usr/bin/bsdtar -xOqf "$1" .PKGINFO | grep -m 1 "^${2} = ")" + echo "${_ret#${2} = }" + } + + _base="$(_grep_pkginfo "$1" "pkgbase")" + if [ -z "$_base" ]; then + _grep_pkginfo "$1" "pkgname" + else + echo "$_base" + fi +} + +__updatePKGBUILD() { + local pkgrel + + pkgrel=$(. PKGBUILD; expr ${pkgrel} + 1) + sed "s/pkgrel=.*/pkgrel=${pkgrel}/" -i PKGBUILD + svn commit -q -m"update pkg to pkgrel=${pkgrel}" >/dev/null +} + __getCheckSum() { local result result="$(sha1sum "$1")" @@ -66,23 +91,6 @@ teardown() { rm -rf "${TMP}" } -getpkgbase() { - local _base - _grep_pkginfo() { - local _ret - - _ret="$(/usr/bin/bsdtar -xOqf "$1" .PKGINFO | grep -m 1 "^${2} = ")" - echo "${_ret#${2} = }" - } - - _base="$(_grep_pkginfo "$1" "pkgbase")" - if [ -z "$_base" ]; then - _grep_pkginfo "$1" "pkgname" - else - echo "$_base" - fi -} - releasePackage() { local repo=$1 local pkgbase=$2 @@ -144,14 +152,6 @@ __buildPackage() { done } -__updatePKGBUILD() { - local pkgrel - - pkgrel=$(. PKGBUILD; expr ${pkgrel} + 1) - sed "s/pkgrel=.*/pkgrel=${pkgrel}/" -i PKGBUILD - svn commit -q -m"update pkg to pkgrel=${pkgrel}" >/dev/null -} - updatePackage() { local pkgbase=$1 local arch=$2 @@ -209,7 +209,7 @@ checkAnyPackage() { checkAnyPackageDB "$repo" "$pkg" - local pkgbase=$(getpkgbase "${FTP_BASE}/${PKGPOOL}/${pkg}") + local pkgbase=$(__getPackageBaseFromPackage "${FTP_BASE}/${PKGPOOL}/${pkg}") svn up -q "${TMP}/svn-packages-copy/${pkgbase}" [ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-any" ] } @@ -246,7 +246,7 @@ checkPackage() { checkPackageDB "$repo" "$pkg" "$arch" - local pkgbase=$(getpkgbase "${FTP_BASE}/${PKGPOOL}/${pkg}") + local pkgbase=$(__getPackageBaseFromPackage "${FTP_BASE}/${PKGPOOL}/${pkg}") svn up -q "${TMP}/svn-packages-copy/${pkgbase}" [ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] } -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:49 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:49 -0400 Subject: [Dev] [dbscripts] [PATCH 16/31] Remove test for file database as this feature was moved to pacman/repo-add a long time ago In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-17-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit f3cf9ff346afc960ccad843e44c1c71334cc84ee) --- test/cases/create-filelists.bats | 95 ---------------------------------------- test/lib/common.bash | 5 --- 2 files changed, 100 deletions(-) delete mode 100755 test/cases/create-filelists.bats diff --git a/test/cases/create-filelists.bats b/test/cases/create-filelists.bats deleted file mode 100755 index b7fa015..0000000 --- a/test/cases/create-filelists.bats +++ /dev/null @@ -1,95 +0,0 @@ -load ../lib/common - - at test "create simple file lists" { - local pkgs=('pkg-simple-a' 'pkg-simple-b' 'pkg-simple-epoch') - local pkgbase - local arch - - for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done - done - db-update - - for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - if ! bsdtar -xOf "${FTP_BASE}/extra/os/${arch}/extra${FILESEXT}" | grep "usr/bin/${pkgbase}" &>/dev/null; then - die "usr/bin/${pkgbase} not found in ${arch}/extra${FILESEXT}" - fi - done - done -} - - at test "create any file lists" { - local pkgs=('pkg-any-a' 'pkg-any-b') - local pkgbase - local arch - - for pkgbase in "${pkgs[@]}"; do - releasePackage extra "${pkgbase}" any - done - db-update - - for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - if ! bsdtar -xOf "${FTP_BASE}/extra/os/${arch}/extra${FILESEXT}" | grep "usr/share/${pkgbase}/test" &>/dev/null; then - die "usr/share/${pkgbase}/test not found in ${arch}/extra${FILESEXT}" - fi - done - done -} - - at test "create split file lists" { - local pkgs=('pkg-split-a' 'pkg-split-b') - local pkg - local pkgbase - local pkgname - local pkgnames - local arch - - for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done - done - db-update - - for pkgbase in "${pkgs[@]}"; do - pkgnames=($(source "${TMP}/svn-packages-copy/${pkgbase}/trunk/PKGBUILD"; echo "${pkgname[@]}")) - for pkgname in "${pkgnames[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - if ! bsdtar -xOf "${FTP_BASE}/extra/os/${arch}/extra${FILESEXT}" | grep "usr/bin/${pkgname}" &>/dev/null; then - die "usr/bin/${pkgname} not found in ${arch}/extra${FILESEXT}" - fi - done - done - done -} - - at test "cleanup file lists" { - local pkgs=('pkg-simple-a' 'pkg-simple-b') - local pkgbase - local arch - - for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done - done - db-update - - for arch in "${ARCH_BUILD[@]}"; do - db-remove extra "${arch}" pkg-simple-a - done - - for arch in "${ARCH_BUILD[@]}"; do - if ! bsdtar -xOf "${FTP_BASE}/extra/os/${arch}/extra${FILESEXT}" | grep "usr/bin/pkg-simple-b" &>/dev/null; then - die "usr/bin/pkg-simple-b not found in ${arch}/extra${FILESEXT}" - fi - if bsdtar -xOf "${FTP_BASE}/extra/os/${arch}/extra${FILESEXT}" | grep "usr/bin/pkg-simple-a" &>/dev/null; then - die "usr/bin/pkg-simple-a still found in ${arch}/extra${FILESEXT}" - fi - done - -} diff --git a/test/lib/common.bash b/test/lib/common.bash index 936c7c5..e895fb3 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -3,11 +3,6 @@ . /usr/share/makepkg/util.sh . "$(dirname "${BASH_SOURCE[0]}")"/../test.conf -die() { - echo "$*" >&2 - exit 1 -} - __getCheckSum() { local result result="$(sha1sum "$1")" -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:52 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:52 -0400 Subject: [Dev] [dbscripts] [PATCH 19/31] test: Prefer to check status with 'run' and $status In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-20-lukeshu@lukeshu.com> From: Luke Shumaker This is a simple search/replace. Replace ! db-update >/dev/null 2>&1 with run db-update [ "$status" -ne 0 ] In Arch, this change was tucked away in d0b808b5a58023899c7e76958cdae732bbdfc08e --- test/cases/db-update.bats | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index bd32b94..9c1226e 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -101,7 +101,8 @@ load ../lib/common checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz any releasePackage extra pkg-any-a any - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] } @test "update same any package to different repositories" { @@ -110,7 +111,8 @@ load ../lib/common checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz any releasePackage testing pkg-any-a any - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] local arch for arch in "${ARCH_BUILD[@]}"; do @@ -133,7 +135,8 @@ load ../lib/common # remove a split package to make db-update fail rm "${STAGING}/extra/${pkgbase}1-"* - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] for arch in "${ARCH_BUILD[@]}"; do if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT%.tar.*}" ]; then @@ -155,7 +158,8 @@ load ../lib/common @test "add unsigned package fails" { releasePackage extra 'pkg-simple-a' 'i686' rm "${STAGING}"/extra/*.sig - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 } @@ -167,7 +171,8 @@ load ../lib/common unxz "$p" xz -0 "${p%%.xz}" done - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 } @@ -178,7 +183,8 @@ load ../lib/common for s in "${STAGING}"/extra/*.sig; do echo 0 > "$s" done - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 } @@ -191,7 +197,8 @@ load ../lib/common mv "${p}" "${p/pkg-simple-a-1/pkg-simple-a-2}" done - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] checkRemovedPackage extra 'pkg-simple-a-2-1-i686.pkg.tar.xz' 'i686' } @@ -203,7 +210,8 @@ load ../lib/common mv "${p}" "${p/pkg-/foo-pkg-}" done - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' } @@ -213,7 +221,8 @@ load ../lib/common updateRepoPKGBUILD 'pkg-simple-a' extra i686 - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] checkRemovedPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' } @@ -222,7 +231,8 @@ load ../lib/common releasePackage extra 'pkg-simple-b' 'i686' chmod -xwr ${FTP_BASE}/core/os/i686 - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] chmod +xwr ${FTP_BASE}/core/os/i686 checkRemovedPackage core 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' @@ -242,7 +252,8 @@ load ../lib/common ln -s "${target}/${p##*/}" "${p}" done - ! db-update >/dev/null 2>&1 + run db-update + [ "$status" -ne 0 ] for arch in "${ARCH_BUILD[@]}"; do checkRemovedPackage extra "pkg-simple-a-1-1-${arch}.pkg.tar.xz" $arch done -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:51 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:51 -0400 Subject: [Dev] [dbscripts] [PATCH 18/31] test: ftpdir-cleanup: "cleanup split packages": Correctly iterate In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-19-lukeshu@lukeshu.com> From: Luke Shumaker In Arch, this fix was tucked away in d0b808b5a58023899c7e76958cdae732bbdfc08e --- test/cases/ftpdir-cleanup.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index 417e32b..30d6d53 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -101,7 +101,7 @@ load ../lib/common for arch in "${ARCH_BUILD[@]}"; do for pkg in $(getPackageNamesFromPackageBase "${pkgs[0]}"); do - checkRemovedPackage extra "${pkgs[0]}" "${arch}" + checkRemovedPackage extra "${pkg}" "${arch}" [ ! -f "${FTP_BASE}/${PKGPOOL}/${pkg}" ] [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] done -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:54 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:54 -0400 Subject: [Dev] [dbscripts] [PATCH 21/31] Extend check functions to handle 'any' packages as well In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-22-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 4751408429ba67625d8a54c6758e979cd20b4c5f) --- test/cases/db-move.bats | 9 +++-- test/cases/db-remove.bats | 2 +- test/cases/db-repo-remove.bats | 2 +- test/cases/db-update.bats | 12 +++--- test/cases/ftpdir-cleanup.bats | 4 +- test/lib/common.bash | 89 +++++++++++------------------------------- 6 files changed, 37 insertions(+), 81 deletions(-) diff --git a/test/cases/db-move.bats b/test/cases/db-move.bats index b23a5b7..a3a41c8 100755 --- a/test/cases/db-move.bats +++ b/test/cases/db-move.bats @@ -78,9 +78,9 @@ load ../lib/common db-update db-move testing extra pkg-any-a - checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz - checkRemovedAnyPackage testing pkg-any-a - checkAnyPackage testing pkg-any-b-1-1-any.pkg.tar.xz + checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkRemovedPackage testing pkg-any-a any + checkPackage testing pkg-any-b-1-1-any.pkg.tar.xz any } @test "move split packages" { @@ -109,5 +109,6 @@ load ../lib/common done done - checkRemovedAnyPackage testing pkg-split-a + # FIXME: Why any? + checkRemovedPackage testing pkg-split-a any } diff --git a/test/cases/db-remove.bats b/test/cases/db-remove.bats index 99b31f7..5201440 100755 --- a/test/cases/db-remove.bats +++ b/test/cases/db-remove.bats @@ -65,6 +65,6 @@ load ../lib/common done for pkgbase in "${pkgs[@]}"; do - checkRemovedAnyPackage extra "${pkgbase}" + checkRemovedPackage extra "${pkgbase}" any done } diff --git a/test/cases/db-repo-remove.bats b/test/cases/db-repo-remove.bats index 0e38ad5..165b759 100755 --- a/test/cases/db-repo-remove.bats +++ b/test/cases/db-repo-remove.bats @@ -65,6 +65,6 @@ load ../lib/common done for pkgbase in ${pkgs[@]}; do - checkRemovedAnyPackageDB extra ${pkgbase} + checkRemovedPackageDB extra ${pkgbase} any done } diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 9c1226e..f648456 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -43,7 +43,7 @@ load ../lib/common db-update for pkgbase in "${pkgs[@]}"; do - checkAnyPackage extra "${pkgbase}-1-1-any.pkg.tar.xz" + checkPackage extra "${pkgbase}-1-1-any.pkg.tar.xz" any done } @@ -79,7 +79,7 @@ load ../lib/common releasePackage extra pkg-any-a any db-update - checkAnyPackage extra pkg-any-a-1-2-any.pkg.tar.xz any + checkPackage extra pkg-any-a-1-2-any.pkg.tar.xz any } @test "update any package to different repositories at once" { @@ -91,14 +91,14 @@ load ../lib/common db-update - checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz any - checkAnyPackage testing pkg-any-a-1-2-any.pkg.tar.xz any + checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkPackage testing pkg-any-a-1-2-any.pkg.tar.xz any } @test "update same any package to same repository" { releasePackage extra pkg-any-a any db-update - checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any releasePackage extra pkg-any-a any run db-update @@ -108,7 +108,7 @@ load ../lib/common @test "update same any package to different repositories" { releasePackage extra pkg-any-a any db-update - checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any releasePackage testing pkg-any-a any run db-update diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index f1fd7e4..5f6b680 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -71,12 +71,12 @@ load ../lib/common ftpdir-cleanup local pkg1='pkg-any-a-1-1-any.pkg.tar.xz' - checkRemovedAnyPackage extra 'pkg-any-a' + checkRemovedPackage extra 'pkg-any-a' any [ ! -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] local pkg2="pkg-any-b-1-1-${arch}.pkg.tar.xz" - checkAnyPackage extra "${pkg2}" + checkPackage extra "${pkg2}" any } @test "cleanup split packages" { diff --git a/test/lib/common.bash b/test/lib/common.bash index 39ceeb4..d8a01ca 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -178,16 +178,25 @@ getPackageNamesFromPackageBase() { $(. "packages/${pkgbase}/PKGBUILD"; echo ${pkgname[@]}) } -checkAnyPackageDB() { +checkPackageDB() { local repo=$1 local pkg=$2 - local arch + local arch=$3 local db + local tarches [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}" ] [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}.sig" ] + [ ! -r "${STAGING}/${repo}/${pkg}" ] + [ ! -r "${STAGING}/${repo}/${pkg}.sig" ] - for arch in "${ARCH_BUILD[@]}"; do + if [[ $arch == any ]]; then + tarches=("${ARCHES[@]}") + else + tarches=("${arch}") + fi + + for arch in "${tarches[@]}"; do [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}")" ] @@ -199,44 +208,6 @@ checkAnyPackageDB() { bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null done done - [ ! -r "${STAGING}/${repo}/${pkg}" ] - [ ! -r "${STAGING}/${repo}/${pkg}".sig ] -} - -checkAnyPackage() { - local repo=$1 - local pkg=$2 - - checkAnyPackageDB "$repo" "$pkg" - - local pkgbase=$(__getPackageBaseFromPackage "${FTP_BASE}/${PKGPOOL}/${pkg}") - svn up -q "${TMP}/svn-packages-copy/${pkgbase}" - [ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-any" ] -} - -checkPackageDB() { - local repo=$1 - local pkg=$2 - local arch=$3 - local db - - [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}" ] - [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] - [ ! -r "${STAGING}/${repo}/${pkg}" ] - - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}")" ] - - [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}.sig" ] - [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig" ] - [ ! -r "${STAGING}/${repo}/${pkg}.sig" ] - - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] - - for db in "${DBEXT}" "${FILESEXT}"; do - if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ]; then - bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null - fi - done } checkPackage() { @@ -251,19 +222,6 @@ checkPackage() { [ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] } -checkRemovedPackageDB() { - local repo=$1 - local pkgbase=$2 - local arch=$3 - local db - - for db in "${DBEXT}" "${FILESEXT}"; do - if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ]; then - ! bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkgbase}" &>/dev/null - fi - done -} - checkRemovedPackage() { local repo=$1 local pkgbase=$2 @@ -275,27 +233,24 @@ checkRemovedPackage() { [ ! -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] } -checkRemovedAnyPackageDB() { +checkRemovedPackageDB() { local repo=$1 local pkgbase=$2 - local arch + local arch=$3 local db + local tarches + + if [[ $arch == any ]]; then + tarches=(${ARCHES[@]}) + else + tarches=(${arch}) + fi for db in "${DBEXT}" "${FILESEXT}"; do - for arch in "${ARCH_BUILD[@]}"; do + for arch in "${tarches[@]}"; do if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ]; then ! bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkgbase}" &>/dev/null fi done done } - -checkRemovedAnyPackage() { - local repo=$1 - local pkgbase=$2 - - checkRemovedAnyPackageDB "$repo" "$pkgbase" - - svn up -q "${TMP}/svn-packages-copy/${pkgbase}" - [ ! -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-any" ] -} -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:44:01 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:44:01 -0400 Subject: [Dev] [dbscripts] [PATCH 28/31] Correctly use checkRemovedPackage In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-29-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit e0ee502955948e980c711112cdb0c3eb249d0c7b) --- test/cases/db-move.bats | 6 +++--- test/cases/db-update.bats | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/cases/db-move.bats b/test/cases/db-move.bats index 4eea575..cdc89e3 100755 --- a/test/cases/db-move.bats +++ b/test/cases/db-move.bats @@ -15,7 +15,7 @@ load ../lib/common for arch in "${ARCH_BUILD[@]}"; do checkPackage extra "pkg-simple-a-1-1-${arch}.pkg.tar.xz" "${arch}" - checkRemovedPackage testing "pkg-simple-a-1-1-${arch}.pkg.tar.xz" "${arch}" + checkRemovedPackage testing pkg-simple-a "${arch}" checkPackage testing "pkg-simple-b-1-1-${arch}.pkg.tar.xz" "${arch}" done @@ -37,7 +37,7 @@ load ../lib/common for pkgbase in "${pkgs[@]}"; do for arch in "${ARCH_BUILD[@]}"; do checkPackage extra "${pkgbase}-1-1-${arch}.pkg.tar.xz" "${arch}" - checkRemovedPackage testing "${pkgbase}-1-1-${arch}.pkg.tar.xz" "${arch}" + checkRemovedPackage testing "${pkgbase}" "${arch}" done done } @@ -57,7 +57,7 @@ load ../lib/common for arch in "${ARCH_BUILD[@]}"; do checkPackage extra "pkg-simple-epoch-1:1-1-${arch}.pkg.tar.xz" "${arch}" - checkRemovedPackage testing "pkg-simple-epoch-1:1-1-${arch}.pkg.tar.xz" "${arch}" + checkRemovedPackage testing pkg-simple-epoch "${arch}" done } diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 2fafcd8..3a2e543 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -148,7 +148,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkRemovedPackageDB extra pkg-any-a any } @test "add invalid signed package fails" { @@ -161,7 +161,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkRemovedPackageDB extra pkg-any-a any } @test "add broken signature fails" { @@ -173,7 +173,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkRemovedPackageDB extra pkg-any-a any } @test "add package with inconsistent version fails" { @@ -186,7 +186,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra 'pkg-any-a-2-1-any.pkg.tar.xz' 'any' + checkRemovedPackageDB extra 'pkg-any-a' 'any' } @test "add package with inconsistent name fails" { @@ -199,7 +199,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra 'foo-pkg-any-a-1-1-any.pkg.tar.xz' 'any' + checkRemovedPackage extra 'foo-pkg-any-a' 'any' } @test "add package with inconsistent pkgbuild fails" { @@ -210,7 +210,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra 'pkg-any-a-1-1-any.pkg.tar.xz' 'any' + checkRemovedPackageDB extra 'pkg-any-a' 'any' } @test "add package with insufficient permissions fails" { @@ -222,8 +222,8 @@ load ../lib/common [ "$status" -ne 0 ] chmod +xwr ${FTP_BASE}/core/os/i686 - checkRemovedPackage core 'pkg-any-a-1-1-any.pkg.tar.xz' 'any' - checkRemovedPackage extra 'pkg-any-b-1-1-any.pkg.tar.xz' 'any' + checkRemovedPackageDB core 'pkg-any-a' 'any' + checkRemovedPackageDB extra 'pkg-any-b' 'any' } @test "package has to be a regular file" { @@ -240,6 +240,6 @@ load ../lib/common run db-update [ "$status" -ne 0 ] for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackage extra "pkg-simple-a-1-1-${arch}.pkg.tar.xz" $arch + checkRemovedPackageDB extra "pkg-simple-a" $arch done } -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:44:00 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:44:00 -0400 Subject: [Dev] [dbscripts] [PATCH 27/31] test: Don't treat PKGEXT as a glob In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-28-lukeshu@lukeshu.com> From: Eli Schwartz (this is a partial cherry pick of commit 07e6a91da1331ae61b667d878092c5b03aa49ced) When picking it, common.bash's PKGEXT= declaration has to be applied after 'config' is sourced, as we have not yet picked the commit that renames config:PKGEXT to config:PKGEXTS. ---- Fix overloading PKGEXT to mean two things. PKGEXT is a makepkg variable referring to a fixed filename suffix, but we were also using it to mean a bash glob referring to candidate filenames. This is wrong, so rename it to PKGEXTS which is more descriptive of its purpose. Exclude the testsuite from this change, as the testsuite actually uses PKGEXT for its intended purpose. Fix the testsuite to consistently use PKGEXT, as it hardcoded the file extension in several cases, and pin its value to .pkg.tar.xz --- test/lib/common.bash | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index 9c1ae4c..98b4469 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -59,7 +59,7 @@ __buildPackage() { else sudo librechroot -n "dbscripts@${tarch}" -A "$tarch" make fi - sudo PKGDEST="${pkgdest}" libremakepkg -n "dbscripts@${tarch}" + sudo PKGDEST="${pkgdest}" PKGEXT="${PKGEXT}" libremakepkg -n "dbscripts@${tarch}" done pkgnames=($(. PKGBUILD; print_all_package_names)) @@ -101,6 +101,7 @@ setup() { SOURCE_CLEANUP_DRYRUN=false eot . config + PKGEXT=".pkg.tar.xz" mkdir -p "${TMP}/"{ftp,tmp,staging,{package,source}-cleanup,svn-packages-{copy,repo}} -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:57 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:57 -0400 Subject: [Dev] [dbscripts] [PATCH 24/31] test: common.bash: Move __buildPackage() up in the file In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-25-lukeshu@lukeshu.com> From: Luke Shumaker For merge-conflict reasons. --- test/lib/common.bash | 68 ++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index dab16a5..ea01a2d 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -34,6 +34,40 @@ __getCheckSum() { echo "${result%% *}" } +__buildPackage() { + local arch=$1 + local p + local checkSum + local pkgnames + + if [[ -n ${PACKAGE_CACHE} ]]; then + checkSum=$(__getCheckSum PKGBUILD) + # TODO: Be more specific + if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then + return 0 + fi + fi + + if [ "${arch}" == 'any' ]; then + sudo librechroot -n "dbscripts@${arch}" make + else + sudo librechroot -n "dbscripts@${arch}" -A "$arch" make + fi + sudo libremakepkg -n "dbscripts@${arch}" + + pkgnames=($(. PKGBUILD; print_all_package_names)) + for p in ${pkgnames[@]/%/${PKGEXT}}; do + [[ ${p} = *-${arch}${PKGEXT} ]] || continue + # Manually sign packages as "makepkg --sign" is buggy + gpg -v --detach-sign --no-armor --use-agent ${p} + + if [[ -n ${PACKAGE_CACHE} ]]; then + mkdir -p ${PACKAGE_CACHE}/${checkSum} + cp -Lv ${p}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ + fi + done +} + setup() { local p local pkg @@ -118,40 +152,6 @@ releasePackage() { popd } -__buildPackage() { - local arch=$1 - local p - local checkSum - local pkgnames - - if [[ -n ${PACKAGE_CACHE} ]]; then - checkSum=$(__getCheckSum PKGBUILD) - # TODO: Be more specific - if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then - return 0 - fi - fi - - if [ "${arch}" == 'any' ]; then - sudo librechroot -n "dbscripts@${arch}" make - else - sudo librechroot -n "dbscripts@${arch}" -A "$arch" make - fi - sudo libremakepkg -n "dbscripts@${arch}" - - pkgnames=($(. PKGBUILD; print_all_package_names)) - for p in ${pkgnames[@]/%/${PKGEXT}}; do - [[ ${p} = *-${arch}${PKGEXT} ]] || continue - # Manually sign packages as "makepkg --sign" is buggy - gpg -v --detach-sign --no-armor --use-agent ${p} - - if [[ -n ${PACKAGE_CACHE} ]]; then - mkdir -p ${PACKAGE_CACHE}/${checkSum} - cp -Lv ${p}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ - fi - done -} - updatePackage() { local pkgbase=$1 local arch=$2 -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:59 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:59 -0400 Subject: [Dev] [dbscripts] [PATCH 26/31] Reduce test dependencies In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-27-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit c39624b25a16ed260b420d5689f0a73378fa1372) --- test/cases/packages.bats | 45 --------------------------------- test/fixtures/pkg-any-a/PKGBUILD | 1 + test/fixtures/pkg-any-b/PKGBUILD | 1 + test/fixtures/pkg-simple-a/PKGBUILD | 1 + test/fixtures/pkg-simple-b/PKGBUILD | 1 + test/fixtures/pkg-simple-epoch/PKGBUILD | 1 + test/fixtures/pkg-single-arch/PKGBUILD | 1 + test/fixtures/pkg-single-epoch/PKGBUILD | 1 + test/fixtures/pkg-split-a/PKGBUILD | 1 + test/fixtures/pkg-split-b/PKGBUILD | 1 + 10 files changed, 9 insertions(+), 45 deletions(-) delete mode 100755 test/cases/packages.bats diff --git a/test/cases/packages.bats b/test/cases/packages.bats deleted file mode 100755 index 657de91..0000000 --- a/test/cases/packages.bats +++ /dev/null @@ -1,45 +0,0 @@ -load ../lib/common - - at test "packages" { - local result - local pkg - local pkgbase - local pkgarchs - local pkgarch - local tmp - tmp=$(mktemp -d) - - # FIXME: Evaluate if this test is sane and even needed - - cp -rL fixtures/* "${tmp}" - - for pkgbase in "${tmp}"/*; do - pushd "${pkgbase}" - run namcap -e pkgnameindesc,tags PKGBUILD - [ -z "$output" ] - - __buildPackage - - # FIXME: Is overriding IFS a bats bug? - IFS=' ' - pkgarchs=($(. PKGBUILD; echo ${arch[@]})) - for pkgarch in "${pkgarchs[@]}"; do - echo "Building ${pkgbase} on ${pkgarch}" - if [[ $pkgarch != "$ARCH_HOST" && $pkgarch != any ]]; then - # Cross-arch namcap is silly: - # - # W: Referenced library 'libc.so.6' is an uninstalled dependency - # W: Dependency included and not needed ('glibc')? - continue - fi - for pkg in *-${pkgarch}${PKGEXT}; do - msg 'run namcap -e pkgnameindesc %q' "${pkg}" - run namcap -e pkgnameindesc "${pkg}" - printf '%s\n' "$output" | sed 's/^/> /' - cp "$pkg" -t /tmp -f - [ -z "$output" ] - done - done - popd - done -} diff --git a/test/fixtures/pkg-any-a/PKGBUILD b/test/fixtures/pkg-any-a/PKGBUILD index cd5d66f..bf8f39c 100644 --- a/test/fixtures/pkg-any-a/PKGBUILD +++ b/test/fixtures/pkg-any-a/PKGBUILD @@ -5,6 +5,7 @@ pkgdesc="A package called ${pkgname}" arch=('any') url='http://www.archlinux.org/' license=('GPL') +options=(!strip) package() { install -d -m755 "${pkgdir}"/usr/share/${pkgname} diff --git a/test/fixtures/pkg-any-b/PKGBUILD b/test/fixtures/pkg-any-b/PKGBUILD index 90794fc..295cc77 100644 --- a/test/fixtures/pkg-any-b/PKGBUILD +++ b/test/fixtures/pkg-any-b/PKGBUILD @@ -5,6 +5,7 @@ pkgdesc="A package called ${pkgname}" arch=('any') url='http://www.archlinux.org/' license=('GPL') +options=(!strip) package() { install -d -m755 "${pkgdir}"/usr/share/${pkgname} diff --git a/test/fixtures/pkg-simple-a/PKGBUILD b/test/fixtures/pkg-simple-a/PKGBUILD index 9b4478e..d3fcbbb 100644 --- a/test/fixtures/pkg-simple-a/PKGBUILD +++ b/test/fixtures/pkg-simple-a/PKGBUILD @@ -6,6 +6,7 @@ arch=('i686' 'x86_64') url='http://www.archlinux.org/' license=('GPL') depends=('glibc') +options=(!strip) makedepends=('gcc') source=('Makefile' 'test.c') md5sums=('c6cb8dcc86253355fed559416d0c8dcf' diff --git a/test/fixtures/pkg-simple-b/PKGBUILD b/test/fixtures/pkg-simple-b/PKGBUILD index 4a9e58d..fb44762 100644 --- a/test/fixtures/pkg-simple-b/PKGBUILD +++ b/test/fixtures/pkg-simple-b/PKGBUILD @@ -6,6 +6,7 @@ arch=('i686' 'x86_64') url='http://www.archlinux.org/' license=('GPL') depends=('glibc') +options=(!strip) makedepends=('gcc') source=('Makefile' 'test.c') md5sums=('c6cb8dcc86253355fed559416d0c8dcf' diff --git a/test/fixtures/pkg-simple-epoch/PKGBUILD b/test/fixtures/pkg-simple-epoch/PKGBUILD index 0761b32..ef1261f 100644 --- a/test/fixtures/pkg-simple-epoch/PKGBUILD +++ b/test/fixtures/pkg-simple-epoch/PKGBUILD @@ -7,6 +7,7 @@ arch=('i686' 'x86_64') url='http://www.archlinux.org/' license=('GPL') depends=('glibc') +options=(!strip) makedepends=('gcc') source=('Makefile' 'test.c') md5sums=('c6cb8dcc86253355fed559416d0c8dcf' diff --git a/test/fixtures/pkg-single-arch/PKGBUILD b/test/fixtures/pkg-single-arch/PKGBUILD index 581efb4..de5dbc2 100644 --- a/test/fixtures/pkg-single-arch/PKGBUILD +++ b/test/fixtures/pkg-single-arch/PKGBUILD @@ -6,6 +6,7 @@ arch=('x86_64') url='http://www.archlinux.org/' license=('GPL') depends=('glibc') +options=(!strip) package() { install -D -m755 /bin/true ${pkgdir}/usr/bin/${pkgname} diff --git a/test/fixtures/pkg-single-epoch/PKGBUILD b/test/fixtures/pkg-single-epoch/PKGBUILD index c1bc3d6..95898ac 100644 --- a/test/fixtures/pkg-single-epoch/PKGBUILD +++ b/test/fixtures/pkg-single-epoch/PKGBUILD @@ -7,6 +7,7 @@ arch=('x86_64') url='http://www.archlinux.org/' license=('GPL') depends=('glibc') +options=(!strip) package() { install -D -m755 /bin/true ${pkgdir}/usr/bin/${pkgname} diff --git a/test/fixtures/pkg-split-a/PKGBUILD b/test/fixtures/pkg-split-a/PKGBUILD index f7a0576..06b6148 100644 --- a/test/fixtures/pkg-split-a/PKGBUILD +++ b/test/fixtures/pkg-split-a/PKGBUILD @@ -7,6 +7,7 @@ arch=('i686' 'x86_64') url='http://www.archlinux.org/' license=('GPL') depends=('glibc') +options=(!strip) makedepends=('gcc') source=('Makefile' 'test.c') md5sums=('c6cb8dcc86253355fed559416d0c8dcf' diff --git a/test/fixtures/pkg-split-b/PKGBUILD b/test/fixtures/pkg-split-b/PKGBUILD index 3bd635c..7d1f0d6 100644 --- a/test/fixtures/pkg-split-b/PKGBUILD +++ b/test/fixtures/pkg-split-b/PKGBUILD @@ -8,6 +8,7 @@ url='http://www.archlinux.org/' license=('GPL') depends=('glibc') +options=(!strip) makedepends=('gcc') source=('Makefile' 'test.c') md5sums=('c6cb8dcc86253355fed559416d0c8dcf' -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:55 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:55 -0400 Subject: [Dev] [dbscripts] [PATCH 22/31] Move common checks to functions In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-23-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit a53b874b6ed85097382d8d4889dc50cc98fbfdc6) --- test/cases/db-repo-add.bats | 35 ++++++++++++++++++++++++----------- test/cases/db-update.bats | 11 ++--------- test/cases/ftpdir-cleanup.bats | 24 ++++++++++++++---------- test/cases/sourceballs.bats | 20 +++++++++++++++----- test/lib/common.bash | 22 ++++++++++++---------- 5 files changed, 67 insertions(+), 45 deletions(-) diff --git a/test/cases/db-repo-add.bats b/test/cases/db-repo-add.bats index d76b245..869796a 100755 --- a/test/cases/db-repo-add.bats +++ b/test/cases/db-repo-add.bats @@ -1,5 +1,26 @@ load ../lib/common +__movePackageToRepo() { + local repo=$1 + local pkgbase=$2 + local arch=$3 + local tarch + local tarches + + if [[ $arch == any ]]; then + tarches=(${ARCHES[@]}) + else + tarches=(${arch}) + fi + + # FIXME: pkgbase might not be part of the package filename + mv -v "${STAGING}"/${repo}/${pkgbase}-*-*-${arch}${PKGEXT}{,.sig} "${FTP_BASE}/${PKGPOOL}/" + for tarch in ${tarches[@]}; do + ln -sv ${FTP_BASE}/${PKGPOOL}/${pkgbase}-*-*-${arch}${PKGEXT} "${FTP_BASE}/${repo}/os/${tarch}/" + ln -sv ${FTP_BASE}/${PKGPOOL}/${pkgbase}-*-*-${arch}${PKGEXT}.sig "${FTP_BASE}/${repo}/os/${tarch}/" + done +} + @test "add simple packages" { local pkgs=('pkg-simple-a' 'pkg-simple-b') local pkgbase @@ -8,9 +29,7 @@ load ../lib/common for pkgbase in "${pkgs[@]}"; do for arch in "${ARCH_BUILD[@]}"; do releasePackage extra "$pkgbase" "$arch" - mv "${STAGING}"/extra/* "${FTP_BASE}/${PKGPOOL}/" - ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-${arch}.pkg.tar.xz" "${FTP_BASE}/extra/os/${arch}/" - ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-${arch}.pkg.tar.xz.sig" "${FTP_BASE}/extra/os/${arch}/" + __movePackageToRepo extra ${pkgbase} ${arch} db-repo-add extra "${arch}" "${pkgbase}-1-1-${arch}.pkg.tar.xz" done done @@ -31,9 +50,7 @@ load ../lib/common add_pkgs=() for pkgbase in "${pkgs[@]}"; do releasePackage extra "$pkgbase" "$arch" - mv "${STAGING}"/extra/* "${FTP_BASE}/${PKGPOOL}/" - ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-${arch}.pkg.tar.xz" "${FTP_BASE}/extra/os/${arch}/" - ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-${arch}.pkg.tar.xz.sig" "${FTP_BASE}/extra/os/${arch}/" + __movePackageToRepo extra ${pkgbase} ${arch} add_pkgs+=("${pkgbase}-1-1-${arch}.pkg.tar.xz") done db-repo-add extra "${arch}" "${add_pkgs[@]}" @@ -53,11 +70,7 @@ load ../lib/common for pkgbase in ${pkgs[@]}; do releasePackage extra ${pkgbase} any - mv "${STAGING}"/extra/* "${FTP_BASE}/${PKGPOOL}/" - for arch in "${ARCH_BUILD[@]}"; do - ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-any.pkg.tar.xz" "${FTP_BASE}/extra/os/${arch}/" - ln -s "${FTP_BASE}/${PKGPOOL}/${pkgbase}-1-1-any.pkg.tar.xz.sig" "${FTP_BASE}/extra/os/${arch}/" - done + __movePackageToRepo extra ${pkgbase} any db-repo-add extra any ${pkgbase}-1-1-any.pkg.tar.xz done diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index f648456..cf60fcd 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -114,12 +114,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - local arch - for arch in "${ARCH_BUILD[@]}"; do - if [ -r "${FTP_BASE}/testing/os/${arch}/testing${DBEXT%.tar.*}" ]; then - ! bsdtar -xf "${FTP_BASE}/testing/os/${arch}/testing${DBEXT%.tar.*}" -O | grep "${pkgbase}" &>/dev/null - fi - done + checkRemovedPackageDB testing pkg-any-a any } @test "add incomplete split package" { @@ -139,9 +134,7 @@ load ../lib/common [ "$status" -ne 0 ] for arch in "${ARCH_BUILD[@]}"; do - if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT%.tar.*}" ]; then - ! bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT%.tar.*}" -O | grep "${pkgbase}" &>/dev/null - fi + checkRemovedPackageDB ${repo} ${pkgbase} ${arch} done } diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index 5f6b680..2cb2e59 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -1,5 +1,15 @@ load ../lib/common +__checkRepoRemovedPackage() { + local repo=$1 + local pkgbase=$2 + local arch=$3 + + # FIXME: pkgbase might not be part of the package filename + [[ ! -f ${FTP_BASE}/${PKGPOOL}/${pkgbase}*${PKGEXT} ]] + [[ ! -f ${FTP_BASE}/${repo}/os/${arch}/${pkgbase}*${PKGEXT} ]] +} + @test "cleanup simple packages" { local pkgs=('pkg-simple-a' 'pkg-simple-b') local pkgbase @@ -20,10 +30,8 @@ load ../lib/common ftpdir-cleanup for arch in "${ARCH_BUILD[@]}"; do - local pkg1="pkg-simple-a-1-1-${arch}.pkg.tar.xz" checkRemovedPackage extra 'pkg-simple-a' "${arch}" - [ ! -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] - [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] + __checkRepoRemovedPackage extra 'pkg-simple-a' ${arch} local pkg2="pkg-simple-b-1-1-${arch}.pkg.tar.xz" checkPackage extra "${pkg2}" "${arch}" @@ -50,10 +58,8 @@ load ../lib/common ftpdir-cleanup for arch in "${ARCH_BUILD[@]}"; do - local pkg1="pkg-simple-epoch-1:1-1-${arch}.pkg.tar.xz" checkRemovedPackage extra 'pkg-simple-epoch' "${arch}" - [ ! -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] - [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] + __checkRepoRemovedPackage extra 'pkg-simple-epoch' ${arch} done } @@ -72,8 +78,7 @@ load ../lib/common local pkg1='pkg-any-a-1-1-any.pkg.tar.xz' checkRemovedPackage extra 'pkg-any-a' any - [ ! -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] - [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] + __checkRepoRemovedPackage extra 'pkg-any-a' any local pkg2="pkg-any-b-1-1-${arch}.pkg.tar.xz" checkPackage extra "${pkg2}" any @@ -102,8 +107,7 @@ load ../lib/common for arch in "${ARCH_BUILD[@]}"; do for pkg in $(getPackageNamesFromPackageBase "${pkgs[0]}"); do checkRemovedPackage extra "${pkg}" "${arch}" - [ ! -f "${FTP_BASE}/${PKGPOOL}/${pkg}" ] - [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] + __checkRepoRemovedPackage extra ${pkg} ${arch} done for pkg in $(getPackageNamesFromPackageBase "${pkgs[1]}"); do diff --git a/test/cases/sourceballs.bats b/test/cases/sourceballs.bats index cf80658..ba06b8d 100755 --- a/test/cases/sourceballs.bats +++ b/test/cases/sourceballs.bats @@ -1,5 +1,15 @@ load ../lib/common +__checkSourcePackage() { + local pkgbase=$1 + [ -r ${FTP_BASE}/${SRCPOOL}/${pkgbase}-*${SRCEXT} ] +} + +__checkRemovedSourcePackage() { + local pkgbase=$1 + [ ! -r ${FTP_BASE}/${SRCPOOL}/${pkgbase}-*${SRCEXT} ] +} + @test "sourceballs" { local pkgs=('pkg-simple-a' 'pkg-simple-b' 'pkg-simple-epoch') local pkgbase @@ -14,7 +24,7 @@ load ../lib/common sourceballs for pkgbase in "${pkgs[@]}"; do - [ -r "${FTP_BASE}/${SRCPOOL}/${pkgbase}"-*"${SRCEXT}" ] + __checkSourcePackage ${pkgbase} done } @@ -29,7 +39,7 @@ load ../lib/common sourceballs for pkgbase in "${pkgs[@]}"; do - [ -r "${FTP_BASE}/${SRCPOOL}/${pkgbase}"-*"${SRCEXT}" ] + __checkSourcePackage ${pkgbase} done } @@ -49,7 +59,7 @@ load ../lib/common sourceballs for pkgbase in "${pkgs[@]}"; do - [ -r "${FTP_BASE}/${SRCPOOL}/${pkgbase}"-*"${SRCEXT}" ] + __checkSourcePackage ${pkgbase} done } @@ -71,6 +81,6 @@ load ../lib/common done sourceballs - [ ! -r "${FTP_BASE}/${SRCPOOL}/pkg-simple-a"-*"${SRCEXT}" ] - [ -r "${FTP_BASE}/${SRCPOOL}/pkg-simple-b"-*"${SRCEXT}" ] + __checkRemovedSourcePackage pkg-simple-a + __checkSourcePackage pkg-simple-b } diff --git a/test/lib/common.bash b/test/lib/common.bash index d8a01ca..dab16a5 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -183,6 +183,7 @@ checkPackageDB() { local pkg=$2 local arch=$3 local db + local tarch local tarches [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}" ] @@ -196,16 +197,16 @@ checkPackageDB() { tarches=("${arch}") fi - for arch in "${tarches[@]}"; do - [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}")" ] + for tarch in "${tarches[@]}"; do + [ -L "${FTP_BASE}/${repo}/os/${tarch}/${pkg}" ] + [ "$(readlink -e "${FTP_BASE}/${repo}/os/${tarch}/${pkg}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}")" ] - [ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig" ] - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] + [ -L "${FTP_BASE}/${repo}/os/${tarch}/${pkg}.sig" ] + [ "$(readlink -e "${FTP_BASE}/${repo}/os/${tarch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] for db in "${DBEXT}" "${FILESEXT}"; do - [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ] - bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null + [ -r "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" ] + bsdtar -xf "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null done done } @@ -238,6 +239,7 @@ checkRemovedPackageDB() { local pkgbase=$2 local arch=$3 local db + local tarch local tarches if [[ $arch == any ]]; then @@ -247,9 +249,9 @@ checkRemovedPackageDB() { fi for db in "${DBEXT}" "${FILESEXT}"; do - for arch in "${tarches[@]}"; do - if [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" ]; then - ! bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${db%.tar.*}" -O | grep "${pkgbase}" &>/dev/null + for tarch in "${tarches[@]}"; do + if [ -r "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" ]; then + ! bsdtar -xf "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" -O | grep "${pkgbase}" &>/dev/null fi done done -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:56 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:56 -0400 Subject: [Dev] [dbscripts] [PATCH 23/31] Remove useless code In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-24-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit b1c039e2d2a63fa305eb7f16130bdb7273bd88e2) --- test/cases/db-move.bats | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/cases/db-move.bats b/test/cases/db-move.bats index a3a41c8..a0af0ce 100755 --- a/test/cases/db-move.bats +++ b/test/cases/db-move.bats @@ -102,13 +102,8 @@ load ../lib/common for pkg in $(getPackageNamesFromPackageBase pkg-split-a); do checkPackage extra "${pkg##*/}" "${arch}" done - done - for arch in "${ARCH_BUILD[@]}"; do for pkg in $(getPackageNamesFromPackageBase pkg-split-b); do checkPackage testing "${pkg##*/}" "${arch}" done done - - # FIXME: Why any? - checkRemovedPackage testing pkg-split-a any } -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:58 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:58 -0400 Subject: [Dev] [dbscripts] [PATCH 25/31] Allways build packages for all supported architectures In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-26-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 76f95dd139094dc2985b6733f23fcb098f07c64e) --- test/Makefile | 6 +-- test/cases/db-move.bats | 18 ++----- test/cases/db-remove.bats | 10 ++-- test/cases/db-repo-add.bats | 9 ++-- test/cases/db-repo-remove.bats | 10 ++-- test/cases/db-update.bats | 88 +++++++++++++++------------------ test/cases/ftpdir-cleanup.bats | 18 ++----- test/cases/packages.bats | 10 ++-- test/cases/sourceballs.bats | 14 ++---- test/fixtures/pkg-single-arch/PKGBUILD | 12 +++++ test/fixtures/pkg-single-epoch/PKGBUILD | 13 +++++ test/lib/common.bash | 64 ++++++++++++------------ 12 files changed, 132 insertions(+), 140 deletions(-) create mode 100644 test/fixtures/pkg-single-arch/PKGBUILD create mode 100644 test/fixtures/pkg-single-epoch/PKGBUILD diff --git a/test/Makefile b/test/Makefile index 9a6d18f..da09c4a 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,10 +1,10 @@ -PACKAGE_CACHE ?= $(or $(TMPDIR),/tmp)/dbscripts-build +export BUILDDIR ?= $(or $(TMPDIR),/tmp)/dbscripts-build test: - PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) bats cases + PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) bats cases test-coverage: - PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) PACKAGE_CACHE=$(PACKAGE_CACHE) kcov \ + PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) kcov \ --include-path=$(CURDIR)/../ \ --exclude-path=$(CURDIR)/../test,$(CURDIR)/../cron-jobs/makepkg.conf,$(CURDIR)/../config \ $(COVERAGE_DIR) \ diff --git a/test/cases/db-move.bats b/test/cases/db-move.bats index a0af0ce..4eea575 100755 --- a/test/cases/db-move.bats +++ b/test/cases/db-move.bats @@ -6,9 +6,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage testing "${pkgbase}" "${arch}" - done + releasePackage testing "${pkgbase}" done db-update @@ -29,9 +27,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage testing "${pkgbase}" "${arch}" - done + releasePackage testing "${pkgbase}" done db-update @@ -52,9 +48,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage testing "${pkgbase}" "${arch}" - done + releasePackage testing "${pkgbase}" done db-update @@ -72,7 +66,7 @@ load ../lib/common local pkgbase for pkgbase in "${pkgs[@]}"; do - releasePackage testing "${pkgbase}" any + releasePackage testing "${pkgbase}" done db-update @@ -90,9 +84,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage testing "${pkgbase}" "${arch}" - done + releasePackage testing "${pkgbase}" done db-update diff --git a/test/cases/db-remove.bats b/test/cases/db-remove.bats index 5201440..deb0f0e 100755 --- a/test/cases/db-remove.bats +++ b/test/cases/db-remove.bats @@ -6,9 +6,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -32,9 +30,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -55,7 +51,7 @@ load ../lib/common local pkgbase for pkgbase in "${pkgs[@]}"; do - releasePackage extra "${pkgbase}" any + releasePackage extra "${pkgbase}" done db-update diff --git a/test/cases/db-repo-add.bats b/test/cases/db-repo-add.bats index 869796a..a04d9bb 100755 --- a/test/cases/db-repo-add.bats +++ b/test/cases/db-repo-add.bats @@ -27,8 +27,8 @@ __movePackageToRepo() { local arch for pkgbase in "${pkgs[@]}"; do + releasePackage extra "$pkgbase" for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "$pkgbase" "$arch" __movePackageToRepo extra ${pkgbase} ${arch} db-repo-add extra "${arch}" "${pkgbase}-1-1-${arch}.pkg.tar.xz" done @@ -46,10 +46,13 @@ __movePackageToRepo() { local pkgbase local arch + for pkgbase in "${pkgs[@]}"; do + releasePackage extra "$pkgbase" + done + for arch in "${ARCH_BUILD[@]}"; do add_pkgs=() for pkgbase in "${pkgs[@]}"; do - releasePackage extra "$pkgbase" "$arch" __movePackageToRepo extra ${pkgbase} ${arch} add_pkgs+=("${pkgbase}-1-1-${arch}.pkg.tar.xz") done @@ -69,7 +72,7 @@ __movePackageToRepo() { local arch for pkgbase in ${pkgs[@]}; do - releasePackage extra ${pkgbase} any + releasePackage extra ${pkgbase} __movePackageToRepo extra ${pkgbase} any db-repo-add extra any ${pkgbase}-1-1-any.pkg.tar.xz done diff --git a/test/cases/db-repo-remove.bats b/test/cases/db-repo-remove.bats index 165b759..6145f25 100755 --- a/test/cases/db-repo-remove.bats +++ b/test/cases/db-repo-remove.bats @@ -6,9 +6,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -32,9 +30,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -55,7 +51,7 @@ load ../lib/common local pkgbase for pkgbase in ${pkgs[@]}; do - releasePackage extra ${pkgbase} any + releasePackage extra ${pkgbase} done db-update diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index cf60fcd..2fafcd8 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -6,9 +6,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -21,15 +19,15 @@ load ../lib/common } @test "add single simple package" { - releasePackage extra 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-single-arch' db-update - checkPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' + checkPackage extra 'pkg-single-arch-1-1-x86_64.pkg.tar.xz' 'x86_64' } @test "add single epoch package" { - releasePackage extra 'pkg-simple-epoch' 'i686' + releasePackage extra 'pkg-single-epoch' db-update - checkPackage extra 'pkg-simple-epoch-1:1-1-i686.pkg.tar.xz' 'i686' + checkPackage extra 'pkg-single-epoch-1:1-1-x86_64.pkg.tar.xz' 'x86_64' } @test "add any packages" { @@ -37,7 +35,7 @@ load ../lib/common local pkgbase for pkgbase in "${pkgs[@]}"; do - releasePackage extra "${pkgbase}" any + releasePackage extra "${pkgbase}" done db-update @@ -54,9 +52,7 @@ load ../lib/common local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -71,23 +67,23 @@ load ../lib/common } @test "update any package" { - releasePackage extra pkg-any-a any + releasePackage extra pkg-any-a db-update - updatePackage pkg-any-a any + updatePackage pkg-any-a - releasePackage extra pkg-any-a any + releasePackage extra pkg-any-a db-update checkPackage extra pkg-any-a-1-2-any.pkg.tar.xz any } @test "update any package to different repositories at once" { - releasePackage extra pkg-any-a any + releasePackage extra pkg-any-a - updatePackage pkg-any-a any + updatePackage pkg-any-a - releasePackage testing pkg-any-a any + releasePackage testing pkg-any-a db-update @@ -96,21 +92,21 @@ load ../lib/common } @test "update same any package to same repository" { - releasePackage extra pkg-any-a any + releasePackage extra pkg-any-a db-update checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any - releasePackage extra pkg-any-a any + releasePackage extra pkg-any-a run db-update [ "$status" -ne 0 ] } @test "update same any package to different repositories" { - releasePackage extra pkg-any-a any + releasePackage extra pkg-any-a db-update checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any - releasePackage testing pkg-any-a any + releasePackage testing pkg-any-a run db-update [ "$status" -ne 0 ] @@ -123,9 +119,7 @@ load ../lib/common local pkgbase='pkg-split-a' local arch - for arch in "${ARCH_BUILD[@]}"; do - releasePackage "${repo}" "${pkgbase}" "${arch}" - done + releasePackage "${repo}" "${pkgbase}" # remove a split package to make db-update fail rm "${STAGING}/extra/${pkgbase}1-"* @@ -140,26 +134,26 @@ load ../lib/common @test "unknown repo" { mkdir "${STAGING}/unknown/" - releasePackage extra 'pkg-simple-a' 'i686' - releasePackage unknown 'pkg-simple-b' 'i686' + releasePackage extra 'pkg-any-a' + releasePackage unknown 'pkg-any-b' db-update - checkPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' + checkPackage extra 'pkg-any-a-1-1-any.pkg.tar.xz' any [ ! -e "${FTP_BASE}/unknown" ] rm -rf "${STAGING}/unknown/" } @test "add unsigned package fails" { - releasePackage extra 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-any-a' rm "${STAGING}"/extra/*.sig run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 + checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any } @test "add invalid signed package fails" { local p - releasePackage extra 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-any-a' for p in "${STAGING}"/extra/*${PKGEXT}; do unxz "$p" xz -0 "${p%%.xz}" @@ -167,37 +161,37 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 + checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any } @test "add broken signature fails" { local s - releasePackage extra 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-any-a' for s in "${STAGING}"/extra/*.sig; do echo 0 > "$s" done run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686 + checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any } @test "add package with inconsistent version fails" { local p - releasePackage extra 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-any-a' for p in "${STAGING}"/extra/*; do - mv "${p}" "${p/pkg-simple-a-1/pkg-simple-a-2}" + mv "${p}" "${p/pkg-any-a-1/pkg-any-a-2}" done run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra 'pkg-simple-a-2-1-i686.pkg.tar.xz' 'i686' + checkRemovedPackage extra 'pkg-any-a-2-1-any.pkg.tar.xz' 'any' } @test "add package with inconsistent name fails" { local p - releasePackage extra 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-any-a' for p in "${STAGING}"/extra/*; do mv "${p}" "${p/pkg-/foo-pkg-}" @@ -205,40 +199,38 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' + checkRemovedPackage extra 'foo-pkg-any-a-1-1-any.pkg.tar.xz' 'any' } @test "add package with inconsistent pkgbuild fails" { skip # abslibre is broken - releasePackage extra 'pkg-simple-a' 'i686' + releasePackage extra 'pkg-any-a' - updateRepoPKGBUILD 'pkg-simple-a' extra i686 + updateRepoPKGBUILD 'pkg-any-a' extra any run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' + checkRemovedPackage extra 'pkg-any-a-1-1-any.pkg.tar.xz' 'any' } @test "add package with insufficient permissions fails" { - releasePackage core 'pkg-simple-a' 'i686' - releasePackage extra 'pkg-simple-b' 'i686' + releasePackage core 'pkg-any-a' + releasePackage extra 'pkg-any-b' chmod -xwr ${FTP_BASE}/core/os/i686 run db-update [ "$status" -ne 0 ] chmod +xwr ${FTP_BASE}/core/os/i686 - checkRemovedPackage core 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686' - checkRemovedPackage extra 'pkg-simple-b-1-1-i686.pkg.tar.xz' 'i686' + checkRemovedPackage core 'pkg-any-a-1-1-any.pkg.tar.xz' 'any' + checkRemovedPackage extra 'pkg-any-b-1-1-any.pkg.tar.xz' 'any' } @test "package has to be a regular file" { local p local target=$(mktemp -d) - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra 'pkg-simple-a' $arch - done + releasePackage extra 'pkg-simple-a' for p in "${STAGING}"/extra/*i686*; do mv "${p}" "${target}" diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index 2cb2e59..1a46fdf 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -16,9 +16,7 @@ __checkRepoRemovedPackage() { local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -44,9 +42,7 @@ __checkRepoRemovedPackage() { local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -69,7 +65,7 @@ __checkRepoRemovedPackage() { local arch='any' for pkgbase in "${pkgs[@]}"; do - releasePackage extra "${pkgbase}" any + releasePackage extra "${pkgbase}" done db-update @@ -91,9 +87,7 @@ __checkRepoRemovedPackage() { local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -122,9 +116,7 @@ __checkRepoRemovedPackage() { local arch for pkgbase in ${pkgs[@]}; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra ${pkgbase} ${arch} - done + releasePackage extra ${pkgbase} done db-update diff --git a/test/cases/packages.bats b/test/cases/packages.bats index 3e0246b..657de91 100755 --- a/test/cases/packages.bats +++ b/test/cases/packages.bats @@ -15,16 +15,16 @@ load ../lib/common for pkgbase in "${tmp}"/*; do pushd "${pkgbase}" + run namcap -e pkgnameindesc,tags PKGBUILD + [ -z "$output" ] + + __buildPackage + # FIXME: Is overriding IFS a bats bug? IFS=' ' pkgarchs=($(. PKGBUILD; echo ${arch[@]})) for pkgarch in "${pkgarchs[@]}"; do echo "Building ${pkgbase} on ${pkgarch}" - run namcap -e pkgnameindesc,tags PKGBUILD - [ -z "$output" ] - - __buildPackage "$pkgarch" - if [[ $pkgarch != "$ARCH_HOST" && $pkgarch != any ]]; then # Cross-arch namcap is silly: # diff --git a/test/cases/sourceballs.bats b/test/cases/sourceballs.bats index ba06b8d..f5e41a8 100755 --- a/test/cases/sourceballs.bats +++ b/test/cases/sourceballs.bats @@ -16,9 +16,7 @@ __checkRemovedSourcePackage() { local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -33,7 +31,7 @@ __checkRemovedSourcePackage() { local pkgbase for pkgbase in "${pkgs[@]}"; do - releasePackage extra "${pkgbase}" any + releasePackage extra "${pkgbase}" done db-update @@ -50,9 +48,7 @@ __checkRemovedSourcePackage() { local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update @@ -69,9 +65,7 @@ __checkRemovedSourcePackage() { local arch for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - releasePackage extra "${pkgbase}" "${arch}" - done + releasePackage extra "${pkgbase}" done db-update sourceballs diff --git a/test/fixtures/pkg-single-arch/PKGBUILD b/test/fixtures/pkg-single-arch/PKGBUILD new file mode 100644 index 0000000..581efb4 --- /dev/null +++ b/test/fixtures/pkg-single-arch/PKGBUILD @@ -0,0 +1,12 @@ +pkgname=pkg-single-arch +pkgver=1 +pkgrel=1 +pkgdesc="A package called ${pkgname}" +arch=('x86_64') +url='http://www.archlinux.org/' +license=('GPL') +depends=('glibc') + +package() { + install -D -m755 /bin/true ${pkgdir}/usr/bin/${pkgname} +} diff --git a/test/fixtures/pkg-single-epoch/PKGBUILD b/test/fixtures/pkg-single-epoch/PKGBUILD new file mode 100644 index 0000000..c1bc3d6 --- /dev/null +++ b/test/fixtures/pkg-single-epoch/PKGBUILD @@ -0,0 +1,13 @@ +pkgname=pkg-single-epoch +pkgver=1 +pkgrel=1 +epoch=1 +pkgdesc="A package called ${pkgname}" +arch=('x86_64') +url='http://www.archlinux.org/' +license=('GPL') +depends=('glibc') + +package() { + install -D -m755 /bin/true ${pkgdir}/usr/bin/${pkgname} +} diff --git a/test/lib/common.bash b/test/lib/common.bash index ea01a2d..9c1ae4c 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -35,37 +35,44 @@ __getCheckSum() { } __buildPackage() { - local arch=$1 + local pkgdest=${1:-.} local p - local checkSum + local cache + local pkgarches + local tarch local pkgnames - if [[ -n ${PACKAGE_CACHE} ]]; then - checkSum=$(__getCheckSum PKGBUILD) - # TODO: Be more specific - if cp -av ${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then - return 0 - fi + if [[ -n ${BUILDDIR} ]]; then + cache=${BUILDDIR}/$(__getCheckSum PKGBUILD) + if [[ -d ${cache} ]]; then + cp -Lv ${cache}/*${PKGEXT}{,.sig} ${pkgdest} + return 0 + else + mkdir -p ${cache} + fi fi - if [ "${arch}" == 'any' ]; then - sudo librechroot -n "dbscripts@${arch}" make - else - sudo librechroot -n "dbscripts@${arch}" -A "$arch" make - fi - sudo libremakepkg -n "dbscripts@${arch}" + pkgarches=($(. PKGBUILD; echo ${arch[@]})) + for tarch in ${pkgarches[@]}; do + if [ "${tarch}" == 'any' ]; then + sudo librechroot -n "dbscripts@${tarch}" make + else + sudo librechroot -n "dbscripts@${tarch}" -A "$tarch" make + fi + sudo PKGDEST="${pkgdest}" libremakepkg -n "dbscripts@${tarch}" + done pkgnames=($(. PKGBUILD; print_all_package_names)) + pushd ${pkgdest} for p in ${pkgnames[@]/%/${PKGEXT}}; do - [[ ${p} = *-${arch}${PKGEXT} ]] || continue # Manually sign packages as "makepkg --sign" is buggy gpg -v --detach-sign --no-armor --use-agent ${p} - if [[ -n ${PACKAGE_CACHE} ]]; then - mkdir -p ${PACKAGE_CACHE}/${checkSum} - cp -Lv ${p}{,.sig} ${PACKAGE_CACHE}/${checkSum}/ + if [[ -n ${BUILDDIR} ]]; then + cp -Lv ${p}{,.sig} ${cache}/ fi done + popd } setup() { @@ -128,11 +135,8 @@ teardown() { releasePackage() { local repo=$1 local pkgbase=$2 - local arch=$3 - local a - local p - local pkgver - local pkgname + local pkgarches + local tarch if [ ! -d "${TMP}/svn-packages-copy/${pkgbase}/trunk" ]; then mkdir -p "${TMP}/svn-packages-copy/${pkgbase}"/{trunk,repos} @@ -142,23 +146,21 @@ releasePackage() { fi pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/" - __buildPackage ${arch} - xbs release-client "${repo}" "${arch}" - pkgver=$(. PKGBUILD; get_full_version) - pkgname=($(. PKGBUILD; echo "${pkgname[@]}")) - for p in "${pkgname[@]}"; do - cp "${p}-${pkgver}-${arch}"${PKGEXT}{,.sig} "${STAGING}/${repo}/" + + __buildPackage "${STAGING}"/${repo} + pkgarches=($(. PKGBUILD; echo ${arch[@]})) + for tarch in "${pkgarches[@]}"; do + xbs release-client "${repo}" "${tarch}" done popd } updatePackage() { local pkgbase=$1 - local arch=$2 pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/" __updatePKGBUILD - __buildPackage ${arch} + __buildPackage popd } -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:43:53 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:43:53 -0400 Subject: [Dev] [dbscripts] [PATCH 20/31] test: Don't direct {pushd, popd, svn, ftpdir-cleanup} to /dev/null In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-21-lukeshu@lukeshu.com> From: Luke Shumaker In Arch, this change was tucked away in d0b808b5a58023899c7e76958cdae732bbdfc08e --- test/cases/ftpdir-cleanup.bats | 12 ++++++------ test/lib/common.bash | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index 30d6d53..f1fd7e4 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -17,7 +17,7 @@ load ../lib/common db-remove extra "${arch}" pkg-simple-a done - ftpdir-cleanup >/dev/null + ftpdir-cleanup for arch in "${ARCH_BUILD[@]}"; do local pkg1="pkg-simple-a-1-1-${arch}.pkg.tar.xz" @@ -47,7 +47,7 @@ load ../lib/common db-remove extra "${arch}" pkg-simple-epoch done - ftpdir-cleanup >/dev/null + ftpdir-cleanup for arch in "${ARCH_BUILD[@]}"; do local pkg1="pkg-simple-epoch-1:1-1-${arch}.pkg.tar.xz" @@ -68,7 +68,7 @@ load ../lib/common db-update db-remove extra any pkg-any-a - ftpdir-cleanup >/dev/null + ftpdir-cleanup local pkg1='pkg-any-a-1-1-any.pkg.tar.xz' checkRemovedAnyPackage extra 'pkg-any-a' @@ -97,7 +97,7 @@ load ../lib/common db-remove extra "${arch}" "${pkgs[0]}" done - ftpdir-cleanup >/dev/null + ftpdir-cleanup for arch in "${ARCH_BUILD[@]}"; do for pkg in $(getPackageNamesFromPackageBase "${pkgs[0]}"); do @@ -131,7 +131,7 @@ load ../lib/common done done - ftpdir-cleanup >/dev/null + ftpdir-cleanup local pkgfilea="pkg-simple-a-1-1-${arch}.pkg.tar.xz" local pkgfileb="pkg-simple-b-1-1-${arch}.pkg.tar.xz" @@ -139,7 +139,7 @@ load ../lib/common touch -d "-$(expr ${CLEANUP_KEEP} + 1)days" ${CLEANUP_DESTDIR}/${pkgfilea}{,.sig} done - ftpdir-cleanup >/dev/null + ftpdir-cleanup [ ! -f ${CLEANUP_DESTDIR}/${pkgfilea} ] [ -f ${CLEANUP_DESTDIR}/${pkgfileb} ] diff --git a/test/lib/common.bash b/test/lib/common.bash index 337b177..39ceeb4 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -25,7 +25,7 @@ __updatePKGBUILD() { pkgrel=$(. PKGBUILD; expr ${pkgrel} + 1) sed "s/pkgrel=.*/pkgrel=${pkgrel}/" -i PKGBUILD - svn commit -q -m"update pkg to pkgrel=${pkgrel}" >/dev/null + svn commit -q -m"update pkg to pkgrel=${pkgrel}" } __getCheckSum() { @@ -107,7 +107,7 @@ releasePackage() { svn commit -q -m"initial commit of ${pkgbase}" "${TMP}/svn-packages-copy" fi - pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/" >/dev/null + pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/" __buildPackage ${arch} xbs release-client "${repo}" "${arch}" pkgver=$(. PKGBUILD; get_full_version) @@ -115,7 +115,7 @@ releasePackage() { for p in "${pkgname[@]}"; do cp "${p}-${pkgver}-${arch}"${PKGEXT}{,.sig} "${STAGING}/${repo}/" done - popd >/dev/null + popd } __buildPackage() { @@ -156,10 +156,10 @@ updatePackage() { local pkgbase=$1 local arch=$2 - pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/" >/dev/null + pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/" __updatePKGBUILD __buildPackage ${arch} - popd >/dev/null + popd } updateRepoPKGBUILD() { @@ -167,9 +167,9 @@ updateRepoPKGBUILD() { local repo=$2 local arch=$3 - pushd "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}/" >/dev/null + pushd "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}/" __updatePKGBUILD - popd >/dev/null + popd } getPackageNamesFromPackageBase() { -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:44:04 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:44:04 -0400 Subject: [Dev] [dbscripts] [PATCH 31/31] test: common.bash: Fix syntax mistake: $pkgarches[@] -> ${pkgarches[@]} In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-32-lukeshu@lukeshu.com> From: Luke Shumaker This mistake was introduced in 7628525156110022fa70ad91e4bc13ee8a3cceb0 --- test/lib/common.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lib/common.bash b/test/lib/common.bash index a833181..e882d3c 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -261,7 +261,7 @@ checkRemovedPackageDB() { if [[ ${pkgarches[@]} == any ]]; then tarches=(${ARCHES[@]}) else - tarches=($pkgarches[@]) + tarches=(${pkgarches[@]}) fi for db in "${DBEXT}" "${FILESEXT}"; do -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:44:03 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:44:03 -0400 Subject: [Dev] [dbscripts] [PATCH 30/31] test: ftpdir-cleanup: Fix variable name mistake: ${pkg[0]} -> ${pkgs[0]} In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-31-lukeshu@lukeshu.com> From: Luke Shumaker This mistake was introduced in 7628525156110022fa70ad91e4bc13ee8a3cceb0 --- test/cases/ftpdir-cleanup.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index 35b3c9f..991037c 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -107,7 +107,7 @@ __checkRepoRemovedPackage() { ftpdir-cleanup for arch in "${ARCH_BUILD[@]}"; do - __checkRepoRemovedPackage extra ${pkg[0]} ${arch} + __checkRepoRemovedPackage extra ${pkgs[0]} ${arch} done checkRemovedPackage extra "${pkgs[0]}" -- 2.16.2 From lukeshu at lukeshu.com Fri Apr 6 18:44:02 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 6 Apr 2018 14:44:02 -0400 Subject: [Dev] [dbscripts] [PATCH 29/31] Move package and db checks from test cases to library In-Reply-To: <20180406184404.2247-1-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> Message-ID: <20180406184404.2247-30-lukeshu@lukeshu.com> From: Pierre Schmitz (cherry picked from commit 7628525156110022fa70ad91e4bc13ee8a3cceb0) --- test/cases/db-move.bats | 37 ++++------- test/cases/db-remove.bats | 10 +-- test/cases/db-repo-add.bats | 12 +--- test/cases/db-repo-remove.bats | 10 +-- test/cases/db-update.bats | 54 +++++++---------- test/cases/ftpdir-cleanup.bats | 46 +++++++------- test/lib/common.bash | 135 +++++++++++++++++++++++------------------ 7 files changed, 143 insertions(+), 161 deletions(-) diff --git a/test/cases/db-move.bats b/test/cases/db-move.bats index cdc89e3..8d5087f 100755 --- a/test/cases/db-move.bats +++ b/test/cases/db-move.bats @@ -13,12 +13,9 @@ load ../lib/common db-move testing extra pkg-simple-a - for arch in "${ARCH_BUILD[@]}"; do - checkPackage extra "pkg-simple-a-1-1-${arch}.pkg.tar.xz" "${arch}" - checkRemovedPackage testing pkg-simple-a "${arch}" - - checkPackage testing "pkg-simple-b-1-1-${arch}.pkg.tar.xz" "${arch}" - done + checkRemovedPackage testing pkg-simple-a + checkPackage extra pkg-simple-a + checkPackage testing pkg-simple-b } @test "move multiple packages" { @@ -35,10 +32,8 @@ load ../lib/common db-move testing extra pkg-simple-a pkg-simple-b for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkPackage extra "${pkgbase}-1-1-${arch}.pkg.tar.xz" "${arch}" - checkRemovedPackage testing "${pkgbase}" "${arch}" - done + checkRemovedPackage testing "${pkgbase}" + checkPackage extra "${pkgbase}" done } @@ -55,10 +50,8 @@ load ../lib/common db-move testing extra pkg-simple-epoch - for arch in "${ARCH_BUILD[@]}"; do - checkPackage extra "pkg-simple-epoch-1:1-1-${arch}.pkg.tar.xz" "${arch}" - checkRemovedPackage testing pkg-simple-epoch "${arch}" - done + checkRemovedPackage testing pkg-simple-epoch + checkPackage extra pkg-simple-epoch } @test "move any packages" { @@ -72,9 +65,9 @@ load ../lib/common db-update db-move testing extra pkg-any-a - checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any - checkRemovedPackage testing pkg-any-a any - checkPackage testing pkg-any-b-1-1-any.pkg.tar.xz any + checkPackage extra pkg-any-a + checkRemovedPackage testing pkg-any-a + checkPackage testing pkg-any-b } @test "move split packages" { @@ -90,12 +83,6 @@ load ../lib/common db-update db-move testing extra pkg-split-a - for arch in "${ARCH_BUILD[@]}"; do - for pkg in $(getPackageNamesFromPackageBase pkg-split-a); do - checkPackage extra "${pkg##*/}" "${arch}" - done - for pkg in $(getPackageNamesFromPackageBase pkg-split-b); do - checkPackage testing "${pkg##*/}" "${arch}" - done - done + checkPackage extra pkg-split-a + checkPackage testing pkg-split-b } diff --git a/test/cases/db-remove.bats b/test/cases/db-remove.bats index deb0f0e..ff88237 100755 --- a/test/cases/db-remove.bats +++ b/test/cases/db-remove.bats @@ -18,9 +18,7 @@ load ../lib/common done for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackage extra "${pkgbase}" "${arch}" - done + checkRemovedPackage extra "${pkgbase}" done } @@ -40,9 +38,7 @@ load ../lib/common done for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackage extra "${pkgbase}" "${arch}" - done + checkRemovedPackage extra "${pkgbase}" done } @@ -61,6 +57,6 @@ load ../lib/common done for pkgbase in "${pkgs[@]}"; do - checkRemovedPackage extra "${pkgbase}" any + checkRemovedPackage extra "${pkgbase}" done } diff --git a/test/cases/db-repo-add.bats b/test/cases/db-repo-add.bats index a04d9bb..ef6cfe7 100755 --- a/test/cases/db-repo-add.bats +++ b/test/cases/db-repo-add.bats @@ -35,9 +35,7 @@ __movePackageToRepo() { done for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkPackageDB extra "${pkgbase}-1-1-${arch}.pkg.tar.xz" "${arch}" - done + checkPackageDB extra "${pkgbase}" done } @@ -60,9 +58,7 @@ __movePackageToRepo() { done for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkPackageDB extra "${pkgbase}-1-1-${arch}.pkg.tar.xz" "${arch}" - done + checkPackageDB extra "${pkgbase}" done } @@ -78,8 +74,6 @@ __movePackageToRepo() { done for pkgbase in ${pkgs[@]}; do - for arch in "${ARCH_BUILD[@]}"; do - checkPackageDB extra ${pkgbase}-1-1-any.pkg.tar.xz ${arch} - done + checkPackageDB extra ${pkgbase} done } diff --git a/test/cases/db-repo-remove.bats b/test/cases/db-repo-remove.bats index 6145f25..389c31e 100755 --- a/test/cases/db-repo-remove.bats +++ b/test/cases/db-repo-remove.bats @@ -18,9 +18,7 @@ load ../lib/common done for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackageDB extra "${pkgbase}" "${arch}" - done + checkRemovedPackageDB extra "${pkgbase}" done } @@ -40,9 +38,7 @@ load ../lib/common done for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackageDB extra "${pkgbase}" "${arch}" - done + checkRemovedPackageDB extra "${pkgbase}" done } @@ -61,6 +57,6 @@ load ../lib/common done for pkgbase in ${pkgs[@]}; do - checkRemovedPackageDB extra ${pkgbase} any + checkRemovedPackageDB extra ${pkgbase} done } diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats index 3a2e543..56e364b 100755 --- a/test/cases/db-update.bats +++ b/test/cases/db-update.bats @@ -12,22 +12,20 @@ load ../lib/common db-update for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - checkPackage extra "${pkgbase}-1-1-${arch}.pkg.tar.xz" "${arch}" - done + checkPackage extra "${pkgbase}" done } @test "add single simple package" { releasePackage extra 'pkg-single-arch' db-update - checkPackage extra 'pkg-single-arch-1-1-x86_64.pkg.tar.xz' 'x86_64' + checkPackage extra 'pkg-single-arch' } @test "add single epoch package" { releasePackage extra 'pkg-single-epoch' db-update - checkPackage extra 'pkg-single-epoch-1:1-1-x86_64.pkg.tar.xz' 'x86_64' + checkPackage extra 'pkg-single-epoch' } @test "add any packages" { @@ -41,7 +39,7 @@ load ../lib/common db-update for pkgbase in "${pkgs[@]}"; do - checkPackage extra "${pkgbase}-1-1-any.pkg.tar.xz" any + checkPackage extra "${pkgbase}" done } @@ -58,11 +56,7 @@ load ../lib/common db-update for pkgbase in "${pkgs[@]}"; do - for arch in "${ARCH_BUILD[@]}"; do - for pkg in $(getPackageNamesFromPackageBase ${pkgbase}); do - checkPackage extra "${pkg##*/}" "${arch}" - done - done + checkPackage extra "${pkgbase}" done } @@ -75,7 +69,7 @@ load ../lib/common releasePackage extra pkg-any-a db-update - checkPackage extra pkg-any-a-1-2-any.pkg.tar.xz any + checkPackage extra pkg-any-a } @test "update any package to different repositories at once" { @@ -87,14 +81,14 @@ load ../lib/common db-update - checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any - checkPackage testing pkg-any-a-1-2-any.pkg.tar.xz any + checkPackage extra pkg-any-a + checkPackage testing pkg-any-a } @test "update same any package to same repository" { releasePackage extra pkg-any-a db-update - checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkPackage extra pkg-any-a releasePackage extra pkg-any-a run db-update @@ -104,13 +98,13 @@ load ../lib/common @test "update same any package to different repositories" { releasePackage extra pkg-any-a db-update - checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any + checkPackage extra pkg-any-a releasePackage testing pkg-any-a run db-update [ "$status" -ne 0 ] - checkRemovedPackageDB testing pkg-any-a any + checkRemovedPackageDB testing pkg-any-a } @test "add incomplete split package" { @@ -127,9 +121,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackageDB ${repo} ${pkgbase} ${arch} - done + checkRemovedPackageDB ${repo} ${pkgbase} } @test "unknown repo" { @@ -137,7 +129,7 @@ load ../lib/common releasePackage extra 'pkg-any-a' releasePackage unknown 'pkg-any-b' db-update - checkPackage extra 'pkg-any-a-1-1-any.pkg.tar.xz' any + checkPackage extra 'pkg-any-a' [ ! -e "${FTP_BASE}/unknown" ] rm -rf "${STAGING}/unknown/" } @@ -148,7 +140,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackageDB extra pkg-any-a any + checkRemovedPackageDB extra pkg-any-a } @test "add invalid signed package fails" { @@ -161,7 +153,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackageDB extra pkg-any-a any + checkRemovedPackageDB extra pkg-any-a } @test "add broken signature fails" { @@ -173,7 +165,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackageDB extra pkg-any-a any + checkRemovedPackageDB extra pkg-any-a } @test "add package with inconsistent version fails" { @@ -186,7 +178,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackageDB extra 'pkg-any-a' 'any' + checkRemovedPackageDB extra 'pkg-any-a' } @test "add package with inconsistent name fails" { @@ -199,7 +191,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackage extra 'foo-pkg-any-a' 'any' + checkRemovedPackage extra 'pkg-any-a' } @test "add package with inconsistent pkgbuild fails" { @@ -210,7 +202,7 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - checkRemovedPackageDB extra 'pkg-any-a' 'any' + checkRemovedPackageDB extra 'pkg-any-a' } @test "add package with insufficient permissions fails" { @@ -222,8 +214,8 @@ load ../lib/common [ "$status" -ne 0 ] chmod +xwr ${FTP_BASE}/core/os/i686 - checkRemovedPackageDB core 'pkg-any-a' 'any' - checkRemovedPackageDB extra 'pkg-any-b' 'any' + checkRemovedPackageDB core 'pkg-any-a' + checkRemovedPackageDB extra 'pkg-any-b' } @test "package has to be a regular file" { @@ -239,7 +231,5 @@ load ../lib/common run db-update [ "$status" -ne 0 ] - for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackageDB extra "pkg-simple-a" $arch - done + checkRemovedPackageDB extra "pkg-simple-a" } diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats index 1a46fdf..35b3c9f 100755 --- a/test/cases/ftpdir-cleanup.bats +++ b/test/cases/ftpdir-cleanup.bats @@ -1,13 +1,21 @@ load ../lib/common +__getPackageNamesFromPackageBase() { + local pkgbase=$1 + + (. "packages/${pkgbase}/PKGBUILD"; echo ${pkgname[@]}) +} + __checkRepoRemovedPackage() { local repo=$1 local pkgbase=$2 - local arch=$3 + local repoarch=$3 + local pkgname - # FIXME: pkgbase might not be part of the package filename - [[ ! -f ${FTP_BASE}/${PKGPOOL}/${pkgbase}*${PKGEXT} ]] - [[ ! -f ${FTP_BASE}/${repo}/os/${arch}/${pkgbase}*${PKGEXT} ]] + for pkgname in $(__getPackageNamesFromPackageBase ${pkgbase}); do + [[ ! -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-*${PKGEXT} ]] + [[ ! -f ${FTP_BASE}/${repo}/os/${repoarch}/${pkgname}-*${PKGEXT} ]] + done } @test "cleanup simple packages" { @@ -27,13 +35,12 @@ __checkRepoRemovedPackage() { ftpdir-cleanup + checkRemovedPackage extra 'pkg-simple-a' for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackage extra 'pkg-simple-a' "${arch}" __checkRepoRemovedPackage extra 'pkg-simple-a' ${arch} - - local pkg2="pkg-simple-b-1-1-${arch}.pkg.tar.xz" - checkPackage extra "${pkg2}" "${arch}" done + + checkPackage extra pkg-simple-b } @test "cleanup epoch packages" { @@ -53,8 +60,8 @@ __checkRepoRemovedPackage() { ftpdir-cleanup + checkRemovedPackage extra 'pkg-simple-epoch' for arch in "${ARCH_BUILD[@]}"; do - checkRemovedPackage extra 'pkg-simple-epoch' "${arch}" __checkRepoRemovedPackage extra 'pkg-simple-epoch' ${arch} done } @@ -73,11 +80,12 @@ __checkRepoRemovedPackage() { ftpdir-cleanup local pkg1='pkg-any-a-1-1-any.pkg.tar.xz' - checkRemovedPackage extra 'pkg-any-a' any - __checkRepoRemovedPackage extra 'pkg-any-a' any + checkRemovedPackage extra 'pkg-any-a' + for arch in ${ARCH_BUILD[@]}; do + __checkRepoRemovedPackage extra 'pkg-any-a' ${arch} + done - local pkg2="pkg-any-b-1-1-${arch}.pkg.tar.xz" - checkPackage extra "${pkg2}" any + checkPackage extra pkg-any-b } @test "cleanup split packages" { @@ -99,15 +107,11 @@ __checkRepoRemovedPackage() { ftpdir-cleanup for arch in "${ARCH_BUILD[@]}"; do - for pkg in $(getPackageNamesFromPackageBase "${pkgs[0]}"); do - checkRemovedPackage extra "${pkg}" "${arch}" - __checkRepoRemovedPackage extra ${pkg} ${arch} - done - - for pkg in $(getPackageNamesFromPackageBase "${pkgs[1]}"); do - checkPackage extra "${pkg##*/}" "${arch}" - done + __checkRepoRemovedPackage extra ${pkg[0]} ${arch} done + + checkRemovedPackage extra "${pkgs[0]}" + checkPackage extra "${pkgs[1]}" } @test "cleanup old packages" { diff --git a/test/lib/common.bash b/test/lib/common.bash index 98b4469..a833181 100644 --- a/test/lib/common.bash +++ b/test/lib/common.bash @@ -3,23 +3,6 @@ . /usr/share/makepkg/util.sh . "$(dirname "${BASH_SOURCE[0]}")"/../test.conf -__getPackageBaseFromPackage() { - local _base - _grep_pkginfo() { - local _ret - - _ret="$(/usr/bin/bsdtar -xOqf "$1" .PKGINFO | grep -m 1 "^${2} = ")" - echo "${_ret#${2} = }" - } - - _base="$(_grep_pkginfo "$1" "pkgbase")" - if [ -z "$_base" ]; then - _grep_pkginfo "$1" "pkgname" - else - echo "$_base" - fi -} - __updatePKGBUILD() { local pkgrel @@ -175,86 +158,118 @@ updateRepoPKGBUILD() { popd } -getPackageNamesFromPackageBase() { - local pkgbase=$1 - - $(. "packages/${pkgbase}/PKGBUILD"; echo ${pkgname[@]}) -} - checkPackageDB() { local repo=$1 - local pkg=$2 - local arch=$3 + local pkgbase=$2 local db - local tarch - local tarches - - [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}" ] - [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}.sig" ] - [ ! -r "${STAGING}/${repo}/${pkg}" ] - [ ! -r "${STAGING}/${repo}/${pkg}.sig" ] - - if [[ $arch == any ]]; then - tarches=("${ARCHES[@]}") + local pkgarch + local repoarch + local repoarches + local pkgfile + local pkgname + + # FIXME: We guess the location of the PKGBUILD used for this repo + # We cannot read from trunk as __updatePKGBUILD() might have bumped the version + # and different repos can have different versions of the same package + local pkgbuildPaths=($(compgen -G "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-*")) + local pkgbuildPath="${pkgbuildPaths[0]}" + echo Repo is $repo + echo pkgbuildPaths = ${pkgbuildPaths[@]} + echo pkgbuildPath = ${pkgbuildPath} + ls -ahl ${TMP}/svn-packages-copy/${pkgbase}/repos/ + [ -r "${pkgbuildPath}/PKGBUILD" ] + + local pkgarches=($(. "${pkgbuildPath}/PKGBUILD"; echo ${arch[@]})) + local pkgnames=($(. "${pkgbuildPath}/PKGBUILD"; echo ${pkgname[@]})) + local pkgver=$(. "${pkgbuildPath}/PKGBUILD"; get_full_version) + + if [[ ${pkgarches[@]} == any ]]; then + repoarches=("${ARCHES[@]}") else - tarches=("${arch}") + repoarches=("${pkgarches[@]}") fi - for tarch in "${tarches[@]}"; do - [ -L "${FTP_BASE}/${repo}/os/${tarch}/${pkg}" ] - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${tarch}/${pkg}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}")" ] - - [ -L "${FTP_BASE}/${repo}/os/${tarch}/${pkg}.sig" ] - [ "$(readlink -e "${FTP_BASE}/${repo}/os/${tarch}/${pkg}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkg}.sig")" ] - - for db in "${DBEXT}" "${FILESEXT}"; do - [ -r "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" ] - bsdtar -xf "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" -O | grep "${pkg}" &>/dev/null + for pkgarch in ${pkgarches[@]}; do + for pkgname in ${pkgnames[@]}; do + pkgfile="${pkgname}-${pkgver}-${pkgarch}${PKGEXT}" + + [ -r "${FTP_BASE}/${PKGPOOL}/${pkgfile}" ] + [ -r "${FTP_BASE}/${PKGPOOL}/${pkgfile}.sig" ] + [ ! -r "${STAGING}/${repo}/${pkgfile}" ] + [ ! -r "${STAGING}/${repo}/${pkgfile}.sig" ] + + for repoarch in "${repoarches[@]}"; do + # Only 'any' packages can be found in repos of both arches + if [[ $pkgarch != any ]]; then + if [[ $pkgarch != ${repoarch} ]]; then + continue + fi + fi + + [ -L "${FTP_BASE}/${repo}/os/${repoarch}/${pkgfile}" ] + [ "$(readlink -e "${FTP_BASE}/${repo}/os/${repoarch}/${pkgfile}")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkgfile}")" ] + + [ -L "${FTP_BASE}/${repo}/os/${repoarch}/${pkgfile}.sig" ] + [ "$(readlink -e "${FTP_BASE}/${repo}/os/${repoarch}/${pkgfile}.sig")" == "$(readlink -e "${FTP_BASE}/${PKGPOOL}/${pkgfile}.sig")" ] + + for db in "${DBEXT}" "${FILESEXT}"; do + [ -r "${FTP_BASE}/${repo}/os/${repoarch}/${repo}${db%.tar.*}" ] + bsdtar -xf "${FTP_BASE}/${repo}/os/${repoarch}/${repo}${db%.tar.*}" -O | grep "${pkgfile%${PKGEXT}}" &>/dev/null + done + done done done } checkPackage() { local repo=$1 - local pkg=$2 - local arch=$3 - - checkPackageDB "$repo" "$pkg" "$arch" + local pkgbase=$2 - local pkgbase=$(__getPackageBaseFromPackage "${FTP_BASE}/${PKGPOOL}/${pkg}") svn up -q "${TMP}/svn-packages-copy/${pkgbase}" - [ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] + # TODO: Does not fail if one arch is missing + compgen -G "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-*" >/dev/null + + checkPackageDB "$repo" "$pkgbase" } checkRemovedPackage() { local repo=$1 local pkgbase=$2 - local arch=$3 - - checkRemovedPackageDB "$repo" "$pkgbase" "$arch" svn up -q "${TMP}/svn-packages-copy/${pkgbase}" - [ ! -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] + ! compgen -G "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-*" >/dev/null + + checkRemovedPackageDB "$repo" "$pkgbase" } checkRemovedPackageDB() { local repo=$1 local pkgbase=$2 - local arch=$3 + local arch local db local tarch local tarches + local pkgarches + local pkgnames + local pkgname + + local pkgbuildPath="${TMP}/svn-packages-copy/${pkgbase}/trunk/PKGBUILD" + [[ -r ${pkgbuildPath} ]] + pkgarches=($(. "${pkgbuildPath}"; echo ${arch[@]})) + pkgnames=($(. "${pkgbuildPath}"; echo ${pkgname[@]})) - if [[ $arch == any ]]; then + if [[ ${pkgarches[@]} == any ]]; then tarches=(${ARCHES[@]}) else - tarches=(${arch}) + tarches=($pkgarches[@]) fi for db in "${DBEXT}" "${FILESEXT}"; do for tarch in "${tarches[@]}"; do if [ -r "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" ]; then - ! bsdtar -xf "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" -O | grep "${pkgbase}" &>/dev/null + for pkgname in ${pkgnames[@]}; do + ! bsdtar -xf "${FTP_BASE}/${repo}/os/${tarch}/${repo}${db%.tar.*}" -O | grep "${pkgname}" &>/dev/null + done fi done done -- 2.16.2 From nobody at parabola.nu Mon Apr 9 15:23:47 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Mon, 09 Apr 2018 15:23:47 -0000 Subject: [Dev] Orphan Libre package [mesa] marked out-of-date Message-ID: <20180409152347.9748.89921@proton.parabola.nu> jc_gargma at iserlohn-fortress.net wants to notify you that the following packages may be out-of-date: * mesa 17.3.6-1.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/mesa/ * mesa 17.3.7-1.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/mesa/ * mesa 17.3.7-1.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/mesa/ The user provided the following additional text: Current release is 18.0.0 From lukeshu at lukeshu.com Mon Apr 9 16:09:03 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Mon, 09 Apr 2018 12:09:03 -0400 Subject: [Dev] [dbscripts] [PATCH 27/31] test: Don't treat PKGEXT as a glob In-Reply-To: <20180406184404.2247-28-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> <20180406184404.2247-28-lukeshu@lukeshu.com> Message-ID: <87o9is7468.wl-lukeshu@lukeshu.com> On Fri, 06 Apr 2018 14:44:00 -0400, Luke Shumaker wrote: > --- a/test/lib/common.bash > +++ b/test/lib/common.bash > @@ -59,7 +59,7 @@ __buildPackage() { > else > sudo librechroot -n "dbscripts@${tarch}" -A "$tarch" make > fi > - sudo PKGDEST="${pkgdest}" libremakepkg -n "dbscripts@${tarch}" > + sudo PKGDEST="${pkgdest}" PKGEXT="${PKGEXT}" libremakepkg -n "dbscripts@${tarch}" This is pointless/wrong, libremakepkg doesn't obey PKGEXT from the environment. -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Wed Apr 11 05:41:26 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Wed, 11 Apr 2018 01:41:26 -0400 Subject: [Dev] [dbscripts] [PATCH 29/31] Move package and db checks from test cases to library In-Reply-To: <20180406184404.2247-30-lukeshu@lukeshu.com> References: <20180406184404.2247-1-lukeshu@lukeshu.com> <20180406184404.2247-30-lukeshu@lukeshu.com> Message-ID: <87fu421erd.wl-lukeshu@lukeshu.com> On Fri, 06 Apr 2018 14:44:02 -0400, Luke Shumaker wrote: > diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats > index 1a46fdf..35b3c9f 100755 > --- a/test/cases/ftpdir-cleanup.bats > +++ b/test/cases/ftpdir-cleanup.bats > @@ -1,13 +1,21 @@ > load ../lib/common > > +__getPackageNamesFromPackageBase() { > + local pkgbase=$1 > + > + (. "packages/${pkgbase}/PKGBUILD"; echo ${pkgname[@]}) That should be fixtures/, not packages/ -- Happy hacking, ~ Luke Shumaker From nikke at acc.umu.se Wed Apr 11 09:11:26 2018 From: nikke at acc.umu.se (Niklas Edmundsson) Date: Wed, 11 Apr 2018 11:11:26 +0200 (CEST) Subject: [Dev] New Parabola mirror: ftp.acc.umu.se Message-ID: Academic Computer Club (ACC), Ume? University, Sweden hereby announces the intent to provide a mirror of Parabola GNU/Linux-libre. ftp.acc.umu.se has 20 Gbit dedicated connectivity to SUNET, and enjoys excellent peering towards Europe and US via NORDUnet. Despite the name, the cluster is heavily optimized for http/https and also provides rsync service. We are syncing hourly from rsync://repo.parabola.nu:875/repos/ in accordance with the instructions on https://wiki.parabola.nu/Creating_a_mirror * Mirror name ftp.acc.umu.se * Mirror organization Academic Computer Club, Ume? University * Mirror location Ume?, Sweden * Mirror speed 20 Gbps * Mirror administrator (email) ftp-adm at acc.umu.se * Mirror access URLs http http://ftp.acc.umu.se/mirror/parabola.nu/ https https://ftp.acc.umu.se/mirror/parabola.nu/ rsync rsync://ftp.acc.umu.se/mirror/parabola.nu/ *NOTE* that the cluster is highly optimized for http/https, so despite the name we prefer to not publish clickable FTP links. Those who really needs to use FTP can usually figure it out from the site name! *NOTE2* that the cluster uses redirects to offload requests for large files to dedicated large-file offload targets. Mechanisms that check mirror status must not treat this as an error. On behalf of the ftp.acc.umu.se admins, /Nikke -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se | nikke at acc.umu.se --------------------------------------------------------------------------- "Besides, you look good in a dress." -Riker, to Worf =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From fauno at endefensadelsl.org Thu Apr 12 15:39:50 2018 From: fauno at endefensadelsl.org (fauno) Date: Thu, 12 Apr 2018 12:39:50 -0300 Subject: [Dev] New Parabola mirror: ftp.acc.umu.se In-Reply-To: References: Message-ID: <877epca0xl.fsf@endefensadelsl.org> Niklas Edmundsson writes: > Academic Computer Club (ACC), Ume? University, Sweden hereby announces > the intent to provide a mirror of Parabola GNU/Linux-libre. > ftp.acc.umu.se has 20 Gbit dedicated connectivity to SUNET, and enjoys > excellent peering towards Europe and US via NORDUnet. that's awesome! thanks! -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 617 bytes Desc: not available URL: From nobody at parabola.nu Thu Apr 12 17:42:39 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Thu, 12 Apr 2018 17:42:39 -0000 Subject: [Dev] Orphan Libre package [khotkeys] marked out-of-date Message-ID: <20180412174239.9751.4809@proton.parabola.nu> jc_gargma at iserlohn-fortress.net wants to notify you that the following packages may be out-of-date: * khotkeys 5.12.3-1.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/khotkeys/ * khotkeys 5.12.3-1.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/khotkeys/ * khotkeys 5.12.3-1.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/khotkeys/ The user provided the following additional text: Current release is 5.12.4 From nobody at parabola.nu Thu Apr 12 17:43:01 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Thu, 12 Apr 2018 17:43:01 -0000 Subject: [Dev] Orphan Libre package [kinfocenter] marked out-of-date Message-ID: <20180412174301.9751.58405@proton.parabola.nu> jc_gargma at iserlohn-fortress.net wants to notify you that the following packages may be out-of-date: * kinfocenter 5.12.3-1.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/kinfocenter/ * kinfocenter 5.12.3-1.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/kinfocenter/ * kinfocenter 5.12.3-1.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/kinfocenter/ The user provided the following additional text: Current release is 5.12.4 From nobody at parabola.nu Thu Apr 12 17:43:26 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Thu, 12 Apr 2018 17:43:26 -0000 Subject: [Dev] Orphan Libre package [qtcreator] marked out-of-date Message-ID: <20180412174326.9749.61668@proton.parabola.nu> jc_gargma at iserlohn-fortress.net wants to notify you that the following packages may be out-of-date: * qtcreator 4.5.2-1.parabola2 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/qtcreator/ * qtcreator 4.5.2-1.parabola2 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/qtcreator/ * qtcreator 4.5.2-1.parabola2 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/qtcreator/ The user provided the following additional text: Current release is 4.6.0 From nobody at parabola.nu Thu Apr 12 17:44:00 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Thu, 12 Apr 2018 17:44:00 -0000 Subject: [Dev] Orphan Libre package [ruby] marked out-of-date Message-ID: <20180412174400.9750.27847@proton.parabola.nu> jc_gargma at iserlohn-fortress.net wants to notify you that the following packages may be out-of-date: * ruby 2.5.0-4.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/ruby/ * ruby 2.5.0-4.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/ruby/ * ruby 2.5.0-4.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/ruby/ * ruby-docs 2.5.0-4.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/ruby-docs/ * ruby-docs 2.5.0-4.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/ruby-docs/ * ruby-docs 2.5.0-4.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/ruby-docs/ The user provided the following additional text: Current release is 2.5.1 From nobody at parabola.nu Thu Apr 12 17:44:52 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Thu, 12 Apr 2018 17:44:52 -0000 Subject: [Dev] Orphan Libre package [handbrake] marked out-of-date Message-ID: <20180412174452.9749.61633@proton.parabola.nu> jc_gargma at iserlohn-fortress.net wants to notify you that the following packages may be out-of-date: * handbrake 1.0.7-3.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/handbrake/ * handbrake 1.0.7-3.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/handbrake/ * handbrake 1.0.7-3.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/handbrake/ * handbrake-cli 1.0.7-3.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/handbrake-cli/ * handbrake-cli 1.0.7-3.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/handbrake-cli/ * handbrake-cli 1.0.7-3.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/handbrake-cli/ The user provided the following additional text: Current release is 1.1.0 From christianity at posteo.net Sat Apr 14 09:20:16 2018 From: christianity at posteo.net (Christian) Date: Sat, 14 Apr 2018 05:20:16 -0400 Subject: [Dev] openrc iso on UEFI Message-ID: <20180414052016.40bb79a2@christianity.localdomain> Hi, I can't get the openrc iso to boot on UEFI, but the systemd one works fine. Will the openrc version install just as easily if I start from the systemd iso? -Christian From megver83 at hyperbola.info Sun Apr 15 16:20:37 2018 From: megver83 at hyperbola.info (Megver83) Date: Sun, 15 Apr 2018 13:20:37 -0300 Subject: [Dev] openrc iso on UEFI In-Reply-To: <20180414052016.40bb79a2@christianity.localdomain> References: <20180414052016.40bb79a2@christianity.localdomain> Message-ID: <0f0def27-5e36-6a2d-020a-e50d3fc13cea@hyperbola.info> El 14/04/18 a las 06:20, Christian escribi?: > Hi, > > I can't get the openrc iso to boot on UEFI, but the systemd one works fine. Will the openrc version install just as easily if I start from the systemd iso? > -Christian > _______________________________________________ > Dev mailing list > Dev at lists.parabola.nu > https://lists.parabola.nu/mailman/listinfo/dev > I haven't tested my OpenRC on UEFI since I always disable it. Is it really necessary for you yo use EFI? If it is, then you can boot the Systemd ISO and make a clean OpenRC installation manually, and the result will be the same as using the OpenRC ISO. -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 520 bytes Desc: OpenPGP digital signature URL: From nikke at acc.umu.se Sun Apr 15 19:33:47 2018 From: nikke at acc.umu.se (Niklas Edmundsson) Date: Sun, 15 Apr 2018 21:33:47 +0200 (CEST) Subject: [Dev] New Parabola mirror: ftp.acc.umu.se In-Reply-To: <877epca0xl.fsf@endefensadelsl.org> References: <877epca0xl.fsf@endefensadelsl.org> Message-ID: On Thu, 12 Apr 2018, fauno wrote: > Niklas Edmundsson writes: > >> Academic Computer Club (ACC), Ume? University, Sweden hereby announces >> the intent to provide a mirror of Parabola GNU/Linux-libre. >> ftp.acc.umu.se has 20 Gbit dedicated connectivity to SUNET, and enjoys >> excellent peering towards Europe and US via NORDUnet. > > that's awesome! thanks! Appreciation is all well and good, but we're still not listed on https://www.parabola.nu/mirrorlist/all/ nor on https://wiki.parabola.nu/Get_Parabola ... Btw, the "standard" download links on https://wiki.parabola.nu/Get_Parabola seems to simply do round-robin between the available mirrors... While it offloads the main download server, it doesn't make full use of regional mirrors. Among the motivations for running ftp.acc.umu.se are the aim to provide excellent service to our region, so we strongly recommend using a geoip aware download redirector. Mirrorbits https://github.com/etix/mirrorbits comes highly recommended by many projects that we mirror. /Nikke -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se | nikke at acc.umu.se --------------------------------------------------------------------------- * <- Tribble o*o <- Tribble bicycling =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From nroof at protonmail.com Mon Apr 16 21:21:27 2018 From: nroof at protonmail.com (nRoof) Date: Mon, 16 Apr 2018 17:21:27 -0400 Subject: [Dev] Orphan Libre package [linux-libre] marked out-of-date Message-ID: So maybe it won't be a bad idea to put 4.16 in libre-testing, so that all wishing can test beforehand and report issues if there are any, like recent issues with missing modules? -------------- next part -------------- An HTML attachment was scrubbed... URL: From nobody at parabola.nu Tue Apr 17 08:20:19 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Tue, 17 Apr 2018 08:20:19 -0000 Subject: [Dev] Orphan Libre package [hplip] marked out-of-date Message-ID: <20180417082019.9750.17096@proton.parabola.nu> nroof at protonmail.com wants to notify you that the following packages may be out-of-date: * hplip 3.17.11-1.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/hplip/ * hplip 3.17.11-1.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/hplip/ * hplip 3.17.11-1.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/hplip/ The user provided the following additional text: Thank you for maintaining this package! A new version is available: https://developers.hp.com/hp-linux-imaging-and-printing Arch has already updated it in their repo. From megver83 at hyperbola.info Tue Apr 17 19:04:07 2018 From: megver83 at hyperbola.info (Megver83) Date: Tue, 17 Apr 2018 16:04:07 -0300 Subject: [Dev] Orphan Libre package [linux-libre] marked out-of-date In-Reply-To: References: Message-ID: <3cef9b8c-b4d2-26f0-5057-af35166cfb42@hyperbola.info> El 16/04/18 a las 18:21, nRoof escribi?: > So maybe it won't be a bad idea to put 4.16 in libre-testing, so that > all wishing can test beforehand and report issues if there are any, like > recent issues with missing modules? > > > _______________________________________________ > Dev mailing list > Dev at lists.parabola.nu > https://lists.parabola.nu/mailman/listinfo/dev > Arch Linux tracks most of those issues, and make patches for that. In Parabola, it wouldn't make sense since we even use a similar configuration. -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org From jc_gargma at iserlohn-fortress.net Wed Apr 18 02:04:31 2018 From: jc_gargma at iserlohn-fortress.net (jc_gargma) Date: Tue, 17 Apr 2018 19:04:31 -0700 Subject: [Dev] kinfocenter and khotkeys update patches and kio In-Reply-To: <4195558.zHrDN0CqZE@iserlohn-fortress.net> References: <4195558.zHrDN0CqZE@iserlohn-fortress.net> Message-ID: <2169971.F8vjBCfx1b@iserlohn-fortress.net> > I've attached git format-patches to update kinfocenter and khotkeys to > 5.12.4 Second attempt to submit the aforementioned patches. I've also attached a git-format patch to update kio to 5.45.0 -jc -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Updated-khotkeys-to-5.12.4.patch Type: text/x-patch Size: 1209 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Updated-kinfocenter-to-5.12.4.patch Type: text/x-patch Size: 1314 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Updated-kio-to-5.45.0.patch Type: text/x-patch Size: 1249 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 228 bytes Desc: This is a digitally signed message part. URL: From andreas at grapentin.org Thu Apr 19 07:22:30 2018 From: andreas at grapentin.org (Andreas Grapentin) Date: Thu, 19 Apr 2018 09:22:30 +0200 Subject: [Dev] kinfocenter and khotkeys update patches and kio In-Reply-To: <2169971.F8vjBCfx1b@iserlohn-fortress.net> References: <4195558.zHrDN0CqZE@iserlohn-fortress.net> <2169971.F8vjBCfx1b@iserlohn-fortress.net> Message-ID: <20180419072230.GA19217@parabola-pocket.localdomain> thanks for the ping. patches have been applied and packages are building. -A On Tue, Apr 17, 2018 at 07:04:31PM -0700, jc_gargma wrote: > > I've attached git format-patches to update kinfocenter and khotkeys to > > 5.12.4 > Second attempt to submit the aforementioned patches. > > I've also attached a git-format patch to update kio to 5.45.0 > > > -jc > From dfe61c19f0ebaee9035232e3078fed04b5cef7ad Mon Sep 17 00:00:00 2001 > From: jc_gargma > Date: Sat, 31 Mar 2018 15:31:45 -0700 > Subject: [PATCH] Updated khotkeys to 5.12.4 > > --- > libre/khotkeys/PKGBUILD | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libre/khotkeys/PKGBUILD b/libre/khotkeys/PKGBUILD > index b29fb0b7da..271f44bb1d 100644 > --- a/libre/khotkeys/PKGBUILD > +++ b/libre/khotkeys/PKGBUILD > @@ -7,7 +7,7 @@ > # Contributor: jc_gargma > > pkgname=khotkeys > -pkgver=5.12.3 > +pkgver=5.12.4 > pkgrel=1 > pkgrel+=.parabola1 > pkgdesc='KHotKeys' > @@ -20,7 +20,7 @@ depends=(plasma-workspace) > makedepends=(extra-cmake-modules kdoctools python kdesignerplugin) > groups=(plasma) > source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig}) > -sha256sums=('8a8fefcc5d13e4037034c8c3fae9c8956eb2a6da2029d10fbb9c0e31af79a3eb' > +sha256sums=('ceb4ba8267cf1e3c772813c3288fc755dae3069cd059feeeda64c01a6f5748d2' > 'SKIP') > validpgpkeys=('2D1D5B0588357787DE9EE225EC94D18F7F05997E' # Jonathan Riddell > '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D' # Bhushan Shah > -- > 2.16.3 > > From fcf860914cf12e865ff48dc118e97ab2d4a4278b Mon Sep 17 00:00:00 2001 > From: jc_gargma > Date: Sat, 31 Mar 2018 15:31:20 -0700 > Subject: [PATCH] Updated kinfocenter to 5.12.4 > > --- > libre/kinfocenter/PKGBUILD | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libre/kinfocenter/PKGBUILD b/libre/kinfocenter/PKGBUILD > index 8b64ef12ea..b8349b6c1a 100644 > --- a/libre/kinfocenter/PKGBUILD > +++ b/libre/kinfocenter/PKGBUILD > @@ -7,7 +7,7 @@ > # Contributor: jc_gargma > > pkgname=kinfocenter > -pkgver=5.12.3 > +pkgver=5.12.4 > pkgrel=1 > pkgrel+=.parabola1 > pkgdesc='A utility that provides information about a computer system' > @@ -22,7 +22,7 @@ groups=(plasma) > source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig} > parabola-logo.svg::https://wiki.parabola.nu/images/a/af/Parabolagnu%2Blinuxlibre-dark-scalable.svg > kcm-about-distrorc) > -sha256sums=('d98ff9309ba5ab7cc340b446fb5c4e12f9be07b9efc0e807ae3939467d773551' > +sha256sums=('436a6b36917f745ec710802bd34bc541a482802fd0753b787d9d16d5115bfe35' > 'SKIP' > '75136b90185242891cbeb993285f400bcc9c6c70fdccb0f5e50790acaf875b92' > '9c874f9ee68dc1c46fab1255f28bdca892e664b35208220db77ab59e04617a96') > -- > 2.16.3 > > From b66c8b3eba8409ca2bbc49f5fc5aee75e87445ea Mon Sep 17 00:00:00 2001 > From: jc_gargma > Date: Tue, 17 Apr 2018 18:57:13 -0700 > Subject: [PATCH] Updated kio to 5.45.0 > > --- > libre/kio/PKGBUILD | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libre/kio/PKGBUILD b/libre/kio/PKGBUILD > index 32918742aa..d6b14385ab 100644 > --- a/libre/kio/PKGBUILD > +++ b/libre/kio/PKGBUILD > @@ -7,7 +7,7 @@ > # Maintainer: Andreas Grapentin > > pkgname=kio > -pkgver=5.44.0 > +pkgver=5.45.0 > pkgrel=1 > pkgrel+=.parabola1 > pkgdesc='Resource and network access abstraction' > @@ -23,7 +23,7 @@ optdepends=('kio-extras: extra protocols support (sftp, fish and more)' 'kdoctoo > groups=(kf5) > source=("https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"{,.sig}) > source+=("duckduckgo_html.desktop" "duckduckgo_lite.desktop") > -sha256sums=('7a8fc6f0af101c4a16270d328806fbf96ee8855e756b033d6a08ce744e7071b7' > +sha256sums=('3e7512e819fe1831b15981641dba26a7dcbbdbccd79cbf076ceedae8e4116b15' > 'SKIP' > '31910ab7393e67609f15e04a57f6406f63e6dae58b01bce0787741bc5958f292' > '40466a9dad7075f2525e9e024720da7d7b49a22892b6fca8b81cc0e6408d2f7d') > -- > 2.17.0 > > _______________________________________________ > Dev mailing list > Dev at lists.parabola.nu > https://lists.parabola.nu/mailman/listinfo/dev -- ------------------------------------------------------------------------------ my GPG Public Key: https://files.grapentin.org/.gpg/public.key ------------------------------------------------------------------------------ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: From megver83 at hyperbola.info Fri Apr 20 16:12:46 2018 From: megver83 at hyperbola.info (Megver83) Date: Fri, 20 Apr 2018 13:12:46 -0300 Subject: [Dev] Deprecation of linux-libre-hardened for i686 and armv7h Message-ID: <03b95c7c-d335-7ec4-e22c-38021b1a91c9@hyperbola.info> I've been maintaining linux-libre-hardened for all the supported architectures by Parabola since Arch added linux-hardened on their official repositories for x86_64 only. However they still supported i686 in those times, and I didn't know why it wasn't for i686, so I just built it for i686 and armv7 too. However, today I read this: - https://github.com/archlinux32/packages/blob/master/blacklist#L8 - https://mirror.archlinux32.org/irc-logs/%23archlinux-ports/2017-06-28.html#04:04:01 The funny thing is that I knew that in https://github.com/copperhead/linux-hardened says clearly in the repository description: "(...) other than multiarch arm64 / x86_64 aren't in scope (...)" but I didn't really checked the patch till now. So yes, *it is pointless to build it for i686 and armv7h* pitifully. I'll remove it from our repos when linux-hardened gets the 4.16 update. Now, for i686 and armv7h users who used this kernel have linux-libre-xtreme and linux-libre-lts-xtreme as alternatives. However, although linux-libre-xtreme uses the same hardened patches (with the difference that it has all LSMs enabled) I'll still maintain it for i686 and armv7h but it will only have the LSMs, not the hardened patch because of all of what I said above :P. There's more info about at https://wiki.parabola.nu/Xtreme -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 520 bytes Desc: OpenPGP digital signature URL: From lukeshu at lukeshu.com Sat Apr 21 00:11:10 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Fri, 20 Apr 2018 20:11:10 -0400 Subject: [Dev] dbscripts 20180420 release announcement Message-ID: <87wox1l8pt.wl-lukeshu@lukeshu.com> I've just rolled out version 20180420 of Parabola dbscripts. This is a pretty minor update, but I figured I like keeping everyone in the loop. Changes from 20180401 to 20180420: - `chmod 644 conf* *.conf` Some of the files in /etc were erroneously marked executable by default. - Get rid of the config:REQUIRE_SIGNATURE option, a signature is now always required. - db-repo-add: Fix adding of 'any' packages. This bug wasn't a big deal because normally packages are added by `db-update`, which does not call `db-repo-add`. - db-update: Do a better job of validating package names / disallowing invalid package names. - A whole bunch of test-suite improvements, enabling us to more confidently make dbscripts improvements in the future. -- Happy hacking, ~ Luke Shumaker From nobody at parabola.nu Sat Apr 21 13:34:07 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Sat, 21 Apr 2018 13:34:07 -0000 Subject: [Dev] Orphan Libre package [blender] marked out-of-date Message-ID: <20180421133407.9751.55001@proton.parabola.nu> joinlaw at cock.li wants to notify you that the following packages may be out-of-date: * blender 17:2.79-9.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/blender/ * blender 17:2.79-9.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/blender/ * blender 17:2.79-9.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/blender/ The user provided the following additional text: the latest version is 2.79b released in 2018-Mar-22 From andreas at grapentin.org Sat Apr 21 17:06:00 2018 From: andreas at grapentin.org (Andreas Grapentin) Date: Sat, 21 Apr 2018 19:06:00 +0200 Subject: [Dev] Orphan Libre package [blender] marked out-of-date In-Reply-To: <20180421133407.9751.55001@proton.parabola.nu> References: <20180421133407.9751.55001@proton.parabola.nu> Message-ID: <20180421170600.GA19137@parabola-pocket.localdomain> blender was updated to 2.79b on April 19th... -A On Sat, Apr 21, 2018 at 01:34:07PM -0000, Parabola Website Notification wrote: > joinlaw at cock.li wants to notify you that the following packages may be out-of-date: > > > * blender 17:2.79-9.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/blender/ > * blender 17:2.79-9.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/blender/ > * blender 17:2.79-9.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/blender/ > > > The user provided the following additional text: > > the latest version is 2.79b released in 2018-Mar-22 > > _______________________________________________ > Dev mailing list > Dev at lists.parabola.nu > https://lists.parabola.nu/mailman/listinfo/dev -- ------------------------------------------------------------------------------ my GPG Public Key: https://files.grapentin.org/.gpg/public.key ------------------------------------------------------------------------------ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: From encycl at parlementum.red Sun Apr 22 11:30:14 2018 From: encycl at parlementum.red (CER) Date: Sun, 22 Apr 2018 11:30:14 +0000 Subject: [Dev] Help In-Reply-To: References: Message-ID: <8F688E7E-2609-4298-9DB5-B60F34414F9E@parlementum.red> Help On April 20, 2018 4:09:28 PM UTC, dev-request at lists.parabola.nu wrote: >Send Dev mailing list submissions to > dev at lists.parabola.nu > >To subscribe or unsubscribe via the World Wide Web, visit > https://lists.parabola.nu/mailman/listinfo/dev >or, via email, send a message with subject or body 'help' to > dev-request at lists.parabola.nu > >You can reach the person managing the list at > dev-owner at lists.parabola.nu > >When replying, please edit your Subject line so it is more specific >than "Re: Contents of Dev digest..." > > >Today's Topics: > > 1. Re: New Parabola mirror: ftp.acc.umu.se (Niklas Edmundsson) > 2. Orphan Libre package [linux-libre] marked out-of-date (nRoof) > 3. Orphan Libre package [hplip] marked out-of-date > (Parabola Website Notification) > 4. Re: Orphan Libre package [linux-libre] marked out-of-date > (Megver83) > 5. Re: kinfocenter and khotkeys update patches and kio (jc_gargma) > 6. Re: kinfocenter and khotkeys update patches and kio > (Andreas Grapentin) > 7. Deprecation of linux-libre-hardened for i686 and armv7h (Megver83) > > >---------------------------------------------------------------------- > >Message: 1 >Date: Sun, 15 Apr 2018 21:33:47 +0200 (CEST) >From: Niklas Edmundsson >To: fauno >Cc: dev at lists.parabola.nu, FTP Admins >Subject: Re: [Dev] New Parabola mirror: ftp.acc.umu.se >Message-ID: >Content-Type: TEXT/PLAIN; charset=utf-8; format=flowed > >On Thu, 12 Apr 2018, fauno wrote: > >> Niklas Edmundsson writes: >> >>> Academic Computer Club (ACC), Ume? University, Sweden hereby >announces >>> the intent to provide a mirror of Parabola GNU/Linux-libre. >>> ftp.acc.umu.se has 20 Gbit dedicated connectivity to SUNET, and >enjoys >>> excellent peering towards Europe and US via NORDUnet. >> >> that's awesome! thanks! > >Appreciation is all well and good, but we're still not listed on >https://www.parabola.nu/mirrorlist/all/ nor on >https://wiki.parabola.nu/Get_Parabola ... > >Btw, the "standard" download links on >https://wiki.parabola.nu/Get_Parabola seems to simply do round-robin >between the available mirrors... While it offloads the main download >server, it doesn't make full use of regional mirrors. > >Among the motivations for running ftp.acc.umu.se are the aim to >provide excellent service to our region, so we strongly recommend >using a geoip aware download redirector. Mirrorbits >https://github.com/etix/mirrorbits comes highly recommended by many >projects that we mirror. > >/Nikke >-- >-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- >Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se | >nikke at acc.umu.se >--------------------------------------------------------------------------- > * <- Tribble o*o <- Tribble bicycling >=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > >------------------------------ > >Message: 2 >Date: Mon, 16 Apr 2018 17:21:27 -0400 >From: nRoof >To: "dev at lists.parabola.nu" >Subject: [Dev] Orphan Libre package [linux-libre] marked out-of-date >Message-ID: > > >Content-Type: text/plain; charset="utf-8" > >So maybe it won't be a bad idea to put 4.16 in libre-testing, so that >all wishing can test beforehand and report issues if there are any, >like recent issues with missing modules? >-------------- next part -------------- >An HTML attachment was scrubbed... >URL: > > >------------------------------ > >Message: 3 >Date: Tue, 17 Apr 2018 08:20:19 -0000 >From: Parabola Website Notification >To: dev at lists.parabola.nu >Subject: [Dev] Orphan Libre package [hplip] marked out-of-date >Message-ID: <20180417082019.9750.17096 at proton.parabola.nu> >Content-Type: text/plain; charset="utf-8" > >nroof at protonmail.com wants to notify you that the following packages >may be out-of-date: > > >* hplip 3.17.11-1.parabola1 [libre] (armv7h): >https://parabolagnulinux.org/packages/libre/armv7h/hplip/ >* hplip 3.17.11-1.parabola1 [libre] (i686): >https://parabolagnulinux.org/packages/libre/i686/hplip/ >* hplip 3.17.11-1.parabola1 [libre] (x86_64): >https://parabolagnulinux.org/packages/libre/x86_64/hplip/ > > >The user provided the following additional text: > >Thank you for maintaining this package! > >A new version is available: >https://developers.hp.com/hp-linux-imaging-and-printing >Arch has already updated it in their repo. > > > >------------------------------ > >Message: 4 >Date: Tue, 17 Apr 2018 16:04:07 -0300 >From: Megver83 >To: dev at lists.parabola.nu >Subject: Re: [Dev] Orphan Libre package [linux-libre] marked > out-of-date >Message-ID: <3cef9b8c-b4d2-26f0-5057-af35166cfb42 at hyperbola.info> >Content-Type: text/plain; charset=utf-8 > >El 16/04/18 a las 18:21, nRoof escribi?: >> So maybe it won't be a bad idea to put 4.16 in libre-testing, so that >> all wishing can test beforehand and report issues if there are any, >like >> recent issues with missing modules? >> >> >> _______________________________________________ >> Dev mailing list >> Dev at lists.parabola.nu >> https://lists.parabola.nu/mailman/listinfo/dev >> >Arch Linux tracks most of those issues, and make patches for that. In >Parabola, it wouldn't make sense since we even use a similar >configuration. > >-- >~Megver83 > >SIP: megver83 at sip.linphone.org >XMPP: megver83 at jabjab.de >Tox: megver83 at toxme.io >GPG: 0x227CA7C556B2BA78 >GNUSocial: @megver82 at quitter.cl >Diaspora*: megver83 at diasp.org >Matrix: @Megver83:matrix.org > > >------------------------------ > >Message: 5 >Date: Tue, 17 Apr 2018 19:04:31 -0700 >From: jc_gargma >To: dev at lists.parabola.nu >Subject: Re: [Dev] kinfocenter and khotkeys update patches and kio >Message-ID: <2169971.F8vjBCfx1b at iserlohn-fortress.net> >Content-Type: text/plain; charset="utf-8" > >> I've attached git format-patches to update kinfocenter and khotkeys >to >> 5.12.4 >Second attempt to submit the aforementioned patches. > >I've also attached a git-format patch to update kio to 5.45.0 > > >-jc >-------------- next part -------------- >A non-text attachment was scrubbed... >Name: 0001-Updated-khotkeys-to-5.12.4.patch >Type: text/x-patch >Size: 1209 bytes >Desc: not available >URL: > >-------------- next part -------------- >A non-text attachment was scrubbed... >Name: 0001-Updated-kinfocenter-to-5.12.4.patch >Type: text/x-patch >Size: 1314 bytes >Desc: not available >URL: > >-------------- next part -------------- >A non-text attachment was scrubbed... >Name: 0001-Updated-kio-to-5.45.0.patch >Type: text/x-patch >Size: 1249 bytes >Desc: not available >URL: > >-------------- next part -------------- >A non-text attachment was scrubbed... >Name: signature.asc >Type: application/pgp-signature >Size: 228 bytes >Desc: This is a digitally signed message part. >URL: > > >------------------------------ > >Message: 6 >Date: Thu, 19 Apr 2018 09:22:30 +0200 >From: Andreas Grapentin >To: dev at lists.parabola.nu >Subject: Re: [Dev] kinfocenter and khotkeys update patches and kio >Message-ID: <20180419072230.GA19217 at parabola-pocket.localdomain> >Content-Type: text/plain; charset="us-ascii" > > >thanks for the ping. >patches have been applied and packages are building. > >-A > >On Tue, Apr 17, 2018 at 07:04:31PM -0700, jc_gargma wrote: >> > I've attached git format-patches to update kinfocenter and khotkeys >to >> > 5.12.4 >> Second attempt to submit the aforementioned patches. >> >> I've also attached a git-format patch to update kio to 5.45.0 >> >> >> -jc > >> From dfe61c19f0ebaee9035232e3078fed04b5cef7ad Mon Sep 17 00:00:00 >2001 >> From: jc_gargma >> Date: Sat, 31 Mar 2018 15:31:45 -0700 >> Subject: [PATCH] Updated khotkeys to 5.12.4 >> >> --- >> libre/khotkeys/PKGBUILD | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libre/khotkeys/PKGBUILD b/libre/khotkeys/PKGBUILD >> index b29fb0b7da..271f44bb1d 100644 >> --- a/libre/khotkeys/PKGBUILD >> +++ b/libre/khotkeys/PKGBUILD >> @@ -7,7 +7,7 @@ >> # Contributor: jc_gargma >> >> pkgname=khotkeys >> -pkgver=5.12.3 >> +pkgver=5.12.4 >> pkgrel=1 >> pkgrel+=.parabola1 >> pkgdesc='KHotKeys' >> @@ -20,7 +20,7 @@ depends=(plasma-workspace) >> makedepends=(extra-cmake-modules kdoctools python kdesignerplugin) >> groups=(plasma) >> >source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig}) >> >-sha256sums=('8a8fefcc5d13e4037034c8c3fae9c8956eb2a6da2029d10fbb9c0e31af79a3eb' >> >+sha256sums=('ceb4ba8267cf1e3c772813c3288fc755dae3069cd059feeeda64c01a6f5748d2' >> 'SKIP') >> validpgpkeys=('2D1D5B0588357787DE9EE225EC94D18F7F05997E' # Jonathan >Riddell >> '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D' # Bhushan >Shah >> -- >> 2.16.3 >> > >> From fcf860914cf12e865ff48dc118e97ab2d4a4278b Mon Sep 17 00:00:00 >2001 >> From: jc_gargma >> Date: Sat, 31 Mar 2018 15:31:20 -0700 >> Subject: [PATCH] Updated kinfocenter to 5.12.4 >> >> --- >> libre/kinfocenter/PKGBUILD | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libre/kinfocenter/PKGBUILD b/libre/kinfocenter/PKGBUILD >> index 8b64ef12ea..b8349b6c1a 100644 >> --- a/libre/kinfocenter/PKGBUILD >> +++ b/libre/kinfocenter/PKGBUILD >> @@ -7,7 +7,7 @@ >> # Contributor: jc_gargma >> >> pkgname=kinfocenter >> -pkgver=5.12.3 >> +pkgver=5.12.4 >> pkgrel=1 >> pkgrel+=.parabola1 >> pkgdesc='A utility that provides information about a computer >system' >> @@ -22,7 +22,7 @@ groups=(plasma) >> >source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig} > >> >parabola-logo.svg::https://wiki.parabola.nu/images/a/af/Parabolagnu%2Blinuxlibre-dark-scalable.svg >> kcm-about-distrorc) >> >-sha256sums=('d98ff9309ba5ab7cc340b446fb5c4e12f9be07b9efc0e807ae3939467d773551' >> >+sha256sums=('436a6b36917f745ec710802bd34bc541a482802fd0753b787d9d16d5115bfe35' >> 'SKIP' >> >'75136b90185242891cbeb993285f400bcc9c6c70fdccb0f5e50790acaf875b92' >> >'9c874f9ee68dc1c46fab1255f28bdca892e664b35208220db77ab59e04617a96') >> -- >> 2.16.3 >> > >> From b66c8b3eba8409ca2bbc49f5fc5aee75e87445ea Mon Sep 17 00:00:00 >2001 >> From: jc_gargma >> Date: Tue, 17 Apr 2018 18:57:13 -0700 >> Subject: [PATCH] Updated kio to 5.45.0 >> >> --- >> libre/kio/PKGBUILD | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libre/kio/PKGBUILD b/libre/kio/PKGBUILD >> index 32918742aa..d6b14385ab 100644 >> --- a/libre/kio/PKGBUILD >> +++ b/libre/kio/PKGBUILD >> @@ -7,7 +7,7 @@ >> # Maintainer: Andreas Grapentin >> >> pkgname=kio >> -pkgver=5.44.0 >> +pkgver=5.45.0 >> pkgrel=1 >> pkgrel+=.parabola1 >> pkgdesc='Resource and network access abstraction' >> @@ -23,7 +23,7 @@ optdepends=('kio-extras: extra protocols support >(sftp, fish and more)' 'kdoctoo >> groups=(kf5) >> >source=("https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"{,.sig}) >> source+=("duckduckgo_html.desktop" "duckduckgo_lite.desktop") >> >-sha256sums=('7a8fc6f0af101c4a16270d328806fbf96ee8855e756b033d6a08ce744e7071b7' >> >+sha256sums=('3e7512e819fe1831b15981641dba26a7dcbbdbccd79cbf076ceedae8e4116b15' >> 'SKIP' >> >'31910ab7393e67609f15e04a57f6406f63e6dae58b01bce0787741bc5958f292' >> >'40466a9dad7075f2525e9e024720da7d7b49a22892b6fca8b81cc0e6408d2f7d') >> -- >> 2.17.0 >> > > > > >> _______________________________________________ >> Dev mailing list >> Dev at lists.parabola.nu >> https://lists.parabola.nu/mailman/listinfo/dev > > >-- > >------------------------------------------------------------------------------ >my GPG Public Key: >https://files.grapentin.org/.gpg/public.key >------------------------------------------------------------------------------ >-------------- next part -------------- >A non-text attachment was scrubbed... >Name: signature.asc >Type: application/pgp-signature >Size: 488 bytes >Desc: not available >URL: > > >------------------------------ > >Message: 7 >Date: Fri, 20 Apr 2018 13:12:46 -0300 >From: Megver83 >To: Parabola Mail List >Subject: [Dev] Deprecation of linux-libre-hardened for i686 and armv7h >Message-ID: <03b95c7c-d335-7ec4-e22c-38021b1a91c9 at hyperbola.info> >Content-Type: text/plain; charset="utf-8" > >I've been maintaining linux-libre-hardened for all the supported >architectures by Parabola since Arch added linux-hardened on their >official repositories for x86_64 only. However they still supported >i686 >in those times, and I didn't know why it wasn't for i686, so I just >built it for i686 and armv7 too. > >However, today I read this: >- https://github.com/archlinux32/packages/blob/master/blacklist#L8 >- >https://mirror.archlinux32.org/irc-logs/%23archlinux-ports/2017-06-28.html#04:04:01 > >The funny thing is that I knew that in >https://github.com/copperhead/linux-hardened says clearly in the >repository description: "(...) other than multiarch arm64 / x86_64 >aren't in scope (...)" but I didn't really checked the patch till now. >So yes, *it is pointless to build it for i686 and armv7h* pitifully. > >I'll remove it from our repos when linux-hardened gets the 4.16 update. >Now, for i686 and armv7h users who used this kernel have >linux-libre-xtreme and linux-libre-lts-xtreme as alternatives. > >However, although linux-libre-xtreme uses the same hardened patches >(with the difference that it has all LSMs enabled) I'll still maintain >it for i686 and armv7h but it will only have the LSMs, not the hardened >patch because of all of what I said above :P. There's more info about >at >https://wiki.parabola.nu/Xtreme >-- >~Megver83 > >SIP: megver83 at sip.linphone.org >XMPP: megver83 at jabjab.de >Tox: megver83 at toxme.io >GPG: 0x227CA7C556B2BA78 >GNUSocial: @megver82 at quitter.cl >Diaspora*: megver83 at diasp.org >Matrix: @Megver83:matrix.org > >-------------- next part -------------- >A non-text attachment was scrubbed... >Name: signature.asc >Type: application/pgp-signature >Size: 520 bytes >Desc: OpenPGP digital signature >URL: > > >------------------------------ > >Subject: Digest Footer > >_______________________________________________ >Dev mailing list >Dev at lists.parabola.nu >https://lists.parabola.nu/mailman/listinfo/dev > > >------------------------------ > >End of Dev Digest, Vol 79, Issue 10 >*********************************** -- Sent from my Android device with K-9 Mail. Please excuse my brevity. -------------- next part -------------- An HTML attachment was scrubbed... URL: From andreas at grapentin.org Mon Apr 23 06:37:54 2018 From: andreas at grapentin.org (Andreas Grapentin) Date: Mon, 23 Apr 2018 08:37:54 +0200 Subject: [Dev] automated package repository linter and backlog Message-ID: <20180423063754.GA26031@parabola-pocket.localdomain> Hi everyone, in the last few weeks / months I started running integrity checks on our package repositories such as: - checks whether one of our packages is behind in version number compared to an upstream arch package of the same name - checks whether we have packages that appear to not have a pkgbuild anymore - checks whether packages list unsupported arches in the arch array - checks whether packages in the repository are behind in version number when compared to the version specified in the pkgbuild (i.e. when the pkgbuild is updated, but the builds were not released) Note: If you are interested in having additional checks run, or have a cool idea how to improve any of the above, please let me know. Now the cool part: I am at the point where I can automate running these checks daily, creating a backlog of "repository smells" that anyone with a bit of time on their hands can take a look at. the link to the "backlog" (just an etherpad, in reality) is here: https://pad.riseup.net/p/ParabolaOutOfDate For anyone going through these, I propose the following triage approach: - if it's trivial to fix, just fix it - if it's broken, but could be fixed with a reasonable amount of work, and no issue already exists, create an issue to track it. add all the details you found out to the issue. - if it's broken beyond repair, create an issue to track it, and discuss on the mailing list (I'm afraid we have a couple of those) I might also start to track the development of the *number* of these issues in our repositories, so that we can get a feeling for how they develop (hopefully decreasing) :) Have fun, -A (oaken-source) -- ------------------------------------------------------------------------------ my GPG Public Key: https://files.grapentin.org/.gpg/public.key ------------------------------------------------------------------------------ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: From hahj87 at gmail.com Mon Apr 23 16:58:32 2018 From: hahj87 at gmail.com (Joshua Haase) Date: Mon, 23 Apr 2018 11:58:32 -0500 Subject: [Dev] Help In-Reply-To: <8F688E7E-2609-4298-9DB5-B60F34414F9E@parlementum.red> References: <8F688E7E-2609-4298-9DB5-B60F34414F9E@parlementum.red> Message-ID: <87a7tteu6f.fsf@riseup.net> CER (2018-04-22 11:30): | Help Are you ok? How can we help? -- Saludos, JH From lukeshu at lukeshu.com Mon Apr 23 19:13:38 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Mon, 23 Apr 2018 15:13:38 -0400 Subject: [Dev] Help In-Reply-To: <8F688E7E-2609-4298-9DB5-B60F34414F9E@parlementum.red> References: <8F688E7E-2609-4298-9DB5-B60F34414F9E@parlementum.red> Message-ID: <87bme9ivml.wl-lukeshu@lukeshu.com> On Sun, 22 Apr 2018 07:30:14 -0400, CER wrote: > Help > > On April 20, 2018 4:09:28 PM UTC, dev-request at lists.parabola.nu wrote: ... > or, via email, send a message with subject or body 'help' to > dev-request at lists.parabola.nu Hey encyclomundi, I'm assuming (hoping) that everything is OK, and you just mis-operated mailman. Your elsmussols.org account seems active since that email, so I don't think you're in trouble; but if you are, please tell us how we can help! I haven't seen you on #parabola in a while. I hope you're well. -- Happy hacking, ~ Luke Shumaker From megver83 at hyperbola.info Mon Apr 23 19:23:24 2018 From: megver83 at hyperbola.info (Megver83) Date: Mon, 23 Apr 2018 16:23:24 -0300 Subject: [Dev] automated package repository linter and backlog In-Reply-To: <20180423063754.GA26031@parabola-pocket.localdomain> References: <20180423063754.GA26031@parabola-pocket.localdomain> Message-ID: <5edc5ab5-ffe2-d839-6010-6aaa60bbc119@hyperbola.info> El 23/04/18 a las 03:37, Andreas Grapentin escribi?: > > Hi everyone, > > in the last few weeks / months I started running integrity checks on our > package repositories such as: > > - checks whether one of our packages is behind in version number > compared to an upstream arch package of the same name > - checks whether we have packages that appear to not have a pkgbuild > anymore > - checks whether packages list unsupported arches in the arch array > - checks whether packages in the repository are behind in version > number when compared to the version specified in the pkgbuild (i.e. > when the pkgbuild is updated, but the builds were not released) > > Note: If you are interested in having additional checks run, or have a > cool idea how to improve any of the above, please let me know. > > Now the cool part: I am at the point where I can automate running these > checks daily, creating a backlog of "repository smells" that anyone with > a bit of time on their hands can take a look at. > > the link to the "backlog" (just an etherpad, in reality) is here: > https://pad.riseup.net/p/ParabolaOutOfDate > > For anyone going through these, I propose the following triage approach: > > - if it's trivial to fix, just fix it > - if it's broken, but could be fixed with a reasonable amount of work, > and no issue already exists, create an issue to track it. add all > the details you found out to the issue. > - if it's broken beyond repair, create an issue to track it, and > discuss on the mailing list (I'm afraid we have a couple of those) > > I might also start to track the development of the *number* of these > issues in our repositories, so that we can get a feeling for how they > develop (hopefully decreasing) :) > > Have fun, > -A (oaken-source) > > > > _______________________________________________ > Dev mailing list > Dev at lists.parabola.nu > https://lists.parabola.nu/mailman/listinfo/dev > +1 -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 520 bytes Desc: OpenPGP digital signature URL: From megver83 at hyperbola.info Mon Apr 23 19:25:37 2018 From: megver83 at hyperbola.info (Megver83) Date: Mon, 23 Apr 2018 16:25:37 -0300 Subject: [Dev] Help In-Reply-To: <87bme9ivml.wl-lukeshu@lukeshu.com> References: <8F688E7E-2609-4298-9DB5-B60F34414F9E@parlementum.red> <87bme9ivml.wl-lukeshu@lukeshu.com> Message-ID: <9d60c81e-f42f-6c90-9b9f-bcf40ef8bde1@hyperbola.info> El 23/04/18 a las 16:13, Luke Shumaker escribi?: > > I haven't seen you on #parabola in a while. I hope you're well. > [16:24] pbot: when did you last see encyclomundi [16:24] I last saw encyclomundi speak 11 months ago. :-O -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 520 bytes Desc: OpenPGP digital signature URL: From lukeshu at lukeshu.com Mon Apr 23 19:37:21 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Mon, 23 Apr 2018 15:37:21 -0400 Subject: [Dev] automated package repository linter and backlog In-Reply-To: <20180423063754.GA26031@parabola-pocket.localdomain> References: <20180423063754.GA26031@parabola-pocket.localdomain> Message-ID: <87a7ttiuj2.wl-lukeshu@lukeshu.com> On Mon, 23 Apr 2018 02:37:54 -0400, Andreas Grapentin wrote: > Hi everyone, > > in the last few weeks / months I started running integrity checks on our > package repositories such as: > > - checks whether one of our packages is behind in version number > compared to an upstream arch package of the same name > - checks whether we have packages that appear to not have a pkgbuild > anymore > - checks whether packages list unsupported arches in the arch array > - checks whether packages in the repository are behind in version > number when compared to the version specified in the pkgbuild (i.e. > when the pkgbuild is updated, but the builds were not released) > > Note: If you are interested in having additional checks run, or have a > cool idea how to improve any of the above, please let me know. Each package contains a .BUILDINFO file that (among other things) has a checksum of the PKGBUILD used to build it. (eg from zlib: pkgbuild_sha256sum = 6242863dcad3ae2fe4b53376fb53f608eaac915ffdd2baf1c3207b54b8ec2522 It would be cool to have it check that the PKGBUILD in abslibre actually matches the one used to build the package. > Now the cool part: I am at the point where I can automate running these > checks daily, creating a backlog of "repository smells" that anyone with > a bit of time on their hands can take a look at. > > the link to the "backlog" (just an etherpad, in reality) is here: > https://pad.riseup.net/p/ParabolaOutOfDate Have you published the code anywhere? dbscripts already includes a number of repo checks (`cron-jobs/integrity-check`, and `db-check-*`). However, we haven't been runing these regularly in quite a while. Any interest in incorporating/integrating with them? -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Mon Apr 23 19:46:49 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Mon, 23 Apr 2018 15:46:49 -0400 Subject: [Dev] FYI, local mirrors on beefcake Message-ID: <878t9diu3a.wl-lukeshu@lukeshu.com> Hi all, For those of you doing work on beefcake, there are now local mirrors of Arch, Arch32, ALARM, and Parabola repos at /mnt/data/rsync/*/latest These update - daily (at randomized times between midnight-noon UTC (8PM-8AM EDT)) - atomicly (the possibly in-progress version is at `.../current`) There are also daily snapshots at `/mnt/data/rsync/*/YYYY-MM-DD`. So, feel free to point pacman at Server=/mnt/data/rsync/parabola/latest/$repo/os/$arch -- Happy hacking, ~ Luke Shumaker From andreas at grapentin.org Tue Apr 24 07:16:41 2018 From: andreas at grapentin.org (Andreas Grapentin) Date: Tue, 24 Apr 2018 09:16:41 +0200 Subject: [Dev] automated package repository linter and backlog In-Reply-To: <87a7ttiuj2.wl-lukeshu@lukeshu.com> References: <20180423063754.GA26031@parabola-pocket.localdomain> <87a7ttiuj2.wl-lukeshu@lukeshu.com> Message-ID: <20180424071641.GA12886@parabola-pocket.localdomain> On Mon, Apr 23, 2018 at 03:37:21PM -0400, Luke Shumaker wrote: > Each package contains a .BUILDINFO file that (among other things) has > a checksum of the PKGBUILD used to build it. (eg from zlib: > > pkgbuild_sha256sum = 6242863dcad3ae2fe4b53376fb53f608eaac915ffdd2baf1c3207b54b8ec2522 > > It would be cool to have it check that the PKGBUILD in abslibre > actually matches the one used to build the package. I was not aware of this. I agree that this would be a useful check to have; will add shortly :) > Have you published the code anywhere? Yes. The sources currently live on github: https://github.com/oaken-source/parabola-repolint However, I am going to create a repo on https://projects.parabola.nu too. > dbscripts already includes a number of repo checks > (`cron-jobs/integrity-check`, and `db-check-*`). However, we haven't > been runing these regularly in quite a while. Any interest in > incorporating/integrating with them? I haven't checked those out yet, thanks for the tip. I'm sure they will be useful. Best, -A -- ------------------------------------------------------------------------------ my GPG Public Key: https://files.grapentin.org/.gpg/public.key ------------------------------------------------------------------------------ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 484 bytes Desc: not available URL: From lukeshu at lukeshu.com Wed Apr 25 01:53:12 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Tue, 24 Apr 2018 21:53:12 -0400 Subject: [Dev] [RFC/FYI] dbscripts plan, please read Message-ID: <87y3hcgign.wl-lukeshu@lukeshu.com> TL;DR: Over the next 2 or more weeks, there will some changes in the pacman repos/dbscripts. Please keep an eye out for anything amiss, and reply in this email thread. This going smoothly depends on packager feedback if something is wrong. Hi all, There are some changes to dbscripts that I've talked about forever. They haven't happened yet because: 1. dbscripts is gross and scary 2. dbscripts is under-tested 3. Mistakes can cause critical breakage for... everyone 4. Each change seems to be blocked by a different change. Well, 1. I'm more familiar with dbscripts now than I ever have been 2. The test-suite is more complete now than it ever has been (though db-import-pkg is not tested at all) 3. I'll be really careful, including communicating changes. 4. I have a plan (this plan). This plan is small in scope, to enable the future evolution of dbscripts. Objectives: - Have db-import-pkg use db-update & db-remove, rather than manipulating the repos directly. - Have proper user-separation, instead of having everything run as repo@ Plan: 1. Change: Adjust `db-import-pkg` to have separate `UPSTREAM`s of `packages` and `community`, rather than lumping them together in the `UPSTREAM=archlinux`. Rationale: `db-update` will need to be run with different `PKGPOOL`/`SRCPOOL` settings for these cases. Timeframe: tonight/tomorrow 2. Change: Add `config.local.{parabola,packages,community,archlinux32,archlinuxarm}` files, symlink `config.local` ? `config.local.parabola`. Move `PKGREPOS`, `PKGPOOL`, `SRCPOOL` to these files. Rationale: Separate `DBSCRIPTS_CONFIG` files will need to exist to set the per-UPSTREAM `PKGPOOL`/`SRCPOOL` values. This allows us to set them in a uniform way. The `config.local` symlink allows us to preserve current behavior, for clients that don't set `DBSCRIPTS_CNFIG` Timeframe: tonight/tomorrow 3. Change: a. Create a `repo` group on repo.parabola.nu b. Change the primary group of `repo`: `users` ? `repo` c. `chgrp -R repo /srv/repo/main/` d. Ensure that the SGID bit is set on all directories in `/srv/repo/main/` Rationale: All hackers' user accounts will automatically be members of the group (per `/etc/parabola-hackers.yml`). Given the `002` umask that `db-functions` sets, write access to the repos will now be governed by membership in the `repo` NSS group, rather than restricted to the `repo` user (access to which is governed by the `repo` hackers.git group). This is a good idea, security-wise anyway; since `db-functions` runs `chmod g+w` the `.db` files, currently all local users have write access to the `.db` files. Packagers *should* then be able to adjust their `libretools.conf:REPODEST` to be `ssh://$LIBREUSER at repo.parabola.nu:1863/~/staging/` instead of `ssh://repo at repo.parabola.nu:1863/~/staging/$LIBREUSER/staging/`. This will be opt-in for a period, so that we can identify any issues before rolling the change out to all packagers. Doing user-separation for human packagers first, before doing it for db-import, allows us to limit large-scale breakage in case anything goes wrong, and ensures that a human is looking at what is going on during the initial days of it. Timeframe: tomorrow 4. Change: Adjust librerelease to set `DBSCRIPTS_CONFIG=/etc/dbscripts/config.local.parabola` Rationale: This needs to happen after the `config.local.parabola` file is created (step #1). This will allow us to eventually remove the `config.local` symlink, once all packagers have upgraded to a version of libretools that has this. Timeframe: tomorrow 5. Change: Include systemd files with dbscripts to run cron-jobs as systemd timers. Rationale: This will allow us to easily set User=, ProtectSystem=, and such, to enforce security policy, and ensure scripts are well-behaved (once we're ready for that). It will also supply complete logs in the journal, for better debugging. Timeframe: in a few days 6. Change: Rework `db-import-pkg` to set up a `db-update`-style staging directory, rather than manipulating the repos directly. At this point, `db-import-pkg` is still running as `repo`. However, set `ProtectSystem=strict`, limit it to a staging & scratch directory, and have it ssh localhost DBSCRIPTS_CONFIG=...${UPSTREAM} db-update to add/remove packages. This will involve adding an ssh key for repo. Rationale: Obviously, this is a primary objective. Using ssh+ProtectSystem allows us to ensure that the objective is met. Concern: Currently, it rsyncs against the local repo, to avoid downloading up-to-date packages. If not working in-place, it can't do that. One solution is to copy (or hardlink?) the relevant directories from "$FTP_BASE" to "$WORKDIR". Timeframe: A few days after that 7. Change: Adjust the default `libretools.conf:REPODEST` to be `ssh://$LIBREUSER at repo.parabola.nu:1863/~/staging/` instead of `ssh://repo at repo.parabola.nu:1863/~/staging/$LIBREUSER/staging/`. Rationale: This will change the user-separated `db-update` from opt-in to opt-out. DISRUPTION: This will make the default configuration unsuitable for packagers whose local username doesn't match their username in hackers.git. They will need to manually adjust their `libretools.conf:REPODEST` to have the correct username. Timeframe: at least a week from now [NB: no sooner than 2018-05-01] 8. Change: Add `db-import-{packages,community,archlinux32,archlinuxarm}` users, members of the `repo` group; have `db-import-pkg` run as them. Rationale: Mission accomplished Timeframe: at least a week after that [NB: no sooner than 2018-05-08] Bonus: If someone is willing to help, we can have a copy of the new version of `db-import-pkg` run against a shadow copy of the repos, and generate daily reports on if the new version and old version disagree. Comments? Concerns? -- Happy hacking, ~ Luke Shumaker From nobody at parabola.nu Wed Apr 25 04:01:01 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Wed, 25 Apr 2018 04:01:01 -0000 Subject: [Dev] Orphan Libre package [file-roller] marked out-of-date Message-ID: <20180425040101.9748.23209@proton.parabola.nu> hd-scania at users.sf.net wants to notify you that the following packages may be out-of-date: * file-roller 3.26.2-1.parabola1 [libre] (armv7h): https://parabolagnulinux.org/packages/libre/armv7h/file-roller/ * file-roller 3.26.2-1.parabola1 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/file-roller/ * file-roller 3.26.2-1.parabola1 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/file-roller/ The user provided the following additional text: For the amd64 arch its GPG signatures are always corrupt somewhy. From nobody at parabola.nu Wed Apr 25 04:03:45 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Wed, 25 Apr 2018 04:03:45 -0000 Subject: [Dev] Orphan Pcr-Testing package [calamares] marked out-of-date Message-ID: <20180425040345.9751.20091@proton.parabola.nu> hd-scania at users.sf.net wants to notify you that the following packages may be out-of-date: The user provided the following additional text: The package has not been touched since 30 December, but I will need this package to make Parabola mini ISO full installers for you. From nobody at parabola.nu Wed Apr 25 04:04:59 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Wed, 25 Apr 2018 04:04:59 -0000 Subject: [Dev] Orphan Pcr-Testing package [calamares] marked out-of-date Message-ID: <20180425040459.9750.33907@proton.parabola.nu> hd-scania at users.sf.net wants to notify you that the following packages may be out-of-date: The user provided the following additional text: This hasnt been touched since 30 December but I will need this to write a Parabola mini full ISO installers for you to be published at Get Parabola. From lukeshu at lukeshu.com Wed Apr 25 21:57:42 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Wed, 25 Apr 2018 17:57:42 -0400 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87y3hcgign.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> Message-ID: <87sh7jgd9l.wl-lukeshu@lukeshu.com> I've rolled out version 20180425 of Parabola dbscripts. Changes from 20180420 to 20180425: - Improve documentation - Remove old unnecessary files from the repo-maintainer days - db-import-pkg: * General tidying up * Don't touch $FTP_BASE/lastsync * Import the 'packages' pool and 'community' pool from Arch Linux separately. When deploying it to winston.parabola.nu, I updated the appropriate crontab to have 2 entries running `db-import-pkg packages` and `db-import-pkg community`, rather than a single entry running `db-import-pkg archlinux`. These 2 entries both run at the same time as the original combined entry (the archlinuxarm and archlinux23 jobs are staggered 8 minutes each). $ sudo pacman -Sy $ sudo pacman -S --needed dbscripts $ # edit crontab for repo@ I've verified that `db-import-pkg packages` and `db-import-pkg archlinuxarm` both run without error (establishing that neither code-path broke). This implements step 1 of my plan for improving dbscripts. When doing that, I noticed that it's been a long time since an -Syu, and there were already some problems making a clean -Syu without intervention impossible. Here's what I did: $ sudo pacman -S --force config-box-base $ # Use etckeeper to verify that nothing except for $ # /etc/.intalled-packages.txt changed $ sudo pacman -Su --ignore={python-pyspf,libxfont,xorgproto} config-mgmt-nshd-local $ # accept default answer to all questions At this point, I observed a few errors from Holo: 1. `/var/lib/holo/provisioned/etc/locale.gen` was missing. I manually created it. 2. The Nginx mime.types holoscript seems to be broken: Working on file:/etc/nginx/mime.types store at /var/lib/holo/files/base/etc/nginx/mime.types passthru /usr/share/holo/files/10-config-mgmt-nginx/etc/nginx/mime.types.holoscript sed: -e expression #1, char 0: unmatched `{' There are quite a few .pacnew files, deal with some of them: $ sudo pacman -S config-base-openresolv $ sudo rm /etc/resolv.conf.pacnew /etc/fstab.pacnew Next steps: - Resolve remaining `.pacnew` files, possibly with Holo - Try running -Syu again - dbscripts: Proceed to add config.local.* files in step 2 of the plan. These next steps should be happening in the next day or two. -- Happy hacking, ~ Luke Shumaker From megver83 at hyperbola.info Thu Apr 26 15:35:32 2018 From: megver83 at hyperbola.info (Megver83) Date: Thu, 26 Apr 2018 12:35:32 -0300 Subject: [Dev] Test Message-ID: <23b662ad-df88-6054-346f-65f873f9afb2@hyperbola.info> This is just a test, ignore this message -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org From lukeshu at lukeshu.com Thu Apr 26 15:34:07 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Thu, 26 Apr 2018 11:34:07 -0400 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87sh7jgd9l.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> <87sh7jgd9l.wl-lukeshu@lukeshu.com> Message-ID: <87po2mgexc.wl-lukeshu@lukeshu.com> On Wed, 25 Apr 2018 17:57:42 -0400, Luke Shumaker wrote: > $ sudo pacman -Su --ignore={python-pyspf,libxfont,xorgproto} config-mgmt-nshd-local > $ # accept default answer to all questions This updated /etc/ssh/sshd_config to include a new cipher that the old sshd didn't know about. So then the running sshd stopped accepting new connections. Even to emergency@ (good thing this happened on winston, not proton!). Thanks to Megver83 for alerting me that something was amiss. Restarting sshd.service fixed this. (While doing so, I noticed that systemd-timesyncd had failed, which will come up later). However, after verifying that it worked, I decided to do a reboot, in case there were any other similar issues. That was a mistake; it failed to come back up correctly. At least I could get in to emergency@ this time. 1. nshd was failing to start, which meant user accounts were unavailable. 2. systemd-timesyncd was failing to start, which blocked time-sync.target, which blocked quite a bit of the system. I decided to address nshd first. It was complaining that the 'groups' field for several (all?) users was not an array. I realized that it was a bug I'd fixed before[1], but had apparently not done a release after. [1]: https://git.parabola.nu/packages/parabola-hackers.git/commit/?id=1a64603645e894fd2c886a02876762bee0b208a7 So I tried to do a new release of parabola-hackers, but ended up spending a whole bunch of time fighting with subtle issues related to building it with go 1.10. Also, it wouldn't build on i686, which I'll eventually have to deal with. So, having access to lukeshu@ again, I moved on to look in to systemd-timesyncd. It seems that systemd-timesyncd-wrap (running as the systemd-timesync user) needed write permission to /run/timesyncd, which was owned by root. IDK what changed to break it, yet. I chowned the directory, and restarted the service. So this fix is only until next reboot. -- Happy hacking, ~ Luke Shumaker From megver83 at hyperbola.info Thu Apr 26 16:00:53 2018 From: megver83 at hyperbola.info (Megver83) Date: Thu, 26 Apr 2018 13:00:53 -0300 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87po2mgexc.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> <87sh7jgd9l.wl-lukeshu@lukeshu.com> <87po2mgexc.wl-lukeshu@lukeshu.com> Message-ID: <12358f41-f2ff-9fca-b572-0a41448e850e@hyperbola.info> El 26/04/18 a las 12:34, Luke Shumaker escribi?: > On Wed, 25 Apr 2018 17:57:42 -0400, > Luke Shumaker wrote: >> $ sudo pacman -Su --ignore={python-pyspf,libxfont,xorgproto} config-mgmt-nshd-local >> $ # accept default answer to all questions > > This updated /etc/ssh/sshd_config to include a new cipher that the old > sshd didn't know about. So then the running sshd stopped accepting > new connections. Even to emergency@ (good thing this happened on > winston, not proton!). Thanks to Megver83 for alerting me that > something was amiss. > Well, good that I realized right when I wanted to clone hackers.git (coincidence? who knows!) -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 520 bytes Desc: OpenPGP digital signature URL: From lukeshu at lukeshu.com Thu Apr 26 18:17:23 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Thu, 26 Apr 2018 14:17:23 -0400 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87po2mgexc.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> <87sh7jgd9l.wl-lukeshu@lukeshu.com> <87po2mgexc.wl-lukeshu@lukeshu.com> Message-ID: <87muxphlxo.wl-lukeshu@lukeshu.com> On Thu, 26 Apr 2018 11:34:07 -0400, Luke Shumaker wrote: > ................................... (While doing so, I noticed that > systemd-timesyncd had failed, which will come up later). ... > 2. systemd-timesyncd was failing to start, which blocked > time-sync.target, which blocked quite a bit of the system. ... > So, having access to lukeshu@ again, I moved on to look in to > systemd-timesyncd. It seems that systemd-timesyncd-wrap (running as > the systemd-timesync user) needed write permission to /run/timesyncd, > which was owned by root. IDK what changed to break it, yet. I > chowned the directory, and restarted the service. So this fix is only > until next reboot. I don't know why it initially failed before the reboot. But after the reboot, the breaking change was that in systemd-235 it changed to start as systemd-timesync with capabilities, rather than start as root and switch users. I've pushed a new version of ~lukeshu/systemd-timesyncd-wait-git to fix this. Starting with systemd 239, it will include systemd-time-wait-sync.service, which will replace my systemd-timesyncd-wait.service. So there will need to be manual intervention when that upgrade comes around. -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Thu Apr 26 19:41:46 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Thu, 26 Apr 2018 15:41:46 -0400 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87sh7jgd9l.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> <87sh7jgd9l.wl-lukeshu@lukeshu.com> Message-ID: <87k1sthi11.wl-lukeshu@lukeshu.com> On Wed, 25 Apr 2018 17:57:42 -0400, Luke Shumaker wrote: > 2. The Nginx mime.types holoscript seems to be broken: > > Working on file:/etc/nginx/mime.types > store at /var/lib/holo/files/base/etc/nginx/mime.types > passthru /usr/share/holo/files/10-config-mgmt-nginx/etc/nginx/mime.types.holoscript > > sed: -e expression #1, char 0: unmatched `{' This ended up messing up Content-Types served by nginx, so CSS files were ignored. The relevant file extensions now exist in the default mime.types; I've pushed a new config-mgmt-nginx with mime.types.holoscript removed. -- Happy hacking, ~ Luke Shumaker From megver83 at hyperbola.info Thu Apr 26 20:39:37 2018 From: megver83 at hyperbola.info (Megver83) Date: Thu, 26 Apr 2018 17:39:37 -0300 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87k1sthi11.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> <87sh7jgd9l.wl-lukeshu@lukeshu.com> <87k1sthi11.wl-lukeshu@lukeshu.com> Message-ID: <04104361-90d5-49f1-ffa4-89fa12990ed3@hyperbola.info> El 26/04/18 a las 16:41, Luke Shumaker escribi?: > On Wed, 25 Apr 2018 17:57:42 -0400, > Luke Shumaker wrote: >> 2. The Nginx mime.types holoscript seems to be broken: >> >> Working on file:/etc/nginx/mime.types >> store at /var/lib/holo/files/base/etc/nginx/mime.types >> passthru /usr/share/holo/files/10-config-mgmt-nginx/etc/nginx/mime.types.holoscript >> >> sed: -e expression #1, char 0: unmatched `{' > > This ended up messing up Content-Types served by nginx, so CSS files > were ignored. The relevant file extensions now exist in the default > mime.types; I've pushed a new config-mgmt-nginx with > mime.types.holoscript removed. > Great :) -- ~Megver83 SIP: megver83 at sip.linphone.org XMPP: megver83 at jabjab.de Tox: megver83 at toxme.io GPG: 0x227CA7C556B2BA78 GNUSocial: @megver82 at quitter.cl Diaspora*: megver83 at diasp.org Matrix: @Megver83:matrix.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 520 bytes Desc: OpenPGP digital signature URL: From nobody at parabola.nu Fri Apr 27 12:50:16 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Fri, 27 Apr 2018 12:50:16 -0000 Subject: [Dev] Orphan Libre package [tp_smapi] marked out-of-date Message-ID: <20180427125016.9750.99033@proton.parabola.nu> reg+parabola at disroot.org wants to notify you that the following packages may be out-of-date: * tp_smapi 0.43-5.parabola1.basekernel4.15 [libre] (i686): https://parabolagnulinux.org/packages/libre/i686/tp_smapi/ * tp_smapi 0.43-5.parabola1.basekernel4.15 [libre] (x86_64): https://parabolagnulinux.org/packages/libre/x86_64/tp_smapi/ The user provided the following additional text: See https://www.archlinux.org/packages/community/x86_64/tp_smapi/ From lukeshu at lukeshu.com Sat Apr 28 05:44:15 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Sat, 28 Apr 2018 01:44:15 -0400 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87sh7jgd9l.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> <87sh7jgd9l.wl-lukeshu@lukeshu.com> Message-ID: <87efizhols.wl-lukeshu@lukeshu.com> On Wed, 25 Apr 2018 17:57:42 -0400, Luke Shumaker wrote: > When deploying it to winston.parabola.nu, I updated the appropriate > crontab to have 2 entries running `db-import-pkg packages` and > `db-import-pkg community`, rather than a single entry running > `db-import-pkg archlinux`. These 2 entries both run at the same time > as the original combined entry (the archlinuxarm and archlinux23 jobs > are staggered 8 minutes each). I must have been tired when I wrote that, I mixed up the first 2 columns in crontab: the other jobs are staggered by 8 *hours*. -- Happy hacking, ~ Luke Shumaker From bill-auger at peers.community Sat Apr 28 10:07:32 2018 From: bill-auger at peers.community (bill-auger) Date: Sat, 28 Apr 2018 06:07:32 -0400 Subject: [Dev] redmine update Message-ID: as some may have noticed, ive tweaked the redmine site a bit this week and brought it's code up to date with the latest upstream release - it was a number of years worth of commits added so watch for problems redmine is now forked onto parabola git server if anyone want to fiddle with it - it was apparently running from an unstable git branch on github that no longer exists - it is now running from the 'parabola' branch; which is the latest tagged release '3.4-stable' with the parabola customizations rebased onto it it seems that normal users had a bit too much privilege such as the ability to re-assign issues - i went through the permissions matrix thoroughly and set all groups to something reasonable - "hacker" and "community" have full permissions on all trackers and normal users now are able only to open and close their own issues and comment on others one other small functional change is that only the "assignee" is able to mark an issue as "fixed" - but still any "hacker" or "community" can mark them as "invalid" i also added handy "my issues" and "all recent issues" links to the navbar and a more informative landing page to replace the less than informative completely empty one that was there (or not there) we may want to discuss the re-assigning of roles "hacker" and "community" - these are currently nearly the same set but not exactly; and many in the set are not officially active according to hackers.git - maybe inactive former devs should be moved to community even if the permissions are currently the same - one very practical reason to do that would be so that the issues assignment select options would not be so un-necessarily populous - have different permissions sets may be something else to discuss finally, the rails log file is 6.5 GB - it may be wise to delete this - should it be backed up first? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: This is a digitally signed message part URL: From bill-auger at peers.community Sat Apr 28 10:15:19 2018 From: bill-auger at peers.community (bill-auger) Date: Sat, 28 Apr 2018 06:15:19 -0400 Subject: [Dev] recent increase in issue tracker users Message-ID: i discovered an interesting statistic of note while in the rails console for redmine according to the roster, parabola (or at least the parabola issue tracker) has had a massive increase in users within the past year the records go back to 2013 - four years later, in january 2017 there were about 300 registered users on the bug tracker - now there are over 1100 this is of course nothing definitive - one can speculate anything among: * parabola has 4 times more users today than a year ago * parabola has 4 times more bugs today than a year ago * parabola has 4 times more spambots on the tracker than a year ago that works out to about 15 new users per week - but we do not see that many new users posting every week - so perhaps: * namy people register on the tracker but do not post * namy spambots register on the tracker but have not yet learned how to post whatever factors are involved, it is remarkable -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: This is a digitally signed message part URL: From fauno at endefensadelsl.org Sat Apr 28 15:04:16 2018 From: fauno at endefensadelsl.org (fauno) Date: Sat, 28 Apr 2018 12:04:16 -0300 Subject: [Dev] redmine update In-Reply-To: References: Message-ID: <87d0yjnzin.fsf@endefensadelsl.org> bill-auger writes: > as some may have noticed, ive tweaked the redmine site a bit this week > and brought it's code up to date with the latest upstream release - it > was a number of years worth of commits added so watch for problems > > redmine is now forked onto parabola git server if anyone want to fiddle > with it - it was apparently running from an unstable git branch on > github that no longer exists - it is now running from the 'parabola' > branch; which is the latest tagged release '3.4-stable' with the > parabola customizations rebased onto it great, thanks! > it seems that normal users had a bit too much privilege such as the > ability to re-assign issues - i went through the permissions matrix > thoroughly and set all groups to something reasonable - "hacker" and > "community" have full permissions on all trackers and normal users now > are able only to open and close their own issues and comment on others > > one other small functional change is that only the "assignee" is able > to mark an issue as "fixed" - but still any "hacker" or "community" can > mark them as "invalid" > > i also added handy "my issues" and "all recent issues" links to the > navbar and a more informative landing page to replace the less than > informative completely empty one that was there (or not there) > > we may want to discuss the re-assigning of roles "hacker" and > "community" - these are currently nearly the same set but not exactly; > and many in the set are not officially active according to hackers.git > - maybe inactive former devs should be moved to community even if the > permissions are currently the same - one very practical reason to do > that would be so that the issues assignment select options would not be > so un-necessarily populous - have different permissions sets may be > something else to discuss this is a political decision we made back in the beginning of parabola (the archive of that mailing list should be somewhere in our backups?): parabola is a democratic project, so there's no special privileges for hackers other than being able to push work into server, but decisions should be made with the community (aka this list and perhaps the irc channel). so iirc, when we set up redmine (after passing by 2 or 3 issue trackers that were ridiculously more difficult to use than redmine), those two roles followed along. > finally, the rails log file is 6.5 GB - it may be wise to delete this - > should it be backed up first? maybe put a logrotate conf to it? i don't think it's needed anyway -- }(:= -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 617 bytes Desc: not available URL: From lukeshu at lukeshu.com Sat Apr 28 15:10:36 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Sat, 28 Apr 2018 11:10:36 -0400 Subject: [Dev] libretools 20180428 release announcement Message-ID: <87d0yjgydv.wl-lukeshu@lukeshu.com> I just released libretools 20180428 to [libre] and pushed the source tarball to . This is essentially a bugfix release. Changes from 20180327 to 20180428: - Features/additions: * conf.sh:load_conf: Optionally take an absolute filepath, instead of a slug. If an absolute filepath is given, no environmental overrides are used. * Complete Spanish localization (Thanks Megver83!) - Bugfixes: * messages.sh:setup_traps: Avoid leaking a global variable * blacklist.sh:blacklist-update: Is now safe to run in parallel; previously running it twice at the same time would cause an error. -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Sat Apr 28 15:18:23 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Sat, 28 Apr 2018 11:18:23 -0400 Subject: [Dev] [Maintenance] Cron chronic bash -c 'db-import-pkg community 2>&1' In-Reply-To: <20180428001302.BA0CBFB81F4@winston.parabola.nu> References: <20180428001302.BA0CBFB81F4@winston.parabola.nu> Message-ID: <87bme3gy0w.wl-lukeshu@lukeshu.com> On Fri, 27 Apr 2018 20:13:02 -0400, (Cron Daemon) wrote: > > ==> Downloading blacklist of proprietary software packages...done > mv: cannot stat '/home/repo/.cache/libretools/blacklist.txt.part': No such file or directory > > ==> ERROR: An unknown error has occurred. Exiting... > /usr/bin/bash: line 1: 24278 User defined signal 1 db-import-pkg community 2>&1 This is a bug in librebacklist not being safe to run in parallel. https://labs.parabola.nu/issues/1768 It has been fixed in libretools 20180428, which I have deployed to winston. -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Sat Apr 28 15:21:05 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Sat, 28 Apr 2018 11:21:05 -0400 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87efizhols.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> <87sh7jgd9l.wl-lukeshu@lukeshu.com> <87efizhols.wl-lukeshu@lukeshu.com> Message-ID: <87a7tngxwe.wl-lukeshu@lukeshu.com> On Sat, 28 Apr 2018 01:44:15 -0400, Luke Shumaker wrote: > On Wed, 25 Apr 2018 17:57:42 -0400, > Luke Shumaker wrote: > > When deploying it to winston.parabola.nu, I updated the appropriate > > crontab to have 2 entries running `db-import-pkg packages` and > > `db-import-pkg community`, rather than a single entry running > > `db-import-pkg archlinux`. These 2 entries both run at the same time > > as the original combined entry (the archlinuxarm and archlinux23 jobs > > are staggered 8 minutes each). > > I must have been tired when I wrote that, I mixed up the first 2 > columns in crontab: the other jobs are staggered by 8 *hours*. Knowing that db-import-pkg hardcodes more than it should with temporary file names, I've adjusted `db-import-pkg community` to run 4 hours after `packages`. Just in case. -- Happy hacking ~ Luke Shumaker From nobody at parabola.nu Sun Apr 29 00:13:52 2018 From: nobody at parabola.nu (Parabola Website Notification) Date: Sun, 29 Apr 2018 00:13:52 -0000 Subject: [Dev] Orphan Pcr package [riscv64-linux-gnu-linux-libre-api-headers] marked out-of-date Message-ID: <20180429001352.9751.39103@proton.parabola.nu> megver83 at parabola.nu wants to notify you that the following packages may be out-of-date: * riscv64-linux-gnu-linux-libre-api-headers 4.15_gnu-1 [pcr] (any): https://parabolagnulinux.org/packages/pcr/any/riscv64-linux-gnu-linux-libre-api-headers/ The user provided the following additional text: Version 4.16 is the latest stable generation and 4.15 reached its EOL From bill-auger at peers.community Sun Apr 29 09:57:49 2018 From: bill-auger at peers.community (bill-auger) Date: Sun, 29 Apr 2018 05:57:49 -0400 Subject: [Dev] redmine update In-Reply-To: <87d0yjnzin.fsf@endefensadelsl.org> References: <87d0yjnzin.fsf@endefensadelsl.org> Message-ID: <98b3728bc04d4809b5f4c035b21baf4925a3e6bd.camel@peers.community> On Sat, 2018-04-28 at 12:04 -0300, fauno wrote: > this is a political decision we made back in the beginning of > parabola > parabola is a democratic project, so there's no special privileges > for > hackers other than being able to push work into server, but decisions > should be made with the community ok that sounds reasonable - i still suggest that the membership in each group be made exclusive - there is no reason for anyone to be in both groups; and as the membership is nearly the same set currently, there is no reason to have two groups - even if the permissions on redmine are identical, the one useful effect could be that issues can only be assigned to "hackers" - as it is now, the dropdown select options for assigning an issue is so long it needs it's own scrollbar; when it is probably only a handful that will ever have issues assigned to them On Sat, 2018-04-28 at 12:04 -0300, fauno wrote: > maybe put a logrotate conf to it? i don't think it's needed anyway the rails log is really not needed at all in production unless rails is the main server - nginx logs all requests anyways - there is some useful diagnostics in them but it is nothing that would need to be archived - beyond that, it is just extreme verbosity - it actually contains every word ever posted to any issue - all with complete metadata for every request and response going back four years yes every typo, redaction, deleted issue - if any of this history is interesting to anyone please do say so now - weighing in at 2 GB per year, this is a great candidate for logrotate -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: This is a digitally signed message part URL: From lukeshu at lukeshu.com Sun Apr 29 19:05:42 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Sun, 29 Apr 2018 15:05:42 -0400 Subject: [Dev] dbscripts 2018425 / winston.parabola.nu upgrade In-Reply-To: <87y3hcgign.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> Message-ID: <8736zdhlyx.wl-lukeshu@lukeshu.com> I've rolled out version 20180429 of Parabola dbscripts. Changes from 20180425 to 20180429: - config: * Move Parabola PKGREPOS, PKGPOOL, and SRCPOOL values to config.local - db-import-pkg: * Set `umask 002` when working on .db/.files database files; same as db-functions This implements step 2, and prepares for step 3 of my plan for improving dbscripts. We're a bit behind schedule on that plan because step 1 went about as poorly as can possibly be imagined. Step 3 involves changing permissions of many files. To make sure that everything goes smoothly, I'm auditing to make sure that the file permissions actually currently are what I expect them to be. Adjusting the umask in db-import-pkg should mean that more of the files match expectations. -- Happy hacking, ~ Luke Shumaker From lukeshu at lukeshu.com Mon Apr 30 03:15:26 2018 From: lukeshu at lukeshu.com (Luke Shumaker) Date: Sun, 29 Apr 2018 23:15:26 -0400 Subject: [Dev] dbscripts 2018425.1 / winston.parabola.nu upgrade In-Reply-To: <87y3hcgign.wl-lukeshu@lukeshu.com> References: <87y3hcgign.wl-lukeshu@lukeshu.com> Message-ID: <87wowpfkq9.wl-lukeshu@lukeshu.com> I've rolled out version 20180429.1 of Parabola dbscripts. Changes from 20180429 to 20180429.1: - db-import-pkg: * Don't shove files directly in /tmp, put them in $WORKDIR * Log full output from `repo-add` * Add systemd timers to run cron jobs On winston.parabola.nu, I have - Upgraded the package - Commented out repo@'s entire crontab - Enabled the now-included systemd timers This implements step 5 of my pan for improving dbscripts. I have bumped step 5 ahead of steps 3 & 4 because it entails better logging, which is very helpful in working through issue #1770 . [X] 1. Split archlinux -> {packages,community} [X] 2. Add config.local.* files [-] 3. Set up the `repo` group [eta: 2018-05-02] [ ] 4. Set DBSCRIPTS_CONFIG [eta: 2018-05-02] [X] 5. Use systemd timers [ ] 6. Use db-update [eta: 2018-05-04] [ ] 7. Migrate humans off of repo@ [eta: no sooner than 2018-05-05] [ ] 8. Migrate robots off of repo@ [eta: no sooner than 2018-05-12] I do not believe that issue #1770 is related to the changes made in step 1, but I am not sure of that. -- Happy hacking, ~ Luke Shumaker From GNUtoo at no-log.org Mon Apr 30 12:54:43 2018 From: GNUtoo at no-log.org (Denis 'GNUtoo' Carikli) Date: Mon, 30 Apr 2018 14:54:43 +0200 Subject: [Dev] Rework of the ARM installation guide Message-ID: <20180430145347.37c0c50b@second-laptop.localdomain> Hi, I'm in the process of reworking the ARM installation guide to be more generic and way easier. This can be done because we now have tarball installer releases. I've an issue that makes the installation not enough user friendly yet: the tarball root and parabola accounts have a password. Is it a bug or is it intended? More specifically: - Is the password known? - Are users expected to change the password before booting on it? I think it would be better not to have the root account without passwords, like on the x86 installer. References: ----------- [1]https://wiki.parabola.nu/ARM_Installation_Guide Denis. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: From bill-auger at peers.community Mon Apr 30 13:12:22 2018 From: bill-auger at peers.community (bill-auger) Date: Mon, 30 Apr 2018 09:12:22 -0400 Subject: [Dev] Rework of the ARM installation guide In-Reply-To: <20180430145347.37c0c50b@second-laptop.localdomain> References: <20180430145347.37c0c50b@second-laptop.localdomain> Message-ID: <98832134e3d57fbde3fe7295da0483f6b518df92.camel@peers.community> On Mon, 2018-04-30 at 14:54 +0200, Denis 'GNUtoo' Carikli wrote: > I think it would be better not to have the root account without > passwords, like on the x86 installer. one thing i can say is that there is one key difference from the other "installers" - in that the ARM tarball is technically not an installer nor a "live" environment = it is "the" pre-configured permanent target environment to be cloned "as-is"; so it should be configured generically, and as closely as possible to a clean chroot install - that is, with a single root user with password-required login for the classic bare-bones CLI system - i would add an unprivileged 'parabola' user only if the system boots into a graphical environment; in which case it should also have a DM and a CLI-only fallback boot option - still both users should have password-required login - i have not used it, but this sounds like what you are describing - just add to the wiki page what the default passwords are and the the instruction to change them immediately after install -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: This is a digitally signed message part URL: From GNUtoo at no-log.org Mon Apr 30 22:28:38 2018 From: GNUtoo at no-log.org (Denis 'GNUtoo' Carikli) Date: Tue, 1 May 2018 00:28:38 +0200 Subject: [Dev] Rework of the ARM installation guide In-Reply-To: <98832134e3d57fbde3fe7295da0483f6b518df92.camel@peers.community> References: <20180430145347.37c0c50b@second-laptop.localdomain> <98832134e3d57fbde3fe7295da0483f6b518df92.camel@peers.community> Message-ID: <20180501002838.63cbdcb3@second-laptop.localdomain> On Mon, 30 Apr 2018 09:12:22 -0400 bill-auger wrote: > On Mon, 2018-04-30 at 14:54 +0200, Denis 'GNUtoo' Carikli wrote: > > I think it would be better not to have the root account without > > passwords, like on the x86 installer. > > one thing i can say is that there is one key difference from the other > "installers" - in that the ARM tarball is technically not an installer > nor a "live" environment = it is "the" pre-configured permanent target > environment to be cloned "as-is"; so it should be configured > generically, and as closely as possible to a clean chroot install - Why was this approach taken? Is it because there is often only one storage device (a microSD) which cannot act as an installer/live system and the system being installed at the same time? There is a way to handle that if the microSD is big enough and the partitions well dimensioned, but as everything it has pros and cons: 1) you create an u-boot compatible ext4 partition to hold the installer rootfs at the end of the microSD 2) you extract the installer there, and chroot inside it, install the bootloader on the microSD and boot on it. 3) Once booted in the installer you can partition the beginning of the microSD for the final installation. For instance if you want simplicity you could create an u-boot compatible ext4 rootfs. Else you could create a /boot and a second partition as LVM. 4) You install Parabola as usual with pacstrap 5) You make sure to configure the bootloader configuration file to boot on the final installation. extlinux.conf makes it easy to have both in the config file. 6) You reboot, it will reboot on the final installation. 7) Since the installer is at the end of the microSD, you can repartitionate with fdisk/gdisk, and remove the partition. Then you just delete the last remaining partition and recreate it until the end. Then you resize the filesystem (or LVM) 'online'. Caveats: - it's more fragile because you have to reboot on the final installation, but if you have extlinux.conf that's doable without much trouble and robust enough in my opinion. - The partition must be properly dimensioned Advantage: - The resulting installation more clean - You can use whatever partioning scheme you want (like LVM or encryption for instance) Another way to do it would be to chroot inside the installer from an x86 computer and do the installation on the microSD from the chroot. I did most of my Parabola ARM installations through 'online' repartitioning described here. Denis. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: From lovell.joshyyy at gmail.com Mon Apr 30 22:38:59 2018 From: lovell.joshyyy at gmail.com (Josh Branning) Date: Mon, 30 Apr 2018 23:38:59 +0100 Subject: [Dev] Rework of the ARM installation guide In-Reply-To: <20180430145347.37c0c50b@second-laptop.localdomain> References: <20180430145347.37c0c50b@second-laptop.localdomain> Message-ID: <5AE79B03.7050905@gmail.com> On 30/04/18 13:54, Denis 'GNUtoo' Carikli wrote: > This can be done because we now have > tarball installer releases. That is awesome! Was pushing for this! A* Is it just the rootfs or u-boot too? ... If u-boot also, is it just all the u-boot packages installed? I don't quite comprehend.