Search Results: "ana"

1 April 2007

Martin F. Krafft: Consequences

I should have known that lack of control over the swaks email "client" would not be tolerated. After a long train journey and exhausting few days, my bleary-eyed self forgot that the SMTP protocol includes the semi-useless HELO command Anyway, as of today, I am thus no longer a Debian developer. I would never question the authority of the almighty Debian account manager, so I'll part without the usual hassle and will spend the next 41 days learning UUCP instead. I expect to be assassinated by the hitmen of the Transnational Republic shortly afterwards, if the Debian security team does not get to me first. Ah, but it's been good! So long, and thanks for all the squish! NP: Stratovarius / Infinite PS: Observe the French spacing!

29 March 2007

Matt Brown: My DPL Vote


- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
e0acebd2-71f1-4df8-ae4d-50355ad7aa81
[ 6 ] Choice 1: Wouter Verhelst
[ 6 ] Choice 2: Aigars Mahinovs
[ 3 ] Choice 3: Gustavo Franco
[ 3 ] Choice 4: Sam Hocevar
[ 2 ] Choice 5: Steve McIntyre
[ 4 ] Choice 6: Rapha l Hertzog
[ 1 ] Choice 7: Anthony Towns
[ 6 ] Choice 8: Simon Richter
[ 5 ] Choice 9: None Of The Above
- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
My rationale follows, if you care... I've been pondering how to vote for well over a week, and I'm still not entirely happy that the ballot I've chosen accurately expresses my wishes, but it's the best approximation of them that I can come up with at this time. My dilemma has two parts
  1. I don’t think the current office of the DPL is effective, due to how it is viewed by a significant proportion of the project (if not an outright majority), so regardless of how much I might like the goals and ideas proposed by an individual candidate I’m very pessimistic that being electing as DPL will actually bring those things to pass.
  2. Much of what will make a good DPL is about how a specific set of ideas and goals will be put into action, and how interpersonal relationships between the DPL and various parties will be managed. This comes down to the personal character, experience and leadership skills of the candidate While I can form some level of an opinion about each of these aspects from mailing list archives, and IRC, etc. I don’t really feel comfortable making judgements in these areas until I’ve actually met them in real life. Too many people come across badly in the (severely limited) online communication methods we use, and are actually very decent reasonable people in real life. Out of the candidates, AJ is the only one that I’ve ever actually met and talked to.
Given these problems, my first step in choosing how to vote was to eliminate those candidates who I will rank below NOTA based on their published platforms. I have nothing personal against any of these three people, but given the other possible candidates I think that we’d be better off having another election than just electing one of these three for the sake of it. That leaves five remaining candidates: *yawn* It’s made me tired writing all of that out. Maybe sometime soon I should explain in more detail exactly what parts of Debian’s governance model I think need changing or maybe I need to wait until I’ve achieved a few more technical things and gained enough respect before anyone will listen to my opinions…

Clint Adams: Stories often told

Like I was telling Barbie, Francis was right. The Sadies were fucking awesome that night.

Simon Richter: Ideas are coming, things are happening

A lot of interesting stuff has been happening lately. Maybe my purpose in life really is to bring people into contact. If I was a character in the anime "Shakugan no Shana", my title would be the Accelerator of Coincidence. Maybe it is time for a meme that is not based on a purity test: what new anime character would you be?

Enrico Zini: remoteform-weird-error

TurboGears RemoteForm tip In case your RemoteForm misteriously behaves like a normal HTTP form, refreshing the page on submit, and the only hint that there's something wrong is this bit in the Iceweasel's error console:
Errore: uncaught exception: [Exception... "Component returned failure
code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open]"
nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame ::
javascript: eval(__firebugTemp__); :: anonymous :: line 1"  data: no]
the problem can just be a missing action= attribute to the form. I found out after:
  1. reading the TurboGears remoteform wiki: "For some reason, the RemoteForm is acting like a regular html form, serving up a new page instead of performing the replacements we're looking for. I'll update this page as soon as I figure out why this is happening."
  2. finding this page on Google and meditating for a while while staring at it. I don't speak German, but often enough I manage to solve problems after meditating over Google results in all sorts of languages unknown or unreadable to me. I will call this practice Webomancy.

