Re: [119433] trunk/dports/devel/akonadi/Portfile

2014-04-28 Thread Daniel J. Luke
On Apr 25, 2014, at 8:12 PM, Ryan Schmidt ryandes...@macports.org wrote:
 
 If a user is using a port that uses a mysql (or postgresql) database, then 
 the user has just signed up to be a mysql (or postgresql) database 
 administrator, and is responsible for the usual database administrator tasks, 
 like migrating to new versions and upgrading their database when needed.

I think the point here is that some users might not realize that they've signed 
on to be a db administrator /and/ we could possibly make things easier for 
them...

--
Daniel J. Luke  
 
++  
  
| * dl...@geeklair.net * |  

| *-- http://www.geeklair.net -* |  

++  
  
|   Opinions expressed are mine and do not necessarily   |  

|  reflect the opinions of my employer.  |  

++



___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [119433] trunk/dports/devel/akonadi/Portfile

2014-04-25 Thread Craig Treleaven
Since you've gone first, could I ask what are you doing for legacy 
data?  Perhaps I'm missing something, but someone that has been using 
akonadi with mysql5 and then upgrades the port will then get mariadb 
installed and akonadi configured to use that, instead.  No?  But 
mariadb will not contain the user's (presumably) valuable data--which 
is pretty jarring.


The user will need to:

1) use  /opt/local/lib/mysql5/bin/mysqldump,
2) shut down the mysql5 server,
3) (a) initialize and, (b) start up the mariadb server, and
4) use mariadb's utility to load the data.
5) Possibly have to reapply any database config tweaks they previously set up.

I know that the legacy mysql5 port needs to be retired but it seems 
like we're going to make existing users jump through a bunch of hoops 
to get there.


I'm not trying to pick on nicos...just trying to see that the 
implications are understood.  In a lot of ways, the akonadi port is 
similar to my situation with the mythtv* ports.  Most users don't 
care what database is used.  They installed the port because it does 
something useful.  Forcing them to upgrade their database doesn't 
enhance that utility; it just creates work to get back to where they 
were before.


Craig


At 5:47 AM -0700 4/25/14, ni...@macports.org wrote:

Revision

https://trac.macports.org/changeset/119433119433
Author

ni...@macports.org
Date

2014-04-25 05:47:30 -0700 (Fri, 25 Apr 2014)

Log Message

akonadi: upgrade to 1.12.1
make variant mysql5 obsolete (replaced by mysql51)
make mariadb55 default variant
rename mariadb and percona variants with numbers (ticket #43431)

Modified Paths

trunk/dports/devel/akonadi/Portfile
Diff

Modified: trunk/dports/devel/akonadi/Portfile (119432 = 119433)


--- trunk/dports/devel/akonadi/Portfile	2014-04-25 12:08:04 
UTC (rev 119432)
+++ trunk/dports/devel/akonadi/Portfile	2014-04-25 12:47:30 
UTC (rev 119433)

@@ -6,7 +6,7 @@
 PortGroup   compiler_blacklist_versions 1.0

 nameakonadi
-version 1.12.0
+version 1.12.1
 categories  devel kde kde4
 maintainers nicos openmaintainer
 license LGPL-2+
@@ -18,8 +18,8 @@
 master_siteskde:stable/${name}/src/
 use_bzip2   yes

-checksums   rmd160  bc47b87f8f228d0a8cf8d180d742c65ed1ce4dd0 \
-sha256 
35243793b73e8028973c101c68ef80a8a54be0fe9aa562c9473e73b4657fea26

+checksums   rmd160  6e486f4a39948af6f470b652bf3223de75af5e53 \
+sha256 
a073228fda8bdbcf836af32d4b4c44dcbe58a3eac6da4e5a286b42ace9d83145


 depends_lib-append  port:soprano \
 port:boost \
@@ -105,18 +105,10 @@
 destroot.violate_mtree  yes
 }

