Notice: register_sidebar was called incorrectly. No id was set in the arguments array for the "Sidebar 1" sidebar. Defaulting to "sidebar-1". Manually set the id to "sidebar-1" to silence this notice and keep existing sidebar content. Please see Debugging in WordPress for more information. (This message was added in version 4.2.0.) in /usr/share/wordpress/wp-includes/functions.php on line 4139 Tech Notes » 2009 » August

Vixy.Net-0.1 (SVN r3) for CentOS

RPM No Comments »

Did a quick automake/autoconf on vixynet, and fixed a segfault. Not sure how well it works, but it builds and runs without failing on a segmentation fault, so I’ve added some value. And a trivial man page for kicks. Maybe it needs a self-test suite 🙂

If you want to play further, here it is:

You can grab the patch using rpm2cpio vixynet-0.1-1.src.rpm|cpio -idumB

Freepops-0.2.9 on CentOS-5.3

RPM No Comments »

I got annoyed by the IMs from Yahoo saying “you have mail” — and it’s junk. Nearly-junk. So I turned off the new-mail warning on my Openfire gateway, found that Freepops was broken and not ported recently, and did a brain-dead port. There were changes needed from the supplied RPM (including a buildsystem that tries hard to fix 1/3 of the portability issues that autotools nails like a carpenter).

The RPM Specfile is still a bit trashed, and you can see I nullified the epoch (never should have been invented)

Installed, configured, and POPping mail from gmail already.

Gmail accepts only a few ports for POP (109, 110, 143, 220, 993, 995, 1110, 2221) so I changed my config from the default port 2000 to 2221:
/etc/sysconfig/freepops

#BIND_IP=127.0.0.1
BIND_PORT=2221
LP_OPTIONS="-v -d -l /var/log/freepopsd"

Assuming my own server with freepops installed is y.example.com, and my username on yahoo is [nohide] chickenandporn@yahoo.com[/nohide], my config in Gmail looks like:

gmail POP config with FreePOPs

gmail POP config with FreePOPs

WordPress-mu-2.8.4a-9

RPM 1 Comment »

wordpress-mu-logoA quick update to WordPress-mu-2.8.4a-8 due to a recurrence of a bug I locally fixed but should have permanently fixed: “namespace” is now a reserved word, but used in magpie-rss updated into wp-includes by feedwordpress-2009.0707.

Changes: version bumps:

  • bump wordpress-mu to 2.8.4a
  • bump wp-bar wp-bar from 0.5.7 to 0.5.8
  • fixed Magpie-RSS due to “namespace” suddenly being a reserved word in PHP (resulting in a blank page displayed)

Changes: added items: (none)

  • added google analytics
  • added a favicon.ico default for the themes that don’t provide (reduces errorlog spam)

The build is available here:

wordpress-mu-2.8.4a-9

RPM No Comments »

WordPress is an online publishing / weblog package that makes it very easy,
almost trivial, to get information out to people on the web. WordPress-mu
is the multi-user equivalent of WordPress. See also Lyceum.

built with –define “virtdomain chickenandporn.com” –define “serveradmin blog-admin@chickenandporn.com”

I’ve included the “Green” theme even though it seems to have problems with pre-generated text images. Maybe you can suggest a fix (with content)

Don't Use autogen.sh

Uncategorized No Comments »

When I found a basic version of autogen.sh, I used it in all of the projects I autotooled, and anything I created new. I had to make little updates and such for some platforms — for example, different prefixes. I became a maintainer of a built subtool, which is perhaps as effective towards building things as a meta-argument is at resolving the initial discussion (ie not).

Luckily, autoreconf works now. Considerably better, more portable, and I don’t have to maintain it.

40+ requests daily still come in for my autogen.sh script — even though my site lost a disk and was offline for a month. It wasn’t so complex.

For a new project, or a bare SVN or CVS checkout (or the GIT equiv):

autoreconf -vfi or autoreconf --install

