# portmaster -r gettext



## Anonymous (May 31, 2010)

It was what I red in /usr/ports/UPDATING and I am lucky that my wifes Windows computer works because mine with FreeBSD is not usable.
I did what I red, gettext was installed and than was error with glib2.0 and some more and now I cannot do anything.

And BTW howe can I sent email to maintainer if computer doesn't works?

I have FreeBSD 8.0 release.


----------



## DutchDaemon (May 31, 2010)

Not all ports that depended on gettext were bumped (e.g. bash was late, there are more). For now, upgrade gettext separately first, symlink /usr/local/lib/libintl.so.8 to /usr/local/lib/libintl.so.9 and redo the portupgrade -r. Leave the symlink in there for a while until all relevant ports are bumped.


----------



## SirDice (May 31, 2010)

You should still be able to boot the system. At least in regular 'console' mode. I'm sure we can fix it but it will take some more information.

We would need at least the errors you are seeing, or the things that aren't working.

Tip: If you download PuTTY you can connect to your machine using your wife's computer using SSH. That might make restoring the mess a little more easier


----------



## Anonymous (May 31, 2010)

DutchDaemon said:
			
		

> Not all ports that depended on gettext were bumped (e.g. bash was late, there are more). For now, upgrade gettext separately first, symlink /usr/local/lib/libintl.so.8 to /usr/local/lib/libintl.so.9 and redo the portupgrade -r. Leave the symlink in there for a while until all relevant ports are bumped.



I did `ln -s /usr/local/lib/libintl.so.8 /usr/local/lib/libintl.so.9`
and I ran /usr/devel/gettext/make and I got


> /libexec/ld-elf.so.1: Shared object "libintl.so.9" not found, required by "gawk"



If I run `portmaster -r gettext` I get:


```
.../var/db/pkg/gettext does not exist.
```


----------



## Anonymous (May 31, 2010)

SirDice said:
			
		

> You should still be able to boot the system. At least in regular 'console' mode. I'm sure we can fix it but it will take some more information.
> 
> We would need at least the errors you are seeing, or the things that aren't working.
> 
> Tip: If you download PuTTY you can connect to your machine using your wife's computer using SSH. That might make restoring the mess a little more easier



No, I cannot because my wife work from home and she is so busy...


----------



## jb_fvwm2 (May 31, 2010)

I'm not sure this answers all you questions 
regarding this shared library bump...
however...

If you have /usr/ports/www/w3m installed you
can still browse without X, gettext, etc... as
long as you are online.
...

```
cd /usr/ports/devel/gettext
/bin/rm -rf work
script -a gett.ports pkg_delete -f /var/db/pkg/gettext-0.17_1
make install
```
Then you can portmaster -d [each /port/ given in the
list you can read in the gett.ports file...]
Depending upon the number of ports you have installed it would
be a few hours or a few days...
....
Note *after* I wrote the above, the Makefiles were
updated again for 38 ports (pango *probably* went
from _0 to _1 for example) reflecting the gettext update
and some macro in the Makefile


----------



## DutchDaemon (May 31, 2010)

Just install gettext *separately* before upgrading anything depending on it. You need to get libintl.so.9 in there first, then link libintl.so.8 to it. Only then can you run a recursive upgrade of gettext. Note that a bunch more ports were bumped just now.


----------



## Anonymous (Jun 1, 2010)

I did pkg_delete gwk and than install gettext and than portmaster -r and for now is okay...still building.


----------



## Erratus (Jun 1, 2010)

lumiwa said:
			
		

> And BTW howe can I sent email to maintainer if computer doesn't works?




```
# cd /usr/ports/devel/gettext && make maintainer
autotools@FreeBSD.org
```

Did run in same stops and in some more after that. Had to rollback system. Made decision to stay away from ports for some days.


----------



## DutchDaemon (Jun 1, 2010)

Probably wise, because quite a few ports in devel/ got bumped just now. The gettext library bumps are starting to become quite notorious. Anyhoo, by upgrading gettext all by itself, linking the old library to the new one, and only then upgrading gettext recursively one should be able to sail right through if the upgrade already went wrong.


----------



## Anonymous (Jun 1, 2010)

I thought that I am lucky now but there was another problem. All mnight of rebuildind and in the morning waiting for me another error1:

```
Missing license file for LGPL in /usr/ports/net-im/telepathy-
qt/work/telepathy....
```

And if I run portmaster -r gettext again I will wait again two days?

Thank you.

Mitja
--------
http://starikarp.redbubble.com


----------



## DutchDaemon (Jun 1, 2010)

This appears to have nothing to do with gettext in any way. The Makefile has this to say:

```
LICENSE=        LGPL
LICENSE_FILE=   ${WRKSRC}/../COPYING
```

When I run [cmd=]make fetch extract[/cmd] the COPYING file resides in /usr/ports/net-im/telepathy-qt/work/telepathy-qt-0.14.1, which appears to be referenced by ${WRKSRC}/../COPYING, which should expand to /usr/ports/net-im/telepathy-qt/work/telepathy-qt-0.14.1/src/../COPYING. 