Russell Coker: questions regarding SE Linux

I just received a question about SE Linux via email. As I don't want to post private messages containing material that's globally useful I'll answer through my blog:

> other than strict and targeted policies......other policies like
> RBAC, MCS, Type Enforcement are also there....how are these policies
> implemented

The two main policies are the strict policy and the targeted policy. The strict policy is the earliest and was originally known as the sample policy (but was given the name "strict" after targeted was developed).

The strict policy aims to give minimal privileges to all daemons. The targeted policy aims to restrict the programs that are most vulnerable (network facing daemons) and not restrict other programs (for ease of use). There is currently work in progress on combining those policies so the person who compiles the policy can determine which features of strict they desire.

RBAC means Role Based Access Control. The strict policy assigns users to roles and the role then limits the set of domains that can be entered. For example the user_r role does not permit the sysadm_t domain so a user who is only permitted to enter the user_r role can not perform sys-admin tasks. Like many terms RBAC is used in different manners, some people consider that it means direct control by role (EG role user_r can not write to /dev/hda), while SE Linux has a more indirect use of roles (role user_r can not run programs in domain sysadm_t or any other domain that allows writing to type fixed_disk_device_t - the type for /dev/hda). You may consider that the strict policy supports RBAC depending on which definition of the term you use.

Generally the targeted policy is not considered to support RBAC, although if you consider a role to merely be a container for a set of accesses that are permitted then a SE Linux domain could be considered a in the RBAC sense. I don't think of targeted policy as being a RBAC implementation because all user sessions run in the domain unconfined_t which has no restriction. I think that to be considered RBAC a system must confine user logins.

Type enforcement is the primary access control mechanism for SE Linux. Every object that a process may access (including other processes) has a type assigned to it. The type of a process is known as a domain. The system has a policy database which for every combination of domain, type, and object class (which is one of dir, file, blk_file, etc - all the different types of object that a process may access) specifies whether the action is permitted or denied (default deny) and whether it is audited (default is to audit all denied operations and not audit permitted operations).

MCS is a confidentiality protection mechanism where each file has a set of categories assigned to it. The set may be empty, may contain all 1024 categories, or any sub-set. Each process has a set of categories that determines which files it may access. File access is granted if Unix permissions allow it, if the domain-type model allows it, and if MCS allows it (on an MCS system). I have just had an article on MCS published in Linux Journal.

MCS is an optional feature for people compiling Linux from source or for distribution vendors. For Red Hat Enterprise Linux, Fedora, and Debian the decision was made to include it, so the strict and targeted policies for those distributions include MCS.

There is another policy known as MLS. This is a policy build that comprises the strict policy plus Multi-Level Security. Multi-Level Security aims to give the highest confidentiality protection and comply with the LSPP (Labeled Security Protection Profile - roughly comparable to B1) Common Criteria certification. It would be possible to build a targeted policy with MLS but that wouldn't make sense - why have the highest protection of confidentiality with anything less than the highest protection of integrity?

As for how the policies are implemented, I'm not about to write a tutorial on policy writing for a blog post, I'm sure that someone will post a link to a Tresys or Fedora web page in the comments. ;)

> there r some packages of linux in which some changes has been made
> to support linux......for eg:- coreutils, findutils

That is correct. Every program that launches a process on behalf of a user at a different privilege user (EG /bin/login, sshd and crond) and every program that creates files for processes running in different domains (EG logrotate creating new log files for multiple daemons) needs to be modified to support SE Linux. Also ls and ps were modified to show SE Linux contexts as well as the obvious programs in coreutils.

> 'Z' is the new thing that have been added to most of the
> utilities......wherever I search I get the changes made only in few
> utilities like ps, mv, cp, ls
>
> Can u help me by giving all the changes made in each of the utilities.....

