diff --git a/generic/additional-files/projectx.rdef.in b/generic/additional-files/projectx.rdef.in new file mode 100644 index 00000000..c2ee6c52 --- /dev/null +++ b/generic/additional-files/projectx.rdef.in @@ -0,0 +1,26 @@ + +resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "Project X", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource file_types message { + "types" = "application/x-asf", + "types" = "audio" +}; + +resource vector_icon { + $"6E636966020300AAFF05010102044030C34530BC3A30304030BC3A30C3454050" + $"BC3A50C34550504050C34550BC3A020A0101001001158400040A00010000" +}; diff --git a/generic/generic_cmd-1.2.3.recipe b/generic/generic_cmd-1.2.3.recipe index 4220c4a2..eb7185be 100644 --- a/generic/generic_cmd-1.2.3.recipe +++ b/generic/generic_cmd-1.2.3.recipe @@ -3,8 +3,8 @@ DESCRIPTION="Long ProjectX description. Spanning several paragraphs, maybe - containing - bullet points etc. -You can also have really long lines that do not fit in 80 characters and use \ -a backslash to wrap the line." +You can also have really long lines that do not fit in 100 characters and use a backslash to \ +wrap the line." HOMEPAGE="https://homepage/of/projectx.org" COPYRIGHT="2014 Developer name 2016 Another developer's name" @@ -15,9 +15,12 @@ SOURCE_URI="https://github.com/HaikuArchives/ProjectX/archive/projectx-$portVers CHECKSUM_SHA256="000000000000000000000000000000000" SOURCE_DIR="$portVersionedName" PATCHES="projectx-$portVersion.patchset" -ADDITIONAL_FILES="projectx.rdef" -ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +ARCHITECTURES="?all" + +GLOBAL_WRITABLE_FILES=" + settings/projectx.conf keep-old + " PROVIDES=" projectx = $portVersion @@ -31,19 +34,25 @@ BUILD_REQUIRES=" haiku_devel " BUILD_PREREQUIRES=" - cmd:make cmd:gcc + cmd:make " +defineDebugInfoPackage projectx \ + $binDir/projectx + BUILD() { + runConfigure ./configure make $jobArgs } INSTALL() { - mkdir -p $binDir - cp -a objects/projectx $binDir + make install + # or + install -d $binDir + install -t $binDir objects/projectx } TEST() diff --git a/generic/generic_cmd_secondary_arch-1.2.3.recipe b/generic/generic_cmd_secondary_arch-1.2.3.recipe new file mode 100644 index 00000000..ce385c70 --- /dev/null +++ b/generic/generic_cmd_secondary_arch-1.2.3.recipe @@ -0,0 +1,72 @@ +SUMMARY="Short description of ProjectX" +DESCRIPTION="Long ProjectX description. +Spanning several paragraphs, maybe + - containing + - bullet points etc. +You can also have really long lines that do not fit in 100 characters and use a backslash to \ +wrap the line." +HOMEPAGE="https://homepage/of/projectx.org" +COPYRIGHT="2014 Developer name + 2016 Another developer's name" +LICENSE="MIT + GNU GPL v2" +REVISION="1" +SOURCE_URI="https://github.com/HaikuArchives/ProjectX/archive/projectx-$portVersion.tar.gz" +CHECKSUM_SHA256="000000000000000000000000000000000" +SOURCE_DIR="$portVersionedName" +PATCHES="projectx-$portVersion.patchset" + +ARCHITECTURES="?all !x86_gcc2" +SECONDARY_ARCHITECTURES="?x86" + +# On x86_gcc2 we don't want to install the commands in bin//, but in bin/. +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +GLOBAL_WRITABLE_FILES=" + settings/projectx.conf keep-old + " + +PROVIDES=" + projectx$secondaryArchSuffix = $portVersion + cmd:projectx$commandSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + " + +defineDebugInfoPackage projectx \ + $commandBinDir/projectx + +BUILD() +{ + runConfigure --omit-dirs "binDir sbinDir" ./configure \ + --bindir=$commandBinDir \ + --sbindir=$commandBinDir + make $jobArgs +} + +INSTALL() +{ + make install + # or + install -d $commandBinDir + install -t $commandBinDir objects/projectx +} + +TEST() +{ + make check +} diff --git a/generic/generic_font-1.2.3.recipe b/generic/generic_font-1.2.3.recipe index 0800b0b1..90fa4e63 100644 --- a/generic/generic_font-1.2.3.recipe +++ b/generic/generic_font-1.2.3.recipe @@ -3,8 +3,8 @@ DESCRIPTION="Long FontX description. Spanning several paragraphs, maybe - containing - bullet points etc. -You can also have really long lines that do not fit in 80 characters and use \ -a backslash to wrap the line." +You can also have really long lines that do not fit in 100 characters and use a backslash to \ +wrap the line." HOMEPAGE="https://homepage/of/fontx.org" COPYRIGHT="2015 Haikutype" LICENSE="SIL Open Font License v1.1" @@ -24,16 +24,9 @@ REQUIRES="" BUILD_REQUIRES="" BUILD_PREREQUIRES="" -BUILD() -{ - true -} - INSTALL() { FONTDIR=$fontsDir/ttfonts mkdir -p ${FONTDIR} - cp generic-font1.ttf ${FONTDIR} - cp generic-font2.ttf ${FONTDIR} - cp generic-font-bold.ttf ${FONTDIR} + cp -a *.ttf ${FONTDIR} } diff --git a/generic/generic_haiku_app-1.2.3.recipe b/generic/generic_haiku_app-1.2.3.recipe index 4161d3f2..441a36a4 100644 --- a/generic/generic_haiku_app-1.2.3.recipe +++ b/generic/generic_haiku_app-1.2.3.recipe @@ -3,8 +3,8 @@ DESCRIPTION="Long ProjectX description. Spanning several paragraphs, maybe - containing - bullet points etc. -You can also have really long lines that do not fit in 80 characters and use \ -a backslash to wrap the line." +You can also have really long lines that do not fit in 100 characters and use a backslash to \ +wrap the line." HOMEPAGE="https://homepage/of/projectx.org" COPYRIGHT="2014 Developer name 2016 Another developer's name" @@ -17,7 +17,11 @@ SOURCE_DIR="$portVersionedName" PATCHES="projectx-$portVersion.patchset" ADDITIONAL_FILES="projectx.rdef" -ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +ARCHITECTURES="?all" + +GLOBAL_WRITABLE_FILES=" + settings/projectx.rc keep-old # If there is any + " PROVIDES=" projectx = $portVersion @@ -32,10 +36,13 @@ BUILD_REQUIRES=" " BUILD_PREREQUIRES=" makefile_engine - cmd:make cmd:gcc + cmd:make " +defineDebugInfoPackage projectx \ + $appsDir/ProjectX + BUILD() { make $jobArgs OBJ_DIR=objects @@ -43,12 +50,32 @@ BUILD() INSTALL() { - mkdir -p $appsDir - cp -a objects/ProjectX $appsDir - addAppDeskbarSymlink $appsDir/ProjectX -} + install -d $appsDir + install -t $appsDir objects/ProjectX -TEST() -{ - make check + # Create the extra attributes + local APP_SIGNATURE="application/x-vnd.ProjectX" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local MINOR="0" + local LONG_INFO="$SUMMARY" + + # Add them to the rdef file + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/projectx.rdef.in > projectx.rdef + + # Add the resources to the application + addResourcesToBinaries projectx.rdef $appsDir/ProjectX + + # Set the acceptable mimetypes + mimeset -f $appsDir/ProjectX + + # Create a Deskbar icon + addAppDeskbarSymlink $appsDir/ProjectX } diff --git a/generic/generic_haiku_app_secondary_arch-1.2.3.recipe b/generic/generic_haiku_app_secondary_arch-1.2.3.recipe new file mode 100644 index 00000000..234fda95 --- /dev/null +++ b/generic/generic_haiku_app_secondary_arch-1.2.3.recipe @@ -0,0 +1,82 @@ +SUMMARY="Short description of ProjectX" +DESCRIPTION="Long ProjectX description. +Spanning several paragraphs, maybe + - containing + - bullet points etc. +You can also have really long lines that do not fit in 100 characters and use a backslash to \ +wrap the line." +HOMEPAGE="https://homepage/of/projectx.org" +COPYRIGHT="2014 Developer name + 2016 Another developer's name" +LICENSE="MIT + GNU GPL v2" +REVISION="1" +SOURCE_URI="https://github.com/HaikuArchives/ProjectX/archive/projectx-$portVersion.tar.gz" +CHECKSUM_SHA256="000000000000000000000000000000000" +SOURCE_DIR="$portVersionedName" +PATCHES="projectx-$portVersion.patchset" +ADDITIONAL_FILES="projectx.rdef" + +ARCHITECTURES="?all !x86_gcc2" +SECONDARY_ARCHITECTURES="?x86" + +GLOBAL_WRITABLE_FILES=" + settings/projectx.rc keep-old + " + +PROVIDES=" + projectx$secondaryArchSuffix = $portVersion + app:projectx = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc$secondaryArchSuffix + cmd:make + " + +defineDebugInfoPackage projectx$secondaryArchSuffix \ + $appsDir/ProjectX + +BUILD() +{ + make $jobArgs OBJ_DIR=objects +} + +INSTALL() +{ + install -d $appsDir + install -t $appsDir objects/ProjectX + + # Create the extra attributes + local APP_SIGNATURE="application/x-vnd.ProjectX" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local MINOR="0" + local LONG_INFO="$SUMMARY" + + # Add them to the rdef file + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/projectx.rdef.in > projectx.rdef + + # Add the resources to the application + addResourcesToBinaries projectx.rdef $appsDir/ProjectX + + # Set the acceptable mimetypes + mimeset -f $appsDir/ProjectX + + # Create a Deskbar icon + addAppDeskbarSymlink $appsDir/ProjectX +} diff --git a/generic/generic_lib-1.2.3.recipe b/generic/generic_lib-1.2.3.recipe index 210a2bf0..f9e16751 100644 --- a/generic/generic_lib-1.2.3.recipe +++ b/generic/generic_lib-1.2.3.recipe @@ -3,8 +3,8 @@ DESCRIPTION="Long ProjectX description. Spanning several paragraphs, maybe - containing - bullet points etc. -You can also have really long lines that do not fit in 80 characters and use \ -a forward-slash to wrap the line." +You can also have really long lines that do not fit in 100 characters and use a backslash to \ +wrap the line." HOMEPAGE="https://homepage/of/projectx.org" COPYRIGHT="2014 Developer name 2016 Another developer's name" @@ -17,12 +17,16 @@ SOURCE_DIR="$portVersionedName" PATCHES="projectx-$portVersion.patchset" ADDITIONAL_FILES="projectx.rdef" -ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" -SECONDARY_ARCHITECTURES="x86" +ARCHITECTURES="?all ?x86_gcc2" +SECONDARY_ARCHITECTURES="?x86" + +libVersion="$portVersion" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" PROVIDES=" projectx$secondaryArchSuffix = $portVersion - lib:libprojectx$secondaryArchSuffix = $portVersion + lib:libprojectx$secondaryArchSuffix = $libVersionCompat + lib:libprojectx_1$secondaryArchSuffix = $libVersionCompat " REQUIRES=" haiku$secondaryArchSuffix @@ -30,7 +34,8 @@ REQUIRES=" PROVIDES_devel=" projectx${secondaryArchSuffix}_devel = $portVersion - devel:libprojectx$secondaryArchSuffix = $portVersion + devel:libprojectx$secondaryArchSuffix = $libVersionCompat + devel:libprojectx_1$secondaryArchSuffix = $libVersionCompat " REQUIRES_devel=" projectx$secondaryArchSuffix == $portVersion base @@ -40,28 +45,32 @@ BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel " BUILD_PREREQUIRES=" - makefile_engine - cmd:make cmd:gcc$secondaryArchSuffix + cmd:make " +defineDebugInfoPackage projectx$secondaryArchSuffix \ + "$libDir"/libprojectx.so.$libVersion \ + "$libDir"/libprojectx_1.so.$libVersion + BUILD() { - make $jobArgs OBJ_DIR=objects + runConfigure ./configure + make $jobArgs } INSTALL() { - mkdir -p $libDir - mkdir -p $includeDir - - cp -a objects/libprojectx.so $libDir - cp -R include/. $includeDir + make install + # Use prepareInstalledDevelLib if only one library is involved prepareInstalledDevelLibs \ - libprojectx + libprojectx \ + libprojectx_1 + fixPkgconfig + packageEntries devel \ - $developDir + "$developDir" } TEST() diff --git a/generic/generic_python-1.2.3.recipe b/generic/generic_python-1.2.3.recipe new file mode 100644 index 00000000..e6c20237 --- /dev/null +++ b/generic/generic_python-1.2.3.recipe @@ -0,0 +1,77 @@ +SUMMARY="Short description of ProjectX" +DESCRIPTION="Long ProjectX description. +Spanning several paragraphs, maybe + - containing + - bullet points etc. +You can also have really long lines that do not fit in 100 characters and use a backslash to \ +wrap the line." +HOMEPAGE="https://homepage/of/projectx.org" +COPYRIGHT="2014 Developer name + 2016 Another developer's name" +LICENSE="MIT + GNU GPL v2" +REVISION="1" +SOURCE_URI="https://github.com/HaikuArchives/ProjectX/archive/projectx-$portVersion.tar.gz" +CHECKSUM_SHA256="000000000000000000000000000000000" +SOURCE_DIR="$portVersionedName" +PATCHES="projectx-$portVersion.patchset" +ADDITIONAL_FILES="projectx.rdef" + +ARCHITECTURES="any" + +PROVIDES=" + $portName = $portVersion + " +REQUIRES=" + haiku + " + +BUILD_REQUIRES=" + haiku_devel + " + +# add python versions if needed: eg (3.10 3.13) +PYTHON_VERSIONS=(3.10) + +for i in "${!PYTHON_VERSIONS[@]}"; do + pythonVersion=${PYTHON_VERSIONS[$i]} + pythonPackage=python${pythonVersion//.} + + eval "PROVIDES_$pythonPackage=\" + ${portName}_$pythonPackage = $portVersion + \"" + + eval "REQUIRES_$pythonPackage=\" + $REQUIRES + cmd:python$pythonVersion + \"" + + BUILD_REQUIRES+=" + setuptools_$pythonPackage + " + BUILD_PREREQUIRES+=" + cmd:python$pythonVersion + " +done + +INSTALL() +{ + for i in "${!PYTHON_VERSIONS[@]}"; do + pythonVersion=${PYTHON_VERSIONS[$i]} + pythonPackage=python${pythonVersion//.} + + python=python$pythonVersion + + installLocation=$prefix/lib/$python/vendor-packages/ + export PYTHONPATH=$installLocation:$PYTHONPATH + + mkdir -p $installLocation + rm -rf build + + $python setup.py build install \ + --root=/ --prefix=$prefix + + packageEntries $pythonPackage \ + $prefix/lib/python* + done +}