-variant mysql5 \
-   conflicts sqlite mysql51 mysql55 mysql56 mariadb percona \
-   description {build with mysql5 port} {
+variant mysql5 requires mysql51 description {Legacy compatibility variant} {}

-   depends_lib-append  port:qt4-mac-mysql5-plugin
-   depends_run-append  port:mysql5-server
-   configure.args-append   -DDATABASE_BACKEND=MYSQL \
-   -DMYSQLD_EXECUTABLE=${prefix}/libexec/mysqld
-}
-
 variant mysql51 \
-   conflicts sqlite mysql5 mysql55 mysql56 mariadb percona \
+   conflicts sqlite mysql55 mysql56 mariadb55 percona55 \
description {build with mysql51 port} {

depends_lib-append  port:qt4-mac-mysql51-plugin
@@ -126,7 +118,7 @@
 }

 variant mysql55 \
-   conflicts sqlite mysql5 mysql51 mysql56 mariadb percona \
+   conflicts sqlite mysql51 mysql56 mariadb55 percona55 \
description {build with mysql55 port} {

depends_lib-append  port:qt4-mac-mysql55-plugin
@@ -136,7 +128,7 @@
 }

 variant mysql56 \
-   conflicts sqlite mysql5 mysql51 mysql55 mariadb percona \
+   conflicts sqlite mysql51 mysql55 mariadb55 percona55 \
description {build with mysql56 port} {

depends_lib-append  port:qt4-mac-mysql56-plugin
@@ -145,8 +137,10 @@

-DMYSQLD_EXECUTABLE=${prefix}/lib/mysql55/bin/mysqld
 }

-variant mariadb \
-   conflicts sqlite mysql5 mysql51 mysql55 mysql56 percona \
+variant mariadb requires mariadb55 description {Legacy 
compatibility variant} {}

+
+variant mariadb55 \
+   conflicts sqlite mysql51 mysql55 mysql56 percona55 \
description {build with mariadb port} {

depends_lib-append  port:qt4-mac-mariadb-plugin
@@ -155,10 +149,12 @@

-DMYSQLD_EXECUTABLE=${prefix}/lib/mariadb/bin/mysqld
 }

