浏览代码

determine dependencies and installed size

Johann 5 年之前
父节点
当前提交
cb890fcc9d

+ 0 - 0
lazpaint/release/debian/changelog → lazpaint/release/debian/debian/changelog


+ 4 - 2
lazpaint/release/debian/linux32/debian/control → lazpaint/release/debian/debian/control

@@ -1,9 +1,11 @@
+Source: lazpaint-dev
+Build-Depends: lazarus-project (>= 2.0.2), dpkg-dev (>= 7)
 Package: lazpaint
 Version: 7.1.3
 Section: graphics
 Priority: optional
-Architecture: i386
-Depends: 
+Architecture: any
+Depends: ${shlibs:Depends}
 Maintainer: circular <[email protected]>
 Homepage: https://wiki.freepascal.org/LazPaint
 Description: Graphics viewer and editor. 

+ 0 - 0
lazpaint/release/debian/copyright → lazpaint/release/debian/debian/copyright


+ 0 - 13
lazpaint/release/debian/linux64/debian/control

@@ -1,13 +0,0 @@
-Package: lazpaint
-Version: 7.1.3
-Section: graphics
-Priority: optional
-Architecture: amd64
-Depends: 
-Maintainer: circular <[email protected]>
-Homepage: https://wiki.freepascal.org/LazPaint
-Description: Graphics viewer and editor. 
- Can read layered files (lzp, ora, pdn, oXo), multi-images (gif, ico, tiff), 
- flat files (bmp, jpeg, pcx, png, tga, xpm, xwd), vectorial (svg), 3D (obj).
- Has drawing tools, phong shading, curve adjustments,
- filters and render some textures.

+ 35 - 14
lazpaint/release/debian/makedeb.sh

@@ -9,34 +9,52 @@ DOC_DIR="${STAGING_DIR}/usr/share/doc/lazpaint"
 SCRIPT_DIR="${SHARE_DIR}/scripts"
 SOURCE_SCRIPT_DIR="../../../scripts"
 SOURCE_BIN="../bin"
+TARGET_ARCHITECTURE="$(dpkg --print-architecture)"
+VERSION="$(sed -n 's/^Version: //p' debian/control)"
 
-rm -rf "${STAGING_DIR}"
-if [ $(arch) = "x86_64" ]; then
-  echo Creating 64-bit package...
-  cp -r linux64 "${STAGING_DIR}"
-  TARGET_OS="linux64"
+if [ ${TARGET_ARCHITECTURE} = "amd64" ]; then
+  OS_NAME="linux64"
+elif [ ${TARGET_ARCHITECTURE} = "i386" ]; then
+  OS_NAME="linux32"
 else
-  echo Creating 32-bit package...
-  cp -r linux32 "${STAGING_DIR}"
-  TARGET_OS="linux32"
+  OS_NAME="${TARGET_ARCHITECTURE}"
+fi
+PACKAGE_NAME="lazpaint${VERSION}_${OS_NAME}"
+
+echo "Version is $VERSION"
+echo "Target OS is ${OS_NAME}"
+
+if [ ! -f "${SOURCE_BIN}/lazpaint" ]; then
+  echo "Cannot find binary file."  
+  exit 1
 fi
-mv "${STAGING_DIR}/debian" "${STAGING_DIR}/DEBIAN"
 
-VERSION="$(sed -n 's/^Version: //p' $STAGING_DIR/DEBIAN/control)"
-echo Version is $VERSION
-PACKAGE_NAME="lazpaint${VERSION}_${TARGET_OS}"
+echo "Creating package..."
+
+rm -rf "${STAGING_DIR}"
+mkdir "${STAGING_DIR}"
+
+mkdir "${STAGING_DIR}/DEBIAN"
+cp "debian/control" "${STAGING_DIR}/DEBIAN"
+sed -i -e "s/Architecture: any/Architecture: ${TARGET_ARCHITECTURE}/" "${STAGING_DIR}/DEBIAN/control"
 
 mkdir "${USER_DIR}"
 
 mkdir "${BIN_DIR}" 
 cp "${SOURCE_BIN}/lazpaint" "${BIN_DIR}"
+echo "Determining dependencies..."
+dpkg-shlibdeps "${BIN_DIR}/lazpaint"
+DEPENDENCIES="$(sed -n 's/^shlibs:Depends=//p' debian/substvars)"
+sed -i -e "s/\\\${shlibs:Depends}/${DEPENDENCIES}/" "${STAGING_DIR}/DEBIAN/control"
+rm "debian/substvars"
+echo "Done determining dependencies."
 
 mkdir "${SHARE_PARENT_DIR}"
 
 mkdir "${DOC_PARENT_DIR}"
 mkdir "${DOC_DIR}"
-gzip -9 -n -c changelog >"${DOC_DIR}/changelog.gz"
-cp copyright "${DOC_DIR}"
+gzip -9 -n -c "debian/changelog" >"${DOC_DIR}/changelog.gz"
+cp "debian/copyright" "${DOC_DIR}"
 
 cp -r applications "${SHARE_PARENT_DIR}"
 cp -r pixmaps "${SHARE_PARENT_DIR}"
@@ -57,6 +75,9 @@ find "${SOURCE_SCRIPT_DIR}" -maxdepth 1 -name *.py -exec cp {} "${SCRIPT_DIR}" \
 mkdir "${SCRIPT_DIR}/lazpaint" 
 find "${SOURCE_SCRIPT_DIR}/lazpaint" -maxdepth 1 -name *.py -exec cp {} "${SCRIPT_DIR}/lazpaint" \;
 
+SIZE_IN_KB="$(du -s ${STAGING_DIR} | awk '{print $1;}')"
+echo "Installed-Size: ${SIZE_IN_KB}" >> "${STAGING_DIR}/DEBIAN/control"
+
 dpkg-deb --build "${STAGING_DIR}" "${PACKAGE_NAME}.deb"
 
 NO_INSTALL_ARCHIVE="${PACKAGE_NAME}_no_install.tar.gz"