ThierryHFR / scangearmp2

This project is a sane backend for the canon's scanner, based on the source code of scangearmp2.
Other
78 stars 17 forks source link

Does not build on Debian Buster #23

Closed brentr closed 4 years ago

brentr commented 4 years ago

Sorry, I'm not having much success with building this on my Debian Buster 32-bit system. I think there may be some confusion about directory contents. Here is my attempt at following your latest build instructions:

~/git/scangearmp2$ rm -rf * ~/git/scangearmp2$ git reset --hard HEAD is now at 038da7d Update format ~/git/scangearmp2$ ls com _config.yml debian doc README.md scangearmp2 scangearmp2.spec scripts ~/git/scangearmp2$ cp -a scangearmp2 scangearmp2-3.90 ~/git/scangearmp2$ rm -rf scangearmp2-3.90/.git scangearmp2-3.90/debian/ ~/git/scangearmp2$ tar cJvf scangearmp2_3.90.orig.tar.xz scangearmp2-3.90 scangearmp2-3.90/ scangearmp2-3.90/scangearmp2.glade scangearmp2-3.90/INSTALL ... tar archive listing ... scangearmp2-3.90/Makefile.am scangearmp2-3.90/NEWS ~/git/scangearmp2$ cd scangearmp2 ~/git/scangearmp2/scangearmp2$ dpkg-buildpackage -us -uc ## dpkg-buildpackage: error: cannot open file debian/changelog: No such file or directory

If this build procedure is working on your system, could you please send me a similar transcript, including the current directory in which each command should be entered? I assume your machine is 64-bit, but that doesn't really seem to be the issue (yet) Are you starting from a clean directory, cloning your own project into it from github?

Thanks!

P.S.
My scanner is the Pixma G6020. It's working with Canon's scangearmp2 32-bit Linux application. But, that only handles single page documents. The Canon libcn*.so libraries are already installed under /usr/lib

ThierryHFR commented 4 years ago

I have no problem contucting the binary. Below are the commands used:

git clone https://github.com/Ordissimo/scangearmp2.git

apt update
apt install debhelper libglib2.0-dev libgtk2.0-dev libusb-1.0-0-dev libtool-bin libjpeg-dev
cp -a scangearmp2 scangearmp2-3.90
rm -rf scangearmp2-3.90/.git scangearmp2-3.90/debian/
tar cJvf scangearmp2_3.90.orig.tar.xz scangearmp2-3.90  
sed -i 's/native/quilt/g' scangearmp2/debian/source/format

cd scangearmp2
dpkg-buildpackage -us -uc

Below are the 32bits Buster binaries. https://github.com/Ordissimo/scangearmp2/releases/tag/v3.90

brentr commented 4 years ago

The new 32bit Buster binaries work great. They can also be work on Debian Stretch when installed with: dpkg --force-depends -i scangearmp2_3.90-1ubuntu_i386.deb

Preparing to unpack scangearmp2_3.90-1ubuntu_i386.deb ... Unpacking scangearmp2 (3.90-1ubuntu) over (3.90-1ubuntu) ... dpkg: scangearmp2: dependency problems, but configuring anyway as you requested: scangearmp2 depends on libfontconfig1 (>= 2.12.6); however: Version of libfontconfig1:i386 on system is 2.11.0-6.7+b1.

May guess is that if the libfontconfig1 version requirement was lessened to 2.11, the package would install on Buster or Stretch without complaint. Thanks!

brentr commented 4 years ago

In attempting to follow your build instructions, I get as far as:

~/git/scangearmp2$ sed -i 's/native/quilt/g' scangearmp2/debian/source/format sed: can't read scangearmp2/debian/source/format: No such file or directory

There is no "debian" directory under scangearmp2/scangearmp2 The only "debian" directory is under scangearmp2 So, I finally realized that you intended for the build procedure to be kicked off in the parent directory of the project. This is strange enough that you probably should mention it in the build instructions. The build succeeded with a bunch of warnings. The debian packages were written into the parent directory of the project.

brentr commented 4 years ago

The resulting .deb built on Stretch installs and runs there without complaint.

ThierryHFR commented 4 years ago

I'm glad you managed to build the package. I checked the build instructions, there are no errors. I don't understand why in the copy logs you are in the folder what "$HOME/git/scangearmp2". You should have been in "$HOME/git". So you execute the commands below:

git clone https://github.com/Ordissimo/scangearmp2.git
cp -a scangearmp2 scangearmp2-3.90
rm -rf scangearmp2-3.90/.git scangearmp2-3.90/debian/
tar cJvf scangearmp2_3.90.orig.tar.xz scangearmp2-3.90
cd scangearmp2
dpkg-buildpackage -us -uc ## 
sudo apt install ../scangearmp2_3.90-1_i386.deb
brentr commented 4 years ago

There were no errors in the build instructions. However, it is bad policy to write build artifacts above the top directory of the build tree. That's what "install" is suppose to do. Imagine the mess that will result in the (single, common) parent directory if a bunch of unrelated packages write files there.

ThierryHFR commented 4 years ago

It doesn't matter, you put yourself in the file of your choice. Then you execute the build instructions, in this case there is no error.

ThierryHFR commented 4 years ago

For the record, I didn't repackage the canon work, I added a backend sane. I then created a projector that uses directly the Canon scangearmp2 binary. It's easier to build the package: https://github.com/Ordissimo/libmfp2-canon

brentr commented 4 years ago

I should have guessed this was Canon's work. All I might suggest is that your build instructions recommend creating with an empty parent directory to accept the build artifacts. Thanks for creating these helpful packages.

Something like:

Create a new, empty directory to hold the .deb and other files output by this build procedure.
cd into it.
git clone ....
ThierryHFR commented 4 years ago

I keep them this way, to be able to update the sources with as little work as possible :) Can you give me a feedback so I can add it to the list of supported models?

ThierryHFR commented 4 years ago

I just saw that your printer implements AirPrint. Your template has been added: In the backend sane pixma (for usb): https://gitlab.com/sane-project/backends/-/merge_requests/226 In the backend sane escl (for the network): https://gitlab.com/sane-project/backends/-/releases