-variant percona \
-   conflicts sqlite mysql5 mysql51 mysql55 mysql56 mariadb \
-   description {build with percona port} {
+variant percona requires percona55 description {Legacy 
compatibility variant} {}


+variant percona55 \
+   conflicts sqlite mysql51 mysql55 mysql56 mariadb55 \
+   description {build with percona55 port} {
+
depends_lib-append  port:qt4-mac-percona-plugin
depends_run-append  port:percona-server
configure.args-append   -DDATABASE_BACKEND=MYSQL \
@@ -166,7 +162,7 @@
 }

 variant sqlite \
-   conflicts mysql5 mysql51

Re: [119433] trunk/dports/devel/akonadi/Portfile

2014-04-25 Thread Nicolas Pavillon
Hello, 

I think there is a small misunderstanding about what I committed. You have a 
fully valid point, which has been discussed briefly in the ticket, but users 
will not be forced to change database at this stage with this commit. While the 
new default variant is mariadb (so that new installs will go with it), users 
with an existing port with the +mysql5 variant are upgraded with the mysql51 
variant, which implies that the database stays the same. 

Cheers, 

Nicolas

On Apr25, 2014, at 22:31, Craig Treleaven ctrelea...@cogeco.ca wrote:

 Since you've gone first, could I ask what are you doing for legacy data?  
 Perhaps I'm missing something, but someone that has been using akonadi with 
 mysql5 and then upgrades the port will then get mariadb installed and akonadi 
 configured to use that, instead.  No?  But mariadb will not contain the 
 user's (presumably) valuable data--which is pretty jarring.
 
 The user will need to:
 
 1) use  /opt/local/lib/mysql5/bin/mysqldump,
 2) shut down the mysql5 server,
 3) (a) initialize and, (b) start up the mariadb server, and
 4) use mariadb's utility to load the data.
 5) Possibly have to reapply any database config tweaks they previously set up.
 
 I know that the legacy mysql5 port needs to be retired but it seems like 
 we're going to make existing users jump through a bunch of hoops to get there.
 
 I'm not trying to pick on nicos...just trying to see that the implications 
 are understood.  In a lot of ways, the akonadi port is similar to my 
 situation with the mythtv* ports.  Most users don't care what database is 
 used.  They installed the port because it does something useful.  Forcing 
 them to upgrade their database doesn't enhance that utility; it just creates 
 work to get back to where they were before.
 
 Craig
 
 
 At 5:47 AM -0700 4/25/14, ni...@macports.org wrote:
 Revision
 
 https://trac.macports.org/changeset/119433119433
 Author
 
 ni...@macports.org
 Date
 
 2014-04-25 05:47:30 -0700 (Fri, 25 Apr 2014)
 
 Log Message
 
 akonadi: upgrade to 1.12.1
 make variant mysql5 obsolete (replaced by mysql51)
 make mariadb55 default variant
 rename mariadb and percona variants with numbers (ticket #43431)
 
 Modified Paths
 
 trunk/dports/devel/akonadi/Portfile
 Diff
 
 Modified: trunk/dports/devel/akonadi/Portfile (119432 = 119433)
 
 
 --- trunk/dports/devel/akonadi/Portfile  2014-04-25 12:08:04 UTC (rev 
 119432)
 +++ trunk/dports/devel/akonadi/Portfile  2014-04-25 12:47:30 UTC (rev 
 119433)
 @@ -6,7 +6,7 @@
 PortGroup   compiler_blacklist_versions 1.0
 
 nameakonadi
 -version 1.12.0
 +version 1.12.1
 categories  devel kde kde4
 maintainers nicos openmaintainer
 license LGPL-2+
 @@ -18,8 +18,8 @@
 master_siteskde:stable/${name}/src/
 use_bzip2   yes
 
 -checksums   rmd160  bc47b87f8f228d0a8cf8d180d742c65ed1ce4dd0 \
 -sha256 
 35243793b73e8028973c101c68ef80a8a54be0fe9aa562c9473e73b4657fea26
 +checksums   rmd160  6e486f4a39948af6f470b652bf3223de75af5e53 \
 +sha256 
 a073228fda8bdbcf836af32d4b4c44dcbe58a3eac6da4e5a286b42ace9d83145
 
 depends_lib-append  port:soprano \
 port:boost \
 @@ -105,18 +105,10 @@
 destroot.violate_mtree  yes
 }
 
 -variant mysql5 \
 -   conflicts sqlite mysql51 mysql55 mysql56 mariadb percona \
 -   description {build with mysql5 port} {
 +variant mysql5 requires mysql51 description {Legacy compatibility variant} 
 {}
 
 -   depends_lib-append  port:qt4-mac-mysql5-plugin
 -   depends_run-append  port:mysql5-server
 -   configure.args-append   -DDATABASE_BACKEND=MYSQL \
 -   -DMYSQLD_EXECUTABLE=${prefix}/libexec/mysqld
 -}
 -
 variant mysql51 \
 -   conflicts sqlite mysql5 mysql55 mysql56 mariadb percona \
 +   conflicts sqlite mysql55 mysql56 mariadb55 percona55 \
description {build with mysql51 port} {
 
depends_lib-append  port:qt4-mac-mysql51-plugin
 @@ -126,7 +118,7 @@
 }
 
 variant mysql55 \
 -   conflicts sqlite mysql5 mysql51 mysql56 mariadb percona \
 +   conflicts sqlite mysql51 mysql56 mariadb55 percona55 \
