Latest Entries »

Pacman trouble again, This time, glibc is the culprit.

glibc
[###########################################] 100%
warning: /etc/locale.gen installed as /etc/locale.gen.pacnew
error: extract: not overwriting dir with file lib
error: problem occurred while upgrading glibc
call to execv failed (Bestand of map bestaat niet)
error: command failed to execute correctly
error: could not commit transaction
error: failed to commit transaction (transaction aborted)
Errors occurred, no packages were upgraded.

Well….. this leaves me with a broken C library. When this happens, do not close any windows or program as without the C library in place, it’s very hard to open a new shell. So…. since I was running pacman to upgrade stuff, which failed, I did have a root shell available, which is essential to fix this problem.

So, the situation, no program would start. It would just say file not found, but what file? Appearently the dynamic linker was broken. Running a program with the dynamic linker manually worked. For example
/lib64/ld-linux-x86-64.so.2 /bin/ls

So, what we have to do… replace the required files manually. So, wehere to get them? We have to know pacman downloads its packages to /var/cache/pacman/pkg/. So, the file we are interested in is /var/cache/pacman/pkg/glibc-2.16.0-2-x86_64.pkg.tar

So, we are going to create a directory and extract the files. As we do have a broken dynamic linker, we need to prefix it manually


/lib64/ld-linux-x86-64.so.2 /bin/mkdir blaat
cd blaat
/lib64/ld-linux-x86-64.so.2 /usr/bin/xz -d /var/cache/pacman/pkg/glibc-2.16.0-2-x86_64.pkg.tar.xz
/lib64/ld-linux-x86-64.so.2 /bin/tar -xvf /var/cache/pacman/pkg/glibc-2.16.0-2-x86_64.pkg.tar

Now, replacing the files…

/lib64/ld-linux-x86-64.so.2 /bin/cp lib64/* /lib64

which leads to the next problem. We have mixed library versions now! We have replaced the /lib64/ld-linux-x86-64.so.2 file however the /usr/lib/libc.so.6 is still the old version. Now we cannot execure anything! Lucky me, busybox provides statically linked binaries, which can solve this problem. Remember when I said not to close any window. I still had a browser open, so I could download this. Then using busybox, prefixing the path to busybox so copy the content of usr/lib to /usr/lib, and finally lib to /lib, making the system work again.

This my friends, was another day on ArchLinux. Feels like being on safari, doesn’t it?

As I mentioned yesterday, due the spam prevention plugin (NotCapatcha), this site will place a PHP Session cookie on your machine. Due that fact I have installed the Cookie Control to notify you about this. This morning, when visiting my blog using Firefox, I noticed my Ghostery giving me a blocking alert. I was like WTF?!?!? So it appears this Cookie Control plugin uses someth8ng called geoPlugin.

I can select to only view the privacy notice to visitors from specific countries. That’s probably the reason this geoPlugin is used, as it is a plugin to provide geographic locations. However I do not use this feature, and therefore it is not necessary to be loaded. I will see if I can remove this from the Cookie Control. But that will have to be later… I got plans for this afternoon.

My apologies for serving this on my blog.

Some of you might know about the new EU cookie law. Basically, I have to ask for permission to store cookies on your computer. I am using WordPress on this blog and a couple of more website. The problem is, I am using NotCaptcha as an anti-spam measure. This plugin uses, just like my own Capatcha implementation I have used a couple of times on custom websites, uses a PHP Session to store the expected answer, server side. A PHP Session sets a cookie to identify the session.

Therefore I have installed the Cookie Control plugin, to display a notification message about the cookie usage.

The problem is, with this plugin enabled, a PHP session is started every time a page on my blog loads, which is, strictly speaking, in conflict with the new European regulations, as this cookie is being placed before you can click “I am happy with that” in the Cookie Control popup.

The right to read

A while ago, I was browsing through gopherspace, a forgotten corner of the internet. I stumbled across a text named “the right to read”. It can be found at gopher://zaphod.661.org/0/text/right-to-read.txt. If you don’t have a gopher capable client, you can use the floodgap gopher-to-http proxy. http://gopher.floodgap.com/gopher/gw?zaphod.661.org/0/text/right-to-read.txt.

When reading these articles about “Secure Boot” on onnews. http://www.osnews.com/story/26086/Fedora_secure_boot_and_an_insecure_future and http://www.osnews.com/story/26106/UEFI_Secure_Boot_and_Ubuntu and the comments to this article, it reminded me of this text, the right to read.

It was also possible to bypass the copyright monitors by installing a
modified system kernel. Dan would eventually find out about the free
kernels, even entire free operating systems, that had existed around the
turn of the century. But not only were they illegal, like debuggers–you
could not install one if you had one, without knowing your computer’s
root password. And neither the FBI nor Microsoft Support would tell you
that.

The Microsoft certificate required to boot a kernel in a “Secure Boot” environment, and the idea sketched in this story that one would require the “root-password” of the computer to install an alternative OS, those concepts are more-or-less the same. One would require “permission” from Microsoft to use a non-Microsoft kernel/OS.

This, in combination with other forms of DRM, not only restricted to just texts to read, but, in today’s perspective, the right to listen to music, to watch a movie, or any other digital content. Looking at recent development, such as the blocking of the Piratebay, or, less recent, things like data retention, which by the way was again in the news recently. The UK government wishes to extent this data retention to a much larger extent. I am sorry, the article about this is in Dutch. http://tweakers.net/nieuws/82577/britse-regering-wil-vergaande-bewaarplicht.html.

I am concerned about the consequences of these and other recent developments. I am concerned, in a near future, there will be no such thing as freedom. Our freedom taken away by governments and big companies, so called, to protect us…. us? or them?

I wish to point out copyright was initially put in place as a way to control what was printed. It was a form of censorship, and it seems our leaders have not forgotten this fact, and with the means of modern technology, they wish to enforce this upon the people once again.

Arrrrrr!!!!

Sorry for the delay. I have been planning to do this for a while, but here it is: A few instructions how to get up a PirateBay proxy. I realise there are tons of these online already. However, some of them are outdated or incomplete. This guide explains how to configure an ArchLinux based Apache installation to run a piratebay proxy.

This site explains some theory about reverse proxies, however, it is outdated, and the mod_xml2enc seems no longer required. I haven’t been able to find this anyways, so knowing you don’t have to look for that, is already the first step.

This article explains a configuration, but is outdated (uses the .org in stead of the .se domain for example) In the comments there is a link to a github project containing an up-to-date configuration. However, this configuration contains some debian-specific stuff, which has to be uncommented in order to run on an ArchLinux installation. It also contains

Install mod_proxy_html from AUR

yaourt -S mod_proxy_html

During my earlier attempt, I confused it with mod_proxy_http, which was the reason my it failed.

Use configuration from: https://github.com/4np/pirateBayProxy

  • Change the ServerAlias to the desired (sub)domain
  • Uncomment
    Include /etc/apache2/sites-available/rule-*
    as this is specific to a debian configuration.
  • Uncomment Auth stuff to enable public access.

As the configuration is proviced in a rather lenghty file, which some configuration options at top,
you can save it to a reparate file, and include it from httpd-vhosts.conf. Please note the path
is relative to /etc/httpd and not the directory of the current file, so, it would become something like

Include conf/extra/httpd-thepiratebay.conf

Please note: this configuration is not perfect. There are little issues, such as the image on the front page
not being displayed correctly.

Arrrrrr!!!!

P.S. I am way behind on everything, including this blog: I still have to explain how to set up a git repository using gitosis, perhaps write something about gcj, also I am still trying to figure out eiskaltdcpp from AUR, specifically how to tweak the PKGBUILD to build the CLI and DAEMON correctly, and perhaps write something about R. Butttt I have been busy busy busy lately. Sorry to keep you waiting.

As I wanted to configure a mailing list on my server. The most known mailing list is GNU Mailman.. This software is of course available in the ArchLinux repository, but since I run a self-compiled exim, due some specific compile-time options, and a dependency on a MTU from the repository, I’ve also compiled Mailman myself.

./configure –with-cgi-gid=http –with-python=/usr/bin/python2

The option –with-cgi-gid tells the Mailman to webserver is running in group “http”, as the default configuration expect it to run to “nobody”, and to keep the rest of my configuration intact, I have decided to add it to the Mailman compile-time configuration. The other option is the pyton-path, as ArchLinux uses python2 in stead of python as executable name.

Apart from that, I have followed the installation manual except for the SMTP callback part, as my exim things that rule is invalid.

Currently, this has been configured for one domain only. As the installation guide suggests to use multiple installations for multiple domains, I don’t see any problems if I wish to expand this to multiple domains. Just a few tweaks to the configuration files would make that work.

The mailing lists are running on multiple domains now. The only restriction with a single-installation is, that a list name can be used only once across all domains. I have not verified this, but looking at the configuration, it will only match on the list name, and ignore the domain part completely while receiving mail.

I am using the struction.de mail configuration, and these modifications to the exim config file don’t appear to cause any trouble.

When I tried to upgrade my system the other day I got the message

:: The following packages should be upgraded first :
pacman
:: Do you want to cancel the current operation
:: and upgrade these packages now? [Y/n]

This is nothing unusual per se, but what happened next was

resolving dependencies…
looking for inter-conflicts…
error: failed to prepare transaction (could not satisfy dependencies)
:: gcc: requires gcc-libs=4.7.0-3

The solution is

[root@hp ~]# pacman -S libtool gcc gcc-libs
:: The following packages should be upgraded first :
pacman
:: Do you want to cancel the current operation
:: and upgrade these packages now? [Y/n] n

So, you have to specify libtool, gcc and gcc-libs at one time, else you will
run into a cross dependency problem pacman seems to be unable to solve itselve.
When it asks to upgrade pacman first, you should say no.

After this, you can upgrade pacman, and the rest of your system without issues.

Zo mensen, na een lang paasweekend in Limbabwe geweest te zijn, ben ik weer thuis. Al ben in mijn tijd in Limburg druk bezig geweest met een opdracht voor Software Evolution. Daar is best een hoop tijd in gaan zitten, en om eerlijk te zijn, ben ik niet tevreden met het resultaat. En afgelopen zondag was ik nog naar de verjaardag van Randy.

Afin, nog een andere mededeling. op irc.blaatschaap.be heb ik nu een cgi:irc en een pjirc ingericht met inlogformulieren. Deze bieden ook de mogelijkheid deze met parameters in de link al in te vullen, zoals ik op de site van Eileen heb gedaan.

Verder, wat mijn server betreft. De huidige server is betaald tot en met oktober. Ik zit te overwegen na oktober over te stappen op een andere server. (wel bij dezelfde serverboer) Ik heb dit ding sinds 2009. Toen was het instapmodel voorzien van 1 GB RAM, terwijl het huidige instapmodel 2 GB RAM bevat. En aangezien ik een tijdje terug tegen de limieten van het RAM aan liep, en het aantal sites op mijn server nog steeds groeit, lijkt het me verstandig om over te stappen naar een model met meer RAM. Liever eerder, maar bij het verlengen had ik nou net een ruimere periode gekozen zodat ik niet constant mails krijg dat ik moet verlengen.

Afin, toen ik deze server (opnieuw) had ingericht, afgelopen november, had ik er geen rekening mee gehouden dat ik zoveel sites van anderen op mijn server zou gaan hosten, en daarmee bij de inrichting van de server hier ook geen rekening mee gehouden. Toen ging ik wel uit van meerdere sites/domeinen, maar enkel onder eigen beheer. Die situatie is ondertussen veranderd.

Ik heb van iemand een tip gekregen om ISPConfig voor de beheersdingen te gebruiken. Maar ik denk dat ik deze pas zal inzetten op de nieuwe server. Ten eerste, ik weet niet in hoeverre mijn huidige configuratie problemen oplevert, ten tweede, mijn huidige distro is niet ondersteund door ISPConfig. Ik geef ik toe liever bij ArchLinux te blijven dan terug te gaan naar Debian.

Afin, niet ondersteund betekent nog niet dat het niet zal werken he. Dit zal ook nog getest moeten worden. Vandaar dat ik ook een nieuwe server wens, zodat ik deze in kan richten zonder me zorgen te hoeven maken over downtime en zo voort. Bovendien zal ik mogelijk nog wat dingen aan ISPConfig gaan patchen, in zoverre hier nog geen patches voor online staan. Ik heb wel al als feature request PostgreSQL integratie zien staan. (Standaard kent hij alleen MySQL) En mogelijk ook nog wat voor andere diensten… maar dat is allemaal voor later.

Ik heb voor de rest van de week weer een volgeplande agenda staan… dus tot later mensen!

Mijn afgelopen posts zijn allemaal van technische aard geweest, en vandaar ook in het Engels, maar om toch even een ander geluid te laten horen, bij deze.

Gistermiddag ben ik naar Plein is fijn geweest. Het Clausplein, waar op 5 November 2011 Occupy Eindhoven begon, was de plaats waar gister enkele mensen die actief zijn geweest binnen de Eindhovense Occupy-beweging de fietsers opwachtten die op weg zijn naar het Griekse Athene. Het is de bedoeling dat deze fietsers daar op 12 Mei aankomen om deel te nemen aan een grote demonstratie aldaar. Deze fietsers waren afgelopen maandag vanuit Groningen vertrokken, en gisteren dus in Eindhoven geärriveerd. Als je meer over deze fietsers wil weten, dan verwijs ik je door naar hun website.

Na een tijdje werd het Clausplein toch was frisjes. Ja, gister heel de dag bewolkt. En vandaag zie ik een zonnetje schijnen. Maar ja, het is dan ook zondag vandaag, nietwaar? Afin, dus, nadat we op zoek naar de warmte een café hadden gevonden en daar enkele uren hadden doorgebracht, was uiteindelijk ook de laatste fietser aangekomen.

Maar goed… na een gezellige middag op het Clausplein en in de kroeg, was het ‘s avonds tijd voor wat anders. Lotte vertelde me dat die avond de mantra-band Namaste MantraMusic een CD-presentatie voor hun début album “Life is a Secret” hield. Dus na wat gegeten te hebben in de Hoek, zetten we koers richting de Aquamarijn.

Nu kende in de Aquamarijn wel van naam. Ik zie regelmatig aankondigingen van hun evenementen ophangen op de prikborden op mijn universiteit. Ik denk dan wel van leuk, daar moet ik heen. Ik maak er zelfs een foto van, maar als puntje bij paaltje komt, ik was er nog nooit geweest.

Afin…. het was gister een leuke dag, en vandaag… ben ik bezig geweest met het überhaupt werkend krijgen van de software die ik voor een assignment van het vak Software Evolution moet gebruiken. Nu dat geheel werkt, zie mijn vorige post… is het tijd om toch echt eens iets te gaan doen… maar om eerlijk te zijn… heb ik mijn neus er een beetje van vol… dus denk ik dat ik nu een stuk tekst ga lezen voor een filosofievak, en na het eten verder te kijken.

I am required to use CCFinder for an assignment at my university.

As, on the download page, http://www.ccfinder.net/ccfinderxos.html there is
only a binary avialble for Windows, I must compile from source.

Please note: http://www.ccfinder.net/doc/10.2/en/install-ubuntui386.html
appears to indicate there used to be a binary for Linux available.)

There is a source package for Win32, and an additional download for
Ubuntu 9.10 i386. However, my environment is ArchLinux x86_64 bit.
From the blog http://nicolas-bettenburg.com/?p=290 it appears the
karmic.mk files are to be renamed to Makefile in order to compile.
The dependency libraries, the boost library is to be installed.
However, just installing the dependencies did not make it compile.

The first problem to encounter was

In file included from ../common/bitvector.cpp:2:0:
../common/bitvector.h:8:2: fout: ‘size_t’ does not name a type

and some more error messages related to size_t. This is caused
by the missing include of cstddef, so adding

#include <cstddef>

fixed this problem.

The next problem to run into:

g++ -licule -licutu -licuio -licuuc -liculx -licudata -licui18n -lboost_thread-mt -o ../ubuntu32/ccfx base64encoder.o bitvector.o ccfx.o ccfxcommon.o prettyprintermain.o rawclonepairdata.o unportable.o utf8support.o ccfxconstants.o
/usr/bin/ld: cannot find -lboost_thread-mt

Solution: Edit the Makefile, Changed to LIBS=
Replace -lboost-thread-my by -lboost-thread

 

As for the modules, I will not be describing every problem, only the solutions.


Compiling the picosel module

Copy karmic.mv to Makefile
no other problems encountered


Compiling pyeasytorq module

Copy karmic.mv to Makefile
Change
-I/usr/include/python2.6/
to
-I/usr/include/python2.7/

Add -fPIC to OPTS=
Change -lboost_thread-mt to -lboost_thread on the LIBS= line


Compiling the picosellib module

Note there is a type on the guide pointed to above,
the correct spelling is with double l.

Copy markic.mv to Makefile
Edit the Makefile:

Changes to OPTS=
Replace
-I/usr/lib/jvm/java-6-openjdk/include
by
-I/usr/lib/jvm/java-7-openjdk/include/ -I/usr/lib/jvm/java-7-openjdk/include/linux
Add -fPIC

Changed to LIBS=
Replace -lboost-thread-my by -lboost-thread


Compiling the CCFinderXLib module

Copy markic.mv to Makefile
Edit the Makefile:
Changes to OPTS=
Replace
-I/usr/lib/jvm/java-6-openjdk/include
by
-I/usr/lib/jvm/java-7-openjdk/include/ -I/usr/lib/jvm/java-7-openjdk/include/linux
Add -fPIC

Changed to LIBS=
Replace -lboost-thread-my by -lboost-thread



Apart from “personality problems”, this appeared to have produced a working binary

[andre@hp ubuntu32]$ ./ccfx
CCFinderX ver. 10.2.7.4 for Ubuntu i386 (C) 2009-2010 AIST
[andre@hp ubuntu32]$ file ccfx
ccfx: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x29bf88343a59e7c0f56c83115d704d139b066ff9, not stripped

However, the binary is not able to work as it should. The error message it produces is:

sh: /usr/bin/python: Bestand of map bestaat niet

This is due the fact, the path to the pyton 2 interpreter is hardcoded into the
program, in ccfx.cpp line 2567. As ArchLinux already switched to python 3, the
correct path to the python 2 interpreter should be /usr/bin/python2



In my opinion, it’s a bad habit to hard-code paths into your program that is
meant for public release. Open source projects usually distribute their
source code with a configure script included, that detects the correct
paths of includes et cetera. And for good reason, as for editing all
these Makefiles manually is quite inconvenient.

Please note: the paths and versions mentioned in this post are specific to my ArchLinux installation, and another distribution might ship other versions of python and java.

Another note: The binaries obtained by this procedure pass the test described in Nicolas Bettenburg’s blog. However, replacing the boost_thread-mt by boost_thread might introduce multithreading related issues. However, a non-multithreading version of a threading library doesn’t make much sense, therefore I don’t expect this to be an issue.