Index: head/graphics/Makefile =================================================================== --- head/graphics/Makefile (revision 512532) +++ head/graphics/Makefile (revision 512533) @@ -1,1122 +1,1123 @@ # $FreeBSD$ # COMMENT = Graphics tools and libraries SUBDIR += 4va SUBDIR += Coin SUBDIR += EZWGL SUBDIR += GraphicsMagick SUBDIR += Hermes SUBDIR += IPA SUBDIR += ImageMagick6 SUBDIR += ImageMagick6-nox11 SUBDIR += ImageMagick7 SUBDIR += ImageMagick7-nox11 SUBDIR += O2-tools SUBDIR += R-cran-DiagrammeR SUBDIR += R-cran-GDD SUBDIR += R-cran-RColorBrewer SUBDIR += R-cran-colorspace SUBDIR += R-cran-diagram SUBDIR += R-cran-dichromat SUBDIR += R-cran-dygraphs SUBDIR += R-cran-ggplot2 SUBDIR += R-cran-gridBase SUBDIR += R-cran-gridExtra SUBDIR += R-cran-munsell SUBDIR += R-cran-pixmap SUBDIR += R-cran-png SUBDIR += R-cran-qcc SUBDIR += R-cran-rgdal SUBDIR += R-cran-rtiff SUBDIR += R-cran-scales SUBDIR += R-cran-shape SUBDIR += R-cran-viridis SUBDIR += R-cran-viridisLite SUBDIR += R-cran-visNetwork SUBDIR += SciPlot SUBDIR += a2png SUBDIR += aalib SUBDIR += aaphoto SUBDIR += acidwarp SUBDIR += aeskulap SUBDIR += agave SUBDIR += agg SUBDIR += alembic SUBDIR += alpng SUBDIR += ampasACES-container SUBDIR += ampasCTL SUBDIR += animorph SUBDIR += ansilove SUBDIR += aoi SUBDIR += apngasm SUBDIR += apngdis SUBDIR += argyllcms SUBDIR += asciio SUBDIR += aseprite SUBDIR += atril SUBDIR += atril-lite SUBDIR += autopano-sift-c SUBDIR += autotrace SUBDIR += aview SUBDIR += azpainter SUBDIR += backfract SUBDIR += barbecue SUBDIR += barcode SUBDIR += batik SUBDIR += bitmap SUBDIR += blender SUBDIR += blender-doc SUBDIR += bmeps SUBDIR += bmp2html SUBDIR += box SUBDIR += boxer SUBDIR += bsd-plotutils SUBDIR += bugle SUBDIR += c-a-i-r SUBDIR += cadubi SUBDIR += caffe SUBDIR += cairo SUBDIR += cairomm SUBDIR += cal3d SUBDIR += camera SUBDIR += camerakit SUBDIR += cbview SUBDIR += cbviewer SUBDIR += cegui SUBDIR += cenon SUBDIR += cfdg SUBDIR += charls SUBDIR += cimg SUBDIR += cloudcompare SUBDIR += clutter SUBDIR += clutter-gtk3 SUBDIR += cluttermm SUBDIR += cogl SUBDIR += colmap SUBDIR += colord SUBDIR += colord-gtk SUBDIR += comical SUBDIR += commons-utilities SUBDIR += compupic SUBDIR += converseen SUBDIR += copperspice SUBDIR += cosmoplayer SUBDIR += cptutils SUBDIR += crw SUBDIR += cthumb SUBDIR += curator SUBDIR += cuttlefish SUBDIR += darktable SUBDIR += dataplot SUBDIR += dc20pack SUBDIR += dcmtk SUBDIR += dcp2icc SUBDIR += dcraw SUBDIR += dcraw-m SUBDIR += deegree-csw SUBDIR += deegree-igeoportal SUBDIR += deegree-wcs SUBDIR += deegree-wfs SUBDIR += deegree-wms SUBDIR += deegree-wps SUBDIR += deegree-wpvs SUBDIR += delaboratory SUBDIR += derelict-gl3 SUBDIR += devil SUBDIR += dia SUBDIR += diff-pdf SUBDIR += diffpdf SUBDIR += digikam SUBDIR += dilay SUBDIR += ditaa SUBDIR += djview4 SUBDIR += djvulibre SUBDIR += djvusmooth SUBDIR += dmtx-utils SUBDIR += drawpile SUBDIR += driconf SUBDIR += drm-current-kmod SUBDIR += drm-devel-kmod SUBDIR += drm-fbsd11.2-kmod SUBDIR += drm-fbsd12.0-kmod SUBDIR += drm-kmod SUBDIR += drm-legacy-kmod SUBDIR += drm_info SUBDIR += dspdfviewer SUBDIR += duhdraw SUBDIR += dynamechs SUBDIR += edje_viewer SUBDIR += electricsheep SUBDIR += electrix SUBDIR += embree SUBDIR += enblend SUBDIR += engauge-digitizer SUBDIR += entangle SUBDIR += eog SUBDIR += eog-plugins SUBDIR += eom SUBDIR += epdfview SUBDIR += ephoto SUBDIR += epix SUBDIR += eps2png SUBDIR += epstool SUBDIR += eterm-bg SUBDIR += evince SUBDIR += evince-lite SUBDIR += evolvotron SUBDIR += exact-image SUBDIR += exif SUBDIR += exifprobe SUBDIR += exiftags SUBDIR += exiftran SUBDIR += exiv2 SUBDIR += exrtools SUBDIR += facedetect SUBDIR += farbfeld SUBDIR += feh SUBDIR += fig2sxd SUBDIR += figurine SUBDIR += flam3 SUBDIR += flasm SUBDIR += flif SUBDIR += flphoto SUBDIR += fly SUBDIR += fortytwo SUBDIR += fotofix SUBDIR += founts SUBDIR += fpc-cairo SUBDIR += fpc-graph SUBDIR += fpc-hermes SUBDIR += fpc-imagemagick SUBDIR += fpc-libgd SUBDIR += fpc-libpng SUBDIR += fpc-ncurses SUBDIR += fpc-opengl SUBDIR += fpc-pasjpeg SUBDIR += fpc-proj4 SUBDIR += fpc-rsvg SUBDIR += fpc-svgalib SUBDIR += fracplanet SUBDIR += fractgen SUBDIR += fraqtive SUBDIR += freeglut SUBDIR += freeimage SUBDIR += frei0r SUBDIR += frei0r-plugins SUBDIR += frei0r-plugins-gavl SUBDIR += frei0r-plugins-opencv SUBDIR += frogr SUBDIR += ftgl SUBDIR += fujiplay SUBDIR += fusefs-gphotofs SUBDIR += fv SUBDIR += fyre SUBDIR += g2 SUBDIR += gauche-gl SUBDIR += gcolor2 SUBDIR += gcolor3 SUBDIR += gd SUBDIR += gdal SUBDIR += gdchart SUBDIR += gdk-pixbuf2 SUBDIR += gdtclft SUBDIR += geeqie SUBDIR += gegl SUBDIR += generic_image_decoder SUBDIR += geoapi SUBDIR += geomorph SUBDIR += geomview SUBDIR += geos SUBDIR += geoserver SUBDIR += gexiv2 SUBDIR += giblib SUBDIR += gif2png SUBDIR += giflib SUBDIR += gifmerge SUBDIR += gifsicle SUBDIR += giftool SUBDIR += gimageview SUBDIR += gimmage SUBDIR += gimp SUBDIR += gimp-app SUBDIR += gimp-beautify-plugin SUBDIR += gimp-data-extras SUBDIR += gimp-ez-perspective-plugin SUBDIR += gimp-focusblur-plugin SUBDIR += gimp-gmic-plugin SUBDIR += gimp-help SUBDIR += gimp-jagged-border-script SUBDIR += gimp-lensfun-plugin SUBDIR += gimp-lqr-plugin SUBDIR += gimp-manual-html SUBDIR += gimp-refocus-plugin SUBDIR += gimp-resynthesizer SUBDIR += gimp-save-for-web SUBDIR += gimp-wavelet-denoise-plugin SUBDIR += gimp-wavelet-sharpen-plugin SUBDIR += giram SUBDIR += gkrellkam2 SUBDIR += glad SUBDIR += gle SUBDIR += glee SUBDIR += glew SUBDIR += glexcess SUBDIR += glfw SUBDIR += glfw2 SUBDIR += gliv SUBDIR += glosm SUBDIR += glpng SUBDIR += gltt SUBDIR += gmic SUBDIR += gmic-qt SUBDIR += gmt SUBDIR += gmt5 SUBDIR += gmt5-dcw SUBDIR += gmt5-gshhg SUBDIR += gnash SUBDIR += gnofract4d SUBDIR += gnome-color-manager SUBDIR += gnome-video-effects SUBDIR += gocr SUBDIR += goocanvas SUBDIR += goocanvas2 SUBDIR += goocanvasmm2 SUBDIR += goom SUBDIR += gource SUBDIR += goxel SUBDIR += gpaint SUBDIR += gphoto2 SUBDIR += gpicview SUBDIR += gpsmanshp SUBDIR += gpu-firmware-kmod SUBDIR += gpxsee SUBDIR += gracula SUBDIR += grads SUBDIR += grafx2 SUBDIR += graphene SUBDIR += graphite2 SUBDIR += graphos SUBDIR += graphviz SUBDIR += grx SUBDIR += gscan2pdf SUBDIR += gsculpt SUBDIR += gstreamer-plugins-aalib SUBDIR += gstreamer-plugins-cairo SUBDIR += gstreamer-plugins-gdkpixbuf SUBDIR += gstreamer-plugins-gl SUBDIR += gstreamer-plugins-jpeg SUBDIR += gstreamer-plugins-libcaca SUBDIR += gstreamer-plugins-libpng SUBDIR += gstreamer-plugins-libvisual SUBDIR += gstreamer-plugins-opencv SUBDIR += gstreamer1-plugins-aalib SUBDIR += gstreamer1-plugins-cairo SUBDIR += gstreamer1-plugins-gdkpixbuf SUBDIR += gstreamer1-plugins-gl SUBDIR += gstreamer1-plugins-jpeg SUBDIR += gstreamer1-plugins-kms SUBDIR += gstreamer1-plugins-libcaca SUBDIR += gstreamer1-plugins-libvisual SUBDIR += gstreamer1-plugins-opencv SUBDIR += gstreamer1-plugins-openexr SUBDIR += gstreamer1-plugins-openjpeg SUBDIR += gstreamer1-plugins-png SUBDIR += gstreamer1-plugins-rsvg SUBDIR += gstreamer1-plugins-vulkan SUBDIR += gstreamer1-plugins-webp SUBDIR += gstreamer1-plugins-zbar SUBDIR += gthumb SUBDIR += gtimelapse SUBDIR += gtk-update-icon-cache SUBDIR += gtkam SUBDIR += gts SUBDIR += guetzli SUBDIR += guilib SUBDIR += gwenview SUBDIR += hdr_tools SUBDIR += hiptext SUBDIR += hobbes-icons-xpm SUBDIR += hppsmtools SUBDIR += hugin SUBDIR += icat SUBDIR += icc-profiles-adobe-cs4 SUBDIR += icc-profiles-basiccolor SUBDIR += icc-profiles-openicc SUBDIR += iccxml SUBDIR += icon-slicer SUBDIR += icontact SUBDIR += icoutils SUBDIR += ida SUBDIR += iec16022 SUBDIR += iiview SUBDIR += ilmbase SUBDIR += imageindex SUBDIR += imageviewer SUBDIR += imageworsener SUBDIR += imc SUBDIR += imgtops SUBDIR += imgv SUBDIR += imgvtopgm SUBDIR += imlib2 SUBDIR += imlib2-webp SUBDIR += imlib2_loaders SUBDIR += impressive SUBDIR += imv SUBDIR += inkscape SUBDIR += instant-meshes SUBDIR += intel-backlight SUBDIR += intergif SUBDIR += inventor SUBDIR += ipe SUBDIR += jalbum SUBDIR += jasper SUBDIR += jave6 SUBDIR += jbig2dec SUBDIR += jbigkit SUBDIR += jdraw SUBDIR += jgraph SUBDIR += jhead SUBDIR += jogamp-jogl SUBDIR += jogl SUBDIR += jp SUBDIR += jp2a SUBDIR += jpatch SUBDIR += jpeg SUBDIR += jpeg-turbo SUBDIR += jpeginfo SUBDIR += jpegoptim SUBDIR += jpg2pdf SUBDIR += jpgraph2 SUBDIR += jpgtn SUBDIR += jslice SUBDIR += kamera SUBDIR += kamerka SUBDIR += kcolorchooser SUBDIR += kdegraphics SUBDIR += kdegraphics-mobipocket SUBDIR += kdegraphics-svgpart SUBDIR += kdegraphics-thumbnailers SUBDIR += kdiagram SUBDIR += kf5-kimageformats SUBDIR += kf5-kplotting SUBDIR += kf5-prison SUBDIR += kgraphviewer SUBDIR += kimagemapeditor SUBDIR += kipi-plugins SUBDIR += kix-kmod SUBDIR += klatexformula SUBDIR += kludge3d SUBDIR += kolourpaint SUBDIR += kooka SUBDIR += kphotoalbum SUBDIR += krita SUBDIR += kudu SUBDIR += kxstitch SUBDIR += l2p SUBDIR += largetifftools SUBDIR += laternamagica SUBDIR += lazpaint SUBDIR += lcdtest SUBDIR += lcms SUBDIR += lcms-python SUBDIR += lcms2 SUBDIR += leafpak SUBDIR += lensfun SUBDIR += lepton SUBDIR += leptonica SUBDIR += lfview SUBDIR += lib3ds SUBDIR += libGLU SUBDIR += libGLw SUBDIR += libQGLViewer SUBDIR += libafterimage SUBDIR += libansilove SUBDIR += libart_lgpl SUBDIR += libboard SUBDIR += libbpg SUBDIR += libcaca SUBDIR += libcdr01 SUBDIR += libchamplain SUBDIR += libdmtx SUBDIR += libdrm SUBDIR += libecwj2 SUBDIR += libemf SUBDIR += libepoxy SUBDIR += libetonyek01 SUBDIR += libexif SUBDIR += libexif-gtk SUBDIR += libfpx SUBDIR += libfreehand SUBDIR += libgaiagraphics SUBDIR += libgeotiff SUBDIR += libgfx SUBDIR += libgltext SUBDIR += libgltf SUBDIR += libgnomecanvas SUBDIR += libgnomecanvas-reference SUBDIR += libgnomecanvasmm26 SUBDIR += libgphoto2 SUBDIR += libgxps SUBDIR += libheif SUBDIR += libimg SUBDIR += libiptcdata SUBDIR += libjpeg-turbo SUBDIR += libjxr SUBDIR += libkdcraw SUBDIR += libkexiv2 SUBDIR += libkipi SUBDIR += libksane SUBDIR += liblqr-1 SUBDIR += liblug SUBDIR += libmng SUBDIR += libmorph SUBDIR += libmypaint SUBDIR += libnsbmp SUBDIR += libnsgif SUBDIR += libopenraw SUBDIR += libosmesa SUBDIR += libpano13 SUBDIR += libpcd SUBDIR += libpgf SUBDIR += libpillowfight SUBDIR += libplacebo SUBDIR += libpotrace SUBDIR += libprojectm SUBDIR += libpuzzle SUBDIR += libqrencode SUBDIR += librasterlite SUBDIR += librasterlite2 SUBDIR += libraw SUBDIR += libreatlas SUBDIR += librsvg2 SUBDIR += librsvg2-rust SUBDIR += libsixel SUBDIR += libspiro SUBDIR += libspng SUBDIR += libsvg SUBDIR += libsvg-cairo SUBDIR += libvisual SUBDIR += libvisual04 SUBDIR += libvisual04-plugins SUBDIR += libwmf SUBDIR += libwmf-nox11 SUBDIR += libwpg03 SUBDIR += libxatracker SUBDIR += libyuv SUBDIR += libzmf SUBDIR += lightzone SUBDIR += linplasma SUBDIR += linux-c6-cairo SUBDIR += linux-c6-dri SUBDIR += linux-c6-gdk-pixbuf2 SUBDIR += linux-c6-glx-utils SUBDIR += linux-c6-jasper SUBDIR += linux-c6-jpeg SUBDIR += linux-c6-png SUBDIR += linux-c6-sdl_image SUBDIR += linux-c6-sdl_ttf SUBDIR += linux-c6-tiff SUBDIR += linux-c7-cairo SUBDIR += linux-c7-cairo-gobject SUBDIR += linux-c7-dri SUBDIR += linux-c7-gdk-pixbuf2 SUBDIR += linux-c7-glx-utils SUBDIR += linux-c7-graphite2 SUBDIR += linux-c7-jasper SUBDIR += linux-c7-jbigkit SUBDIR += linux-c7-jpeg SUBDIR += linux-c7-libdrm SUBDIR += linux-c7-libepoxy SUBDIR += linux-c7-libglvnd SUBDIR += linux-c7-png SUBDIR += linux-c7-sdl_image SUBDIR += linux-c7-sdl_ttf SUBDIR += linux-c7-tiff SUBDIR += linux-c7-wayland SUBDIR += lua-gd SUBDIR += luminance-qt5 SUBDIR += lximage-qt SUBDIR += magnum SUBDIR += magnum-examples SUBDIR += magnum-extras SUBDIR += magnum-plugins SUBDIR += mahotas SUBDIR += maim SUBDIR += makehuman SUBDIR += mandelbulber SUBDIR += mapcache SUBDIR += mapnik SUBDIR += mapserver SUBDIR += mapyrus SUBDIR += megapov SUBDIR += mesa-demos SUBDIR += mesa-dri SUBDIR += mesa-libs SUBDIR += metacam SUBDIR += metapixel SUBDIR += mhgui SUBDIR += milton SUBDIR += minder SUBDIR += ming SUBDIR += mirage SUBDIR += mirtk SUBDIR += mmrecover SUBDIR += movit SUBDIR += mozjpeg SUBDIR += mscgen SUBDIR += mtpaint SUBDIR += multican SUBDIR += mupdf SUBDIR += mxp SUBDIR += mypaint SUBDIR += mypaint-brushes SUBDIR += nanosvg SUBDIR += nathive SUBDIR += netpbm SUBDIR += nip2 SUBDIR += nomacs SUBDIR += nplot SUBDIR += npretty SUBDIR += nurbs++ SUBDIR += nvidia-texture-tools SUBDIR += ocaml-images SUBDIR += ocaml-lablgl SUBDIR += ocrad SUBDIR += ocre SUBDIR += ogre3d SUBDIR += ogre3d19 SUBDIR += oidn SUBDIR += okular SUBDIR += open3d SUBDIR += opencollada SUBDIR += opencolorio SUBDIR += opencolorio-tools SUBDIR += opencsg SUBDIR += opencv SUBDIR += opencv-core SUBDIR += opencv-java SUBDIR += opendx SUBDIR += openexr SUBDIR += openfx-arena SUBDIR += openfx-misc SUBDIR += opengl-man SUBDIR += opengv SUBDIR += openicc-config SUBDIR += openimageio SUBDIR += openjpeg SUBDIR += openjpeg15 SUBDIR += openjump SUBDIR += opennurbs SUBDIR += openorienteering-mapper SUBDIR += openrm SUBDIR += openshadinglanguage SUBDIR += opensubdiv SUBDIR += optar SUBDIR += optipng SUBDIR += osg SUBDIR += osg-devel SUBDIR += osgearth SUBDIR += ossim SUBDIR += oyranos SUBDIR += p5-Acme-Steganography-Image-Png SUBDIR += p5-Algorithm-Line-Bresenham SUBDIR += p5-Alien-Gimp SUBDIR += p5-Barcode-ZBar SUBDIR += p5-CAD-Drawing SUBDIR += p5-CAD-Drawing-Template SUBDIR += p5-Cairo SUBDIR += p5-Captcha-reCAPTCHA SUBDIR += p5-Captcha-reCAPTCHA-Mailhide SUBDIR += p5-Chart SUBDIR += p5-Chart-Clicker SUBDIR += p5-Chart-Gnuplot SUBDIR += p5-Chart-Graph SUBDIR += p5-Chart-PNGgraph SUBDIR += p5-Color-Calc SUBDIR += p5-Color-Library SUBDIR += p5-Color-Palette SUBDIR += p5-Color-Rgb SUBDIR += p5-Color-Scheme SUBDIR += p5-Convert-Color SUBDIR += p5-Convert-Color-XTerm SUBDIR += p5-Data-Google-Visualization-DataSource SUBDIR += p5-Data-Google-Visualization-DataTable SUBDIR += p5-GD SUBDIR += p5-GD-Arrow SUBDIR += p5-GD-Barcode SUBDIR += p5-GD-Graph SUBDIR += p5-GD-Graph-histogram SUBDIR += p5-GD-Graph-ohlc SUBDIR += p5-GD-Graph3d SUBDIR += p5-GD-SVG SUBDIR += p5-GD-TextUtil SUBDIR += p5-GD-Thumbnail SUBDIR += p5-Geo-EOP SUBDIR += p5-Geo-GDAL SUBDIR += p5-Geo-GML SUBDIR += p5-Geo-Gpx SUBDIR += p5-Geo-Point SUBDIR += p5-Geo-Proj4 SUBDIR += p5-Geometry-Primitive SUBDIR += p5-Gimp SUBDIR += p5-Google-Chart SUBDIR += p5-Graph-Easy SUBDIR += p5-Graph-ReadWrite SUBDIR += p5-Graph-SocialMap SUBDIR += p5-Graph-Writer-GraphViz SUBDIR += p5-GraphViz SUBDIR += p5-GraphViz-Data-Structure SUBDIR += p5-GraphViz-Traverse SUBDIR += p5-GraphViz2 SUBDIR += p5-Graphics-Color SUBDIR += p5-Graphics-ColorNames SUBDIR += p5-Graphics-ColorNames-WWW SUBDIR += p5-Graphics-ColorUtils SUBDIR += p5-Graphics-GnuplotIF SUBDIR += p5-Graphics-Primitive SUBDIR += p5-Graphics-Primitive-Driver-Cairo SUBDIR += p5-Image-Base SUBDIR += p5-Image-Base-SVG SUBDIR += p5-Image-Caa SUBDIR += p5-Image-Compare SUBDIR += p5-Image-ExifTool SUBDIR += p5-Image-ExifTool-devel SUBDIR += p5-Image-Grab SUBDIR += p5-Image-Heatmap SUBDIR += p5-Image-IPTCInfo SUBDIR += p5-Image-Imgur SUBDIR += p5-Image-Imlib2 SUBDIR += p5-Image-Info SUBDIR += p5-Image-LibExif SUBDIR += p5-Image-Magick-Iterator SUBDIR += p5-Image-Math-Constrain SUBDIR += p5-Image-MetaData-GQview SUBDIR += p5-Image-MetaData-JPEG SUBDIR += p5-Image-OCR-Tesseract SUBDIR += p5-Image-ObjectDetect SUBDIR += p5-Image-PBMlib SUBDIR += p5-Image-PNG-Libpng SUBDIR += p5-Image-PNG-QRCode SUBDIR += p5-Image-Pngslimmer SUBDIR += p5-Image-Sane SUBDIR += p5-Image-Scale SUBDIR += p5-Image-Size SUBDIR += p5-Imager SUBDIR += p5-Imager-Graph SUBDIR += p5-Imager-Plot SUBDIR += p5-Imager-QRCode SUBDIR += p5-Imlib2 SUBDIR += p5-Layout-Manager SUBDIR += p5-OpenGL SUBDIR += p5-PGPLOT SUBDIR += p5-SVG-DOM2 SUBDIR += p5-SVG-Graph SUBDIR += p5-SVG-Metadata SUBDIR += p5-SWF-Builder SUBDIR += p5-SWF-File SUBDIR += p5-Sane SUBDIR += p5-SpringGraph SUBDIR += p5-Tk-JPEG-Lite SUBDIR += p5-URI-GoogleChart SUBDIR += p5-VCG SUBDIR += p5-Visio SUBDIR += p5-feedgnuplot SUBDIR += p5-ming SUBDIR += panoglview SUBDIR += panomatic SUBDIR += partio SUBDIR += pcl-pointclouds SUBDIR += pdf2svg SUBDIR += pdfpc SUBDIR += pear-Horde_Image SUBDIR += pear-Image_3D SUBDIR += pear-Image_Barcode SUBDIR += pear-Image_Barcode2 SUBDIR += pear-Image_Canvas SUBDIR += pear-Image_Color SUBDIR += pear-Image_Graph SUBDIR += pear-Image_GraphViz SUBDIR += pear-Image_Transform SUBDIR += pecl-imagick SUBDIR += pecl-imagick-im7 SUBDIR += pecl-qrencode SUBDIR += pecl-vips SUBDIR += pecomato SUBDIR += pencil2d SUBDIR += peps SUBDIR += perceptualdiff SUBDIR += peruse SUBDIR += pfstools SUBDIR += pgplot SUBDIR += pho SUBDIR += photivo SUBDIR += photoflare SUBDIR += photoflow SUBDIR += photopc SUBDIR += photoqt SUBDIR += phototonic SUBDIR += php-facedetect SUBDIR += php-geos SUBDIR += php71-exif SUBDIR += php71-gd SUBDIR += php72-exif SUBDIR += php72-gd SUBDIR += php73-exif SUBDIR += php73-gd SUBDIR += php74-exif SUBDIR += php74-gd SUBDIR += phplot SUBDIR += picpuz SUBDIR += piddle SUBDIR += piglit SUBDIR += pikopixel SUBDIR += pinpoint SUBDIR += pixd SUBDIR += pixelize SUBDIR += pixen SUBDIR += pixie SUBDIR += pixmap SUBDIR += plasma-kmod SUBDIR += plotutils SUBDIR += png SUBDIR += png++ SUBDIR += png2html SUBDIR += png2ico SUBDIR += pngcheck SUBDIR += pngcrush SUBDIR += pnglite SUBDIR += pngnq SUBDIR += pngquant SUBDIR += pngrewrite SUBDIR += pngwriter SUBDIR += podofo SUBDIR += polyclipping SUBDIR += poppler SUBDIR += poppler-data SUBDIR += poppler-glib SUBDIR += poppler-qt5 SUBDIR += poppler-utils SUBDIR += potrace SUBDIR += povray-meta SUBDIR += povray36 SUBDIR += povray37 SUBDIR += ppmcaption SUBDIR += ppminfo SUBDIR += ppsei SUBDIR += pqiv SUBDIR += preview SUBDIR += price SUBDIR += processing SUBDIR += proj SUBDIR += proj5 SUBDIR += pstoedit SUBDIR += pstoepsi SUBDIR += ptex SUBDIR += py-OWSLib SUBDIR += py-PyOpenGL SUBDIR += py-PyOpenGL-accelerate SUBDIR += py-PyX SUBDIR += py-actdiag SUBDIR += py-blockdiag SUBDIR += py-blockdiagcontrib-cisco SUBDIR += py-cairo SUBDIR += py-cairocffi SUBDIR += py-cartopy SUBDIR += py-chart SUBDIR += py-colour SUBDIR += py-descartes SUBDIR += py-django-easy-thumbnails SUBDIR += py-djvulibre SUBDIR += py-editobj SUBDIR += py-exif SUBDIR += py-exifread SUBDIR += py-fiona SUBDIR += py-freeimagepy SUBDIR += py-gd SUBDIR += py-gdal SUBDIR += py-geomdl SUBDIR += py-geopandas SUBDIR += py-gimp SUBDIR += py-gizeh SUBDIR += py-glewpy SUBDIR += py-glfw SUBDIR += py-goocanvas SUBDIR += py-gphoto2 SUBDIR += py-graph-core SUBDIR += py-graphviz SUBDIR += py-graphy SUBDIR += py-gvgen SUBDIR += py-imageio SUBDIR += py-imageio-ffmpeg SUBDIR += py-imageio24 SUBDIR += py-imagesize SUBDIR += py-img2pdf SUBDIR += py-imgurpython SUBDIR += py-leather SUBDIR += py-mapclassify SUBDIR += py-mayavi SUBDIR += py-mcomix SUBDIR += py-ming SUBDIR += py-mpl-scatter-density SUBDIR += py-nwdiag SUBDIR += py-open3d-python SUBDIR += py-opencolorio SUBDIR += py-opencv SUBDIR += py-openexr SUBDIR += py-openimageio SUBDIR += py-paint SUBDIR += py-photocollage SUBDIR += py-pillow SUBDIR += py-pivy-devel SUBDIR += py-plotly SUBDIR += py-png SUBDIR += py-poppler SUBDIR += py-pycha SUBDIR += py-pycollada SUBDIR += py-pydot SUBDIR += py-pyembree SUBDIR += py-pyepsg SUBDIR += py-pygal SUBDIR += py-pyganim SUBDIR += py-pyglet SUBDIR += py-pygooglechart SUBDIR += py-pygraphviz SUBDIR += py-pyinsane2 SUBDIR += py-pyocr SUBDIR += py-pypillowfight SUBDIR += py-pyproj SUBDIR += py-pyqrcode SUBDIR += py-pyqtgraph SUBDIR += py-python-poppler-qt5 SUBDIR += py-qt5-svg SUBDIR += py-rawkit SUBDIR += py-sane SUBDIR += py-scikit-image SUBDIR += py-seqdiag SUBDIR += py-sorl-thumbnail SUBDIR += py-soya3d SUBDIR += py-stltools SUBDIR += py-svgwrite SUBDIR += py-termtosvg SUBDIR += py-toyplot SUBDIR += py-traitsui SUBDIR += py-wand SUBDIR += py-webcolors SUBDIR += py-willow SUBDIR += py-yaswfp SUBDIR += pygts SUBDIR += pymorph SUBDIR += pysvg SUBDIR += qcomicbook SUBDIR += qgis SUBDIR += qgis-ltr SUBDIR += qiv SUBDIR += qt5-3d SUBDIR += qt5-graphicaleffects SUBDIR += qt5-imageformats SUBDIR += qt5-opengl SUBDIR += qt5-pixeltool SUBDIR += qt5-svg SUBDIR += qt5-wayland SUBDIR += qtawesome SUBDIR += qtpbfimageplugin SUBDIR += quat SUBDIR += quat-gui SUBDIR += quesa SUBDIR += quesoglc SUBDIR += radiance SUBDIR += radius-engine + SUBDIR += rapid-photo-downloader SUBDIR += raster3d SUBDIR += rawtherapee SUBDIR += rayshade SUBDIR += reactphysics3d SUBDIR += reallyslick SUBDIR += recoverjpeg SUBDIR += renrot SUBDIR += repng2jpeg SUBDIR += rgbpaint SUBDIR += rigsofrods-caelum SUBDIR += rigsofrods-pagedgeometry SUBDIR += ristretto SUBDIR += ruby-gd SUBDIR += rubygem-cairo SUBDIR += rubygem-captcha SUBDIR += rubygem-chunky_png SUBDIR += rubygem-clutter SUBDIR += rubygem-clutter-gdk SUBDIR += rubygem-clutter-gtk SUBDIR += rubygem-dragonfly SUBDIR += rubygem-emoji SUBDIR += rubygem-exifr SUBDIR += rubygem-ezprint SUBDIR += rubygem-fastimage SUBDIR += rubygem-flamegraph SUBDIR += rubygem-gd2 SUBDIR += rubygem-gdk_pixbuf2 SUBDIR += rubygem-gemojione SUBDIR += rubygem-gemojione32 SUBDIR += rubygem-geokit SUBDIR += rubygem-gitlab_emoji SUBDIR += rubygem-goocanvas SUBDIR += rubygem-gruff SUBDIR += rubygem-image_science SUBDIR += rubygem-imagesize SUBDIR += rubygem-invisible_captcha SUBDIR += rubygem-mini_magick SUBDIR += rubygem-objectdetect SUBDIR += rubygem-opengl SUBDIR += rubygem-pdfkit SUBDIR += rubygem-png SUBDIR += rubygem-railroad SUBDIR += rubygem-rmagick SUBDIR += rubygem-rsvg2 SUBDIR += rubygem-ruby-graphviz SUBDIR += rubygem-scruffy SUBDIR += s10sh SUBDIR += s2tc SUBDIR += sage SUBDIR += sam2p SUBDIR += sampleicc SUBDIR += sane-backends SUBDIR += sane-epkowa SUBDIR += sane-frontends SUBDIR += scale2x SUBDIR += scr2png SUBDIR += scrot SUBDIR += scwm-icons SUBDIR += sdl2_gfx SUBDIR += sdl2_image SUBDIR += sdl2_ttf SUBDIR += sdl_gfx SUBDIR += sdl_image SUBDIR += sdl_ttf SUBDIR += sdump SUBDIR += seejpeg SUBDIR += sekrit-twc-zimg SUBDIR += seom SUBDIR += separate SUBDIR += seq2gif SUBDIR += shaderc SUBDIR += shared-color-profiles SUBDIR += sharpconstruct SUBDIR += shotwell SUBDIR += showimage SUBDIR += silgraphite SUBDIR += simage SUBDIR += simpleviewer SUBDIR += sk1 SUBDIR += sk1libs SUBDIR += skanlite SUBDIR += spectacle SUBDIR += springgraph SUBDIR += squish SUBDIR += ssocr SUBDIR += sswf SUBDIR += stamp SUBDIR += svg2pdf SUBDIR += svg2png SUBDIR += svgalib SUBDIR += svgbob SUBDIR += swfdec SUBDIR += swfmill SUBDIR += swftools SUBDIR += sxiv SUBDIR += synaesthesia SUBDIR += synfigstudio SUBDIR += telak SUBDIR += tesseract SUBDIR += tesseract-data SUBDIR += tgif SUBDIR += tif22pnm SUBDIR += tiff SUBDIR += tiffgt SUBDIR += tifmerge SUBDIR += tilecache SUBDIR += tiled SUBDIR += timeless SUBDIR += timg SUBDIR += tintfu SUBDIR += tinyows SUBDIR += tkpng SUBDIR += togl SUBDIR += ttygif SUBDIR += tumble SUBDIR += ufraw SUBDIR += uniconvertor SUBDIR += uniconvw SUBDIR += unpaper SUBDIR += urt SUBDIR += vapoursynth-fmtconv SUBDIR += vapoursynth-waifu2x-w2xc SUBDIR += variety SUBDIR += vcg SUBDIR += viewnior SUBDIR += vigra SUBDIR += vips SUBDIR += visprint SUBDIR += vkd3d SUBDIR += volpack SUBDIR += vp SUBDIR += vulkan-loader SUBDIR += vv SUBDIR += waffle SUBDIR += waifu2x-converter-cpp SUBDIR += wayland SUBDIR += wayland-protocols SUBDIR += waylandpp SUBDIR += webp SUBDIR += webp-pixbuf-loader SUBDIR += wings SUBDIR += wmicons SUBDIR += wxsvg SUBDIR += xaos SUBDIR += xbmbrowser SUBDIR += xcftools SUBDIR += xd3d SUBDIR += xdgagrab SUBDIR += xface.el SUBDIR += xfig SUBDIR += xfpovray SUBDIR += xfractint SUBDIR += xglurbules SUBDIR += xgrasp SUBDIR += xli SUBDIR += xmandel SUBDIR += xmedcon SUBDIR += xmlgraphics-commons SUBDIR += xmountains SUBDIR += xnview SUBDIR += xoris SUBDIR += xournal SUBDIR += xournalpp SUBDIR += xpaint SUBDIR += xpdf SUBDIR += xpdf3 SUBDIR += xpdf4 SUBDIR += xpeps SUBDIR += xpx SUBDIR += xsane SUBDIR += xsvg SUBDIR += xtexcad SUBDIR += xv SUBDIR += xv-m17n SUBDIR += xwpick SUBDIR += xzgv SUBDIR += yafaray SUBDIR += yed SUBDIR += yukon SUBDIR += zathura SUBDIR += zathura-cb SUBDIR += zathura-djvu SUBDIR += zathura-pdf-mupdf SUBDIR += zathura-pdf-poppler SUBDIR += zathura-ps SUBDIR += zbar SUBDIR += zgv SUBDIR += zimg SUBDIR += zint SUBDIR += zphoto .include Index: head/graphics/rapid-photo-downloader/Makefile =================================================================== --- head/graphics/rapid-photo-downloader/Makefile (nonexistent) +++ head/graphics/rapid-photo-downloader/Makefile (revision 512533) @@ -0,0 +1,52 @@ +# $FreeBSD$ + +PORTNAME= rapid-photo-downloader +DISTVERSION= 0.9.17 +CATEGORIES= graphics +MASTER_SITES= https://launchpad.net/rapid/pyqt/${PORTVERSION}/+download/ + +MAINTAINER= m.ne@gmx.net +COMMENT= Import photos and videos efficiently and reliably + +LICENSE= GPLv3 + +BUILD_DEPENDS= intltool-update:textproc/intltool +LIB_DEPENDS= libgexiv2.so:graphics/gexiv2 \ + libgudev-1.0.so:devel/libgudev +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}arrow>0:devel/py-arrow@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}colour>0:graphics/py-colour@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dateutil>2.2:devel/py-dateutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}easygui>=0:x11-toolkits/py-easygui@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}gobject3>0:devel/py-gobject3@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}gphoto2>=1.4.0:graphics/py-gphoto2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}gstreamer1>=1.0:multimedia/py-gstreamer1@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}notify2>0:devel/py-notify2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}psutil>=3.4.2:sysutils/py-psutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pymediainfo>=1.0:multimedia/py-pymediainfo@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyzmq>0:net/py-pyzmq@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}rawkit>0:graphics/py-rawkit@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sortedcontainers>0:devel/py-sortedcontainers@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tenacity>0:devel/py-tenacity@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tornado>=4.1:www/py-tornado@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}xdg>0:devel/py-xdg@${PY_FLAVOR} \ + exiftool:graphics/p5-Image-ExifTool + +USES= desktop-file-utils gettext pyqt:5 python:3.4+ qt:5 +USE_PYTHON= autoplist distutils +USE_QT= imageformats_run +USE_PYQT= core gui network sip widgets + +BINARY_ALIAS= python3=${PYTHON_VERSION} +NO_ARCH= yes + +OPTIONS_DEFINE= COLOUR PROGRESS +OPTIONS_DEFAULT= COLOUR PROGRESS + +COLOUR_DESC= generates coloured program output +PROGRESS_DESC= shows a progress bar on the command line + +COLOUR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}colorlog>0:devel/py-colorlog@${PY_FLAVOR} +PROGRESS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyprind>=1.4.0:misc/py-pyprind@${PY_FLAVOR} + +.include Property changes on: head/graphics/rapid-photo-downloader/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/rapid-photo-downloader/distinfo =================================================================== --- head/graphics/rapid-photo-downloader/distinfo (nonexistent) +++ head/graphics/rapid-photo-downloader/distinfo (revision 512533) @@ -0,0 +1,3 @@ +TIMESTAMP = 1568565754 +SHA256 (rapid-photo-downloader-0.9.17.tar.gz) = 26dbce5d2e775af39ce8f17224a862ed71a86a47768a7ebb04193d96535c7883 +SIZE (rapid-photo-downloader-0.9.17.tar.gz) = 6877573 Property changes on: head/graphics/rapid-photo-downloader/distinfo ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/rapid-photo-downloader/files/patch-raphodo_cache.py =================================================================== --- head/graphics/rapid-photo-downloader/files/patch-raphodo_cache.py (nonexistent) +++ head/graphics/rapid-photo-downloader/files/patch-raphodo_cache.py (revision 512533) @@ -0,0 +1,11 @@ +--- raphodo/cache.py.orig 2019-07-31 17:16:30 UTC ++++ raphodo/cache.py +@@ -131,7 +131,7 @@ class Cache: + not be generated) + """ + +- assert sys.platform.startswith('linux') ++ assert sys.platform.startswith('linux') or sys.platform.startswith('freebsd') + self.cache_dir = cache_dir + self.failure_dir = failure_dir + assert self.cache_dir Property changes on: head/graphics/rapid-photo-downloader/files/patch-raphodo_cache.py ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/rapid-photo-downloader/files/patch-raphodo_rapid.py =================================================================== --- head/graphics/rapid-photo-downloader/files/patch-raphodo_rapid.py (nonexistent) +++ head/graphics/rapid-photo-downloader/files/patch-raphodo_rapid.py (revision 512533) @@ -0,0 +1,140 @@ +--- raphodo/rapid.py.orig 2019-08-18 03:58:11 UTC ++++ raphodo/rapid.py +@@ -98,7 +98,7 @@ from PyQt5.QtNetwork import QLocalSocket, QLocalServer + import sip + + from raphodo.storage import ( +- ValidMounts, CameraHotplug, UDisks2Monitor, GVolumeMonitor, have_gio, ++ ValidMounts, CameraHotplug, GVolumeMonitor, have_gio, + has_one_or_more_folders, mountPaths, get_desktop_environment, get_desktop, + gvfs_controls_mounts, get_default_file_manager, validate_download_folder, + validate_source_folder, get_fdo_cache_thumb_base_directory, WatchDownloadDirs, get_media_dir, +@@ -584,12 +584,12 @@ class RapidWindow(QMainWindow): + self.prefs.backup_files = backup + else: + logging.info("Backing up files: %s", self.prefs.backup_files) +- ++ + if backup_auto_detect is not None: + self.prefs.backup_device_autodetection = backup_auto_detect + elif self.prefs.backup_files: + logging.info("Backup device auto detection: %s", self.prefs.backup_device_autodetection) +- ++ + if photo_backup_identifier is not None: + self.prefs.photo_backup_identifier = photo_backup_identifier + elif self.prefs.backup_files and self.prefs.backup_device_autodetection: +@@ -599,7 +599,7 @@ class RapidWindow(QMainWindow): + self.prefs.video_backup_identifier = video_backup_identifier + elif self.prefs.backup_files and self.prefs.backup_device_autodetection: + logging.info("video backup identifier: %s", self.prefs.video_backup_identifier) +- ++ + if photo_backup_location is not None: + self.prefs.backup_photo_location = photo_backup_location + elif self.prefs.backup_files and not self.prefs.backup_device_autodetection: +@@ -934,18 +934,6 @@ class RapidWindow(QMainWindow): + logging.debug("Starting camera hotplug monitor...") + QTimer.singleShot(0, self.cameraHotplugThread.start) + +- # Monitor when the user adds or removes a partition +- self.udisks2Monitor = UDisks2Monitor(self.validMounts) +- self.udisks2MonitorThread = QThread() +- self.udisks2MonitorThread.started.connect(self.udisks2Monitor.startMonitor) +- self.udisks2Unmount.connect(self.udisks2Monitor.unmount_volume) +- self.udisks2Monitor.moveToThread(self.udisks2MonitorThread) +- self.udisks2Monitor.partitionMounted.connect(self.partitionMounted) +- self.udisks2Monitor.partitionUnmounted.connect(self.partitionUmounted) +- # Start the monitor only on the thread it will be running on +- logging.debug("Starting UDisks2 monitor...") +- QTimer.singleShot(0, self.udisks2MonitorThread.start) +- + if self.gvfsControlsMounts: + # Gio.VolumeMonitor must be in the main thread, according to + # Gnome documentation +@@ -2119,7 +2107,7 @@ class RapidWindow(QMainWindow): + select_text=_('Select a destination folder') + ) + self.photoDestination.addWidget(self.photoDestinationWidget) +- ++ + self.videoDestinationDisplay = DestinationDisplay( + menu=True, file_type=FileType.video, parent=self + ) +@@ -2582,11 +2570,11 @@ class RapidWindow(QMainWindow): + + body = _( + r"""Please report the problem at {website}.