If [cmd=]ls /usr/ports/net-im/telepathy-qt/work/telepathy-qt-0.14.1/src/../COPYING[/cmd] works, the port should build.


----------



## Anonymous (Jun 1, 2010)

DutchDaemon said:
			
		

> This appears to have nothing to do with gettext in any way. The Makefile has this to say:
> 
> ```
> LICENSE=        LGPL
> ...



When I updated KDE 4.3 to KDE 4.4 was okay but I got an error that this file missing. I don't know why but it is reality.


----------



## phoenix (Jun 1, 2010)

DutchDaemon said:
			
		

> Not all ports that depended on gettext were bumped (e.g. bash was late, there are more). For now, upgrade gettext separately first, symlink /usr/local/lib/libintl.so.8 to /usr/local/lib/libintl.so.9 and redo the portupgrade -r. Leave the symlink in there for a while until all relevant ports are bumped.



Instead of symlinking, use the -w switch with portmaster to save a copy of the old lib under /usr/local/compat/lib.  Apps that need the old lib will continue to work.

Once all the apps are upgraded, remove the lib from /usr/local/compat/lib.


----------



## DutchDaemon (Jun 1, 2010)

That's also a good one, *if* you're using portmaster that is .. In portmaster.rc, it's 
	
	



```
# Save copies of old shared libraries (recommended) (-w)
           # SAVE_SHARED=wopt
```


----------



## jb_fvwm2 (Jun 1, 2010)

*Works!*

Does that mean I can manually copy the gettext 'so' files
to /usr/local/compat/lib, rebuild all gettext-dependent ports, then
delete them? (the .SO. files. Might be easy to forget),
while The gettext-dependent ports are still working
that have not been upgraded, and the newly built ones
not linking against the older versions? (YES) 
It should be mentioned in UPDATING, probably; (I've put a
file in /usr/ports/devel/gettext, /png, /jpeg, /curl,
etc about this new method...Should have known this in 2004: 
I moved libintl.so.8 and libgettextpo.so.4 (If I recall) each
to the /usr/local/lib/compat.  Only glitch to rebuild 
gettext was I had to deinstall it first.  If the above
fix did not work, I would not be posting this today, but
some less happy result tomorrow or later...


----------



## Symbiosis (Jun 1, 2010)

lumiwa said:
			
		

> I did ln -s /usr/local/lib/libintl.so.8 /usr/local/lib/libintl.so.9
> and I ran /usr/devel/gettext/make and I got
> 
> 
> If I run portmaster -r gettext I get:



The correct command is ln -s /usr/local/lib/libintl.so.9 /usr/local/lib/libintl.so.8


----------



## phoenix (Jun 1, 2010)

DutchDaemon said:
			
		

> That's also a good one, *if* you're using portmaster that is .. In portmaster.rc, it's
> 
> 
> 
> ...



Well, the OP mentioned portmaster, hence the suggestion.  

Portupgrade has a similar option.  Not sure about the other ports management tools.


----------



## Anonymous (Jun 2, 2010)

Symbiosis said:
			
		

> The correct command is ln -s /usr/local/lib/libintl.so.9 /usr/local/lib/libintl.so.8



Thanks, I did it. It was just copy-paste from DutchDaemon help.
Thanks to all!


----------



## fronclynne (Jun 2, 2010)

I dunno, I ran `# portupgrade -fr gettext\*` & while it took a while (I really am starting to hate openoffice building for 7 or 8 hours three times a month) absolutely nothing is broken (yet!).


----------



## Erratus (Jun 2, 2010)

```
# portmaster -w -r gettext
```
 fails here like this:

```
checking for msgfmt... no
[B]configure: error: 
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html[/B]

===>  Script "configure" failed unexpectedly.
Please run the gnomelogalyzer, available from
"http://www.freebsd.org/gnome/gnomelogalyzer.sh", which will diagnose the
problem and suggest a solution. If - and only if - the gnomelogalyzer cannot
solve the problem, report the build failure to the FreeBSD GNOME team at
gnome@FreeBSD.org, and attach (a)
"/usr/ports/devel/glib20/work/glib-2.24.1/config.log", (b) the output of the
failed make command, and (c) the gnomelogalyzer output. Also, it might be a
good idea to provide an overview of all packages installed on your system
(i.e. an `ls /var/db/pkg`). Put your attachment up on any website,
copy-and-paste into http://freebsd-gnome.pastebin.com, or use send-pr(1) with
the attachment. Try to avoid sending any attachments to the mailing list
(gnome@FreeBSD.org), because attachments sent to FreeBSD mailing lists are
usually discarded by the mailing list software.
*** Error code 1

Stop in /usr/ports/devel/glib20.
*** Error code 1

Stop in /usr/ports/devel/glib20.

===>>> make failed for devel/glib20
===>>> Aborting update

===>>> Update for glib-2.24.1 failed
===>>> Aborting update

===>>> Update for ORBit2-2.14.18 failed
===>>> Aborting update
```

Now how to fix this configure error.
And after this 
	
	



```
# portmaster -w -r gettext
```
 will ask if "There are 'install complete' flags from a previous run". I do not know if these flags should be deleted and how to resume 
	
	



