You are not logged in.
I'm building a new package "mysqlclient" that will contain only the mysql client programs and libraries. Basically just run with configure option --without-server.
Anyway, how does pacman handle a package that overwrites another package? For example if I install my new mysqlclient and then later install the official mysql package, what happens?
cool sig line
Offline
you'll get a "file conflict" error during the installation and the installation would stop. You could force the installation though.
"Contrary to popular belief, penguins are not the salvation of modern technology. Neither do they throw parties for the urban proletariat."
Offline
If you want to install the full mysql later on, you could always just remove mysqlclient, and then install mysql.
Offline
If you want to install the full mysql later on, you could always just remove mysqlclient, and then install mysql.
Is it possible to check this from the package? Maybe it's better to just seperate the files from -client and -server so they don't overlap.
cool sig line
Offline
Toth wrote:If you want to install the full mysql later on, you could always just remove mysqlclient, and then install mysql.
Is it possible to check this from the package? Maybe it's better to just seperate the files from -client and -server so they don't overlap.
I don't really see the point. If you want just the client, or just the server you can use ABS to compile it as you have done. Or just install all of mysql and only use the client. If you want you can leave the client package named "mysql" and then just upgrade it to the standard package if you want both the client and server tools. Separating software into multiple packages just gets messy, IMO. There are some files that would be common to both, some that are only for the server, some that are only for the client. You'd end up with three packages: mysql-common, mysql-client, and mysql-server. Ugh. Just look at Debian's repositories sometime and you'll see why it's probably a better idea not to do it that way. Leaving it as a single package also makes it much easier to maintain.
Offline
Toth: true true. I'm only concerned with having software installed on a box that doesn't need to be there (eg. the mysql server on an http only server). I'll keep the KISS method and just use ABS for a client only package. Thanks!
cool sig line
Offline
Having the mysql package installed does mean you will have the mysql server installed but it doesn't mean you have to run it. It's only run if you start it yourself...
The problem of packages stepping on each other is something that needs to be addressed at one point or another. One possibility is to make mysql conflict with mysql-client (and include all of the client stuff in the mysql package). This is a feature that was added in 2.5 I believe.
Currently there isn't a good way to handle something like this... ideas?
I have discovered that all of mans unhappiness derives from only one source, not being able to sit quietly in a room
- Blaise Pascal
Offline
One possibility is to make mysql conflict with mysql-client (and include all of the client stuff in the mysql package).
That would work well here.
Hmm, heres a weird idea...dunno if i like it yet haha:
What if there were build options put into abs & pacman, for example if you 'pacman -S mysql --no-server' would install the package without the server portion of mysql. On the build side the PKGBUILD file would have a special case for 'no-server' and make the correct changes to the configure script. When you run makepkg it builds all the possible combinations (yuck) and then runs diffs of the files created maybe? So the one package can have multiple compile options without needing to install many different packages. So pacman would install a base packge without options and then patch the install with your options.
I dunno, random thought.
cool sig line
Offline
Ewwww... not only is that a packager's nightmare ("Alright, I've just rebuilt one version of this package, do I have to rebuild the other ones too?"), what are the standard options? no-server, no-client, no-nose-picking? At that point it's turning into a big mess
I have discovered that all of mans unhappiness derives from only one source, not being able to sit quietly in a room
- Blaise Pascal
Offline
Lol. Yah no kidding. There has to be a way to modularize all these options, that would probably have to come from the software guys upstream though
What about change my example above to saying there is a single base package maintained, but the abs can handle options if you want to use them. So its easy on the package builders, but gives a tad more flexibility?
Wait, scratch that, you can do that now with vi and the PKGBUILD file lol.
cool sig line
Offline
What about change my example above to saying there is a single base package maintained, but the abs can handle options if you want to use them. So its easy on the package builders, but gives a tad more flexibility?
The closest thing I've seen to that is Gentoo's USE system, and I really didn't like that much at all.
Wait, scratch that, you can do that now with vi and the PKGBUILD file lol.
Yep, it just requires knowledge of the package's compile time options.
Offline
I was going to mention Gentoo's use system. I don't have a lot of experience with it, but from what I've seen I don't like it either ;o)
I have discovered that all of mans unhappiness derives from only one source, not being able to sit quietly in a room
- Blaise Pascal
Offline
gentoo's use system is a PITA. ..... wait gentoo is a PITA
AKA uknowme
I am not your friend
Offline
wait gentoo is a PITA
Haha, thats why i'm with Arch now
cool sig line
Offline