Code not very portable. It installs on Fedora but doesn't move to custom locations easily

Bug #503554 reported by goozbach
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
byobu
Fix Released
High
Dustin Kirkland 
byobu (Ubuntu)
Fix Released
High
Unassigned

Bug Description

I've done the majority of the work in my "portability branch" to put byobu under autotools support.

This will make it much easier to incorporate byobu into package building systems.

There are some static paths I may have missed, but the majority of the work is done.

--
Derek

Changed in byobu:
status: New → Triaged
importance: Undecided → High
assignee: nobody → Dustin Kirkland (kirkland)
Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Hi goozbach-

So I've moved everything around in the source branch, hopefully to make it more portable. Does that help? Is the autoconf/automake stuff easier now? Is your branch up to date?

Revision history for this message
ermo | Rune Morling (ermo) wrote :

I'd be very interested in helping out with this as I'm currently simply copying <srcdir>/{etc,usr} to my <buildroot> and I'm also including a Makefile snippet copied from the .deb source to generate translations in a clean way on Foresight Linux.

goozbach: Do you by any chance have an up-to-date autotooled branch of Byobu up your sleeve that I could help test?

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

goozbach-

Hiya, so Maverick is open for development and I have a little window to do some Byobu development... Given the current state of the branch, what else would you like to see moved around? If there's any chance of avoiding autoconf, I'd like to try to avoid them.

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

ermo-

Hi, what's "unclean" about the current translations setup? I'd like to get that fixed for you, if possible.

Revision history for this message
ermo | Rune Morling (ermo) wrote :
Download full text (3.2 KiB)

Dustin-

I was referring to conary recipe 'cleanliness' :)

I pruned the Makefile in debian/rules to only contain this:

[ermo@mrwing byobu]$ cat Makefile
# -*- makefile -*-

# Ripped from debian/rules Makefile

PKG=byobu