Unfortunately I can't. This has been identified as an issue and there is currently work in progress to determine the best way of managing this.

Miriam Ruiz: Free Software and Composer s Copyright Societies

We’re trying hard to include Frets on Fire in Debian. FoF is a really great game where you have to try to play a simulated guitar through your computer keyboard. The code is already GPL, and the developers are really nice and collaborative. The game consists of some code in python, some game data, graphics and so, and some songs, including a tutorial. The problem comes when we try to get the songs into Debian too. It seems that, for being able for someone to be something in the musical scene in Finland, they must sign an abusive contract with Teosto (Finish Composer’s Copyright Society, which AFAIK is a private organization), giving them exclusive rights on whatever songs you make, so you won’t be able to license any song at all without using a license that has been approved by them. More discussion here. This is wierd. Composer’s Copyright Societies should be there to help composers and artists, not to enslave them. For what I heard it’s not the only country in which that happens. Especially in Europe, the EU is extremelly protectionist to those matters, whether they do right or wrong, or whether they even go against the author’s will. Gosh, it’s the authors who should have the right to choose, not the mafias choose for them. In Spain I think it’s more or less the same, the SGAE seems to have the same attitude towards artists than Teosto. When will they realize they’re being anachronistic and unfair?

James Morrison: Speeding up the internet

I had some conversation this weekend about what makes the internet slow. The following snippet from my /etc/hosts file shows how I've managed to keep the internet fast and avoid some rather annoying blinking websites:

127.0.0.1 doubleclick.net
127.0.0.1 ad.doubleclick.net
127.0.0.1 ad.ca.doubleclick.net
127.0.0.1 adremote.timeinc.net
127.0.0.1 adsremote.scripps.net
127.0.0.1 a.as-us.falkag.net
127.0.0.1 interclick.com
127.0.0.1 a1.interclick.com
127.0.0.1 media.fastclick.net
127.0.0.1 network.realmedia.com

28 March 2007

Antti-Juhani Kaijanaho: Charlie Stross: Why the commercial ebook market is broken

Charlie Stross: Why the commercial ebook market is broken
In the pre-internet dark age, there was a subculture of folks who would get their hands on books and pass them around and encourage people to read them for free, rather than buying their own copies. Much like today’s ebook pirates, in terms of the what they did (with one or two minor differences). There was a closely-related subculture who would actually sell copies of books without paying the authors a penny in royalties, too. We have a technical term for such people: we call them “librarians” and “second-hand bookstore owners”.

Zak B. Elep: What do you want most in an outgoing mailer?

