fastqr 1.0.23 → 1.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CMakeLists.txt +36 -10
- data/VERSION +1 -1
- data/bindings/nodejs/package.json +1 -1
- data/bindings/ruby/lib/fastqr/version.rb +1 -1
- data/bindings/ruby/prebuilt/linux-aarch64/bin/fastqr +0 -0
- data/bindings/ruby/prebuilt/linux-aarch64.tar.gz +0 -0
- data/bindings/ruby/prebuilt/linux-x86_64/bin/fastqr +0 -0
- data/bindings/ruby/prebuilt/linux-x86_64.tar.gz +0 -0
- data/bindings/ruby/prebuilt/macos-arm64/bin/fastqr +0 -0
- data/bindings/ruby/prebuilt/macos-arm64.tar.gz +0 -0
- data/bindings/ruby/prebuilt/macos-x86_64/bin/fastqr +0 -0
- data/bindings/ruby/prebuilt/macos-x86_64.tar.gz +0 -0
- data/scripts/build-binaries.sh +16 -142
- data/src/fastqr.cpp +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af1932a2051445111bc7aa7ed3ec23d1b4dd9f24c1a0c442858f5575b7ae0250
|
|
4
|
+
data.tar.gz: b705519da79543107c186ec5799773b3cbc455fff38ad2ed5732df7f33d24dcc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4f772588dd5e1a9bacff65fdfd658a392328a269ee7bfced9ba33df4c851380848152c1a08162854ae8a78e4896e390835ae93ab100011b329e6b53f058c3062
|
|
7
|
+
data.tar.gz: 9635ed0e8e63879e2572bc53c702869394e6e2277b02cde4fe801f17ac55854500030d1e9afb1a0ed934918f5d7fd276286dea201a62e17dcfa9e281de1db346
|
data/CMakeLists.txt
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
cmake_minimum_required(VERSION 3.15)
|
|
2
|
-
project(fastqr VERSION 1.0.
|
|
2
|
+
project(fastqr VERSION 1.0.24 LANGUAGES CXX C)
|
|
3
3
|
|
|
4
4
|
set(CMAKE_CXX_STANDARD 14)
|
|
5
5
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
@@ -99,15 +99,15 @@ if(NOT BUILD_SHARED_LIBS)
|
|
|
99
99
|
NO_DEFAULT_PATH
|
|
100
100
|
)
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
102
|
+
find_library(QRENCODE_STATIC_LIBRARY
|
|
103
|
+
NAMES libqrencode.a
|
|
104
|
+
PATHS
|
|
105
|
+
/usr/local/lib # Linux: from source build
|
|
106
|
+
${QRENCODE_LIBRARY_DIRS}
|
|
107
|
+
/opt/homebrew/lib # macOS: from Homebrew
|
|
108
|
+
/usr/lib
|
|
109
|
+
NO_DEFAULT_PATH
|
|
110
|
+
)
|
|
111
111
|
|
|
112
112
|
if(PNG_STATIC_LIBRARY AND QRENCODE_STATIC_LIBRARY)
|
|
113
113
|
message(STATUS "✓ Found static libpng: ${PNG_STATIC_LIBRARY}")
|
|
@@ -121,6 +121,32 @@ if(NOT BUILD_SHARED_LIBS)
|
|
|
121
121
|
${PNG_STATIC_LIBRARY}
|
|
122
122
|
z # zlib is needed by libpng
|
|
123
123
|
)
|
|
124
|
+
|
|
125
|
+
# On Linux, ensure full static linking
|
|
126
|
+
if(UNIX AND NOT APPLE)
|
|
127
|
+
# Try to link everything statically on Linux
|
|
128
|
+
target_link_options(fastqr-cli PRIVATE
|
|
129
|
+
-static-libgcc
|
|
130
|
+
-static-libstdc++
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
# Also find static libz if possible
|
|
134
|
+
find_library(ZLIB_STATIC_LIBRARY
|
|
135
|
+
NAMES libz.a
|
|
136
|
+
PATHS
|
|
137
|
+
/usr/local/lib
|
|
138
|
+
/usr/lib
|
|
139
|
+
/usr/lib/x86_64-linux-gnu
|
|
140
|
+
/usr/lib/aarch64-linux-gnu
|
|
141
|
+
NO_DEFAULT_PATH
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
if(ZLIB_STATIC_LIBRARY)
|
|
145
|
+
message(STATUS "✓ Found static libz: ${ZLIB_STATIC_LIBRARY}")
|
|
146
|
+
# Replace z with static version
|
|
147
|
+
target_link_libraries(fastqr-cli PRIVATE ${ZLIB_STATIC_LIBRARY})
|
|
148
|
+
endif()
|
|
149
|
+
endif()
|
|
124
150
|
else()
|
|
125
151
|
message(WARNING "Static libraries not found, falling back to dynamic linking")
|
|
126
152
|
message(WARNING " libpng: ${PNG_STATIC_LIBRARY}")
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.24
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/scripts/build-binaries.sh
CHANGED
|
@@ -72,161 +72,35 @@ fi
|
|
|
72
72
|
cd ..
|
|
73
73
|
|
|
74
74
|
if [[ "$OS" == "linux" ]]; then
|
|
75
|
-
echo "🔧 Building binary for Linux..."
|
|
75
|
+
echo "🔧 Building static binary for Linux..."
|
|
76
76
|
|
|
77
77
|
# Debug: Check the binary first
|
|
78
78
|
echo "🔍 Checking binary file:"
|
|
79
79
|
file build/fastqr
|
|
80
80
|
ls -la build/fastqr
|
|
81
|
-
|
|
81
|
+
|
|
82
|
+
# Get binary size
|
|
83
|
+
if [[ "$ARCH" == "aarch64" ]]; then
|
|
84
|
+
echo "Binary size: $(stat -c%s build/fastqr 2>/dev/null || stat -f%z build/fastqr) bytes"
|
|
85
|
+
else
|
|
86
|
+
echo "Binary size: $(stat -c%s build/fastqr) bytes"
|
|
87
|
+
fi
|
|
82
88
|
|
|
83
89
|
# Check binary dependencies
|
|
84
90
|
echo "📋 Binary dependencies:"
|
|
85
|
-
ldd build/fastqr || echo "
|
|
91
|
+
ldd build/fastqr || echo "Binary is static (no dependencies)"
|
|
86
92
|
|
|
87
93
|
# Test if binary runs
|
|
88
94
|
echo "🧪 Testing binary execution:"
|
|
89
95
|
./build/fastqr -v || echo "Binary test failed"
|
|
90
96
|
|
|
91
|
-
#
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
# For x86_64, try to create AppImage
|
|
99
|
-
echo "🔧 Building AppImage for Linux x86_64..."
|
|
100
|
-
|
|
101
|
-
# Determine the correct AppImage tool for the architecture
|
|
102
|
-
if [[ "$ARCH" == "x86_64" ]]; then
|
|
103
|
-
LINUXDEPLOY_ARCH="x86_64"
|
|
104
|
-
else
|
|
105
|
-
echo "❌ Unsupported Linux architecture: $ARCH"
|
|
106
|
-
exit 1
|
|
107
|
-
fi
|
|
108
|
-
|
|
109
|
-
# Install AppImage tools - try stable version instead of continuous
|
|
110
|
-
echo "📥 Downloading linuxdeploy stable version..."
|
|
111
|
-
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${LINUXDEPLOY_ARCH}.AppImage
|
|
112
|
-
chmod +x linuxdeploy-${LINUXDEPLOY_ARCH}.AppImage
|
|
113
|
-
|
|
114
|
-
# Also try appimagetool as fallback
|
|
115
|
-
echo "📥 Downloading appimagetool as fallback..."
|
|
116
|
-
wget -q https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-${LINUXDEPLOY_ARCH}.AppImage
|
|
117
|
-
chmod +x appimagetool-${LINUXDEPLOY_ARCH}.AppImage
|
|
118
|
-
|
|
119
|
-
# Clean any existing AppDir
|
|
120
|
-
rm -rf AppDir
|
|
121
|
-
|
|
122
|
-
# Create desktop file for AppImage (simplified version)
|
|
123
|
-
cat > fastqr.desktop << 'EOF'
|
|
124
|
-
[Desktop Entry]
|
|
125
|
-
Name=FastQR
|
|
126
|
-
Comment=Fast QR Code Generator
|
|
127
|
-
Exec=fastqr
|
|
128
|
-
Icon=fastqr
|
|
129
|
-
Type=Application
|
|
130
|
-
Categories=Utility;
|
|
131
|
-
EOF
|
|
132
|
-
|
|
133
|
-
# Debug: Show what we created
|
|
134
|
-
echo "Desktop file contents:"
|
|
135
|
-
cat fastqr.desktop
|
|
136
|
-
echo "Files in current directory:"
|
|
137
|
-
ls -la *.desktop 2>/dev/null || echo "No desktop files found"
|
|
138
|
-
|
|
139
|
-
# Check linuxdeploy version and capabilities
|
|
140
|
-
echo "🔍 linuxdeploy info:"
|
|
141
|
-
./linuxdeploy-${LINUXDEPLOY_ARCH}.AppImage --help | head -10 || echo "linuxdeploy help failed"
|
|
142
|
-
|
|
143
|
-
# Create AppImage with desktop file and additional flags for better compatibility
|
|
144
|
-
# Bundle all necessary libraries to avoid GLIBC conflicts
|
|
145
|
-
echo "🔧 Trying linuxdeploy method..."
|
|
146
|
-
if ./linuxdeploy-${LINUXDEPLOY_ARCH}.AppImage \
|
|
147
|
-
--executable build/fastqr \
|
|
148
|
-
--desktop-file fastqr.desktop \
|
|
149
|
-
--appdir AppDir \
|
|
150
|
-
--output appimage \
|
|
151
|
-
--library /usr/local/lib \
|
|
152
|
-
--library /usr/lib/x86_64-linux-gnu \
|
|
153
|
-
--library /lib/x86_64-linux-gnu; then
|
|
154
|
-
echo "✅ linuxdeploy succeeded"
|
|
155
|
-
else
|
|
156
|
-
echo "❌ linuxdeploy failed, trying manual AppImage creation..."
|
|
157
|
-
|
|
158
|
-
# Manual AppImage creation as fallback
|
|
159
|
-
mkdir -p AppDir/usr/bin
|
|
160
|
-
mkdir -p AppDir/usr/share/applications
|
|
161
|
-
cp build/fastqr AppDir/usr/bin/
|
|
162
|
-
chmod +x AppDir/usr/bin/fastqr
|
|
163
|
-
|
|
164
|
-
# Copy desktop file
|
|
165
|
-
cp fastqr.desktop AppDir/usr/share/applications/
|
|
166
|
-
|
|
167
|
-
# Also copy to AppDir root (some tools expect it there)
|
|
168
|
-
cp fastqr.desktop AppDir/
|
|
169
|
-
|
|
170
|
-
# Create a simple icon (desktop file references it)
|
|
171
|
-
echo "🎨 Creating simple icon..."
|
|
172
|
-
# Create a minimal 64x64 PNG icon
|
|
173
|
-
convert -size 64x64 xc:white -fill black -pointsize 24 -gravity center -annotate +0+0 "QR" AppDir/fastqr.png 2>/dev/null || echo "convert not available, creating placeholder"
|
|
174
|
-
|
|
175
|
-
# Copy icon to proper locations
|
|
176
|
-
mkdir -p AppDir/usr/share/pixmaps
|
|
177
|
-
cp AppDir/fastqr.png AppDir/usr/share/pixmaps/ 2>/dev/null || true
|
|
178
|
-
|
|
179
|
-
# Copy dependencies manually
|
|
180
|
-
mkdir -p AppDir/usr/lib
|
|
181
|
-
echo "📋 Copying dependencies..."
|
|
182
|
-
ldd build/fastqr | grep "=>" | awk '{print $3}' | while read libpath; do
|
|
183
|
-
if [ -f "$libpath" ]; then
|
|
184
|
-
echo " Copying: $libpath"
|
|
185
|
-
cp "$libpath" AppDir/usr/lib/
|
|
186
|
-
fi
|
|
187
|
-
done
|
|
188
|
-
|
|
189
|
-
# Also copy specific libraries we know we need
|
|
190
|
-
echo "📋 Copying specific libraries..."
|
|
191
|
-
for lib in libqrencode.so libpng.so libz.so; do
|
|
192
|
-
if [ -f "/usr/local/lib/$lib" ]; then
|
|
193
|
-
echo " Copying: /usr/local/lib/$lib"
|
|
194
|
-
cp "/usr/local/lib/$lib" AppDir/usr/lib/
|
|
195
|
-
elif [ -f "/usr/lib/x86_64-linux-gnu/$lib" ]; then
|
|
196
|
-
echo " Copying: /usr/lib/x86_64-linux-gnu/$lib"
|
|
197
|
-
cp "/usr/lib/x86_64-linux-gnu/$lib" AppDir/usr/lib/
|
|
198
|
-
fi
|
|
199
|
-
done
|
|
200
|
-
|
|
201
|
-
# Create AppRun
|
|
202
|
-
cat > AppDir/AppRun << 'EOF'
|
|
203
|
-
#!/bin/bash
|
|
204
|
-
HERE="$(dirname "$(readlink -f "${0}")")"
|
|
205
|
-
export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}"
|
|
206
|
-
exec "${HERE}/usr/bin/fastqr" "$@"
|
|
207
|
-
EOF
|
|
208
|
-
chmod +x AppDir/AppRun
|
|
209
|
-
|
|
210
|
-
# Extract appimagetool and use it directly (no FUSE needed)
|
|
211
|
-
echo "🔧 Extracting appimagetool..."
|
|
212
|
-
./appimagetool-${LINUXDEPLOY_ARCH}.AppImage --appimage-extract
|
|
213
|
-
chmod +x squashfs-root/AppRun
|
|
214
|
-
|
|
215
|
-
# Debug: Show AppDir structure
|
|
216
|
-
echo "📁 AppDir structure:"
|
|
217
|
-
find AppDir -type f | head -20
|
|
218
|
-
|
|
219
|
-
# Use extracted appimagetool
|
|
220
|
-
echo "🔧 Creating AppImage with extracted appimagetool..."
|
|
221
|
-
./squashfs-root/AppRun AppDir fastqr-${LINUXDEPLOY_ARCH}.AppImage
|
|
222
|
-
fi
|
|
223
|
-
|
|
224
|
-
# Copy AppImage to output directory
|
|
225
|
-
cp fastqr-${LINUXDEPLOY_ARCH}.AppImage "$OUTPUT_DIR/bin/fastqr"
|
|
226
|
-
chmod +x "$OUTPUT_DIR/bin/fastqr"
|
|
227
|
-
|
|
228
|
-
echo "✅ Built AppImage for Linux x86_64 (universal compatibility!)"
|
|
229
|
-
fi
|
|
97
|
+
# Copy the static binary
|
|
98
|
+
echo "🔧 Creating static binary distribution for Linux..."
|
|
99
|
+
cp build/fastqr "$OUTPUT_DIR/bin/fastqr"
|
|
100
|
+
chmod +x "$OUTPUT_DIR/bin/fastqr"
|
|
101
|
+
|
|
102
|
+
echo "✅ Built static binary for Linux $ARCH"
|
|
103
|
+
echo "📦 This binary should work on any Linux distribution without dependencies!"
|
|
230
104
|
else
|
|
231
105
|
# macOS: Copy standalone CLI binary
|
|
232
106
|
cp build/fastqr "$OUTPUT_DIR/bin/fastqr"
|
data/src/fastqr.cpp
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastqr
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.24
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- FastQR Project
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-10-
|
|
11
|
+
date: 2025-10-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|