Skip to content

doublecmd: add mariux pre-release version 1.0.10-0 #2846

Merged
merged 4 commits into from
Feb 7, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
278 changes: 278 additions & 0 deletions doublecmd.be0
Original file line number Diff line number Diff line change
@@ -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_
<CONFIG>
<EnvironmentOptions>
<LazarusDirectory Value="$B/fpcupdeluxe/lazarus/"/>
<CompilerFilename Value="$B/fpcupdeluxe/fpc/bin/x86_64-linux/fpc"/>
</EnvironmentOptions>
</CONFIG>
_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