WARN: project from a retired committee but PMC not changed to Attic in http://svn.apache.org/repos/asf/ode/trunk/doap_ODE.rdf

2019-10-13 Thread Projects


WARN: project in Attic but not in 'retired' category: http://svn.apache.org/repos/asf/ode/trunk/doap_ODE.rdf

2019-10-13 Thread Projects


[arch-projects] [mkinitcpio] [GIT] The official mkinitcpio repository branch master updated. 25-19-g9ae6b1f

2019-10-06 Thread Giancarlo Razzolini via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official mkinitcpio repository".

The branch, master has been updated
   via  9ae6b1f928ef11e277437740908871ab535b655d (commit)
   via  51a8337b6c461ac29710664ed084c99f57c4118a (commit)
   via  f1e756f78d0e87d422abe6b3bcd5bff61442cc2b (commit)
  from  6b7427861b923560c10184ba92df2e7cc13ac258 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 9ae6b1f928ef11e277437740908871ab535b655d
Merge: 6b74278 51a8337
Author: Giancarlo Razzolini 
Date:   Mon Oct 7 00:14:43 2019 -0300

Merge branch 'fix-hookdir-flag'

Added the hookdir flag to the parser and also added it to the completions.

commit 51a8337b6c461ac29710664ed084c99f57c4118a
Author: Giancarlo Razzolini 
Date:   Sun Oct 6 23:50:25 2019 -0300

Add the hookdir option to both bash and zsh completion files

commit f1e756f78d0e87d422abe6b3bcd5bff61442cc2b
Author: Giancarlo Razzolini 
Date:   Sun Oct 6 23:39:04 2019 -0300

Split the hookdir var creation and also add the hookdir option to the 
optparser.

---

Summary of changes:
 mkinitcpio| 7 ---
 shell/bash-completion | 4 ++--
 shell/zsh-completion  | 1 +
 3 files changed, 7 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
The official mkinitcpio repository


[arch-projects] [mkinitcpio] [GIT] The official mkinitcpio repository branch master updated. 25-16-g6b74278

2019-10-06 Thread Giancarlo Razzolini via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official mkinitcpio repository".

The branch, master has been updated
   via  6b7427861b923560c10184ba92df2e7cc13ac258 (commit)
  from  a6d0e51cee697d311bb57dd2023b9e148a228a4e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 6b7427861b923560c10184ba92df2e7cc13ac258
Author: Giancarlo Razzolini 
Date:   Sun Oct 6 23:09:10 2019 -0300

Add initramfs to provides=() in the PKGBUILD

---

Summary of changes:
 PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


hooks/post-receive
-- 
The official mkinitcpio repository


[arch-projects] [mkinitcpio] [GIT] The official mkinitcpio repository branch master updated. 25-15-ga6d0e51

2019-10-06 Thread Giancarlo Razzolini via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official mkinitcpio repository".

