Bug 521523 - RPM Dependencies for 389 console are incomplete
Summary: RPM Dependencies for 389 console are incomplete
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: 389
Classification: Retired
Component: Install/Uninstall
Version: 1.2.1
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Nathan Kinder
QA Contact: Viktor Ashirov
URL:
Whiteboard:
Depends On:
Blocks: 434915 389_1.2.3
TreeView+ depends on / blocked
 
Reported: 2009-09-06 17:48 UTC by Razvan Corneliu C.R. VILT
Modified: 2015-12-07 16:41 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-12-07 16:41:02 UTC
Embargoed:


Attachments (Terms of Use)

Description Razvan Corneliu C.R. VILT 2009-09-06 17:48:49 UTC
Description of problem:
Having a minimal install of RHEL I had to add the which package in order to run the 389-console. After that, the only thing missing was a font of any kind. While for fonts there should be a friendlier message, "which" should be a dependency of the RPM.

How reproducible:
Everytime

Actual output of the problems below:

[root@ds4 ~]# 389-console 
/usr/bin/389-console: line 22: which: command not found
/usr/bin/389-console: The java program is not in your path, or is not executable.
[root@ds4 ~]# yum install which
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: ftp.ines.lug.ro
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package which.x86_64 0:2.16-7 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================
 Package                  Arch                      Version                     Repository               Size
==============================================================================================================
Installing:
 which                    x86_64                    2.16-7                      base                     24 k

Transaction Summary
==============================================================================================================
Install      1 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 24 k
Is this ok [y/N]: y
Downloading Packages:
which-2.16-7.x86_64.rpm                                                                |  24 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : which                                             [1/1] 

Installed: which.x86_64 0:2.16-7
Complete!
[root@ds4 ~]# 389-console 
Exception in thread "main" java.lang.Error: Probable fatal error:No fonts found.
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1088)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
        at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
        at sun.font.FontManager.findDeferredFont(FontManager.java:916)
        at sun.font.FontManager.findFont2D(FontManager.java:1904)
        at sun.font.FontManager.findFont2D(FontManager.java:1865)
        at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071)
        at sun.font.FontManager.initialiseDeferredFont(FontManager.java:967)
        at sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:254)
        at sun.font.CompositeFont.getSlotFont(CompositeFont.java:334)
        at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:77)
        at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:93)
        at sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:358)
        at sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:349)
        at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:301)
        at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1010)
        at javax.swing.JComponent.getFontMetrics(JComponent.java:1608)
        at javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(BasicLabelUI.java:244)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1643)
        at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1357)
        at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1305)
        at javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(BasicListUI.java:2614)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:184)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:164)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:211)
        at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:405)
        at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:415)
        at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:459)
        at javax.swing.JList.setSelectedIndex(JList.java:2196)
        at javax.swing.plaf.basic.BasicComboPopup.setListSelection(BasicComboPopup.java:1144)
        at javax.swing.plaf.basic.BasicComboPopup.access$300(BasicComboPopup.java:63)
        at javax.swing.plaf.basic.BasicComboPopup$Handler.itemStateChanged(BasicComboPopup.java:982)
        at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1224)
        at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1281)
        at javax.swing.JComboBox.contentsChanged(JComboBox.java:1328)
        at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:117)
        at javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxModel.propertyChange(MetalFileChooserUI.java:1099)
        at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:298)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:291)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:229)
        at java.awt.Component.firePropertyChange(Component.java:8001)
        at javax.swing.JFileChooser.setFileFilter(JFileChooser.java:1432)
        at javax.swing.JFileChooser.addChoosableFileFilter(JFileChooser.java:1127)
        at javax.swing.JFileChooser.updateUI(JFileChooser.java:1785)
        at javax.swing.JFileChooser.setup(JFileChooser.java:374)
        at javax.swing.JFileChooser.<init>(JFileChooser.java:347)
        at javax.swing.JFileChooser.<init>(JFileChooser.java:300)
        at com.netscape.management.client.console.Console.common_init(Unknown Source)
        at com.netscape.management.client.console.Console.<init>(Unknown Source)
        at com.netscape.management.client.console.Console.main(Unknown Source)

