Bug 868492

Summary: alacarte source code bundled in cinnamon
Product: [Fedora] Fedora Reporter: Michael Scherer <misc>
Component: cinnamonAssignee: leigh scott <leigh123linux>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: a.badger, leigh123linux
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-22 06:24:23 EST Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 504493    

Description Michael Scherer 2012-10-20 06:02:09 EDT
It seems the source code of Alacarte is now embedded in cinnamon. That's likely a policy violation ( no library bundling ), and as such, should be discussed with FESCO 

 $ rpm -ql cinnamon | grep Ala
/usr/share/cinnamon-menu-editor/Alacarte
/usr/share/cinnamon-menu-editor/Alacarte/MainWindow.py
/usr/share/cinnamon-menu-editor/Alacarte/MainWindow.pyc
/usr/share/cinnamon-menu-editor/Alacarte/MainWindow.pyo
/usr/share/cinnamon-menu-editor/Alacarte/MenuEditor.py
/usr/share/cinnamon-menu-editor/Alacarte/MenuEditor.pyc
/usr/share/cinnamon-menu-editor/Alacarte/MenuEditor.pyo
/usr/share/cinnamon-menu-editor/Alacarte/__init__.py
/usr/share/cinnamon-menu-editor/Alacarte/__init__.pyc
/usr/share/cinnamon-menu-editor/Alacarte/__init__.pyo
/usr/share/cinnamon-menu-editor/Alacarte/config.py
/usr/share/cinnamon-menu-editor/Alacarte/config.pyc
/usr/share/cinnamon-menu-editor/Alacarte/config.pyo
/usr/share/cinnamon-menu-editor/Alacarte/util.py
/usr/share/cinnamon-menu-editor/Alacarte/util.pyc
/usr/share/cinnamon-menu-editor/Alacarte/util.pyo
Comment 1 leigh scott 2012-10-20 06:11:12 EDT
The Alacarte code is a fork like cinnamon and not covered by no library bundling IMO (where the lib?).
Comment 2 leigh scott 2012-10-20 06:36:17 EDT
And for the record it isn't new

https://bugzilla.redhat.com/show_bug.cgi?id=771252#c44
Comment 3 Toshio Ernie Kuratomi 2012-10-20 12:43:51 EDT
Note: There does not need to be a "library" for the no bundled library rule to kick in.  We're trying to prevent bundled code.

In general, to qualify for a fork status from the FPC, there needs to be a separate upstream that is able and willing to take care of the problems in the code, the code needs to have necessary modifications from what's shipped by the original upstream, and the changes need to have been attempted to be merged back to the original upstream and that attempt failed.  Depending on the situation, FPC may be more strict about whether it considers this to be okay or not.

alacarte might qualify for that but I'm not sure.  Looking at the sources, differences with upstream are: it disables the help button, it uses a different root menu than standard alacarte, and it has a differently named script to invoke it.

Not sure about the help button -- does alacarte's help make reference to gnome?  Since it's a xdg menu editor, probably should just submit patches to make the documentation more generic

For the root menu -- it looks like cinnamon is supposed to set the environment variable XDG_MENU_PREFIX to "cinnamon-" when a user logs in.

The script could just be a symlink if branding is important.

Please apply to the FPC for a bundling exception.

If cinnamon is granted an exception for alacarte, there are some things to fix:
* license tag needs to include LGPLv2+ as alacarte is a self-contained program and it's under LGPLv2+ (See https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?rd=Packaging/LicensingGuidelines#Multiple_Licensing_Scenarios )

* /usr/bin/cinnamon-menu-editor has this:
#!/usr/bin/python -OOt

-OO should not be used by scripts we package.  It can cause problems because it strips out certain pieces of information when it byte compiles python code that other programs may depend on.  It also does not provide any meaningful performance improvements.  Change it to this:

