1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-26 16:18:31 +00:00
Commit Graph

7211 Commits

Author SHA1 Message Date
Glen Barber
6052b0ac86 Fix creating directories within DESTDIR.
Sponsored by:	The FreeBSD Foundation
2015-05-07 19:10:08 +00:00
Glen Barber
51aa8af2cc Fix a copy/paste mistake.
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:53:48 +00:00
Glen Barber
5287f5496e Add entries to uenv.txt.
Obtained from:	Crochet
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:51:59 +00:00
Glen Barber
60bc17f490 Enable the growfs rc(8) script.
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:49:43 +00:00
Glen Barber
77d9ac1703 Set NODOC=1 to avoid building the reldoc target.
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:48:47 +00:00
Glen Barber
b36739d1ea Add initial native suppor for RPI-B:
- Set UBLDR_LOADADDR.
 - Include files to install to the FAT partition.

Obtained from:	Crochet
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:47:59 +00:00
Glen Barber
8c61607444 Remove FDT_DIR definition, which is no longer needed.
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:41:23 +00:00
Glen Barber
91ea0e63de Reduce the number of files copied onto the FAT partition.
The DTB files are loaded from /boot/dtb on the UFS filesystem.

Submitted by:	loos
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:32:11 +00:00
Glen Barber
6bd844ae0d In arm_install_uboot(), mount both FAT and UFS partitions
in the empty DESTDIR, and update path names.
Copy the ubldr to the FAT partition. [1]

Spotted by:	andrew [1]
Sponsored by:	The FreeBSD Foundation
2015-05-07 18:00:12 +00:00
Glen Barber
ab44589d80 Set UBLDR_LOADADDR for the BEAGLEBONE image.
Sponsored by:	The FreeBSD Foundation
2015-05-07 17:50:24 +00:00
Glen Barber
c2b4ad660a Do not rename u-boot.img file when copying to the FAT partition.
Sponsored by:	The FreeBSD Foundation
2015-05-07 17:48:19 +00:00
Glen Barber
ac1401b2c3 Fix paths.
Remove the temporary directory when done with it.
Destroy the md(4) device when done with it.

Sponsored by:	The FreeBSD Foundation
2015-05-07 17:40:00 +00:00
Glen Barber
04b7fd007b In arm_create_disk(), chroot(8) to the build environment
is necessary.

In arm_install_base(), chroot(8) when installing world
and kernel.  Fix paths for fstab(5) and rc.conf(5).

Sponsored by:	The FreeBSD Foundation
2015-05-07 17:35:48 +00:00
Glen Barber
379d8dca37 Fix file/directory paths.
Sponsored by:	The FreeBSD Foundation
2015-05-07 17:33:21 +00:00
Glen Barber
befaadd56c In release.sh, create the /dev directory within the chroot
before attempting to mount(8) devfs.  Also, create the
.OBJDIR for the 'release' target, so files end up in the
correct location.

In tools/arm.subr, fix the target device when creating the
gpart partition scheme.

Sponsored by:	The FreeBSD Foundation
2015-05-07 00:27:28 +00:00
Glen Barber
68bca5fb30 Use the correct variable for the tools/TARGET.conf file.
Sponsored by:	The FreeBSD Foundation
2015-05-06 23:26:51 +00:00
Glen Barber
4ad8b75d53 Add tools/arm.subr to contain common subroutines used for
building arm images.  This is similar to tools/vmimage.subr
used for building virtual machine disk images.  By default,
only arm_create_disk() and arm_install_base() contain real
functionality here, and arm_install_uboot() must be overridden
in the arm/KERNEL.conf file.

In release.sh, make create_arm_armv6_build_release() do
something now.

In arm/BEAGLEBONE.conf, set IMAGE_SIZE, PART_SCHEME, FAT_SIZE,
FAT_TYPE, and MD_ARGS, as well as make arm_install_uboot()
functional.

Parts of this were taken from disecting a previous BEAGLEBONE
image, and other parts obtained from Crochet sources.

Sponsored by:	The FreeBSD Foundation
2015-05-06 19:58:12 +00:00
Glen Barber
9056dae945 Evaluage chroot_build_release_cmd based on the TARGET/TARGET_ARCH
of the build target.

Move arm/armv6 'release' bits to chroot_arm_armv6_build_release().

Sponsored by:	The FreeBSD Foundation
2015-05-06 18:16:27 +00:00
Glen Barber
57dbde2ca8 buildenv_setup(), if overridden in the configuration file,
only needs to be invoked once.

