mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-18 19:49:40 +00:00
print/photoprint: Fix build with gitenprint 5.3.
Let's try to make photoprint and libgutenprint friends. Bump PORTREVISION. It is not needed by rules, but I'd prefer to.
This commit is contained in:
parent
e40c0b0ccd
commit
6a5ac4b0e4
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=519021
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= photoprint
|
||||
DISTVERSION= 0.4.2-pre2
|
||||
PORTREVISION= 8
|
||||
PORTREVISION= 9
|
||||
CATEGORIES= print graphics
|
||||
MASTER_SITES= http://www.blackfiveimaging.co.uk/photoprint/
|
||||
|
||||
@ -11,8 +11,6 @@ COMMENT= Utility to print multiple images per sheet
|
||||
|
||||
LICENSE= GPLv2
|
||||
|
||||
BROKEN= fails to build
|
||||
|
||||
LIB_DEPENDS= libcups.so:print/cups \
|
||||
libfontconfig.so:x11-fonts/fontconfig \
|
||||
libfreetype.so:print/freetype2 \
|
||||
@ -32,8 +30,6 @@ LIBS+= -lX11
|
||||
INSTALLS_ICONS= yes
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|glib/gstrfuncs.h|glib.h|g' \
|
||||
${WRKSRC}/gp_cppsupport/gprinter.cpp
|
||||
@${REINPLACE_CMD} -e 's|cups/cups.h|cups/ppd.h|g' \
|
||||
${WRKSRC}/stp_support/printerqueues_unix.c
|
||||
|
||||
|
129
print/photoprint/files/patch-gp_cppsupport_gprinter.cpp
Normal file
129
print/photoprint/files/patch-gp_cppsupport_gprinter.cpp
Normal file
@ -0,0 +1,129 @@
|
||||
--- gp_cppsupport/gprinter.cpp.orig 2010-04-30 03:44:31.000000000 +0400
|
||||
+++ gp_cppsupport/gprinter.cpp 2019-12-04 18:01:52.055955000 +0300
|
||||
@@ -22,7 +22,6 @@
|
||||
#include <gutenprint/gutenprint.h>
|
||||
|
||||
#include <glib.h>
|
||||
-#include <glib/gstrfuncs.h>
|
||||
#include <glib/gprintf.h>
|
||||
|
||||
#include "../imagesource/imagesource.h"
|
||||
@@ -418,59 +417,72 @@ void GPrinter::Print(ImageSource *src,int xpos,int ypo
|
||||
|
||||
void GPrinter::GetImageableArea()
|
||||
{
|
||||
-// pagewidth=pageheight=0;
|
||||
-// stp_get_media_size(stpvars, &pagewidth, &pageheight);
|
||||
+ stp_dimension_t double_pagewidth, double_pageheight;
|
||||
+ stp_get_media_size(stpvars, &double_pagewidth, &double_pageheight);
|
||||
|
||||
-// Debug[TRACE] << "Media size returned: " << pagewidth << " by " << pageheight << endl;
|
||||
+ // *** HACK ***
|
||||
+ // Gutenprint uses doubles... Either rewrite all funclions to use doubles or deal with it just here.
|
||||
|
||||
- const char *papersize=stp_get_string_parameter(stpvars,"PageSize");
|
||||
- bool gotpapersize=false;
|
||||
- if(papersize)
|
||||
- {
|
||||
- const stp_papersize_t *paper=stp_get_papersize_by_name(papersize);
|
||||
- if(paper)
|
||||
+ pagewidth=(int)double_pagewidth;
|
||||
+ pageheight=(int)double_pageheight;
|
||||
+
|
||||
+ Debug[TRACE] << "Media size returned: " << pagewidth << " by " << pageheight << endl;
|
||||
+
|
||||
+ // From gutenprint TFM:
|
||||
+ // If the media size is invalid, width and height will be set to -1.
|
||||
+
|
||||
+ if (pagewidth != -1 && pageheight != -1) {
|
||||
+
|
||||
+ // From gutenprint TFM:
|
||||
+ // Values of 0 for width or height indicate that the dimension
|
||||
+ // is variable, so that custom page sizes or roll paper can be used.
|
||||
+ // In this case, the size limit should be used to determine maximum and
|
||||
+ // minimum values permitted.
|
||||
+
|
||||
+ if(!pagewidth)
|
||||
{
|
||||
- gotpapersize=true;
|
||||
- if(paper->width)
|
||||
- {
|
||||
- pagewidth=minwidth=maxwidth=paper->width;
|
||||
- stp_set_page_width(stpvars,pagewidth);
|
||||
- Debug[TRACE] << "Width: " << pagewidth << endl;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- int mw,mh,nw,nh;
|
||||
- pagewidth=stp_get_page_width(stpvars);
|
||||
- stp_get_size_limit(stpvars,&mw,&mh,&nw,&nh);
|
||||
- minwidth=nw;
|
||||
- maxwidth=mw;
|
||||
- Debug[TRACE] << "Custom width..." << endl;
|
||||
- }
|
||||
- if(paper->height)
|
||||
- {
|
||||
- pageheight=minheight=maxheight=paper->height;
|
||||
- stp_set_page_height(stpvars,pageheight);
|
||||
- Debug[TRACE] << "Height: " << pageheight << endl;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- int mw,mh,nw,nh;
|
||||
- pageheight=stp_get_page_height(stpvars);
|
||||
- stp_get_size_limit(stpvars,&mw,&mh,&nw,&nh);
|
||||
- minheight=nh;
|
||||
- maxheight=mh;
|
||||
- Debug[TRACE] << "Custom height..." << endl;
|
||||
- }
|
||||
+ stp_dimension_t dmw,dmh,dnw,dnh;
|
||||
+ double_pagewidth=stp_get_page_width(stpvars);
|
||||
+ stp_get_size_limit(stpvars,&dmw,&dmh,&dnw,&dnh);
|
||||
+
|
||||
+ // *** HACK ***
|
||||
+ // Gutenprint uses doubles... Either rewrite all funclions to use doubles or deal with it just here.
|
||||
+
|
||||
+ minwidth=(int)dnw;
|
||||
+ maxwidth=(int)dmw;
|
||||
+ Debug[TRACE] << "Custom width..." << endl;
|
||||
}
|
||||
+
|
||||
+ if(!pageheight)
|
||||
+ {
|
||||
+ stp_dimension_t dmw,dmh,dnw,dnh;
|
||||
+ double_pageheight=stp_get_page_height(stpvars);
|
||||
+ stp_get_size_limit(stpvars,&dmw,&dmh,&dnw,&dnh);
|
||||
+
|
||||
+ // *** HACK ***
|
||||
+ // Gutenprint uses doubles... Either rewrite all funclions to use doubles or deal with it just here.
|
||||
+
|
||||
+ minheight=(int)dnh;
|
||||
+ maxheight=(int)dmh;
|
||||
+ Debug[TRACE] << "Custom height..." << endl;
|
||||
+ }
|
||||
}
|
||||
- if(!gotpapersize)
|
||||
- {
|
||||
- pagewidth=pageheight=0;
|
||||
- stp_get_media_size(stpvars, &pagewidth, &pageheight);
|
||||
- }
|
||||
+ else {
|
||||
+ // How should we treat an invalid media size?
|
||||
+ }
|
||||
|
||||
+ stp_dimension_t double_l,double_r,double_t,double_b;
|
||||
+ stp_get_imageable_area(stpvars, &double_l, &double_r, &double_b, &double_t);
|
||||
+
|
||||
int l,r,t,b;
|
||||
- stp_get_imageable_area(stpvars, &l, &r, &b, &t);
|
||||
+
|
||||
+ // *** HACK ***
|
||||
+ // Gutenprint uses doubles... Either rewrite all funclions to use doubles or deal with it just here.
|
||||
+
|
||||
+ l=(int)double_l;
|
||||
+ r=(int)double_r;
|
||||
+ t=(int)double_t;
|
||||
+ b=(int)double_b;
|
||||
|
||||
Debug[TRACE] << "Imageable area from GP: L: " << l << ", R: " << r << ", T: " << t << ", B: " << b << endl;
|
||||
|
Loading…
Reference in New Issue
Block a user