Move keys from gitinator to main namespace. Repository history could not be migrated at this time, but may be added retroactively in the near future

This commit is contained in:
idk
2021-09-09 14:18:23 -04:00
parent 2045114890
commit e8f6135e93
12 changed files with 790 additions and 1 deletions

126
HOWTO-EXPIRED-KEY.txt Normal file
View File

@ -0,0 +1,126 @@
Debian reprepro signing key is 5BCF1346 or 7840E7610F28B904753549D767ECE5605BCF1346
If you do all this SEVERAL DAYS BEFORE the key expires,
then users will pull the updated i2p-keyring package,
and all will go smoothly.
to update expiration
--------------------
1) Update the GPG key
gpg --edit-key 5BCF1346
list
key 0
expire
13m
key 1 (subkey 3CAB5E06)
expire
13m
save
2) Backup
If you didn't do the above on deb.i2p2.no, import the
public key with the new expiration to kytv's gpg there
Also import the new 59683006 key there if it's been renewed since last time.
If you did do the above on deb.i2p2.no, import the
public key with the new expiration to your own box
gpg --export -a 7840E7610F28B904753549D767ECE5605BCF1346 > i2p-debian-repo.key.asc
scp i2p-debian-repo.key.asc ...
sudo su kytv
gpg --import i2p-debian-repo.key.asc
3) Send to key server
gpg --keyserver foo --send-keys 5BCF1346
keyservers: pool.sks-keyservers.net, pgp.mit.edu, keys.gnupg.net
4) Put the new public key on the website
This file is linked from https://geti2p.net/debian
gpg --export -a 7840E7610F28B904753549D767ECE5605BCF1346 > i2p-debian-repo.key.asc
copy file to mtn i2p.www i2p2www/static/i2p-debian-repo.key.asc
check in and push
5) i2p-keyring package update
gpg --export -a 7840E7610F28B904753549D767ECE5605BCF1346 > official_repo.key
checkout mtn i2p.keyring.i2p branch
copy official_repo.key to keys/official_repo.key in workspace
Update debian/changelog
Update Extended.Version in build.xml
mtn ci, mtn push
Now build the new package:
ant debian-binary
ant debian-tarball
cd ../i2p-keyring-201x.xx.xx/
debuild -S -sa -k85F345DD59683006
Copy these files to a temp dir on the reprepro server:
i2p-keyring_201x.xx.xx.dsc
i2p-keyring_201x.xx.xx.tar.gz
i2p-keyring_201x.xx.xx_all.deb
i2p-keyring_201x.xx.xx_source.build
i2p-keyring_201x.xx.xx_source.changes
Now add the updated package to reprepro:
reprepro -v includedeb wheezy i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb jessie i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb stretch i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb buster i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb sid i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb precise i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb trusty i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb vivid i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb xenial i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb zesty i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb artful i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb bionic i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb cosmic i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb disco i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedeb eoan i2p-keyring_201x.xx.xx_all.deb
reprepro -v includedsc wheezy i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc jessie i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc stretch i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc buster i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc sid i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc precise i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc trusty i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc vivid i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc xenial i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc zesty i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc artful i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc bionic i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc cosmic i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc disco i2p-keyring_201x.xx.xx.dsc
reprepro -v includedsc eoan i2p-keyring_201x.xx.xx.dsc
review changes:
reprepro ls i2p-keyring
6) Announce
Add a note to /var/www/debian/index.php
If you did all this before the old key expired, everything is good.
If not, you may have to tell people to
download the key used to sign the repository and add it to apt:
wget https://geti2p.net/_static/i2p-debian-repo.key.asc
sudo apt-key add i2p-debian-repo.key.asc
sudo apt-get update

View File

@ -1,3 +1,5 @@
# I2P Debian Package Keyring # I2P Debian Package Keyring
I2P Debian Package Keyring Package. I2P Debian Package Keyring Package.
See HOWTO-EXPIRED-KEY.txt for instructions.

1
README.txt Normal file
View File

@ -0,0 +1 @@
See HOWTO-EXPIRED-KEY.txt in the i2p.reprepro branch for instructions.