Seriously. Try it. When the autotools get updated, autoreconf does as well, so you don’t have to. Plus, if your version is new than another developer, you don’t have to make a portable autogen.sh; rather in the vein of qmake and Imake, the platform would already have the right versions to work with the platform rather than the sourcebase figuring it out.

In this case, I like the platform knowing what works best with the dev tools you already had to install on the platform (it’s a developer-side thing, not a get/build/user side)

So: don’t use autogen.sh. I’ve revoked my butt-kicking-great version for this reason.

Emerge and Make the World!

Uncategorized 2 Comments »

Emerge and Make the World! It sounds a bit like Genesis under duress! These are commands that marshal a heap of resources and generate a huge product. They’re not for the impatient.

A bit of a tangent, I had an order from Dell for 600 servers — it was a replication gig, so they all had to be the same. the first 350 or so were, but Dell changed suppliers for some of the components mid-stream, so we had 9.1GB drives mixed with 9.095GB drives from a different manufacturer, and a swapped out video driver. Where we needed “exact”, we got “same difference, right?”, and the replication had to be tailored for four platforms rather than one. Replication’s great for exactly identical supportable servers, but sometimes lacks flexibility.

How does that affect our Genesis? It means that the system is installed from pre-built, known-tested (binaries, testing the toolchain as well), pre-staged (faster download) content. It’s entirely repeatable, and easy to maintain and support if you’re willing to work on it longer than the 47 minutes it takes to replace the server (by LAN; faster using DVD).

Emerge is a tool used by Gentoo installers to interact with the Portage system to download, build, and install sourcecode for a new install. It downloads sourcecode, builds with whatever toolchain it has, and installs. It runs with elevated privilege, which is normal if we weren’t downloading foreign content. Installing 600 means 600 downloads of a few thousand software projects, but can adapt to mid-stream changes in HW. mid-stream changes in software versions means that you don’t get what the other guy got.

By contrast, RPM systems let you install the exact same binaries as the guy beside you, you can cache the pre-built binary payload, the dependency-table is known before the install begins, you can marshal requirements and make the change is a relatively short time.

It would be silly to install a second system of dependency-mapping that competes with the OS. Seriously, when you go to London, you drive on the left; when you’re on RedHat, track your dependencies in RPM — if your wheel is better, don’t reinvent, augment the one that’s there. Share your improvement. That’s the Stallman way, and the GPL, isn’t it?

“RPM” is like the prefabricated construction of the world.

“make World” was how X11 was built — Imake && make World. Imake was similar to qmake in that it needed the platform defined first in the tool before the portable Imakefiles could be converted to makefiles to run the build. Opensource turned to automake, autconf, libtool for unknown platforms for the chance to “figure out” the unknown platform before build starts, but the Embedded space and cross-compiling seems to favour Qt (qmake) for some embedded devices, BuildTool and OpenEmbedded for others.

“make World” took a long time.

SSO installs on system 5 rel 5 were like “custom” installs on system 3.2 rel 4.2 except that there was a huge design around concentric containers: Packages, Parcels, Containers, and Products. It added logical aggregates of packages as well as namespaces to the packaging world. It’s gone, we sued them in a situation similar to a GPL violation. Unfortunately, the technologies and innovation are lost, since we don’t read the court cases nor the ~23 years of development before that.

Ian Murdock gave his Linux variant a detailed specification for package quality. Debian Linux also gave us “apt”, which lets us one-command-install a server from binary packages, or get the dependencies of a source build to develop/extend a specific package. Reducing user-input reduces chances for human error.

Debian is like adding strict contracts for quality-appraisal to Prefabrication.

CPAN is a resource that can be harvested for yesterday’s latest perl: go to the ‘net, download the latest, build and install, running last night’s updated build scripts with permissions to trash a system or install malicious software. No problem, just update the source package tomorrow. No one will check… for datacenters, trusted systems, a known bill-of-materials (BOM) is needed before agreeing to do the work. I haven’t seen many datacenter change-requests go through with “I don’t know what it changes” and “I don’t know how much software it needs or how long it takes” as entries. CPAN is great for people who can rebuild a server if necessary.