The branch, master has been updated
   via  a6d0e51cee697d311bb57dd2023b9e148a228a4e (commit)
  from  f61dc88b9bfdc59f9f3720a1f0c938ed4a2f14db (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit a6d0e51cee697d311bb57dd2023b9e148a228a4e
Author: Giancarlo Razzolini 
Date:   Sun Oct 6 23:01:39 2019 -0300

Change the PKGBUILD to use $startdir

---

Summary of changes:
 PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


hooks/post-receive
-- 
The official mkinitcpio repository


[arch-projects] [mkinitcpio] [GIT] The official mkinitcpio repository branch master updated. 25-14-gf61dc88

2019-10-04 Thread Giancarlo Razzolini via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official mkinitcpio repository".

The branch, master has been updated
   via  f61dc88b9bfdc59f9f3720a1f0c938ed4a2f14db (commit)
   via  1dde014bf78f075ecea96a880aeaa68ec8f13268 (commit)
   via  814dd9df251267c2e48d4a30bb3a192329e7f2ab (commit)
  from  b43739e39d9287baaec131f176a350736bffda4d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit f61dc88b9bfdc59f9f3720a1f0c938ed4a2f14db
Merge: b43739e 1dde014
Author: Giancarlo Razzolini 
Date:   Fri Oct 4 14:44:00 2019 -0300

Merge branch 'falconindy-master'

commit 1dde014bf78f075ecea96a880aeaa68ec8f13268
Merge: b43739e 814dd9d
Author: Giancarlo Razzolini 
Date:   Fri Oct 4 14:38:41 2019 -0300

Merge branch 'master' of https://github.com/falconindy/mkinitcpio into 
falconindy-master

commit 814dd9df251267c2e48d4a30bb3a192329e7f2ab
Author: Dave Reisner 
Date:   Sun Sep 15 08:10:36 2019 -0400

consolidate error reporting within generation pipeline

---

Summary of changes:
 mkinitcpio | 28 +---
 1 file changed, 13 insertions(+), 15 deletions(-)


hooks/post-receive
-- 
The official mkinitcpio repository


[arch-projects] [mkinitcpio] [GIT] The official mkinitcpio repository branch master updated. 25-11-gb43739e

2019-10-04 Thread Giancarlo Razzolini via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official mkinitcpio repository".

The branch, master has been updated
  discards  bc41c8b3c51263e52ff21f5ff52fce5c778a35d9 (commit)
   via  b43739e39d9287baaec131f176a350736bffda4d (commit)
   via  60713cf838baeaa59b71788aaa0fb421b0ecbcd5 (commit)
   via  7984722e127d411d2c978eaa9665709b4a681485 (commit)
   via  001a0559cd52d2ab600e31d192198062021e8898 (commit)
   via  66ab66ebccfc66a8d3afd6f331b4548f6cd973a7 (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (bc41c8b3c51263e52ff21f5ff52fce5c778a35d9)
\
 N -- N -- N (b43739e39d9287baaec131f176a350736bffda4d)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit b43739e39d9287baaec131f176a350736bffda4d
Merge: 06bc15f 60713cf
Author: Giancarlo Razzolini 
Date:   Fri Oct 4 14:30:03 2019 -0300

Merge branch 'Foxboron-morten/hookdir-flag'

commit 60713cf838baeaa59b71788aaa0fb421b0ecbcd5
Author: Giancarlo Razzolini 
Date:   Fri Oct 4 14:28:08 2019 -0300

* Fix whitespace

commit 7984722e127d411d2c978eaa9665709b4a681485
Author: Morten Linderud 
Date:   Tue Sep 17 21:42:02 2019 +0200

[mkinitcpio] Fixup declaration and remove trailing :

commit 001a0559cd52d2ab600e31d192198062021e8898
Author: Morten Linderud 
Date:   Tue Sep 17 20:01:28 2019 +0200

[mkinitcpio] Support multiple hook paths

commit 66ab66ebccfc66a8d3afd6f331b4548f6cd973a7
Author: Morten Linderud 
Date:   Tue Sep 10 22:54:25 2019 +0200

Add flag to specify where to look for hooks.

---

Summary of changes:
 man/mkinitcpio.8.txt |  5 -
 mkinitcpio   | 12 
 2 files changed, 16 insertions(+), 1 deletion(-)


hooks/post-receive
-- 
The official mkinitcpio repository


[arch-projects] [devtools] [GIT] The official devtools repository branch bpiotrowski/debug deleted. 20171108-13-g73b9f7b

2019-09-28 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, bpiotrowski/debug has been deleted
   was  73b9f7bfccf277e45f921920cc53d1cfb1331ca7

- Log -
73b9f7bfccf277e45f921920cc53d1cfb1331ca7 commitpkg: Use printf format strings 
for messages about debug packages
---


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20190912-10-g74f65db

2019-09-27 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  74f65db396038caafcba20e4302fba080d8cc100 (commit)
   via  64b7d995040fc670aaed5fbd048157b3feba0574 (commit)
   via  f32a264796b3b43662b4734f1730d7a819d32484 (commit)
   via  fd6e801cfb0910c00a789c6b3f17461d8610c99b (commit)
   via  a3868cf5423d68a3614020376840a67da3a6f0d4 (commit)
   via  62a2f118ce84deb9077cf163c45d3b22af741269 (commit)
   via  723ad23b4859de69cfdb2b2c7ba9415832b42c58 (commit)
   via  5dd90ef848e99e86601807fd829f6586dc2ab6fc (commit)
   via  5246cb9aa5bdc390c793dc261b28f3439aaad4c0 (commit)
   via  144f8966608211f85fb492a4cce3c159989dd2eb (commit)
  from  bbcff883d59e2fce4b26d241892bf83c70e9b704 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 74f65db396038caafcba20e4302fba080d8cc100
Author: Levente Polyak 
Date:   Sat Sep 14 00:33:11 2019 +0200

zsh_completion: add offload-build completion

Signed-off-by: Levente Polyak 

commit 64b7d995040fc670aaed5fbd048157b3feba0574
Author: Levente Polyak 
Date:   Fri Sep 13 01:32:57 2019 +0200

zsh_completion: add sogrep completions

Transform sogrep into an in-prog so we can benefit from the m4 macro
to specify valid repos in a single place of truth.

Signed-off-by: Levente Polyak 

commit f32a264796b3b43662b4734f1730d7a819d32484
Author: Levente Polyak 
Date:   Thu Sep 19 20:58:00 2019 +0200

commitpkg: prefer explicit signature+data parameters for gpg --verify

Lets prefer the explicit variant of gpg --verify by providing both, the
signature and the data file as parameters.
For the unlikely case there is a matching signature file already present
that was created outside of the toolchain and has an embedded signature
with data, we at least could detect it early with this check.

Signed-off-by: Levente Polyak 

commit fd6e801cfb0910c00a789c6b3f17461d8610c99b
Author: Levente Polyak 
Date:   Fri Sep 13 21:17:20 2019 +0200

commitpkg: disallow if PKGBUILD hash mismatches package's enclosed hash

Several cases showed that we release packages that were built with
different PKGBUILDs than the one commited to the source tree. This is
bad for obvious reasons plus sploils reproducible builds.

We, under no circumstances, want to allow using commitpkg to publish and
release a packages whose PKGBUILD doesn't match the one to be commited.

Signed-off-by: Levente Polyak 

commit a3868cf5423d68a3614020376840a67da3a6f0d4
Author: Levente Polyak 
Date:   Fri Sep 13 21:15:23 2019 +0200

commitpkg: fix wrongly ordered find_cached_package call

The unknown packager check didn't worked so far as the wrongly ordered
call to find_cached_package lead to the enclosing block never being
executed.

Signed-off-by: Levente Polyak 

commit 62a2f118ce84deb9077cf163c45d3b22af741269
Author: Levente Polyak 
Date:   Fri Sep 13 02:13:27 2019 +0200

make: add target to tag a new version

Signed-off-by: Levente Polyak 

commit 723ad23b4859de69cfdb2b2c7ba9415832b42c58
Author: Levente Polyak 
Date:   Fri Sep 13 01:13:31 2019 +0200

zsh_completion: overhaul all completions to match actual options

Signed-off-by: Levente Polyak 

commit 5dd90ef848e99e86601807fd829f6586dc2ab6fc
Author: Levente Polyak 
Date:   Thu Sep 12 23:34:22 2019 +0200

checkpkg: add option to print a warning in case of differences

Sometimes its desired to be explicitly made aware of differences
reporter by checkpkg via printing a warning instead of a regular
message.

Automatically use --warn for makechrootpkg builds so packagers are made
visibly aware of a soname bump by simply looking out for colors
indicating non success messages.

Signed-off-by: Levente Polyak 

commit 5246cb9aa5bdc390c793dc261b28f3439aaad4c0
Author: Levente Polyak 
Date:   Thu Sep 12 21:28:34 2019 +0200

checkpkg: add option to avoid keeping the tmp dir

In some cases, like default makechrootpkg execution, the temporary
directory used to assemble the differences is not required. Add an
option to checkpkg that allows to get rid of that directory after
run and call it automatically like that in makechrootpkg.

Signed-off-by: Levente Polyak 

commit 144f8966608211f85fb492a4cce3c159989dd2eb
Author: Levente Polyak 
Date:   Wed Sep 11 23:10:04 2019 +0200

makechrootpkg: run checkpkg automatically after build

Cache previous versions required for checkpkg via pacman to avoid
multiple downloads when running multiple times.

In 

[arch-projects] [devtools] [GIT] The official devtools repository branch feature/disallow-pkgbuild-mismatch deleted. 20190912-2-ge9f1a1f

2019-09-21 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, feature/disallow-pkgbuild-mismatch has been deleted
   was  e9f1a1fb027498c463ee87724f88086da045d818

- Log -
e9f1a1fb027498c463ee87724f88086da045d818 commitpkg: disallow if PKGBUILD hash 
mismatches package's enclosed hash
---


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch feature/disallow-pkgbuild-mismatch created. 20190912-2-ge9f1a1f

2019-09-21 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, feature/disallow-pkgbuild-mismatch has been created
at  e9f1a1fb027498c463ee87724f88086da045d818 (commit)

- Log -
commit e9f1a1fb027498c463ee87724f88086da045d818
Author: Levente Polyak 
Date:   Fri Sep 13 21:17:20 2019 +0200

commitpkg: disallow if PKGBUILD hash mismatches package's enclosed hash

Several cases showed that we release packages that were built with
different PKGBUILDs than the one commited to the source tree. This is
bad for obvious reasons plus sploils reproducible builds.

We, under no circumstances, want to allow using commitpkg to publish and
release a packages whose PKGBUILD doesn't match the one to be commited.

commit 3e2cae8ce9a43a6647eba4758024c722203fc301
Author: Levente Polyak 
Date:   Fri Sep 13 21:15:23 2019 +0200

commitpkg: fix wrongly ordered find_cached_package call

The unknown packager check didn't worked so far as the wrongly ordered
call to find_cached_package lead to the enclosing block never being
executed.

---


hooks/post-receive
-- 
The official devtools repository


Re: [arch-projects] [devtools] [PATCH] commitpkg: Avoid excess blank lines

2019-09-17 Thread Eli Schwartz via arch-projects
On 9/17/19 9:30 AM, Daniel M. Capella via arch-projects wrote:
> Most of the time we're just bumping the pkgver and checksums, where a
> commit body isn't needed.
> 
> Referencing commit ee970f0bde3c90a0dff909c366d4ab1a1bff9b9d

I religiously use the additional message "upstream release" in such cases.

This is important information. When there is *no* commit message, I know
that the person who committed the change is a person who dislikes commit
messages. When there is a commit message and it says 'upstream release'
or 'bump version' or whatever, then I know they put some thought into
what they're saying, and there is genuinely nothing else to say.

...

Given the original intent of the commit message was, explicitly, "let's
use commit messages and insert a couple newlines so that the committer
is ready for the commit message", I'm quite sure I don't understand your
rationale at all.

The only thing wrong with the commitpkg template is that it doesn't have
editor-specific methods for starting with the cursor at the third line.

-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


[arch-projects] [devtools] [PATCH] commitpkg: Avoid excess blank lines

2019-09-17 Thread Daniel M. Capella via arch-projects
Most of the time we're just bumping the pkgver and checksums, where a
commit body isn't needed.

Referencing commit ee970f0bde3c90a0dff909c366d4ab1a1bff9b9d

Signed-off-by: Daniel M. Capella 
---
 commitpkg.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/commitpkg.in b/commitpkg.in
index 3fc3fa6..a626531 100644
--- a/commitpkg.in
+++ b/commitpkg.in
@@ -104,10 +104,10 @@ if [[ -z $server ]]; then
 fi
 
 if [[ -n $(svn status -q) ]]; then
-   msgtemplate="upgpkg: $pkgbase $(get_full_version)"$'\n\n'
+   msgtemplate="upgpkg: $pkgbase $(get_full_version)"
if [[ -n $1 ]]; then
stat_busy 'Committing changes to trunk'
-   svn commit -q -m "${msgtemplate}${1}" || die
+   svn commit -q -m "${msgtemplate}\n\n${1}" || die
stat_done
else
msgfile="$(mktemp)"
-- 
2.23.0


[arch-projects] [mkinitcpio] [GIT] The official mkinitcpio repository branch master updated. 25-2-g74d5acf

2019-09-13 Thread Giancarlo Razzolini via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official mkinitcpio repository".

The branch, master has been updated
   via  74d5acfa3c33121ed119698080dbcfb79b21e881 (commit)
   via  ca8f13e11d422fa01bc031ff0610442b82ea6b65 (commit)
  from  a3cb799a8f63186b843db6a57da12d74a9320686 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 74d5acfa3c33121ed119698080dbcfb79b21e881
Merge: a3cb799 ca8f13e
Author: Giancarlo Razzolini 
Date:   Sat Sep 14 01:08:00 2019 -0300

Merge pull request #1 from esotericnonsense/esotericnonsense/reproducible

mkinitcpio: Produce reproducible initramfs images

commit ca8f13e11d422fa01bc031ff0610442b82ea6b65
Author: Daniel Edgecumbe 
Date:   Sat Sep 7 11:15:26 2019 +0100

mkinitcpio: Produce reproducible initramfs images

We achieve this by stripping timestamps from within the filesystem,
and by using a pipeline to strip inodes from the cpio archive.

It functions for at least the 'gzip', 'xz', 'bzip2', 'lz4' and 'cat'
compressors. The 'lzop' compressor embeds a runtime timestamp.

Motivation: https://reproducible-builds.org

Signed-off-by: Daniel Edgecumbe 

---

Summary of changes:
 man/mkinitcpio.8.txt | 16 
 mkinitcpio   | 23 +--
 2 files changed, 29 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
The official mkinitcpio repository


WARN: project in Attic but not in 'retired' category: http://svn.apache.org/repos/asf/ode/trunk/doap_ODE.rdf

2019-09-13 Thread Projects


WARN: project from a retired committee but PMC not changed to Attic in http://svn.apache.org/repos/asf/ode/trunk/doap_ODE.rdf

2019-09-13 Thread Projects


[arch-projects] [devtools] [GIT] The official devtools repository annotated tag 20190912 created. 20190912

2019-09-12 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The annotated tag, 20190912 has been created
at  168da4af67c5173e0271983a947d77bf883c9757 (tag)
   tagging  bbcff883d59e2fce4b26d241892bf83c70e9b704 (commit)
  replaces  20190821
 tagged by  Levente Polyak
on  Thu Sep 12 23:04:32 2019 +0200

- Log -
Version 20190912
-BEGIN PGP SIGNATURE-

iQIzBAABCgAdFiEE4kC1fixGMLp2ji8m/BtUfI2BcsgFAl16suUACgkQ/BtUfI2B
csg6pA//fCsXZcl+yCeWx/77g5hm72B+N+oQH0DXp8LR8Ju20PKSl+FD1otkqFUR
K5eTwvz7vCwZ5Kzw2GRbNZLqS4EB/SpIg0XGnQe6741JJXdyCNKX7M54CCzXV50k
/Xm51x288MS5a7PnG8GyMaB+T3RXuyv3qVB5rhUNuhNZ3zlmcMc6V9hS1OgCNjp+
gWvHiXGk2qQxkGJjdfV+AzinOjCLm0Tw6HffUMVEjQ1Zmt7J6oBGJ/st5mqvpR/7
OWu4tKsf2MCZ1G24eusiogbCtkVbsenAS7+l3UyBB72bZ+chYvKAT25VcaVcDO85
STkoOHvL/Qw4k0Boya4MPiljOyCPwURUgZnSslCJ4WuovGdHmATrBoDPjIQYja2p
OtpCrnmrSrY0mXYhV/wrIW8VfUE2Wi58UyDRxCC2rzHvNATONoiljNRwygifQM81
G2v+reB2R+Czluqkwr4gwkLozJ16Hj90QOG+gJPjtsXcwsIVDLO+a5rVxy0ak2Gz
pCKr9sBEjwBNDpWDojVjCkcGJax0b6KomV6IdepLvhymyeaUVQDodBCTyPmU14q6
foVbvOQZmvGrHf7GzPw+H1B9T0l1ukD4OL7+91I6arKDITWstRSo6NdBUR2te6x4
twpAxM95QWAnPaPVM5JyzqlAAXh2ZfnEczduzknGtgu2AHLJne8=
=78mE
-END PGP SIGNATURE-

Eli Schwartz (1):
  Revert "makechrootpkg: with -n, check if the package failed to install"

Levente Polyak (1):
  Version 20190912

---


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20190821-2-gbbcff88

2019-09-12 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  bbcff883d59e2fce4b26d241892bf83c70e9b704 (commit)
   via  6e466ca654c9d15e40ae371dbb013170fbdfdb91 (commit)
  from  d8d2e23247a1aab5e269ff0e388e378ec9d462eb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit bbcff883d59e2fce4b26d241892bf83c70e9b704
Author: Levente Polyak 
Date:   Thu Sep 12 23:03:12 2019 +0200

Version 20190912

commit 6e466ca654c9d15e40ae371dbb013170fbdfdb91
Author: Eli Schwartz 
Date:   Thu Sep 12 10:20:19 2019 -0400

Revert "makechrootpkg: with -n, check if the package failed to install"

This reverts commit be44b9cde15f3228839253c0c0d7d56c124c4e26.

This was a nice idea in theory, because it means that we can catch
conflicting files before releasing them into the repos. In practice,
there were unanticipated side effects: single-package installs which
conflict against their own makedepends cannot be installed either.
Examples include:
- kernel modules which makedepend on their dkms equivalent
- jack2, which makedepends/optdepends on portaudio, which requires
  jack... but jack2 is a drop-in provides/conflicts jack.

We cannot reliably detect when makepkg --install will error out because
of dependency conflicts vs. packages which are simply broken. So, back
out this change for now.

Revisit this once pacutils has a new release, because it will add the
option --resolve-conflicts=all, allowing for much better scripted
responses to "foo conflicts with bar, remove bar? [y/N]" than simply
"--noconfirm and fail".

Signed-off-by: Eli Schwartz 
Signed-off-by: Levente Polyak 

---

Summary of changes:
 Makefile | 2 +-
 makechrootpkg.in | 9 +
 2 files changed, 2 insertions(+), 9 deletions(-)


hooks/post-receive
-- 
The official devtools repository


Specialisti Informatici a portata di click --NL 04/2019.

2019-09-11 Thread Programs and Projects Consulting
La selezione del personale non è mai stata cosi semplice .

Consulenza ITC

La Programs & Projects Consulting e' il partner ideale per le aziende.

Proponiamo un'offerta di servizi completa ed integrata, dalla consulenza nella 
progettazione di sistemi informatici custom alla selezione e valorizzazione 
delle risorse umane, alla vendita di sistemi CRM scalabili completamente 
personalizzabili.

Time & Material

Oltre tre lustri di esperienza e professionalita' al vostro servizio.

Disponiamo di una vasta rosa di tecnici altamente specializzati distribuiti su 
tutto il territorio nazionale, adatti ad ogni vostra esigenza. Tutti i 
professionisti sono inquadrati come dipendenti diretti della nostra azienda.

Sviluppo Software

La Programs & Projects Consulting e' il tassello che ti manca.

Qualsiasi sia la vostra attivita', avere un Partner altamente specializzato che 
possa supportarvi dalla fase di progettazione alla messa in produzione, 
equivale a gettare delle solide fondamenta per il proprio futuro aziendale.





[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20190329-33-gd8d2e23

2019-08-21 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  d8d2e23247a1aab5e269ff0e388e378ec9d462eb (commit)
  from  be44b9cde15f3228839253c0c0d7d56c124c4e26 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit d8d2e23247a1aab5e269ff0e388e378ec9d462eb
Author: Levente Polyak 
Date:   Wed Aug 21 19:23:03 2019 +0200

Version 20190821

---

Summary of changes:
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository annotated tag 20190821 created. 20190821

2019-08-21 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The annotated tag, 20190821 has been created
at  23a9f1196c864c0ad524d0917acf59cf6da8ba7a (tag)
   tagging  d8d2e23247a1aab5e269ff0e388e378ec9d462eb (commit)
  replaces  20190329
 tagged by  Levente Polyak
on  Wed Aug 21 19:23:27 2019 +0200

- Log -
Version 20190821
-BEGIN PGP SIGNATURE-

iQIzBAABCgAdFiEE4kC1fixGMLp2ji8m/BtUfI2BcsgFAl1dfhkACgkQ/BtUfI2B
csgOmQ//e3NvqVA0wrw98XpmhL3jMmqJNXsoEBplUiOoStwpJShhTqc4hxJsHfqq
3pIrWzUcojV+AUZ4r3smZq6MXcMbo3XHTRJ5ogxNovuBSBSoJQATOq6n+tmtkvO5
c5gdWjkNPkc3VzhufZw+WFppgG3YhraF7i3CjsOG3mhQQZMPPPIJBH0czlgQeuvO
Pd909Ah0eleEKQg5woTC/y7D7vcZRb1yZ+U8ZFZVfwT/u7hklKG5envMzb7ErZ1w
6jYAEDvRSKG2gtw9Ysfltg3Pwsq/FW8MepENvAAX1oM3SwvI/++M8UB+lTu9Pscx
GM7UmbQs99WVfigoFJqgNpJCw1YBhQt6FNrNUxltH015DKd3EC2C9swYK6PmtZr/
AavCS87GjXf6KffPwG0FBWMvWskidTXxL1mJX1YFoiBuDY+pjKxJOaNlcQ16VN+o
CNIOJhW3RJj/XfDRhF5S3NeUj1xTv1vxJtomn1U70QB9F+nhMqLxtehdrQfBftSX
w3K1QIIpuK2dtjQmVRmJ9OdIY+jWwtFaHADquQzvuW7dWWrIDdE6t05bglCOW70S
Ve3t9x9BA9lTwtotU5WXsOrnsqhKFEmg7goG7WcCHxWsjCAcBCzaPwvSgjE8PvdQ
f2PqbbWrJBt0PwiAqtJx75SI/Cux9r6vp5DLeGOp3iqV8ozPtv4=
=yvZm
-END PGP SIGNATURE-

Brian Bidulock (1):
  arch-nspawn should not take pacman cache from host

Eli Schwartz (25):
  Migrate pacman.conf CacheDir parsing to pacman-conf
  Makefile: don't inject DESTDIR into the pkgdatadir
  makechrootpkg: load makepkg.conf variables correctly
  mkarchroot: don't create a broken chroot by default
  fixup commit "arch-nspawn: get all mirrors from host"
  arch-nspawn: don't delete the guest gpg configuration
  Revert "mkarchroot: Don't let the environment affect pacstrap (sans proxy 
settings)."
  Don't rely on $0 to determine script names.
  Revert "makechrootpkg: Avoid having code floating around outside of a 
function."
  Revert "makechrootpkg: Have functions be more function-y."
  makechrootpkg: check truthiness using shell arithmetic
  checkpkg: implement comparison against alternative targets
  arch-nspawn: support bind-mounting custom file:/// repositories
  Escape paths with ":" that are passed to systemd-nspawn --bind
  ensure that sane umask is used where needed
  makechrootpkg: fix breakage in makepkg option parsing
  makechrootpkg: accept arguments useful to verifysource
  finddeps: suppress error messages for unreadable directories
  arch-nspawn: unshare the gpg namespace to prevent zombie processes
  makechrootpkg: when installing with -I, ensure package is installed
  makechrootpkg: also downgrade packages when updating chroots
  archbuild: prefer repo/arch-specific configs if they exist
  archrelease: actually fail in failure conditions
  makechrootpkg: make the -U option work for the first time ever
  makechrootpkg: with -n, check if the package failed to install

Eli Schwartz via arch-projects (3):
  Revert "makechrootpkg: sync_chroot: Make more general."
  Add new tool: offload-build
  doc: add manpage for the new offload-build tool

Erich Eckner (2):
  is_same_fs() in lib/archroot.sh should use $1 and $2, not $1 and $1
  fix whitespace/indentation errors

Levente Polyak (2):
  offload-build: disable shellcheck false-positive for shell-escape
  Version 20190821

---


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20190329-32-gbe44b9c

2019-08-09 Thread Levente Polyak via arch-projects
it 69112171e5de910331e46cf3f848866550125024
Author: Eli Schwartz 
Date:   Thu Mar 28 16:38:50 2019 -0400

arch-nspawn: support bind-mounting custom file:/// repositories

Fixes FS#45882

Signed-off-by: Eli Schwartz 
Signed-off-by: Levente Polyak 

commit c14338c0fe71a74f5e56b4f3af7c548fe0928e15
Author: Eli Schwartz 
Date:   Thu Mar 7 21:31:58 2019 -0500

checkpkg: implement comparison against alternative targets

This allows comparing the currently built set of packages against
targets named by filename, url, or pkgname. One example use is to
compare a package against a different version that was never in the
repos; another example use is to compare a *-git package against the
non-git version.

Signed-off-by: Eli Schwartz 
Signed-off-by: Levente Polyak 

commit 8dbf95cdd4858cccf43f7f176b44a0c1121df07b
Author: Eli Schwartz 
Date:   Wed Feb 13 02:45:36 2019 -0500

makechrootpkg: check truthiness using shell arithmetic

Using the literal strings "true" and "false" is inaccurate and may
result in uncertainty of whether it is set when doing string comparison,
or simply rely on the shell implementation of treating the string as a
command builtin, then executing the value as a shell command. Emulate
makepkg, which makes heavy use of shell arithmetic for this purpose.

Signed-off-by: Eli Schwartz 
Signed-off-by: Levente Polyak 

commit 46d614d91a90a60839280060f736dc3be8445502
Author: Eli Schwartz 
Date:   Wed Feb 13 02:23:51 2019 -0500

Revert "makechrootpkg: Have functions be more function-y."

This reverts (the bulk of) commit 2fd5931a8c67289a8a4acd327b3ce99a5d64c8c7.

Reducing globals makes little sense in in a oneshot bash script, but
reduces code clarity and in fact resulted in bugs because even the
commit author couldn't keep track of the script state.

An exit was changed to a return, even though that made no sense outside
of a function, and has been duly returned to being an exit. This was
never tested and later papered over by wrapping the entire script in a
main() function and then calling the function for hysterical raisins.

The functiony nature of sync_chroot/delete_chroot is preserved, as those
functions demonstrate meaningfully standalone functionality -- who
knows? we may want to reuse this. Everything else is tightly bound to
the internal logic of makechrootpkg.

Completely separate functionality that was silently implemented in the
original commit is also preserved:
- declare a couple of variables as locals
- move the abort-on-no-PKGBUILD outside the install_packages function

Signed-off-by: Eli Schwartz 
Signed-off-by: Levente Polyak 

commit df0d6b867b289ed98c4b9e7ced817dee155feb4f
Author: Eli Schwartz 
Date:   Wed Feb 13 02:02:40 2019 -0500

Revert "makechrootpkg: Avoid having code floating around outside of a 
function."

This reverts commit 49088b0860276c664933c2b3e36a2fef714b7a07.

The fundamental intention was flawed and broken, it caused annoying
issues and regressions, and the self-avowed sole purpose of the change
was so that a downstream project could *post-modify the script and
source it as a library*.

That is not okay. You don't wrap non-factorable code in a function
called main() and call it a library. The only possible use for this is
to treat makechrootpkg *internals* as a library, which is not supported.

Downstream projects that wish to use the functionality of makechrootpkg
should treat makepkg as a command with a public API in the form of
command line options. That is kind of how commands of all kinds work,
since forever. That is how all users of makechrootpkg *except for
parabola* use it.

Arguments that "it saves us the cost of fork+exec to bash" are simply
invalid.

Signed-off-by: Eli Schwartz 
Signed-off-by: Levente Polyak 

commit 8f5a02b23ddb2491c13553cb71276bdd088f63ac
Author: Eli Schwartz 
Date:   Wed Feb 13 01:32:03 2019 -0500

Don't rely on $0 to determine script names.

Programs can freely define the value of argv0 and thus it means nothing.
Instead, use the bash-specific variable explicitly designed to safely
and accurately reference the name of the currently sourced file.

This also fixes the case where simple debugging mechanisms like using
"bash -x foo" tried to treat "foo" as the unqualified $0 and therefore
broke horribly due to lack of pathnames.

Signed-off-by: Eli Schwartz 
Signed-off-by: Levente Polyak 

commit e76d56047719c88351492ace896c5899a6786e14
Author: Eli Schwartz 
Date:   Sat Dec 1 21:07:39 2018 -0500

Revert "mkarchroot: Don't let the environment affect pacstrap (sans proxy 
settings)."

This reverts commit 

[arch-projects] [dbscripts] [GIT] Official repo DB scripts annotated tag 20190713 created. 20190713

2019-07-13 Thread Florian Pritz via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Official repo DB scripts".

The annotated tag, 20190713 has been created
at  00331c0ff67496af5279413da029ade368f30e88 (tag)
   tagging  0706db69d48e8fa9423587f0d11727075b0d3d5f (commit)
  replaces  20190113
 tagged by  Florian Pritz
on  Sat Jul 13 21:02:28 2019 +0200

- Log -
Hotfix for reproducibility errors
-BEGIN PGP SIGNATURE-

iQIzBAABCgAdFiEEz6avFeXHQUn8HYwIbRZVwUzhwT4FAl0qKt8ACgkQbRZVwUzh
wT7cexAAh/0WcvDpTqXj8EHtfRpjhdcbg+hi+IGZH5kHmNCYe3GigzBMYJHtNOj1
wmSd8330t8xagSJUL6Rb/50FNiAzmfnCFOgbfxpvoYFrk1LliBdk5iYld36xtk0k
garw6SanlUiwFlr+G/RrXapiQfLBTzxMtJIW3S7HAFBv1xLStuQo/9cw5r2RNv6Z
ohad/W8qm3Dtg6+TOxaKWSV2rZ2i3FJ8bbBJS/UtSjcXukz72sAMLJu51R8Nx4oe
Y3lXbs7wZmTrjQ2NY9zPhXYUIKn702OcXrY0eu/2iKZKoatyfwRgE3JedU3mFhN4
Tvriu84viLjP+kcHJwdycltZwXekDFZzncVO3xPV1lB5JBMfZ7ac8cWLG4ncsvC9
hnu7s03qmYCx5DLS5p+AqEhhhOz9N8Zb2lwBvk0sx6F04VpWD6+EqYWTxl0AziIM
oHxFfWDhtYWD1lyIhVOpvlgWAapE1SEbMxKh2rMIlSVV4QyaZyn86uwe0zCbgwnD
aS8xCNFiPlSTPgh8lpQpNEvwki+teeq0tgDA72r5rkQLjMjLAgjpdhbQqYwGYJri
vbzqsjwpXwSvKWszxEWT7a7Br+o0pjjQG6Q68pS8kOiWVJ36wj5sv3chxSQt2S3K
8mY/iupXkUHr4Rp6npdpmO95P2aCih13Gb6A3VO8W5WHqkpNZF8=
=ILOb
-END PGP SIGNATURE-

Florian Pritz (1):
  Look for repro packages in live repo pool too

---


hooks/post-receive
-- 
Official repo DB scripts


[arch-projects] [dbscripts] [GIT] Official repo DB scripts branch master updated. 20190713

2019-07-13 Thread Florian Pritz via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Official repo DB scripts".

The branch, master has been updated
   via  0706db69d48e8fa9423587f0d11727075b0d3d5f (commit)
  from  f2e8d57e7fde40fd5a3e80e1f152ae850ac3c369 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 0706db69d48e8fa9423587f0d11727075b0d3d5f
Author: Florian Pritz 
Date:   Sat Jul 13 20:58:07 2019 +0200

Look for repro packages in live repo pool too

I've cleaned older packages from the archive, but sometimes we do not
rebuild packages in a long long time. We still keep have them in the
repository, but this check does not look for the package there, thus
when trying to db-update, the user sees an error. We fix this by also
looking at currently live packages instead of only relying on the
archive.

This is mostly a hotfix until a better solution is created. Depending on
when/how the ftpdir-cleanup cronjob removes such packages, users may
still see errors when an old package is updated and the cronjob removes
it from the repository before db-update is run.

Signed-off-by: Florian Pritz 

---

Summary of changes:
 db-functions | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


hooks/post-receive
-- 
Official repo DB scripts


Re: [arch-projects] [netctl] netctl, cloud-init, and systemd

2019-06-18 Thread Conrad Hoffmann via arch-projects
Hi again,

thank you both for your input! See comments inline:

On 6/17/19 10:20 PM, Jouke Witteveen via arch-projects wrote:
> On Mon, Jun 17, 2019 at 9:45 PM Erich Eckner via arch-projects
>  wrote:
>>> In case you are not familiar with cloud-init, the idea is that you can
>>> build a single OS image that runs cloud-init on boot, and cloud-init
>>> will take care of such things as network configuration, so that the same
>>> image will work regardless of the network setup you choose for the cloud
>>> instance.
>>
>> Does cloud-init run before or after systemd? In other words: is it a
>> systemd unit of some kind or is it rather an init daemon itself which
>> chain-loads systemd?

Cloud-init comes with multiple systemd units and as such is is run by
systemd multiple times at different stages during the boot process. The
cloud-init wiki page has a rough overview:
https://wiki.archlinux.org/index.php/Cloud-init#Systemd_integration

>>> The current cloud-init implementation for Arch uses netctl [3]. The
>>> implementation is correct in such a way that it does indeed render the
>>> right netctl profile(s) and enables them. However there is a problem:
>>> they are not being started. AFAICT this is because cloud-init does this
>>> while the systemd boot is already in process, and changing the
>>> dependency graph (by adding new units) does not have any effect until
>>> the next run (everything works right on second boot). Note that I even
>>> tried having cloud-init run `systemd daemon-reload` after enabling the
>>> units, but it didn't help either.
>>
>> Did you try cloud-init to issue "systemctl start $unitname.service"
>> additionally to "systemctl enable $unitname.service"? This seems to me to
>> be the right way.

It might be worth taking another look at that, but let me quickly lay
out why I didn't try this yet: when cloud-init runs for the first time,
it goes through a bunch of plugins called "data sources", which will
probe different aspects of the environment to determine the cloud
provider it is running in, use that knowledge to retrieve
vendor-specific configuration details, and use that to write e.g.
network config, hostname, etc. The tricky part is that for example the
EC2 data source uses a magic IP to retrieve this config (see
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-retrieval),
and other data sources might do similar things. Hence, I was worried
that prematurely re-configuring the network might interfere with such
actions (the unit running this has "Before=network-pre.target").

However, if cloud-init first fetches all data and then configures things
it might not be a problem. I'll take a closer look at what is happening
there and maybe try to get a statement from the cloud-init folks.

>>> The reason I am posting this here is that this seems to be an issue due
>>> to the particular way netctl use systemd units. Since you don't know the
>>> names or the number of profiles (units) that will be generated during
>>> image creation, you cannot enable them at that time. But doing so during
>>> first boot does not seem to work.
>>
>> I would rather say it's due to the way, cloud-init uses systemd units: it
>> enables them, but that's only relevant for successive boots, so it should
>> rather enable and start them (systemd should still honor the dependencies
>> of the units and postpone the start to the point where all of the
>> dependencies are loaded, too).
>>
>>>
>>> Just for comparison, if one were to use e.g. systemd-networkd instead,
>>> you would just enable the systemd-networkd unit during image creation,
>>> cloud-init could generate the appropriate config for any number of
>>> devices, and when the unit starts it will do the right thing. Likewise
>>> on other distros, e.g. Debian with /etc/network/interfaces or such.
>>>
>>> Now, from my point of view, there could be several approaches to solve
>> this:
>>>
>>> 1. systemd supports updates of the dep graph during boot
>>> 2. support such a use case in netctl
>>> 3. change cloud-init to use systemd-networkd for Arch
>>>
>>> Let me quickly elaborate:
>>>
>>> 1. is intentionally not phrased as something to be done. It might
>>> already be a thing, I just couldn't figure out how to do it. If someone
>>> knows more about this, I would love to hear about it. If this works, it
>>> would be the easiest solution. However, if it doesn't, I don't have my
>>> hopes up high for this being added to system

Re: [arch-projects] [netctl] netctl, cloud-init, and systemd

2019-06-17 Thread Jouke Witteveen via arch-projects
On Mon, Jun 17, 2019 at 9:45 PM Erich Eckner via arch-projects
 wrote:
> > In case you are not familiar with cloud-init, the idea is that you can
> > build a single OS image that runs cloud-init on boot, and cloud-init
> > will take care of such things as network configuration, so that the same
> > image will work regardless of the network setup you choose for the cloud
> > instance.
>
> Does cloud-init run before or after systemd? In other words: is it a
> systemd unit of some kind or is it rather an init daemon itself which
> chain-loads systemd?
>
> > The current cloud-init implementation for Arch uses netctl [3]. The
> > implementation is correct in such a way that it does indeed render the
> > right netctl profile(s) and enables them. However there is a problem:
> > they are not being started. AFAICT this is because cloud-init does this
> > while the systemd boot is already in process, and changing the
> > dependency graph (by adding new units) does not have any effect until
> > the next run (everything works right on second boot). Note that I even
> > tried having cloud-init run `systemd daemon-reload` after enabling the
> > units, but it didn't help either.
>
> Did you try cloud-init to issue "systemctl start $unitname.service"
> additionally to "systemctl enable $unitname.service"? This seems to me to
> be the right way.
>
> >
> > The reason I am posting this here is that this seems to be an issue due
> > to the particular way netctl use systemd units. Since you don't know the
> > names or the number of profiles (units) that will be generated during
> > image creation, you cannot enable them at that time. But doing so during
> > first boot does not seem to work.
>
> I would rather say it's due to the way, cloud-init uses systemd units: it
> enables them, but that's only relevant for successive boots, so it should
> rather enable and start them (systemd should still honor the dependencies
> of the units and postpone the start to the point where all of the
> dependencies are loaded, too).
>
> >
> > Just for comparison, if one were to use e.g. systemd-networkd instead,
> > you would just enable the systemd-networkd unit during image creation,
> > cloud-init could generate the appropriate config for any number of
> > devices, and when the unit starts it will do the right thing. Likewise
> > on other distros, e.g. Debian with /etc/network/interfaces or such.
> >
> > Now, from my point of view, there could be several approaches to solve
> this:
> >
> > 1. systemd supports updates of the dep graph during boot
> > 2. support such a use case in netctl
> > 3. change cloud-init to use systemd-networkd for Arch
> >
> > Let me quickly elaborate:
> >
> > 1. is intentionally not phrased as something to be done. It might
> > already be a thing, I just couldn't figure out how to do it. If someone
> > knows more about this, I would love to hear about it. If this works, it
> > would be the easiest solution. However, if it doesn't, I don't have my
> > hopes up high for this being added to systemd anytime soon.
>
> This would mean, if I "systemctl enable $some.service", it will be started
> right away, too - probably not, what systemd devs want (at least it's
> not, what systemd currently does).

`systemctl enable --now ` starts a service in addition to enabling it.

> >
> > 2. is the main reason I am writing this. Things that came to mind were
> > another special unit (netctl-all?), or even just a well-defined
> > interface to write devices into the state file, so that the plain netctl
> > unit would work. I would be very interested to hear how such a thing
> > sounds to you, the developers?
>
> There is currently netctl-auto@.service, but this requires to know the
> interfaces in advance. Maybe the netctl devs can consider adding another
> unit which is interface agnostic? "netctl-auto.service" maybe? (I'm not
> familiar with netctl's interna - maybe this is not possible at all)

Indeed, there are two more options to achieve what I think you want.
1. Use "netctl-ifplugd@", see also: netctl.special(7). This
requires ifplugd to be installed and takes all profiles for an
interface into consideration, so you don't need to know the name of
the profile in advance. Of course, you do need to know the name of the
interface.

2. Use "netctl(.service)", see also: netctl.special(7), and write the
profile name to "/var/lib/netctl/netctl.state". This only works if
cloud-init runs before systemd, or at least finishes before the netctl
service is started.

> > 3. Is of course an option, but would requi

Re: [arch-projects] [netctl] netctl, cloud-init, and systemd

2019-06-17 Thread Erich Eckner via arch-projects

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Hi,

- --- snip ---


In case you are not familiar with cloud-init, the idea is that you can
build a single OS image that runs cloud-init on boot, and cloud-init
will take care of such things as network configuration, so that the same
image will work regardless of the network setup you choose for the cloud
instance.


Does cloud-init run before or after systemd? In other words: is it a
systemd unit of some kind or is it rather an init daemon itself which
chain-loads systemd?


The current cloud-init implementation for Arch uses netctl [3]. The
implementation is correct in such a way that it does indeed render the
right netctl profile(s) and enables them. However there is a problem:
they are not being started. AFAICT this is because cloud-init does this
while the systemd boot is already in process, and changing the
dependency graph (by adding new units) does not have any effect until
the next run (everything works right on second boot). Note that I even
tried having cloud-init run `systemd daemon-reload` after enabling the
units, but it didn't help either.


Did you try cloud-init to issue "systemctl start $unitname.service" 
additionally to "systemctl enable $unitname.service"? This seems to me to 
be the right way.




The reason I am posting this here is that this seems to be an issue due
to the particular way netctl use systemd units. Since you don't know the
names or the number of profiles (units) that will be generated during
image creation, you cannot enable them at that time. But doing so during
first boot does not seem to work.


I would rather say it's due to the way, cloud-init uses systemd units: it
enables them, but that's only relevant for successive boots, so it should
rather enable and start them (systemd should still honor the dependencies
of the units and postpone the start to the point where all of the
dependencies are loaded, too).



Just for comparison, if one were to use e.g. systemd-networkd instead,
you would just enable the systemd-networkd unit during image creation,
cloud-init could generate the appropriate config for any number of
devices, and when the unit starts it will do the right thing. Likewise
on other distros, e.g. Debian with /etc/network/interfaces or such.

Now, from my point of view, there could be several approaches to solve

this:


1. systemd supports updates of the dep graph during boot
2. support such a use case in netctl
3. change cloud-init to use systemd-networkd for Arch

Let me quickly elaborate:

1. is intentionally not phrased as something to be done. It might
already be a thing, I just couldn't figure out how to do it. If someone
knows more about this, I would love to hear about it. If this works, it
would be the easiest solution. However, if it doesn't, I don't have my
hopes up high for this being added to systemd anytime soon.


This would mean, if I "systemctl enable $some.service", it will be started
right away, too - probably not, what systemd devs want (at least it's
not, what systemd currently does).



2. is the main reason I am writing this. Things that came to mind were
another special unit (netctl-all?), or even just a well-defined
interface to write devices into the state file, so that the plain netctl
unit would work. I would be very interested to hear how such a thing
sounds to you, the developers?


There is currently netctl-auto@.service, but this requires to know the
interfaces in advance. Maybe the netctl devs can consider adding another
unit which is interface agnostic? "netctl-auto.service" maybe? (I'm not 
familiar with netctl's interna - maybe this is not possible at all)




3. Is of course an option, but would require quite a bit of work in
cloud-init. That work, if done right, might however at some point
benefit other distros, should they be using systemd-networkd as well.
The main reason I am also bringing this up that I was wondering if there
are possibly any plans to abandon netctl anyways at some point in favor
of distro-agnostic solutions (be it systemd-networkd or any other).

So, sorry for the long mail, but I probably omitted a few crucial
details already, so don't hesitate to ask for clarifications :)

I would love to hear your thoughts on this!

Thanks a lot,
Conrad

[1] https://aur.archlinux.org/packages/cloud-init/
[2] https://aur.archlinux.org/packages/growpart/
[3] https://git.launchpad.net/cloud-init/tree/cloudinit/distros/arch.py



regards,
Erich

-BEGIN PGP SIGNATURE-

iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAl0H7csACgkQCu7JB1Xa
e1pDBg//ad20dxPOMwkBx6ZXFK6W/Cq9qsG0T0iUP3p8pazDQkDUCV9B6UNSFLPf
dY9uGXSnKKq4N/HsXGce4SySl6dCpRMLeVEd3oAFfXem9XhLdFQbqA2OhF4Xe3k/
4lXDJW2rQciuKw8gxAwRodZ5pRXDnW8LYcFyCy/eT84SZwQAztjM//Evdn805I4T
kc8M55sEzjOr7lYPnBafMYx2gzVMGtLBB3nV+Ln0D0Tq53nIU7i3GSOfnihbzg3X
HtH78scbH44EYeEjTjZBw/heU6UmQReZls4pSI5bL5lF7EpvpiCakVXNZJ5VOyfn
pT9tQ9Z8b9ok3+DRfyYpuQACSK+PAL5d10mizVvvZn6XyfdfgYLTMUIw1wm/7rha

[arch-projects] [netctl] netctl, cloud-init, and systemd

2019-06-17 Thread Conrad Hoffmann via arch-projects
Ohai!

One of my pet projects atm is creating useful Arch Linux cloud images
(mostly EC2 AMIs), which mostly means giving some lovin' to the
cloud-init AUR package [1]. My dream is for Arch to one day have
official cloud images, but that's a completely different story ;)

So, it turns out the default kernel and two AUR packages [1][2] already
get you a pretty long way. One thing that remains a bit difficult though
is network configuration, and that's what this is about.

In case you are not familiar with cloud-init, the idea is that you can
build a single OS image that runs cloud-init on boot, and cloud-init
will take care of such things as network configuration, so that the same
image will work regardless of the network setup you choose for the cloud
instance.

The current cloud-init implementation for Arch uses netctl [3]. The
implementation is correct in such a way that it does indeed render the
right netctl profile(s) and enables them. However there is a problem:
they are not being started. AFAICT this is because cloud-init does this
while the systemd boot is already in process, and changing the
dependency graph (by adding new units) does not have any effect until
the next run (everything works right on second boot). Note that I even
tried having cloud-init run `systemd daemon-reload` after enabling the
units, but it didn't help either.

The reason I am posting this here is that this seems to be an issue due
to the particular way netctl use systemd units. Since you don't know the
names or the number of profiles (units) that will be generated during
image creation, you cannot enable them at that time. But doing so during
first boot does not seem to work.

Just for comparison, if one were to use e.g. systemd-networkd instead,
you would just enable the systemd-networkd unit during image creation,
cloud-init could generate the appropriate config for any number of
devices, and when the unit starts it will do the right thing. Likewise
on other distros, e.g. Debian with /etc/network/interfaces or such.

Now, from my point of view, there could be several approaches to solve this:

1. systemd supports updates of the dep graph during boot
2. support such a use case in netctl
3. change cloud-init to use systemd-networkd for Arch

Let me quickly elaborate:

1. is intentionally not phrased as something to be done. It might
already be a thing, I just couldn't figure out how to do it. If someone
knows more about this, I would love to hear about it. If this works, it
would be the easiest solution. However, if it doesn't, I don't have my
hopes up high for this being added to systemd anytime soon.

2. is the main reason I am writing this. Things that came to mind were
another special unit (netctl-all?), or even just a well-defined
interface to write devices into the state file, so that the plain netctl
unit would work. I would be very interested to hear how such a thing
sounds to you, the developers?

3. Is of course an option, but would require quite a bit of work in
cloud-init. That work, if done right, might however at some point
benefit other distros, should they be using systemd-networkd as well.
The main reason I am also bringing this up that I was wondering if there
are possibly any plans to abandon netctl anyways at some point in favor
of distro-agnostic solutions (be it systemd-networkd or any other).

So, sorry for the long mail, but I probably omitted a few crucial
details already, so don't hesitate to ask for clarifications :)

I would love to hear your thoughts on this!

Thanks a lot,
Conrad

[1] https://aur.archlinux.org/packages/cloud-init/
[2] https://aur.archlinux.org/packages/growpart/
[3] https://git.launchpad.net/cloud-init/tree/cloudinit/distros/arch.py


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20190329-6-gf522ce2

2019-06-12 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  f522ce2277100a147baa2656753231b14cf1f71d (commit)
  from  774774961025b79d84a466f75c651ce17c946928 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit f522ce2277100a147baa2656753231b14cf1f71d
Author: Levente Polyak 
Date:   Wed Jun 12 23:59:01 2019 +0200

offload-build: disable shellcheck false-positive for shell-escape

---

Summary of changes:
 offload-build | 1 +
 1 file changed, 1 insertion(+)


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20190329-6-g5b5cd40

2019-06-12 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  5b5cd407c14c50976455f337ca479f5c012c3eab (commit)
   via  aa7a454e03c9252cbb4fea7c3689abff88fa4ba4 (commit)
   via  9aad92338c3150fe5314b2fe20c8bf6dceaee778 (commit)
   via  b3fca0a2e6f1162cec99f23ba3fc8693c4236ba5 (commit)
  from  321e998020cfdb337c1ebc1ac41f5e729b9e276c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 5b5cd407c14c50976455f337ca479f5c012c3eab
Author: Eli Schwartz via arch-projects 
Date:   Tue Jun 4 12:11:20 2019 -0400

doc: add manpage for the new offload-build tool

Signed-off-by: Eli Schwartz 

commit aa7a454e03c9252cbb4fea7c3689abff88fa4ba4
Author: Eli Schwartz via arch-projects 
Date:   Tue Jun 4 12:11:19 2019 -0400

Add new tool: offload-build

This tool is useful for running makechrootpkg on a remote build server,
and is by default hooked up to send a PKGBUILD and initiate a build on
our shiny new build server "dragon".

Signed-off-by: Eli Schwartz 

commit 9aad92338c3150fe5314b2fe20c8bf6dceaee778
Author: Eli Schwartz via arch-projects 
Date:   Thu May 9 22:58:26 2019 -0400

Revert "makechrootpkg: sync_chroot: Make more general."

This reverts commit 6d1992909cc46e293027ff488ae2632047603e66.

It has never worked. In commit c86823a2d4a4152c71faa1c3bab227756232996f
it was noted that it compared the device numbers for [[ $1 = $1 ]] which
was a useless check and always returned true, for *any* btrfs
filesystem. Now that the function is corrected to compare [[ $1 = $2 ]]
the check is still useless, but this time because it always returns
false -- btrfs subvolumes on the same filesystem do *not* share device
numbers.

So let's go back to the original working implementation that only
matters in terms of makechrootpkg, and just checks if makechrootpkg's
root working directory is btrfs (in which case we know it will be a
subvolume because mkarchroot will create it that way).

This restores our special support for the btrfs filesystem.

Signed-off-by: Eli Schwartz 

commit b3fca0a2e6f1162cec99f23ba3fc8693c4236ba5
Author: Jelle van der Waa 
Date:   Mon May 6 16:10:09 2019 +0200

Remove finddeps tool

finddeps depends on a no longer existing ABS tree. This data can also be
queried via archweb.

---

Summary of changes:
 .gitignore   |   1 -
 Makefile |   3 +-
 doc/offload-build.1.asciidoc |  52 +
 finddeps.in  |  41 -
 lib/archroot.sh  |   8 
 makechrootpkg.in |  32 ++---
 offload-build| 107 +++
 zsh_completion.in|   6 +--
 8 files changed, 175 insertions(+), 75 deletions(-)
 create mode 100644 doc/offload-build.1.asciidoc
 delete mode 100644 finddeps.in
 create mode 100755 offload-build


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [PATCH v3 1/2] Add new tool: offload-build

2019-06-04 Thread Eli Schwartz via arch-projects
This tool is useful for running makechrootpkg on a remote build server,
and is by default hooked up to send a PKGBUILD and initiate a build on
our shiny new build server "dragon".

Signed-off-by: Eli Schwartz 
---

v3: Add passthrough of archbuild options as requested by anthraxx. 

 Makefile  |   1 +
 offload-build | 107 ++
 2 files changed, 108 insertions(+)
 create mode 100755 offload-build

diff --git a/Makefile b/Makefile
index ba2d3e4..2306a17 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@ IN_PROGS = \
 
 BINPROGS = \
$(IN_PROGS) \
+   offload-build \
sogrep
 
 CONFIGFILES = \
diff --git a/offload-build b/offload-build
new file mode 100755
index 000..101a146
--- /dev/null
+++ b/offload-build
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+#   offload-build - build a PKGBUILD on a remote server using makechrootpkg.
+#
+#   Copyright (c) 2019 by Eli Schwartz 
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see .
+#
+
+
+# global defaults suitable for use by Arch staff
+repo=extra
+arch=x86_64
+server=dragon.archlinux.org
+
+die() { printf "error: $1\n" "${@:2}"; exit 1; }
+
+usage() {
+cat <<- _EOF_
+   Usage: ${BASH_SOURCE[0]##*/} [--repo REPO] [--arch 
ARCHITECTURE] [--server SERVER] -- [ARCHBUILD_ARGS]
+
+   Build a PKGBUILD on a remote server using makechrootpkg. 
Requires a remote user
+   that can run archbuild without password auth. Options passed 
after a -- are
+   passed on to archbuild, and eventually to makechrootpkg.
+
+   OPTIONS
+   -r, --repo  Build against a specific repository 
(current: $repo)
+   -a, --arch  Build against a specific architecture 
(current: $arch)
+   -s, --serverOffload to a specific build server 
(current: $server)
+   -h, --help  Show this help text
+_EOF_
+}
+
+# option checking
+while (( $# )); do
+case $1 in
+-h|--help)
+usage
+exit 0
+;;
+-r|--repo)
+repo=$2
+shift 2
+;;
+-a|--arch)
+arch=$2
+shift 2
+;;
+-s|--server)
+server=$2
+shift 2
+;;
+--)
+shift
+break
+;;
+*)
+die "invalid argument: %s" "$1"
+;;
+esac
+done
+
+# multilib must be handled specially
+if [[ $repo = multilib* ]]; then
+arch=
+fi
+
+archbuild_cmd=("${repo}${arch:+-$arch}-build" "$@")
+
+trap 'rm -rf $SRCPKGDEST' EXIT
+
+# Use a source-only tarball as an intermediate to transfer files. This
+# guarantees the checksums are okay, and guarantees that all needed files are
+# transferred, including local sources, install scripts, and changelogs.
+export SRCPKGDEST=$(mktemp -d)
+makepkg --source || die "unable to make source package"
+
+mapfile -t files < <(
+# This is sort of bash golfing but it allows running a mildly complex
+# command over ssh with a single connection.
+cat "$SRCPKGDEST"/*.src.tar.gz |
+ssh $server '
+temp="${XDG_CACHE_HOME:-$HOME/.cache}/offload-build" &&
+mkdir -p "$temp" &&
+temp=$(mktemp -d -p "$temp") &&
+cd "$temp" &&
+{
+bsdtar --strip-components 1 -xvf - &&
+script -qefc "'"${archbuild_cmd[@]@Q}"'" /dev/null &&
+printf "%s\n" "" "-> build complete" &&
+printf "\t%s\n" "$temp"/*
+} >&2 &&
+makepkg --packagelist
+')
+
+(( ${#files[@]} )) && printf '%s\n' '' '-> copying files...' && scp 
"${files[@]/#/$server:}" .
-- 
2.21.0


[arch-projects] [devtools] [PATCH v3 2/2] doc: add manpage for the new offload-build tool

2019-06-04 Thread Eli Schwartz via arch-projects
Signed-off-by: Eli Schwartz 
---

v3: update manpage for new v3 parameters.

 Makefile |  1 +
 doc/offload-build.1.asciidoc | 52 
 2 files changed, 53 insertions(+)
 create mode 100644 doc/offload-build.1.asciidoc

diff --git a/Makefile b/Makefile
index 2306a17..27cd90f 100644
--- a/Makefile
+++ b/Makefile
@@ -69,6 +69,7 @@ BASHCOMPLETION_LINKS = \
 MANS = \
doc/lddd.1 \
doc/checkpkg.1 \
+   doc/offload-build.1 \
doc/sogrep.1 \
doc/mkarchroot.1 \
doc/find-libdeps.1 \
diff --git a/doc/offload-build.1.asciidoc b/doc/offload-build.1.asciidoc
new file mode 100644
index 000..3633faa
--- /dev/null
+++ b/doc/offload-build.1.asciidoc
@@ -0,0 +1,52 @@
+offload-build(1)
+
+
+Name
+
+offload-build - Build a PKGBUILD on a remote server using makechrootpkg
+
+Synopsis
+
+offload-build [OPTIONS] -- [ARCHBUILD_OPTIONS]
+
+Description
+---
+
+Build a PKGBUILD on a remote server using makechrootpkg. Requires a remote user
+that can run archbuild in a non-interactive manner, e.g. must be able to
+elevate permissions using passwordless sudo.
+
+Options
+---
+
+*-r, --repo* ::
+   Build against a specific repository. The default is `extra`, to build 
packages using
+   the stable repositories via extra-x86_64-build.
+
+*-a, --arch* ::
+   Build against a specific architecture. The default is `x86_64`, the only
+   architecture officially supported by Arch Linux.
+
+*-s, --server* ::
+   Offload to a specific build server. The default is dragon.archlinux.org
+   which is used as part of the build toolchain for the official Arch Linux
+   repos.
+
+*-h, --help*::
+   Show a help text.
+
+Passing options to archbuild
+
+
+Options after a delimiting -- are passed on to archbuild on the remote.
+archbuild in turn supports passing arguments on to makechrootpkg, which in turn
+supports passing options to makepkg. Since each uses -- to delimit options that
+are forwarded, make sure to escape them properly:
+
+   `offload-build offload-args -- archbuild-args -- makechrootpkg-args -- 
makepkg-args`
+
+Example: To use a second `testing-x86_64-build` instance with another copydir:
+
+   `offload-build -r testing -- -- -l `
+
+include::footer.asciidoc[]
-- 
2.21.0


[arch-projects] [namcap] [PATCH v2 3/4] nonuniquesources: Also warn on downloaded common filenames not overriding name to be unique

2019-05-27 Thread James P. Harvey via arch-projects
Downloaded files in source() are required to be unique.  A common
violation of this is from community named files (i.e. LICENSE) that
aren't part of an upstream tarball.

Warn if a source file is downloaded, doesn't have an overriding name,
and has a commonly used name, ignoring extension and case.

Signed-off-by: James P. Harvey 
---
 Namcap/rules/nonuniquesources.py | 22 --
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/Namcap/rules/nonuniquesources.py b/Namcap/rules/nonuniquesources.py
index a16f56e..216ae82 100644
--- a/Namcap/rules/nonuniquesources.py
+++ b/Namcap/rules/nonuniquesources.py
@@ -26,9 +26,27 @@ from Namcap.ruleclass import PkgbuildRule
 class nonuniquesources(PkgbuildRule):
name = "nonuniquesources"
description = "Verifies the downloaded sources have a unique filename"
+
def analyze(self, pkginfo, tar):
+   filename_begins_upper_case = [
+   "AUTHORS",
+   "CHANGELOG",
+   "CONTRIBUTING",
+   "COPYING",
+   "COPYRIGHT",
+   "HACKING",
+   "HISTORY",
+   "LICENSE",
+   "NEWS",
+   "README",
+   "TODO"
+   ]
+
for source_file in pkginfo["source"]:
-   if '::' not in source_file and 
re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', os.path.basename(source_file)):
-   self.warnings.append(("non-unique-source-name 
%s", os.path.basename(source_file)))
+   if '::' not in source_file:
+   basename = os.path.basename(source_file)
+   if 
re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', basename) \
+   or ('://' in source_file and 
basename.upper().split('.')[0] in filename_begins_upper_case):
+   
self.warnings.append(("non-unique-source-name %s", basename))
 
 # vim: set ts=4 sw=4 noet:
-- 
2.21.0


[arch-projects] [namcap] [PATCH v2 4/4] nonuniquesources: Add test for common filenames

2019-05-27 Thread James P. Harvey via arch-projects
Signed-off-by: James P. Harvey 
---
 .../tests/pkgbuild/test_nonuniquesources.py   | 36 +++
 1 file changed, 36 insertions(+)

diff --git a/Namcap/tests/pkgbuild/test_nonuniquesources.py 
b/Namcap/tests/pkgbuild/test_nonuniquesources.py
index 1c6d75c..b647051 100644
--- a/Namcap/tests/pkgbuild/test_nonuniquesources.py
+++ b/Namcap/tests/pkgbuild/test_nonuniquesources.py
@@ -55,4 +55,40 @@ package() {
self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"v1.2.3.tar.gz")])
self.assertEqual(r.infos, [])
 
+   def test_common_repo_non_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'LICENSE')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [])
+   self.assertEqual(r.infos, [])
+
+   def test_common_external_overridden(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 
'${pkgname}-LICENSE::vcs+protocol://www.example.com/LICENSE')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [])
+   self.assertEqual(r.infos, [])
+
+   def test_common_external_unique_part(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'git+https://www.example.com/LICENSE-pkgname')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [])
+   self.assertEqual(r.infos, [])
+
+   def test_common_external_non_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'bzr+https://www.example.com/LICENSE')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"LICENSE")])
+   self.assertEqual(r.infos, [])
+
+   def test_common_external_non_unique_ignoring_extension(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'hg+http://www.example.com/LICENSE.txt')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"LICENSE.txt")])
+   self.assertEqual(r.infos, [])
+
+   def test_common_external_non_unique_case_insensitive(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'svn+http://www.example.com/LiCeNsE.tXt')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"LiCeNsE.tXt")])
+   self.assertEqual(r.infos, [])
+
 # vim: set ts=4 sw=4 noet:
-- 
2.21.0


[arch-projects] [namcap] [PATCH] Add warning about following case of preSetUp()

2019-05-26 Thread James P. Harvey via arch-projects
Spent too much time figuring out why I was getting an error of "object
has no attribute 'rule'".  Perhaps it's correct spelling and grammer for
"set up" to be two words here, being used as a verb, but I wasn't
expecting that.  Maybe this will help someone someday.

Signed off by: James P. Harvey 
---
 README | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/README b/README
index c90315e..e7f07d2 100644
--- a/README
+++ b/README
@@ -160,6 +160,9 @@ class NamcapPkgnameInDescTest(PkgbuildTest):
 
 * the preSetUp() method sets the rule to be used in the test
 
+* note the case, using preSetup() will cause the error "object has no attribute
+  'rule'"
+
 * the test_example1() method runs the rule on the given PKGBUILD and
   tests whether the results are as expected
 
-- 
2.21.0


[arch-projects] [namcap] [PATCH 4/4] nonuniquesources: Add test for common filenames

2019-05-26 Thread James P. Harvey via arch-projects
Signed-off-by: James P. Harvey 
---
 .../tests/pkgbuild/test_nonuniquesources.py   | 36 +++
 1 file changed, 36 insertions(+)

diff --git a/Namcap/tests/pkgbuild/test_nonuniquesources.py 
b/Namcap/tests/pkgbuild/test_nonuniquesources.py
index 1c6d75c..b8f3542 100644
--- a/Namcap/tests/pkgbuild/test_nonuniquesources.py
+++ b/Namcap/tests/pkgbuild/test_nonuniquesources.py
@@ -55,4 +55,40 @@ package() {
self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"v1.2.3.tar.gz")])
self.assertEqual(r.infos, [])
 
+   def test_common_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' '${pkgname}-LICENSE::LICENSE.txt')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [])
+   self.assertEqual(r.infos, [])
+
+   def test_common_repo_non_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'LICENSE')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"LICENSE")])
+   self.assertEqual(r.infos, [])
+
+   def test_common_repo_part_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'LICENSE-pkgname.txt')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [])
+   self.assertEqual(r.infos, [])
+
+   def test_common_repo_part_non_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'LICENSE.txt')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"LICENSE.txt")])
+   self.assertEqual(r.infos, [])
+
+   def test_common_external_non_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'ftp://example.com/LICENSE.txt')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"LICENSE.txt")])
+   self.assertEqual(r.infos, [])
+
+   def test_common_case_insensitive(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('pkgname.tar.xz' 'ftp://example.com/license.txt')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"license.txt")])
+   self.assertEqual(r.infos, [])
+
 # vim: set ts=4 sw=4 noet:
-- 
2.21.0


[arch-projects] [namcap] [PATCH 2/4] Add test for non-unique source filenames

2019-05-26 Thread James P. Harvey via arch-projects
Signed-off-by: James P. Harvey 
---
 .../tests/pkgbuild/test_nonuniquesources.py   | 58 +++
 1 file changed, 58 insertions(+)
 create mode 100644 Namcap/tests/pkgbuild/test_nonuniquesources.py

diff --git a/Namcap/tests/pkgbuild/test_nonuniquesources.py 
b/Namcap/tests/pkgbuild/test_nonuniquesources.py
new file mode 100644
index 000..1c6d75c
--- /dev/null
+++ b/Namcap/tests/pkgbuild/test_nonuniquesources.py
@@ -0,0 +1,58 @@
+#
+# namcap rules - non-unique sources
+# Copyright (C) 2019 James P. Harvey 
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+
+from Namcap.tests.pkgbuild_test import PkgbuildTest
+import Namcap.rules.nonuniquesources as module
+
+class NamcapNonUniqueSourcesTest(PkgbuildTest):
+   pkgbuild_no_source = """
+pkgname=__namcap_test_uniquesources
+pkgver=1.0
+pkgrel=1
+pkgdesc="A package"
+arch=('i686' 'x86_64')
+url="http://www.example.com/;
+license=('GPL')
+depends=('glibc')
+build() {
+  true
+}
+package() {
+  true
+}
+"""
+
+   test_valid = PkgbuildTest.valid_tests
+
+   def preSetUp(self):
+   self.rule = module.nonuniquesources
+
+   def test_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + "source=('a' 
'b')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [])
+   self.assertEqual(r.infos, [])
+
+   def test_versioned_non_unique(self):
+   r = self.run_on_pkg(self.pkgbuild_no_source + 
"source=('v1.2.3.tar.gz')")
+   self.assertEqual(r.errors, [])
+   self.assertEqual(r.warnings, [("non-unique-source-name %s", 
"v1.2.3.tar.gz")])
+   self.assertEqual(r.infos, [])
+
+# vim: set ts=4 sw=4 noet:
-- 
2.21.0


[arch-projects] [namcap] [PATCH 3/4] nonuniquesources: Also warn on common filenames not overriding name to be unique

2019-05-26 Thread James P. Harvey via arch-projects
Filenames in source() are required to be unique.  A common violation of
this is from commonly named files (i.e. LICENSE) that aren't part of an
upstream tarball.

Warn if a source file doesn't have an overriding name, and has a
commonly used name, ignoring extension and case.

Signed-off-by: James P. Harvey 
---
 Namcap/rules/nonuniquesources.py | 22 --
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/Namcap/rules/nonuniquesources.py b/Namcap/rules/nonuniquesources.py
index a16f56e..8d8afcd 100644
--- a/Namcap/rules/nonuniquesources.py
+++ b/Namcap/rules/nonuniquesources.py
@@ -26,9 +26,27 @@ from Namcap.ruleclass import PkgbuildRule
 class nonuniquesources(PkgbuildRule):
name = "nonuniquesources"
description = "Verifies the downloaded sources have a unique filename"
+
def analyze(self, pkginfo, tar):
+   filename_begins_upper_case = [
+   "AUTHORS",
+   "CHANGELOG",
+   "CONTRIBUTING",
+   "COPYING",
+   "COPYRIGHT",
+   "HACKING",
+   "HISTORY",
+   "LICENSE",
+   "NEWS",
+   "README",
+   "TODO"
+   ]
+
for source_file in pkginfo["source"]:
-   if '::' not in source_file and 
re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', os.path.basename(source_file)):
-   self.warnings.append(("non-unique-source-name 
%s", os.path.basename(source_file)))
+   if '::' not in source_file:
+   basename = os.path.basename(source_file)
+   if 
re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', basename) \
+   or 
basename.upper().split('.')[0] in filename_begins_upper_case:
+   
self.warnings.append(("non-unique-source-name %s", basename))
 
 # vim: set ts=4 sw=4 noet:
-- 
2.21.0


[arch-projects] [namcap] [PATCH 1/4] Split warning for non-unique source filenames from pkginfo rules

2019-05-26 Thread James P. Harvey via arch-projects
This was originally here, because it used PkgInfoRule, but was changed to use
PkgbuildRule and was left here.

Signed-off-by: James P. Harvey 
---
 Namcap/rules/__init__.py |  1 +
 Namcap/rules/nonuniquesources.py | 34 
 Namcap/rules/pkginfo.py  | 11 +--
 3 files changed, 36 insertions(+), 10 deletions(-)
 create mode 100644 Namcap/rules/nonuniquesources.py

diff --git a/Namcap/rules/__init__.py b/Namcap/rules/__init__.py
index dcc950f..111f08b 100644
--- a/Namcap/rules/__init__.py
+++ b/Namcap/rules/__init__.py
@@ -62,6 +62,7 @@ from . import (
   makedepends,
   makepkgfunctions,
   missingvars,
+  nonuniquesources,
   pkginfo,
   pkgnameindesc,
   sfurl,
diff --git a/Namcap/rules/nonuniquesources.py b/Namcap/rules/nonuniquesources.py
new file mode 100644
index 000..a16f56e
--- /dev/null
+++ b/Namcap/rules/nonuniquesources.py
@@ -0,0 +1,34 @@
+#
+# namcap rules - package variables
+# Copyright (C) 2018 Simon Doppler 
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+
+"These rules checks basic sanity of source files"
+
+import re
+import os
+from Namcap.ruleclass import PkgbuildRule
+
+class nonuniquesources(PkgbuildRule):
+   name = "nonuniquesources"
+   description = "Verifies the downloaded sources have a unique filename"
+   def analyze(self, pkginfo, tar):
+   for source_file in pkginfo["source"]:
+   if '::' not in source_file and 
re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', os.path.basename(source_file)):
+   self.warnings.append(("non-unique-source-name 
%s", os.path.basename(source_file)))
+
+# vim: set ts=4 sw=4 noet:
diff --git a/Namcap/rules/pkginfo.py b/Namcap/rules/pkginfo.py
index 5a42810..216e417 100644
--- a/Namcap/rules/pkginfo.py
+++ b/Namcap/rules/pkginfo.py
@@ -20,8 +20,7 @@
 "These rules checks basic sanity of package metadata"
 
 import re
-import os
-from Namcap.ruleclass import PkgInfoRule,PkgbuildRule
+from Namcap.ruleclass import PkgInfoRule
 
 class CapsPkgnameRule(PkgInfoRule):
name = "capsnamespkg"
@@ -44,12 +43,4 @@ class LicenseRule(PkgInfoRule):
if "license" not in pkginfo or len(pkginfo["license"]) == 0:
self.errors.append(("missing-license", ()))
 
-class NonUniqueSourcesRule(PkgbuildRule):
-   name = "non-unique-source"
-   description = "Verifies the downloaded sources have a unique filename"
-   def analyze(self, pkginfo, tar):
-   for source_file in pkginfo["source"]:
-   if '::' not in source_file and 
re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', os.path.basename(source_file)):
-   self.warnings.append(("non-unique-source-name 
%s", os.path.basename(source_file)))
-
 # vim: set ts=4 sw=4 noet:
-- 
2.21.0


[arch-projects] [namcap] [PATCH] Remove all trailing whitespace

2019-05-26 Thread James P. Harvey via arch-projects
Done by:
$ find . -not \( -name .git -prune \) -type f -print0 | xargs -0 sed -i -E 
"s/[[:space:]]*$//"

And manually reviewed.

Signed-off-by: James P. Harvey 
---
 COPYING   | 10 +--
 Namcap/__init__.py|  6 +-
 Namcap/depends.py |  6 +-
 Namcap/package.py |  6 +-
 Namcap/ruleclass.py   |  4 +-
 Namcap/rules/__init__.py  |  6 +-
 Namcap/rules/arrays.py|  6 +-
 Namcap/rules/badbackups.py|  6 +-
 Namcap/rules/carch.py |  6 +-
 Namcap/rules/emptydir.py  |  6 +-
 Namcap/rules/externalhooks.py |  6 +-
 Namcap/rules/extravars.py |  6 +-
 Namcap/rules/fhs.py   |  6 +-
 Namcap/rules/filenames.py |  4 +-
 Namcap/rules/fileownership.py |  6 +-
 Namcap/rules/gnomemime.py | 16 ++---
 Namcap/rules/hardlinks.py |  6 +-
 Namcap/rules/invalidstartdir.py   |  6 +-
 Namcap/rules/kdeprograms.py   |  4 +-
 Namcap/rules/libtool.py   |  6 +-
 Namcap/rules/licensepkg.py|  6 +-
 Namcap/rules/lotsofdocs.py|  6 +-
 Namcap/rules/makepkgfunctions.py  |  6 +-
 Namcap/rules/mimefiles.py |  6 +-
 Namcap/rules/missingbackups.py|  6 +-
 Namcap/rules/missingvars.py   |  4 +-
 Namcap/rules/pathdepends.py   |  6 +-
 Namcap/rules/perllocal.py |  6 +-
 Namcap/rules/permissions.py   |  6 +-
 Namcap/rules/pkginfo.py   |  6 +-
 Namcap/rules/pkgnameindesc.py |  4 +-
 Namcap/rules/scrollkeeper.py  |  6 +-
 Namcap/rules/sfurl.py |  6 +-
 Namcap/rules/shebangdepends.py|  6 +-
 Namcap/rules/sodepends.py |  6 +-
 Namcap/rules/splitpkgbuild.py |  6 +-
 Namcap/rules/symlink.py   |  6 +-
 Namcap/tags.py|  6 +-
 Namcap/tests/makepkg.py   |  4 +-
 Namcap/tests/package/test_anyelf.py   |  4 +-
 Namcap/tests/package/test_elffiles.py |  4 +-
 Namcap/tests/package/test_emptydirs.py|  4 +-
 Namcap/tests/package/test_externalhooks.py|  8 +--
 Namcap/tests/package/test_fhs.py  |  4 +-
 Namcap/tests/package/test_filenames.py|  4 +-
 Namcap/tests/package/test_fileownership.py|  4 +-
 Namcap/tests/package/test_gnomemime.py|  4 +-
 Namcap/tests/package/test_hardlinks.py|  4 +-
 Namcap/tests/package/test_hicoloricons.py |  4 +-
 Namcap/tests/package/test_infodirectory.py|  4 +-
 Namcap/tests/package/test_kdeprograms.py  |  4 +-
 Namcap/tests/package/test_libtool.py  |  4 +-
 Namcap/tests/package/test_licensepkg.py   |  4 +-
 Namcap/tests/package/test_lotsofdocs.py   |  4 +-
 Namcap/tests/package/test_mimefiles.py|  4 +-
 Namcap/tests/package/test_missingbackups.py   |  4 +-
 Namcap/tests/package/test_pathdepends.py  |  4 +-
 Namcap/tests/package/test_perllocal.py|  4 +-
 Namcap/tests/package/test_permissions.py  |  4 +-
 Namcap/tests/package/test_rpath.py|  4 +-
 Namcap/tests/package/test_scrollkeeper.py |  4 +-
 Namcap/tests/package/test_shebangdepends.py   |  4 +-
 Namcap/tests/package/test_sodepends.py|  2 +-
 Namcap/tests/package/test_symlink.py  |  4 +-
 Namcap/tests/pkgbuild/test_arrays.py  |  4 +-
 Namcap/tests/pkgbuild/test_badbackups.py  |  4 +-
 Namcap/tests/pkgbuild/test_carch.py   |  4 +-
 Namcap/tests/pkgbuild/test_extravars.py   |  4 +-
 Namcap/tests/pkgbuild/test_invalidstartdir.py |  4 +-
 Namcap/tests/pkgbuild/test_missingvars.py |  4 +-
 Namcap/tests/pkgbuild/test_pkginfo.py |  4 +-
 Namcap/tests/pkgbuild/test_pkgnameindesc.py   |  4 +-
 Namcap/tests/pkgbuild/test_sfurl.py   |  4 +-
 Namcap/tests/pkgbuild/test_splitpkgbuild.py   |  4 +-
 Namcap/tests/pkgbuild_test.py |  4 +-
 Namcap/tests/test_depends.py  |  4 +-
 Namcap/version.py |  6 +-
 README| 68 +--
 namcap-tags   |  6 +-
 namcap.py | 14 ++--
 80 files changed, 240 insertions(+), 240 deletions(-)

diff --git a/COPYING b/COPYING
index b830682..022e560 100644
--- a/COPYING
+++ b/COPYING
@@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not 
licensed at all.
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-
+
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR 

Re: [arch-projects] [namcap] [PATCH 0/4] Add a rule against common filenames in source() without overridden name

2019-05-26 Thread James Harvey via arch-projects
On Sun, May 26, 2019 at 10:45 PM Eli Schwartz via arch-projects
 wrote:
> All your patches show up as attachments, which makes it difficult to
> review, and they don't show up in patchwork.
>
> Generally speaking, the most reliable way to send a patch is by using
> `git send-email`.

Sorry about that, I'll setup 'git send-email'.  Was just talking on
IRC because I saw they're scrubbed here:
https://lists.archlinux.org/pipermail/arch-projects/2019-May/thread.html

Should I re-send using 'git send-email' or leave as is?


Re: [arch-projects] [namcap] [PATCH 3/4] nonuniquesources: Also warn on common filenames not overriding name to be unique

2019-05-26 Thread Eli Schwartz via arch-projects
On 5/26/19 10:35 PM, James Harvey via arch-projects wrote:
> Filenames in source() are required to be unique.  A common violation of
> this is from commonly named files (i.e. LICENSE) that aren't part of an
> upstream tarball.
> 
> Warn if a source file doesn't have an overriding name, and has a
> commonly used name, ignoring extension and case.
> 
> Signed-off-by: James P. Harvey 
> 
> Namcap/rules/nonuniquesources.py | 22 --
>  1 file changed, 20 insertions(+), 2 deletions(-)

I expect the common case of files named "LICENSE", to be distributed
with the PKGBUILD rather than downloaded, in which case it will *always*
be unique (for the same reason "PKGBUILD" is unique).

The check would need to first make sure that there is a positively
existing download protocol.a


-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [namcap] [PATCH 0/4] Add a rule against common filenames in source() without overridden name

2019-05-26 Thread Eli Schwartz via arch-projects
On 5/26/19 10:35 PM, James Harvey via arch-projects wrote:
> There's no good way for namcap to ensure source() filenames are unique
> across all packages, required for users with SRCDEST.  But, I think by
> far the most common offending filename would be LICENSE, as
> non-standard ones are required to be included, but sometimes there's
> no upstream tarball or there is but it's not in there.  Mostly an
> issue for AUR packages, but maybe there are official ones violating
> this too.
> 
> We can at least check that if common names are in source(), they're
> given an overridden name.  (Personally, I'm going with
> "${pkgname}-LICENSE::", but this patch doesn't force this form.)
> 
> While adding this, split off the recently added non-unique versioned
> source filenames (non-overridden versioned tarballs) from pkginfo
> rules.  This was originally there using PkgInfoRule, but when it was
> switched to PkgbuildRule, it was left in pkginfo.py.
> 
> Also add tests for the recently added non-unique versioned source
> filenames rule.

All your patches show up as attachments, which makes it difficult to
review, and they don't show up in patchwork.

Generally speaking, the most reliable way to send a patch is by using
`git send-email`.


-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


[arch-projects] [namcap] [PATCH 4/4] nonuniquesources: Add test for common filenames (HEAD -> nonuniquesources)

2019-05-26 Thread James Harvey via arch-projects
Signed-off-by: James P. Harvey 

.../tests/pkgbuild/test_nonuniquesources.py   | 36 +++
 1 file changed, 36 insertions(+)


0004-nonuniquesources-Add-test-for-common-filenames.patch
Description: Binary data


[arch-projects] [namcap] [PATCH] Add warning about following case of preSetUp()

2019-05-26 Thread James Harvey via arch-projects
Spent too much time figuring out why I was getting an error of "object
has no attribute 'rule'".  Perhaps it's correct spelling and grammer for
"set up" to be two words here, being used as a verb, but I wasn't
expecting that.  Maybe this will help someone someday.

Signed off by: James P. Harvey 
---
 README | 3 +++
 1 file changed, 3 insertions(+)


0001-Add-warning-about-following-case-of-preSetUp.patch
Description: Binary data


[arch-projects] [namcap] [PATCH 2/4] Add test for non-unique source filenames

2019-05-26 Thread James Harvey via arch-projects
Signed-off-by: James P. Harvey 

 .../tests/pkgbuild/test_nonuniquesources.py   | 58 +++
 1 file changed, 58 insertions(+)
 create mode 100644 Namcap/tests/pkgbuild/test_nonuniquesources.py


0002-Add-test-for-non-unique-source-filenames.patch
Description: Binary data


[arch-projects] [namcap] [PATCH 1/4] Split warning for non-unique source filenames from pkginfo rules

2019-05-26 Thread James Harvey via arch-projects
This was originally here, because it used PkgInfoRule, but was changed to use
PkgbuildRule and was left here.

Signed-off-by: James P. Harvey 

Namcap/rules/__init__.py |  1 +
 Namcap/rules/nonuniquesources.py | 34 
 Namcap/rules/pkginfo.py  | 11 +--
 3 files changed, 36 insertions(+), 10 deletions(-)
 create mode 100644 Namcap/rules/nonuniquesources.py


0001-Split-warning-for-non-unique-source-filenames-from-p.patch
Description: Binary data


[arch-projects] [namcap] [PATCH 3/4] nonuniquesources: Also warn on common filenames not overriding name to be unique

2019-05-26 Thread James Harvey via arch-projects
Filenames in source() are required to be unique.  A common violation of
this is from commonly named files (i.e. LICENSE) that aren't part of an
upstream tarball.

Warn if a source file doesn't have an overriding name, and has a
commonly used name, ignoring extension and case.

Signed-off-by: James P. Harvey 

Namcap/rules/nonuniquesources.py | 22 --
 1 file changed, 20 insertions(+), 2 deletions(-)


0003-nonuniquesources-Also-warn-on-common-filenames-not-o.patch
Description: Binary data


[arch-projects] [namcap] [PATCH 0/4] Add a rule against common filenames in source() without overridden name

2019-05-26 Thread James Harvey via arch-projects
There's no good way for namcap to ensure source() filenames are unique
across all packages, required for users with SRCDEST.  But, I think by
far the most common offending filename would be LICENSE, as
non-standard ones are required to be included, but sometimes there's
no upstream tarball or there is but it's not in there.  Mostly an
issue for AUR packages, but maybe there are official ones violating
this too.

We can at least check that if common names are in source(), they're
given an overridden name.  (Personally, I'm going with
"${pkgname}-LICENSE::", but this patch doesn't force this form.)

While adding this, split off the recently added non-unique versioned
source filenames (non-overridden versioned tarballs) from pkginfo
rules.  This was originally there using PkgInfoRule, but when it was
switched to PkgbuildRule, it was left in pkginfo.py.

Also add tests for the recently added non-unique versioned source
filenames rule.


[arch-projects] [namcap] [PATCH] Remove all trailing whitespace

2019-05-26 Thread James Harvey via arch-projects
Done by:
$ find . -not \( -name .git -prune \) -type f -print0 | xargs -0 sed
-i -E "s/[[:space:]]*$//"

And manually reviewed.

Signed-off-by: James P. Harvey 

 COPYING   | 10 +--
 Namcap/__init__.py|  6 +-
 Namcap/depends.py |  6 +-
 Namcap/package.py |  6 +-
 Namcap/ruleclass.py   |  4 +-
 Namcap/rules/__init__.py  |  6 +-
 Namcap/rules/arrays.py|  6 +-
 Namcap/rules/badbackups.py|  6 +-
 Namcap/rules/carch.py |  6 +-
 Namcap/rules/emptydir.py  |  6 +-
 Namcap/rules/externalhooks.py |  6 +-
 Namcap/rules/extravars.py |  6 +-
 Namcap/rules/fhs.py   |  6 +-
 Namcap/rules/filenames.py |  4 +-
 Namcap/rules/fileownership.py |  6 +-
 Namcap/rules/gnomemime.py | 16 ++---
 Namcap/rules/hardlinks.py |  6 +-
 Namcap/rules/invalidstartdir.py   |  6 +-
 Namcap/rules/kdeprograms.py   |  4 +-
 Namcap/rules/libtool.py   |  6 +-
 Namcap/rules/licensepkg.py|  6 +-
 Namcap/rules/lotsofdocs.py|  6 +-
 Namcap/rules/makepkgfunctions.py  |  6 +-
 Namcap/rules/mimefiles.py |  6 +-
 Namcap/rules/missingbackups.py|  6 +-
 Namcap/rules/missingvars.py   |  4 +-
 Namcap/rules/pathdepends.py   |  6 +-
 Namcap/rules/perllocal.py |  6 +-
 Namcap/rules/permissions.py   |  6 +-
 Namcap/rules/pkginfo.py   |  6 +-
 Namcap/rules/pkgnameindesc.py |  4 +-
 Namcap/rules/scrollkeeper.py  |  6 +-
 Namcap/rules/sfurl.py |  6 +-
 Namcap/rules/shebangdepends.py|  6 +-
 Namcap/rules/sodepends.py |  6 +-
 Namcap/rules/splitpkgbuild.py |  6 +-
 Namcap/rules/symlink.py   |  6 +-
 Namcap/tags.py|  6 +-
 Namcap/tests/makepkg.py   |  4 +-
 Namcap/tests/package/test_anyelf.py   |  4 +-
 Namcap/tests/package/test_elffiles.py |  4 +-
 Namcap/tests/package/test_emptydirs.py|  4 +-
 Namcap/tests/package/test_externalhooks.py|  8 +--
 Namcap/tests/package/test_fhs.py  |  4 +-
 Namcap/tests/package/test_filenames.py|  4 +-
 Namcap/tests/package/test_fileownership.py|  4 +-
 Namcap/tests/package/test_gnomemime.py|  4 +-
 Namcap/tests/package/test_hardlinks.py|  4 +-
 Namcap/tests/package/test_hicoloricons.py |  4 +-
 Namcap/tests/package/test_infodirectory.py|  4 +-
 Namcap/tests/package/test_kdeprograms.py  |  4 +-
 Namcap/tests/package/test_libtool.py  |  4 +-
 Namcap/tests/package/test_licensepkg.py   |  4 +-
 Namcap/tests/package/test_lotsofdocs.py   |  4 +-
 Namcap/tests/package/test_mimefiles.py|  4 +-
 Namcap/tests/package/test_missingbackups.py   |  4 +-
 Namcap/tests/package/test_pathdepends.py  |  4 +-
 Namcap/tests/package/test_perllocal.py|  4 +-
 Namcap/tests/package/test_permissions.py  |  4 +-
 Namcap/tests/package/test_rpath.py|  4 +-
 Namcap/tests/package/test_scrollkeeper.py |  4 +-
 Namcap/tests/package/test_shebangdepends.py   |  4 +-
 Namcap/tests/package/test_sodepends.py|  2 +-
 Namcap/tests/package/test_symlink.py  |  4 +-
 Namcap/tests/pkgbuild/test_arrays.py  |  4 +-
 Namcap/tests/pkgbuild/test_badbackups.py  |  4 +-
 Namcap/tests/pkgbuild/test_carch.py   |  4 +-
 Namcap/tests/pkgbuild/test_extravars.py   |  4 +-
 Namcap/tests/pkgbuild/test_invalidstartdir.py |  4 +-
 Namcap/tests/pkgbuild/test_missingvars.py |  4 +-
 Namcap/tests/pkgbuild/test_pkginfo.py |  4 +-
 Namcap/tests/pkgbuild/test_pkgnameindesc.py   |  4 +-
 Namcap/tests/pkgbuild/test_sfurl.py   |  4 +-
 Namcap/tests/pkgbuild/test_splitpkgbuild.py   |  4 +-
 Namcap/tests/pkgbuild_test.py |  4 +-
 Namcap/tests/test_depends.py  |  4 +-
 Namcap/version.py |  6 +-
 README| 68 +--
 namcap-tags   |  6 +-
 namcap.py | 14 ++--
 80 files changed, 240 insertions(+), 240 deletions(-)


0001-Remove-all-trailing-whitespace.patch
Description: Binary data


I migliori profili Informatici a portata di click -- NewsLetter 03/2019.

2019-05-18 Thread Programs and Projects Consulting Srl
se non visualizza correttamente il messaggio clicchi qui

Consulenza ITC

La Programs & Projects Consulting e' il partner ideale per le aziende.

Proponiamo un'offerta di servizi completa ed integrata, dalla consulenza nella 
progettazione di sistemi informatici custom alla selezione e valorizzazione 
delle risorse umane, alla vendita di sistemi CRM scalabili completamente 
personalizzabili.

Time & Material

Oltre tre lustri di esperienza e professionalita' al vostro servizio.

Disponiamo di una vasta rosa di tecnici altamente specializzati distribuiti su 
tutto il territorio nazionale, adatti ad ogni vostra esigenza. Tutti i 
professionisti sono inquadrati come dipendenti diretti della nostra azienda.

Sviluppo Software

La Programs & Projects Consulting e' il tassello che ti manca.

Qualsiasi sia la vostra attivita', avere un Partner altamente specializzato che 
possa supportarvi dalla fase di progettazione alla messa in produzione, 
equivale a gettare delle solide fondamenta per il proprio futuro aziendale.

I
Via Cesare Brivio, 23 - IT
20158 Milano (MI)
Tel. +39.02.66809530
Fax +39.02.700531632
infomil...@p-pconsulting.com

I
Via Catania, 13 - IT
10093 Collegno (TO)
Tel. +39.02.84.179.298
Fax +39 0110441941
infotor...@p-pconsulting.com

I
C.da Coste Anitra, 8 - IT
83020 Aiello Del Sabato (AV)
Tel. +39.02.84.179.298
Fax. +39 08251681364
infoavell...@p-pconsulting.com

Programs & Projects Consulting S.r.L.
Azienda certificata ISO 9001
P.IVA/C.F. 02236340648 -- REA 144018

Nota Importante:
La P. & P. Consulting nel rispetto della privacy fa presente che se la 
comunicazione in oggetto dovesse risultare non gradita, ci scusiamo vivamente 
precisando in ogni caso che questa newsletter non e' riconducibile a spamming. 
Qualora non si desideri ricevere piu' questo tipo d'informazione clicchi qui .
body{ text-align: center; background: #00ECB9; font-family: sans-serif; 
font-weight: 100; } h1{ color: #396; font-weight: 100; font-size: 40px; margin: 
40px 0px 20px; }  

Re: [arch-projects] [netctl][PATCH] Move away from using wpa_actiond

2019-05-16 Thread Jouke Witteveen via arch-projects
On Thu, May 16, 2019 at 11:53 AM Emil Velikov  wrote:
> After a bit of debugging I've noticed the move to wpa_cli broke my setup.
> Namely: wpa_cli does not reliably detect when the laptop resumes into
> another wireless network.
> Issue happens fairly intermittently - from once a week to multiple
> times a day - yet I have not seen it even once in the years of using
> wpa_actiond.

Is this related to your wpa_actiond patch [1] to wait for three
missing PONGs before failing?

> Should I file a archlinux bug report, any suggestions how to proceed?

It would be nice if you could gather some more details about the issue
you are experiencing. Most likely, it indicates a bug in wpa_cli. In
my experience, you are likely to get a helpful response over at the
hostap mailing list.

Regards,
- Jouke

[1] https://patchwork.archlinux.org/patch/230/


Re: [arch-projects] [netctl][PATCH] Move away from using wpa_actiond

2019-05-16 Thread Emil Velikov via arch-projects
Hi team,

On Sat, 9 Feb 2019 at 09:19, Thomas Bächler  wrote:
>
> Am 8. Februar 2019 20:17:52 MEZ schrieb Jouke Witteveen 
> :
> >On Fri, Feb 8, 2019 at 3:36 PM Emil Velikov 
> >wrote:
> >>
> >> On Thu, 7 Feb 2019 at 14:50, Jouke Witteveen via arch-projects
> >>  wrote:
> >> >
> >> > The same functionality is provided by wpa_supplicant, so we do not
> >need
> >> > an extra and Arch Linux specific dependency.
> >>
> >> The introduction of wpa_actiond [1] hints there are issues with
> >wpa_cli. Namely:
> >> - partial or missing logging capabilities
> >> - race conditions
> >>
> >> Sadly I don't know much more about this. It'll be great if can use
> >> wpa_cli, while not introducing new issues.
> >>
> >> -Emil
> >>
> >> [1]
> >https://git.archlinux.org/wpa_actiond.git/commit/?id=c5c587771403d31ab4538e1c756e0b88a4641a92
> >
> >Thanks! This detective work is highly appreciated! For some reason I
> >had assumed wpa_cli would have gained this functionality only after
> >wpa_actiond came into existence. This couldn't really explain why both
> >use the same parameter names though...
> >I wonder if the issues with wpa_cli have been taken upstream. In my
> >experience, the maintainer of wpa_supplicant is very pleasant to work
> >with.
> >
> >autowifi and, later, wpa_actiond are important parts of the history of
> >netctl, but I tend to give over 10 years of development in
> >wpa_supplicant the benefit of the doubt. This means I would like to
> >try to move away from wpa_actiond anyway. Currently, except from those
> >using wpa_actiond directly, I think netctl is the only user of
> >wpa_actiond.
> >
> >@Thomas: do you have an oppinion in these matters?
> >
> >Thanks,
> >- Jouke
>
> I honestly don't remember why wpa_cli was insufficient at the time and why I 
> wrote wpa_actiond. That must have been way over 10 years ago. I just remember 
> that my first attempt used wpa_cli, and something obvious was missing.

After a bit of debugging I've noticed the move to wpa_cli broke my setup.
Namely: wpa_cli does not reliably detect when the laptop resumes into
another wireless network.
Issue happens fairly intermittently - from once a week to multiple
times a day - yet I have not seen it even once in the years of using
wpa_actiond.

Should I file a archlinux bug report, any suggestions how to proceed?

Thanks
Emil


[arch-projects] [devtools] [PATCH] Revert "makechrootpkg: sync_chroot: Make more general."

2019-05-09 Thread Eli Schwartz via arch-projects
This reverts commit 6d1992909cc46e293027ff488ae2632047603e66.

It has never worked. In commit c86823a2d4a4152c71faa1c3bab227756232996f
it was noted that it compared the device numbers for [[ $1 = $1 ]] which
was a useless check and always returned true, for *any* btrfs
filesystem. Now that the function is corrected to compare [[ $1 = $2 ]]
the check is still useless, but this time because it always returns
false -- btrfs subvolumes on the same filesystem do *not* share device
numbers.

So let's go back to the original working implementation that only
matters in terms of makechrootpkg, and just checks if makechrootpkg's
root working directory is btrfs (in which case we know it will be a
subvolume because mkarchroot will create it that way).

This restores our special support for the btrfs filesystem.

Signed-off-by: Eli Schwartz 
---
 lib/archroot.sh  |  8 
 makechrootpkg.in | 32 +---
 2 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/lib/archroot.sh b/lib/archroot.sh
index 2c03c82..06d4519 100644
--- a/lib/archroot.sh
+++ b/lib/archroot.sh
@@ -37,14 +37,6 @@ is_subvolume() {
[[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs && "$(stat -c %i "$1")" 
== 256 ]]
 }
 
-##
-#  usage : is_same_fs( $path_a, $path_b )
-# return : whether $path_a and $path_b are on the same filesystem
-##
-is_same_fs() {
-   [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]]
-}
-
 ##
 #  usage : subvolume_delete_recursive( $path )
 #
diff --git a/makechrootpkg.in b/makechrootpkg.in
index dc647b3..52e834b 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -75,37 +75,31 @@ load_vars() {
return 0
 }
 
-# Usage: sync_chroot $rootdir $copydir [$copy]
+# Usage: sync_chroot $chrootdir $copydir [$copy]
 sync_chroot() {
-   local rootdir=$1
+   local chrootdir=$1
local copydir=$2
local copy=${3:-$2}
 
-   if [[ "$rootdir" -ef "$copydir" ]]; then
+   if [[ "$chrootdir/root" -ef "$copydir" ]]; then
error 'Cannot sync copy with itself: %s' "$copydir"
return 1
fi
 
# Get a read lock on the root chroot to make
# sure we don't clone a half-updated chroot
-   slock 8 "$rootdir.lock" \
-   "Locking clean chroot [%s]" "$rootdir"
-
-   stat_busy "Synchronizing chroot copy [%s] -> [%s]" "$rootdir" "$copy"
-   if is_subvolume "$rootdir" && is_same_fs "$rootdir" "$(dirname -- 
"$copydir")" && ! mountpoint -q "$copydir"; then
-   if is_subvolume "$copydir"; then
-   subvolume_delete_recursive "$copydir" ||
-   die "Unable to delete subvolume %s" "$copydir"
-   else
-   # avoid change of filesystem in case of an umount 
failure
-   rm --recursive --force --one-file-system "$copydir" ||
-   die "Unable to delete %s" "$copydir"
-   fi
-   btrfs subvolume snapshot "$rootdir" "$copydir" >/dev/null ||
+   slock 8 "$chrootdir/root.lock" \
+   "Locking clean chroot [%s]" "$chrootdir/root"
+
+   stat_busy "Synchronizing chroot copy [%s] -> [%s]" "$chrootdir/root" 
"$copy"
+   if is_btrfs "$chrootdir" && ! mountpoint -q "$copydir"; then
+   subvolume_delete_recursive "$copydir" ||
+   die "Unable to delete subvolume %s" "$copydir"
+   btrfs subvolume snapshot "$chrootdir/root" "$copydir" 
>/dev/null ||
die "Unable to create subvolume %s" "$copydir"
else
mkdir -p "$copydir"
-   rsync -a --delete -q -W -x "$rootdir/" "$copydir"
+   rsync -a --delete -q -W -x "$chrootdir/root/" "$copydir"
fi
stat_done
 
@@ -388,7 +382,7 @@ main() {
lock 9 "$copydir.lock" "Locking chroot copy [%s]" "$copy"
 
if [[ ! -d $copydir ]] || $clean_first; then
-   sync_chroot "$chrootdir/root" "$copydir" "$copy"
+   sync_chroot "$chrootdir" "$copydir" "$copy"
fi
 
$update_first && arch-nspawn "$copydir" \
-- 
2.21.0


Re: [arch-projects] [devtools] [PATCH] Remove finddeps tool

2019-05-06 Thread Eli Schwartz via arch-projects
On 5/6/19 12:10 PM, Emil Velikov via arch-projects wrote:
> On Mon, 6 May 2019 at 15:10, Jelle van der Waa  wrote:
>>
>> From: Jelle van der Waa 
>>
>> finddeps depends on a no longer existing ABS tree. This data can also be
>> queried via archweb.
>> ---
> Out of curiosity:
> AFAICT all the information is already in the local DB, so
> theoretically pacman can present this.
> Yet I cannot find anything in the manual. Is the feature missing, has
> it been proposed and rejected before?

pacman -Sii pkgname => Required By

Does not cover makedepends (these do exist in the syncdb but won't be
properly exposed to libalpm until the next pacman release).

Does not cover packages that have not been built yet.

-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [devtools] [PATCH] Remove finddeps tool

2019-05-06 Thread Emil Velikov via arch-projects
On Mon, 6 May 2019 at 15:10, Jelle van der Waa  wrote:
>
> From: Jelle van der Waa 
>
> finddeps depends on a no longer existing ABS tree. This data can also be
> queried via archweb.
> ---
Out of curiosity:
AFAICT all the information is already in the local DB, so
theoretically pacman can present this.
Yet I cannot find anything in the manual. Is the feature missing, has
it been proposed and rejected before?

Thanks
Emil


Re: [arch-projects] [devtools] [PATCH] Remove finddeps tool

2019-05-06 Thread Eli Schwartz via arch-projects
On 5/6/19 10:10 AM, Jelle van der Waa wrote:
> From: Jelle van der Waa 
> 
> finddeps depends on a no longer existing ABS tree.

finddeps does not depend on the discontinued `abs` tool. It does work
fine with an svn-packages/svn-community checkout, or via the svntogit
exported tree.

$ cd svn-packages
$ finddeps glibc
./bzip2/repos/core-x86_64 (depends)
./bzip2/trunk (depends)
./pacman/trunk (depends)
./pacman/repos/core-x86_64 (depends)
./c-ares/repos/extra-x86_64 (depends)
./c-ares/trunk (depends)
./patch/repos/core-x86_64 (depends)
./patch/trunk (depends)
./libgpg-error/repos/core-x86_64 (depends)
./libgpg-error/trunk (depends)
./libnghttp2/repos/core-x86_64 (depends)
./libnghttp2/trunk (depends)
./libksba/trunk (depends)
./libksba/repos/core-x86_64 (depends)
./mkinitcpio-busybox/repos/core-x86_64 (depends)
./mkinitcpio-busybox/trunk (depends)

> This data can also be queried via archweb.

This is true. However, finddeps also works fine with any arbitrary
custom directory which contains subdirectories (to any recursive level)
of PKGBUILD files. For example, a tree full of PKGBUILDs acquired from
the AUR.

$ cd ~/git/pkgbuilds/
$ finddeps git
./calibre-git (makedepends)
./fanficfare-git (makedepends)
./git-extras-git (depends)
./git-extras (depends)
./kindletool-git (makedepends)
./lastpass-cli-git (makedepends)
./qbittorrent-git (makedepends)
./rapydscript-ng-git (makedepends)
./sigil-git (makedepends)
./vim-endwise-git (makedepends)
./vim-eunuch-git (makedepends)
./vim-flagship-git (makedepends)
./vim-gitgutter-git (depends)
./vim-sensible-git (makedepends)
./glibc-git (makedepends)
./pacman-git (makedepends)
./xapps-git (makedepends)
./cinnamon-desktop-git (makedepends)
./muffin-git (makedepends)
./cinnamon-settings-daemon-git (makedepends)
./cjs-git (makedepends)
./cinnamon-screensaver-git (makedepends)
./cinnamon-session-git (makedepends)
./cinnamon-git (makedepends)
./lib32-glibc-git (makedepends)

> ---
>  .gitignore|  1 -
>  Makefile  |  1 -
>  finddeps.in   | 41 -
>  zsh_completion.in |  6 +-
>  4 files changed, 1 insertion(+), 48 deletions(-)
>  delete mode 100644 finddeps.in
> 
> diff --git a/.gitignore b/.gitignore
> index b63587b..49afce6 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -6,7 +6,6 @@ archrelease
>  bash_completion
>  checkpkg
>  commitpkg
> -finddeps
>  lddd
>  makechrootpkg
>  mkarchroot
> diff --git a/Makefile b/Makefile
> index ba2d3e4..15c2786 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -10,7 +10,6 @@ IN_PROGS = \
>   archrelease \
>   archbuild \
>   lddd \
> - finddeps \
>   rebuildpkgs \
>   find-libdeps \
>   crossrepomove\
> diff --git a/finddeps.in b/finddeps.in
> deleted file mode 100644
> index 2a085e5..000
> --- a/finddeps.in
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -#!/bin/bash
> -#
> -# finddeps - find packages that depend on a given depname
> -#
> -# License: Unspecified
> -
> -m4_include(lib/common.sh)
> -
> -match=$1
> -
> -if [[ -z $match ]]; then
> - echo 'Usage: finddeps '
> - echo ''
> - echo 'Find packages that depend on a given depname.'
> - echo 'Run this script from the top-level directory of your ABS tree.'
> - echo ''
> - exit 1
> -fi
> -
> -find . -type d | while read -r d; do
> - if [[ -f "$d/PKGBUILD" ]]; then

This does not depend on any sort of organizational structure.

> - pkgname=() depends=() makedepends=() optdepends=()
> - # shellcheck source=PKGBUILD.proto
> - . "$d/PKGBUILD"
> - for dep in "${depends[@]}"; do
> - # lose the version comparator, if any
> - depname=${dep%%[<>=]*}
> - [[ $depname = "$match" ]] && echo "$d (depends)"
> - done
> - for dep in "${makedepends[@]}"; do
> - # lose the version comparator, if any
> - depname=${dep%%[<>=]*}
> - [[ $depname = "$match" ]] && echo "$d (makedepends)"
> - done
> - for dep in "${optdepends[@]/:*}"; do
> - # lose the version comaparator, if any
> - depname=${dep%%[<>=]*}
> - [[ $depname = "$match" ]] && echo "$d (optdepends)"
> - done
> - fi
> -done
> diff --git a/zsh_completion.in b/zsh_completion.in
> index 45429bd..5f2111f 100644
> --- a/zsh_completion.in
> +++ b/zsh_completion.in
> @@ -1,4 +1,4 @@
> -#compdef archbuild archco arch-nspawn archrelease commitpkg finddeps 
> makechrootpkg mkarchroot rebuildpkgs extrapkg=commitpkg corepkg=commitpkg 
> testingpkg=commitpkg stagingpkg=commitpkg communitypkg=commitpkg 
> community-testingpkg=commitpkg community-stagingpkg=commitpkg 
> multilibpkg=commitpkg multilib-testingpkg=commitpkg 
> extra-x86_64-build=archbuild testing-x86_64-build=archbuild 
> staging-x86_64-build=archbuild multilib-build=archbuild 
> 

Bug#610839: New Email Address

2019-04-25 Thread Seedling Projects
Hello,

Thank you for contacting the Good Food Foundation! This email address is no 
longer active. Please 
contact us at conn...@goodfoodfdn.org and update your records to reflect the 
change. 

All the best,
The Good Food Foundation Team



[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20190329-2-g321e998

2019-04-20 Thread Jelle van der Waa via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  321e998020cfdb337c1ebc1ac41f5e729b9e276c (commit)
   via  c86823a2d4a4152c71faa1c3bab227756232996f (commit)
  from  a49f55cbed51c815a9392c9f7fff5f8cec385935 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 321e998020cfdb337c1ebc1ac41f5e729b9e276c
Author: Erich Eckner 
Date:   Tue Apr 2 09:32:43 2019 +0200

fix whitespace/indentation errors

Some lines are indented by spaces, while adjacent lines are indentet by 
tabs.
We should use tabs on both.

Signed-off-by: Erich Eckner 

commit c86823a2d4a4152c71faa1c3bab227756232996f
Author: Erich Eckner 
Date:   Wed Apr 17 13:16:36 2019 +0200

is_same_fs() in lib/archroot.sh should use $1 and $2, not $1 and $1

The old behaviour would always evaluate to true - this is certainly not
what that function should do.

Signed-off-by: Erich Eckner 

---

Summary of changes:
 archbuild.in| 2 +-
 find-libdeps.in | 2 +-
 lib/archroot.sh | 2 +-
 mkarchroot.in   | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [PATCH v2] Add new tool: offload-build

2019-04-17 Thread Eli Schwartz via arch-projects
This tool is useful for running makechrootpkg on a remote build server,
and is by default hooked up to send a PKGBUILD and initiate a build on
our shiny new build server "dragon".

Signed-off-by: Eli Schwartz 
---

v2: script -qfc does not preserve the exit status of the wrapped
command. Add -e so that we can properly abort if makechrootpkg failed.

 Makefile  |   1 +
 offload-build | 100 ++
 2 files changed, 101 insertions(+)
 create mode 100755 offload-build

diff --git a/Makefile b/Makefile
index ba2d3e4..2306a17 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@ IN_PROGS = \
 
 BINPROGS = \
$(IN_PROGS) \
+   offload-build \
sogrep
 
 CONFIGFILES = \
diff --git a/offload-build b/offload-build
new file mode 100755
index 000..c991754
--- /dev/null
+++ b/offload-build
@@ -0,0 +1,100 @@
+#!/bin/bash
+#
+#   offload-build - build a PKGBUILD on a remote server using makechrootpkg.
+#
+#   Copyright (c) 2019 by Eli Schwartz 
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see .
+#
+
+
+# global defaults suitable for use by Arch staff
+repo=extra
+arch=x86_64
+server=dragon.archlinux.org
+
+die() { printf "error: $1\n" "${@:2}"; exit 1; }
+
+usage() {
+cat <<- _EOF_
+   Usage: ${BASH_SOURCE[0]##*/} [--repo REPO] [--arch 
ARCHITECTURE] [--server SERVER]
+
+   Build a PKGBUILD on a remote server using makechrootpkg. 
Requires a remote user
+   that can run archbuild without password auth.
+
+   OPTIONS
+   -r, --repo  Build against a specific repository 
(current: $repo)
+   -a, --arch  Build against a specific architecture 
(current: $arch)
+   -s, --serverOffload to a specific build server 
(current: $server)
+   -h, --help  Show this help text
+_EOF_
+}
+
+# option checking
+while (( $# )); do
+case $1 in
+-h|--help)
+usage
+exit 0
+;;
+-r|--repo)
+repo=$2
+shift 2
+;;
+-a|--arch)
+arch=$2
+shift 2
+;;
+-s|--server)
+server=$2
+shift 2
+;;
+*)
+die "invalid argument: %s" "$1"
+;;
+esac
+done
+
+# multilib must be handled specially
+if [[ $repo = multilib* ]]; then
+arch=
+fi
+
+trap 'rm -rf $SRCPKGDEST' EXIT
+
+# Use a source-only tarball as an intermediate to transfer files. This
+# guarantees the checksums are okay, and guarantees that all needed files are
+# transferred, including local sources, install scripts, and changelogs.
+export SRCPKGDEST=$(mktemp -d)
+makepkg --source || die "unable to make source package"
+
+mapfile -t files < <(
+# This is sort of bash golfing but it allows running a mildly complex
+# command over ssh with a single connection.
+cat "$SRCPKGDEST"/*.src.tar.gz |
+ssh $server '
+temp="${XDG_CACHE_HOME:-$HOME/.cache}/offload-build" &&
+mkdir -p "$temp" &&
+temp=$(mktemp -d -p "$temp") &&
+cd "$temp" &&
+{
+bsdtar --strip-components 1 -xvf - &&
+script -qefc '"${repo}${arch:+-$arch}-build"' /dev/null &&
+printf "%s\n" "" "-> build complete" &&
+printf "\t%s\n" "$temp"/*
+} >&2 &&
+makepkg --packagelist
+')
+
+(( ${#files[@]} )) && printf '%s\n' '' '-> copying files...' && scp 
"${files[@]/#/$server:}" .
-- 
2.21.0


[arch-projects] [devtools] [PATCH] is_same_fs() in lib/archroot.sh should use $1 and $2, not $1 and $1

2019-04-17 Thread arch--- via arch-projects
From: Erich Eckner 

The old behaviour would always evaluate to true - this is certainly not
what that function should do.

Signed-off-by: Erich Eckner 
---
 lib/archroot.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/archroot.sh b/lib/archroot.sh
index f2796034..2c03c827 100644
--- a/lib/archroot.sh
+++ b/lib/archroot.sh
@@ -42,7 +42,7 @@ is_subvolume() {
 # return : whether $path_a and $path_b are on the same filesystem
 ##
 is_same_fs() {
-   [[ "$(stat -c %d "$1")" == "$(stat -c %d "$1")" ]]
+   [[ "$(stat -c %d "$1")" == "$(stat -c %d "$2")" ]]
 }
 
 ##
-- 
2.21.0


[arch-projects] [devtools] [PATCH] doc: add manpage for the new offload-build tool

2019-04-14 Thread Eli Schwartz via arch-projects
Signed-off-by: Eli Schwartz 
---
 Makefile |  1 +
 doc/offload-build.1.asciidoc | 38 
 2 files changed, 39 insertions(+)
 create mode 100644 doc/offload-build.1.asciidoc

diff --git a/Makefile b/Makefile
index 2306a17..27cd90f 100644
--- a/Makefile
+++ b/Makefile
@@ -69,6 +69,7 @@ BASHCOMPLETION_LINKS = \
 MANS = \
doc/lddd.1 \
doc/checkpkg.1 \
+   doc/offload-build.1 \
doc/sogrep.1 \
doc/mkarchroot.1 \
doc/find-libdeps.1 \
diff --git a/doc/offload-build.1.asciidoc b/doc/offload-build.1.asciidoc
new file mode 100644
index 000..555f761
--- /dev/null
+++ b/doc/offload-build.1.asciidoc
@@ -0,0 +1,38 @@
+offload-build(1)
+
+
+Name
+
+offload-build - Build a PKGBUILD on a remote server using makechrootpkg
+
+Synopsis
+
+sogrep [options]
+
+Description
+---
+
+Build a PKGBUILD on a remote server using makechrootpkg. Requires a remote user
+that can run archbuild in a non-interactive manner, e.g. must be able to
+elevate permissions using passwordless sudo.
+
+Options
+---
+
+*-r, --repo* ::
+   Build against a specific repository. The default is `extra`, to build 
packages using
+   the stable repositories via extra-x86_64-build.
+
+*-a, --arch* ::
+   Build against a specific architecture. The default is `x86_64`, the only
+   architecture officially supported by Arch Linux.
+
+*-s, --server* ::
+   Offload to a specific build server. The default is dragon.archlinux.org
+   which is used as part of the build toolchain for the official Arch Linux
+   repos.
+
+*-h, --help*::
+   Show a help text.
+
+include::footer.asciidoc[]
-- 
2.21.0


[arch-projects] [devtools] [PATCH] Add new tool: offload-build

2019-04-14 Thread Eli Schwartz via arch-projects
This tool is useful for running makechrootpkg on a remote build server,
and is by default hooked up to send a PKGBUILD and initiate a build on
our shiny new build server "dragon".

Signed-off-by: Eli Schwartz 
---

manpage documentation hopefully coming tonight.

 Makefile  |   1 +
 offload-build | 100 ++
 2 files changed, 101 insertions(+)
 create mode 100755 offload-build

diff --git a/Makefile b/Makefile
index ba2d3e4..2306a17 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@ IN_PROGS = \
 
 BINPROGS = \
$(IN_PROGS) \
+   offload-build \
sogrep
 
 CONFIGFILES = \
diff --git a/offload-build b/offload-build
new file mode 100755
index 000..66609c6
--- /dev/null
+++ b/offload-build
@@ -0,0 +1,100 @@
+#!/bin/bash
+#
+#   offload-build - build a PKGBUILD on a remote server using makechrootpkg.
+#
+#   Copyright (c) 2019 by Eli Schwartz 
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see .
+#
+
+
+# global defaults suitable for use by Arch staff
+repo=extra
+arch=x86_64
+server=dragon.archlinux.org
+
+die() { printf "error: $1\n" "${@:2}"; exit 1; }
+
+usage() {
+cat <<- _EOF_
+   Usage: ${BASH_SOURCE[0]##*/} [--repo REPO] [--arch 
ARCHITECTURE] [--server SERVER]
+
+   Build a PKGBUILD on a remote server using makechrootpkg. 
Requires a remote user
+   that can run archbuild without password auth.
+
+   OPTIONS
+   -r, --repo  Build against a specific repository 
(current: $repo)
+   -a, --arch  Build against a specific architecture 
(current: $arch)
+   -s, --serverOffload to a specific build server 
(current: $server)
+   -h, --help  Show this help text
+_EOF_
+}
+
+# option checking
+while (( $# )); do
+case $1 in
+-h|--help)
+usage
+exit 0
+;;
+-r|--repo)
+repo=$2
+shift 2
+;;
+-a|--arch)
+arch=$2
+shift 2
+;;
+-s|--server)
+server=$2
+shift 2
+;;
+*)
+die "invalid argument: %s" "$1"
+;;
+esac
+done
+
+# multilib must be handled specially
+if [[ $repo = multilib* ]]; then
+arch=
+fi
+
+trap 'rm -rf $SRCPKGDEST' EXIT
+
+# Use a source-only tarball as an intermediate to transfer files. This
+# guarantees the checksums are okay, and guarantees that all needed files are
+# transferred, including local sources, install scripts, and changelogs.
+export SRCPKGDEST=$(mktemp -d)
+makepkg --source || die "unable to make source package"
+
+mapfile -t files < <(
+# This is sort of bash golfing but it allows running a mildly complex
+# command over ssh with a single connection.
+cat "$SRCPKGDEST"/*.src.tar.gz |
+ssh $server '
+temp="${XDG_CACHE_HOME:-$HOME/.cache}/offload-build" &&
+mkdir -p "$temp" &&
+temp=$(mktemp -d -p "$temp") &&
+cd "$temp" &&
+{
+bsdtar --strip-components 1 -xvf - &&
+script -qfc '"${repo}${arch:+-$arch}-build"' /dev/null &&
+printf "%s\n" "" "-> build complete" &&
+printf "\t%s\n" "$temp"/*
+} >&2 &&
+makepkg --packagelist
+')
+
+(( ${#files[@]} )) && printf '%s\n' '' '-> copying files...' && scp 
"${files[@]/#/$server:}" .
-- 
2.21.0


[arch-projects] [namcap] [PATCH] remove pointless mkdir -p in parsepkgbuild

2019-04-10 Thread Eli Schwartz via arch-projects
As far as I can tell, this was never used.

In commit 9b56647abc8dc33bf138d4b260b103c8d9265b7d the parsepkgbuild
script was switched from defining a PATH as a directory in /tmp, to
actually passing in a PATH=/dummy to `env -i`... which makes sense as
the defined PATH did not used to be used. However, even before that,
it's not safe to use mkdir -p in order to define a restricted shell
without access to the PATH, as it's not guaranteed to be owned by the
creator.

In any event, the time for mkdir -p is long past.

Signed-off-by: Eli Schwartz 
---
 parsepkgbuild | 2 --
 1 file changed, 2 deletions(-)

diff --git a/parsepkgbuild b/parsepkgbuild
index 009e89e..bedb0de 100755
--- a/parsepkgbuild
+++ b/parsepkgbuild
@@ -1,7 +1,5 @@
 #!/bin/bash
 
-mkdir -p /tmp/parsepkgbuild
-
 source /etc/makepkg.conf
 
 PARSE_PKGBUILD_PATH=${PARSE_PKGBUILD_PATH:-/usr/share/namcap}
-- 
2.21.0


[arch-projects] [namcap] [PATCH 2/2] add support for new checksum algorithm in pacman-git

2019-04-10 Thread Eli Schwartz via arch-projects
It is now possible to use b2sums to verify file integrity. See
https://git.archlinux.org/pacman.git/commit/?id=e03752e6adc86cbb4cb4f52a38f6e3e98cbe9dd5

Signed-off-by: Eli Schwartz 
---
 Namcap/rules/arrays.py  | 9 +
 Namcap/rules/extravars.py   | 9 +
 Namcap/rules/missingvars.py | 6 +++---
 parsepkgbuild.sh| 2 +-
 4 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/Namcap/rules/arrays.py b/Namcap/rules/arrays.py
index 5ca33cc..f841ca1 100644
--- a/Namcap/rules/arrays.py
+++ b/Namcap/rules/arrays.py
@@ -1,7 +1,7 @@
-# 
+#
 # namcap rules - array
 # Copyright (C) 2003-2009 Jesse Young 
-# 
+#
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
 #   the Free Software Foundation; either version 2 of the License, or
@@ -15,7 +15,7 @@
 #   You should have received a copy of the GNU General Public License
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-# 
+#
 
 """Verifies that array variables are actually arrays"""
 
@@ -29,7 +29,8 @@ class package(PkgbuildRule):
arrayvars = ['arch', 'license', 'groups', 'depends', 
'makedepends',
 'optdepends', 'checkdepends', 'provides', 'conflicts', 
'replaces',
 'backup', 'options', 'source', 'noextract', 'md5sums', 
'sha1sums',
-'sha224sums', 'sha256sums', 'sha384sums', 
'sha512sums', 'validpgpkeys']
+'sha224sums', 'sha256sums', 'sha384sums', 
'sha512sums', 'b2sums',
+'validpgpkeys']
for i in pkginfo.pkgbuild:
m = re.match('\s*(.*)\s*=\s*(.*)$', i)
for j in arrayvars:
diff --git a/Namcap/rules/extravars.py b/Namcap/rules/extravars.py
index 81084f8..bea575a 100644
--- a/Namcap/rules/extravars.py
+++ b/Namcap/rules/extravars.py
@@ -1,7 +1,7 @@
-# 
+#
 # namcap rules - extravars
 # Copyright (C) 2003-2009 Jesse Young 
-# 
+#
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
 #   the Free Software Foundation; either version 2 of the License, or
@@ -15,7 +15,7 @@
 #   You should have received a copy of the GNU General Public License
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-# 
+#
 
 from itertools import product
 from Namcap.ruleclass import *
@@ -26,7 +26,8 @@ class package(PkgbuildRule):
def analyze(self, pkginfo, tar):
carch_vars = ['checkdepends', 'conflicts', 'depends', 
'makedepends',
 'optdepends', 'provides', 'replaces', 
'source', 'md5sums',
-'sha224sums', 'sha1sums', 'sha256sums', 
'sha384sums', 'sha512sums']
+'sha224sums', 'sha1sums', 'sha256sums', 
'sha384sums',
+'sha512sums', 'b2sums']
stdvars = ['arch', 'license', 'backup', 'noextract', 'pkgname',
 'pkgbase', 'pkgver', 'pkgrel', 'epoch', 
'pkgdesc', 'groups',
 'url', 'install', 'changelog',
diff --git a/Namcap/rules/missingvars.py b/Namcap/rules/missingvars.py
index 25445e2..5814037 100644
--- a/Namcap/rules/missingvars.py
+++ b/Namcap/rules/missingvars.py
@@ -3,7 +3,7 @@
 # namcap rules - missingvars
 # Copyright (C) 2003-2009 Jason Chu 
 # Copyright (C) 2011 Rémy Oudompheng 
-# 
+#
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
 #   the Free Software Foundation; either version 2 of the License, or
@@ -17,7 +17,7 @@
 #   You should have received a copy of the GNU General Public License
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-# 
+#
 
 """Checks for missing variables in PKGBUILD"""
 
@@ -30,7 +30,7 @@ class ChecksumsRule(PkgbuildRule):
name = "checksums"
description = "Verifies checksums are included in a PKGBUILD"
def analyze(self, pkginfo, tar):
-   checksums=[('md5', 32), ('sha1', 40), ('sha224', 56), 
('sha256', 64), ('sha384', 96), ('sha512', 128)]
+   checksums=[('md5', 32), ('sha1', 40), ('sha224', 56), 
('sha256', 64), ('sha384', 96), ('sha512', 128), ('b2', 128)]
 
if "source" in pkginfo:
haschecksums = False
diff --git a/parsepkgbuild.sh b/parsepkgbuild.sh
index 66cea40..4ac996a 100644
--- a/parsepkgbuild.sh
+++ b/parsepkgbuild.sh
@@ -21,7 +21,7 @@ fi
 
 meta_keys=(groups url license arch builddate packager replaces force depends
makedepends 

[arch-projects] [namcap] [PATCH 1/2] parsepkgbuild: reduce a lot of boilerplate by being more templated

2019-04-10 Thread Eli Schwartz via arch-projects
When listing out the contents of a variable, use loops and references
to the variables in order to reduce code and make it easier to extend.

In the future, a new metadata type can be added simply by appending to
meta_keys=()

Signed-off-by: Eli Schwartz 
---
 parsepkgbuild.sh | 127 +--
 1 file changed, 12 insertions(+), 115 deletions(-)

diff --git a/parsepkgbuild.sh b/parsepkgbuild.sh
index d85574d..66cea40 100644
--- a/parsepkgbuild.sh
+++ b/parsepkgbuild.sh
@@ -18,123 +18,20 @@ fi
 if [ -n "$pkgdesc" ]; then
echo -e "%DESC%\n$pkgdesc\n"
 fi
-if [ -n "$groups" ]; then
-   echo "%GROUPS%"
-   for i in ${groups[@]}; do echo $i; done
-   echo ""
-fi
-
-if [ -n "$url" ]; then
-   echo -e "%URL%\n$url\n"
-fi
-if [ -n "$license" ]; then
-   echo "%LICENSE%"
-   for i in ${license[@]}; do echo $i; done
-   echo ""
-fi
-if [ -n "$arch" ]; then
-   echo "%ARCH%"
-   for i in ${arch[@]}; do echo $i; done
-   echo ""
-fi
-if [ -n "$builddate" ]; then
-   echo -e "%BUILDDATE%\n$builddate\n"
-fi
-if [ -n "$packager" ]; then
-   echo -e "%PACKAGER%\n$packager\n"
-fi
-
-if [ -n "$replaces" ]; then
-   echo "%REPLACES%"
-   for i in "${replaces[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$force" ]; then
-   echo -e "%FORCE%\n"
-fi
 
-# create depends entry
-if [ -n "$depends" ]; then
-   echo "%DEPENDS%"
-   for i in "${depends[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$makedepends" ]; then
-   echo "%MAKEDEPENDS%"
-   for i in "${makedepends[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$optdepends" ]; then
-   echo "%OPTDEPENDS%"
-   for i in "${optdepends[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$conflicts" ]; then
-   echo "%CONFLICTS%"
-   for i in "${conflicts[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$provides" ]; then
-   echo "%PROVIDES%"
-   for i in "${provides[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$backup" ]; then
-   echo "%BACKUP%"
-   for i in "${backup[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$options" ]; then
-   echo "%OPTIONS%"
-   for i in "${options[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$source" ]; then
-   echo "%SOURCE%"
-   for i in "${source[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$validpgpkeys" ]; then
-   echo "%VALIDGPGKEYS%"
-   for i in "${validpgpkeys[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$md5sums" ]; then
-   echo "%MD5SUMS%"
-   for i in "${md5sums[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$sha1sums" ]; then
-   echo "%SHA1SUMS%"
-   for i in "${sha1sums[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$sha224sums" ]; then
-   echo "%SHA224SUMS%"
-   for i in "${sha224sums[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$sha256sums" ]; then
-   echo "%SHA256SUMS%"
-   for i in "${sha256sums[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$sha384sums" ]; then
-   echo "%SHA384SUMS%"
-   for i in "${sha384sums[@]}"; do echo $i; done
-   echo ""
-fi
-if [ -n "$sha512sums" ]; then
-   echo "%SHA512SUMS%"
-   for i in "${sha512sums[@]}"; do echo $i; done
-   echo ""
-fi
-
-if [ -n "$install" ]; then
-   echo -e "%INSTALL%\n$install\n"
-fi
+meta_keys=(groups url license arch builddate packager replaces force depends
+   makedepends optdepends conflicts provides backup options source
+  validpgpkeys {md5,sha{1,224,256,384,512}}sums install)
+for key in "${meta_keys[@]}"; do
+   arr="$key[@]"
+   if [[ -n ${!key} ]]; then
+   echo "%${key^^}%"
+   for i in "${!arr}"; do echo "$i"; done
+   echo ""
+   fi
+done
 
-unset i
+unset arr key meta_keys i
 echo "%SETVARS%"
 compgen -A variable
 }
-- 
2.21.0


[arch-projects] [namcap] [PATCH] Add rule to report on unneeded dependencies from hooks

2019-04-10 Thread Eli Schwartz via arch-projects
Just as it is unnecessary to run certain commands in a post_upgrade
script, if a hook already runs it, so too is it usually unnecessary to
depend on the package that installs the hook.

Sometimes these dependencies are left in even when the install script is
removed, because people lack understanding in the true subtleties of
hooks and the commands they run -- but the commands do not depend on the
list of files which trigger them in order to function, and are fully
operative when installed later. In fact, they will already be required
by the software that uses the results.

e.g. desktop-file-utils and shared-mime-info provide hooks to compile
the mime and desktop file databases, but upon first installing the hook,
a full database will already be compiled. The hook does not need to be
triggered by the filepath, and thus does not need to be a dependency of
every package that provides a desktop or mime file. Instead, desktop
environments which need a mime/desktop file database will depend on the
package and thereby ensure the database exists when needed.

Signed-off-by: Eli Schwartz 
---

With this plus my previous patch, namcap will stop warning when these
dependencies are missing, and instead, warn when they are used.

I've yet to hear a convincing reason why these dependencies would be
wanted -- I suspect they exist mostly because of inertia, or because
they were copied from another (historic?) PKGBUILD that was used as a
role model.

 Namcap/rules/__init__.py|  1 +
 Namcap/rules/hookdepends.py | 48 +
 namcap-tags |  8 ---
 3 files changed, 54 insertions(+), 3 deletions(-)
 create mode 100644 Namcap/rules/hookdepends.py

diff --git a/Namcap/rules/__init__.py b/Namcap/rules/__init__.py
index 1e05326..525dbc6 100644
--- a/Namcap/rules/__init__.py
+++ b/Namcap/rules/__init__.py
@@ -31,6 +31,7 @@ from . import (
   fileownership,
   gnomemime,
   hardlinks,
+  hookdepends,
   infodirectory,
   javafiles,
   kdeprograms,
diff --git a/Namcap/rules/hookdepends.py b/Namcap/rules/hookdepends.py
new file mode 100644
index 000..dcf03a1
--- /dev/null
+++ b/Namcap/rules/hookdepends.py
@@ -0,0 +1,48 @@
+#
+# namcap rules - hookdepends
+# Copyright (C) 2019 Eli Schwartz 
+# Copyright (C) 2016 Kyle Keen 
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+#
+
+import re
+from Namcap.ruleclass import *
+
+class HookDependsRule(TarballRule):
+   name = "hookdepends"
+   description = "Check for redundant hook dependencies"
+   subrules = [
+   {
+   'path': '^usr/share/applications/.*\.desktop$',
+   'dep': 'desktop-file-utils',
+   },
+   {
+   'path': '^usr/share/mime$',
+   'dep': 'shared-mime-info',
+   }
+   ]
+   def analyze(self, pkginfo, tar):
+   names = [entry.name for entry in tar]
+   for subrule in self.subrules:
+   pattern = re.compile(subrule['path'])
+   if any(pattern.search(n) for n in names):
+   dep = subrule['dep']
+   if dep in pkginfo['depends']:
+   self.warnings = 
[('external-hooks-unneeded-warning', ())]
+   
self.infos.append(('external-hooks-unneeded-name %s', dep))
+
+
+# vim: set ts=4 sw=4 noet:
diff --git a/namcap-tags b/namcap-tags
index 17b9506..84cc3f7 100644
--- a/namcap-tags
+++ b/namcap-tags
@@ -1,11 +1,11 @@
 # namcap tags file
-# The tags file consists of lines specifying the human readable form of the 
-# hyphenated tags used in the namcap code. A line beginning with a '#' is 
+# The tags file consists of lines specifying the human readable form of the
+# hyphenated tags used in the namcap code. A line beginning with a '#' is
 # treated as a comment. Otherwise the format of the file is:
 #
 #  machine-parseable-tag %s :: This is machine parseable tag %s
 #
-# Note that a double colon (::) is used to separate the hyphenated tag from 
the 
+# Note that a double colon (::) is used to separate the hyphenated tag from the
 # human readable description.
 
 # rules tags
@@ -26,6 +26,8 @@ empty-directory %s :: 

Re: [arch-projects] [namcap] [PATCH] Remove no longer useful warnings that have missing keys

2019-04-10 Thread Eli Schwartz via arch-projects
On 4/10/19 9:15 PM, Eli Schwartz wrote:
> Arch Linux now has pacman hooks that provide automatic handling for
> update-{desktop,mime}-database without each package requiring a hard
> dependency and a post_upgrade hook. This means it is no longer correct
> to depend on the packages or provide an install script. Instead, remove
> this entirely.

Uh, this should really mention:

Fixes FS#56898

> 
> Signed-off-by: Eli Schwartz 
> ---
>  Namcap/rules/__init__.py |  7 ++-
>  Namcap/rules/mimefiles.py| 40 ---
>  Namcap/rules/pathdepends.py  |  9 ++--
>  Namcap/tests/package/test_mimefiles.py   | 62 
>  Namcap/tests/package/test_pathdepends.py | 10 +---
>  5 files changed, 8 insertions(+), 120 deletions(-)
>  delete mode 100644 Namcap/rules/mimefiles.py
>  delete mode 100644 Namcap/tests/package/test_mimefiles.py
> 
> diff --git a/Namcap/rules/__init__.py b/Namcap/rules/__init__.py
> index dcc950f..1e05326 100644
> --- a/Namcap/rules/__init__.py
> +++ b/Namcap/rules/__init__.py
> @@ -1,7 +1,7 @@
> -# 
> +#
>  # namcap rules - __init__
>  # Copyright (C) 2003-2009 Jason Chu 
> -# 
> +#
>  #   This program is free software; you can redistribute it and/or modify
>  #   it under the terms of the GNU General Public License as published by
>  #   the Free Software Foundation; either version 2 of the License, or
> @@ -15,7 +15,7 @@
>  #   You should have received a copy of the GNU General Public License
>  #   along with this program; if not, write to the Free Software
>  #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> -# 
> +#
>  
>  from types import ModuleType
>  import Namcap.ruleclass
> @@ -37,7 +37,6 @@ from . import (
>libtool,
>licensepkg,
>lotsofdocs,
> -  mimefiles,
>missingbackups,
>pathdepends,
>perllocal,
> diff --git a/Namcap/rules/mimefiles.py b/Namcap/rules/mimefiles.py
> deleted file mode 100644
> index f9d56f4..000
> --- a/Namcap/rules/mimefiles.py
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -# 
> -# namcap rules - mimefiles
> -# Copyright (C) 2009 Hugo Doria 
> -# Copyright (C) 2011 Rémy Oudompheng 
> -# 
> -#   This program is free software; you can redistribute it and/or modify
> -#   it under the terms of the GNU General Public License as published by
> -#   the Free Software Foundation; either version 2 of the License, or
> -#   (at your option) any later version.
> -#
> -#   This program is distributed in the hope that it will be useful,
> -#   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> -#   GNU General Public License for more details.
> -#
> -#   You should have received a copy of the GNU General Public License
> -#   along with this program; if not, write to the Free Software
> -#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
> -# 
> -
> -from Namcap.ruleclass import *
> -
> -class MimeDesktopRule(TarballRule):
> - name = "mimedesktop"
> - description = "Check for MIME desktop file depends"
> - def analyze(self, pkginfo, tar):
> - for entry in tar:
> - if entry.issym():
> - continue
> - if not entry.name.startswith("usr/share/applications"):
> - continue
> - if not entry.name.endswith(".desktop"):
> - continue
> - with tar.extractfile(entry) as f:
> - if not any(l.startswith(b"MimeType=") for l in 
> f):
> - continue
> - 
> pkginfo.detected_deps["desktop-file-utils"].append( 
> ('desktop-file-utils-needed', ()) )
> - break
> -
> -# vim: set ts=4 sw=4 noet:
> diff --git a/Namcap/rules/pathdepends.py b/Namcap/rules/pathdepends.py
> index 5bc4313..87f9758 100644
> --- a/Namcap/rules/pathdepends.py
> +++ b/Namcap/rules/pathdepends.py
> @@ -1,7 +1,7 @@
> -# 
> +#
>  # namcap rules - pathdepends
>  # Copyright (C) 2016 Kyle Keen 
> -# 
> +#
>  #   This program is free software; you can redistribute it and/or modify
>  #   it under the terms of the GNU General Public License as published by
>  #   the Free Software Foundation; either version 2 of the License, or
> @@ -15,7 +15,7 @@
>  #   You should have received a copy of the GNU General Public License
>  #   along with this program; if not, write to the Free Software
>  #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
> -# 
> +#
>  
>  """
>  This contains a collection of essentially one-line rules:
> @@ -41,9 +41,6 @@ class PathDependsRule(TarballRule):
>   {'path': '^usr/share/icons/hicolor$',
>   'dep':'hicolor-icon-theme',
>   'reason':'hicolor-icon-theme-needed-for-hicolor-dir'},
> - {'path': '^usr/share/mime$',
> - 

[arch-projects] [namcap] [PATCH] Remove no longer useful warnings that have missing keys

2019-04-10 Thread Eli Schwartz via arch-projects
Arch Linux now has pacman hooks that provide automatic handling for
update-{desktop,mime}-database without each package requiring a hard
dependency and a post_upgrade hook. This means it is no longer correct
to depend on the packages or provide an install script. Instead, remove
this entirely.

Signed-off-by: Eli Schwartz 
---
 Namcap/rules/__init__.py |  7 ++-
 Namcap/rules/mimefiles.py| 40 ---
 Namcap/rules/pathdepends.py  |  9 ++--
 Namcap/tests/package/test_mimefiles.py   | 62 
 Namcap/tests/package/test_pathdepends.py | 10 +---
 5 files changed, 8 insertions(+), 120 deletions(-)
 delete mode 100644 Namcap/rules/mimefiles.py
 delete mode 100644 Namcap/tests/package/test_mimefiles.py

diff --git a/Namcap/rules/__init__.py b/Namcap/rules/__init__.py
index dcc950f..1e05326 100644
--- a/Namcap/rules/__init__.py
+++ b/Namcap/rules/__init__.py
@@ -1,7 +1,7 @@
-# 
+#
 # namcap rules - __init__
 # Copyright (C) 2003-2009 Jason Chu 
-# 
+#
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
 #   the Free Software Foundation; either version 2 of the License, or
@@ -15,7 +15,7 @@
 #   You should have received a copy of the GNU General Public License
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-# 
+#
 
 from types import ModuleType
 import Namcap.ruleclass
@@ -37,7 +37,6 @@ from . import (
   libtool,
   licensepkg,
   lotsofdocs,
-  mimefiles,
   missingbackups,
   pathdepends,
   perllocal,
diff --git a/Namcap/rules/mimefiles.py b/Namcap/rules/mimefiles.py
deleted file mode 100644
index f9d56f4..000
--- a/Namcap/rules/mimefiles.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# 
-# namcap rules - mimefiles
-# Copyright (C) 2009 Hugo Doria 
-# Copyright (C) 2011 Rémy Oudompheng 
-# 
-#   This program is free software; you can redistribute it and/or modify
-#   it under the terms of the GNU General Public License as published by
-#   the Free Software Foundation; either version 2 of the License, or
-#   (at your option) any later version.
-#
-#   This program is distributed in the hope that it will be useful,
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#   GNU General Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License
-#   along with this program; if not, write to the Free Software
-#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
-# 
-
-from Namcap.ruleclass import *
-
-class MimeDesktopRule(TarballRule):
-   name = "mimedesktop"
-   description = "Check for MIME desktop file depends"
-   def analyze(self, pkginfo, tar):
-   for entry in tar:
-   if entry.issym():
-   continue
-   if not entry.name.startswith("usr/share/applications"):
-   continue
-   if not entry.name.endswith(".desktop"):
-   continue
-   with tar.extractfile(entry) as f:
-   if not any(l.startswith(b"MimeType=") for l in 
f):
-   continue
-   
pkginfo.detected_deps["desktop-file-utils"].append( 
('desktop-file-utils-needed', ()) )
-   break
-
-# vim: set ts=4 sw=4 noet:
diff --git a/Namcap/rules/pathdepends.py b/Namcap/rules/pathdepends.py
index 5bc4313..87f9758 100644
--- a/Namcap/rules/pathdepends.py
+++ b/Namcap/rules/pathdepends.py
@@ -1,7 +1,7 @@
-# 
+#
 # namcap rules - pathdepends
 # Copyright (C) 2016 Kyle Keen 
-# 
+#
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
 #   the Free Software Foundation; either version 2 of the License, or
@@ -15,7 +15,7 @@
 #   You should have received a copy of the GNU General Public License
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
-# 
+#
 
 """
 This contains a collection of essentially one-line rules:
@@ -41,9 +41,6 @@ class PathDependsRule(TarballRule):
{'path': '^usr/share/icons/hicolor$',
'dep':'hicolor-icon-theme',
'reason':'hicolor-icon-theme-needed-for-hicolor-dir'},
-   {'path': '^usr/share/mime$',
-   'dep':'shared-mime-info',
-   'reason':'shared-mime-info-needed'},
]
def analyze(self, pkginfo, tar):
names = [entry.name for entry in tar]
diff --git a/Namcap/tests/package/test_mimefiles.py 
b/Namcap/tests/package/test_mimefiles.py
deleted file mode 100644
index 

[arch-projects] [devtools] [PATCH] arch-nspawn should use the correct pacman config file

2019-04-02 Thread arch--- via arch-projects
From: Erich Eckner 

If arch-nspawn is called with -C, pacman inside the chroot will use
the provided configuration file. This should also be the case for
$pacconf_cmd and pacman outside the chroot.

If arch-nspawn is called without -C, pacman inside the chroot will
use $workdir/etc/pacman.conf -- again, $pacconf_cmd and pacman
outside the chroot should use that, too. So lets just set $pac_conf
in that case.

For example, Arch Linux 32 provides separate pacman configurations
inside /usr/share/devtools which use /etc/pacman.d/mirrorlist32 as
mirrorlist for their build commands (extra-i686-build, etc.). This
way, we can build i686 and x86_64 packages on the same x86_64 host
with very minimal changes to devtools.

Signed-off-by: Erich Eckner 
---
 arch-nspawn.in | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch-nspawn.in b/arch-nspawn.in
index e68e2e75..cebeb2ec 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -52,16 +52,17 @@ shift 1
 
 [[ -z $working_dir ]] && die 'Please specify a working directory.'
 
+[[ -z $pac_conf ]] && pac_conf="$working_dir/etc/pacman.conf"
+
 if [[ -z $cache_dir ]]; then
-   cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache 
Dirs:\s*//g'))
+   cache_dirs=($(pacman --config "$pac_conf" -v 2>&1 | grep '^Cache Dirs:' 
| sed 's/Cache Dirs:\s*//g'))
 else
cache_dirs=("$cache_dir")
 fi
 
 pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
 # shellcheck disable=2016
-host_mirrors=($($pacconf_cmd --repo extra Server 2> /dev/null | sed -r 
's#(.*/)extra/os/.*#\1$repo/os/$arch#'))
-# shellcheck disable=2016
+host_mirrors=($($pacconf_cmd --conf "$pac_conf" --repo extra Server 2> 
/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#'))
 
 # {{{ functions
 build_mount_args() {
-- 
2.21.0


[arch-projects] [devtools] [PATCH] fix whitespace/indentation errors

2019-04-02 Thread arch--- via arch-projects
From: Erich Eckner 

Some lines are indented by spaces, while adjacent lines are indentet by tabs.
We should use tabs on both.

Signed-off-by: Erich Eckner 
---
 archbuild.in| 2 +-
 find-libdeps.in | 2 +-
 mkarchroot.in   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/archbuild.in b/archbuild.in
index bd5706d5..163a1082 100644
--- a/archbuild.in
+++ b/archbuild.in
@@ -71,7 +71,7 @@ else
-C "@pkgdatadir@/pacman-${repo}.conf" \
-M "@pkgdatadir@/makepkg-${arch}.conf" \
"${chroots}/${repo}-${arch}/root" \
-pacman -Syu --noconfirm || abort
+   pacman -Syu --noconfirm || abort
 fi
 
 # Always build official packages reproducibly
diff --git a/find-libdeps.in b/find-libdeps.in
index 07ba3d84..7a3e6f5d 100644
--- a/find-libdeps.in
+++ b/find-libdeps.in
@@ -57,7 +57,7 @@ process_sofile() {
 
 case $script_mode in
deps) find_args=(-perm -u+x);;
-provides) find_args=(-name '*.so*');;
+   provides) find_args=(-name '*.so*');;
 esac
 
 find . -type f "${find_args[@]}" | while read -r filename; do
diff --git a/mkarchroot.in b/mkarchroot.in
index 52e363fc..a9a5a0fe 100644
--- a/mkarchroot.in
+++ b/mkarchroot.in
@@ -84,7 +84,7 @@ while read -r varname; do
 done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i 
'_proxy$')
 env -i "${_env[@]}" \
 pacstrap -GMcd ${pac_conf:+-C "$pac_conf"} "$working_dir" \
-  "${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages'
+   "${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all 
packages'
 
 printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$working_dir/etc/locale.gen"
 echo 'LANG=en_US.UTF-8' > "$working_dir/etc/locale.conf"
-- 
2.21.0


[arch-projects] [devtools] [PATCH] $pacconf_cmd in arch-nspawn should use the provided config file (-C)

2019-04-01 Thread arch--- via arch-projects
From: Erich Eckner 

If arch-nspawn is called with -C, pacman inside the chroot will use the
provided configuration file. This should also be the case for
$pacconf_cmd when determining the remote servers.

For example, Arch Linux 32 provides separate pacman configurations which
use /etc/pacman.d/mirrorlist32 as mirrorlist for their build commands
(extra-i686-build, etc.). This way, we can build i686 and x86_64
packages on the same x86_64 host with very minimal changes to devtools.

Signed-off-by: Erich Eckner 
---
 arch-nspawn.in | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch-nspawn.in b/arch-nspawn.in
index e68e2e75..461154eb 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -60,8 +60,7 @@ fi
 
 pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
 # shellcheck disable=2016
-host_mirrors=($($pacconf_cmd --repo extra Server 2> /dev/null | sed -r 
's#(.*/)extra/os/.*#\1$repo/os/$arch#'))
-# shellcheck disable=2016
+host_mirrors=($($pacconf_cmd ${pac_conf+--conf $pac_conf} --repo extra Server 
2> /dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#'))
 
 # {{{ functions
 build_mount_args() {
-- 
2.21.0


[arch-projects] [devtools] [GIT] The official devtools repository annotated tag 20190329 created. 20190329

2019-03-29 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The annotated tag, 20190329 has been created
at  8012ea91aab30bee02c10f695b559e81438ce876 (tag)
   tagging  a49f55cbed51c815a9392c9f7fff5f8cec385935 (commit)
  replaces  20180531
 tagged by  Levente Polyak
on  Fri Mar 29 21:41:55 2019 +0100

- Log -
Version 20190329
-BEGIN PGP SIGNATURE-

iQIzBAABCgAdFiEE4kC1fixGMLp2ji8m/BtUfI2BcsgFAlyegx0ACgkQ/BtUfI2B
csgbUA//dWvpq8DdUirOJq2/J7el8n3TL13colETC5ToQG40wFpafjE0BW4lPp4A
IBnWnoFXfvZcHTEJDkEFICnrGTJMC5iGCeOFJIk65ZBv8+n4Am85I9p8eAX+FLrQ
7f+G2HujTG4LqpxhOT9Xe4kN4H8G8waHgQaczNHY62CTcEKJSaZYUsxjkCe0Kfm6
wCIbYQN6e9MMQrElj9vqjYwSq5/S+6sDThrxA+9jlV/H7veqqITv0Vash/ks+B+k
vr5nhgHm/pLNvaZwy4pVLH1SnmO6aN9lHz/rajar61+omAh7m2cLzpxDfQopTnPH
+eEQJh5xeTxdkJ4ZNqWaZDerpU+7WBv/C59j0xPoih070Em5kvbgIgxaQlL1EkZd
T5yqXs6/VIScJIlPy4yrxdL9t4Gs2iagGiAaSj2xX8CKK74do9gkLz+/6bm8G7k2
CecYzrZvLMrSZELzoj3o76jTK/qW740vD+XNMU/i/XCcHApg9ExONV27Pj5Zey7I
GKi5QuaShlTAakoHHlLxDamIadjQNUlYFwyktMiNZXadBwtOIty8m9b9Zm0b2qiJ
oqa8A/hpJNg3xkUuzoSModlhN7wNCbvwnS52XrxM4CkmyVe9weBcPy/H5NQs853T
Th0WKrB5dsiTv3cMfVEXon8YwxZ1Dl8Y136CtkN99tY1QpWgZX8=
=EoDH
-END PGP SIGNATURE-

Christian Hesse (1):
  arch-nspawn: get all mirrors from host

Eli Schwartz via arch-projects (3):
  sogrep: don't be templated when it is not templated
  add sogrep command
  fix up sogrep manpage to correspond with current sogrep command

Erich Eckner (1):
  remove empty tree if "--verifysource" failed

Jelle van der Waa (13):
  doc: Add lddd man page
  doc: Add checkpkg man page
  doc: add find-libprovides man page
  remove arch rm as it's not really useful
  crossrepomove: do not set svn propset
  doc: add man page for mkarchroot
  doc: add Environment variables section to sogrep
  doc: add man pages for find-{libdeps,libprovides}
  find-libdeps: fix indentation in case
  sogrep: rename to sogrep.in so make clean works
  doc: Add myself as maintainer
  sogrep: remove duplicate sogrep
  Create a general README

Levente Polyak (6):
  find-libdeps: in functions use return instead of continue to abort
  ci: adding travis support for basic check
  conf: sync makepkg.conf with latest version from pacman package
  make: fix faulty install targets
  readme: fix faulty whitespace in release commands
  Version 20190329

Matt Robinson (1):
  makechrootpkg: keep *DEST, MAKEFLAGS & PACKAGER

Morten Linderud (1):
  Expand check_root keepenv variables

Sven-Hendrik Haase (1):
  Add sogrep

---


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-27-ga49f55c

2019-03-29 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  a49f55cbed51c815a9392c9f7fff5f8cec385935 (commit)
   via  5c016c38f25f26e0e78a246c2f7a54aea3059e0c (commit)
   via  1d4a60874badb8ef6f42e53ab8f0f53212a18edb (commit)
  from  b66ce081e7849af19429949fad57e683b595fbfc (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit a49f55cbed51c815a9392c9f7fff5f8cec385935
Author: Levente Polyak 
Date:   Fri Mar 29 21:29:26 2019 +0100

Version 20190329

commit 5c016c38f25f26e0e78a246c2f7a54aea3059e0c
Author: Levente Polyak 
Date:   Fri Mar 29 21:37:46 2019 +0100

readme: fix faulty whitespace in release commands

commit 1d4a60874badb8ef6f42e53ab8f0f53212a18edb
Author: Levente Polyak 
Date:   Fri Mar 29 21:35:13 2019 +0100

make: fix faulty install targets

This fixes a regression introduced in 
eeb1c0e59ee8a5f7be4a6742ba6689af54e9ac7d

---

Summary of changes:
 Makefile  | 8 
 README.md | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-24-gb66ce08

2019-03-28 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  b66ce081e7849af19429949fad57e683b595fbfc (commit)
   via  1ab9b34c4cac0648149ffdeeca223947816675f0 (commit)
   via  ebba5a588534bce575c877694790af87a812aa6c (commit)
  from  c9b6f58f8e511b62085fa7e592aa5ecbe2a38074 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit b66ce081e7849af19429949fad57e683b595fbfc
Author: Eli Schwartz via arch-projects 
Date:   Mon Mar 25 16:32:20 2019 -0400

fix up sogrep manpage to correspond with current sogrep command

Signed-off-by: Eli Schwartz 

commit 1ab9b34c4cac0648149ffdeeca223947816675f0
Author: Eli Schwartz via arch-projects 
Date:   Mon Mar 25 16:32:19 2019 -0400

add sogrep command

This is the new and improved, canonical sogrep command, now with a valid
license.

The previous version of sogrep had several issues and inefficiencies,
and ultimately wasn't really the finished project I wanted it to be. Due
to a mistake in communication, I was totally unaware it was in the
process of being merged at all, nor that there was a licensing issue, or
I would have recommended waiting for both further improvements, and a
declaration of license intent; nevertheless, here it is now, and I
formally give this over into the GPLv2+ domain.

Signed-off-by: Eli Schwartz 

commit ebba5a588534bce575c877694790af87a812aa6c
Author: Eli Schwartz via arch-projects 
Date:   Mon Mar 25 16:32:18 2019 -0400

sogrep: don't be templated when it is not templated

Partition the Makefile targets to only clean configured files, and make
the configured files be a subset of the bin programs.

Signed-off-by: Eli Schwartz 

---

Summary of changes:
 .gitignore|   1 -
 Makefile  |   9 ++-
 doc/sogrep.1.asciidoc |  10 +++-
 sogrep| 149 ++
 sogrep.in |  98 -
 5 files changed, 163 insertions(+), 104 deletions(-)
 create mode 100755 sogrep
 delete mode 100644 sogrep.in


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-21-gc9b6f58

2019-03-25 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  c9b6f58f8e511b62085fa7e592aa5ecbe2a38074 (commit)
   via  155798b8b12224bc09b4349edf8259ead301740f (commit)
   via  d9b73504484da7e185dc590ef13d5f31942f6051 (commit)
  from  6645701cb13a4801c870c8231d3cdc9988ce593c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit c9b6f58f8e511b62085fa7e592aa5ecbe2a38074
Author: Jelle van der Waa 
Date:   Fri Mar 22 23:45:33 2019 +0100

Create a general README

Introduce a README which describes where to send patches and how to
release a new version of devtools.

Signed-off-by: Jelle van der Waa 

commit 155798b8b12224bc09b4349edf8259ead301740f
Author: Matt Robinson 
Date:   Sat Mar 16 11:29:59 2019 +

makechrootpkg: keep *DEST, MAKEFLAGS & PACKAGER

If makechrootpkg is called as non-root, the {SRC,SRCPKG,PKG,LOG}DEST,
MAKEFLAGS and PACKAGER environment variables are lost in the call to
check_root().

Add these to the passed keepenv list so that they are preserved instead.

commit d9b73504484da7e185dc590ef13d5f31942f6051
Author: Christian Hesse 
Date:   Fri Mar 22 12:21:08 2019 +0100

arch-nspawn: get all mirrors from host

Now that pacconf gives us all mirrors we can use them, instead of just
the first one.

Signed-off-by: Christian Hesse 

---

Summary of changes:
 README.md| 24 
 arch-nspawn.in   | 14 --
 makechrootpkg.in |  2 +-
 3 files changed, 33 insertions(+), 7 deletions(-)
 create mode 100644 README.md


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [PATCH 1/3] sogrep: don't be templated when it is not templated

2019-03-25 Thread Eli Schwartz via arch-projects
Partition the Makefile targets to only clean configured files, and make
the configured files be a subset of the bin programs.

Signed-off-by: Eli Schwartz 
---
 .gitignore  | 1 -
 Makefile| 9 ++---
 sogrep.in => sogrep | 0
 3 files changed, 6 insertions(+), 4 deletions(-)
 rename sogrep.in => sogrep (100%)

diff --git a/.gitignore b/.gitignore
index 6a1d1e4..b63587b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,5 +15,4 @@ zsh_completion
 find-libdeps
 crossrepomove
 arch-nspawn
-sogrep
 doc/*.1
diff --git a/Makefile b/Makefile
index 055ed2d..39785c3 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ V=20180531
 PREFIX = /usr/local
 MANDIR = $(PREFIX)/share/man
 
-BINPROGS = \
+IN_PROGS = \
checkpkg \
commitpkg \
archco \
@@ -16,7 +16,10 @@ BINPROGS = \
crossrepomove\
arch-nspawn \
mkarchroot \
-   makechrootpkg \
+   makechrootpkg
+
+BINPROGS = \
+   $(IN_PROGS) \
sogrep
 
 CONFIGFILES = \
@@ -90,7 +93,7 @@ doc/%: doc/%.asciidoc
a2x --no-xmllint --asciidoc-opts="-f doc/asciidoc.conf" -d manpage -f 
manpage -D doc $<
 
 clean:
-   rm -f $(BINPROGS) bash_completion zsh_completion $(MANS)
+   rm -f $(IN_PROGS) bash_completion zsh_completion $(MANS)
 
 install:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
diff --git a/sogrep.in b/sogrep
similarity index 100%
rename from sogrep.in
rename to sogrep
-- 
2.21.0


[arch-projects] [devtools] [PATCH 2/3] add sogrep command

2019-03-25 Thread Eli Schwartz via arch-projects
This is the new and improved, canonical sogrep command, now with a valid
license.

The previous version of sogrep had several issues and inefficiencies,
and ultimately wasn't really the finished project I wanted it to be. Due
to a mistake in communication, I was totally unaware it was in the
process of being merged at all, nor that there was a licensing issue, or
I would have recommended waiting for both further improvements, and a
declaration of license intent; nevertheless, here it is now, and I
formally give this over into the GPLv2+ domain.

Signed-off-by: Eli Schwartz 
---
 sogrep | 101 +++--
 1 file changed, 76 insertions(+), 25 deletions(-)
 mode change 100644 => 100755 sogrep

diff --git a/sogrep b/sogrep
old mode 100644
new mode 100755
index 3be2672..56a0e70
--- a/sogrep
+++ b/sogrep
@@ -1,6 +1,24 @@
 #!/bin/bash
-# License: Unspecified
+#
+#   sogrep - find shared library links in an Arch Linux repository.
+#
+#   Copyright (c) 2019 by Eli Schwartz 
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see .
+#
 
+# globals
 : ${SOLINKS_MIRROR:="https://mirror.pkgbuild.com"}
 : ${SOCACHE_DIR:="${XDG_CACHE_HOME:-${HOME}/.cache}/sogrep"}
 repos=('staging' 'testing' 'core' 'extra'
@@ -9,54 +27,66 @@ repos=('staging' 'testing' 'core' 'extra'
'gnome-unstable' 'kde-unstable')
 arches=('x86_64')
 
+# options
+REFRESH=0
+VERBOSE=0
+
+source /usr/share/makepkg/util/parseopts.sh
 source /usr/share/makepkg/util/util.sh
 
 recache() {
-local repo arch
+local repo arch verbosity=-s
+
+(( VERBOSE )) && verbosity=--progress-bar
 
 for repo in "${repos[@]}"; do
 for arch in "${arches[@]}"; do
 rm -rf "${SOCACHE_DIR}/${arch}/${repo}"
 mkdir -p "${SOCACHE_DIR}/${arch}/${repo}"
-curl "${SOLINKS_MIRROR}/${repo}/os/${arch}/${repo}.links.tar.gz" | 
bsdtar -xf - -C "${SOCACHE_DIR}/${arch}/${repo}"
+curl "$verbosity" 
"${SOLINKS_MIRROR}/${repo}/os/${arch}/${repo}.links.tar.gz" | bsdtar -xf - -C 
"${SOCACHE_DIR}/${arch}/${repo}"
 done
 done
 }
 
 search() {
-local repo=$1 arch lib=$2
+local repo=$1 arch lib=$2 srepos=("${repos[@]}")
 
 if [[ $repo != all ]]; then
-if ! in_array "$repo" "${repos[@]}"; then
+if ! in_array "${repo}" "${repos[@]}"; then
 echo "${BASH_SOURCE[0]##*/}: unrecognized repo '$repo'"
 echo "Try '${BASH_SOURCE[0]##*/} --help' for more information."
 exit 1
 fi
-local repos=("${repo}")
-fi
-
-if [[ ! -d ${SOCACHE_DIR} ]]; then
-recache
+srepos=("${repo}")
 fi
 
 for arch in "${arches[@]}"; do
-for repo in "${repos[@]}"; do
+for repo in "${srepos[@]}"; do
+local prefix=
+(( VERBOSE && ${#srepos[@]} > 1 )) && prefix=${repo}/
 db=${SOCACHE_DIR}/${arch}/${repo}/
 if [[ -d ${db} ]]; then
 while read -rd '' pkg; do
+read -r match
 pkg=${pkg#${db}}
-printf '%s/%s\n' "${repo}" "${pkg%-*-*/links}"
-done < <(grep -rlZ "${lib}" "${db}")
+pkg="${prefix}${pkg%-*-*/links}"
+
+if (( VERBOSE )); then
+printf '%-35s %s\n' "${pkg}" "${match}"
+else
+printf '%s\n' "${pkg}"
+fi
+done < <(grep -rZ "${lib}" "${db}") | sort -u
 fi
 done
- done | sort -u
+done | resort
 }
 
 usage() {
 cat <<- _EOF_
Usage: ${BASH_SOURCE[0]##*/} [OPTIONS] REPO LIBNAME
 
-   Check the soname links database for pacman repositories 
containing
+   Check the soname links database for Arch Linux repositories 
containing
packages linked to a given shared library. If the repository 
specified
is "all", then all repositories will be searched, otherwise 
only the
named repository will be searched.
@@ -64,35 +94,56 @@ usage() {
If the links database does not exist, it will be downloaded 
first.
 
OPTIONS
+   -v, --verbose   Show matched links in addition to pkgname
-r, --refresh   Refresh the links databases

[arch-projects] [devtools] [PATCH 3/3] fix up sogrep manpage to correspond with current sogrep command

2019-03-25 Thread Eli Schwartz via arch-projects
Signed-off-by: Eli Schwartz 
---
 doc/sogrep.1.asciidoc | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/doc/sogrep.1.asciidoc b/doc/sogrep.1.asciidoc
index bc8f6ce..037773a 100644
--- a/doc/sogrep.1.asciidoc
+++ b/doc/sogrep.1.asciidoc
@@ -3,7 +3,7 @@ sogrep(1)
 
 Name
 
-sogrep - Find packages using a linked to a given shared library
+sogrep - Find shared library links in an Arch Linux repository
 
 Synopsis
 
@@ -12,7 +12,7 @@ sogrep [options] repo libname
 Description
 ---
 
-Check the soname links database for pacman repositories containing packages
+Check the soname links database for Arch Linux repositories containing packages
 linked to a given shared library. If the repository specified is "all", then
 all repositories will be searched, otherwise only the named repository will be
 searched.
@@ -22,6 +22,12 @@ If the links database does not exist, it will be downloaded 
first.
 Options
 ---
 
+*-v, --verbose*::
+Provide detailed output containing the matched links for each package, the
+repository it came from (in the event that all repositories are being
+searched), and, in combination with `-r`, a progress bar for the links
+database download.
+
 *-r, --refresh*::
Refresh the links databases
 
-- 
2.21.0


[arch-projects] [devtools] [PATCH] makechrootpkg: keep *DEST, MAKEFLAGS & PACKAGER

2019-03-23 Thread Levente Polyak via arch-projects
From: Matt Robinson 

If makechrootpkg is called as non-root, the {SRC,SRCPKG,PKG,LOG}DEST,
MAKEFLAGS and PACKAGER environment variables are lost in the call to
check_root().

Add these to the passed keepenv list so that they are preserved instead.
---
 makechrootpkg.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/makechrootpkg.in b/makechrootpkg.in
index 4b72a36..dc647b3 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -341,7 +341,7 @@ main() {
[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid 
makepkg user.'
makepkg_user=${makepkg_user:-${SUDO_USER:-$USER}}
 
-   check_root SOURCE_DATE_EPOCH,GNUPGHOME
+   check_root 
SOURCE_DATE_EPOCH,GNUPGHOME,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER
 
# Canonicalize chrootdir, getting rid of trailing /
chrootdir=$(readlink -e "$passeddir")
-- 
2.21.0


Re: [arch-projects] [PATCH] [devtools] makechrootpkg: load COMPRESS* vars from makepkg.conf

2019-03-18 Thread Maxim Baz via arch-projects
Thanks for the detailed reply Eli :)

Before I go further, I should mention that this thread has sparked some 
interest among our teammates,
and folks on IRC are researching now a possibility of switching from xz to zstd 
entirely.

So I think we will return to this topic soon with some updates :)

> And it is not a pixz issue either. For example xz -T $num will compress
> with up to $num cores, as opposed to the default 1, but basic testing
> shows that it produces the same output with 2, 3, 4 etc. cores but
> different output from what you get when using 1 core. You cannot even
> hardcode -T0, since (in addition to requiring packagers to use more
> cores than they want to) that may still get interpreted as 1, which is
> then unreproducible. You can verify this using taskset -c 1...
>
> (This has been discussed already in #archlinux-pacman.)

Turns out it is possible to make xz use more threads and produce reproducible 
results,
check out this message: 
https://lists.debian.org/debian-dpkg/2016/10/msg00011.html

I've confirmed (with real VMs) that -T2, -T3, -T8, all produce the same result, 
on both single-core and multi-core CPUs,
and -T0 produces the same result on multi-core CPU, but -T0 produces a 
different result on a single-core CPU.

Therefore, the simplest workaround that produces reproducible results on all 
types of CPU is this:

-T$([ $(nproc) -lt 2  ] && echo '2' || echo '0')

Or maybe even something like this:

-T$(( $(nproc) + 1  ))

> For the topic of configurable implementations, there is an additional
> hurdle. Since compression happens inside the chroot, even if we did
> support it, it would need some way to look up the required binary and
> install it in the chroot, but we have no tooling for this and in fact
> makepkg does not even know how to check that the binary exists, so you
> will probably just get:
>
>   -> Compressing package...
> /usr/share/makepkg/util/compress.sh: line 39: pixz: command not found
> bsdtar: Write error
> ==> ERROR: Failed to create package file.
>
> The solution would have to require either a known, embedded list of
> "good" ones (if pixz is not reproducible when running the same command
> line twice then we'd need to be able to blacklist that), or else assume
> the user installed it when adding it to their makepkg.conf and using
> pacman -Qo. It is probably overkill to use pkgfile and support
> compressors that aren't installed on the host either...

That is correct.

One final remark, pixz does produce the same result when is run twice, I made a 
mistake when I was testing it.
But it doesn't matter, since we'll probably settle for zstd or xz -T.


--
Maxim Baz


signature.asc
Description: PGP signature


Re: [arch-projects] [PATCH] [devtools] makechrootpkg: load COMPRESS* vars from makepkg.conf

2019-03-18 Thread Eli Schwartz via arch-projects
On 3/18/19 5:56 AM, Maxim Baz via arch-projects wrote:
> I did see an earlier patch proposing the same, which was rejected because it 
> might break delta packages [1].
> However, someone mentioned that pacman is dropping support for delta packages 
> altogether [2] referring to a removal commit in pacman repo [3], so I wanted 
> to bring this up again :)
> 
> I'm creating a new thread because according to my tests the earlier patch [1] 
> is incomplete.
> 
> 
> 1: https://lists.archlinux.org/pipermail/arch-projects/2017-May/004574.html
> 2: https://github.com/AladW/aurutils/issues/547
> 3: 
> https://git.archlinux.org/pacman.git/commit/?id=9adb0d5b37df7ca668e23877e85431dabeea005e

Well, I would ideally like to add delta packages back into pacman,
whether that is via xdelta3 or something else, and it is also worth
noting it got removed at least in large part because archlinux.org
itself has never really used it, and therefore:
- it doesn't exactly get well tested
- for our use cases we don't ultimately notice the difference

(I would like to one day add delta updates to dbscripts. :( But before
that happens, I would need to convince Allan with a tested, safe delta
implementation that someone actually understands and is willing to
maintain.)

Supporting packages in the official repos which are not byte-identical
to the default COMPRESSXZ makes it quite difficult to ever add delta
support back.

...

The fundamental problem behind delta updates remains the same, though,
which is that you cannot actually generate the same package twice using
the same data (even from a byte-identical compressed tar, which is
basically what xdelta3 did). As Levente pointed out, this completely
nukes reproducible builds.

And it is not a pixz issue either. For example xz -T $num will compress
with up to $num cores, as opposed to the default 1, but basic testing
shows that it produces the same output with 2, 3, 4 etc. cores but
different output from what you get when using 1 core. You cannot even
hardcode -T0, since (in addition to requiring packagers to use more
cores than they want to) that may still get interpreted as 1, which is
then unreproducible. You can verify this using taskset -c 1...

(This has been discussed already in #archlinux-pacman.)

Without a guarantee that a given compressor will always be reproducible
no matter how many cores are used, we cannot take advantage of
multithreaded compression on any level.

More generally, without a variation on
https://patchwork.archlinux.org/patch/692/ we cannot take advantage of
any sort of configurability. But my patch was rejected.

Specific sub-issues with unknown configurability that isn't recorded in
the .BUILDINFO:

User-configurable implementations.
Without a guarantee that any implementation of a format retains
byte-level compatibility with the standard format (in this case xz), we
cannot support this as we do not know what was being used.

User-configurable options.
These are inherently unreproducible as long as they include the
compression level.

...

For the topic of configurable implementations, there is an additional
hurdle. Since compression happens inside the chroot, even if we did
support it, it would need some way to look up the required binary and
install it in the chroot, but we have no tooling for this and in fact
makepkg does not even know how to check that the binary exists, so you
will probably just get:

  -> Compressing package...
/usr/share/makepkg/util/compress.sh: line 39: pixz: command not found
bsdtar: Write error
==> ERROR: Failed to create package file.

The solution would have to require either a known, embedded list of
"good" ones (if pixz is not reproducible when running the same command
line twice then we'd need to be able to blacklist that), or else assume
the user installed it when adding it to their makepkg.conf and using
pacman -Qo. It is probably overkill to use pkgfile and support
compressors that aren't installed on the host either...

-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [PATCH] [devtools] makechrootpkg: load COMPRESS* vars from makepkg.conf

2019-03-18 Thread Maxim Baz via arch-projects
On Mon, Mar 18, 2019 at 10:58:57AM +0100, Levente Polyak via arch-projects 
wrote:
> Messing with this in devtools used for building official repo packages kills 
> reproducible builds when not agreed on very specific flags and tools to 
> compress.
> This is not a good idea to do and we won't kill reproducibility by going wild 
> west.

True, sad but valid point.

I've just confirmed that pixz produces different results when run twice on the 
same data, so I can't even propose to just switch the default to pixz without 
breaking reproducible builds :(

Thanks for the quick feedback!

--
Maxim Baz


signature.asc
Description: PGP signature


Re: [arch-projects] [PATCH] [devtools] makechrootpkg: load COMPRESS* vars from makepkg.conf

2019-03-18 Thread Levente Polyak via arch-projects
On March 18, 2019 10:56:34 AM GMT+01:00, Maxim Baz via arch-projects 
 wrote:
>I did see an earlier patch proposing the same, which was rejected
>because it might break delta packages [1].
>However, someone mentioned that pacman is dropping support for delta
>packages altogether [2] referring to a removal commit in pacman repo
>[3], so I wanted to bring this up again :)
>
>I'm creating a new thread because according to my tests the earlier
>patch [1] is incomplete.
>
>
>1:
>https://lists.archlinux.org/pipermail/arch-projects/2017-May/004574.html
>2: https://github.com/AladW/aurutils/issues/547
>3:
>https://git.archlinux.org/pacman.git/commit/?id=9adb0d5b37df7ca668e23877e85431dabeea005e
>
>--



Messing with this in devtools used for building official repo packages kills 
reproducible builds when not agreed on very specific flags and tools to 
compress.
This is not a good idea to do and we won't kill reproducibility by going wild 
west. 


Re: [arch-projects] [PATCH] [devtools] makechrootpkg: load COMPRESS* vars from makepkg.conf

2019-03-18 Thread Maxim Baz via arch-projects
I did see an earlier patch proposing the same, which was rejected because it 
might break delta packages [1].
However, someone mentioned that pacman is dropping support for delta packages 
altogether [2] referring to a removal commit in pacman repo [3], so I wanted to 
bring this up again :)

I'm creating a new thread because according to my tests the earlier patch [1] 
is incomplete.


1: https://lists.archlinux.org/pipermail/arch-projects/2017-May/004574.html
2: https://github.com/AladW/aurutils/issues/547
3: 
https://git.archlinux.org/pacman.git/commit/?id=9adb0d5b37df7ca668e23877e85431dabeea005e

--
Maxim Baz


signature.asc
Description: PGP signature


[arch-projects] [PATCH] [devtools] makechrootpkg: load COMPRESS* vars from makepkg.conf

2019-03-18 Thread Maxim Baz via arch-projects
This allows using faster multicore compression tools like pixz

Signed-off-by: Maxim Baz 
---
 archbuild.in |  2 +-
 makechrootpkg.in | 18 +-
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/archbuild.in b/archbuild.in
index bd5706d..e3d53ec 100644
--- a/archbuild.in
+++ b/archbuild.in
@@ -39,7 +39,7 @@ while getopts 'hcr:' arg; do
esac
 done

-check_root 
SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME
+check_root 
SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME,COMPRESSGZ,COMPRESSXZ,COMPRESSLRZ,COMPRESSZ,COMPRESSBZ2,COMPRESSLZO

 # Pass all arguments after -- right to makepkg
 makechrootpkg_args+=("${@:$OPTIND}")
diff --git a/makechrootpkg.in b/makechrootpkg.in
index 4b72a36..e4b7ca3 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -29,9 +29,9 @@ usage() {
echo 'command:'
echo 'mkarchroot /root base-devel'
echo ''
-   echo 'This script reads {SRC,SRCPKG,PKG,LOG}DEST, MAKEFLAGS and 
PACKAGER'
-   echo 'from makepkg.conf(5), if those variables are not part of the'
-   echo 'environment.'
+   echo 'This script reads {SRC,SRCPKG,PKG,LOG}DEST, MAKEFLAGS, PACKAGER'
+   echo 'and COMPRESS{{G,X,LR,}Z,BZ2,LZO} from makepkg.conf(5),'
+   echo 'if those variables are not part of the environment.'
echo ''
echo "Default makepkg args: ${default_makepkg_args[*]}"
echo ''
@@ -63,12 +63,18 @@ usage() {
 #  - LOGDEST
 #  - MAKEFLAGS
 #  - PACKAGER
+#  - COMPRESSGZ
+#  - COMPRESSXZ
+#  - COMPRESSLRZ
+#  - COMPRESSZ
+#  - COMPRESSBZ2
+#  - COMPRESSLZO
 load_vars() {
local makepkg_conf="$1" var

[[ -f $makepkg_conf ]] || return 1

-   for var in {SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER; do
+   for var in {SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER 
COMPRESS{{G,X,LR,}Z,BZ2,LZO}; do
[[ -z ${!var:-} ]] && eval "$(grep -a "^${var}=" 
"$makepkg_conf")"
done

@@ -185,7 +191,9 @@ prepare_chroot() {

sed -e '/^MAKEFLAGS=/d' -e '/^PACKAGER=/d' -i 
"$copydir/etc/makepkg.conf"
for x in BUILDDIR=/build PKGDEST=/pkgdest SRCPKGDEST=/srcpkgdest 
SRCDEST=/srcdest LOGDEST=/logdest \
-   "MAKEFLAGS='${MAKEFLAGS:-}'" "PACKAGER='${PACKAGER:-}'"
+   "MAKEFLAGS='${MAKEFLAGS:-}'" "PACKAGER='${PACKAGER:-}'" 
"COMPRESSGZ=(${COMPRESSGZ[*]:-})" \
+   "COMPRESSXZ=(${COMPRESSXZ[*]:-})" 
"COMPRESSLRZ=(${COMPRESSLRZ[*]:-})" "COMPRESSZ=(${COMPRESSZ[*]:-})" \
+   "COMPRESSBZ2=(${COMPRESSBZ2[*]:-})" 
"COMPRESSLZO=(${COMPRESSLZO[*]:-})"
do
grep -q "^$x" "$copydir/etc/makepkg.conf" && continue
echo "$x" >>"$copydir/etc/makepkg.conf"
--
2.21.0


signature.asc
Description: PGP signature


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-18-g6645701

2019-03-17 Thread Jelle van der Waa via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  6645701cb13a4801c870c8231d3cdc9988ce593c (commit)
  from  657497c91a67a29e990bed9911c77550d562aac0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 6645701cb13a4801c870c8231d3cdc9988ce593c
Author: Jelle van der Waa 
Date:   Sun Mar 17 14:51:19 2019 +0100

sogrep: remove duplicate sogrep

The rename of sogrep to sogrep.in failed to remove sogrep and adding it
to .gitignore.

Signed-off-by: Jelle van der Waa 

---

Summary of changes:
 .gitignore |  1 +
 sogrep | 98 --
 2 files changed, 1 insertion(+), 98 deletions(-)
 delete mode 100755 sogrep


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-17-g657497c

2019-03-16 Thread Jelle van der Waa via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  657497c91a67a29e990bed9911c77550d562aac0 (commit)
  from  90bb423304c96072cc3f7ea86ad9672414ed9183 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 657497c91a67a29e990bed9911c77550d562aac0
Author: Jelle van der Waa 
Date:   Sat Mar 16 18:35:21 2019 +0100

doc: Add myself as maintainer

Signed-off-by: Jelle van der Waa 

---

Summary of changes:
 doc/footer.asciidoc | 1 +
 1 file changed, 1 insertion(+)


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-16-g90bb423

2019-03-16 Thread Jelle van der Waa via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  90bb423304c96072cc3f7ea86ad9672414ed9183 (commit)
   via  23f248ccfbdefcb26d3d0bfa9a93e21642ba3d28 (commit)
   via  eeb1c0e59ee8a5f7be4a6742ba6689af54e9ac7d (commit)
  from  936ff8da2fb3597d03ef018ec2aba0391e18d569 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 90bb423304c96072cc3f7ea86ad9672414ed9183
Author: Jelle van der Waa 
Date:   Sat Mar 16 18:29:56 2019 +0100

sogrep: rename to sogrep.in so make clean works

make clean removes all .in converted files to a file without .in which
in the make clean step is removed. So running make clean will remove
sogrep since it's specified as BINPROGS. In the future this steps should
be removed for sogrep since it is a standalone script.

Signed-off-by: Jelle van der Waa 

commit 23f248ccfbdefcb26d3d0bfa9a93e21642ba3d28
Author: Jelle van der Waa 
Date:   Sat Mar 16 18:27:13 2019 +0100

find-libdeps: fix indentation in case

Signed-off-by: Jelle van der Waa 

commit eeb1c0e59ee8a5f7be4a6742ba6689af54e9ac7d
Author: Jelle van der Waa 
Date:   Sat Mar 16 18:25:55 2019 +0100

doc: add man pages for find-{libdeps,libprovides}

Add a simple man page for find-libdeps and find-libprovides.

Signed-off-by: Jelle van der Waa 

---

Summary of changes:
 Makefile |  4 +++-
 doc/{find-libprovides.1.asciidoc => find-libdeps.1.asciidoc} |  6 +++---
 doc/find-libprovides.1.asciidoc  | 12 ++--
 find-libdeps.in  |  2 +-
 sogrep   |  0
 sogrep => sogrep.in  |  0
 6 files changed, 13 insertions(+), 11 deletions(-)
 copy doc/{find-libprovides.1.asciidoc => find-libdeps.1.asciidoc} (84%)
 mode change 100644 => 100755 sogrep
 copy sogrep => sogrep.in (100%)


hooks/post-receive
-- 
The official devtools repository


WARN: project from a retired committee but PMC not changed to Attic in https://git-wip-us.apache.org/repos/asf?p=attic-polygene-java.git;f=doap.rdf;a=blob_plain;hb=develop

2019-03-13 Thread Projects


WARN: project in Attic but not in 'retired' category: https://git-wip-us.apache.org/repos/asf?p=attic-polygene-java.git;f=doap.rdf;a=blob_plain;hb=develop

2019-03-13 Thread Projects


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-13-g936ff8d

2019-03-13 Thread Jelle van der Waa via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  936ff8da2fb3597d03ef018ec2aba0391e18d569 (commit)
   via  d123fee8ec5c98cbb6bfa4cecf66cb7cdd9c1855 (commit)
   via  4a532e38e7ed63770b400e924715178ac4c7664c (commit)
  from  f61421a3f5f29f4f8447846c1135961487fb5db6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 936ff8da2fb3597d03ef018ec2aba0391e18d569
Author: Jelle van der Waa 
Date:   Tue Mar 12 22:18:07 2019 +0100

doc: add Environment variables section to sogrep

Add a section about environment variables which influence sogrep's
behaviour.

Signed-off-by: Jelle van der Waa 

commit d123fee8ec5c98cbb6bfa4cecf66cb7cdd9c1855
Author: Jelle van der Waa 
Date:   Mon Feb 18 13:53:41 2019 +0100

doc: add man page for mkarchroot

commit 4a532e38e7ed63770b400e924715178ac4c7664c
Author: Jelle van der Waa 
Date:   Tue Feb 19 20:26:29 2019 +0100

crossrepomove: do not set svn propset

svn propset's where determined to be non-reproducible and therefore
where removed from svn. Don't introduce them when moving packages
between repos.

Signed-off-by: Jelle van der Waa 

---

Summary of changes:
 Makefile  |  3 ++-
 crossrepomove.in  |  1 -
 doc/mkarchroot.1.asciidoc | 46 ++
 doc/sogrep.1.asciidoc | 11 +++
 4 files changed, 59 insertions(+), 2 deletions(-)
 create mode 100644 doc/mkarchroot.1.asciidoc


hooks/post-receive
-- 
The official devtools repository


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-10-gf61421a

2019-03-13 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  f61421a3f5f29f4f8447846c1135961487fb5db6 (commit)
  from  26b2ffc665fb78bfe3345892b7d740d5835387f2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit f61421a3f5f29f4f8447846c1135961487fb5db6
Author: Sven-Hendrik Haase 
Date:   Fri Mar 8 07:19:02 2019 +0100

Add sogrep

This is from Eli's dotfiles after he'd cleaned it up but never actually 
went ahead and made this PR.
I figure it's time to add it.

---

Summary of changes:
 Makefile  |  6 ++--
 doc/footer.asciidoc   |  2 +-
 doc/sogrep.1.asciidoc | 31 
 sogrep| 98 +++
 4 files changed, 134 insertions(+), 3 deletions(-)
 create mode 100644 doc/sogrep.1.asciidoc
 create mode 100644 sogrep


hooks/post-receive
-- 
The official devtools repository


Re: [arch-projects] [netctl] Extended testing for 1.20

2019-02-26 Thread Florian Pritz via arch-projects
On Tue, Feb 26, 2019 at 11:16:22AM -0500, Eli Schwartz via arch-projects 
 wrote:
> On 2/26/19 11:07 AM, Jouke Witteveen via arch-projects wrote:
> > I have not seen any new bug reports over the last two weeks. I suggest
> > we move 1.20 to [core].
> 
> We also have five signoffs from the
> https://wiki.archlinux.org/index.php/Arch_Testing_Team

Moved. Thanks!

Florian


signature.asc
Description: PGP signature


Re: [arch-projects] [netctl] Extended testing for 1.20

2019-02-26 Thread Eli Schwartz via arch-projects
On 2/26/19 11:07 AM, Jouke Witteveen via arch-projects wrote:
> On Tue, Feb 12, 2019 at 10:39 PM Florian Pritz  wrote:
>>
>> On Tue, Feb 12, 2019 at 05:20:13PM +0100, Jouke Witteveen 
>>  wrote:
>>> I just tagged 1.20, which switches from using wpa_actiond to using wpa_cli.
>>> Let's keep this in [testing] for at least two weeks to see whether
>>> there is anything noticeable from this change.
>>
>> Sounds good. Since I'm not really in the loop, please ping me when you
>> think it's time to move netctl to core and I'll do it (assuming I don't
>> hear about breakage). Thanks for the CC!
> 
> I have not seen any new bug reports over the last two weeks. I suggest
> we move 1.20 to [core].

We also have five signoffs from the
https://wiki.archlinux.org/index.php/Arch_Testing_Team

-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [netctl] Extended testing for 1.20

2019-02-26 Thread Jouke Witteveen via arch-projects
On Tue, Feb 12, 2019 at 10:39 PM Florian Pritz  wrote:
>
> On Tue, Feb 12, 2019 at 05:20:13PM +0100, Jouke Witteveen 
>  wrote:
> > I just tagged 1.20, which switches from using wpa_actiond to using wpa_cli.
> > Let's keep this in [testing] for at least two weeks to see whether
> > there is anything noticeable from this change.
>
> Sounds good. Since I'm not really in the loop, please ping me when you
> think it's time to move netctl to core and I'll do it (assuming I don't
> hear about breakage). Thanks for the CC!

I have not seen any new bug reports over the last two weeks. I suggest
we move 1.20 to [core].

Regards,
- Jouke


[arch-projects] [devtools] [GIT] The official devtools repository branch master updated. 20180531-9-g26b2ffc

2019-02-24 Thread Levente Polyak via arch-projects
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The official devtools repository".

The branch, master has been updated
   via  26b2ffc665fb78bfe3345892b7d740d5835387f2 (commit)
  from  62306018f2cea57aafae410f00d00d2594592e8f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit 26b2ffc665fb78bfe3345892b7d740d5835387f2
Author: Jelle van der Waa 
Date:   Sat Feb 2 19:09:36 2019 +0100

remove arch rm as it's not really useful

archrm is a not much more fancy rm -rf and therefore not really useful
to ship.

---

Summary of changes:
 .gitignore|  1 -
 Makefile  |  1 -
 archrm.in | 16 
 zsh_completion.in |  6 +-
 4 files changed, 1 insertion(+), 23 deletions(-)
 delete mode 100644 archrm.in


hooks/post-receive
-- 
The official devtools repository


Re: [arch-projects] [devtools] [PATCH] mkarchroot: use pacman-conf for obtaining CacheDir

2019-02-19 Thread Eli Schwartz via arch-projects
On 2/19/19 2:54 PM, Jelle van der Waa wrote:
> Instead of using sed/grep and relying on the output of 'pacman -v' use
> pacman-conf for obtaining the configuration value of the CacheDir.

Misses the same change in arch-nspawn, see for example
https://github.com/eli-schwartz/devtools/commit/2bfe582bee3c4d17314e46bb15c03f75cc269dc8

-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [netctl][PATCH] Move away from using wpa_actiond

2019-02-15 Thread Emil Velikov via arch-projects
On Sat, 9 Feb 2019 at 09:19, Thomas Bächler  wrote:
>
> Am 8. Februar 2019 20:17:52 MEZ schrieb Jouke Witteveen 
> :
> >On Fri, Feb 8, 2019 at 3:36 PM Emil Velikov 
> >wrote:
> >>
> >> On Thu, 7 Feb 2019 at 14:50, Jouke Witteveen via arch-projects
> >>  wrote:
> >> >
> >> > The same functionality is provided by wpa_supplicant, so we do not
> >need
> >> > an extra and Arch Linux specific dependency.
> >>
> >> The introduction of wpa_actiond [1] hints there are issues with
> >wpa_cli. Namely:
> >> - partial or missing logging capabilities
> >> - race conditions
> >>
> >> Sadly I don't know much more about this. It'll be great if can use
> >> wpa_cli, while not introducing new issues.
> >>
> >> -Emil
> >>
> >> [1]
> >https://git.archlinux.org/wpa_actiond.git/commit/?id=c5c587771403d31ab4538e1c756e0b88a4641a92
> >
> >Thanks! This detective work is highly appreciated! For some reason I
> >had assumed wpa_cli would have gained this functionality only after
> >wpa_actiond came into existence. This couldn't really explain why both
> >use the same parameter names though...
> >I wonder if the issues with wpa_cli have been taken upstream. In my
> >experience, the maintainer of wpa_supplicant is very pleasant to work
> >with.
> >
> >autowifi and, later, wpa_actiond are important parts of the history of
> >netctl, but I tend to give over 10 years of development in
> >wpa_supplicant the benefit of the doubt. This means I would like to
> >try to move away from wpa_actiond anyway. Currently, except from those
> >using wpa_actiond directly, I think netctl is the only user of
> >wpa_actiond.
> >
> >@Thomas: do you have an oppinion in these matters?
> >
> >Thanks,
> >- Jouke
>
> I honestly don't remember why wpa_cli was insufficient at the time and why I 
> wrote wpa_actiond. That must have been way over 10 years ago. I just remember 
> that my first attempt used wpa_cli, and something obvious was missing.

I'd imagine Jouke has been running the patch for a bit and has not
seen serious issues.
Guess we could merge this and consider any issues as/if they arise?

If it were me I would have kept the cosmetics separate, but it's
nothing major so.
 - s/wpa_config/WPAConfigFile/
 - RFKill && -> if RFKill; then

Thanks for the work guys.
-Emil


WARN: project in Attic but not in 'retired' category: https://git-wip-us.apache.org/repos/asf?p=attic-polygene-java.git;f=doap.rdf;a=blob_plain;hb=develop

2019-02-13 Thread Projects


<    1   2   3   4   5   6   7   8   9   10   >