[meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
Lei Yang
From: Lei Yang <lei.yang@...>
The netcat-openbsd in meta-virtualization layer has bugs. This update version will fix "nc: Protocol no available." error. As bruce point, we want to keep netcat in the meta-networking, which meta-virtualization will depend on Lei Signed-off-by: Lei Yang <lei.yang@...> --- .../recipes-support/netcat/netcat-openbsd_1.89.bb | 29 ++++++++++++++++++++ meta-networking/recipes-support/netcat/netcat.inc | 6 ++++ .../recipes-support/netcat/netcat_0.7.1.bb | 11 +++---- 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb create mode 100644 meta-networking/recipes-support/netcat/netcat.inc diff --git a/meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb b/meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb new file mode 100644 index 0000000..9fe406c --- /dev/null +++ b/meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb @@ -0,0 +1,29 @@ +require netcat.inc +DESCRIPTION = "OpenBSD Netcat" +HOMEPAGE = "http://ftp.debian.org" +LICENSE = "BSD-3-Clause" +PR = "r0" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_1.89.orig.tar.gz;name=netcat \ + ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_1.89-4.diff.gz;name=netcat-patch" + +SRC_URI[netcat.md5sum] = "7238ce15aae43069e96ba7faf03f153e" +SRC_URI[netcat.sha256sum] = "72e844dde8a2a7cba61971d493758dbea9ef0b164bccef15fd4a36490dc77f2b" +SRC_URI[netcat-patch.md5sum] = "00c65aa22243b76998174c733cbb64cc" +SRC_URI[netcat-patch.sha256sum] = "d5b6b2bd9788114bdcfbb71acad0263720b4fdc41529e287adf451b8610f84f1" + +S = "${WORKDIR}/${PN}-${PV}.orig" + +do_configure[noexec] = "1" + +do_compile() { + cd ${S} + while read line; do patch -p1 <debian/patches/$line; done <debian/patches/series + pkgrel=4 + oe_runmake CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\"" +} + +do_install() { + install -d ${D}${bindir} + install -m 755 ${S}/nc ${D}${bindir}/nc.${BPN} +} diff --git a/meta-networking/recipes-support/netcat/netcat.inc b/meta-networking/recipes-support/netcat/netcat.inc new file mode 100644 index 0000000..4098668 --- /dev/null +++ b/meta-networking/recipes-support/netcat/netcat.inc @@ -0,0 +1,6 @@ +SECTION = "console/network" +inherit update-alternatives gettext + +ALTERNATIVE_${PN} = "nc" +ALTERNATIVE_PRIORITY = "100" + diff --git a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb index c5ab85d..e09202b 100644 --- a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb +++ b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb @@ -1,21 +1,20 @@ +require netcat.inc DESCRIPTION = "GNU Netcat" HOMEPAGE = "http://netcat.sourceforge.net" -SECTION = "console/network" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -PR = "r0" +PR = "r1" SRC_URI = "${SOURCEFORGE_MIRROR}/netcat/netcat-${PV}.tar.bz2" SRC_URI[md5sum] = "0a29eff1736ddb5effd0b1ec1f6fe0ef" SRC_URI[sha256sum] = "b55af0bbdf5acc02d1eb6ab18da2acd77a400bafd074489003f3df09676332bb" -inherit autotools update-alternatives gettext +inherit autotools do_install_append() { - mv ${D}${bindir}/nc ${D}${bindir}/nc.${PN} + install -d ${D}${bindir} + mv ${D}${bindir}/nc ${D}${bindir}/nc.${PN} } -ALTERNATIVE_${PN} = "nc" -ALTERNATIVE_PRIORITY = "100" -- 1.7.1 |
|
Re: [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
David Nystr?m
On 01/06/2013 09:20 AM, lei.yang@... wrote:
From: Lei Yang <lei.yang@...>This means that both versions of netcat have alt. prio 100. what happens when both are installed on the rootfs at the same time. where does the symlink point ? What does bitbake make of this ? + |
|
Re: [oe] [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
Martin Jansa
On Sun, Jan 06, 2013 at 12:58:47PM +0100, David Nyström wrote:
On 01/06/2013 09:20 AM, lei.yang@... wrote:The one installed later (at least for opkg implementation).+SECTION = "console/network"This means that both versions of netcat have alt. prio 100. what happens So it's better to change it to different number. Cheers, -- Martin 'JaMa' Jansa jabber: Martin.Jansa@... |
|
Re: [PATCH] Update the netcat with debian patches to fix some error
David Nystr?m
On 01/05/2013 07:44 PM, Bruce Ashfield wrote:
On Sat, Jan 5, 2013 at 9:46 AM, David Nyström <david.nystrom@...>wrote:I'm totaly OK with this, as long as its accepted somewhere.I think we should hold on this merge completely. netcat is already covered As Lei states though, we need to document the layer setup in README. However, for future reference, I see no reason why new recipes can't end up in meta-virtualization first for a usable working setup, and when accepted upstream, they will be removed. I suggest we use recipes-external/meta-<potential-upstream-here>/new-recipe-name/ until accepted elsewhere. Br, David
|
|
Re: [oe] [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
lei yang <yanglei.fage@...>
On Sun, Jan 6, 2013 at 4:06 AM, Martin Jansa <martin.jansa@...> wrote:
On Sun, Jan 06, 2013 at 12:58:47PM +0100, David Nyström wrote:Thanks, I will update thisOn 01/06/2013 09:20 AM, lei.yang@... wrote:The one installed later (at least for opkg implementation).+SECTION = "console/network"This means that both versions of netcat have alt. prio 100. what happens Lei Cheers, |
|
Re: [PATCH] Update the netcat with debian patches to fix some error
Bruce Ashfield
On Sun, Jan 6, 2013 at 7:59 AM, David Nyström <david.c.nystrom@...> wrote:
+1 However, for future reference, I see no reason why new recipes can't end up in meta-virtualization first for a usable working setup, and when accepted upstream, they will be removed. I don't disagree with this process either, but I wouldn't want it to become the first choice
of a recipe flow. It creates more churn and work to bounce through a temporary location rather than going directly to where things belong. If we have trouble getting a recipe accepted elsewhere, the choice of another layer isn't
obvious, or there's a real time pressure, I'd completely agree that this is the right thing to do. It's just that in this case, the flow to meta-networking is fairly obvious (to me at least)
and there's no time pressure .. so trying to get it into meta-networking first was a good idea. Cheers, Bruce
"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" |
|
[meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test
Lei Yang
From: Lei Yang <lei.yang@...>
The netcat-openbsd in meta-virtualization layer has bugs. This update version will fix "nc: Protocol no available." error. As bruce point, we want to keep netcat in the meta-networking, which meta-virtualization will depend on,and this patch will let netcat-openbsd with low priority to install Lei Signed-off-by: Lei Yang <lei.yang@...> --- .../recipes-support/netcat/netcat-openbsd_1.89.bb | 30 ++++++++++++++++++++ meta-networking/recipes-support/netcat/netcat.inc | 5 +++ .../recipes-support/netcat/netcat_0.7.1.bb | 11 +++---- 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb create mode 100644 meta-networking/recipes-support/netcat/netcat.inc diff --git a/meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb b/meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb new file mode 100644 index 0000000..f83caee --- /dev/null +++ b/meta-networking/recipes-support/netcat/netcat-openbsd_1.89.bb @@ -0,0 +1,30 @@ +require netcat.inc +DESCRIPTION = "OpenBSD Netcat" +HOMEPAGE = "http://ftp.debian.org" +LICENSE = "BSD-3-Clause" +PR = "r0" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_1.89.orig.tar.gz;name=netcat \ + ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_1.89-4.diff.gz;name=netcat-patch" + +SRC_URI[netcat.md5sum] = "7238ce15aae43069e96ba7faf03f153e" +SRC_URI[netcat.sha256sum] = "72e844dde8a2a7cba61971d493758dbea9ef0b164bccef15fd4a36490dc77f2b" +SRC_URI[netcat-patch.md5sum] = "00c65aa22243b76998174c733cbb64cc" +SRC_URI[netcat-patch.sha256sum] = "d5b6b2bd9788114bdcfbb71acad0263720b4fdc41529e287adf451b8610f84f1" + +S = "${WORKDIR}/${PN}-${PV}.orig" + +do_configure[noexec] = "1" + +do_compile() { + cd ${S} + while read line; do patch -p1 <debian/patches/$line; done <debian/patches/series + pkgrel=4 + oe_runmake CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\"" +} + +do_install() { + install -d ${D}${bindir} + install -m 755 ${S}/nc ${D}${bindir}/nc.${PN} +} +ALTERNATIVE_PRIORITY = "50" diff --git a/meta-networking/recipes-support/netcat/netcat.inc b/meta-networking/recipes-support/netcat/netcat.inc new file mode 100644 index 0000000..6c815d9 --- /dev/null +++ b/meta-networking/recipes-support/netcat/netcat.inc @@ -0,0 +1,5 @@ +SECTION = "console/network" +inherit update-alternatives gettext + +ALTERNATIVE_${PN} = "nc" + diff --git a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb index c5ab85d..c4f1f33 100644 --- a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb +++ b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb @@ -1,21 +1,20 @@ +require netcat.inc DESCRIPTION = "GNU Netcat" HOMEPAGE = "http://netcat.sourceforge.net" -SECTION = "console/network" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -PR = "r0" +PR = "r1" SRC_URI = "${SOURCEFORGE_MIRROR}/netcat/netcat-${PV}.tar.bz2" SRC_URI[md5sum] = "0a29eff1736ddb5effd0b1ec1f6fe0ef" SRC_URI[sha256sum] = "b55af0bbdf5acc02d1eb6ab18da2acd77a400bafd074489003f3df09676332bb" -inherit autotools update-alternatives gettext +inherit autotools do_install_append() { - mv ${D}${bindir}/nc ${D}${bindir}/nc.${PN} + install -d ${D}${bindir} + mv ${D}${bindir}/nc ${D}${bindir}/nc.${PN} } - -ALTERNATIVE_${PN} = "nc" ALTERNATIVE_PRIORITY = "100" -- 1.7.1 |
|
Re: [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
Joe MacDonald <Joe.MacDonald@...>
[[meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)] On 13.01.06 (Sun 13:17) lei.yang@... wrote:
From: Lei Yang <lei.yang@...>That's fine with me if that works for him, and having both netcat versions available is fine, I personally prefer the obsd one. I'll keep an eye out for your next version with the per-recipe alternative priorities. I didn't notice the discussion with Bruce, though, so at the risk of re-stating what you guys have already agreed upon, this will mean you're at least going to be cloning meta-oe to use meta-virtualization. meta-networking isn't a standalone layer for the most part. I maintain a read-only subtree project on github that is meta-networking separated from the rest of meta-oe, but it necessarily trails the meta-networking in meta-oe. I'm fine with the new recipe, just wanted to make sure you had all the information you needed. -J. -- -Joe MacDonald. :wq |
|
Re: [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
Lei Yang
On 01/07/2013 09:46 AM, Joe MacDonald wrote:
[[meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)] On 13.01.06 (Sun 13:17) lei.yang@... wrote:Wait Bruce's commentsFrom: Lei Yang<lei.yang@...>That's fine with me if that works for him, and having both netcat Lei I'm fine with the new recipe, just wanted to make sure you had all the |
|
Re: [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
Lei Yang
On 01/07/2013 10:03 AM, Lei Yang wrote:
On 01/07/2013 09:46 AM, Joe MacDonald wrote:Do I need send a V2 for update the openbsd's priority ?[[meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)] On 13.01.06 (Sun 13:17) lei.yang@... wrote:From: Lei Yang<lei.yang@...>That's fine with me if that works for him, and having both netcat Lei an eye out for your next version with the per-recipe alternativeWait Bruce's comments |
|
Re: [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
Joe MacDonald <Joe.MacDonald@...>
[Re: [meta-virtualization] [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)] On 13.01.07 (Mon 10:08) Lei Yang wrote:
On 01/07/2013 10:03 AM, Lei Yang wrote:I don't think so. What priorities do you propose for each, though?On 01/07/2013 09:46 AM, Joe MacDonald wrote:Do I need send a V2 for update the openbsd's priority ?[[meta-networking][PATCH] Add netcat-openbsd for virtualization That's worth sending to the list, I think, since I know there are strongly held opinions on each side of the netcat debate as to which is superior. :-) -J. -- -Joe MacDonald. :wq |
|
Re: [meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test
Joe MacDonald <Joe.MacDonald@...>
[[meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test] On 13.01.07 (Mon 09:38) lei.yang@... wrote:
From: Lei Yang <lei.yang@...>Okay, I hadn't seen this version yet. Looks okay, I think. I'll merge it anyway soon, unless there's further discussion. The dependency on meta-networking from meta-virtualization is probably out of scope. Ping me any time if you've got any questions about the relationship between meta-oe/meta-networking and my github meta-networking. Thanks, Lei. -J. -- -Joe MacDonald. :wq |
|
Re: [meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test
Lei Yang
On 01/07/2013 10:15 AM, Joe MacDonald wrote:
[[meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test] On 13.01.07 (Mon 09:38) lei.yang@... wrote:Actually I only see meta-oe/meta-networking. I don't know you have a github meta-networkingFrom: Lei Yang<lei.yang@...>Okay, I hadn't seen this version yet. Looks okay, I think. I'll merge Usually, the patch check into which meta-networking first. I don't know the background. Lei Thanks, Lei. |
|
Re: [meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test
Joe MacDonald <Joe.MacDonald@...>
[Re: [meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test] On 13.01.07 (Mon 10:24) Lei Yang wrote:
On 01/07/2013 10:15 AM, Joe MacDonald wrote:meta-oe/meta-networking is the primary source, everything must go[[meta-networking][PATCHV2] Add netcat-bsd into meta-networking for meta-virutalization libvirt virt-test] On 13.01.07 (Mon 09:38) lei.yang@... wrote:Actually I only see meta-oe/meta-networking. I don't know you have aFrom: Lei Yang<lei.yang@...>Okay, I hadn't seen this version yet. Looks okay, I think. I'll merge through there first. The other is, as I said, a read-only subtree of the former and helpful for my particular use-case. Possibly yours, too, I don't know. I just wasn't sure you knew that or had already been okay with having meta-virtualization depending on a layer out of meta-oe. Maybe it depends on other meta-oe layers too and so it's all a moot point. -J. -- -Joe MacDonald. :wq |
|
Re: [meta-networking][PATCH] Add netcat-openbsd for virtualization (libvirt virt-test)
Bruce Ashfield
On Sun, Jan 6, 2013 at 8:46 PM, Joe MacDonald <Joe.MacDonald@...> wrote:
This all sounds good to me. I see the other thread where you've indicated you'll merge the obsd netcat, and like you say there, that's the important part.
The summary of the conversation (on meta-virt) was the big item I was trying to avoid was having two supported netcat variants in different layers with no obvious (to the casual observer) reason why there were two layers that
contained "netcat". I didn't expect this to move to oe-dev quite so fast, or I would have gotten around to giving my own heads up! There are two ideas about how to consume obsd netcat if it comes from
meta-networking, depend directly on the layer (whether it be the meta-oe, or your read only github/standalone variant) or to use the layer combo tools to track what you merge to meta-networking within meta-virt.
We'll just document the requirement(s) in the READMEs once everything is nailed down. Either approach I mention above will work, and while we do want to keep
dependencies low, I'm inclined to use the layer dependency approach, since there are bound to be more parts of meta-networking that will be required as the virtualization usecases progress.
Right now, I'm not too concerned about a meta-oe dependency (but I'm just one voice), but it is good to know that there's the github option as well. And
there's the fallback of the layer combo-tooling as well. If anyone has experience to offer here .. it would be appreciated, since there's no sense causing ourselves undo pain and suffering.
Cheers, Bruce
"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" |
|
[PATCH 0/2] KVM integration
Mihai Prica <mihai.prica@...>
More details on building a KVM image can be found on the wiki page at:
https://wiki.yoctoproject.org/wiki/Virtualization_with_KVM Mihai Prica (2): linux-yocto: added kernel configuration for KVM Created new target:kvm-image-minimal recipes-extended/images/kvm-image-minimal.bb | 22 ++++++++++++++++++++++ recipes-kernel/linux/linux-yocto/kvm-enable.scc | 4 ++++ recipes-kernel/linux/linux-yocto/kvm.cfg | 4 ++++ recipes-kernel/linux/linux-yocto_3.4.bbappend | 1 + 4 files changed, 31 insertions(+) create mode 100644 recipes-extended/images/kvm-image-minimal.bb create mode 100644 recipes-kernel/linux/linux-yocto/kvm-enable.scc create mode 100644 recipes-kernel/linux/linux-yocto/kvm.cfg -- 1.7.9.5 |
|
[PATCH 1/2] linux-yocto: added kernel configuration for KVM
Mihai Prica <mihai.prica@...>
Signed-off-by: Mihai Prica <mihai.prica@...>
--- recipes-kernel/linux/linux-yocto/kvm-enable.scc | 4 ++++ recipes-kernel/linux/linux-yocto/kvm.cfg | 4 ++++ recipes-kernel/linux/linux-yocto_3.4.bbappend | 1 + 3 files changed, 9 insertions(+) create mode 100644 recipes-kernel/linux/linux-yocto/kvm-enable.scc create mode 100644 recipes-kernel/linux/linux-yocto/kvm.cfg diff --git a/recipes-kernel/linux/linux-yocto/kvm-enable.scc b/recipes-kernel/linux/linux-yocto/kvm-enable.scc new file mode 100644 index 0000000..0b5f4fc --- /dev/null +++ b/recipes-kernel/linux/linux-yocto/kvm-enable.scc @@ -0,0 +1,4 @@ +define KFEATURE_DESCRIPTION "Enable KVM host support" +define KFEATURE_COMPATIBILITY board + +kconf non-hardware kvm.cfg diff --git a/recipes-kernel/linux/linux-yocto/kvm.cfg b/recipes-kernel/linux/linux-yocto/kvm.cfg new file mode 100644 index 0000000..0cfcf58 --- /dev/null +++ b/recipes-kernel/linux/linux-yocto/kvm.cfg @@ -0,0 +1,4 @@ +CONFIG_KVM=y +CONFIG_KVM_INTEL=y +CONFIG_KVM_AMD=y +CONFIG_TUN=y diff --git a/recipes-kernel/linux/linux-yocto_3.4.bbappend b/recipes-kernel/linux/linux-yocto_3.4.bbappend index 5b163ff..71bead2 100644 --- a/recipes-kernel/linux/linux-yocto_3.4.bbappend +++ b/recipes-kernel/linux/linux-yocto_3.4.bbappend @@ -4,5 +4,6 @@ SRC_URI += "file://xt-checksum.scc \ file://ebtables.scc \ file://vswitch.scc \ file://lxc.scc \ + file://kvm-enable.scc \ " -- 1.7.9.5 |
|
[PATCH 2/2] Created new target:kvm-image-minimal
Mihai Prica <mihai.prica@...>
Signed-off-by: Mihai Prica <mihai.prica@...>
--- recipes-extended/images/kvm-image-minimal.bb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 recipes-extended/images/kvm-image-minimal.bb diff --git a/recipes-extended/images/kvm-image-minimal.bb b/recipes-extended/images/kvm-image-minimal.bb new file mode 100644 index 0000000..486cd9c --- /dev/null +++ b/recipes-extended/images/kvm-image-minimal.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "A minimal kvm image" + +IMAGE_INSTALL = " \ + packagegroup-core-boot \ + ${ROOTFS_PKGMANAGE_BOOTSTRAP} \ + qemu \ + libvirt \ + libvirt-libvirtd \ + libvirt-virsh \ + " + +IMAGE_FEATURES += "ssh-server-openssh" + +IMAGE_LINGUAS = " " + +LICENSE = "MIT" + +inherit core-image + +IMAGE_ROOTFS_SIZE = "8192" + +ROOTFS_POSTPROCESS_COMMAND += "remove_packaging_data_files ; " -- 1.7.9.5 |
|
Re: [PATCH 0/2] KVM integration
David Nystr?m
On 01/07/2013 01:08 PM, Mihai Prica wrote:
More details on building a KVM image can be found on the wiki page at:Reviewed-by: David Nyström <david.nystrom@...> |
|
Re: [PATCH 1/2] linux-yocto: added kernel configuration for KVM
Bruce Ashfield
On Mon, Jan 7, 2013 at 7:08 AM, Mihai Prica <mihai.prica@...> wrote: Signed-off-by: Mihai Prica <mihai.prica@...> We already have an identical config fragment within the kernel tree itself: and If there's a reason why the in-tree version won't work, we should definitely fix it there first. Having a copy outside of the kernel itself is going to cause us maintenance
issues down the road. Since at the moment, these fragments are targeted to linux-yocto, so there's no reason to avoid using the meta data that follows the tree, since we get re-use and the added
benefit that I won't break any virtualization use cases when working on the kernel :) Cheers, Bruce @@ -0,0 +1,4 @@ "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" |
|