CPAN is like when you need the latest tools, building methods, plumbers, framers, roofers, foundation work, landscapers, and you’ll just ship them raw materials and have it assembled onsite. It takes longer, and sometimes, conflicts break out at the soup-truck, but eventually, you’ll get the latest fusion of last week’s Tokyo and Paris fashion.

Dependencies change; installing 175 packages that change often gives a high probability of resulting in a new combination of all the versions of things. Tracking versions as part of dependencies is logistically easier with the Package/Component/Parcel system of SSOs and reduces the chance of collision (how many “httpd” are there? Cern::httpd and Apache::httpd differ). A BOM is something your system can check against currently-installed packages, and the user can also check. Binaries are already built, and others have used them before you get them, so there’s less risk of breakage if thousands have already installed it since it was released a week before.

Binaries built by others have less variance, therefore are not the most efficient for your precise hardware, risking 2-3% efficiency for a smaller set of combinations.

This is why I prefer RPM, CPM, SSO, DEB, even “custom” — a confirmable predictable BOM of pre-built components — over build-in-place systems. There a higher degree of deliberate behavior, a lower chance through an innocent patch-bump to break a critical system through indirectly escalating degree of change. Build-in-place takes a long time, and done twice will get different results, but usually builds a functional system and allows a basement hack to go forward if you have the time to wait for your environment to be built.

I’m sure you’ve heard these same arguments before.

Doxygen-1.6.0 for CentOS

RPM No Comments »

I just cut a copy of mscgen-0.17 for CentOS, but wanted to use it in Doxygen. My Doxygen is circa-stone-age, so I updated it to offer the “@msc” markup. There was a slight change needed to the build environment, but on the whole, it built, and should offer the “msc” capability as inline markups in code.

Update 2009-08-20 21:09Z: My patch for Doxygen was accepted 🙂

This is an SVN build, so may differ slightly from the canonical v1.6.0 release.

Changes:

  • Correction to specfile and root-level Makefile to match pathnames

The build is available here:

My patch looks like this

mscgen-0.17 for CentOS

RPM 1 Comment »

For some diagrams, I was so happy to find mscgen, a Message Sequence Chart Generator tool that Michael McTernan maintains on his site. It’s designed to act similar to Graphviz, and apparently can be slotted into Doxygen.

examples/simple_prog_desc

examples/simple_prog_desc

Changes:

  • back out the required autoconf from 2.63 to 2.59 (created $(docdir) problems)
  • version info is in configure.ac only (specfile imports)
  • specfile in root directory, allowing smooth “rpmbuild -ta mscgen-0.17.tar.gz”
  • add a AC_SEARCH_LIBS to ensure -lgd is in the link line

My deliverable is a bit unclean in that I didn’t bump the release from #1, and left a tainted build source rather than pristine+patch. My bad.

The build is available here:

WordPress-mu-2.8.4a-8

RPM 1 Comment »

wordpress-mu-logoA minor upgrade to WordPress-mu-2.8.2-7, I have repackaged wordpress-mu with the common modules I use.

Changes: version bumps:

Changes: added items: (none)

The build is available here:

tzdata-2009K-1

RPM No Comments »

It was noted in InfoSecurity that Oracle Updates Enterprise Linux, modifying tzdata in response to RedHat Errata RHEA-2009-1214, so I packed it over to CentOS. No big thing, it’s a brainless repack, here it is:

  1. tzdata-2009k-1.el5.noarch.rpm (833k be76118b5e1b532e8c520999ec57ce32)
  2. tzdata-2009k-1.el5.src.rpm (388k 4346044105d31ff9f5c6030180e031f5)

The original work is by Petr Machata:

  • Upstream 2009j
    • DST switch for Bangladesh will occur an hour earlier than was thought (we can drop Bangladesh patch).
  • Upstream 2009k
    • Mauritius will not continue to observe DST the coming summer
    • Arbitrarily end DST at the end of 2009 so that a POSIX-style time zone string can appear in the Dhaka binary file
  • Egypt starts winter time on August 21.
  • Resolves: #517009
WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in