update-pot:
 rm -f po/${PKG}.pot
 xgettext -f po/POTFILES.Shell -o po/${PKG}.pot -L Shell
 xgettext -f po/POTFILES.Python -o po/${PKG}.pot -L Python -j
 for po in po/*.po ; do \
  msgmerge $${po} po/${PKG}.pot -o $${po} ; \
 done

install-po: update-pot
 for po in po/*.po ; do \
  lang=$${po#po/}; lang=$${lang%.po}; \
  mkdir -p usr/share/locale/$${lang}/LC_MESSAGES/; \
  msgfmt $${po} -o usr/share/locale/$${lang}/LC_MESSAGES/${PKG}.mo ; \
 done

install: install-po
[ermo@mrwing byobu]$

This allows me to generate the translations in in a clean way in the recipe:

[ermo@mrwing byobu]$ cat byobu.recipe
# Copyright (c) 2010 Foresight Linux
# This file is distributed under the terms of the MIT License.
# A copy is available at http://www.rpath.com/permanent/mit-license.html

class Byobu(BuildPackageRecipe):
    name = 'byobu'
    version = '2.75'
    buildRequires = ['bash:runtime', 'desktop-file-utils:runtime', 'gettext:runtime',
                     'newt:python', 'python:devel', 'screen:runtime' ]
    packageSummary = "Byobu is to GNU Screen what GNOME is to Xorg."
    packageDescription = """
    Byobu is a Japanese term for decorative, multi-panel screens that serve as folding room dividers.
    As an open source project, Byobu is an elegant enhancement of the otherwise functional, plain,
    practical GNU Screen. Byobu includes an enhanced profile and configuration utilities for the GNU
    screen window manager, such as toggle-able system status notifications.

    See http://launchpad.net/byobu for project details.
    """

    def setup(r):
        r.addArchive('http://launchpad.net/%(name)s/trunk/%(version)s/+download/%(name)s_%(version)s.orig.tar.gz')
        # Add translations using a debian/rules Makefile snippet
        # -- note that this does not install byobu as such!
        r.addSource('Makefile')
        r.Copy('Makefile', '%(builddir)s')
        # Need to use the 'install' target to generate the translation succesfully
        r.MakeInstall()
        # Do the actual install.
        # Byobu appears to follow the Linux FHS, so this is the easiest way to do it
        # -- incidentally, this is also the way the .deb does it.
        r.Run('cp -arv %(builddir)s/{etc,usr} %(destdir)s')
        # Replace Ubuntu-specific /var/run/screen dir to FL's /tmp/uscreens/ dir
        r.Replace('\/var\/run\/screen', '/tmp/uscreens', '%(sysconfdir)s/%(name)s/socketdir')
        # FIXME: May need to fix more perms
        r.SetModes('%(bindir)s/%(name)s.*', 0755)
        # Avoid /usr/bin/byobu-config being tagged as :devel
        # r.ComponentSpec('runtime', '%(destdir)s/usr/bin/byobu-config') <- won't work
        r.ComponentSpec('runtime', '%(bindir)s/%(name)s-config')
        # Make sure that we include /usr/share/doc/byobu/help.txt in the :doc trove
        # - if we don't, the help text in the menu won't show when selected.
        r.ComponentSpec('doc', '%(docdir)s/%(name)s/help.txt')
[ermo@mrwing byob...

Read more...

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Thanks for this bug report, and for all the information. I'm going to close this bug for now, since Byobu is in the official Fedora distribution now:
 * https://admin.fedoraproject.org/pkgdb/applications/Byobu%20Window%20Manager

Changed in byobu:
status: Triaged → Fix Released
Changed in byobu:
status: Fix Released → In Progress
Changed in byobu (Ubuntu):
status: New → In Progress
importance: Undecided → High
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package byobu - 3.0-0ubuntu1

---------------
byobu (3.0-0ubuntu1) maverick; urgency=low

  [ Dustin Kirkland ]
  * usr/bin/byobu: allow users to specify their own -S, LP: #610134
  * Makefile.am, configure.ac, etc/byobu/Makefile.am, usr/bin/Makefile.am,
    usr/bin/byobu, usr/bin/byobu-config, usr/bin/byobu-janitor,
    usr/bin/byobu-launcher, usr/bin/byobu-select-profile,
    usr/bin/byobu-select-session, usr/bin/byobu-status,
    usr/lib/byobu/Makefile.am, usr/lib/byobu/ec2_cost,
    usr/share/applications/Makefile.am, usr/share/byobu/ec2/Makefile.am,
    usr/share/byobu/keybindings/Makefile.am,
    usr/share/byobu/keybindings/f-keys,
    usr/share/byobu/keybindings/screen-escape-keys,
    usr/share/byobu/pixmaps/Makefile.am,
    usr/share/byobu/profiles/Makefile.am,
    usr/share/byobu/tests/Makefile.am,
    usr/share/byobu/tests/byobu-time-notifications,
    usr/share/byobu/windows/Makefile.am, usr/share/doc/byobu/Makefile.am,
    usr/share/man/man1/Makefile.am:
    - Positively massive changeset, enabling users of Unix/Linux distros
      for which Byobu is not packaged (as well as non-root users of any
      Unix/Linux distro) to $(./configure && make && make install) byobu!
      LP: #609851, #608995, #503554
    - I think this is a significant enough milestone to bump version to 3.0
  * install, manpages, rules: update package build/install procedures to
    use configure && make && make install
  * debian/control:
    - depend on automake
    - autoconf for new build
    - bump standards
    - use breaks instead of conflicts
  * AUTHORS, README: update email address and install instructions
  * debian/rules, usr/bin/byobu-export, usr/share/man/man1/byobu-export.1:
    - deprecate the byobu-export utility
  * usr/share/man/man1/byobu.1: fix lintian warning about hyphen
  * usr/share/applications/byobu.desktop: fix lintian warning about encoding
    key
  * debian/source/format: added
  * configure.ac: fixup BYOBU_PREFIX in the configure, LP: #611157
  * rpm/byobu.spec: deprecated; byobu is now in Fedora proper; please use
    that package if you require RPMs
  * configure.ac, usr/bin/byobu: bump to version 3.0
 -- Dustin Kirkland <email address hidden> Mon, 02 Aug 2010 20:14:08 -0400

Changed in byobu (Ubuntu):
status: In Progress → Fix Released
Changed in byobu:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.