View previous topic :: View next topic |
Author |
Message |
Dominique_71 Veteran
Joined: 17 Aug 2005 Posts: 1877 Location: Switzerland (Romandie)
|
Posted: Sat Oct 20, 2012 11:46 am Post subject: [ebuild]New FVWM CVS ebuild |
|
|
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:
_________________ "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 |
|
|
sebaro Veteran
Joined: 03 Jul 2006 Posts: 1141 Location: Romania
|
Posted: Sun Oct 21, 2012 3:37 pm Post subject: |
|
|
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 |
|
|
Dominique_71 Veteran
Joined: 17 Aug 2005 Posts: 1877 Location: Switzerland (Romandie)
|
Posted: Mon Apr 15, 2013 1:21 pm Post subject: |
|
|
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 |
|
|
Dominique_71 Veteran
Joined: 17 Aug 2005 Posts: 1877 Location: Switzerland (Romandie)
|
Posted: Wed May 08, 2013 8:56 pm Post subject: |
|
|
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 |
|
|
|
|
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
|
|