#!/usr/bin/python -t
Comment 4 leigh scott 2012-10-20 13:40:09 EDT
(In reply to comment #3)
> Note: There does not need to be a "library" for the no bundled library rule
> to kick in.  We're trying to prevent bundled code.
> 
> In general, to qualify for a fork status from the FPC, there needs to be a
> separate upstream that is able and willing to take care of the problems in
> the code, the code needs to have necessary modifications from what's shipped
> by the original upstream, and the changes need to have been attempted to be
> merged back to the original upstream and that attempt failed.  Depending on
> the situation, FPC may be more strict about whether it considers this to be
> okay or not.
> 
> alacarte might qualify for that but I'm not sure.  Looking at the sources,
> differences with upstream are: it disables the help button, it uses a
> different root menu than standard alacarte, and it has a differently named
> script to invoke it.
> 
> Not sure about the help button -- does alacarte's help make reference to
> gnome?  Since it's a xdg menu editor, probably should just submit patches to
> make the documentation more generic
> 
> For the root menu -- it looks like cinnamon is supposed to set the
> environment variable XDG_MENU_PREFIX to "cinnamon-" when a user logs in.
> 
> The script could just be a symlink if branding is important.
> 
> Please apply to the FPC for a bundling exception.
> 
> If cinnamon is granted an exception for alacarte, there are some things to
> fix:
> * license tag needs to include LGPLv2+ as alacarte is a self-contained
> program and it's under LGPLv2+ (See
> https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?rd=Packaging/
> LicensingGuidelines#Multiple_Licensing_Scenarios )
> 
> * /usr/bin/cinnamon-menu-editor has this:
> #!/usr/bin/python -OOt
> 
> -OO should not be used by scripts we package.  It can cause problems because
> it strips out certain pieces of information when it byte compiles python
> code that other programs may depend on.  It also does not provide any
> meaningful performance improvements.  Change it to this:
> 
> #!/usr/bin/python -t

I will fix the license issue and remove -OO for now.

There are more minor changes waiting to be merged

https://github.com/linuxmint/Cinnamon/pull/1256
Comment 5 Michael Scherer 2013-01-11 08:07:46 EST
Was the bundling exception asked ? I cannot find it in the trac, nor found where this was granted  on the wiki. 
Or was it removed from upstream code so this bug can be closed ?
Comment 6 Fedora End Of Life 2013-12-21 10:52:38 EST
This message is a reminder that Fedora 18 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 18. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '18'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 18's end of life.

Thank you for reporting this issue and we are sorry that we may not be 
able to fix it before Fedora 18 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior to Fedora 18's end of life.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.
Comment 7 Michael Scherer 2013-12-22 05:04:49 EST
Still valid in F20
Comment 8 leigh scott 2013-12-22 06:24:23 EST
(In reply to Michael Scherer from comment #7)
> Still valid in F20

It might be valid but alacarte doesn't work for cinnamon.
Comment 9 leigh scott 2013-12-22 06:49:44 EST
(In reply to leigh scott from comment #8)
> (In reply to Michael Scherer from comment #7)
> > Still valid in F20
> 
> It might be valid but alacarte doesn't work for cinnamon.

TBH there isn't much alacarte left now

[leigh@main-pc Cinnamon-2.0.14]$ grep -i alacarte -r
files/usr/lib/cinnamon-menu-editor/cme/util.py:#   Alacarte Menu Editor - Simple fd.o Compliant Menu Editor
files/usr/lib/cinnamon-menu-editor/cme/MenuEditor.py:#   Alacarte Menu Editor - Simple fd.o Compliant Menu Editor
files/usr/lib/cinnamon-menu-editor/cme/MenuEditor.py:        # XXX - don't append root menu name, alacarte doesn't
files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py:#   Alacarte Menu Editor - Simple fd.o Compliant Menu Editor
files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py:        Gtk.Window.set_default_icon_name('alacarte')
files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py:        file_path = os.path.join(util.getUserDirectoryPath(), util.getUniqueFileId('alacarte-made', '.directory'))
files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py:        file_path = os.path.join(util.getUserItemPath(), util.getUniqueFileId('alacarte-made', '.desktop'))
files/usr/share/applications/cinnamon-menu-editor.desktop:Icon=alacarte