Comment 1 Rich Megginson 2009-09-21 19:30:04 UTC
Should be relatively straightforward to add a Requires: which - not sure what the problem is with java and the fonts.

Comment 2 Razvan Corneliu C.R. VILT 2009-09-22 10:34:34 UTC
The problem for Java is quite simple. The console requires some fonts of some kind to be provided to Java in order for it to start up visually. Unfortunately, you can easily install an unusable console due to the lack of any fonts (from the RPM dependencies) on the system. The question is: should we have a generic "provides: fonts" in each font RPM such that yum installs some random pack? Is that really a bug?

Comment 3 Rich Megginson 2009-09-22 13:50:25 UTC
Is there a way to Require fonts in general or Require specific fonts?  That would be easy to add to the spec.

Comment 4 Razvan Corneliu C.R. VILT 2009-09-23 19:03:07 UTC
I'm not really sure if specific fonts would be the right thing. That's the issue that I'm fighting with. Probably the best thing to do would be to just skip this. part. Who knows what fonts Gnome or KDE will default to in the future and we don't want to force the user to use a certain font. Furthermore, if someone wants to use a localized version of the product, something like bitstream vera sans might not apply anymore or might not be optimal in CJK languages or in scripted languages like Arabic or Farsi.

The other option would be to include a single fallback font in the JDK implementation. Technically, it should be a requirement for the Swing/AWT/SWT/Java2D/etc. packages.

Comment 5 Rich Megginson 2009-09-30 14:30:12 UTC
Added the "which" package to the Requires

Checking in F-10/389-console.spec;
/cvs/extras/rpms/389-console/F-10/389-console.spec,v  <--  389-console.spec
new revision: 1.3; previous revision: 1.2
done
Checking in F-11/389-console.spec;
/cvs/extras/rpms/389-console/F-11/389-console.spec,v  <--  389-console.spec
new revision: 1.3; previous revision: 1.2
done
Checking in F-12/389-console.spec;
/cvs/extras/rpms/389-console/F-12/389-console.spec,v  <--  389-console.spec
new revision: 1.4; previous revision: 1.3
done
Checking in devel/389-console.spec;
/cvs/extras/rpms/389-console/devel/389-console.spec,v  <--  389-console.spec
new revision: 1.4; previous revision: 1.3
done

Comment 6 Fedora Update System 2009-10-07 19:59:48 UTC
389-console-1.1.3-5.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/389-console-1.1.3-5.fc12

Comment 7 Fedora Update System 2009-10-07 19:59:54 UTC
389-console-1.1.3-4.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/389-console-1.1.3-4.fc11

Comment 8 Fedora Update System 2009-10-07 20:00:00 UTC
389-console-1.1.3-4.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/389-console-1.1.3-4.fc10

Comment 9 Fedora Update System 2009-11-04 12:08:22 UTC
389-console-1.1.3-4.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 10 Fedora Update System 2009-11-04 12:19:22 UTC
389-console-1.1.3-4.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 11 Brian LaMere 2010-06-10 00:25:58 UTC
(In reply to comment #4)
> I'm not really sure if specific fonts would be the right thing. That's the
> issue that I'm fighting with. Probably the best thing to do would be to just
> skip this. part. Who knows what fonts Gnome or KDE will default to in the
> future and we don't want to force the user to use a certain font. Furthermore,
> if someone wants to use a localized version of the product, something like
> bitstream vera sans might not apply anymore or might not be optimal in CJK
> languages or in scripted languages like Arabic or Farsi.
> 
> The other option would be to include a single fallback font in the JDK
> implementation. Technically, it should be a requirement for the
> Swing/AWT/SWT/Java2D/etc. packages.    

Having just run in to this same problem on a headless Fedora13 system, I'd think that instead of having the exception just barf it would be helpful to catch that exception in the java code, and fail with a more useful message.  Or yes, perhaps the jdk should have had a basic font package as a dependency?  The common fonts is such a small package, and unlike other packages that have package dependencies that make almost no sense, having this one depend on one of the basic font packages (liberation-fonts-common?) seems comparatively reasonable.


Note You need to log in before you can comment on or make changes to this bug.