debian/0000775000000000000000000000000013111671151007165 5ustar debian/tests/0000775000000000000000000000000012754612070010336 5ustar debian/tests/client0000775000000000000000000000011312754612070011535 0ustar #!/bin/bash set -ex echo "Testing juju version: " juju version echo "OK" debian/tests/future-local-provider0000775000000000000000000000034312754612070014516 0ustar #!/bin/sh set -ex if [ ! -d /run/systemd/system ]; then echo "SKIP: non-systemd series are not valid future series." exit 0 fi sh debian/tests/fake-future.sh sh debian/tests/normal-user.sh debian/tests/local-provider debian/tests/normal-user.sh0000664000000000000000000000126212754612070013137 0ustar #!/bin/sh set -ex # Run $1 as a normal user. This isn't currently quoted properly, but it does # run the command in a login shell, which I think is as close as I can get and # all I need right now. It also preserves the current working directory so that # dep8 test resources can still be located. There was some discussion of this # approach at: http://irclogs.ubuntu.com/2014/06/06/%23ubuntu-devel.html#t09:35 # Author: Robie Basak adduser --disabled-password --gecos '' jujutest # Allow jujutest to sudo back to root (this is what juju expects) echo 'jujutest ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/jujutest sudo -iu jujutest sh < for this particularly twisted # hack. Although in a similarly twisted way, I'm quite proud of it :) info_file=/usr/share/distro-info/ubuntu.csv lsb_file=/etc/lsb-release os_release_file=/etc/os-release # foo -> goo # Trusty -> Urusty # Utopic -> Vtopic bump_word() { read r l=${r#?} f=${r%$l} n=`echo $f|tr a-y,z,A-Y,Z b-z,a,B-Z,A` echo "$n$l" } # 12.04 -> 13.04 bump_version() { read v maj=${v%.*} min=${v#*.} n=`expr 1 + $maj` echo "${n}.${min}" } # foo bar -> goo car # Trusty Tahr -> Urusty Uahr # Utopic Unicorn -> Vtopic Vnicorn bump_words() { read words bumped=`for w in $words; do echo "$w"|bump_word;done` printf "%s" "$bumped"|tr "\n" ' ' echo } last_line=`tail -1 "$info_file"` version=`echo "$last_line"|cut -d, -f1|bump_version` version_=`echo "$version"|awk '{print $1}'` codename=`echo "$last_line"|cut -d, -f2|bump_words` series=`echo "$last_line"|cut -d, -f3|bump_word` created=`date -d '-2 days' +%Y-%m-%d` release=`date -d '-1 days' +%Y-%m-%d` eol=`date -d '+1 days' +%Y-%m-%d` id=`lsb_release -si` [ -f "${info_file}.orig" ] || cp -a "${info_file}" "${info_file}.orig" echo "${version},${codename},${series},${created},${release},${eol},${eol}" >> /usr/share/distro-info/ubuntu.csv [ -f "${lsb_file}.orig" ] || cp -a "${lsb_file}" "${lsb_file}.orig" cat > "$lsb_file" < "$os_release_file" < ~/.juju/environments.yaml << EOF default: local-test environments: local-test: type: local admin-secret: c46629f0935c757a46b26946ac244f3f EOF echo "Testing juju bootstrap: " juju bootstrap --upload-tools --debug echo "OK" echo "Waiting for environment to bootstrap: " juju status --debug echo "OK" echo "Destroying environment: " juju destroy-environment --debug --yes local-test echo "OK" debian/tests/manual-provider0000775000000000000000000000120712754612070013371 0ustar #!/bin/sh set -ex # Author: Robie Basak # Test manual provider against localhost # Avoid catching 127.0.0.1, since this can't be reached by a proxy if a proxy # is in use. ip=`ip -o -4 addr show|awk '{print $4}'|cut -f1 -d/|grep -v '^127.0.0.1$'|head -1` mkdir -pm700 ~/.ssh ssh-keygen -f ~/.ssh/id_rsa -N '' cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh-keyscan "$ip" >> ~/.ssh/known_hosts mkdir -p ~/.juju cat > ~/.juju/environments.yaml <= 2.4.6)" else DB_DEP = -Vdist:Depends="juju-mongodb (>= 2.4.6)" endif %: dh $@ debian/juju-core.postinst: debian/juju-core.postinst.in sed -e "s/__NEW_VERSION__/$(VERSION)/g" $< > $@ debian/juju-core.prerm: debian/juju-core.prerm.in sed -e "s/__NEW_VERSION__/$(VERSION)/g" $< > $@ debian/juju-core.lintian-overrides: debian/juju-core.lintian-overrides.in sed -e "s/__NEW_VERSION__/$(VERSION)/g" $< > $@ COMMON_FLAGS:= -x -v -work golang_archs:= amd64 i386 armhf ifeq (,$(filter $(DEB_HOST_ARCH), $(golang_archs))) # NOTE(james-page) statically link libgo for the jujud binary for gccgo # this allows the binary to be re-cut for upstream tool distribution and # mimics the behaviour of the golang gc compiler. JUJUD_FLAGS:= -gccgoflags -static-libgo endif override_dh_auto_install: debian/juju-core.postinst debian/juju-core.prerm debian/juju-core.lintian-overrides go install $(COMMON_FLAGS) github.com/juju/juju/cmd/juju go install $(COMMON_FLAGS) github.com/juju/juju/cmd/plugins/juju-metadata go install $(COMMON_FLAGS) github.com/juju/juju/cmd/plugins/juju-restore go install $(COMMON_FLAGS) $(JUJUD_FLAGS) github.com/juju/juju/cmd/jujud mkdir -p debian/home HOME=debian/home $(GOPATH)/src/github.com/juju/juju/scripts/generate-docs.py man -o juju.1 dh_install bin/juju usr/lib/juju-$(VERSION)/bin dh_install bin/juju-metadata usr/lib/juju-$(VERSION)/bin dh_install bin/juju-restore usr/lib/juju-$(VERSION)/bin dh_install src/github.com/juju/juju/cmd/plugins/juju-backup/juju-backup usr/lib/juju-$(VERSION)/bin dh_install bin/jujud usr/lib/juju-$(VERSION)/bin dh_install juju.1 usr/lib/juju-$(VERSION)/man/man1 dh_install src/github.com/juju/juju/etc/bash_completion.d/juju-core etc/bash_completion.d dh_auto_install override_dh_auto_clean: rm -rf debian/juju-core.prerm debian/juju-core.postinst debian/juju-core.lintian-overrides bin juju.1 rm -rf pkg bin /tmp/go-build* debian/home find . -name "*.pyc" -delete || : dh_auto_clean # Don't strip golang compiled binaries as this does # not function correctly override_dh_strip: : override_dh_builddeb: dh_builddeb -- -Zxz override_dh_gencontrol: dh_gencontrol -- $(DB_DEP) debian/changelog0000664000000000000000000004452213111666112011047 0ustar juju-core (1.25.6-0ubuntu1.14.04.2) trusty-security; urgency=medium * SECURITY UPDATE: Privilege escalation via juju-run (LP: #1682411) - debian/patches/CVE-2017-9232.patch: create a unix domain socket with restricted permissions to limit juju-run to only similarly privileged processes. - CVE-2017-9232 -- Seth Arnold Thu, 25 May 2017 16:37:56 -0700 juju-core (1.25.6-0ubuntu1.14.04.1) trusty-proposed; urgency=medium * New 1.25.6 upstream release. (LP: #1611855) -- Martin Packman Tue, 26 Jul 2016 19:03:51 +0000 juju-core (1.25.5-0ubuntu3~14.04.1) trusty; urgency=medium * Backport of juju-core-1_1.25.5-0ubuntu3 to 14.04 (Lp: #1556981). * As the packages were renamed to juju-core-1 and juju-1, most changes to d/ are not backported. * d/copyright: Backported with changes to src Updated info for src/gopkg.in/juju/charm.v5/* to now match commit 84c8fe478fa1b1e67eb552831de5fd2603085c51 * d/control: Added juju-1 to conflicts as a courtesy to users of alternate packages. -- Curtis C. Hovey Fri, 13 May 2016 13:34:09 +0000 juju-core (1.24.7-0ubuntu1~14.04.1) trusty; urgency=medium [ Curtis C. Hovey ] * Backport of 1.24.7 from vivid. (Lp: #1506652) [ Robie Basak ] * This upload results in the following packaging delta from the previous 1.22.8-0ubuntu1~14.04.1 in trusty-updates: - d/copyright: updated. - d/control: gccgo-5 [!amd64 !i386 !armhf] now preferred over gccgo-go [!amd64 !i386 !armhf], which is a no-op on Trusty since gccgo-5 doesn't exist in Trusty. This minimises the backport delta. - d/tests: dep8 tests updated from Xenial. -- Curtis C. Hovey Fri, 16 Oct 2015 19:20:29 +0000 juju-core (1.24.7-0ubuntu1~15.04.1) vivid; urgency=medium * New upstream microrelease. (Lp: #1506652) * Update dep8 tests from Xenial. -- Curtis C. Hovey Fri, 16 Oct 2015 17:52:18 +0000 juju-core (1.24.6-0ubuntu1~15.04.1) vivid; urgency=medium * Backport of 1.24.6 from wily. (LP: #1500916, #1497087) -- Curtis C. Hovey Tue, 29 Sep 2015 19:43:29 +0000 juju-core (1.24.6-0ubuntu1) wily; urgency=medium * New upstream release (LP: #1481556). * d/copyright updated for Juju 1.24.6 (Last verified commit changes). * d/tests/* Run tests with upstart when Juju version before 1.23. * Prefer gccgo-5 for ppc64el and arm64 in build-deps. -- Curtis C. Hovey Wed, 22 Sep 2015 15:27:01 +0000 juju-core (1.22.6-0ubuntu1) wily; urgency=medium * New upstream bugfix release. * d/copyright updated for Juju 1.22.6 (Last verified commit changes). -- Curtis C. Hovey Thu, 25 Jun 2015 18:25:00 +0000 juju-core (1.22.5-0ubuntu2) wily; urgency=medium * Add distro-info to build-depends because juju's list of series can be stale. -- Curtis C. Hovey Mon, 15 Jun 2015 17:54:22 +0000 juju-core (1.22.5-0ubuntu1) wily; urgency=medium * New upstream bugfix release (Lp: #1462001). * d/copyright: Updated to reflect changes in the codebase. -- Curtis C. Hovey Fri, 05 Jun 2015 17:40:37 +0000 juju-core (1.22.1-0ubuntu1) vivid; urgency=medium * New upstream bugfix release (LP: #1444037). * Autopkgtests were changed to switch back to upstart before running their workload. This is needed because juju < 1.23 doesn't support systemd. * d/patches/fix-detect-new-release.patch: Removed because applied upstream. * d/copyright: Updated to reflect changes in the codebase. -- Oleg Strikov Tue, 14 Apr 2015 14:11:54 +0000 juju-core (1.22.0-0ubuntu1) vivid; urgency=medium * New upstream release (LP: #1416051). * d/patches/fix-detect-new-release.patch: Added upstream patch to redeem the ability to handle future Ubuntu releases (LP: #1427879, #1434092). * d/tests/fake-future.sh: New ability to generate fake /etc/os-release. * d/copyright: Updated to reflect changes in the codebase. * d/control: - Change build dependency from gccgo to gccgo-go. - Use either cloud-image-utils or cloud-utils as dependency for juju-local because cloud-image-utils is not available on precise. - Compliance to Debian Policy 3.9.6 was declared. -- Oleg Strikov Thu, 26 Mar 2015 15:54:39 +0300 juju-core (1.20.14-0ubuntu3) vivid; urgency=medium * Drop the build dependencies on gccgo-go and libgo5, build-depend on gccgo instead. -- Matthias Klose Sat, 07 Mar 2015 22:39:45 +0100 juju-core (1.20.14-0ubuntu2) vivid; urgency=medium * d/control: add cloud-image-utils dependency to juju-local. Since lxc-templates only recommends it, it must be declared as a dependency for its use in the ubuntu-cloud template that Juju uses. -- Robie Basak Thu, 08 Jan 2015 17:39:08 +0000 juju-core (1.20.14-0ubuntu1) vivid; urgency=medium * New upstream bugfix release. * d/copyright: update. -- Robie Basak Thu, 08 Jan 2015 15:17:37 +0000 juju-core (1.20.11-0ubuntu1) vivid; urgency=medium * New upstream bugfix release (LP: #1386144). * Build with a version of libgo5 that has the 64k PAGE_SIZE fix (LP: #1377325). -- Robie Basak Mon, 27 Oct 2014 15:32:42 +0000 juju-core (1.20.10-0ubuntu1) utopic; urgency=medium * New upstream bugfix release. * d/copyright: updated. -- Robie Basak Fri, 17 Oct 2014 15:43:37 +0000 juju-core (1.20.8-0ubuntu1) utopic; urgency=medium * New upstream bugfix release. * d/copyright: updated. -- Robie Basak Mon, 29 Sep 2014 14:54:07 +0100 juju-core (1.20.7-0ubuntu1) utopic; urgency=medium * New upstream bugfix release. * d/control: wrap-and-sort for parity with PPA. * d/copyright: update and corrections for latest upstream source. -- Robie Basak Thu, 11 Sep 2014 18:13:12 +0100 juju-core (1.20.5-0ubuntu1) utopic; urgency=medium * New upstream release. - d/rules: adjust for move from launchpad to github - d/control: dependency tweaks including adding dbus (LP: #1343301) - d/control: recommend bash-completion for juju-core. - d/control: add juju-local-kvm -- Scott Moser Wed, 20 Aug 2014 15:00:12 -0400 juju-core (1.18.4+dfsg-0ubuntu1) utopic; urgency=medium * Repack with binary removed from source tarball. See debian/README.source for details. -- Robie Basak Tue, 15 Jul 2014 15:51:38 +0000 juju-core (1.18.4-0ubuntu1) utopic; urgency=medium * New upstream release, including essential fixes for supporting Utopic and all future releases: - Support Utopic and future releases by using distro-info-data over hardcoded defaults (LP: #1314686). - Correctly use juju-mongodb on Trusty and all future releases, rather than hardcoding Trusty as special (LP: #1321025). * Depend on distro-info so that Juju can use its data in preference to hard-coded defaults (LP: #1325025). * d/tests/*: - Remove hardcoding of precise. - Use --upload-tools to reduce external dependencies on local and manual provider testing. - Add stderr logging. - New test for manual provider against localhost. - Mark tests breaks-testbed and isolation-machine so that they do not step on each other. - Add "future release" testing for both local and manual providers. -- Robie Basak Fri, 06 Jun 2014 15:53:28 +0000 juju-core (1.18.1-0ubuntu1) trusty; urgency=medium * New upstream point release, including fixes for: - Upgrading juju 1.16.6 -> 1.18.x fails (LP: #1299802). - Peer relation disappears during juju-upgrade (LP: #1303697). - public-address of units changes to internal bridge post upgrade (LP: #1303735). - Unable to deploy local charms without series (LP: #1303880). - juju scp no longer allows multiple extra arguments to be passed (LP: #1306208). - juju cannot downgrade to same major.minor version with earlier patch number (LP: #1306296). -- James Page Sat, 12 Apr 2014 07:04:37 +0100 juju-core (1.18.0-0ubuntu1) trusty; urgency=medium * New upstream release (LP: #1287147), including fixes for: - maas/lxc: LXC permission denied issue (LP: #1299588). - core: mega-watcher for machines does not include container addresses (LP: #1301464). -- James Page Mon, 07 Apr 2014 18:24:59 +0100 juju-core (1.17.7-0ubuntu1) trusty; urgency=medium * New upstream point release, including fixes for: - no debug log with all providers on Ubuntu 14.04 (LP: #1294776). * d/control: Add cpu-checker dependency to juju-local (LP: #1297077). -- James Page Fri, 28 Mar 2014 08:58:42 +0000 juju-core (1.17.6-0ubuntu1) trusty; urgency=medium * New upstream point release, including fixes for: - br0 not bought up by cloud-init with MAAS provider (LP: #1271144). - ppc64el enablement for juju/lxc (LP: #1273769). - juju userdata should not restart networking (LP: #1248283). - error detecting hardware characteristics (LP: #1276909). - juju instances not including the default security group (LP: #1129720). - juju bootstrap does not honor https_proxy (LP: #1240260). * d/control,rules: Drop BD on bash-completion, install bash-completion direct from upstream source code. * d/rules: Set HOME prior to generating man pages. * d/control: Drop alternative dependency on mongodb-server; juju now only works on trusty with juju-mongodb. -- James Page Mon, 24 Mar 2014 16:05:44 +0000 juju-core (1.17.4-0ubuntu2) trusty; urgency=medium * d/control: Add rsyslog-gnutls as dependency for juju-local package to support secure syslog (LP: #1285550). -- James Page Wed, 05 Mar 2014 09:57:51 +0000 juju-core (1.17.4-0ubuntu1) trusty; urgency=medium * New upstream point release (LP: #1261628): - https://launchpad.net/juju-core/trunk/1.17.4 - d/control: Prefer juju-mongodb over mongodb-server for juju-local package. -- James Page Fri, 28 Feb 2014 16:53:15 +0000 juju-core (1.17.3-0ubuntu1) trusty; urgency=medium * New upstream point release (LP: #1271941, #834930, #1240667, #1274210): - https://launchpad.net/juju-core/trunk/1.17.3 -- James Page Mon, 24 Feb 2014 09:19:55 +0000 juju-core (1.17.2-0ubuntu4) trusty; urgency=medium * No change rebuild with gccgo-4.9 as default gccgo. -- James Page Mon, 17 Feb 2014 17:30:04 +0000 juju-core (1.17.2-0ubuntu3) trusty; urgency=medium * d/control,rules,juju-core.{postinst,prerm}.in: Drop build of gccgo built binaries for architectures supported by golang gc. * d/juju-core.postinst.in: Drop --force option when installing alternatives. -- James Page Wed, 12 Feb 2014 11:40:31 +0000 juju-core (1.17.2-0ubuntu2) trusty; urgency=medium * d/tests/local-provider: Stop using sudo for bootstrap and destroy-environment calls. -- James Page Mon, 03 Feb 2014 10:36:04 +0200 juju-core (1.17.2-0ubuntu1) trusty; urgency=medium * New upstream release. -- James Page Mon, 03 Feb 2014 09:22:46 +0200 juju-core (1.17.1-0ubuntu2) trusty; urgency=medium * d/tests/local-provider: Don't fail tests if ~/.juju is present as its created by the juju version command. -- James Page Wed, 29 Jan 2014 11:40:20 +0000 juju-core (1.17.1-0ubuntu1) trusty; urgency=medium * New upstream release: - d/p/bson-gccgo.diff: Dropped, included upstream. -- James Page Wed, 29 Jan 2014 09:55:40 +0000 juju-core (1.17.0-0ubuntu3) trusty; urgency=medium * Enable support for architectures other than x86/armhf (LP: #1261452): - d/control: Add BD on gccgo-go for archs that don't have golang-go, limit use of golang-go to supported archs only. -- James Page Mon, 27 Jan 2014 21:55:12 +0000 juju-core (1.17.0-0ubuntu2) trusty; urgency=medium * d/tests/local-provider: Provide environment name when destroying environment inline with changes in 1.17.0, switch to using --debug instead of obsolete -v flag for extra output. -- James Page Fri, 17 Jan 2014 10:40:31 +0000 juju-core (1.17.0-0ubuntu1) trusty; urgency=medium * New upstream release: - d/rules: Update for new upstream plugins/binaries. * Build alternative binaries using gccgo: - d/rules,control: Build using gccgo and golang-go. - d/juju-core.postinst.in,juju-core.prerm.in: Update for additional gccgo based binaries. - d/p/bson-gccgo.diff: Cherry picked fix for mgo for compat with gccgo. * d/control: Bumped Standards-Version, no changes. -- James Page Fri, 17 Jan 2014 09:58:40 +0000 juju-core (1.16.5-0ubuntu1) trusty; urgency=low * New upstream release. -- James Page Wed, 11 Dec 2013 10:15:56 +0000 juju-core (1.16.4-0ubuntu1) trusty; urgency=low * New upstream release: - d/rules: Include new juju-update-bootstrap plugin. -- James Page Wed, 04 Dec 2013 14:45:05 +0000 juju-core (1.16.3-0ubuntu1) trusty; urgency=low * New upstream release. -- James Page Thu, 07 Nov 2013 11:06:44 +0800 juju-core (1.16.2-0ubuntu1) trusty; urgency=low * New upstream point release. (LP: #1240709, #1240927, #1246320, #1246556, #1245004) (LP: #1081247, #1229275, #1239508, #1240423, #1241666, #1243861). -- James Page Thu, 31 Oct 2013 21:22:45 +0000 juju-core (1.16.0-0ubuntu1) saucy; urgency=low * New upstream stable release (LP: #1219879). -- James Page Thu, 10 Oct 2013 18:07:45 +0100 juju-core (1.14.1-0ubuntu1) saucy; urgency=low * New upstream point release. -- James Page Fri, 20 Sep 2013 22:06:08 +0100 juju-core (1.14.0-0ubuntu1) saucy; urgency=low * New upstream stable release (stabilization of 1.13 series). -- James Page Tue, 17 Sep 2013 13:43:12 +0100 juju-core (1.13.3-0ubuntu1) saucy; urgency=low * New upstream point release. -- James Page Tue, 03 Sep 2013 14:22:22 +0100 juju-core (1.13.2-0ubuntu2) saucy; urgency=low * d/control,d/tests/*: Add DEP-8 tests for basic client validation and local provider setup/query/teardown. -- James Page Tue, 27 Aug 2013 19:43:34 +0100 juju-core (1.13.2-0ubuntu1) saucy; urgency=low * New upstream point release. -- James Page Sun, 25 Aug 2013 22:12:09 +0100 juju-core (1.13.1-0ubuntu2) saucy; urgency=low * d/juju-core.postinst.in: Fixup broken alternatives install for juju-metadata. -- James Page Wed, 21 Aug 2013 09:30:17 +0100 juju-core (1.13.1-0ubuntu1) saucy; urgency=low * New upstream release. - Build and install juju metadata plugin. - d/NEWS: Add some guidance on upgrading environments from 1.11.x to 1.13.x. * d/NEWS: Add details about lack of upgrade path from juju < 1.11 and how to interact with older juju environments. -- James Page Tue, 20 Aug 2013 16:02:16 +0100 juju-core (1.12.0-0ubuntu1) saucy; urgency=low [ Christopher Glass ] * d/juju-core.bash-completion,control: Add bash completion support for the juju command. [ James Page ] * New upstream release. * d/juju-core.lintian-overrides.in,rules: Template generation of lintian overrides using upstream version. * d/control: Drop Suggests: mongodb-server for juju-core package in preference of new dependency package for local provider. [ Zhengpeng Hou ] * d/control: Added a dependency package to install dependencies for the local provider (LP: #1204131). -- James Page Wed, 07 Aug 2013 09:57:32 +0100 juju-core (1.11.4-0ubuntu1) saucy; urgency=low * New upstream release: - d/copyright: Drop section for go-curl. -- James Page Tue, 23 Jul 2013 08:51:44 +0100 juju-core (1.11.3-0ubuntu1) saucy; urgency=low * New upstream release: - d/control: Suggest mongodb-server for use with local provider. - d/NEWS: Notify users about the local provider. * d/rules: Don't strip binaries - this can have undesirable side effects with the golang compiler. * d/juju-core.lintian-overrides: Override errors for static linking and un-stripped binaries as these are intentional. * d/rules: Use xz compression to reduce size of debs now that binaries are not stripped. * d/copyright: Added copyright and licensing information for go-curl. -- James Page Mon, 22 Jul 2013 11:36:48 +0100 juju-core (1.11.2-0ubuntu1) saucy; urgency=low * New upstream release. * Make juju-core the default juju (LP: #1190634): - d/control: Add virtual package juju -> juju-core. - d/juju-core.postinst.in: Bump priority of alternatives over that of python juju packages. * Enable for all architectures (LP: #1172505): - d/control: Version BD on golang-go to >= 2:1.1.1 to ensure CGO support for non-x86 archs, make juju-core Arch: any. - d/README.source: Dropped - no longer required. * d/watch: Updated for new upstream tarball naming. -- James Page Thu, 11 Jul 2013 17:18:27 +0100 juju-core (1.10.0.1-0ubuntu3) saucy; urgency=low * d/control,README.source: restrict target architectures to amd64 & i386, add documentation to detail why this is the case. -- James Page Mon, 29 Apr 2013 12:24:49 +0100 juju-core (1.10.0.1-0ubuntu2) saucy; urgency=low * d/control: Mark as conflicting with juju < 0.7-0ubuntu1 (LP: #1172911). * d/control: Add missing ${shlibs:Depends} to juju-core (LP: #1172504). -- James Page Mon, 29 Apr 2013 11:36:22 +0100 juju-core (1.10.0.1-0ubuntu1~ubuntu13.04.1) raring-backports; urgency=low [ James Page ] * Initial release (LP: #1172215). [ Mark Mims ] * Install alternatives for juju, jujud and juju.1 manpages for co-installability with juju package. [ Dave Cheney ] * Initial packaging. -- James Page Wed, 24 Apr 2013 22:34:47 +0100 debian/juju-core.prerm.in0000664000000000000000000000044012754612070012551 0ustar #!/bin/sh set -e VER="__NEW_VERSION__" case "$1" in remove|upgrade|deconfigure) update-alternatives --remove juju /usr/lib/juju-$VER/bin/juju ;; failed-upgrade) ;; *) echo "prerm called with unknown argument \`$1'" >&2 exit 0 ;; esac #DEBHELPER# exit 0 debian/source/0000775000000000000000000000000012754612070010474 5ustar debian/source/format0000664000000000000000000000001412754612070011702 0ustar 3.0 (quilt) debian/copyright0000664000000000000000000007036312754612070011140 0ustar Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: juju-core Source: https://launchpad.net/juju-core Comment: The juju-core source package includes a number of other upstream projects in addition to juju-core itself. . This reflects the static linking approach taken in Go as all dependencies are linked in at build time. . To ease audits and updates of this file, please maintain each upstream project's copyright information in its own separate Files section in alphabetical order of upstream project, so that the data for each upstream project is close together and complete by itself. If an upstream project needs multiple Files sections for its copyright description, then please bundle these together in the same section for that upstream project. So collapsing License sections together across this file is fine, but please do not collapse Files sections across multiple upstream projects, since this causes difficulty when updating this file after individual upstreams change. Files: debian/* Copyright: 2013-2015 Canonical Ltd. License: AGPL-3 Files: src/github.com/ajstarks/svgo/* Copyright: 2010 Anthony Starks License: CC-BY-3.0 Comment: Last verified commit 89e3ac64b5b3e403a5e7c35ea4f98d45db7b4518 File LICENSE does not explicitly state copyright holder. The information was found upstream: https://github.com/ajstarks/svgo Files: src/github.com/altoros/gosigma/* Copyright: Copyright 2014 ALTOROS License: AGPL-3 Comment: Last verified commit 31228935eec685587914528585da4eb9b073c76d Files: src/github.com/bmizerany/pat/* Copyright: 2012 Keith Rarick, Blake Mizerany License: Expat Comment: Last verified commit 48be7df2c27e1cec821a3284a683ce6ef90d9052 Files: src/github.com/coreos/go-systemd/* Copyright: 2015 CoreOS, Inc., 2015 RedHat, Inc. License: Apache-2.0 Comment: Last verified commit 7b2428fec40033549c68f54e26e89e7ca9a9ce31 File src/github.com/coreos/go-systemd/daemon/sdnotify.go forked from Docker project, also under Apache-2.0. Files: src/github.com/dustin/go-humanize/* Copyright: 2005-2008 Dustin Sallings License: Expat Comment: Last verified commit 145fabdb1ab757076a70a886d092a3af27f66f4c Files: src/github.com/gabriel-samfira/sys/* Copyright: 2009-2015 The Go Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit 9ddc60d56b511544223adecea68da1e4f2153beb This is a fork of the upstream golang sys package that fixes issues in golang 1.2.x. Files: src/github.com/godbus/dbus/* Copyright: 2013, Georg Reinke (), Google License: BSD-2-clause Comment: Last verified commit 32c6cc29c14570de4cf6d7e7737d68fb2d01ad15 Files: src/github.com/joyent/gocommon/* Copyright: 2013, Joyent Inc. License: LGPL-3+ Comment: Last verified commit 40c7818502f7c1ebbb13dab185a26e77b746ff40 Files: src/github.com/joyent/gomanta/* Copyright: 2013, Joyent Inc. License: LGPL-3+ Comment: Last verified commit b7f8007afb65647543e768d5a71b4dcb26bcfe1f Files: src/github.com/joyent/gosdc/* Copyright: 2013, Joyent Inc. License: LGPL-3+ Comment: Last verified commit 2f11feadd2d9891e92296a1077c3e2e56939547d Files: src/github.com/joyent/gosign/* Copyright: 2013, Joyent Inc. License: LGPL-3+ Comment: Last verified commit 0da0d5f1342065321c97812b1f4ac0c2b0bab56c Files: src/github.com/juju/blobstore/* Copyright: 2014, 2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 337aa7d5d712728d181dbda2547a6556d4189626 Files: src/github.com/juju/cmd/* Copyright: 2012-2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 081dd27e371031b13c297d4016d7ef7b0d4fefa4 Files: src/github.com/juju/errors/* Copyright: 2013-2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 4567a5e69fd3130ca0d89f69478e7ac025b67452 Files: src/github.com/juju/go4/* Copyright: 2011, 2014, 2015, 2016 The go4 Authors License: Apache-2.0 Comment: Last verified commit 40d72ab9641a2a8c36a9c46a51e28367115c8e59 This project is a conglomeration of utilities from many authors under a single license. Files: src/github.com/juju/go4/bytereplacer/* src/github.com/juju/go4/cloud/cloudlaunch/cloudlaunch.go src/github.com/juju/go4/cloud/google/gceutil/gceutil.go src/github.com/juju/go4/oauthutil/* src/github.com/juju/go4/readerutil/fakeseeker.go src/github.com/juju/go4/readerutil/fakeseeker_test.go src/github.com/juju/go4/strutil/* src/github.com/juju/go4/syncutil/once.go src/github.com/juju/go4/syncutil/syncutil.go src/github.com/juju/go4/syncutil/syncdebug/syncdebug.go src/github.com/juju/go4/syncutil/syncdebug/syncdebug_test.go src/github.com/juju/go4/wkfs/* Copyright: 2013, 2014, 2015 The Camlistore Authors License: Apache-2.0 Files: src/github.com/juju/go4/errorutil/* src/github.com/juju/go4/net/* src/github.com/juju/go4/syncutil/gate.go src/github.com/juju/go4/syncutil/group.go src/github.com/juju/go4/syncutil/singleflight/singleflight.go src/github.com/juju/go4/syncutil/singleflight/singleflight_test.go src/github.com/juju/go4/types/* Copyright: 2011, 2012, 2013 Google Inc. License: Apache-2.0 Files: src/github.com/juju/go4/lock/* Copyright: 2013 The Go Authors License: Apache-2.0 Files: src/github.com/juju/gojsonpointer/* Copyright: 2013 sigu-399 ( https://github.com/sigu-399 ) 2015 xeipuuv ( https://github.com/xeipuuv ) License: Apache-2.0 Comment: Last verified commit afe8b77aa08f272b49e01b82de78510c11f61500 Upstream replaced sigu-399's copyright notice with xeipuuv's. As it is not clear that they are the same person or that one assigned copyright to the other, we assume that they both own copyright. Files: src/github.com/juju/gojsonreference/* Copyright: 2013 sigu-399 ( https://github.com/sigu-399 ) 2015 xeipuuv ( https://github.com/xeipuuv ) License: Apache-2.0 Comment: Last verified commit f0d24ac5ee330baa21721cdff56d45e4ee42628e Upstream replaced sigu-399's copyright notice with xeipuuv's. As it is not clear that they are the same person or that one assigned copyright to the other, we assume that they both own copyright. Files: src/github.com/juju/gojsonschema/* Copyright: 2015 xeipuuv ( https://github.com/xeipuuv ) 2013 MongoDB, Inc. License: Apache-2.0 Comment: Last verified commit e1ad140384f254c82f89450d9a7c8dd38a632838 Files: src/github.com/juju/gojsonschema/defaults.go src/github.com/juju/gojsonschema/defaults_test.go src/github.com/juju/gojsonschema/export_test.go Copyright: Bodie Solomon License: Apache-2.0 Files: src/github.com/juju/gojsonschema/json_schema_test_suite/* Copyright: 2012 Julian Berman License: Expat Files: src/github.com/juju/govmomi/* Copyright: 2014-2015 VMware, Inc. All Rights Reserved. License: Apache-2.0 Comment: Last verified commit 4354a88d4b34abe467215f77c2fc1cb9f78b66f7 Files: src/github.com/juju/govmomi/vim25/xml/* Copyright: 2011 The Go Authors. License: BSD-3-clause Comment: This is a fork of the upstream golang xml package that fixes issues in golang 1.2.x. Files: src/github.com/juju/httpprof/* Copyright: 2010-2012 The Go Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit 14bf14c307672fd2456bdbf35d19cf0ccd3cf565 This is a fork of the upstream golang httpprof package that fixes issues in golang 1.2.x. Files: src/github.com/juju/juju/* Copyright: 2011-2015 Canonical Ltd. 2013 Joyent Inc. 2014-2015 Cloudbase Solutions 2014-2015 Cloudbase Solutions SRL License: AGPL-3 Files: src/github.com/juju/juju/cloudconfig/powershell_helpers.go Copyright: 2011-2015 Canonical Ltd. 2014-2015 Cloudbase Solutions 2012 Aaron Jensen 2009 Vladimir Vasiltsov License: AGPL-3 Comment: - Contains some code borrowed from https://bitbucket.org/splatteredbits/carbon. Original file can be found at Source/Security/Privilege.cs and licensed under Apache-2.0 license. This license is compatible with AGPLv3 and derived works can and have been licensed under AGPLv3. The original Apache-2.0 license for the external source can be found inside cloudconfigApache-License.txt. - Contains code borrowed from https://github.com/gintsgints/tar-cs which is under BSD3 License. This license is compatible with AGPLv3 and derived works can and have been licensed under AGPLv3. The original BSD3 license for the external source can be found inside src/github.com/juju/juju/cloudconfig/BSD3-License.txt Files: src/github.com/juju/juju/cloudconfig/windows_userdata_test.go Copyright: 2011-2015 Canonical Ltd. 2014 Cloudbase Solutions 2012 Aaron Jensen License: AGPL-3 Comment: Contains some code borrowed from https://bitbucket.org/splatteredbits/carbon. Original file can be found at Source/Security/Privilege.cs and licensed under Apache-2.0 license. This license is compatible with AGPLv3 and derived works can and have been licensed under AGPLv3. The original Apache-2.0 license for the external source can be found inside src/github.com/juju/juju/cloudconfig/Apache-License.txt. Files: src/github.com/juju/juju/etc/bash_completion.d/juju-core Copyright: 2013+ Canonical Ltd. License: GPL-3 Files: src/github.com/juju/juju/scripts/win-installer/modpath.iss Copyright: Jared Breland License: LGPL-3 Files: src/github.com/juju/juju/service/systemd/serialize.go Copyright: 2015 CoreOS, Inc. License: Apache-2.0 Comment: This file originates from https://github.com/coreos/go-systemd/blob/master/unit/serialize.go Files: src/github.com/juju/jujusvg/* Copyright: 2014, 2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 28683402583926ce903491c14a07cdc5cb371adb Files: src/github.com/juju/loggo/* Copyright: 2014, 2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 8477fc936adf0e382d680310047ca27e128a309a Files: src/github.com/juju/mutex/* Copyright: 2015-2016 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 59c26ee163447c5c57f63ff71610d433862013de Files: src/github.com/juju/names/* Copyright: 2013-2016 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit e287fe4ae0dbda220cace3ed0e35cda4796c1aa3 Files: src/github.com/juju/persistent-cookiejar/* Copyright: 2012, 2013, 2015 The Go Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit fa866b33e350f6357a566d1b4f1c09c5493cfbdb Files: src/github.com/juju/ratelimit/* Copyright: 2014, 2015 Canonical Ltd License: LGPL-3 with linking exception Comment: Last verified commit aa5bb718d4d435629821789cb90970319f57bfe5 Files: src/github.com/juju/replicaset/* Copyright: 2013-2015 Canonical Ltd License: LGPL-3 with linking exception Comment: Last verified commit fb7294cf57a1e2f08a57691f1246d129a87ab7e8 Files: src/github.com/juju/schema/* Copyright: 2011-2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit afe1151cb49d1d7ed3c75592dfc6f38703f2e988 Files: src/github.com/juju/syslog/* Copyright: 2009, 2012 The Go Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit 6be94e8b718766e9ff7a37342157fe4795da7cfa This is a fork of the upstream golang syslog package that fixes issues in golang 1.2.x. Files: src/github.com/juju/testing/* Copyright: 2011-2016 Canonical Ltd. 2014 Cloudbase Solutions SRL License: LGPL-3 with linking exception Comment: Last verified commit 162fafccebf20a4207ab93d63b986c230e3f4d2e Files: src/github.com/juju/testing/checkers/deepequal.go src/github.com/juju/testing/checkers/deepequal_test.go Copyright: 2009, 2012 The Go Authors. All rights reserved. License: BSD-3-clause Files: src/github.com/juju/txn/* Copyright: 2014, 2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 99ec629d0066a4d73c54d8e021a7fc1dc07df614 Files: src/github.com/juju/utils/* Copyright: 2011-2015 Canonical Ltd. 2014, 2015 Cloudbase Solutions SRL License: LGPL-3 with linking exception Comment: Last verified commit faa5fa2f4ef7b8d935cc5f59d9dc72dcc90aa696 series/* package files incorrectly state they are AGPLv3 but refer to the top level LGPLv3 licence. Files: src/github.com/juju/utils/filepath/stdlib.go src/github.com/juju/utils/filepath/stdlibmatch.go Copyright: 2011-2016 Canonical Ltd. 2009-2010 The Go Authors. All rights reserved. License: LGPL-3 with linking exception and BSD-3-clause Comment: See src/github.com/juju/utils/LICENSE.golang. Files: src/github.com/juju/xml/* Copyright: 2009, 2011-2012 The Go Authors. License: BSD-3-clause Comment: Last verified commit eb759a627588d35166bc505fceb51b88500e291e This is a fork of the upstream golang xml package that fixes issues in golang 1.2.x. Files: src/golang.org/x/crypto/* Copyright: 2009-2014 The Go Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit c57d4a71915a248dbad846d60825145062b4c18e Files: src/golang.org/x/net/* Copyright: 2009-2015 The Go Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit bb64f4dc73d4ab97978d5e1cb34515dcc570361b Files: src/golang.org/x/net/html/testdata/webkit/*.dat src/golang.org/x/net/html/testdata/webkit/scripted/*.dat Copyright: 2009 Apple Inc. All rights reserved. License: BSD-2-clause Files: src/golang.org/x/oauth2/* Copyright: 2009, 2014-2015 The oauth2 Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit 11c60b6f71a6ad48ed6f93c65fa4c6f9b1b5b46a Files: src/google.golang.org/api/* Copyright: 2011-2014 Google Inc. All rights reserved. License: BSD-3-clause Comment: Last verified commit 0d3983fb069cb6651353fc44c5cb604e263f2a93 Files: src/google.golang.org/api/googleapi/internal/uritemplates/* Copyright: 2013 Joshua Tacoma License: Expat Files: src/google.golang.org/cloud/* Copyright: 2013-2015 Google Inc. All Rights Reserved. License: Apache-2.0 Comment: Last verified commit f20d6dcccb44ed49de45ae3703312cb46e627db1 Files: src/gopkg.in/amz.v3/* Copyright: 2011-2015 Canonical Ltd. 2011 AppsAttic Ltd. 2011 Memeo Inc. License: LGPL-3 with linking exception Comment: Last verified commit eeb872b6f9d1da6e1ab7bcffe3ffc33e20c3b213 Files: src/gopkg.in/check.v1/* Copyright: 2010-2013 Gustavo Niemeyer License: BSD-2-clause Comment: Last verified commit b3d3430320d4260e5fea99841af984b3badcea63 Files: src/gopkg.in/check.v1/benchmark.go Copyright: 2012 The Go Authors. All rights reserved. License: BSD-3-clause Comment: License for the file has been taken from the original source: https://github.com/golang/go/blob/master/LICENSE File in the source repo: https://github.com/golang/go/blob/master/src/go/doc/testdata/benchmark.go Issue filed upstream: https://github.com/go-check/check/issues/40 Files: src/gopkg.in/errgo.v1/* Copyright: 2013-2014, Roger Peppe License: BSD-3-clause Comment: Last verified commit 15098963088579c1cd9eb1a7da285831e548390b Files: src/gopkg.in/goose.v1/* Copyright: 2013-2015, Canonical Ltd. License: LGPL-3+ Comment: Last verified commit e4a91e8b8323b8eef6fe41a66fd3ac6120520bb0 Files: src/gopkg.in/juju/charm.v5/* Copyright: 2013, 2014, 2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit aece7b0e56c298641968239a7fa0b3466afa6ef5 Files: src/gopkg.in/juju/charmstore.v4/* Copyright: 2011-2015 Canonical Ltd. License: AGPL-3 Comment: Last verified commit b90d24652753eeb1f7d209483d499f6b24dcf25e Files: src/gopkg.in/juju/charmstore.v4/csclient/* src/gopkg.in/juju/charmstore.v4/params/* Copyright: 2014, 2015 Canonical Ltd. License: LGPL-3 Comment: The upstream project provides separate licensing to encourage linking to the included csclient library. Files: src/gopkg.in/juju/environschema.v1/* Copyright: 2015 Canonical Ltd. License: LGPL-3 with linking exception Comment: Last verified commit 16cc59268c09c22870cb4de8eb6248652535f315 Files: src/gopkg.in/macaroon-bakery.v0/* Copyright: 2014, Roger Peppe, Canonical Inc. License: LGPL-3 Comment: Last verified commit 9593b80b01ba04b519769d045dffd6abd827d2fd Files: src/gopkg.in/macaroon.v1/* Copyright: 2014, Roger Peppe License: BSD-3-clause Comment: Last verified commit ab3940c6c16510a850e1c2dd628b919f0f3f1464 Files: src/gopkg.in/mgo.v2/* Copyright: 2010-2014 - Gustavo Niemeyer License: BSD-2-clause Comment: Last verified commit 3569c88678d88179dcbd68d02ab081cbca3cd4d0 Files: src/gopkg.in/mgo.v2/internal/sasl/sspi_windows.* Copyright: 2013-2015 - Christian Amor Kvalheim 2010-2014 - Gustavo Niemeyer License: Apache-2.0 Comment: Code adapted from the NodeJS kerberos library. https://github.com/christkv/kerberos/tree/master/lib/win32/kerberos_sspi.c https://github.com/christkv/kerberos/tree/master/lib/win32/kerberos_sspi.h Files: src/gopkg.in/natefinch/lumberjack.v2/* Copyright: 2014 Nate Finch License: Expat Comment: Last verified commit 588a21fb0fa0ebdfde42670fa214576b6f0f22df Files: src/gopkg.in/natefinch/npipe.v2/* Copyright: 2013 npipe authors 2013 Nate Finch License: Expat Comment: Last verified commit c1b8fa8bdccecb0b8db834ee0b92fdbcfa606dd6 Files: src/gopkg.in/yaml.v1/* Copyright: 2011-2014 Canonical Inc. License: LGPL-3 with linking exception Comment: Last verified commit 9f9df34309c04878acc86042b16630b0f696e1de Files: src/gopkg.in/yaml.v1/apic.go src/gopkg.in/yaml.v1/emitterc.go src/gopkg.in/yaml.v1/parserc.go src/gopkg.in/yaml.v1/readerc.go src/gopkg.in/yaml.v1/scannerc.go src/gopkg.in/yaml.v1/writerc.go src/gopkg.in/yaml.v1/yamlh.go src/gopkg.in/yaml.v1/yamlprivateh.go Copyright: 2006 Kirill Simonov License: Expat Files: src/gopkg.in/yaml.v2/* Copyright: 2011-2014 Canonical Inc. License: LGPL-3 with linking exception Comment: Last verified commit a83829b6f1293c91addabc89d0571c246397bbf4 Files: src/launchpad.net/gnuflag/* Copyright: 2009, 2010, 2012 The Go Authors. All rights reserved. License: BSD-3-clause Comment: Last verified commit roger.peppe@canonical.com-20140716064605-pk32dnmfust02yab Files: src/launchpad.net/golxc/* Copyright: 2012-2013, Canonical Ltd. License: LGPL-3+ Comment: Last verified commit ian.booth@canonical.com-20141121040613-ztm1q0iy9rune3zt Files: src/launchpad.net/gomaasapi/* Copyright: 2012-2014, Canonical Ltd. License: LGPL-3+ Comment: Last verified commit michael.foord@canonical.com-20150703101140-oo7493pkzlzg7l6u Files: src/launchpad.net/gwacl/* Copyright: 2012-2014, Canonical Ltd. License: LGPL-3+ Comment: Last verified commit andrew.wilkins@canonical.com-20150811023840-kvosbu9d0kwwjfm2 Files: src/launchpad.net/gwacl/fork/* Copyright: 2009-2012 The Go Authors. All rights reserved. License: BSD-3-clause Files: src/launchpad.net/tomb/* Copyright: 2010-2011 - Gustavo Niemeyer License: BSD-3-clause Comment: Last verified commit gustavo@niemeyer.net-20130531003818-70ikdgklbxopn8x4 License: AGPL-3 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. . You should have received a copy of the GNU Affero General Public License along with this program. If not, see . License: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. . On Debian systems, the full text of the Apache License, Version 2.0 can be found in the file `/usr/share/common-licenses/Apache-2.0'. License: BSD-2-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: BSD-3-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: CC-BY-3.0 THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. . BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. License: GPL-3 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, version 3. . 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 . . On Debian systems, the full text of the GNU General Public License version 3 can be found in the file `/usr/share/common-licenses/GPL-3'. License: LGPL-3 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 3. . 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 Lesser General Public License for more details. . See both COPYING and COPYING.LESSER for the full terms of the GNU Lesser General Public License. . On Debian systems, the full text of the GNU Lesser General Public License version 3 can be found in the file `/usr/share/common-licenses/LGPL-3'. License: LGPL-3 with linking exception This software is licensed under the LGPLv3, included below. . As a special exception to the GNU Lesser General Public License version 3 ("LGPL3"), the copyright holders of this Library give you permission to convey to a third party a Combined Work that links statically or dynamically to this Library without providing any Minimal Corresponding Source or Minimal Application Code as set out in 4d or providing the installation information set out in section 4e, provided that you comply with the other provisions of LGPL3 and provided that you meet, for the Application the terms and conditions of the license(s) which apply to the Application. . Except as stated in this special exception, the provisions of LGPL3 will continue to comply in full to this Library. If you modify this Library, you may apply this exception to your version of this Library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version. This exception does not (and cannot) modify any license terms which apply to the Application, with which you must still comply. . On Debian systems, the full text of the GNU Lesser General Public License version 3 can be found in the file `/usr/share/common-licenses/LGPL-3'. License: LGPL-3+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 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 Lesser General Public License for more details. . See both COPYING and COPYING.LESSER for the full terms of the GNU Lesser General Public License. . On Debian systems, the full text of the GNU Lesser General Public License version 3 can be found in the file `/usr/share/common-licenses/LGPL-3'. debian/control0000664000000000000000000000643712754612070010611 0ustar Source: juju-core Section: devel Priority: extra Maintainer: Ubuntu Developers Build-Depends: debhelper (>= 7), dh-golang, distro-info, gccgo-5 [!amd64 !i386 !armhf] | gccgo-go [!amd64 !i386 !armhf], golang-go (>= 2:1.2) [amd64 i386 armhf], lsb-release, python Standards-Version: 3.9.7 Homepage: http://launchpad.net/juju-core Testsuite: autopkgtest Package: juju-core Architecture: any Depends: distro-info, ${misc:Depends}, ${shlibs:Depends} Recommends: bash-completion Conflicts: juju (<< 0.7-0ubuntu1~), juju-1 Description: Juju is devops distilled - client Through the use of charms, juju provides you with shareable, re-usable, and repeatable expressions of devops best practices. You can use them unmodified, or easily change and connect them to fit your needs. Deploying a charm is similar to installing a package on Ubuntu: ask for it and it’s there, remove it and it’s completely gone. . This package provides the client application of creating and interacting with Juju environments. Package: juju Architecture: all Depends: juju-core (>= ${source:Version}), ${misc:Depends} Description: next generation service orchestration system Through the use of charms, juju provides you with shareable, re-usable, and repeatable expressions of devops best practices. You can use them unmodified, or easily change and connect them to fit your needs. Deploying a charm is similar to installing a package on Ubuntu: ask for it and it’s there, remove it and it’s completely gone. . This is a dependency package providing the current version of Juju. Package: juju-local Architecture: all Depends: cloud-image-utils | cloud-utils, cpu-checker, dbus, juju-core (>= ${source:Version}), lxc (>=1.0.0~alpha1-0ubuntu14), lxc-templates, rsyslog-gnutls, ${dist:Depends}, ${misc:Depends} Description: dependency package for the Juju local provider Through the use of charms, juju provides you with shareable, re-usable, and repeatable expressions of devops best practices. You can use them unmodified, or easily change and connect them to fit your needs. Deploying a charm is similar to installing a package on Ubuntu: ask for it and it’s there, remove it and it’s completely gone. . This is a dependency package for those who want to use the Juju local provider, allowing Juju Charms to be tested locally using LXC containers. Package: juju-local-kvm Architecture: all Depends: cpu-checker, dbus, juju-core (>= ${source:Version}), rsyslog-gnutls, uvtool, uvtool-libvirt, ${dist:Depends}, ${misc:Depends} Description: dependency package for the Juju local provider with KVM Through the use of charms, juju provides you with shareable, re-usable, and repeatable expressions of devops best practices. You can use them unmodified, or easily change and connect them to fit your needs. Deploying a charm is similar to installing a package on Ubuntu: ask for it and it’s there, remove it and it’s completely gone. . This is a dependency package for those who want to use the Juju local provider, allowing Juju Charms to be tested locally using KVM containers. debian/patches/0000775000000000000000000000000013111670424010616 5ustar debian/patches/CVE-2017-9232.patch0000664000000000000000000002475113111670275013255 0ustar Origin: https://bugs.launchpad.net/juju/+bug/1682411/+attachment/4883282/+files/2.0.4-juju-run-1682411.diff Author: John Meinel Subject: Create Unix domain socket with restricted permissions --- src/github.com/juju/juju/apiserver/charmrevisionupdater/updater.go | 4 - src/github.com/juju/juju/apiserver/charmrevisionupdater/updater_test.go | 10 ++ src/github.com/juju/juju/apiserver/client/run.go | 6 - src/github.com/juju/juju/apiserver/client/run_unix_test.go | 6 - src/github.com/juju/juju/cmd/jujud/run.go | 2 src/github.com/juju/juju/cmd/jujud/run_test.go | 2 src/github.com/juju/juju/juju/sockets/sockets_nix.go | 40 +++++++++- src/github.com/juju/juju/worker/uniter/runner/jujuc/server.go | 10 ++ src/github.com/juju/juju/worker/uniter/runner/runner.go | 2 src/github.com/juju/juju/worker/uniter/uniter.go | 7 - 10 files changed, 67 insertions(+), 22 deletions(-) Index: b/src/github.com/juju/juju/apiserver/charmrevisionupdater/updater.go =================================================================== --- a/src/github.com/juju/juju/apiserver/charmrevisionupdater/updater.go +++ b/src/github.com/juju/juju/apiserver/charmrevisionupdater/updater.go @@ -12,6 +12,7 @@ "github.com/juju/juju/apiserver/common" "github.com/juju/juju/apiserver/params" "github.com/juju/juju/state" + "github.com/juju/juju/version" ) var logger = loggo.GetLogger("juju.apiserver.charmrevisionupdater") @@ -116,7 +117,8 @@ logger.Infof("retrieving revision information for %d charms", len(curls)) repo := NewCharmStore(charmrepo.NewCharmStoreParams{}) repo = repo.(*charmrepo.CharmStore).WithJujuAttrs(map[string]string{ - "environment_uuid": uuid, + "environment_uuid": uuid, + "controller_version": version.Current.String(), }) revInfo, err := repo.Latest(curls...) if err != nil { Index: b/src/github.com/juju/juju/apiserver/charmrevisionupdater/updater_test.go =================================================================== --- a/src/github.com/juju/juju/apiserver/charmrevisionupdater/updater_test.go +++ b/src/github.com/juju/juju/apiserver/charmrevisionupdater/updater_test.go @@ -6,6 +6,7 @@ import ( "net/http" "net/http/httptest" + "sort" "github.com/juju/errors" jc "github.com/juju/testing/checkers" @@ -19,6 +20,7 @@ apiservertesting "github.com/juju/juju/apiserver/testing" jujutesting "github.com/juju/juju/juju/testing" "github.com/juju/juju/state" + "github.com/juju/juju/version" ) type charmVersionSuite struct { @@ -171,5 +173,11 @@ env, err := s.State.Environment() c.Assert(err, jc.ErrorIsNil) - c.Assert(header.Get(charmrepo.JujuMetadataHTTPHeader), gc.Equals, "environment_uuid="+env.UUID()) + jujuHeader := header[charmrepo.JujuMetadataHTTPHeader] + sort.Strings(jujuHeader) + c.Assert(jujuHeader, gc.DeepEquals, + []string{ + "controller_version=" + version.Current.String(), + "environment_uuid=" + env.UUID(), + }) } Index: b/src/github.com/juju/juju/apiserver/client/run.go =================================================================== --- a/src/github.com/juju/juju/apiserver/client/run.go +++ b/src/github.com/juju/juju/apiserver/client/run.go @@ -106,7 +106,7 @@ if err != nil { return results, err } - command := fmt.Sprintf("juju-run %s %s", unit.Name(), quotedCommands) + command := fmt.Sprintf("sudo juju-run %s %s", unit.Name(), quotedCommands) execParam := remoteParamsForMachine(machine, command, run.Timeout) execParam.UnitId = unit.Name() params = append(params, execParam) @@ -116,7 +116,7 @@ if err != nil { return results, err } - command := fmt.Sprintf("juju-run --no-context %s", quotedCommands) + command := fmt.Sprintf("sudo juju-run --no-context %s", quotedCommands) execParam := remoteParamsForMachine(machine, command, run.Timeout) params = append(params, execParam) } @@ -134,7 +134,7 @@ } var params []*RemoteExec quotedCommands := utils.ShQuote(run.Commands) - command := fmt.Sprintf("juju-run --no-context %s", quotedCommands) + command := fmt.Sprintf("sudo juju-run --no-context %s", quotedCommands) for _, machine := range machines { params = append(params, remoteParamsForMachine(machine, command, run.Timeout)) } Index: b/src/github.com/juju/juju/apiserver/client/run_unix_test.go =================================================================== --- a/src/github.com/juju/juju/apiserver/client/run_unix_test.go +++ b/src/github.com/juju/juju/apiserver/client/run_unix_test.go @@ -6,9 +6,9 @@ package client_test var expectedCommand = []string{ - "juju-run --no-context 'hostname'\n", - "juju-run magic/0 'hostname'\n", - "juju-run magic/1 'hostname'\n", + "sudo juju-run --no-context 'hostname'\n", + "sudo juju-run magic/0 'hostname'\n", + "sudo juju-run magic/1 'hostname'\n", } var echoInputShowArgs = `#!/bin/bash Index: b/src/github.com/juju/juju/cmd/jujud/run.go =================================================================== --- a/src/github.com/juju/juju/cmd/jujud/run.go +++ b/src/github.com/juju/juju/cmd/jujud/run.go @@ -143,7 +143,7 @@ } client, err := sockets.Dial(c.socketPath()) if err != nil { - return nil, errors.Trace(err) + return nil, errors.Annotate(err, "dialing juju run socket") } defer client.Close() Index: b/src/github.com/juju/juju/cmd/jujud/run_test.go =================================================================== --- a/src/github.com/juju/juju/cmd/jujud/run_test.go +++ b/src/github.com/juju/juju/cmd/jujud/run_test.go @@ -217,7 +217,7 @@ c.Assert(err, jc.ErrorIsNil) _, err = testing.RunCommand(c, s.runCommand(), "foo/1", "bar") - c.Assert(err, gc.ErrorMatches, `dial unix .*/run.socket:.*`+utils.NoSuchFileErrRegexp) + c.Assert(err, gc.ErrorMatches, `.*dial unix .*/run.socket:.*`+utils.NoSuchFileErrRegexp) } func (s *RunTestSuite) TestRunning(c *gc.C) { Index: b/src/github.com/juju/juju/juju/sockets/sockets_nix.go =================================================================== --- a/src/github.com/juju/juju/juju/sockets/sockets_nix.go +++ b/src/github.com/juju/juju/juju/sockets/sockets_nix.go @@ -3,9 +3,14 @@ package sockets import ( + "io/ioutil" "net" "net/rpc" "os" + "path/filepath" + "strings" + + "github.com/juju/errors" ) func Dial(socketPath string) (*rpc.Client, error) { @@ -17,10 +22,37 @@ if err := os.Remove(socketPath); err != nil { logger.Tracef("ignoring error on removing %q: %v", socketPath, err) } - listener, err := net.Listen("unix", socketPath) + if strings.HasPrefix(socketPath, "@") { + listener, err := net.Listen("unix", socketPath) + return listener, errors.Trace(err) + } + // Listen directly to abstract domain sockets. + // We first create the socket in a temporary directory as a subdirectory of + // the target dir so we know we can get the permissions correct and still + // rename the socket into the correct place. + // ioutil.TempDir creates the temporary directory as 0700 so it starts with + // the right perms as well. + socketDir := filepath.Dir(socketPath) + tempdir, err := ioutil.TempDir(socketDir, "") + if err != nil { + return nil, errors.Trace(err) + } + defer os.RemoveAll(tempdir) + // Keep the socket path as short as possible so as not to + // exceed the 108 length limit. + tempSocketPath := filepath.Join(tempdir, "s") + listener, err := net.Listen("unix", tempSocketPath) if err != nil { - logger.Errorf("failed to listen on unix:%s: %v", socketPath, err) - return nil, err + logger.Errorf("failed to listen on unix:%s: %v", tempSocketPath, err) + return nil, errors.Trace(err) + } + if err := os.Chmod(tempSocketPath, 0700); err != nil { + listener.Close() + return nil, errors.Annotatef(err, "could not chmod socket %v", tempSocketPath) + } + if err := os.Rename(tempSocketPath, socketPath); err != nil { + listener.Close() + return nil, errors.Annotatef(err, "could not rename socket %v", tempSocketPath) } - return listener, err + return listener, nil } Index: b/src/github.com/juju/juju/worker/uniter/runner/jujuc/server.go =================================================================== --- a/src/github.com/juju/juju/worker/uniter/runner/jujuc/server.go +++ b/src/github.com/juju/juju/worker/uniter/runner/jujuc/server.go @@ -12,6 +12,7 @@ "io" "net" "net/rpc" + "os" "path/filepath" "sort" "sync" @@ -202,7 +203,7 @@ } listener, err := sockets.Listen(socketPath) if err != nil { - return nil, err + return nil, errors.Annotate(err, "listening to jujuc socket") } s := &Server{ socketPath: socketPath, @@ -247,6 +248,13 @@ func (s *Server) Close() { close(s.closing) s.listener.Close() + // We need to remove the socket path because + // we renamed the path after opening the + // socket and it won't be cleaned up automatically. + // Ignore error as we can't do much here + // anyway and remove the path if we start the + // server again. + os.Remove(s.socketPath) <-s.closed } Index: b/src/github.com/juju/juju/worker/uniter/runner/runner.go =================================================================== --- a/src/github.com/juju/juju/worker/uniter/runner/runner.go +++ b/src/github.com/juju/juju/worker/uniter/runner/runner.go @@ -201,7 +201,7 @@ } srv, err := jujuc.NewServer(getCmd, runner.paths.GetJujucSocket()) if err != nil { - return nil, err + return nil, errors.Annotate(err, "starting jujuc server") } go srv.Run() return srv, nil Index: b/src/github.com/juju/juju/worker/uniter/uniter.go =================================================================== --- a/src/github.com/juju/juju/worker/uniter/uniter.go +++ b/src/github.com/juju/juju/worker/uniter/uniter.go @@ -20,7 +20,6 @@ "github.com/juju/juju/api/uniter" "github.com/juju/juju/apiserver/params" - "github.com/juju/juju/version" "github.com/juju/juju/worker" "github.com/juju/juju/worker/leadership" "github.com/juju/juju/worker/uniter/charm" @@ -276,17 +275,13 @@ logger.Debugf("starting juju-run listener on unix:%s", u.paths.Runtime.JujuRunSocket) u.runListener, err = NewRunListener(u, u.paths.Runtime.JujuRunSocket) if err != nil { - return err + return errors.Annotate(err, "creating juju run listener") } u.addCleanup(func() error { // TODO(fwereade): RunListener returns no error on Close. This seems wrong. u.runListener.Close() return nil }) - // The socket needs to have permissions 777 in order for other users to use it. - if version.Current.OS != version.Windows { - return os.Chmod(u.paths.Runtime.JujuRunSocket, 0777) - } return nil } debian/patches/series0000664000000000000000000000002413111667161012033 0ustar CVE-2017-9232.patch debian/juju-core.postinst.in0000664000000000000000000000136712754612070013320 0ustar #!/bin/sh set -e VER="__NEW_VERSION__" base_dir="/usr/lib" case "$1" in configure) update-alternatives --install /usr/bin/juju juju $base_dir/juju-$VER/bin/juju 30 \ --slave /usr/bin/jujud jujud $base_dir/juju-$VER/bin/jujud \ --slave /usr/share/man/man1/juju.1 juju.1 $base_dir/juju-$VER/man/man1/juju.1 \ --slave /usr/bin/juju-metadata juju-metadata $base_dir/juju-$VER/bin/juju-metadata \ --slave /usr/bin/juju-restore juju-restore $base_dir/juju-$VER/bin/juju-restore \ --slave /usr/bin/juju-backup juju-backup $base_dir/juju-$VER/bin/juju-backup ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "$0: didn't understand being called with \`$1'" 1>&2 exit 0 ;; esac #DEBHELPER# exit 0