[Note: I wrote this more than three weeks ago, but due to me being lazy again (yeah right) I’m just publishing this now. Well, here goes:] Due to a project working on (in Perl,) I’m asking the great Lazyweb for their great insight into the problem of sending outgoing mails. It all started when I was trying to set up my own mail system on my laptop perlis. After months of doing most of my mails under GMail and finding it impressive, but not quite adequate for my needs, I decided to go back to my old desktop workflow of downloading all my mails using ESR’s fetchmail over IMAP, and using my preferred MUA (Gnus, in this case ;-) to write my replies/posts/spam and send them using an MTA. However, since the time I’ve been checking my mails on revan, the amount of mail that I have been receiving has gone up to less than manageable proportions for my old system, so I had to revise my way of getting my email fix. Ultimately, I went on to use John Goerzen’s offlineimap to synchronize my IMAP Maildirs locally and do my mail stuff from there. No problem at the receiving front. On the sending of emails, I ran to a slight problem. I used to use an MTA to relay my mails to a smarthost for delivery, but since things have changed a bit (new ISP that blocks port 25, for one ;) I have to find some other means. Although I could probably configure my MTA to use (and authenticate to) a smarthost, I found that approach to be too heavy for comfort (even when using a special-purpose MTA such as masqmail.) Furthermore, I’d like to have more control on how I send my mails (like which mails using one of my email addresses should go to a particular smarthost.) So, here is my attempt to solve my problem: a small, user-configurable mail submission agent. It small because it is written in Perl, and makes the most out of it (being a Perl user means you gotta love CPAN ;) It’s user-configurable, involving a small INI-style file in the user’s home directory (I would prefer, however, to do away with tinkering with config-files altogether and do all configuration via some friendly interface.) It’s not much, but it works. And it’s working for the past three weeks or so now. I call it kartero because its the Spanish-Filipino word for postman (and yes, that’s exactly what my program does. It’s not much, but you can pick it up and try it yourself. Complaints; violent reactions: you know where to send them.

Kai Hendry: Impressions of a Macbook

Macbook kills my Internet connection Btw this is my Dad’s Macbook. I’m still married to Debian SID and a Thinkpad.

27 March 2007

Mark Brown: NIS and Network Manager in Debian etch

The version of NIS to be shipped with Debian 4.0 has support for Network Manager in ypbind, the program responsible for ensuring that NIS client systems can access a NIS server. Unfortunately Network Manager is targeted at client systems with dynamically assigned addresses and does not support some common network configurations, particularly static ones. When Network Manager is run on a computer with such a configuration it presents misleading information to NIS, causing NIS to think that it is not connected to a network and fail to connect to a server. In order to avoid these problems the version of NIS in etch disables Network Manager support by default but the configuration file with this change is not updated automatically on upgrade. To disable Network Manager support by hand edit the configuration file /etc/default/nis to add -no-dbus to YPBINDARGS: # Additional options to be given to ypbind when it is started.
YPBINDARGS=-no-dbus
Uninstalling the network-manager package if it is not in use will also resolve the problem. This also applies to the packages currently scheduled for release in the next version of Ubuntu (codenamed Feisty).

Martin-Éric Racine: I'm Thin, therefore I Can

Life sometimes goes in a funny direction, like a full circle d j vu: 20 years ago, I was studying Technology of Computerized Systems (a combination of electronics and programming). Now, 20 years later, I'm starting a dream job as the Business Development Manager of Artec Group and their core business is you guessed it exactly that. The really cool thing about Artec, from a Free Software advocate's point of view, is that they contribute firmware and drivers for their products to LinuxBIOS and the Linux kernel. At this point, my initial tasks will focus on marketing and selling Artec's flagship OEM product, the ThinCan. What is the ThinCan? Actually, you're already familiar with one iteration of the product: the Linutop is a branded ThinCan, delivered with a custom hardware configuration, plus custom casing artwork designed by Fr d ric Baille of Linutop SARL and loaded with Fred's favorite Xubuntu configuration. In the Linutop's case, their business model is to fill the market niche for a simple Internet surfing platform that fits 80% of average people's daily computing needs, so the hardware configuration they ordered reflects that. Still, as several readers of this blog noticed, the "Linutop" could make a fantastic thin client and, sure enough, that was the main purpose behind the ThinCan's original design; it sells well in the Fortune-500 market as an RDP client running under Windows CE. However, until recently, there simply wasn't much demand for a contemporary X11 terminal solution based on the ThinCan. That is, until LTSP took off, thanks to the contributions of Edubuntu and similar educational Linux distributions. Sure enough, someone spotted the opportunity and contacted Artec to order a branded ThinCan iteration with Etherboot and PXE support, which they call the Linuterm. By the way, for those who need a really cheap OEM thin client, I've got a great spring clearance offer for you:
Artec has about 500 pieces left of their older DBE60 ThinCan model, based on the AMD Geode SC2200, and we're selling them at 100 euro / piece, plus VAT and shipping.
The DBE60 is configured with three USB 1.1 ports, one parallel printer port, one 100baseT Ethernet port, one VGA port (up to 1024x768 @ 16bpp 60-85Hz or 1280x1024 @ 8bpp 60-75Hz) and one 1/8" stereo audio output jack. Its BIOS provides Etherboot support and its motherboard is populated with 64MB of RAM and 32MB of Stratoflash. It comes delivered with a European AC adapter. The Geode SC2200 is fully supported by the Linux kernel with the sole exception of a missing ALSA snd-scx200, but this could easily be ported from AMD's deprecated OSS driver and X.org support is provided by the "nsc" driver.
Minimum order size is 10 pieces. Contact me via my full name (unaccented, with one hyphen and one dot) at artecgroup.com quoting this special offer.
PS: someone was asking if that DBE60 special is also available in the aforementioned Fortune-500 configuration. It indeed is: add 16 euro / piece for the Windows CE 4.1 license with an RDP client.

Luk Claes: Release Notes

While looking at the bugs against the release-notes package I saw still some open bugs for sarge?! I think they should be either closed or marked properly, though for now I just left them untouched. Because I don't have write access (yet?) to the CVS repository, I prepared some patches for some issues. As I know I'm quite dense in explanations, I hope some people can improve them so they can be safely included in the Release Notes :-) I spotted quite some bugs regarding the sarge to etch upgrade path and some bugs which are already acted on, but only need a last review AFAICS. As both these categories are already worked on by other people I'm happy to skip them for now ;-) I hope my patches fasten the work on the Release Notes as the release is very near...

