diff --git a/doublecmd.be0 b/doublecmd.be0 new file mode 100755 index 000000000..1764bf7e9 --- /dev/null +++ b/doublecmd.be0 @@ -0,0 +1,278 @@ +#!/usr/bin/env beesh + +# BEE_VERSION doublecmd-1.0.10-0 + +# SRCURL[0]="https://downloads.sourceforge.net/project/doublecmd/Double%20Commander%20Source/doublecmd-${PKGVERSION}-src.tar.gz" +SRCURL+=("https://beehive.molgen.mpg.de/add9601cbca3b9ba1df85e502fec3c97/doublecmd-1.0.10-src.tar.gz") + +# git clone https://github.com/doublecmd/doublecmd.git doublecmd +# SRCURL+=("https://beehive.molgen.mpg.de/b4dc381a2640a41cc881d7f41d0b8cc1/doublecmd-git.tar") + +# https://downloads.sourceforge.net/project/freepascal/Source/3.2.2/fpc-3.2.2.source.tar.gz +#SRCURL+=("https://beehive.molgen.mpg.de/e7649ad0fc9230fdd9493a7fcabbd426/fpc-3.2.2.source.tar.gz") + +# https://downloads.sourceforge.net/project/freepascal/Source/3.2.2/fpcbuild-3.2.2.tar.gz +#SRCURL+=("https://beehive.molgen.mpg.de/3681ae4a208be4f64ec65e832a9a702d/fpcbuild-3.2.2.tar.gz") + +# https://sourceforge.net/projects/freepascal/files/Linux/3.2.2/fpc-3.2.2.x86_64-linux.tar/download +# SRCURL+=("https://beehive.molgen.mpg.de/0186779de0c9caee073fc1394afbee56/fpc-3.2.2.x86_64-linux.tar") + +# https://downloads.sourceforge.net/project/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%202.2.2/lazarus-2.2.2-0.tar.gz +# SRCURL+=("https://beehive.molgen.mpg.de/96a1b21fc709daaa620b057ba22f8692/lazarus-2.2.2-0.tar.gz") + +# git clone --recurse-submodules https://gitlab.com/freepascal.org/fpc/source.git/ fpcsrc +### SRCURL+=("https://beehive.molgen.mpg.de/f7fd6c50cd6787d4a1a481ff41cbeba3/fpcsrc-git.tar") + +# bootstrapper +# https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases/download/bootstrappers_v1.0/fpcup-3_2_2-x86_64-linux-ppcx64 +### SRCURL+=("https://beehive.molgen.mpg.de/b1b37cb1366df1d7dabe64345590d225/fpcup-3_2_2-x86_64-linux-ppcx64 ppcx64") + +# git clone --recurse-submodules https://gitlab.com/freepascal.org/lazarus/lazarus.git/ lazarus +###SRCURL+=("https://beehive.molgen.mpg.de/9c502cc2018b6d0b84fc6898ce79208a/lazarus-git.tar") + +# prebuilt +SRCURL+=("https://beehive.molgen.mpg.de/f1090423fc6c97bb9c6fd6af28e78bb5/dc-1.0.10-fpcupdeluxe.tar") + +# PATCHURL[0]="" + +NPROC=$(nproc) + +export BEE_TMP_BUILDROOT=/scratch/local2/bee-root + +# build_in_sourcedir + +MXDIFF=/dev/shm/mxdiff.dc + +mee_extract() { + for t in "${@}"; do + [[ $t =~ \.(tar.gz)$ ]] && X+=($t); + done + bee_extract "${X[@]}" + +# tar xf ${F}/doublecmd-git.tar --strip-components=1 -C ${S} + + if [ ! -d ${B}/fpcupdeluxe ]; then + mkdir -p ${B} +# tar xf ${F}/dc-1.0.10-fpcupdeluxe.tar -C ${B} + mkdir -p ${B}/fpcupdeluxe + tar xf ${F}/fpcsrc-git.tar -C ${B}/fpcupdeluxe + tar xf ${F}/lazarus-git.tar -C ${B}/fpcupdeluxe + fi +} + +#mee_patch() { + # bee_patch "${@}" +#} + + +mee_configure_pre() { + + rm -rfv /root/.lazarus + find /etc /root -mtime 0 -ls > ${MXDIFF}.1 + trap "find /etc /root -mtime 0 -ls > ${MXDIFF}.2;diff ${MXDIFF}.[12];rm -vf ${MXDIFF}.[12];" EXIT + +# if [ ! -d ${B}/fpcupdeluxe ]; then +if [ 1 = 1 ]; then + mkdir -p ${B}/fpcupdeluxe/fpcbootstrap + + cd ${B}/fpcupdeluxe + + install -m755 -v ${F}/ppcx64 fpcbootstrap + + cd ${B}/fpcupdeluxe/fpcsrc + + git checkout release_3_2_2 + +# patch -N -p1 -i /scratch/local/samplecfg.patch + + local _MOPS=( + --jobs=${NPROC} + FPMAKEOPT=--threads=${NPROC} + PP=${B}/fpcupdeluxe/fpcbootstrap/ppcx64 + FPCMAKE=${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmake + PPUMOVE=${B}/fpcupdeluxe/fpc/bin/x86_64-linux/ppumove + PREFIX=${B}/fpcupdeluxe/fpc + INSTALL_PREFIX=${B}/fpcupdeluxe/fpc + FPCDIR=${B}/fpcupdeluxe/fpcsrc + INSTALL_BINDIR=${B}/fpcupdeluxe/fpc/bin/x86_64-linux + OS_SOURCE=linux + CPU_SOURCE=x86_64 + OS_TARGET=linux + CPU_TARGET=x86_64 + REVSTR=release_3_2_2-0-g0d122c4953 + REVINC=force + OPT="-Sg -vw-n-h-l-d-u-t-p-c-" + --directory=${B}/fpcupdeluxe/fpcsrc + ) + +# make "${_MOPS[@]}" distclean + make "${_MOPS[@]}" all install + + # Created launcher script for FPC:/home/wwwutz/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.sh +set -x + cat >${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.sh <<_EOT_ +#!/bin/sh +${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc -n @${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg "\$@" +_EOT_ + + chmod 755 ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.sh + + cd ${B}/fpcupdeluxe/fpc + + ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmkcfg -1 -d fpctargetos=linux -d basepath=${B}/fpcupdeluxe/fpc -o ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fp.cfg + + ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmkcfg -2 -d basepath=${B}/fpcupdeluxe/fpc -o ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fp.ini + + mkdir -vp ${B}/fpcupdeluxe/fpcpkgconfig + + ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmkcfg -3 -p -d LocalRepository=${B}/fpcupdeluxe/packages.fppkg/ -d CompilerConfigDir=${B}/fpcupdeluxe/fpcpkgconfig/ -d GlobalPath=${B}/fpcupdeluxe/fpc/lib/fpc/\{CompilerVersion\}/ -d GlobalPrefix=${B}/fpcupdeluxe/fpc -d UserPathSuffix=users -d basepath=${B}/fpcupdeluxe/fpc -o ${B}/fpcupdeluxe/fpcpkgconfig/fppkg.cfg + + ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmkcfg -4 -d GlobalPrefix=${B}/fpcupdeluxe/fpc -d fpcbin=${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.sh -d fpctargetos=linux -d fpctargetcpu=x86_64 -d basepath=${B}/fpcupdeluxe/fpc -o ${B}/fpcupdeluxe/fpcpkgconfig/default + +# ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmkcfg -d basepath=${B}/fpcupdeluxe/fpc -o ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg + ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmkcfg -d basepath=${B}/fpcupdeluxe/fpc/lib/fpc/3.2.2 -o ${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg + +# fehlte offenbar + cat >>${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg <<_EOT_ +-FD${B}/fpcupdeluxe/fpc/bin/x86_64-linux/ +-Fl${B}/fpcupdeluxe/lazarus/lcl/interfaces/qt5/cbindings +_EOT_ + + # + # + ln -vs ../../lib/fpc/3.2.2/ppcx64 bin/x86_64-linux/ppcx64 + # + # lazarus + # + + cd ${B}/fpcupdeluxe/lazarus + + git config --local advice.detachedHead false # no-ise + + git checkout lazarus_2_2_4 + + # + # libqt5pas.so + # + cd ${B}/fpcupdeluxe/lazarus/lcl/interfaces/qt5/cbindings + qmake + make -j${NPROC} + + local _MOPS=( + --directory=${B}/fpcupdeluxe/lazarus + FPC=${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.sh + PP=${B}/fpcupdeluxe/fpc/lib/fpc/3.2.2/ppcx64 + USESVN2REVISIONINC=0 + PREFIX=${B}/fpcupdeluxe/lazarus + INSTALL_PREFIX=${B}/fpcupdeluxe/lazarus + LAZARUS_INSTALL_DIR=${B}/fpcupdeluxe/lazarus/ + FPCDIR=${B}/fpcupdeluxe/fpc + FPCMAKE=${B}/fpcupdeluxe/fpc/bin/x86_64-linux/fpcmake + PPUMOVE=${B}/fpcupdeluxe/fpc/bin/x86_64-linux/ppumove + OPT="-vw-n-h-l-d-u-t-p-c- -g -gl" + LCL_PLATFORM=qt5 + ) + + make "${_MOPS[@]}" lazbuild +fi # if [ ! -d ${B}/fpcupdeluxe ]; then + +} + +#mee_configure() { +# bee_configure "${@}" +#} + +mee_build() { + cd ${S} + +cat >$S/build.bee.mkbuild <<_EOF_ +#!/bin/sh +set -x +set -e +B=${B} +INSTANTFPCCACHE=$B/instantfpccache + +# https://wiki.freepascal.org/Configuration_file +# /etc/fpc.cfg suchen +PPC_CONFIG_PATH=$B/fpcupdeluxe/fpc/bin/x86_64-linux/ +export PPC_CONFIG_PATH + +sed -e 's|export lazbuild=\\$.*|export lazbuild="${B}/fpcupdeluxe/lazarus/lazbuild --pcp=$B --lazarusdir=$B/fpcupdeluxe/lazarus --verbose --verbose-pkgsearch "|' \ + -e 's|set -e|set -e\nPATH=${B}/fpcupdeluxe/fpc/bin/x86_64-linux:${B}/fpcupdeluxe/lazarus:${PATH}|' \ +build.sh > build.bee.sh + +# -e 's|components/build.sh|components/build.bee.sh|' \ + +# sed -e 's| /etc/fpc.cfg| $B/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg|' components/build.sh > components/build.bee.sh +# chmod 755 components/build.bee.sh + +cat >$B/environmentoptions.xml <<_EOXML_ + + + + + + +_EOXML_ + +# fpc chsdet findet fpc.cfg nicht, weil nicht in /etc +# dummfix: reinsymlinken +#ln -fs $B/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg components/ +#ln -fs ../fpc.cfg components/chsdet/ + +export lcl=qt5 + +sh -x ./build.bee.sh components qt5 + +# ln -fs $B/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg + +sh -x ./build.bee.sh plugins + +# ln -fs $B/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg + +sh -x ./build.bee.sh doublecmd + +exit + +_MOPS=( + --lazarusdir=${B}/fpcupdeluxe/lazarus + --verbose --verbose --verbose-pkgsearch + --create-makefile + --pcp=${B} + --widgetset=qt5 +) + +lazbuild "${_MOPS[@]}" src/doublecmd.lpi + +_EOF_ + +chmod 755 ${S}/build.bee.mkbuild +${S}/build.bee.mkbuild + +cat >${B}/doublecmd <<_EOF_ +#!/bin/bash +export QT_XCB_GL_INTEGRATION=none +export LD_LIBRARY_PATH=/usr/libexec/doublecmd${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH +exec /usr/libexec/doublecmd/doublecmd "${@}" +_EOF_ + +} + +mee_install() { + + # wrapper + mkdir -vp ${D}/usr/bin + install -v -m0755 ${B}/doublecmd ${D}/usr/bin + # binary + mkdir -vp ${D}/usr/libexec/doublecmd + install -v -m0755 ${S}/doublecmd ${D}/usr/libexec/doublecmd + # libs + cp -vax ${B}/fpcupdeluxe/lazarus/lcl/interfaces/qt5/cbindings/libQt5Pas.so* ${D}/usr/libexec/doublecmd +} + +mee_install_post() { + echo "./contentdiff.pl /usr/share/bee/${PKGFULLNAME}-[0-9]*/CONTENT ${D}/" + echo "( cd ${D}; find . -ls )" +} + +# QT_XCB_GL_INTEGRATION=none LD_LIBRARY_PATH=/scratch/local2/bee-root/doublecmd/doublecmd-1.0.10-0/image/usr/lib ./doublecmd