87
build.xml Normal file
View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<project basedir="." default="debian" name="i2p-keyring"
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<target name="checkForMtn" >
<available property="mtn.available" file="_MTN" type="dir" />
</target>
<target name="debian" depends="debian-clean, debchange, debian-binary, debian-tarball" />
<target name="getExtendedVersion" depends="checkForMtn" >
<property name="Extended.Version" value="2019.09.21" />
</target>
<target name="debchange" depends="getExtendedVersion" unless="noAutoDebchange">
<echo message= "Debian version is ${Extended.Version}" />
<exec executable="dch" failonerror="true">
<env key="TZ" value="UTC" />
<env key="DEBCHANGE_TZ" value="UTC" />
<env key="DEBEMAIL" value="zzz@i2pmail.org" />
<env key="DEBFULLNAME" value="zzz on i2p" />
<arg value="-b" />
<arg value="--check-dirname-level" />
<arg value="0" />
<arg value="-v" />
<arg value="${Extended.Version}" />
<arg value="-D" />
<arg value="unstable" />
<arg value="Unofficial Debian package built using &quot;ant debian&quot;" />
</exec>
</target>
<target name="debian-binary" depends="getExtendedVersion">
<exec executable="fakeroot" failonerror="true">
<arg value="debian/rules" />
<arg value="binary" />
<arg value="clean" />
</exec>
<delete dir=".pc" />
<echo message="" />
<echo message="====================" />
<echo message="Packages have been built" />
<echo message="====================" />
</target>
<target name="debian-clean" depends="getExtendedVersion" >
<exec executable="fakeroot" failonerror="true">
<arg value="debian/rules" />
<arg value="clean" />
</exec>
<delete dir="./.pc" />
</target>
<target name="debian-tarball" depends="getExtendedVersion">
<!-- this will use the monotonerc file in the current workspace -->
<fail message="This target cannot be used without Monotone! Use &quot;fakeroot debian/rules get-orig-source&quot; instead.">
<condition>
<not>
<isset property="mtn.available" />
</not>
</condition>
</fail>
<property name="debian.tarball.name" value="i2p-keyring_${Extended.Version}.tar.gz" />
<echo message="Checking out fresh copy into ../i2p-keyring-${Extended.Version} for tarballing:" />
<delete dir="../i2p-keyring-${Extended.Version}" />
<exec executable="mtn" failonerror="true">
<arg value="co" />
<!-- w: is the revision of the current workspace -->
<arg value="-r" />
<arg value="w:" />
<arg value="../i2p-keyring-${Extended.Version}" />
</exec>
<delete includeemptydirs="true" quiet="false">
<fileset dir="../i2p-keyring-${Extended.Version}/_MTN" />
<file name="../i2p-keyring-${Extended.Version}/build.xml" />
<file name="../i2p-keyring-${Extended.Version}/README.txt" />
</delete>
<tar longfile="gnu" destfile="../${debian.tarball.name}" compression="gzip">
<tarfileset dir="../i2p-keyring-${Extended.Version}" prefix="/i2p-keyring-${Extended.Version}">
<include name="**/**" />
<exclude name="build.xml" />
<exclude name="README.txt" />
</tarfileset>
</tar>
</target>
</project>

60
debian/changelog vendored Normal file
View File