Peter Makholm: Debian Project Leader election

The major problem — one of the major problems, for there are several — one of the many major problems with governing people is that of who you get to do it; or rather of who manages to get people to let them do it to them. To summarize:- It is a well known and much lamented fact that those people who most want to rule people are, ipso facto, those least suited to do it.
It’s election time, as Debian Developer I get to chose who is going to be the Debian Project Leader for the next year - but I don’t really care. If we can’t get a naturally strong leader, then I don’t think it matters at all. A naturally strong leader is one who actually leads and do so by strong consensus instead of just wanting to rule. For a naturally strong leader the election is a mere formality and he will run virtually unopposed. So my vote is:
- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
e0acebd2-71f1-4df8-ae4d-50355ad7aa81
[ 1 ] Choice 1: Wouter Verhelst
[ 1 ] Choice 2: Aigars Mahinovs
[ 1 ] Choice 3: Gustavo Franco
[ 1 ] Choice 4: Sam Hocevar
[ 1 ] Choice 5: Steve McIntyre
[ 1 ] Choice 6: Rapha l Hertzog
[ 1 ] Choice 7: Anthony Towns
[ 1 ] Choice 8: Simon Richter
[ 1 ] Choice 9: None Of The Above
- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
What about “None of the Above” option? Isn’t that excatly what I want? No, not really. I don’t think we would be better of by not electing one of the candidates than we would by electing one of them. So “None of the Above” should be ranked equally with the others. Why vote at all? I want to make a point, as feeble as it is, which is clearly different from just being lazy. I want to show by active participation that I don’t think the election matters. Effectively a whatever option. Now go grab some beer…

Adam Rosi-Kessel: Missing Trackpoint Keyboard

Dear Lazyweb: Is it really impossible to find a full-sized USB keyboard with a built-in trackpoint mouse device but no touchpad? The logical manufacturer would be IBM/Lenovo; however, the current Lenovo keyboards either provide no built-in pointing device or have both a trackpoint and a touchpad (”UltraNav”). I’ve checked in all the regular places: eBay, Pricewatch, Amazon, Froogle, craigslist, etc., and no one has a keyboard with just a trackpoint. I’m sure I’m not the only one with this simple request. This eBay auction is the closest I could find. That keyboard is “French Canadian,” which might not matter, but it is also a “SpaceSaver” model with no numeric keypad and is generally more compressed than I need. On a related note, it is next to impossible to find a Touchstream Keyboard anymore, another brand I was interested in. I often run into this sort of problem. It undermines my faith in the web as approximating a perfect marketplace.

Holger Levsen: my first act as a DD