```
portmaster -w -r gettext
```
. Should option -R be used instead if -r?

I'm still wondering if the masters of ports are playing on their tinderboxes before letting the ports bump? Updating gettext is the work of masters of disasters until now.


----------



## Anonymous (Jun 2, 2010)

> I'm still wondering if the masters of ports are playing on their tinderboxes before letting the ports bump? Updating gettext is the work of masters of disasters until now.



And I think this is the third disaster in the short time. 8.1 is coming out and do we expected more?


----------



## DutchDaemon (Jun 2, 2010)

fronclynne said:
			
		

> I dunno, I ran `# portupgrade -fr gettext\*` & while it took a while (I really am starting to hate openoffice building for 7 or 8 hours three times a month) absolutely nothing is broken (yet!).



That's because you waited (purposefully or not) for all the portbumps to happen  I think the /devel flood of Monday was the last of it.


----------



## phoenix (Jun 2, 2010)

fronclynne said:
			
		

> I dunno, I ran `# portupgrade -fr gettext\*` & while it took a while (I really am starting to hate openoffice building for 7 or 8 hours three times a month) absolutely nothing is broken (yet!).



You can tell portmaster and portupgrade to ignore specific ports like so:
`$ touch /var/db/pkg/openoffice.org-whatever/+IGNOREME`

Any installed port with a +IGNOREME file under /var/db/pkg/portname-version/ will be ignored by portmaster and portupgrade when doing upgrades.  When you want to upgrade ports with +IGNOREME files, either delete the file, or force the upgrade.


----------



## jgh@ (Jun 16, 2010)

DutchDaemon said:
			
		

> Not all ports that depended on gettext were bumped (e.g. bash was late, there are more). For now, upgrade gettext separately first, symlink /usr/local/lib/libintl.so.8 to /usr/local/lib/libintl.so.9 and redo the portupgrade -r. Leave the symlink in there for a while until all relevant ports are bumped.



symlink? I would've expected you would have suggested libmap. I would think that is more of the correct route to go, but that is my opinion.


----------



## chappjc (Jun 16, 2010)

Erratus said:
			
		

> ```
> # portmaster -w -r gettext
> ```
> fails here like this:
> ...



I get the same error with devel/glib20 when running `# portmaster -w -r gettext`.

The old libintl.so.8 exists in /usr/local/lib/compat/pkg/libintl.so.8, but glib doesn't care.

I tried symlinking:[CMD=""]ln -s /usr/local/lib/libintl.so.9 /usr/local/lib/libintl.so.8[/CMD]
but that had no effect on the glib20 configure.

I also tried similar instructions to those recommended for devel/gobject-introspection:
`# cd /usr/ports/devel/glib20
make clean
make deinstall
make install clean`
but that still failed as above.  And sadly, glib20 is gone now so many my ports are stuck.

What is the problem and/or workaround here?

BTW, Erratus, I'm pretty sure you can run portmaster with -R to resume where you left off:
`# portmaster -w -R -r gettext`


----------



## chappjc (Jun 16, 2010)

Erratus said:
			
		

> ```
> # portmaster -w -r gettext
> ```
> fails here like this:
> ...



Turns out a reinstall of gettext did the trick:
`# portmaster gettext`
I guess that is pretty much what DutchDaemon suggested after all.  I thought the original "portmaster -w -r gettext" would have started by upgrading all of gettext.  Apparently a number of binaries were held back even though libintl.so.9 made it.


----------



## jb_fvwm2 (Jun 17, 2010)

I think the location for libintl.so.8 is
/usr/local/lib/compat not /usr/local/lib/compat/pkg
(might fix the problem in post # 26 above).


----------



## chappjc (Jun 17, 2010)

jb_fvwm2 said:
			
		

> I think the location for libintl.so.8 is
> /usr/local/lib/compat not /usr/local/lib/compat/pkg
> (might fix the problem in post # 26 above).



I don't know where libintl.so.8 should be, but portmaster -w put it in /usr/local/lib/compat/pkg
From UPDATING:

```
If there are still ports on your system that are looking for libintl.so.8
  (either in ${LOCALBASE}/lib/compat/pkg, or non-existent), _please_ file
  a PR so that a correct direct dependency can be added.

  Once you are satisfied that no ports still depend on the old versions (such
  as libgettextpo.so.4 and libintl.so.8) you can safely delete them from the
  ${LOCALBASE}/lib/compat/pkg directory if they are present there.
```

In any case, it turned out that gettext 0.18 was not fully installed and that is why glib could not find what it needed.  Even though portmaster claimed to have successfully upgraded gettext from 0.17 to 0.18, half of the files listed in pkg-plist could not be found (could not stat) when portmaster tried to make a backup package immediately before reinstall.  

When I first ran portmaster -r -w gettext, it was using version 2.27 (I think) instead of 2.29, so maybe that was an issue.

I think DutchDaemon's advice to upgrade gettext first by itself and then address the other ports was much wiser than attempting a full downward-recursive upgrade.


----------



## snark (Sep 17, 2010)

this works for me:



```
pkg_delete -f gawk-\*
```



```
portupgrade -rf gettext
```

...
profit!


----------

