You are not logged in.
Pages: 1
Hi,
Xfce 4.10
Distri Xubuntu 13.10
I am currently trying to compile parts of XFCE. As lazy as I am, I typed everything twice. One to see that it doesn't work, second time to have a batch. Maybe I should add the commands to install necessary packages...
#!/bin/bash
export XFCE_PATH="/home/slesa/work/xfce/deploy"
export PKG_CONFIG_PATH="$XFCE_PATH/lib/pkgconfig:$PKG_CONFIG_PATH"
export CFLAGS="-O2 -pipe -Wno-deprecated-declarations"
export XFCE_BRANCH="master"
#export XFCE_BRANCH="xfce-4.10"
export PATH=$XFCE_PATH/bin:$PATH
export LD_LIBRARY_PATH=$XFCE_PATH/lib:$LD_LIBRARY_PATH
#declare -a XFCE_MODULES=("xfce4-docs")
declare -a XFCE_MODULES=(
"xfce4-dev-tools" "libxfce4util" "xfconf" "libxfce4ui" "garcon" "exo"
"xfce4-panel"
"xfdesktop" "xfwm4"
"xfce4-appfinder"
##"xfce4-session"
"xfce4-settings"
"thunar"
##"thunar-desktop-plugin"
"thunar-volman"
"tumbler"
#"xfce4-docs"
)
declare -a XFCE_APPS=(
"xfce4-screenshooter"
"xfce4-taskmanager" "xfce4-terminal"
"orage"
#"parole"
"ristretto" "xfbib" "mousepad"
"xfce4-dict" "xfce4-profile-manager"
)
declare -a XFCE_PLUGINS=(
"xfce4-battery-plugin"
"xfce4-clipman-plugin"
"xfce4-xkb-plugin"
"xfce4-weather-plugin"
"xfce4-indicator-plugin"
"xfce4-mailwatch-plugin"
"xfce4-eyes-plugin"
"xfce4-cpufreq-plugin"
"xfce4-cpugraph-plugin"
"xfce4-datetime-plugin"
##"xfce4-taskbar-plugin"
)
declare -a XFCE_ART=(
##"xfce4-artwork"
"xfce4-icon-theme"
"xfwm4-themes"
)
declare -a XFCE_ADDONS=(
"xfdashboard-0.0.1-alpha_20131224"
)
declare -a DEPENDENCIES=("libtool" "automake" "libglib2.0-dev"
#libxfce4util
"intltool" "gtk-doc-tools"
#xfconf
"libdbus-1-dev" "libdbus-glib-1-dev"
#libxfce4ui
"libx11-dev" "libgtk-3-dev"
##"libgtk2.0-dev"
#xfce4-panel
"libwnck-dev"
#xfce4-docs
"gnome-doc-utils"
#thunar-volman
"libgudev-1.0-dev"
#xfce4-screenshooter
"libsoup2.4-dev"
#xfce4-terminal
"libvte-dev"
#parole
"libgstreamer1.0-dev"
#ristretto
"libexif-dev"
#mousepad
"libgtksourceview2.0-dev"
#xfce-clipman-plugin
"libxtst-dev"
#xfce4-xkb-plugin
"libxklavier-dev" "librsvg2-dev"
#xfce-indicator-plugin
"libindicator3-dev"
#xfce-mailwatch-plugin
"libgcrypt11-dev"
#xfdashboard
#warning, big "libclutter-1.0-dev"
)
autogen=false
cleanup=false
aptcalled=false
buildmodules=true
buildapps=true
buildplugins=true
buildart=true
buildaddons=true
if [ ! -d $XFCE_PATH ]; then
mkdir $XFCE_PATH
fi
function color_red {
echo -e '\E[0;31m'"\033[1m$1\033[0m" # Red
}
function color_green {
echo -e '\E[0;32m'"\033[1m$1\033[0m" # Green
}
function color_off {
tput sgr0
}
function checkout {
local part=$1
local module=$2
pushd . > /dev/null
if [ -d $module ]; then
cd $module
git pull
else
git clone git://git.xfce.org/$part/$module
cd $module
git checkout -b devel origin/$XFCE_BRANCH
fi
popd > /dev/null
}
function call_apt {
color_green "Probably there are some packages missing. Calling apt to install..."
local packages=""
for dep in ${DEPENDENCIES[@]}
do
packages="$packages $dep"
done
sudo apt-get --yes install $packages >> build.log
#sudo apt-get --yes install $dep
aptcalled=true
}
function call_autogen {
local module=$1
color_green "Calling autogen for $module"
local params="--prefix=$XFCE_PATH --enable-maintainer-mode"
if [ "$module" == "xfce4-docs" ]; then
params="$params --enable-gen-doc"
# elif [ "$module" == "libxfce4util" ]; then
# params="$params --disable-debug --enable-gtk3"
# elif [ "$module" == "libxfce4ui" ]; then
# params="$params --disable-debug --enable-gtk3"
else
params="$params --disable-debug --enable-gtk3"
fi
./autogen.sh $params
result=$?
if [ ! $result -eq 0 ];
then
if $aptcalled
then
color_red "Error calling autogen for $module"
exit -2
fi
call_apt
call_autogen $module
fi
}
function build {
local module=$1
color_green "Calling build for $module"
pushd .
cd $module
if $autogen
then
call_autogen $module
elif [ ! -f "config.status" ]; then
call_autogen $module
fi
make
result=$?
if [ ! $result -eq 0 ];
then
color_red "Error while calling make"
exit -1
fi
if [ "$module" != "xfce4-docs" ]; then
make install
result=$?
if [ ! $result -eq 0 ];
then
color_red "Error while calling install"
exit -1
fi
fi
popd
}
while getopts "acdmprx?" optname
do
case "$optname" in
"a")
echo "Calling autogen.sh"
autogen=true
;;
"c")
cleanup=true
;;
"d")
buildaddons=false
;;
"m")
buildmodules=false
;;
"p")
buildplugins=false
;;
"r")
buildart=false
;;
"x")
buildapps=false
;;
"?")
echo "Build XFCE from scratch. Available parameters:"
echo "-a call autogen.sh even if config.status already exists"
echo "-c remove all outputs and directories"
echo "-d do not build the addons"
echo "-m do not build the modules"
echo "-p do not build the plugins"
echo "-r do not build the art"
echo "-x do not build the applications"
exit 2
;;
":")
echo "No argument value for option $OPTARG"
;;
*)
# Should not occur
echo "Unknown error while processing options"
exit 1
;;
esac
done
if $cleanup
then
echo "Cleaning up..."
for module in ${XFCE_MODULES[@]}
do
if [ -d "$module" ]; then
echo "Removing $module"
rm -rf $module
fi
done
for app in ${XFCE_APPS[@]}
do
if [ -d "$app" ]; then
echo "Removing $app"
rm -rf $app
fi
done
for plugin in ${XFCE_PLUGINS[@]}
do
if [ -d "$plugin" ]; then
echo "Removing $plugin"
rm -rf $plugin
fi
done
for art in ${XFCE_ART[@]}
do
if [ -d "$art" ]; then
echo "Removing $art"
rm -rf $art
fi
done
echo "Removing $XFCE_PATH"
rm -rf $XFCE_PATH
echo "ready"
exit 0
fi
if $buildmodules
then
for module in ${XFCE_MODULES[@]}
do
color_green "Processing $module"
checkout "xfce" $module
build $module
done
fi
if $buildapps
then
for app in ${XFCE_APPS[@]}
do
color_green "Processing $app"
checkout "apps" $app
build $app
done
fi
if $buildplugins
then
for plugin in ${XFCE_PLUGINS[@]}
do
color_green "Processing $plugin"
checkout "panel-plugins" $plugin
build $plugin
done
fi
if $buildart
then
for art in ${XFCE_ART[@]}
do
color_green "Processing $art"
checkout "art" $art
build $art
done
fi
if $buildaddons
then
for addon in ${XFCE_ADDONS[@]}
do
color_green "Processing $addon"
if [ -d "$addon" ]; then
build $addon
else
color_red "$addon not found"
fi
done
fi
(Updated)
Now even with colors...
Last edited by Slesa (2013-12-25 20:50:55)
Offline
Looking forward to see you develop this script as it would sure make compilation easier. As an enhancement request, can you script in the ability to clone/pull and build plugins as well? They sit in a different directory ("plugins" instead of "xfce").
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
Oh, thank you for that hint. The reason why I'm writing that script is to see if I can change the IBus plugin - but did not find it yet ;-)
Offline
New version:
- installs all missing dependencies on the fly (as far as I know them)
- supports now apps and plugins
Offline
Update:
- added xfce-art
- added the possibility to not build modules
Packages marked with ## do not build on my system. So far, I found the following problems:
- xfce4-docs:
cp xfhelp4.desktop.in xfhelp4.desktop
- apps/xfce4-taskmanager:
doc/Makefile, install: line missing
- plugins/xfce4-indicator-plugin
libxfce4panel2 not found
- plugins/xfce4-mailwatch-plugin
libgcrypt conditional does not work
- plugins/xfce4-eyes-plugin
ltmain.sh missing
cp xfce4-indicator-plugin/ltmain.sh xfce4-eyes-plugin/
- plugin/xfce4-cpufreq-plugin
mkdir xfce4-cpufreq-plugin/m4
- plugin/xfce4-taskbar-plugin
no autogen.sh
Offline
Packages marked with ## do not build on my system. So far, I found the following problems:
- xfce4-docs:
cp xfhelp4.desktop.in xfhelp4.desktop
...I think this package has been deprecated. There hasn't been any real activity for over 2 years and all Xfce documentation has been moved to the wiki. From within the apps, all(?) help links lead directly to the wiki.
- apps/xfce4-taskmanager:
doc/Makefile, install: line missing
...Also doesn't seem to be much activity here for some time. I wonder if its been deprecated as well.
- plugins/xfce4-indicator-plugin
libxfce4panel2 not found
...you need to build libxfce4util with the "--enable-gtk3" parameter to make it available. I believe this parameter also makes parole build.
- plugins/xfce4-mailwatch-plugin
libgcrypt conditional does not work
...it's a warning that doesn't affect the build. Plugin builds and works fine.
- plugins/xfce4-eyes-plugin
ltmain.sh missing
cp xfce4-indicator-plugin/ltmain.sh xfce4-eyes-plugin/
...Yes, same here. Might be worth creating a bug report for.
- plugin/xfce4-cpufreq-plugin
mkdir xfce4-cpufreq-plugin/m4
...maybe another bug report.
- plugin/xfce4-taskbar-plugin
no autogen.sh
...README file has different build instructions.
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
- xfce4-docs:
...I think this package has been deprecated.
Either it should be moved to archive, or the missing file should be added. But to have a package which does not compile is not really an option, is it?
- apps/xfce4-taskmanager:
...Also doesn't seem to be much activity here for some time. I wonder if its been deprecated as well.
Well, it is the taskmanager. May I can have a look at the open issues. Maybe start with the one-instance-only thing.
- plugins/xfce4-indicator-plugin
...you need to build libxfce4util with the "--enable-gtk3" parameter to make it available. I believe this parameter also makes parole build.
Good point. I am wondering wht gtk3 is not the default... And it is hard to get hints for such optional parameters...
- plugins/xfce4-mailwatch-plugin
libgcrypt conditional does not work
...it's a warning that doesn't affect the build. Plugin builds and works fine.
No, it is an error. because of
configure.ac:93: error: possibly undefined macro: AM_PATH_LIBGCRYPT
- plugins/xfce4-eyes-plugin: ltmain.sh missing
...Yes, same here. Might be worth creating a bug report for.
Bug report initiated.
- plugin/xfce4-cpufreq-plugin: m4
Update: Bug fixed.
- plugin/xfce4-taskbar-plugin: no autogen.sh
...README file has different build instructions.
Right now I only support autogen.sh. Thunar-desktop-plugin has the same problem. IMHO all XFCE modules should rely on the same behaviours.
Edit: Parole does not build because of dependencies I cannot resolve: libgstreamer-video.
Last edited by Slesa (2013-12-25 15:13:15)
Offline
Update: added a few modules, apps, plugins and their dependencies.
Offline
Update:
- added support for alpha versions which are deployed as source code.
- added sfdashboard as such an addon
Offline
Pages: 1
[ Generated in 0.013 seconds, 9 queries executed - Memory usage: 593.41 KiB (Peak: 610.26 KiB) ]