I just voted :) Dunno yet if that worked, but if not, I'll manage... as I'm pretty tired I decided to vote one plattform, not person, the same as NOTA (as I really think those ideas won't do Debian any good, quite the contrary). Maybe I'll change that in a few days, dunno yet.

Due to being quite busy with work the last days or rather weeks, this was my first act as a DD, which I couldn't do before. I'm still using my guest-alioth account and due to the freeze (yay!) no uploads yet.

Quite to the contrary (not really, but I find it very ironic) I've build my first rpm yesterday :-) I ported fai to fedora... more on this soon.

Since a week ago debian-community.org runs on its own server, currently managed by three admins with fai. The webpage is still static html, but ikiwiki should be up on the weekend, in some free minutes I already looked into it and played with it on the new machine. I'll write a more detailed blog entry about this when it's ready.

26 March 2007

Adam Rosi-Kessel: COPA Unsurprisingly Unconstitutional

The Children’s Online Protection Act, or COPA, requires website operators who provide commercial material that could be “harmful to minors” to verify their users’ age, for example, with a credit card. The statute was immediately challenged as unconstitutional under the First Amendment. A preliminary injunction against enforcement of the law was upheld by the Supreme Court, which remanded the matter for factual development as to whether filters could accomplish the same purpose while interfering less with free speech. (Ironically, the ACLU found itself in the unusual position of arguing for Internet filters in this case.) It was just about one year ago that the Government sought to enforce a subpoena against Google for records of user queries and URLs stored in Google’s database. The court granted the motion with respect to stored URLs but not queries in Gonzales v. Google. It was never quite clear what the Government would really do with the data or why they pushed so hard to get it after receiving what they needed from other search providers. (The U.S. apparently argued Google’s search results would “add luster” to its analysis). In any case, the statute has now finally been held unconstitutional. As Ed Felten insightfully points out, unlike in previous instances where courts have struck down Internet speech regulation, in his opinion, Judge Reed did not provide a roadmap for Congress to try yet again to enact a law that would pass First Amendmend muster. Maybe Congress will leave the issue alone for a while:
Two things make the judge s ruling relatively roadmap-free. First, it is based heavily on factual findings that Congress cannot change things like the relative effectiveness of filtering and the amount of HTM material that originates overseas beyond the effective reach of U.S. law. (Filtering operates on all material, while COPA s requirements could have been ignored by many overseas sites.) Second, the alternative it offers requires only voluntary private action, not legislation. Congress has already passed laws requiring schools and libraries to use content filters, as a condition of getting Federal funding and with certain safeguards that are supposed to protect adult access. The courts have upheld such laws. It s not clear what more Congress can do. Judge Reed s filtering alternative is less restrictive because it is voluntary, so that computers that aren t used by kids, or on which parents have other ways of protecting kids against HTM material, can get unfiltered access. An adult who wants to get HTM material will be able to get it. Doubtless Congress will make noise about this issue in the upcoming election year. Protecting kids from the nasty Internet is too attractive politically to pass up. Expect hearings to be held and bills to be introduced; but the odds that we ll get a new law that makes much difference seem pretty low.

Simon Richter: Wacky ideas #13: Conflicts-If-in-Same-Dependency-Tree

Well, obviously this one needs a shorter name. The problem I'm trying to solve here is that SONAMEs, or rather the way they are used today, only handle the issue of a single, fully contained library changing ABI as one of its header files changes. However, libraries do not exist in a vacuum; as a bare minimum, they use definitions for types and alignment requirements built into the compiler, and if any of these changes, so does the library ABI. Hence, the idea of using a single number to denote the ABI is not really sufficient. The correct solution would be to embed all ABI information into the soname (libapt-pkg, for example, uses "libapt-pkg-libc6.3-6.so.3.11" on amd64, which is better but still not perfect). Obviously, this would require massive changes to the build scripts in all libraries and educating all library authors, so it is not going to happen (soon). So, what other options are there? As the kernel ABI (the syscall interface) is supposed to be really stable, we probably do not have to worry about that. So, we only have a problem if there are libraries with different assumptions about each others' ABI in the same userspace program. This can happen in two ways: The compiler changed (as in the case with the recent C++ transitions), or a library that is an indirect dependency of something that also has another dependency (direct or indirect) changes ABI. I've talked (briefly) about the former in an earlier post already. To illustrate the latter, a small example: There is a library, libuseful.so.0 that provides a number of functions, among these: struct complex_number

  float real;
  float imaginary;

 
void complex_multiply(
  struct complex_number *result,
  struct complex_number const *lhs,
  struct complex_number const *rhs);
Now another library, libresourceful.so.0, comes along and implements complex_divide on top of complex_multiply. Since the definition for complex numbers from libuseful makes a lot of sense, the include file for libresourceful reads #include "libuseful.h"
 
void complex_divide(
  struct complex_number *result,
  struct complex_number const *lhs,
  struct complex_number const *rhs);
Now one of the more serious people in Debian decides to write pointless 1.0, which takes two complex numbers and calculates (a*b)/a, using both complex_multiply and complex_divide, and links against libresourceful.so.0 and libuseful.so.0. Some time passes, and shortly before Debian freezes, libuseful's author decides that she needs more precision, so she changes the floats to doubles, bumps the SONAME and releases the new version. Shortly thereafter, someone notices that libresourceful is now using an outdated version of libuseful, and recompiles libresourceful. Since the header of libresourceful did not change, noone thinks of changing the SONAME, after all, changing it would render us incompatible with other distributions. Now, pointless 1.0 depends on libuseful.so.0 and libresourceful.so.0, which in turn uses libuseful.so.1. It still believes complex numbers are made from floats, however libresourceful now disagrees. The (a*b) expression is calculated correctly, using floats, however the result is then passed to the complex_divide function which expects a pair of doubles. Not good. Obviously, there is a number of things people have done wrong in this example. First of all, if you inherit type definitions or anything else from another library, your ABI becomes bound to theirs. As you cannot know statically what version your library will be linked against, you need a script that computes your ABI version at build time. If you do not want that, you need to repeat the type definitions in your header and (deep-)copy the data from one of your structures into one provided by the library you are using (I can already hear the screams of the performance fetishists). The assumption that, just because a dependency changed, there is not necessarily a need to bump the soname is not fundamentally incorrect; if no interfaces are being propagated, it is certainly correct, and most libraries do not really do this (for example, a HTTP library uses the resolver, but never passes the hostent structures upwards). Detecting this is difficult to do, although Sun has a few tools to help here. So where does that leave us? In my opinion, the most sensible thing a distribution can do is to make sure such a constellation never gets installed to an user's system. If there is any doubt, we need to err on the side of caution (aka use a bigger hammer). This is a "wacky ideas" post, so I also need to propose a totally untested thing that might work (or not), but at least has passed the stage of me sleeping a night over it. Ideally, dpkg would enforce that. In order to do that, it needs appropriate metadata that tells it that a certain constellation is probably wrong. The thing we want to avoid is an application using multiple versions of the same library at the same time, where "use" is denoted by a dependency relationship. So what we need is a way for a library package to declare that it is wrong to (indirectly) depend on this package and a package out of a certain group at the same time. I can see two ways of doing that, each with its own advantages and disadvantages: The "explicit" way is to add a new dependency relationship (that is where the subject "Conflicts-If-in-Same-Dependency-Tree" comes from), where you would conflict in this way with a virtual package that is named after your library without the SONAME version, and at the same time provide that virtual package (which is a technique that should not be unfamiliar to Debian people). The hypothetical libuseful above would then state Package: libuseful0
Provides: libuseful
Conflicts-If-in-Same-Dependency-Tree: libuseful
So installing pointless_1.0 would pull in libuseful0 and libuseful1, dpkg would see the conflict and refuse. For upgrades, it would refuse the libresourceful0 upgrade, as that would create an inconsistent situation. The only way out of there is to recompile pointless. The advantage is that the modifications to dpkg would be manageable (at least compared with the other option, which I will introduce shortly), the obvious disadvantage is the massive number of virtual packages introduced. The "implicit" way of doing that is moving the SONAME into its own field in the control file, and teaching dpkg that two packages with the same name and different SONAME fields can be installed at the same time, although not depended on by the same package. This is a really nasty change to dpkg and also requires a syntax for dependencies that includes the desired SONAME version, but it gives us a lot of other advantages. The one immediately visible is that it does not bloat the Packages file too much, and does not introduce lots of virtual packages, although the net effect inside apt and dpkg is probably going to be the same. A really cool side effect though would be that the soname is no longer part of the Package: field, and thus it becomes possible to insert it using substvars. This, of course, is a cool thing when library authors come to their senses and include ABI information for dependent libraries into their SONAMEs. Since this has gotten lengthy, thanks for reading this far. Of course, questions and comments are requested, and if you are interested in pursuing this, please get in touch, either via email or if you can wait that long, at the "Wacky Ideas" BoF at DebConf. The last thing for me to do here is to welcome Joachim to the "post your ideas" "meme".

Jordi Mallach: No more TV3 in the Valencian Country: another example of PP's democracy

Tomorrow at 9 in the morning some officers from the Valencian regional Government will drive up to the mountains of the Bartolo, Serra Perentxissa, Montd ver and Carrasqueta to power off the set of antennas which have broadcasted the signal of TV3, the Catalan public television, during the last 20 years for the entire Valencian territory. These news have been responded with protests from most of the Valencian cultural collectives. You can sign a petition, or send an e-mail, which will be swiftly ignored by the people in charge. Behind the official reasoning for this attack to our freedom of choice -the broadcast is illegal- there is a set of good reasons for the usual suspects, the Valencian Partido Popular to do this. The biggest one is that two months before the local and regional elections, the right-wing are doing their math and it may not be working out too well for them. They need to scrape as many votes as they can, and an easy granary is attracting the extreme right-wing, which is a bit active but fragmented in the region, and mostly in the city of Val ncia. This social group is greatly virulent against anything which sounds like Catalan , especially the people known as blaveros , who claim our culture and language has no common root and has nothing to do with the culture and language from the North. Fortunately, the ISO 639 standard and the entire scientific community agree that they are nuts. But back to my rant. So, how can the PP try to get a handful of votes from the right-wing? Easy, start an anti-TV3 show on the media and start scalating it until the final act -tomorrow-, where milions of citizens are deprived of one of the best channels available in our TV sets. This will surely be sold as a major victory against the Catalan invasion or as the end of an "alegal situation", although there are like 30 other channels in the same situation in the city of Val ncia, and the PP-controlled Canal 9 channel is broadcasted in the Balear Islands (also controled by PP) in the same legal situation. In a time when watching Middle-East or American channels is trivial using a satellite set, some people think the best thing they can do is to end a service paid and provided for free by Acci Cultural del Pa s Valenci , an important cultural entity, during the last 20 years, ending the right to choose one of the only channels with all the programs in our language for milions of Valencians. Their right to do it is also challenged in court, but there is no doubt that tomorrow they'll go ahead and shut it off. We could have a reasonable government who would maybe want to accept the Catalan TV and radio channels in our territory, if the Catalan government would also accept our (crappy) channels in theirs, but they refuse this as well, because they now feel insulted . All in all, I had enough of PP long ago, and am hoping I am not the only one. In less than a month, Valencians will celebrate the 300th anniversary of the Batalla d'Almansa on the 25th of April of 1707, although we seem to be fighting a new battle now in 2007. The Batalla d'Almansa meant the end of the War of the Spanish Succession in Spain, but also the start of tough times for our culture, language, and people, when Felipe V abolished the Valencian furs. But this story can make a blog post of its own next month. Quan el mal ve d'Almansa, a tots alcan a...

Next.

Previous.