description {build with mysql55 port} {
 
depends_lib-append  port:qt4-mac-mysql55-plugin
 @@ -136,7 +128,7 @@
 }
 
 variant mysql56 \
 -   conflicts sqlite mysql5 mysql51 mysql55 mariadb percona \
 +   conflicts sqlite mysql51 mysql55 mariadb55 percona55 \
description {build with mysql56 port} {
 
depends_lib-append  port:qt4-mac-mysql56-plugin
 @@ -145,8 +137,10 @@
 -DMYSQLD_EXECUTABLE=${prefix}/lib/mysql55/bin/mysqld
 }
 
 -variant mariadb \
 -   conflicts sqlite mysql5 mysql51 mysql55 mysql56 percona \
 +variant mariadb requires mariadb55 description {Legacy compatibility 
 variant} {}
 +
 +variant mariadb55 \
 +   conflicts sqlite mysql51 mysql55 mysql56 percona55 \
description {build with mariadb port} {
 
depends_lib-append  port:qt4-mac-mariadb

Re: [119433] trunk/dports/devel/akonadi/Portfile

2014-04-25 Thread Craig Treleaven
But mysql5-server and mysql51-server use different directories for 
their data, respectively:


/opt/local/var/db/mysql5
/opt/local/var/db/mysql51

I guess it then depends on which copy of mysqld the user is running 
and how the app communicates with the database?


Craig
(Early on, I ended up with both mysql5 and mysql51 installed.  I was 
thoroughly confused by the subtle difference.)


At 12:10 AM +0900 4/26/14, Nicolas Pavillon wrote:

Hello,

I think there is a small misunderstanding about what I committed. 
You have a fully valid point, which has been discussed briefly in 
the ticket, but users will not be forced to change database at this 
stage with this commit. While the new default variant is mariadb (so 
that new installs will go with it), users with an existing port with 
the +mysql5 variant are upgraded with the mysql51 variant, which 
implies that the database stays the same.


Cheers,

Nicolas

On Apr25, 2014, at 22:31, Craig Treleaven ctrelea...@cogeco.ca wrote:

 Since you've gone first, could I ask what are you doing for legacy 
data?  Perhaps I'm missing something, but someone that has been 
using akonadi with mysql5 and then upgrades the port will then get 
mariadb installed and akonadi configured to use that, instead.  No? 
But mariadb will not contain the user's (presumably) valuable 
data--which is pretty jarring.


 The user will need to:

 1) use  /opt/local/lib/mysql5/bin/mysqldump,
 2) shut down the mysql5 server,
 3) (a) initialize and, (b) start up the mariadb server, and
 4) use mariadb's utility to load the data.
 5) Possibly have to reapply any database config tweaks they 
previously set up.


 I know that the legacy mysql5 port needs to be retired but it 
seems like we're going to make existing users jump through a bunch 
of hoops to get there.


 I'm not trying to pick on nicos...just trying to see that the 