@ -0,0 +1,60 @@
i2p-keyring (2019.09.21) unstable; urgency=medium
* Extend keys for two more years
-- zzz on i2p <zzz@i2pmail.org> Sat, 21 Sep 2019 12:00:00 +0000
i2p-keyring (2018.09.16) unstable; urgency=medium
* Extend keys for another year
-- zzz on i2p <zzz@i2pmail.org> Mon, 16 Sep 2018 12:00:00 +0000
i2p-keyring (2017.09.21) unstable; urgency=medium
* Fix for old GPG
-- zzz on i2p <zzz@i2pmail.org> Mon, 21 Sep 2017 12:00:00 +0000
i2p-keyring (2017.09.20) unstable; urgency=medium
* Fix incompatibility with new GPG
-- zzz on i2p <zzz@i2pmail.org> Mon, 20 Sep 2017 12:00:00 +0000
i2p-keyring (2017.09.18) unstable; urgency=medium
* Extend keys for another year
-- zzz on i2p <zzz@i2pmail.org> Mon, 18 Sep 2017 12:00:00 +0000
i2p-keyring (2016.10.01) unstable; urgency=medium
* Extend keys for another year
-- zzz on i2p <zzz@i2pmail.org> Sat, 01 Oct 2016 16:50:00 +0000
i2p-keyring (2015.10.02.1) unstable; urgency=medium
* Extend the subkey too
-- Kill Your TV <killyourtv@i2pmail.org> Fri, 02 Oct 2015 02:29:31 +0000
i2p-keyring (2015.10.02) unstable; urgency=medium
* Extend key for another yet
-- Kill Your TV <killyourtv@i2pmail.org> Fri, 02 Oct 2015 02:04:04 +0000
i2p-keyring (2014.09.25) unstable; urgency=medium
* Extend key for another year
-- Kill Your TV <killyourtv@i2pmail.org> Thu, 25 Sep 2014 17:20:29 +0000
i2p-keyring (2013.10.12) unstable; urgency=low
* Initial release
-- Kill Your TV <killyourtv@i2pmail.org> Sat, 12 Oct 2013 14:09:28 +0000

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
7

16
debian/control vendored Normal file
View File

@ -0,0 +1,16 @@
Source: i2p-keyring
Section: misc
Priority: extra
Maintainer: zzz on i2p <zzz@i2pmail.org>
Build-Depends: debhelper (>= 7), gnupg
Standards-Version: 3.9.4
Package: i2p-keyring
Architecture: all
Depends: ${misc:Depends}, gnupg, coreutils (>= 7.4)
Recommends: killyourtv-keyring
Description: GnuPG keys of the I2P package repository
This package provides digital keys used for signing I2P's repositories.
Upon installation of this package, your APT trusted keyring will updated with
these keys. Upon removal of this package, the keys provided by this package
will be removed from the APT trusted keyring.

29
debian/copyright vendored Normal file
View File

@ -0,0 +1,29 @@
This package was debianized by Modestas Vainius <modestas@vainius.eu> on
Mon, 03 Aug 2009 02:12:19 +0300.
Upstream Authors:
Modestas Vainius <modestas@vainius.eu>
Copyright:
Copyright: © 2009 Modestas Vainius <modestat@vainius.eu>
License of all content including debian packaging:
| This package 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 package 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 package; if not, write to the Free Software
| Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

2
debian/install vendored Normal file
View File

@ -0,0 +1,2 @@
i2p-archive-keyring.gpg usr/share/keyrings
i2p-archive-removed-keys.gpg usr/share/keyrings

124
debian/maint-script vendored Executable file
View File