Sponsored by:	The FreeBSD Foundation
2015-05-06 16:21:12 +00:00
Glen Barber
6848c01fad Remove Crochet invocation.
Sponsored by:	The FreeBSD Foundation
2015-05-06 16:04:11 +00:00
Glen Barber
fea236302d Remove crochet configuration files and tools/arm/ directory.
Sponsored by:	The FreeBSD Foundation
2015-05-06 15:59:29 +00:00
Glen Barber
cf582ac56f Update the arm/*.conf configuration files to only set
EMBEDDEDBUILD, EMBEDDED_TARGET, EMBEDDED_TARGET_ARCH,
EMBEDDEDPORTS, and KERNEL.

In release.sh, set TARGET and TARGET_ARCH to the
EMBEDDED_* variants from the configuration file.

Sponsored by:	The FreeBSD Foundation
2015-05-06 15:58:21 +00:00
Glen Barber
a03128832c In extra_chroot_setup(), use 'uname -U' to determine OSVERSION.
Move the port build for EMBEDDEDPORTS (if set) from arm/release.sh
to release.sh.

Remove arm/release.sh.

Sponsored by:	The FreeBSD Foundation
2015-05-06 15:41:43 +00:00
Glen Barber
8501ddab55 Add a return to chroot_build_target().
In chroot_build_release(), reverse the order evaluating
EMBEDDEDBUILD.

Sponsored by:	The FreeBSD Foundation
2015-05-06 15:20:29 +00:00
Glen Barber
7290c83913 Wrap long lines in comments after previous commits that indented
the file.

Sponsored by:	The FreeBSD Foundation
2015-05-06 15:10:50 +00:00
Glen Barber
3c9143a888 Ensure resolv.conf exists on the build host before attempting
to copy it to the build chroot.

Move where the ldconfig(8) startup script is invoked.

Sponsored by:	The FreeBSD Foundation
2015-05-06 15:05:38 +00:00
Glen Barber
81cfc2845b Move where the configuration file is sourced if '-c'
is specified.  If the configuration file does not exist,
proceed with the default options instead of exiting.

Sponsored by:	The FreeBSD Foundation
2015-05-06 14:59:16 +00:00
Glen Barber
43eee0751f Move the trap after env_check(), since CHROOTDIR may be
redefined.

Sponsored by:	The FreeBSD Foundation
2015-05-06 14:53:34 +00:00
Glen Barber
3ddb84b3bb Shorten long lines.
Sponsored by:	The FreeBSD Foundation
2015-05-06 14:53:01 +00:00
Glen Barber
5dbf38dcca Move PATH and export to the same line.
Handle svn or svnlite being installed in /usr/bin or
/usr/local/bin.

Sponsored by:	The FreeBSD Foundation
2015-05-06 14:48:35 +00:00
Glen Barber
a12fa24967 Add documentation for newly-added functions.
While here, move CHROOT_* and RELEASE_* variables from
env_setup() to env_check() since they may change if
a release.conf file is used.

Sponsored by:	The FreeBSD Foundation
2015-05-06 14:35:43 +00:00
Glen Barber
fb539361f7 Add the following functions to release.sh to organize and make
clear the workflow:
 - env_setup()
 - env_check()
 - chroot_setup()
 - extra_chroot_setup()
 - chroot_build_target()
 - chroot_build_release()

There should be no functional changes at this point.

Sponsored by:	The FreeBSD Foundation
2015-05-06 14:21:51 +00:00
Glen Barber
2252f43bdc MFH: r282315-r282534
Sponsored by:	The FreeBSD Foundation
2015-05-06 11:50:30 +00:00
Glen Barber
ace79aa796 Fix building BEAGLEBONE images with Crochet using the
sysutils/u-boot-beaglebone port:

 - In arm/BEAGLEBONE.conf, set EMBEDDEDPORTS to the
   sysutils/u-boot-beaglebone port.
 - In arm/release.sh, remove BEAGLEBONE from setting WANT_UBOOT
 - In tools/arm/crochet-BEAGLEBONE.conf, override the
   beaglebone_check_uboot(), and set BEAGLEBONE_UBOOT to
   /tmp/external/u-boot-beaglebone, and create symlinks to the
   u-boot files in /usr/local/share/u-boot-beaglebone and the
   uEnv.txt file in crochet/board/Beaglebone/files.

Sponsored by:	The FreeBSD Foundation
2015-05-05 21:08:50 +00:00
Glen Barber
86be889b61 Remove buildenv_setup(), and set EMBEDDEDPORTS to the
sysutils/u-boot-rpi2 port, since these cases are already
handled by arm/release.sh.

Sponsored by:	The FreeBSD Foundation
2015-05-05 16:37:59 +00:00
Glen Barber
20a67b0520 Add initial support for building RPI2 images.
In release.sh, allow overriding buildenv_setup() before
the handoff to arm/release.sh.

Copy arm/RPI-B.conf -> arm/RPI2.conf, set UBOOT_PORT and
the correct KERNEL, and add the buildenv_setup() override
to install the sysutils/u-boot-rpi2 port/package.

Copy tools/arm/crochet-RPI-B.conf -> tools/arm/crochet-RPI2.conf,
and set the correct entries for the RaspberryPi2 board.

Thanks to:	loos@
Sponsored by:	The FreeBSD Foundation
2015-05-05 16:28:04 +00:00
Glen Barber
4b9b2a3781 Document r281617, wc(1) race when receiving SIGINFO fixed.
Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:21 +00:00
Glen Barber
41b4592ccf Fix a FDP style nit. Wrap the lines as a result.
Found with:	textproc/igor
Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:19 +00:00
Glen Barber
9e84de4dbf Document r281802, support added for building FreeBSD/aarch64 virtual
machine and memory stick images.

Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:17 +00:00
Glen Barber
1357d43933 Update the svn revision marker.
Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:15 +00:00
Glen Barber
48c9833590 Document r282434, openresolv updated to version 3.7.0.
Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:12 +00:00
Glen Barber
324414db87 Document r282274, xen(4) PV domU kernel support removed.
Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:10 +00:00
Glen Barber
94d790a074 Document r282213, kern.racct.enable tunable and RACCT_DISABLED
kernel configuration option.

Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:08 +00:00
Glen Barber
d7fdfb703c Document r282212, several improvements/updates to the HyperV drivers.
Add Microsoft OSTC to sponsors.ent.

Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:05 +00:00
Glen Barber
1a717f6397 Document r282208, chmod(1), chflags(1), chgrp(1), and chown(8) now
affect symbolic links when '-R' is used.

Add Multiplay to sponsors.ent.

Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:02 +00:00
Glen Barber
1907c1622a Fix a typo.
Sponsored by:	The FreeBSD Foundation
2015-05-05 15:16:00 +00:00
Glen Barber
431e39f8d7 Remove a debugging line that snuck in with r282419.
Pointyhat:	gjb
MFC after:	3 days
X-MFC-With:	r282419
Sponsored by:	The FreeBSD Foundation
2015-05-04 21:34:19 +00:00
Glen Barber
98becbfc3c Add logic to detect if the net/bsdec2-image-upload port needs
to be installed. [1]

For the cw-ec2-portinstall and ec2ami targets, touch the
.TARGET file after completion to prevent duplicate invocations.

Add cw-ec2-portinstall and ec2ami to CLEANFILES.

Submitted by:	cperciva[1]
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2015-05-04 15:04:39 +00:00
Glen Barber
de7df74b48 MFH: r281855-r282312
Sponsored by:	The FreeBSD Foundation
2015-05-01 18:07:18 +00:00
Brad Davis
f3e74005fc Fix typo 2015-04-29 16:52:43 +00:00
Glen Barber
687b992534 Document r280297, OpenSSL updated to version 1.0.1m.
Sponsored by:	The FreeBSD Foundation
2015-04-29 16:15:26 +00:00
Glen Barber
d42be3eade Refine the entry regarding devfs(5) timestamps, as of
r280949, devfs(5) updates default to seconds precision.

Submitted by:	jilles
Sponsored by:	The FreeBSD Foundation
2015-04-28 21:57:52 +00:00
Glen Barber
313b134f23 Document r281387, hptnr(4) driver updated to version 1.1.1.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:36 +00:00
Glen Barber
1ae450ca7e Document r281396, ACPI update to 20150410.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:34 +00:00
Glen Barber
48a5f50dfb Document r280870, fix directory inclusion when '--one-file-system'
is specified.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:32 +00:00
Glen Barber
b7ff47d4f1 Update the svn revision marker.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:30 +00:00
Glen Barber
6cd4ef0059 Document r281845, file verification support in MAC.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:27 +00:00
Glen Barber
2f17c26516 Document r281713, hwpmc(4) support for Freescale e500 core.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:25 +00:00
Glen Barber
8d6132a0c0 Document r281439, support for the 'virt' QEMU SoC.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:23 +00:00
Glen Barber
7bd793eba0 Document r281311, disallow directory traversal in ar(1).
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:21 +00:00
Glen Barber
716a427d7f Document r281261, DTrace support for the Book-E.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:19 +00:00
Glen Barber
bad17f19c9 Document r281130, gcc attributes added to standard include headers.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:17 +00:00
Glen Barber
ba2d8fb75c Fix a whitespace nit.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:14 +00:00
Glen Barber
d58e6463b9 Typo/spelling fixes.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:12 +00:00
Glen Barber
0bacd927a0 Document r280971, support for RFC6864.
Add Netflix and Nginx to the sponsors.ent file.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:10 +00:00
Glen Barber
d44f5dd6f1 Fix revision for GELI prompt support in the loader.
The initial commit was reverted (without a useful commit
message), and committed again as r281616.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:07 +00:00
Glen Barber
a6331ea08b Document r280938, GELI passphrase prompt support added to the
boot loader.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:05 +00:00
Glen Barber
ba908c1a9f Document r280932, elftoolchain update to version 3179.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:03 +00:00
Glen Barber
90c3dae191 Document r280930, several RPC fixes.
Add MIT AI Lab to sponsors.ent.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:11:00 +00:00
Glen Barber
f6abc62908 Partially document r280859, readelf(1) is now switched to the ELF
toolchain version.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:58 +00:00
Glen Barber
4acc0bfc03 Document r280308, devfs(5) timestamp updates for read/write operations
is now disabled by default.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:55 +00:00
Glen Barber
631bd25479 Document r280259, initial support for arm64/aarch64.
Add arch.arm64 entity to release.ent.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:53 +00:00
Glen Barber
f6267710f6 Document r280183, drm update to match Linux 3.8.13.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:50 +00:00
Glen Barber
d1b045f1c4 Document r279957, DSM TRIM support for virtual AHCI disks.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:48 +00:00
Glen Barber
cb8cb1487d Document r281316, xz(1) update to version 5.2.1.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:46 +00:00
Glen Barber
d1e92d17d9 Document r281373, nvi(1) update to version 2.1.3.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:44 +00:00
Glen Barber
6713def694 Document r281806, wpa_supplicant(8)/hostapd(8) update to version 2.4.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:41 +00:00
Glen Barber
6ae48da521 Document r281812, make(1) update to version 20150418.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:39 +00:00
Glen Barber
2615786b51 Document r282089, unbound(8) update to 1.5.3.
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:37 +00:00
Glen Barber
d1e2507b7f Document r279122, netstat(1) updated to use libxo(3).
Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:35 +00:00
Glen Barber
3849e235c9 Document r273562, libxo(3) import.
Add Juniper Networks to sponsors.ent.

Sponsored by:	The FreeBSD Foundation
2015-04-28 18:10:32 +00:00
Glen Barber
a3d1b9c24a Fix CROCHETBRANCH, forgotten in r280640.
Submitted by:	ruben.kerkhof@gmail.com
PR:		199760
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2015-04-28 15:32:59 +00:00
Glen Barber
f23e36d73c Add the cw-ec2-portinstall target to always install the
net/bsdec2-image-upload port.

MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2015-04-27 21:38:12 +00:00
Glen Barber
26e4122a80 Fix a comment.
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2015-04-27 19:49:50 +00:00
Glen Barber
082a550bba Do not nest the BSD and MBR partitions, which produces
an unbootable image.  Use just an MBR scheme instead.

Sponsored by:	The FreeBSD Foundation
2015-04-27 18:07:11 +00:00
Glen Barber
62e0fc0426 Generate the arm64/aarch64 memstick image as MBR instead of
GPT.

Boot tested by:	andrew
Sponsored by:	The FreeBSD Foundation
2015-04-27 17:39:40 +00:00
Glen Barber
08a75d1f0e Create the arm64/aarch64 VM disk image as MBR instead of
GPT scheme.  UEFI needs to know the unique partition GUID
with GPT, which changes each time.  Specifically, the QEMU
EFI BIOS file has this hard-coded.[1]

Since the GPT labels are now unavailable, unconditionally
label the root filesystem as 'rootfs' with newfs(8), since
it does not hurt anything anywhere else.  For the arm64 case,
'/' is mounted from /dev/ufs/rootfs; for all other VM images,
'/' is mounted from /dev/gpt/rootfs.

Unfortunately, since the /dev/gpt/swapfs label is also lost,
set NOSWAP=1 for the arm64/aarch64 images.  This is temporary,
until I figure out a scalable solution to this.  But, a certain
piece of softare was written "very fast", and ended up living
for 15 years.  We can deal with this for a week or so.

Information from:	andrew, emaste [1]
Sponsored by:	The FreeBSD Foundation
2015-04-23 01:04:14 +00:00
Glen Barber
e19e678123 Remove the gptboot partition from the arm64 memory stick image,
which is not needed/used.

Sponsored by:	The FreeBSD Foundation
2015-04-22 13:52:29 +00:00
Glen Barber
7263c8c099 MFH: r280643-r281852
Sponsored by:	The FreeBSD Foundation
2015-04-22 12:58:16 +00:00
Glen Barber
bf93ac7884 Revert r281809, which did more harm than good, and apply
a more proper fix when attempting to locate the /boot
files.

Sponsored by:	The FreeBSD Foundation
2015-04-21 14:48:38 +00:00
Glen Barber
fa56961588 Simplify variable expansion in attempt to fix the vm-image build.
Sponsored by:	The FreeBSD Foundation
2015-04-21 02:49:44 +00:00
Glen Barber
6b1cf1b2c2 Merge the following from ^/projects/release-arm64 to allow
building FreeBSD/arm64 VM images and memstick.img installation
medium:
r281786, r281788, r281792:

 r281786:
  Add support for building arm64/aarch64 virtual machine images.

 r281788:
  Copy amd64/make-memstick.sh to arm64/make-memstick.sh for
  aarch64 memory stick images.

  Although arm64 does not yet have USB support, the memstick
  image should be bootable with certain virtualization tools,
  such as qemu.

 r281792:

  Add a buildenv_setup() prototype, intended to be overridden as
  needed.

  For example, the arm64/aarch64 build needs devel/aarch64-binutils,
  so buildenv_setup() in the release.conf for this architecture
  handles the installation of the port before buildworld/buildkernel.

Sponsored by:	The FreeBSD Foundation
2015-04-21 00:48:35 +00:00
Glen Barber
47a5593e1b Copy amd64/make-memstick.sh to arm64/make-memstick.sh for
aarch64 memory stick images.

Although arm64 does not yet have USB support, the memstick
image should be bootable with certain virtualization tools,
such as qemu.

Sponsored by:	The FreeBSD Foundation
2015-04-20 20:13:02 +00:00
Glen Barber
6a3afe6924 Add support for building arm64/aarch64 virtual machine images.
Sponsored by:	The FreeBSD Foundation
2015-04-20 20:06:25 +00:00
Glen Barber
4b8175ee8f When building VM disk images, vm_copy_base() uses tar(1) to
copy the userland from one md(4)-mounted filesystem to a clean
filesystem to prevent remnants of files that were added and
removed from resulting in an unclean filesystem.  When newfs(8)
creates the first filesystem with journaled soft-updates enabled,
the /.sujournal file in the new filesystem cannot be overwritten
by the /.sujournal in the original filesystem.

To avoid this particular error case, do not enable journaled
soft-updates when creating the md(4)-backed filesystems, and
instead use tunefs(8) to enable journaled soft-updates after
the new filesystem is populated in vm_copy_base().

While here, fix a long standing bug where the build environment
/boot files were used by mkimg(1) when creating the VM disk
images by using the files in .OBJDIR.

MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2015-04-20 19:54:54 +00:00
Colin Percival
73d4ced07c Add code for creating an EC2 AMI. 2015-04-01 00:00:17 +00:00
Colin Percival
450a69e70c It would help if I committed the right patch... 2015-03-31 04:35:35 +00:00
Colin Percival
6e8e6c9951 Partially revert r278118 now that the required logic for deciding whether
freebsd-update can be useful has moved into the firstboot_freebsd_update
script.
2015-03-31 01:44:29 +00:00
Colin Percival
f65557efc4 Add bits for building EC2 disk images. Make logic for uploading these
to create EC2 AMIs will come in a later commit.
2015-03-31 01:28:33 +00:00
Glen Barber
e618222a18 Sigh. s/AutoSize/Growfs/ following upstream commit r761.
MFH:		3 days
Sponsored by:	The FreeBSD Foundation
2015-03-30 19:08:37 +00:00