implications are understood.  In a lot of ways, the akonadi port is 
similar to my situation with the mythtv* ports.  Most users don't 
care what database is used.  They installed the port because it 
does something useful.  Forcing them to upgrade their database 
doesn't enhance that utility; it just creates work to get back to 
where they were before.


 Craig


 At 5:47 AM -0700 4/25/14, ni...@macports.org wrote:

 Revision

 https://trac.macports.org/changeset/119433119433
 Author

 ni...@macports.org
 Date

 2014-04-25 05:47:30 -0700 (Fri, 25 Apr 2014)

 Log Message

 akonadi: upgrade to 1.12.1
 make variant mysql5 obsolete (replaced by mysql51)
 make mariadb55 default variant
 rename mariadb and percona variants with numbers (ticket #43431)

 Modified Paths

 trunk/dports/devel/akonadi/Portfile
 Diff

 Modified: trunk/dports/devel/akonadi/Portfile (119432 = 119433)


 --- trunk/dports/devel/akonadi/Portfile	2014-04-25 12:08:04 
UTC (rev 119432)
 +++ trunk/dports/devel/akonadi/Portfile	2014-04-25 12:47:30 
UTC (rev 119433)

 @@ -6,7 +6,7 @@
 PortGroup   compiler_blacklist_versions 1.0

 nameakonadi
 -version 1.12.0
 +version 1.12.1
 categories  devel kde kde4
 maintainers nicos openmaintainer
 license LGPL-2+
 @@ -18,8 +18,8 @@
 master_siteskde:stable/${name}/src/
 use_bzip2   yes

 -checksums   rmd160  bc47b87f8f228d0a8cf8d180d742c65ed1ce4dd0 \
 -sha256 
35243793b73e8028973c101c68ef80a8a54be0fe9aa562c9473e73b4657fea26

 +checksums   rmd160  6e486f4a39948af6f470b652bf3223de75af5e53 \
 +sha256 
a073228fda8bdbcf836af32d4b4c44dcbe58a3eac6da4e5a286b42ace9d83145


 depends_lib-append  port:soprano \
 port:boost \
 @@ -105,18 +105,10 @@
 destroot.violate_mtree  yes
 }

 -variant mysql5 \
 -   conflicts sqlite mysql51 mysql55 mysql56 mariadb percona \

  -   description {build with mysql5 port} {
 +variant mysql5 requires mysql51 description {Legacy 
compatibility variant} {}


 -   depends_lib-append  port:qt4-mac-mysql5-plugin
 -   depends_run-append  port:mysql5-server
 -   configure.args-append   -DDATABASE_BACKEND=MYSQL \
 -   -DMYSQLD_EXECUTABLE=${prefix}/libexec/mysqld
 -}
 -
 variant mysql51 \
 -   conflicts sqlite mysql5 mysql55 mysql56 mariadb percona \
 +   conflicts sqlite mysql55 mysql56 mariadb55 percona55 \
description {build with mysql51 port} {

depends_lib-append  port:qt4-mac-mysql51-plugin
 @@ -126,7 +118,7 @@
 }

 variant mysql55 \
 -   conflicts sqlite mysql5 mysql51 mysql56 mariadb percona \
 +   conflicts sqlite mysql51 mysql56 mariadb55 percona55 \
description {build with mysql55 port} {

depends_lib-append  port:qt4-mac-mysql55-plugin
 @@ -136,7 +128,7 @@
 }

 variant mysql56 \
 -   conflicts sqlite mysql5 mysql51 mysql55 mariadb percona \
 +   conflicts sqlite mysql51 mysql55 mariadb55 percona55 \