@ -0,0 +1,124 @@
#!/bin/sh
set -e
KEYRING=/usr/share/keyrings/i2p-archive-keyring.gpg
REMOVED_KEYS=/usr/share/keyrings/i2p-archive-removed-keys.gpg
TRUSTDB=`mktemp --tmpdir trustdb.gpg.XXXXXXXXXX`
# Run cleanup function on exit
trap cleanup 0
run_gpg() {
if [ -f "$TRUSTDB" ] && [ ! -s "$TRUSTDB" ]; then
rm -f "$TRUSTDB"
fi
gpg --homedir=/dev/null --secret-keyring=/dev/null --trustdb-name="$TRUSTDB" \
--batch --ignore-time-conflict --no-options --lock-never --no-auto-check-trustdb \
--no-default-keyring --no-use-agent "$@" 2>/dev/null
}
cleanup() {
if [ -f "$TRUSTDB" ]; then
rm -f "$TRUSTDB"
fi
}
list_keys() {
run_gpg --with-colons --list-keys "$@" | grep ^pub
}
print_key() {
echo "$1" | awk -F: 'BEGIN { ORS = "" } { print " " $5, $6, $10; if ($7) print " [ expires " $7 " ]"; }'
}
remove_keys() {
list_keys "$@" | while read key; do
id=`echo "$key" | cut -d: -f5`
if [ -n "`apt-key export $id 2>/dev/null`" ]; then
print_key "$key"
echo -n " ... "
apt-key del $id
fi
done
}
sync_keys() {
action="$1"
if [ -s "$KEYRING" ]; then
if [ "$action" = "update" ]; then
echo "Adding/refreshing keys:"
list_keys --keyring $KEYRING | while read key; do
print_key "$key"
echo
done
echo -n "... "
# doesn't work with new GPG
# apt-key add $KEYRING
run_gpg --keyring $KEYRING --export -a | apt-key add -
elif [ "$action" = "remove" ]; then
echo "Removing keys (if exist):"
remove_keys --keyring $KEYRING
else
echo "Internal error: unknown sync action '$action'" >&2
exit 2
fi
fi
if [ -s "$REMOVED_KEYS" ]; then
echo "Removing old keys (if exist):"
remove_keys --keyring $REMOVED_KEYS
fi
}
postinst() {
case "$1" in
configure)
sync_keys update
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "unrecognized postinst argument: $1" >&2
exit 1
;;
esac
}
prerm() {
case "$1" in
remove|purge)
sync_keys remove
;;
upgrade|deconfigure)
;;
failed-upgrade)
;;
*)
echo "unrecognized prerm argument: $1" >&2
exit 1
;;
esac
}
if [ ! -x /usr/bin/apt-key ]; then
exit 0
fi
case "$0" in
*prerm)
prerm "$@"
;;
*postinst)
postinst "$@"
;;
*)
echo "Unhandled script: $0" >&2
exit 1
;;
esac
exit 0

73
debian/rules vendored Executable file
View File

@ -0,0 +1,73 @@
#!/usr/bin/make -f
KEYRING := ./i2p-archive-keyring.gpg
REMOVED_KEYS_KEYRING := ./i2p-archive-removed-keys.gpg
KEYRING_TMP := ./i2p-archive-keyring-tmp.gpg
REMOVED_KEYS_KEYRING_TMP := ./i2p-archive-removed-keys-tmp.gpg
GPG := gpg --homedir=gpghome --batch --ignore-time-conflict \
--secret-keyring=/dev/null --no-use-agent \
--no-options --lock-never --no-auto-check-trustdb \
--no-default-keyring
gpghome:
mkdir gpghome
chmod 0700 gpghome
$(KEYRING): $(wildcard keys/*) | gpghome
# Create a keyring from the keys in the keys/ directory
if [ -d keys ]; then \
$(GPG) --keyring $(KEYRING_TMP) --import keys/*; \
$(GPG) --keyring $(KEYRING_TMP) --export > $(KEYRING); \
else \
echo "No keys in the keys directory." >&2 && exit 1; \
fi
$(REMOVED_KEYS_KEYRING): $(wildcard removed-keys/*) | gpghome $(KEYRING)
# Create a keyring from the keys in the remove-keys/ directory
if [ -d removed-keys ]; then \
$(GPG) --keyring $(REMOVED_KEYS_KEYRING_TMP) --import removed-keys/*; \
$(GPG) --keyring $(REMOVED_KEYS_KEYRING_TMP) --export > $(REMOVED_KEYS_KEYRING); \
else \
touch $(REMOVED_KEYS_KEYRING); \
fi
build: $(KEYRING) $(REMOVED_KEYS_KEYRING)
clean:
dh_testdir
dh_testroot
dh_clean
rm -rf gpghome
rm -f *.gpg *.gpg~
rm -f debian/prerm debian/postinst
build-arch:
# dummy
build-indep:
#dummy
binary-arch:
#policy requires this.
binary-indep: build
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_install
dh_installman
dh_link
dh_compress
dh_fixperms
cp -a debian/maint-script debian/prerm
cp -a debian/maint-script debian/postinst
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep
.PHONY: clean binary-indep binary-arch binary build

268
keys/official_repo.key Normal file
View File

@ -0,0 +1,268 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
GI5fntTjhyu6d6NJ0xVcWa/w+hTyPDjQGQ==
=KZp7
-----END PGP PUBLIC KEY BLOCK-----