+- Include in your bug report the program's log files. The bug report must include +- {log_file}, but attaching the other log files is often helpful.

++ Include in your bug report the program's log files. The bug report must include ++ {log_file}, but attaching the other log files is often helpful.

+ If possible, please also include the program's configuration file +- {config_file}.

+- Click here to open the log directory, and ++ {config_file}.

++ Click here to open the log directory, and + here to open the configuration directory. + """ + ).format( +@@ -2622,7 +2610,7 @@ class RapidWindow(QMainWindow): + + :param message: the text to display + :param rich_text: whether it text to display is in HTML format +- :param title: optional title for message box, else defaults to ++ :param title: optional title for message box, else defaults to + localized 'Rapid Photo Downloader' + :return: the message box + """ +@@ -4652,8 +4640,6 @@ Do you want to proceed with the download? + self.sendTerminateToThread(self.backup_controller) + + if not self.gvfsControlsMounts: +- self.udisks2MonitorThread.quit() +- self.udisks2MonitorThread.wait() + self.cameraHotplugThread.quit() + self.cameraHotplugThread.wait() + else: +@@ -5254,7 +5240,7 @@ Do you want to proceed with the download? + After a preference change, rescan already scanned devices + :param ignore_cameras: if True, don't rescan cameras + :param rescan_path: if True, include manually specified paths +- (i.e. This Computer) ++ (i.e. This Computer) + """ + + if rescan_path: +@@ -6243,7 +6229,7 @@ def main(): + logger = iplogging.setup_main_process_logging(logging_level=logging_level) + + logging.info("Rapid Photo Downloader is starting") +- ++ + if args.photo_renaming: + photo_rename = args.photo_renaming == 'on' + if photo_rename: +@@ -6252,7 +6238,7 @@ def main(): + logging.info("Photo renaming turned off from command line") + else: + photo_rename = None +- ++ + if args.video_renaming: + video_rename = args.video_renaming == 'on' + if video_rename: +@@ -6313,13 +6299,13 @@ def main(): + logging.info("This Computer path set from command line: %s", this_computer_location) + else: + this_computer_location=None +- ++ + if args.photo_location: + photo_location = os.path.abspath(args.photo_location) + logging.info("Photo location set from command line: %s", photo_location) + else: + photo_location=None +- ++ + if args.video_location: + video_location = os.path.abspath(args.video_location) + logging.info("video location set from command line: %s", video_location) Property changes on: head/graphics/rapid-photo-downloader/files/patch-raphodo_rapid.py ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/rapid-photo-downloader/files/patch-raphodo_storage.py =================================================================== --- head/graphics/rapid-photo-downloader/files/patch-raphodo_storage.py (nonexistent) +++ head/graphics/rapid-photo-downloader/files/patch-raphodo_storage.py (revision 512533) @@ -0,0 +1,319 @@ +--- raphodo/storage.py.orig 2019-07-09 21:12:19 UTC ++++ raphodo/storage.py +@@ -68,10 +68,9 @@ import xdg + import gi + + gi.require_version('GUdev', '1.0') +-gi.require_version('UDisks', '2.0') + gi.require_version('GExiv2', '0.10') + gi.require_version('GLib', '2.0') +-from gi.repository import GUdev, UDisks, GLib ++from gi.repository import GUdev, GLib + + from gettext import gettext as _ + +@@ -170,7 +169,7 @@ def get_media_dir() -> str: + + """ + +- if sys.platform.startswith('linux'): ++ if sys.platform.startswith('linux') or sys.platform.startswith('freebsd'): + media_dir = '/media/{}'.format(get_user_name()) + run_media_dir = '/run{}'.format(media_dir) + distro = get_distro() +@@ -278,7 +277,7 @@ class ValidMounts(): + self.validMountFolders, e.g. /media/, etc. + """ + +- if not sys.platform.startswith('linux'): ++ if not sys.platform.startswith('linux') and not sys.platform.startswith('freebsd'): + raise ("Mounts.setValidMountPoints() not implemented on %s", sys.platform()) + else: + try: +@@ -646,7 +645,7 @@ def get_default_file_manager() -> Tuple[Optional[str], + + _default_file_manager_probed = True + +- assert sys.platform.startswith('linux') ++ assert sys.platform.startswith('linux') or sys.platform.startswith('freebsd') + cmd = shlex.split('xdg-mime query default inode/directory') + try: + desktop_file = subprocess.check_output(cmd, universal_newlines=True) # type: str +@@ -791,7 +790,7 @@ def validate_download_folder(path: Optional[str], + + :param path: path to analyze + :param write_on_waccesss_failure: if os.access reports path is not writable, test +- nonetheless to see if it's writable by writing and deleting a test file ++ nonetheless to see if it's writable by writing and deleting a test file + :return: Tuple indicating validity and path made absolute + + >>> validate_download_folder('/some/bogus/and/ridiculous/path') +@@ -1008,259 +1007,6 @@ class CameraHotplug(QObject): + self.cameraRemoved.emit() + + +-class UDisks2Monitor(QObject): +- # Most of this class is Copyright 2008-2015 Canonical +- +- partitionMounted = pyqtSignal(str, list, bool) +- partitionUnmounted = pyqtSignal(str) +- +- loop_prefix = '/org/freedesktop/UDisks2/block_devices/loop' +- not_interesting = ( +- '/org/freedesktop/UDisks2/block_devices/dm_', +- '/org/freedesktop/UDisks2/block_devices/ram', +- '/org/freedesktop/UDisks2/block_devices/zram', +- ) +- +- def __init__(self, validMounts: ValidMounts) -> None: +- super().__init__() +- self.validMounts = validMounts +- +- @pyqtSlot() +- def startMonitor(self) -> None: +- self.udisks = UDisks.Client.new_sync(None) +- self.manager = self.udisks.get_object_manager() +- self.manager.connect('object-added', +- lambda man, obj: self._udisks_obj_added(obj)) +- self.manager.connect('object-removed', +- lambda man, obj: self._device_removed(obj)) +- +- # Track the paths of the mount points, which is useful when unmounting +- # objects. +- self.known_mounts = {} # type: Dict[str, str] +- for obj in self.manager.get_objects(): +- path = obj.get_object_path() +- fs = obj.get_filesystem() +- if fs: +- mount_points = fs.get_cached_property('MountPoints').get_bytestring_array() +- if mount_points: +- self.known_mounts[path] = mount_points[0] +- logging.debug("... UDisks2 monitor started") +- +- def _udisks_obj_added(self, obj) -> None: +- path = obj.get_object_path() +- for boring in self.not_interesting: +- if path.startswith(boring): +- return +- block = obj.get_block() +- if not block: +- return +- +- drive = self._get_drive(block) +- +- part = obj.get_partition() +- is_system = block.get_cached_property('HintSystem').get_boolean() +- is_loop = path.startswith(self.loop_prefix) and not \ +- block.get_cached_property('ReadOnly').get_boolean() +- if not is_system or is_loop: +- if part: +- self._udisks_partition_added(obj, block, drive, path) +- +- def _get_drive(self, block) -> Optional[UDisks.Drive]: +- drive_name = block.get_cached_property('Drive').get_string() +- if drive_name != '/': +- return self.udisks.get_object(drive_name).get_drive() +- else: +- return None +- +- def _udisks_partition_added(self, obj, block, drive, path) -> None: +- logging.debug('UDisks: partition added: %s' % path) +- fstype = block.get_cached_property('IdType').get_string() +- logging.debug('Udisks: id-type: %s' % fstype) +- +- fs = obj.get_filesystem() +- +- if fs: +- icon_names = self.get_icon_names(obj) +- +- if drive is not None: +- ejectable = drive.get_property('ejectable') +- else: +- ejectable = False +- mount_point = '' +- mount_points = fs.get_cached_property('MountPoints').get_bytestring_array() +- if len(mount_points) == 0: +- try: +- logging.debug("UDisks: attempting to mount %s", path) +- mount_point = self.retry_mount(fs, fstype) +- if not mount_point: +- raise Exception +- else: +- logging.debug("UDisks: successfully mounted at %s", mount_point) +- except Exception: +- logging.error('UDisks: could not mount the device: %s', path) +- return +- else: +- mount_point = mount_points[0] +- logging.debug("UDisks: already mounted at %s", mount_point) +- +- self.known_mounts[path] = mount_point +- if self.validMounts.pathIsValidMountPoint(mount_point): +- self.partitionMounted.emit(mount_point, icon_names, ejectable) +- +- else: +- logging.debug("Udisks: partition has no file system %s", path) +- +- def retry_mount(self, fs, fstype) -> str: +- # Variant parameter construction Copyright Bernard Baeyens, and is +- # licensed under GNU General Public License Version 2 or higher. +- # https://github.com/berbae/udisksvm +- list_options = '' +- if fstype == 'vfat': +- list_options = 'flush' +- elif fstype == 'ext2': +- list_options = 'sync' +- G_VARIANT_TYPE_VARDICT = GLib.VariantType.new('a{sv}') +- param_builder = GLib.VariantBuilder.new(G_VARIANT_TYPE_VARDICT) +- optname = GLib.Variant.new_string('fstype') # s +- value = GLib.Variant.new_string(fstype) +- vvalue = GLib.Variant.new_variant(value) # v +- newsv = GLib.Variant.new_dict_entry(optname, vvalue) # {sv} +- param_builder.add_value(newsv) +- optname = GLib.Variant.new_string('options') +- value = GLib.Variant.new_string(list_options) +- vvalue = GLib.Variant.new_variant(value) +- newsv = GLib.Variant.new_dict_entry(optname, vvalue) +- param_builder.add_value(newsv) +- vparam = param_builder.end() # a{sv} +- +- # Try to mount until it does not fail with "Busy" +- timeout = 10 +- while timeout >= 0: +- try: +- return fs.call_mount_sync(vparam, None) +- except GLib.GError as e: +- if not 'UDisks2.Error.DeviceBusy' in e.message: +- raise +- logging.debug('Udisks: Device busy.') +- time.sleep(0.3) +- timeout -= 1 +- return '' +- +- def get_icon_names(self, obj: UDisks.Object) -> List[str]: +- # Get icon information, if possible +- icon_names = [] +- if have_gio: +- info = self.udisks.get_object_info(obj) +- icon = info.get_icon() +- if isinstance(icon, Gio.ThemedIcon): +- icon_names = icon.get_names() +- return icon_names +- +- # Next four class member functions from Damon Lynch, not Canonical +- def _device_removed(self, obj: UDisks.Object) -> None: +- # path here refers to the udev / udisks path, not the mount point +- path = obj.get_object_path() +- if path in self.known_mounts: +- mount_point = self.known_mounts[path] +- del self.known_mounts[path] +- self.partitionUnmounted.emit(mount_point) +- +- def get_can_eject(self, obj: UDisks.Object) -> bool: +- block = obj.get_block() +- drive = self._get_drive(block) +- if drive is not None: +- return drive.get_property('ejectable') +- return False +- +- def get_device_props(self, device_path: str) -> Tuple[List[str], bool]: +- """ +- Given a device, get the icon names suggested by udev, and +- determine whether the mount is ejectable or not. +- :param device_path: system path of the device to check, +- e.g. /dev/sdc1 +- :return: icon names and eject boolean +- """ +- +- object_path = '/org/freedesktop/UDisks2/block_devices/{}'.format( +- os.path.split(device_path)[1]) +- obj = self.udisks.get_object(object_path) +- icon_names = self.get_icon_names(obj) +- can_eject = self.get_can_eject(obj) +- return (icon_names, can_eject) +- +- @pyqtSlot(str) +- def unmount_volume(self, mount_point: str) -> None: +- +- G_VARIANT_TYPE_VARDICT = GLib.VariantType.new('a{sv}') +- param_builder = GLib.VariantBuilder.new(G_VARIANT_TYPE_VARDICT) +- +- # Variant parameter construction Copyright Bernard Baeyens, and is +- # licensed under GNU General Public License Version 2 or higher. +- # https://github.com/berbae/udisksvm +- +- optname = GLib.Variant.new_string('force') +- value = GLib.Variant.new_boolean(False) +- vvalue = GLib.Variant.new_variant(value) +- newsv = GLib.Variant.new_dict_entry(optname, vvalue) +- param_builder.add_value(newsv) +- +- vparam = param_builder.end() # a{sv} +- +- path = None +- # Get the path from the dict we keep of known mounts +- for key, value in self.known_mounts.items(): +- if value == mount_point: +- path = key +- break +- if path is None: +- logging.error("Could not find UDisks2 path used to be able to unmount %s", mount_point) +- +- fs = None +- for obj in self.manager.get_objects(): +- opath = obj.get_object_path() +- if path == opath: +- fs = obj.get_filesystem() +- if fs is None: +- logging.error("Could not find UDisks2 filesystem used to be able to unmount %s", +- mount_point) +- +- logging.debug("Unmounting %s...", mount_point) +- try: +- fs.call_unmount(vparam, None, self.umount_volume_callback, (mount_point, fs)) +- except GLib.GError: +- value = sys.exc_info()[1] +- logging.error('Unmounting failed with error:') +- logging.error("%s", value) +- +- def umount_volume_callback(self, source_object: UDisks.FilesystemProxy, +- result: Gio.AsyncResult, +- user_data: Tuple[str, UDisks.Filesystem]) -> None: +- """ +- Callback for asynchronous unmount operation. +- +- :param source_object: the FilesystemProxy object +- :param result: result of the unmount +- :param user_data: mount_point and the file system +- """ +- +- mount_point, fs = user_data +- +- try: +- if fs.call_unmount_finish(result): +- logging.debug("...successfully unmounted %s", mount_point) +- else: +- # this is the result even when the unmount was unsuccessful +- logging.debug("...possibly failed to unmount %s", mount_point) +- except GLib.GError as e: +- logging.error('Exception occurred unmounting %s', mount_point) +- logging.exception('Traceback:') +- except: +- logging.error('Exception occurred unmounting %s', mount_point) +- logging.exception('Traceback:') +- +- self.partitionUnmounted.emit(mount_point) +- +- + if have_gio: + class GVolumeMonitor(QObject): + r""" +@@ -1577,7 +1323,7 @@ def get_mount_size(mount: QStorageInfo) -> Tuple[int, + """ + Uses GIO to get bytes total and bytes free (available) for the mount that a + path is in. +- ++ + :param path: path located anywhere in the mount + :return: bytes_total, bytes_free + """ Property changes on: head/graphics/rapid-photo-downloader/files/patch-raphodo_storage.py ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/rapid-photo-downloader/files/patch-raphodo_utilities.py =================================================================== --- head/graphics/rapid-photo-downloader/files/patch-raphodo_utilities.py (nonexistent) +++ head/graphics/rapid-photo-downloader/files/patch-raphodo_utilities.py (revision 512533) @@ -0,0 +1,62 @@ +--- raphodo/utilities.py.orig 2019-08-18 03:58:11 UTC ++++ raphodo/utilities.py +@@ -76,10 +76,11 @@ if arrow_version >= parse_version('0.14.3') and arrow_ + # Linux specific code to ensure child processes exit when parent dies + # See http://stackoverflow.com/questions/19447603/ + # how-to-kill-a-python-child-process-created-with-subprocess-check-output-when-t/ +-libc = ctypes.CDLL("libc.so.6") ++libc = ctypes.CDLL("libc.so.7") + def set_pdeathsig(sig = signal.SIGTERM): + def callable(): +- return libc.prctl(1, sig) ++ return 0 ++ #return libc.procctl(0, 0, 11, sig) + return callable + + +@@ -195,8 +196,8 @@ def show_errors(): + # kilobytes, etc. + suffixes = [_('B'), _('KB'), _('MB'), _('GB'), _('TB'), _('PB'), _('EB'), _('ZB'), _('YB')] + +-def format_size_for_user(size_in_bytes: int, +- zero_string: str='', ++def format_size_for_user(size_in_bytes: int, ++ zero_string: str='', + no_decimals: int=2) -> str: + r""" + Humanize display of bytes. +@@ -382,12 +383,12 @@ def find_mount_point(path: str) -> str: + Find the mount point of a path + See: + http://stackoverflow.com/questions/4453602/how-to-find-the-mountpoint-a-file-resides-on +- ++ + >>> print(find_mount_point('/crazy/path')) + / +- +- :param path: +- :return: ++ ++ :param path: ++ :return: + """ + path = os.path.realpath(path) + while not os.path.ismount(path): +@@ -724,13 +725,13 @@ def _collect_duplicates(basenames, paths): + + def make_path_end_snippets_unique(*paths) -> List[str]: + r""" +- Make list of path ends unique given possible common path endings. +- +- A snippet starts from the end of the path, in extreme cases possibly up the path start. ++ Make list of path ends unique given possible common path endings. + ++ A snippet starts from the end of the path, in extreme cases possibly up the path start. ++ + :param paths: sequence of paths to generate unique end snippets for + :return: list of unique snippets +- ++ + >>> p0 = '/home/damon/photos' + >>> p1 = '/media/damon/backup1/photos' + >>> p2 = '/media/damon/backup2/photos' Property changes on: head/graphics/rapid-photo-downloader/files/patch-raphodo_utilities.py ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/rapid-photo-downloader/pkg-descr =================================================================== --- head/graphics/rapid-photo-downloader/pkg-descr (nonexistent) +++ head/graphics/rapid-photo-downloader/pkg-descr (revision 512533) @@ -0,0 +1,7 @@ +Rapid Photo Downloader imports photos and videos from cameras, phones, +memory cards and other devices at high speed. It can be configured to +rename photos and videos with meaningful filenames you specify. It can +also back up photos and videos as they are downloaded. It downloads +from and backs up to multiple devices simultaneously. + +WWW: http://www.damonlynch.net/rapid/ Property changes on: head/graphics/rapid-photo-downloader/pkg-descr ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property