description {build with mysql56 port} {

depends_lib-append  port:qt4-mac-mysql56-plugin
 @@ -145,8 +137,10

Re: [119433] trunk/dports/devel/akonadi/Portfile

2014-04-25 Thread Bradley Giesbrecht
The mysql5 port will be replaced_by the mysql51 port. If you want to stay with 
the 5.1.x you can use mysql51.

If you do not already have mysql51-server installed the following should work 
fine:
sudo port unload mysql5-server
sudo port deactivate mysql5-server mysql5
sudo mv /opt/local/var/db/mysql5{,1}
sudo port install mysql51-server
sudo port activate mysql51-server

If you do already have mysql51-server installed and there are databases in 
/opt/local/var/db/mysql51 that are important to you then you will need to use 
mysqldump.

I know this will be unpleasant for some and while other options for handling 
mysql versions and forks were considered consensus at the time was that this 
approach was best and the most consistent with the way other ports like 
postgres, perl, python, php etc... handled versioning.

Perhaps some helper scripts or migration documentation would help smooth the 
transition. Ideas are welcome.


Regards,
Bradley Giesbrecht (pixilla)

On Apr 25, 2014, at 9:59 AM, Craig Treleaven ctrelea...@cogeco.ca wrote:

 But mysql5-server and mysql51-server use different directories for their 
 data, respectively:
 
 /opt/local/var/db/mysql5
 /opt/local/var/db/mysql51
 
 I guess it then depends on which copy of mysqld the user is running and how 
 the app communicates with the database?
 
 Craig
 (Early on, I ended up with both mysql5 and mysql51 installed.  I was 
 thoroughly confused by the subtle difference.)
 
 At 12:10 AM +0900 4/26/14, Nicolas Pavillon wrote:
 Hello,
 
 I think there is a small misunderstanding about what I committed. You have a 
 fully valid point, which has been discussed briefly in the ticket, but users 
 will not be forced to change database at this stage with this commit. While 
 the new default variant is mariadb (so that new installs will go with it), 
 users with an existing port with the +mysql5 variant are upgraded with the 
 mysql51 variant, which implies that the database stays the same.
 
 Cheers,
 
 Nicolas
 
 On Apr25, 2014, at 22:31, Craig Treleaven ctrelea...@cogeco.ca wrote:
 
 Since you've gone first, could I ask what are you doing for legacy data?  
 Perhaps I'm missing something, but someone that has been using akonadi with 
 mysql5 and then upgrades the port will then get mariadb installed and 
 akonadi configured to use that, instead.  No? But mariadb will not contain 
 the user's (presumably) valuable data--which is pretty jarring.
 
 The user will need to:
 
 1) use  /opt/local/lib/mysql5/bin/mysqldump,
 2) shut down the mysql5 server,
 3) (a) initialize and, (b) start up the mariadb server, and
 4) use mariadb's utility to load the data.
 5) Possibly have to reapply any database config tweaks they previously set 
 up.
 
 I know that the legacy mysql5 port needs to be retired but it seems like 
 we're going to make existing users jump through a bunch of hoops to get 
 there.
 
 I'm not trying to pick on nicos...just trying to see that the implications 
 are understood.  In a lot of ways, the akonadi port is similar to my 
 situation with the mythtv* ports.  Most users don't care what database is 
 used.  They installed the port because it does something useful.  Forcing 
 them to upgrade their database doesn't enhance that utility; it just 
 creates work to get back to where they were before.
 
 Craig



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [119433] trunk/dports/devel/akonadi/Portfile

2014-04-25 Thread Ryan Schmidt

On Apr 25, 2014, at 08:31, Craig Treleaven wrote:

 Since you've gone first, could I ask what are you doing for legacy data?  
 Perhaps I'm missing something, but someone that has been using akonadi with 
 mysql5 and then upgrades the port will then get mariadb installed and akonadi 
 configured to use that, instead.  No?  But mariadb will not contain the 
 user's (presumably) valuable data--which is pretty jarring.
 
 The user will need to:
 
 1) use  /opt/local/lib/mysql5/bin/mysqldump,
 2) shut down the mysql5 server,
 3) (a) initialize and, (b) start up the mariadb server, and
 4) use mariadb's utility to load the data.
 5) Possibly have to reapply any database config tweaks they previously set up.
 
 I know that the legacy mysql5 port needs to be retired but it seems like 
 we're going to make existing users jump through a bunch of hoops to get there.
 
 I'm not trying to pick on nicos...just trying to see that the implications 
 are understood. In a lot of ways, the akonadi port is similar to my situation 
 with the mythtv* ports.  Most users don't care what database is used.  They 
 installed the port because it does something useful.  Forcing them to upgrade 
 their database doesn't enhance that utility; it just creates work to get back 
 to where they were before.

As was already mentioned, existing users will be upgraded from mysql5 to 
mysql51, which is the same version of the software, and merely has a different 
data directory. Moving the data from the old directory to the new should work. 
We could perhaps enhance the mysql51 server to work with data from either 
directory, or maybe just notify users if they have data in the old directory 
and advise them how to move it.

If a user is using a port that uses a mysql (or postgresql) database, then the 
user has just signed up to be a mysql (or postgresql) database administrator, 
and is responsible for the usual database administrator tasks, like migrating 
to new versions and upgrading their database when needed.

___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev