Initial commit

This commit is contained in:
2026-07-30 13:45:31 +03:00
commit 0f658d0ae3
5 changed files with 94 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# Ignore BPM archives and signatures
*.bpm
*.bpm.sig
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
URL="ftp://ftp.gnu.org/gnu/vcdimager/"
# Get version number from FTP server
VERSION=$(curl -s --list-only "$URL" | grep -E '^vcdimager-[0-9]{1,}\.[0-9]{1,}(\.[0-9]{1,})?.tar.gz$' | cut -d '-' -f2 | sort -V | tail -n1)
# Remove '.tar.gz' suffix from VERSION variable
VERSION=${VERSION//.tar.gz/}
echo "$VERSION"
+17
View File
@@ -0,0 +1,17 @@
name: vcdimager
description: full-featured mastering suite for authoring, disassembling and analyzing Video CDs and Super Video CDs
version: 2.0.1
revision: 1
url: https://www.gnu.org/software/vcdimager/
license: GPL-2.0-or-later
architecture: any
type: source
depends:
- libcdio
- libxml2
- popt
downloads:
- url: https://ftpmirror.gnu.org/gnu/vcdimager/vcdimager-${BPM_PKG_VERSION}.tar.gz
extract_to: ${BPM_SOURCE}
extract_strip_components: 1
checksum: 67515fefb9829d054beae40f3e840309be60cda7d68753cafdd526727758f67a
+26
View File
@@ -0,0 +1,26 @@
# This is the recipe.sh script. It is executed by BPM in a temporary directory when compiling a source package
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
# The prepare function is executed in the root of the temp directory
# This function is used for putting downloaded files to the correct location or applying patches
prepare() {
cd "$BPM_SOURCE"
patch -Np1 -i "$BPM_WORKDIR"/libxml214.diff
}
# The build function is executed in the source directory
# This function is used to compile the source code
build() {
./configure --prefix=/usr
make
}
# The package function is executed in the source directory
# This function is used to move the compiled files into the output directory
package() {
make DESTDIR="$BPM_OUTPUT" install
# Install package license
install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/vcdimager/COPYING
}
+37
View File
@@ -0,0 +1,37 @@
diff -Nurp vcdimager-2.0.1/frontends/xml/vcd_xml_common.c vcdimager-2.0.1-libxml214/frontends/xml/vcd_xml_common.c
--- vcdimager-2.0.1/frontends/xml/vcd_xml_common.c 2018-01-03 21:17:37.000000000 +0100
+++ vcdimager-2.0.1-libxml214/frontends/xml/vcd_xml_common.c 2025-04-26 05:22:03.008769534 +0200
@@ -242,17 +242,27 @@ _convert (const char in[], const char en
temp = size - 1;
if (from) {
- if (NULL != handler->output)
- ret = handler->output (out, &out_size, (const unsigned char *) in, &temp);
- else
+ if (!(handler->flags & 2) && NULL != handler->output.func)
+ ret = handler->output.func (handler->outputCtxt, out, &out_size, (const unsigned char *) in, &temp, 1);
+ if ((handler->flags & 2) && NULL != handler->output.legacyFunc)
+ ret = handler->output.legacyFunc (out, &out_size, (const unsigned char *) in, &temp);
+ else {
+ xmlCharEncCloseFunc(handler);
return strdup(in);
+ }
} else {
- if (NULL != handler->input)
- ret = handler->input (out, &out_size, (const unsigned char *) in, &temp);
- else
+ if (!(handler->flags & 2) && NULL != handler->input.func)
+ ret = handler->input.func (handler->inputCtxt, out, &out_size, (const unsigned char *) in, &temp, 1);
+ if ((handler->flags & 2) && NULL != handler->input.legacyFunc)
+ ret = handler->input.legacyFunc (out, &out_size, (const unsigned char *) in, &temp);
+ else {
+ xmlCharEncCloseFunc(handler);
return strdup(in);
+ }
}
+ xmlCharEncCloseFunc(handler);
+
if (ret < 0 || (temp - size + 1))
{
free (out);