Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[ebuild]New FVWM CVS ebuild
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
Dominique_71
Veteran
Veteran


Joined: 17 Aug 2005
Posts: 1869
Location: Switzerland (Romandie)

PostPosted: Sat Oct 20, 2012 11:46 am    Post subject: [ebuild]New FVWM CVS ebuild Reply with quote

This thread is the following of [Ebuild] FVWM CVS.

Here is a working live FVWM ebuild (as of 2012/10/20):
Code:
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=2

inherit autotools cvs eutils flag-o-matic

WANT_AUTOMAKE="1.8"
WANT_AUTOCONF="2.53"
ECVS_SERVER="cvs.fvwm.org:/home/cvs/fvwm"
ECVS_USER="anonymous"
ECVS_PASS="guest"
ECVS_MODULE="fvwm"
ECVS_BRANCH="branch-2_6"

DESCRIPTION="An extremely powerful ICCCM-compliant multiple virtual desktop window manager"
HOMEPAGE="http://www.fvwm.org/"
SRC_URI=""

LICENSE="GPL-2 FVWM"
SLOT="0"
KEYWORDS=""
IUSE="bidi debug doc gtk2-perl netpbm nls perl png readline rplay stroke svg tk truetype vanilla xinerama lock"

S="${WORKDIR}/${ECVS_MODULE}"

COMMON_DEPEND="
   sys-libs/zlib
   x11-libs/libICE
   x11-libs/libSM
   x11-libs/libX11
   x11-libs/libXau
   x11-libs/libxcb
   x11-libs/libXcursor
   x11-libs/libXdmcp
   x11-libs/libXext
   x11-libs/libXfixes
   x11-libs/libXpm
   x11-libs/libXrandr
   x11-libs/libXrender
   bidi? ( dev-libs/fribidi )
   png? ( media-libs/libpng )
   readline? (
      sys-libs/ncurses
      sys-libs/readline
   )
   stroke? ( dev-libs/libstroke )
   svg? ( gnome-base/librsvg )
   truetype? (
      media-libs/fontconfig
      x11-libs/libXft
   )
   xinerama? (
      x11-proto/xineramaproto
      x11-libs/libXinerama
   )"

RDEPEND="${COMMON_DEPEND}
   dev-lang/perl
   gtk2-perl? ( dev-perl/gtk2-perl )
   perl? ( tk? (
         dev-lang/tk
         dev-perl/perl-tk
         >=dev-perl/X11-Protocol-0.56
      )
   )
   rplay? ( media-sound/rplay )
   lock? ( x11-misc/xlockmore )
   userland_GNU? ( sys-apps/debianutils )
   !x86-fbsd? ( netpbm? ( media-libs/netpbm ) )"

DEPEND="${COMMON_DEPEND}
   virtual/pkgconfig
   doc? ( dev-libs/libxslt )
   x11-proto/xextproto
   x11-proto/xproto"

src_unpack() {
   cvs_src_unpack
}

src_prepare() {
#   if ! use vanilla; then
#      epatch "${FILESDIR}/01-TranslucentMenus.patch"
#      epatch "${FILESDIR}/02-ColourBorders.patch"
#      epatch "${FILESDIR}/03-ResizeOutlineThin.patch"
#      epatch "${FILESDIR}/04-Conditionals.patch"
#      epatch "${FILESDIR}/05-FlatSeparators.patch"
#      epatch "${FILESDIR}/06-BorderUnderTitle.patch"
#      epatch "${FILESDIR}/07-InactiveFont.patch"
#      epatch "${FILESDIR}/08-FluxRoundedCorners.patch"
#      epatch "${FILESDIR}/09-TopBorder.patch"
#      epatch "${FILESDIR}/10-ButtonWidth.patch"
#      epatch "${FILESDIR}/11-MultiBorder.patch"
#      epatch "${FILESDIR}/12-FvwmButtonsTips.patch"
#      epatch "${FILESDIR}/13-FvwmIconMan.patch"
#      epatch "${FILESDIR}/14-Hover.patch"
#      epatch "${FILESDIR}/15-FirstItemUnderPointer.patch"
#      epatch "${FILESDIR}/16-ThinGeometryProxy.patch"
#   fi
   eaclocal
   eautoheader
   eautomake
   eautoreconf
}

src_configure() {
   local myconf="--libexecdir=/usr/lib --with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm --enable-package-subdirs --without-gnome"

   # Non-upstream email where bugs should be sent; used in fvwm-bug.
   export FVWM_BUGADDR="desktop-wm@gentoo.org"

   # Recommended by upstream.
   append-flags -fno-strict-aliasing

   # Signed chars are required.
   use ppc && append-flags -fsigned-char

   myconf="${myconf} --disable-gtk"

   use readline && myconf="${myconf} --without-termcap-library"

   econf ${myconf} \
      $(use_enable bidi) \
      $(use_enable debug debug-msgs) \
      $(use_enable debug command-log) \
      $(use_enable doc htmldoc) \
      $(use_enable nls) \
      $(use_enable nls iconv) \
      $(use_enable perl perllib) \
      $(use_with png png-library) \
      $(use_with readline readline-library) \
      $(use_with rplay rplay-library) \
      $(use_with stroke stroke-library) \
      $(use_enable svg rsvg) \
      $(use_enable truetype xft) \
      $(use_enable xinerama) \
      --docdir="/usr/share/doc/${P}"
}

