Tue Jun 26, 2018 - https://depot.cs.uwaterloo.ca/ does not answer and I believe it has not answered for some time. That is, HTTPS is not available; http://depot.cs.uwaterloo.ca/ does answer reasonably reliably. |
git clone git.cs.uwaterloo.ca:/git/depot.cs.git
Tue Jun 26, 2018 - "git clone" is biased towards the branch defined as current on the server, usually master. -- AdrianPepper Tue Jun 26, 2018 - "git clone --bare" will clone entire repository, with no checked-out branch. -- AdrianPepper Wed Jun 27, 2018 - actually the git trap is as follows... git clone http://git.cs.uwaterloo.ca:/depot.cs cd depot.cs git checkout -b WILY is not the same as... git clone http://git.cs.uwaterloo.ca:/depot.cs cd depot.cs git checkout WILY Also N.B. as shown git clone git.cs.uwaterloo.ca:/git/depot.cs.gitalso works, and is perhaps preferable since it requires authentication. But that causes us to wonder if the http:// version should be supported. In fact, experiments cause me to wonder whether they are the same repositories. Actually, it appears that the two methods generate radically different .git directories, but that the checked-out contents for equivalent branches are the same. |
git checkout `lsb_release -sc | tr '[:lower:]' '[:upper:]'`or if you want a distribution that isn't the same as the host you're currently on:
git checkout TRUSTY
Tue Jun 26, 2018 - This will result in you working on a branch with the indicated name, perhaps distinct from remotes/origin/TRUSTY. Here I used WILY. arpepper@u1804github:/tmp/git-depot.cs/depot.cs$ git branch -a * WILY master remotes/origin/HEAD -> origin/master remotes/origin/PRECISE remotes/origin/TRUSTY remotes/origin/VIVID remotes/origin/WILY remotes/origin/XENIAL remotes/origin/master arpepper@u1804github:/tmp/git-depot.cs/depot.cs$ -- AdrianPepper Tue Jun 26, 2018 - Verifying the (limited) directory contents against, an "exploded" WILY copy suggested the contents were the same. Subsequent comparison with similarly explode other branches, e.g. VIVID or XENIAL was reasonably convincing demonstration that you have WILY branch above. diff -r --brief git-depot.cs-explode/branches/VIVID git-depot.cs/depot.cs | grep -v '[/][.]git[/]' -- AdrianPepper |
Package: uwcs-auth Version: `date +%Y.%m%d%H%M` Section: admin Priority: optional Architecture: all Depends: libpam-modules, libpam-runtime, libpam-krb5, libpam-ldap, libpam-foreground, openldap-utils, libgssapi-krb5-2, libkrb5-3, krb5-user Recommends: nscd Maintainer: CSCF Infrastructure Staff <csi-software@cs.uwaterloo.ca> Description: Metapackage to install libraries necessary for AD authenticationTo modify dependencies or recommendations simply add or remove packages from the appropriate list.
cd packages/ ../bin/deploy $PACKAGE_NAMEThe bin/deploy script uploads the package and runs the appropriate reprepro commands on depot.cs.uwaterloo.ca to publish the new version of the package.
Tue Jun 26, 2018 - ../bin/deploy potentially varies from release to release. (and does) Currently, the "master" version appears to refer to "xenial" but does differ from the "XENIAL" branch. -- AdrianPepper |
cp -r packages/template packages/$NEW_PACKAGE_NAME
echo "Origin: CSCF Label: Ubuntu Suite: precise Codename: precise Architectures: alpha amd64 i386 mips mipsel sparc powerpc source Components: main contrib non-free Log: precise.log" > /depot/debian/conf/distributions
Tue Jun 26, 2018 - https://depot.cs.uwaterloo.ca/ does not answer and I believe it has not answered for some time. -- AdrianPepper |
apt-get install --quiet --force-yes apache2
echo "<VirtualHost *:80> ServerAdmin a2brenna@csclub.uwaterloo.ca ServerName depot.cs.uwaterloo.ca ServerAlias depot.cs depot DocumentRoot /depot/debian/www ErrorLog /var/log/apache2/debian-error.log CustomLog /var/log/apache2/debian-access.log combined <Directory /depot/debian/www> Allow from all </Directory> </virtualHost>" > /etc/apache2/sites-enabled/debian echo "<VirtualHost *:80> ServerAdmin a2brenna@csclub.uwaterloo.ca ServerName depot.cs.uwaterloo.ca ServerAlias depot.cs depot DocumentRoot /depot/debian/www ErrorLog /var/log/apache2/debian-error.log CustomLog /var/log/apache2/debian-access.log combined <Directory /depot/debian/www> Allow from all </Directory> </virtualHost>" > /etc/apache2/sites-available/debian /etc/init.d/apache2 restartIn the near future, these files will by symlinked together as they are identical and should remain so.
Tue Jun 26, 2018 - https://depot.cs.uwaterloo.ca/ does not answer and I believe it has not answered for some time. -- AdrianPepper Tue Jun 26, 2018 - After all, I see no https config there -- AdrianPepper |
Tue Jun 26, 2018 - I wonder if there are reprepro config packages somewhere? -- AdrianPepper Tue Jun 26, 2018 - After all, I see no https config there -- AdrianPepper |
adduser depotTo facilitate controlled safe access to this account it is advisable to use ssh keys. At present, access to the depot account (and permissions to manage the repository) are governed by the ssh keys in /home/depot/.ssh/authorized_keys2. Given the small number of administrators at CSCF this solution seems perfectly adequate.
root@depot:~# getent passwd depot depot:x:1000:1000:CSCF Depot Manager,,,:/home/depot:/bin/bash root@depot:~# Tue Jun 26, 2018 - Does not seem ideal to use usual uid:gid for cscf-adm -- AdrianPepper |
apt-get install --quiet --force-yes reprepro
mkdir -p /depot/debianTechnically this can be an arbitrary empty directory. Depot.cs.uwaterloo.ca:/depot/debian seemed reasonable since we may eventually support distributions that are not debian based, and this naming scheme allows us to encapsulate our entire software packaging solution in a single top level directory, /depot.
mkdir -p /depot/debian/conf
echo "Origin: CSCF Label: Ubuntu Suite: precise Codename: precise Architectures: alpha amd64 i386 mips mipsel sparc powerpc source Components: main contrib non-free Log: precise.log" > /depot/debian/conf/distributionsMultiple entries in this file are separated with empty lines. Since metapackages have no binary components and exist only to conveniently install a set of dependencies, we can safely support numerous architectures. In retrospect, Ubuntu (and CSCF) only supports i386, amd64 and experimental arm architectures, so we can likely safely remove the other entries at some point. CSCF currently only supports the Ubuntu 12.04 LTS release, codenamed Precise. There is legacy support for Ubuntu 10.10 (Maverick), but this is no longer maintained and should not be used on new machines.
Tue Jun 26, 2018 - arpepper@u1804github:/tmp/git-depot.cs-explode/repository/depot.cs.git$ git branch -a PRECISE TRUSTY VIVID WILY XENIAL * master arpepper@u1804github:/tmp/git-depot.cs-explode/repository/depot.cs.git$ PRECISE - 12.04 TRUSTY - 14.04 VIVID - 15.04 WILY - 15.10 XENIAL - 16.04 BIONIC - 18.04 |
apt-get install --quiet --force-yes gnupg dpkg-sig
su - depot gpg --gen-keyTo securely generate a key it is necessary that the machine have sufficient entropy in the entropy pool. This is occasionally a problem on machines that do not have a lot of interactive use. In our case, it took many many days to gather sufficient entropy for the pool in order to generate a proper key.
su - depot gpg --armor --export > depot.pub.gpg.keyThis public key is what your clients will use to verify the integrity of your signed packages. It is safe to post this somewhere public. In our case CSCF has placed this key at https://cs.uwaterloo.ca/cscf/certs/depot.pub.gpg.key.
#!/usr/bin/env bash set -o errexit set -o xtrace set -o nounset rm /tmp/legato.deb || true wget -O /tmp/legato.deb http://ist.uwaterloo.ca/download/networker/current/nw_lgtoclnt_amd64.deb #Will fail if identical version already exists reprepro -b /depot/debian includedeb trusty /tmp/legato.deb || true
0 0 * * * ~/bin/legato_update.sh
root@depot:~# apt-cache showpkg reprepro | head -4 Package: reprepro Versions: 4.8.2-1ubuntu0.1 (/var/lib/apt/lists/mirror.csclub.uwaterloo.ca_ubuntu_dists_precise-updates_universe_binary-amd64_Packages) (/var/lib/dpkg/status) Description Language: root@depot:~# versus arpepper@u1804github:~$ apt-cache showpkg reprepro | head -4 Package: reprepro Versions: 5.1.1-1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages) (/var/lib/apt/lists/mirror.csclub.uwaterloo.ca_ubuntu_dists_bionic_universe_binary-amd64_Packages) Description Language: arpepper@u1804github:~$ -- AdrianPepper |
I vaguely recall using reprepro to setup a repository on a removable disk drive once. -- AdrianPepper |
After changing directory into the repository you must check out the branch corresponding to the release for which you wish to modify packages. git checkout `lsb_release -sc | tr '[:lower:]' '[:upper:]'`or if you want a distribution that isn't the same as the host you're currently on: git checkout TRUSTY |
Tue Jun 26, 2018 - I see no indication here of how the git.cs.uwaterloo.ca repository depot.cs should be updated. -- AdrianPepper |