src_install() {
   emake DESTDIR="${D}" docdir="/usr/share/doc/${P}" install || die

   # These are always removed, because gentoo doesn't have anymore
   # a dev-perl/gtk-perl package, so, these modules are pointless.
   rm -f "${D}/usr/share/fvwm/perllib/FVWM/Module/Gtk.pm"
   find "${D}" -name '*FvwmGtkDebug*' -exec rm -f '{}' \; 2>/dev/null

   if ! use lock; then
      find "${D}" -name '*fvwm-menu-xlock' -exec rm -f '{}' \; 2>/dev/null
   fi

   if use perl; then
      if ! use tk; then
         rm -f "${D}/usr/share/fvwm/perllib/FVWM/Module/Tk.pm"
         if ! use gtk2-perl; then # no tk and no gtk2 bindings
            rm -f "${D}/usr/share/fvwm/perllib/FVWM/Module/Toolkit.pm"
            find "${D}/usr/share/fvwm/perllib" -depth -type d -exec rmdir '{}' \; 2>/dev/null
         fi
      fi

      # Now, the Gtk2.pm file, it will require dev-perl/gtk2-perl
      # so it implies gtk2 as well. That's why we need another use flag.
      if ! use gtk2-perl; then
         rm -f "${D}/usr/share/fvwm/perllib/FVWM/Module/Gtk2.pm"
      fi
   else
      # Completely wipe it if ! use perl
      rm -rf "${D}/usr/bin/fvwm-perllib" \
         "${D}/usr/share/man/man1/fvwm-perllib.1"
   fi

   # Utility for testing FVWM behaviour by creating a simple window with
   # configurable hints.
   if use debug; then
      dobin "${S}/tests/hints/hints_test"
      newdoc "${S}/tests/hints/README" README.hints
   fi

   dodir /etc/X11/Sessions
   echo "/usr/bin/fvwm" > "${D}/etc/X11/Sessions/${PN}" || die
   fperms a+x /etc/X11/Sessions/${PN} || die

   dodoc AUTHORS ChangeLog NEWS README \
      docs/{ANNOUNCE,BUGS,COMMANDS,CONVENTIONS} \
      docs/{DEVELOPERS,error_codes,FAQ,TODO,fvwm.lsm}

   # README file for translucent menus patch.
   use vanilla || dodoc "${FILESDIR}"/README.translucency
}

pkg_postinst() {
   einfo "You can find some documentation about the patches at"
   einfo "http://web.archive.org/web/20070912061152/abdn.ac.uk/~u15dm4/fvwm/"
}



Save it as fvwm-9999.ebuild

In the src_prepare() section, you can uncomment the patches you want to install. Be warned that most of them will not work, it is why I commented out the whole patching stuffs. But if you are lucky enough, the ones you want will work. You can get the patches from this direct link, or from fvwm+ 2.6.5-3 on arch linux, and some documentation about those patches on the old thread and on Fvwm Patches on the web archive.

Anyway, I made this ebuild to experiment with the last FVWM code, not for the patches. The most wanted patch for me is the round corners patch, and I don't like the new way it is working.

If you don't want the patches, you can use this ebuild as it is, and without to download the patches. Otherwise, you have to download the patches tarball, and decompress it into the files directory of the ebuild. If you don't know how to process, a good start is Local Overlays.

Before running emerge, you have to digest the ebuild:
Code:
ebuild fvwm-9999.ebuild digest

and to add the following line in /etc/portage/package.keywords:
Code:
x11-wm/fvwm **

_________________
"Confirm You are a robot." - the singularity


Last edited by Dominique_71 on Wed May 08, 2013 8:53 pm; edited 2 times in total
Back to top
View user's profile Send private message
sebaro
Veteran
Veteran


Joined: 03 Jul 2006
Posts: 1141
Location: Romania

PostPosted: Sun Oct 21, 2012 3:37 pm    Post subject: Reply with quote

You can include the patches as use flags:
Code:

FVWM_PATCHES="translucent-menus colour-borders etc"

for i in ${FVWM_PATCHES}; do
   IUSE="${IUSE} -fvwm_patch_$i"
done

src_prepare() {
   if ! use vanilla; then
      use fvwm_patch_traslucent-menus && epatch "${FILESDIR}/01-TranslucentMenus.patch"
      ...
Back to top
View user's profile Send private message
Dominique_71
Veteran
Veteran


Joined: 17 Aug 2005
Posts: 1869
Location: Switzerland (Romandie)

PostPosted: Mon Apr 15, 2013 1:21 pm    Post subject: Reply with quote

I added ECVS_BRANCH into the ebuild. Without it, you will get old code.

About the use flags for the patch, in both case you have to edit a file, so the work is the same. And to add or remove a # is less work. Anyway, I didn't even used this ebuild until today... and I don't enabled any of those patches.
_________________
"Confirm You are a robot." - the singularity
Back to top
View user's profile Send private message
Dominique_71
Veteran
Veteran


Joined: 17 Aug 2005
Posts: 1869
Location: Switzerland (Romandie)

PostPosted: Wed May 08, 2013 8:56 pm    Post subject: Reply with quote

I updated the autotools stuffs to make the ebuild to work with the recent updates.
_________________
"Confirm You are a robot." - the singularity
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum